SCardTransmit()返回空的响应缓冲区
本文关键字:响应 缓冲区 返回 SCardTransmit | 更新日期: 2023-09-27 18:19:27
使用这里描述的框架,我正在尝试从智能卡中读取。我已经建立了一个apdu命令。命令结构似乎是正确的,因为它在java中工作。当我调用SCardTransmit()函数时,该命令会被执行,但它返回一个长度为Le+2字节的空响应缓冲区。保持SW1和SW2的前两个字节是6118。我相信这意味着有更多的字节要读入缓冲区。然而,当我更改缓冲区大小时,响应缓冲区大小会更改,但我仍然得到错误代码6118。这是一个选择命令,后面是一个返回状态6100的获取数据命令,我认为这意味着仍有超过0xFF的字节要读取。那么,如何填充响应缓冲区呢?
所描述的行为与T=0协议卡相匹配。在该协议中,您永远不会直接获得命令响应,而是必须发送一个get response命令,该命令的长度在上一个命令的返回代码中报告,此处为0x18。