4

我是 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)将驱动程序加载到内存中,但仍然没有为我工作。

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

4

3 回答 3

1

所以,总结一切:

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

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

于 2010-03-17T19:39:28.230 回答
0

两件事情:

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

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

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

于 2010-03-18T13:53:32.523 回答