2012-03-09 75 views
14

我有一个中间驱动程序NDIS,由两个.inf文件(一个标准和一个微型端口)和一个.sys文件组成。由于Windows驱动程序签名要求,我必须获取代码签名证书并签署.sys文件才能让驱动程序安装在64位系统上。这工作正常,我有许多成功的Windows 7安装。Windows 8的驱动程序签名要求有哪些变化?

但是,相同的安装程序在Windows 8 Consumer Preview(64位)上失败。如果我在Windows Signature Enforcement关闭的情况下启动,它会正确安装,所以这绝对是一个签名问题。 Windows 7 & Windows 8中添加了哪些新要求,我需要遵循以便让我的驱动程序安装?

+0

FWIW:我用来修改我的图形驱动程序的.inf文件,使它们与我的系统一起工作。 (开箱即用的版本来自OEM,因此较老。)它在Windows XP和Windows 7(32位和64位)上运行良好,但Windows 8 64位告诉我可以'请勿因篡改而安装它,即使我已经关闭了签名强制执行。 :(我不知道他们做了什么,但它很烦人... – Mehrdad 2012-03-09 23:40:39

+0

FWIW:我必须为我的.inf创建一个.cat文件,然后测试签名.cat文件以使其安装在Windows 8 Customer预览X64。这使我相信,为了发布而部署它的唯一方式是需要来自证书颁发机构的代码签名证书。该.inf用于安装使用Microsoft的usbser.sys驱动程序的USB CDC设备。 – 2012-03-10 23:43:58

+0

如果有关于是否需要在Windows 8的最终版本中签署所有INF文件的任何官方词汇?在我想要了解签署我们所有司机的麻烦之前,我想知道。 – 2012-05-23 19:38:00

回答

4

重新生成您的cat文件,以使它们符合新Window OS的签名要求。

例如,在我的构建脚本我不得不添加8_X86,8_X64inf2cat命令:

inf2cat /driver:"%CD%" /os:XP_X86,XP_X64,Vista_X86,Vista_X64,7_X86,7_X64,8_X86,8_X64 

对于Windows 8.1,您将需要inf2cat包含在Windows驱动程序工具包(WDK)8.1取决于您的目标,将6_3_X64,6_3_X866_3_ARM添加到/ os:WindowsVersionList。

参考,Inf2Cat

+0

我一直在逃避没有猫文件,但我会试试这个。 – jeffm 2012-03-09 21:13:55

+0

这解决了这个问题,但它会提示用户是否要安装驱动程序。这并不理想,但它比不安装要好得多。 – jeffm 2012-03-12 18:59:36

+1

@jeffm:确保你也签署了你的猫文件。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff549830%28v=vs.85%29.aspx – 2012-03-12 19:26:15

4

我有同样的问题。我使用makecat来生成.cat文件,并且我从未在列出文件名的.cdf文件行的开始处包含“<HASH>”。这工作与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 

要说清楚,您必须添加文本“<散列>”(无引号)。这不是任何东西的占位符,而是真正的文字。 makecat稍后将用.cat文件中的文件的散列替换它。

为了使其更清晰,当然必须使用.cat文件和驱动程序的正确名称替换“xxx”。 :)

+1

什么是你的变化中的“哈希”? – 2012-03-10 08:05:19

+0

这是纯文本“”(无引号)。它不是占位符,这也是我的错误观念。 – cxxl 2012-03-10 12:24:54

相关问题