我有一个passthrough NDIS中间驱动程序,由两个.inf文件(一个标准和一个微型端口)和一个.sys文件组成。由于Windows 7驱动程序签名要求,我必须获得代码签名证书并签署.sys文件,以便驱动程序安装在64位系统上。这很好用,我有很多成功的Windows 7安装。
但是,Windows 8 Consumer Preview(64位)上的相同安装程序失败。如果我在Windows Signature Enforcement关闭的情况下启动,它会正确安装,因此它绝对是一个签名问题。 Windows 7和Windows 7之间增加了哪些新要求我需要遵循的Windows 8才能让我的驱动程序安装?
答案 0 :(得分:5)
重新生成您的cat文件,使其符合新Window操作系统的签名要求。
例如,在我的构建脚本中,我必须将8_X86,8_X64
添加到我的inf2cat
命令中:
inf2cat /driver:"%CD%" /os:XP_X86,XP_X64,Vista_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64
对于Windows 8.1,您需要Windows驱动程序工具包(WDK)8.1中包含的inf2cat
,并根据您的目标添加6_3_X64
,6_3_X86
或{{1到/ os:WindowsVersionList。
参考, Inf2Cat
答案 1 :(得分:4)
我遇到了同样的问题。我使用makecat
生成.cat文件,但我从未包含“< HASH>”在列出文件名的.cdf文件行的开头。这适用于Windows 7,但不再适用于Windows 8。
请在此处查看makecat
网站:http://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx?ppud=4
我有一个像这样的.cdf文件:
[CatalogHeader]
Name=xxx.cat
[CatalogFiles]
xxx.sys=xxx.sys
这适用于Windows 7,但不适用于Windows 8.
以下适用于Windows 8,加上它在安装时提供了更好的对话框,即使在Windows 7下也是如此:
[CatalogHeader]
Name=xxx.cat
[CatalogFiles]
<hash>xxx.sys=xxx.sys
要说清楚,您必须添加文字“&lt; hash&gt;” (没有报价)。这不是任何东西的占位符,而是真正的文字文本。 makecat
稍后会将其替换为.cat文件中的文件的哈希值。
为了使它更清晰,当然必须用.cat文件和驱动程序的正确名称替换“xxx”。 :)