首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PCSC智能卡读取器的“友好名称”是如何构造的?

PCSC智能卡读取器的“友好名称”是如何构造的?
EN

Stack Overflow用户
提问于 2012-05-30 08:57:20
回答 1查看 5K关注 0票数 4

我使用WinSCard列出所有读者,这给了我这样一个列表:

代码语言:javascript
运行
复制
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,连接的读者数量
  • 012:STRING,硬件设备ID

我猜这些是附加到“友好名称”的数字,但我不知道名称字符串是如何构造的。我需要这个映射硬件设备ID(我通过WMI)到他们友好的名字。

那么,用于为智能卡读取器创建“友好名称”的模式是什么,这些值从何而来?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 09:36:54

它们是以下三个属性的结合:

代码语言:javascript
运行
复制
SCARD_ATTR_VENDOR_NAME
SCARD_ATTR_VENDOR_IFD_TYPE
SCARD_ATTR_DEVICE_UNIT

TechNet文章智能卡事件在“智能卡读取器名称”一节中记录了这一点。

SCARD_???属性是通过SCardGetAttrib 函数请求的。

SCARD_ATTR_DEVICE_SYSTEM_NAME属性返回friendly name作为列出读取器时得到的内容。

SmartCard读取器列表存在于HKLM\SOFTWARE\Microsoft\Cryptography\Calais\Readers下的注册表中。读取器是由SCR驱动程序的INF文件添加到此列表中的,因此在驱动程序安装期间也是如此。

设备和读取器之间的链接可以在SmartCardReader类{50DD5230-BA8A-11D1-BF5D-0000F805F530}HKLM\SYSTEM\CurrentControlSet\Control\Class\{50DD5230-BA8A-11D1-BF5D-0000F805F5‌​30}下找到。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10813041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档