我正在尝试在Windows 8中安装USB驱动程序,此USB驱动程序仅使用WinUSB。
根据这篇文章Signed INF driver works on the computer where it was signed, not
others以及此网站Practical Windows Code and Driver Signing,我所要做的就是生成一个.inf
文件,以生成.cat
文件并对此进行签名{ {1}}文件,但我在签名部分遇到问题,其他步骤都可以。
我在上面列出的网站明确指出,签署目录文件时,驱动程序仅使用WinUSB无需从任何授权的证书颁发机构购买任何认证。
您使用的内核模块已经由Microsoft签名 并且你可以毫不费力地将它们加载到内核中 已安装驱动程序包。
我将.cat
与SignTool.exe
一起放在一个文件夹中。在子文件夹中,让我们说mscvr-cross-gdroot-g2.crt
我有我的驱动程序包。
MyFolder文件
MyFolder
所以,基本上我已经陷入了困境:
├─ remsir.cat
├─ remsir.inf
│
├─┐ amd64\
│ ├ WdfCoInstaller01011.dll
│ ├ WinUSBCoInstaller2.dll
│ ├ WUDFUpdate_01011.dll
│
└─┐ i386\
├ WdfCoInstaller01011.dll
├ WinUSBCoInstaller2.dll
├ WUDFUpdate_01011.dll
此命令行是从其他问题复制而来的,但它对我不起作用。我试图改变一些参数,但仍然没有成功,无论我做什么我总是得到错误信息:
SignTool错误:未找到符合所有给定条件的证书。
首先,我不确定是否应该更改此命令行中的任何参数。他们并不是很清楚他们的意思。
那么..我是否必须更改该命令行中的任何参数?我是否必须安装SignTool.exe sign /v /ac "mscvr-cross-gdroot-g2.crt" /n "Pololu Corporation" /t http://tsa.starfieldtech.com MyFolder\remsir.cat
甚至mscvr-cross-gdroot-g2.crt
?如果是,怎么样?
答案 0 :(得分:2)
您需要从GlobalSign等公司购买签名证书。是的,Windows信任驱动程序的winusb组件,但Windows 8不允许您安装INF文件,除非它是由真实证书签名。
你的引述是:
您使用的内核模块已经由Microsoft签名,安装驱动程序包后,您可以毫不费力地将它们加载到内核中。
这句话仍然是正确的。关键是除非您对INF文件进行签名,否则您甚至无法安装驱动程序包。
您在我的示例中看到的Pololu Corporation
是我公司的名称,该部分需要更改为您的公司名称。它需要与您购买的证书中嵌入的公司名称完全匹配。
编辑1:Windows 8实际上不需要WinUSB的INF文件
如果您能够更改设备的固件,则可以避免购买WinUSB设备的证书。对于Windows 8支持,您应该按照USB核心团队中的这些说明操作,无需INF文件即可加载您的设备:
因为您没有提供INF文件或SYS文件,所以我强烈期望您不需要为Windows 8签署任何内容。
对于Windows 7及更早版本,您需要提供一个INF文件以将您的设备与WinUSB关联,但不需要对INF文件进行签名,因为这些版本不需要它。
答案 1 :(得分:0)
:定位:强>
安装使用WinUSB作为内核模式代码的.inf
文件。
<强>解决方案:强>
我解决了我的问题,而不是我最初签署.cat
文件的想法。
对于大多数人来说,我的回答可能令人失望,而且我可能会因为没有使用最佳实践等而受到很多批评。它不够优雅,听起来更像是一种解决方法,而不是一种真正的解决方案。但考虑到公司的主要业务以及在Windows 8中使用驱动程序的匆忙,我已经达到了令公司满意的解决方案。
在讨论安装未签名驱动程序时,Windows 7与Windows 8之间的主要区别在于,Windows 7显示一条恼人的红色警告消息,建议用户不要安装未签名的驱动程序,Windows 8,正常情况下只是没有无论如何都要安装它。
我们在Windows 7中一直与此警告共存,所以我所做的就是将Windows 8重新配置为像Windows 7一样。
第1步:
在我的软件安装结束时,安装程序会运行一个验证Windows版本的程序,如果它是Windows 8,它会提示一个对话框,要求安装它将要求重启Windows的驱动程序和建议。如果用户同意,它将运行一个批处理文件:
第2步:
当用户登录时,它将运行第二个批处理文件,该文件被设置为运行到RunOnce中。它会做:
此时将安装驱动程序并恢复原始设置。恼人的红色警告消息仍然存在,就像在Windows 7中一样,生活还在继续......