ACS リーダーと NFC タグを使用した ac# PC/SC の実装に取り組んでいます。
次のように SCardTransmit のプロトタイプを作成しました。
[DllImport("winscard.dll")]
public static extern int SCardTransmit (Int32 hCard, ref SCARD_IO_REQUEST pioSendRequest, byte[] SendBuff, Int32 SendBuffLen, ref SCARD_IO_REQUEST pioRecvRequest, byte[] RecvBuff, out Int32 RecvBuffLen);
そして、私は次のコードを持っています:
SCard.SCARD_IO_REQUEST ioRequest = new SCard.SCARD_IO_REQUEST();
ioRequest.dwProtocol = Protocol; // Is going to be T=1
ioRequest.cbPciLength = 8;
byte[] cmdBytes = new byte[] { 0xFF, 0xCA, 0x00, 0x00, 0x00 };
byte[] rcvBytes = new byte[10];
int rcvLenght = 0;
retCode = SCard.SCardTransmit(Handle,
ref ioRequest, cmdBytes, cmdBytes.Length,
ref ioRequest, rcvBytes, out rcvLenght);
if (retCode != SCard.SCARD_S_SUCCESS)
throw new Exception("Failed querying tag UID: " + retCode);
すべての (表示されていない) 初期化は正常に機能しているようで、タグの ATR を正常に取得できます。
ここで、このコードを実行すると、成功の戻りコードが返されます。一貫した受信バイト長の値を受け取りますが、対応するバイト配列は空 (ゼロ) です。
誰でもこれについてアドバイスできますか?
ありがとうございました。