我使用 WinSCard 列出所有读者,这给了我这样的列表:
ASK RDR4x7 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 0
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 1
SCM Microsystems Inc. SCR3320 USB Smart Card Reader 2
这很棒,但我不知道哪个名字属于哪个读卡器。
这些名字从何而来?它们是如何构造的?
到目前为止我发现的是:在注册表中,有一个HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
键。在此键下,您可以找到与读卡器的“服务”(我通过查询 WMI 注册表找到)匹配的子键。例如:为SCM Microsystems Inc. SCR3320 USB Smart Card Reader
读者提供的服务是SCR3XX2K
。
这个子键 ( SCR3XX2K
) 有另一个子键Enum
,它有多个有趣的值:
Count
:DWORD,连接的阅读器数量0
,1
,2
: STRING,硬件设备 ID
我猜这些是附加到“友好名称”的数字,但我无法弄清楚名称字符串是如何构造的。我需要它来将硬件设备 ID(我通过 WMI 获得)映射到它们的友好名称。
那么,用于为智能卡读卡器创建“友好名称”的模式是什么,这些值从何而来?