Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Windows将自定义USB安全令牌标识为USB令牌而不是COM串行设备_Windows_Usb_Driver_Smartcard_Hsm - Fatal编程技术网

如何让Windows将自定义USB安全令牌标识为USB令牌而不是COM串行设备

如何让Windows将自定义USB安全令牌标识为USB令牌而不是COM串行设备,windows,usb,driver,smartcard,hsm,Windows,Usb,Driver,Smartcard,Hsm,我有一个自定义的HSM:一个USB令牌。当我将其插入USB端口时,PnP服务将其作为串行设备加载(在设备管理器中)。我可以使用我们正在开发的自定义PKCS11库与它进行通信。但是,我想让MS CryptoAPI用户可以访问它。为了实现这一点,我需要Windows的智能卡服务(SCardSvr)来识别它。要做到这一点,Windows需要确认它是USB令牌设备,而不是COM串行设备。 (如果到目前为止我的逻辑是错误的,请告诉我)。 我的问题是:我是否必须编写一个全新的驱动程序,或者我是否可以做些其他

我有一个自定义的HSM:一个USB令牌。当我将其插入USB端口时,PnP服务将其作为串行设备加载(在设备管理器中)。我可以使用我们正在开发的自定义PKCS11库与它进行通信。但是,我想让MS CryptoAPI用户可以访问它。为了实现这一点,我需要Windows的智能卡服务(SCardSvr)来识别它。要做到这一点,Windows需要确认它是USB令牌设备,而不是COM串行设备。 (如果到目前为止我的逻辑是错误的,请告诉我)。
我的问题是:我是否必须编写一个全新的驱动程序,或者我是否可以做些其他事情来改变Windows识别我的设备的方式?

忘了说,我使用的是MSVS-2015+Windows 10(SDK+WDK),这完全取决于USB设备的驱动程序,而不是Windows。联系供应商或制造商寻求建议。该驱动程序是一个通用COM,Windows自动检测/加载/安装它,我想知道是否可以创建一个“解析器”或允许Windows将其视为USB令牌的东西。一些误解:PKCS11是一个驱动程序,它知道,对于签名创建等给定功能,必须向卡发送哪些命令。MS Crypto API也实现了相同的功能,但仅凭其自身。没有简单的配置可以为WIndows提供必要的卡知识。所以你别无选择,只能联系供应商。那太好了,除非没有供应商,处理芯片是从Amtel获得的,由我们的工程师团队组装。Amtel提供了一个COM.cat/.inf驱动程序,将我们的设备注册为COM串行,但我需要Windows将其视为USB令牌。这就是我的困境。帮助