3

我正在尝试使用 Windows DDK 8.1 和 VS 2013 对驱动程序进行签名,但我不断收到相同的错误。但是,当我尝试对 DDK 8.0 做同样的事情时,它工作得很好。

为了确保这不是我所做的事情,我从 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 也不能解决任何问题。

谁能提供一些关于为什么会发生这种情况以及我如何解决它的见解?

谢谢你。

4

1 回答 1

0

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

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

只需以管理员身份运行 mklink(一定要备份 8.1 版本的 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
于 2014-11-13T16:16:51.023 回答