为什么inf2cat会因Windows DDK 8.1而失败?

时间:2013-11-03 06:08:44

标签: driver wdk

我正在尝试使用Windows DDK 8.1和VS 2013签署驱动程序,但我不断遇到同样的错误。但是,当我尝试用DDK 8.0做同样的事情时,它的工作正常。

为了确保它不是我做过的事情,我下载了sample driver from MSDN并尝试构建它。下载的示例会导致相同的错误。

以下是使用8.0套件版本的示例输出:

C:\Program Files (x86)\Windows Kits>8.0\bin\x86\Inf2Cat.exe /os:8_x64 "/driver:C:\code\NDIS\C++\x64\Win8Release\package"

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

Errors:
None

Warnings:
None

Catalog generation complete.
C:\code\NDIS\C++\x64\Win8Release\package\netvmini60.cat
C:\code\NDIS\C++\x64\Win8Release\package\netvmini620.cat
C:\code\NDIS\C++\x64\Win8Release\package\netvmini630.cat

这是使用8.1套件完全相同的命令(为了便于阅读而添加了包装):

C:\Program Files (x86)\Windows Kits>8.1\bin\x86\Inf2Cat.exe /os:8_x64 "/driver:C:\code\NDIS\C++\x64\Win8Release\package"

......................
The integrity check for the Windows file protection data file
'C:\Program Files (x86)\Windows Kits\8.1\bin\x86\WindowsProtectedFiles.xml'
has failed. This is most likely due to a modification of the file's contents.
To fix the problem, obtain a valid copy of the file from Microsoft, restore
the file to its original state, or reinstall the application.
Signability test failed.

当我使用Visual Studio时,出现以下错误:

TRACKER : error TRK0002: Failed to execute command: ""C:\Program Files
(x86)\Windows Kits\8.1\bin\x86\inf2cat.exe" /os:7_x64 /driver:C:\code\NDIS\C++
x64\Win7Release\package\". The handle is invalid.

我检查了错误中提到的WindowsProtectedFiles.xml文件的内容,看起来该文件在8.0和8.1之间没有变化。我搜索了另一个版本,但一直找不到任何东西。重新安装DDk也无法解决任何问题。

任何人都可以提供一些见解,说明为什么会发生这种情况以及如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:0)

我终于得到了合理的解决方法。从技术上讲,这不是您的问题的答案,但结果确实从visual studio 2013中产生了完全可操作的驱动程序部署。

我最终只是将x86 8.0版本的inf2cat符号链接到8.1 x86目录,现在每个人都很开心,我可以继续我的生活。

只需以管理员身份运行mklink(确保制作8.2版inf2cat的备份副本):

C:\Program Files (x86)\Windows Kits\8.1\bin\x86>mklink Inf2Cat.exe "C:\Program Files (x86)\Windows   Kits\8.0\bin\x64\Inf2Cat.exe"

symbolic link created for Inf2Cat.exe <<===>> C:\Program Files (x86)\Windows Kits\8.0\bin\x64\Inf2Cat.exe