我正在使用 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。
现在,运行此代码我得到一个成功返回代码,我收到一个一致的接收字节长度值,但相应的字节数组是空的(零)。
任何人都可以对此提出建议吗?
谢谢你。