在win7中没有加载DDK样本passthru

时间:2012-10-22 08:46:57

标签: window driver wdk ndis passthru

我正在开发基于ddk示例“passthru”的驱动程序,我在win7(x86或x64)中加载此驱动程序时遇到问题。我已经在winxp(x86和x64)中测试了我的驱动程序,它运行得很好,但是当我尝试将此驱动程序加载到win7(F8->禁用驱动程序签名强制执行)时,它似乎失败了。然后,我尝试了原生的passthru代码,它也失败了。我认为它失败了,因为

  1. 我看不到任何使用KdPrint fron windbg的输出。
  2. 我看不到系统事件中的任何有用信息。
  3. 我在passthru上设置了一个断点!DriverEntry,似乎没有调用DriverEntry。
  4. 我的WDK是7600.16385.1,而passthru应该与win7兼容。我使用命令“build -cZ”编译passthru。 你能帮我理解这个问题,或者为什么passthru没有加载到win7中的任何线索?

    我在win7 x86检查构建环境中构建了此驱动程序,并在win7 x86中进行了测试。

    解决:实际上,驱动程序已经加载,但是默认情况下win7中没有显示KdPrint的输出,你应该使用KdPrintEx来指定消息级别,或者修改注册表来显示调试消息。现在我不知道为什么bp也失败了。

2 个答案:

答案 0 :(得分:0)

通常,您无法在Win7计算机上使用为WinXP目标构建的驱动程序。重建Win7目标。

答案 1 :(得分:0)

你的问题很不明确,但我在这里看到一个特殊的问题:启用测试签名和禁用内核模式签名策略仍然要求你签署二进制文件...(在WHQL测试之后) MS将交叉签名驱动程序的.cat文件。请参阅this

请参阅:

  

对于64位版本的Windows Vista和更高版本的Windows,   内核模式代码签名策略要求所有内核模式代码   有数字签名。

  

操作系统加载程序和内核加载驱动程序   由任何证书签署。不需要证书验证   链接到受信任的根证书颁发机构。但是,每一个   驱动程序映像文件必须具有数字签名。

这些命令应允许加载使用任何

签名的驱动程序
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

您没有提到在构建时选择的目标操作系统。 Icepack提到了它。您需要实际构建 for Windows 7才能使其与新的NDIS 6.0一起使用。只需加载为XP(和较旧的NDIS版本)构建的驱动程序可能根本不起作用。

我的建议,使用DDKBUILD.CMD并使用(免费版本,W7)构建一个驱动程序:

ddkbuild.cmd -W7 fre . -cZ

和一个(免费构建,WXP)

ddkbuild.cmd -W7XP fre . -cZ

上面的命令行已经考虑了你拥有的WDK。请注意,如果DDKBUILD.CMD无法检测到已安装的WDK,则必须将环境变量W7BASE设置为指向安装WDK的文件夹(带有install.htm的文件夹),通常类似于C:\WINDDK\7600.16385.1)。