Windows 8驱动程序安装和目录/签名验证

时间:2012-06-07 17:21:17

标签: install driver windows-8 digital-signature inf

我无法让Windows 8(发布预览版)接受 inf2cat makecat 方法,并将其描述为问题解决方案

  

What changed in the driver signature requirements for Windows 8?

除非我禁用验证。

此时我没有使用任何证书签署这些证书,只是试图解决阻止驱动程序安装的错误。

Windows 8给了我一个非常不明显的错误:

  

“尝试将驱动程序添加到商店时遇到问题。”

查看事件日志,没有任何用处;只有来自“Windows错误报告”的信息性条目,表示 PnPdriverimporterror

当我使用与inf不匹配的cab文件的原始文件时,我得到其他人列出的错误:

  

指定目录文件中不存在该文件的哈希值。

我有一个.inf文件需要生成.cat for。

也许我做错了什么。想法?

INF2CAT方法

c:\win_xp_vista32_64>inf2cat /driver:"." /os:XP_X86,XP_x64,Vista_X86,Vista_x64,7_X86,7_X64,8_X86,8_X64

.......................
Signability test complete.

Errors:
None

Warnings:
22.9.10: usbser.sys in [drivercopyfiles.nt] is missing from [SourceDisksFiles] s
ection in \mchpcdc.inf; ok if file source is provided via LayoutFile in [Version
].
22.9.10: %driverfilename%.sys in [drivercopyfiles.ntamd64] is missing from [Sour
ceDisksFiles] section in \mchpcdc.inf; ok if file source is provided via LayoutF
ile in [Version].

Catalog generation complete.
c:\win_xp_vista32_64\mchpcdc.cat

MAKECAT方法

--- start of catalog.cdf file---

[CatalogHeader]
Name=mchpcdc.cat
ResultDir=.\
[CatalogFiles]
<hash>mchpcdc=.\mchpcdc.inf
---end of .cdf file ---


c:\win_xp_vista32_64>makecat catalog.cdf

这些相同的文件,来自任何一种方法的猫都可以在Windows 7中正常安装。

4 个答案:

答案 0 :(得分:6)

我认为这个问题与“Windows驱动程序签名执行”有关。您可以通过禁用此选项来解决此问题。点击以下链接:

http://tivadj-tech.blogspot.in/2012/09/certificate-check-error-when-installing.html

答案 1 :(得分:4)

我现在在Windows 10和8 PRO上测试了这个,为了做到这一点,请按照以下步骤操作:

1)从“开始”菜单中,找到DDK的“x64 Checked Build Environment”,即自定义DOS构建屏幕。右键单击,以管理员身份运行...

2)使用构建工具等编译源代码。

3)进入已编译的代码,然后创建测试证书(您现在不需要购买一个,使用下面一行创建的自签名代码):

  

makecert -r -pe -ss PrivateCertStore -n CN = newhex.com(Test)NewhexTest.cer

以上表示您的证书名为“newhex.com(Test)”,生成的文件为“NewhexTest.cer”

4)创建/编辑.CDF文件,其中包含有关CAT文件内容的项目。

5)执行以下命令创建您的CAT文件:

  

makecat -v MyCDF.CDF

这应生成一个未签名的CAT文件,其中包含CDF指定的所有文件。

6)按如下方式签署您的CAT文件:

  

Signtool sign / v / s PrivateCertStore / n newhex.com(test)/ t http://timestamp.verisign.com/scripts/timestamp.dll MyDriverWhatever.cat

这应该会导致CAT文件被签名,但不要只是安装它,因为你的Windows不能信任Newhex的证书,因为它不在密钥库中,修复它:

7)将您的证书添加到私人密钥库,请记住此步骤必须由管理员访问,否则您将收到错误(未找到密钥库等):

  

certmgr.exe -add NewhexTest.cer -s -r localMachine root

这应该添加到您的密钥库中,完成后,您可以:

8)进入您的设备管理器,添加新驱动程序,您将收到警告但将被接受并安装,而无需使用强制重新启动(请勿检查证书类型帐户)。

我已经尝试了这个,它适用于Windows 10和Windows 8专业版。

亲切的问候 Heider Sati

答案 2 :(得分:0)

你应该使用inf2cat,而不是makecat,因为你有一个INF文件。

您应该通过修复INF文件来解决来自inf2cat的警告。这是我的INF文件,它使用usbser.sys并且不会引起任何警告:https://gist.github.com/3647208

我能够修复我的INF文件,感谢chinzei在这篇主题的第一篇文章中的建议:http://www.microchip.com/forums/m488342-print.aspx

如果您仍有问题,请编辑您的问题以包含INF文件的来源,或至少包含指向来源的链接。

答案 3 :(得分:0)

我遇到了同样的问题,并且可以使用此处提供的说明安装带有TEST证书的驱动程序:

http://msdn.microsoft.com/en-us/windows/hardware/gg487328.aspx