DDK / WDM开发问题...驱动程序不会在x64 windows平台上加载

时间:2010-03-17 19:22:59

标签: 64-bit device-driver wdk itanium wdm

我是DDK / WDM驱动程序开发领域的初学者。 我有一项任务涉及将虚拟设备驱动程序从x86移植到x64(英特尔)。 我得到了源代码,我对它进行了一些修改,并使用DDK(构建环境)成功编译了它。但是当我试图在ia64 Windows7机器上加载它时,它不想加载。 然后我尝试了一些简单的设备驱动程序示例来自

- http://www.codeproject.com/KB/system/driverdev.aspx(我把' - '发布超链接)和其他链接但仍然是同样的问题。

我在一个论坛上听说你用来链接的某些库与新机器不兼容,并建议链接到另一个类似的库......但仍然没有用。

构建时,我按照建议使用“-cefw”命令行参数。

我没有联系* .inf文件,但我在system32 / drivers中复制它,我正在使用WinObj查看下次重启是否已加载到内存中。

我也试过这个程序(http://www.codeproject.com/KB/system/tdriver.aspx)将驱动程序加载到内存中,但仍然没有为我工作。

请帮帮我...我坚持这个,我的截止日期已经过去了。 我觉得我在这里试图发现我做错了什么。

3 个答案:

答案 0 :(得分:1)

所以,总结一切:

  1. 您需要构建corect架构(适用于Intel / AMD CPU的x64)。
  2. 必须签署您的驱动程序。即使在具有自签名证书的测试模式下,您也必须这样做。没有其他选择。
  3. 必须使用.inf文件进行安装。如果驱动程序是非pnp,那么您不需要.inf文件,但驱动程序不太可能是非pnp。在这种情况下,您需要使用sc.exe在服务控制管理器中手动创建驱动程序的关联服务,或者使用SCM API以编程方式创建。如果驱动程序是pnp(最有可能),则必须通过.inf文件(使用devcon.exe或其他方式)安装它。此外,安装它与加载它是不同的。为此,必须存在适当的硬件,或者必须在软件中枚举它(以devcon.exe为例)。

答案 1 :(得分:0)

我没有写过驱动程序,但根据我从同事那里听到的内容:您的驱动程序是否已经过数字签名?如果没有,请查找有关在64位系统上加载未签名驱动程序的信息。

答案 2 :(得分:0)

两件事:

  1. 您提到x64(也称为x86-64,AMD64或EMT64)和IA64(Itanium)。您了解它们是两种完全不同的架构,对吧?你有安腾系统吗?如果没有,您不应该使用IA-64构建环境编译任何内容。它不能在标准PC(32或64)上运行。

  2. 在64位下,驱动程序必须进行数字签名以供生产使用。您需要从Verisign获得Authenticode证书或类似证书。出于测试目的,您可以在启动时按F8绕过签名检查。您也可以使用测试证书进行签名。

    http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx