我有多个ACR122T智能卡设备,没有唯一的序列号(来自ACS)。我需要知道我在pcsc-lite中连接的物理智能卡。我知道使用lsusb哪个USB端口是物理设备,但是如何使用SCardGetAttribute(SCARD_ATTR_DEVICE_UNIT)映射该USB端口信息?
似乎地图应该是操作系统级别,因为我无法从pscs-lite API中找到读取USB端口信息(lsusb结果)的方法。
这篇文章提到了一种方法,Smartcard reader ACR122U has no unique serial number 但我不明白背后的细节"使用该开头号码以确保我总是使用正确的读者#34;。
任何帮助表示赞赏。 谢谢,-Phil
答案 0 :(得分:0)
免责声明:我在Windows上工作,而不是Linux。
ACR122T(和ACR122U)设备不仅没有序列号(除了背面打印的序列号),而且没有USB序列号,因此它们只能通过插入的USB端口进行区分。所有的ACR122T和我在这里(我们买了一堆)将自己标识为Windows的“ACS ACR122”。使用专有API获取固件版本ACR122T和ACR122U都将自己标识为ACR122U(例如“ACR122U207”或“ACR122U214”)。
这意味着操作系统本身无法以任何其他方式区分多个设备,而是插入其插入的USB端口。
我还尝试在pcsc设备和操作系统设备之间建立连接,但除了this function(仅在Windows 8启动时)我还没有找到任何东西,所以它看起来像我有没办法通过pcsc调用。
设备单元由pcsc层顺序发出,因此您可以区分连接的设备但不识别特定设备。