2015-01-21 103 views
1

我有多個ACR122T智能卡設備,沒有唯一的序列號(來自ACS)。我需要知道從pcsc-lite內部連接到哪個物理智能卡。我知道從使用lsusb哪個USB端口是物理設備,但是如何使用SCardGetAttribute(SCARD_ATTR_DEVICE_UNIT)映射該USB端口信息?pcsc-lite:多個ACR122T設備沒有唯一的序列號 - linux

看來地圖應該在OS級別,因爲我無法從pscs-lite API中找到讀取USB端口信息(lsusb結果)的方法。

這篇文章中提到的方法,Smartcard reader ACR122U has no unique serial number 但我不明白後面「使用的開發數量,確保我總是用正確的讀者」的細節。

任何幫助表示讚賞。 謝謝,-Phil

回答

0

聲明:我正在使用Windows,而不是Linux。

ACR122T(和ACR122U)設備不僅沒有序列號(除了背面印刷的序列號),也沒有USB序列號,因此只能通過插入的USB端口進行區分。此外,我在這裏購買的所有ACR122T和我們(我們買了一大堆)將自己標識爲Windows的「ACS ACR122」。使用專有API獲取固件版本,ACR122T和ACR122U都將自己標識爲ACR122U(例如「ACR122U207」或「ACR122U214」)。

這意味着,操作系統本身不能在那麼任何其他方式,在插入USB端口來區分多個設備。

我也試圖讓PCSC設備和OS設備之間的連接,但除了從this function(這是唯一可用的啓動Windows 8)我還沒有找到任何東西,所以它看起來像我沒有辦法通過pcsc調用。

設備單元依次由pcsc層給出,因此您可以區分連接到的設備但不識別特定的設備。

+0

感謝您的Windows 8信息。 SCardGetReaderDeviceInstanceId函數是我們想要的Linux端,但看起來不像它目前在pcsc-lite中。 – PhilBr 2015-01-22 21:41:44

+0

@PhilBr就算清楚了,即使你能成功獲得操作系統的設備處理,它也不會對你有任何幫助,因爲ACR112 **不報告任何序列號或其他特殊信息**。 – Fozi 2015-02-16 17:31:59