DDK/WDM 开发问题...驱动程序无法在 x64 windows 平台上加载
我是DDK/WDM驱动开发领域的初学者。 我有一个任务涉及将虚拟设备驱动程序从 x86 移植到 x64 (intel)。 我拿到了源代码,我对其进行了一些修改,并使用DDK(构建环境)成功编译了它。但是当我尝试在 ia64 Windows7 机器上加载它时,它不想加载。 设备驱动程序的一些简单示例
然后我尝试了来自--http://www.codeproject 的 。 com/KB/system/driverdev.aspx (我输入“--”以便能够发布超链接)和其他链接,但仍然存在同样的问题。
我在论坛上听说您用来链接的某些库与新机器不兼容,并建议链接到另一个类似的库......但仍然不起作用。
当我构建时,我按照建议使用“-cefw”命令行参数。
我没有关联的 *.inf 文件,但我将其复制到 system32/drivers 中,并使用 WinObj 来查看下次重新启动时它是否已加载到内存中。
我也尝试过这个程序( http://www.codeproject.com/KB/system/ tdriver.aspx )将驱动程序加载到内存中,但仍然对我不起作用。
请帮助我...我被困在这个问题上并且我的截止日期已经过去了。 我觉得我在这里发疯了,试图发现我做错了什么。
I am a beginner at DDK/WDM driver developing field.
I have a task which involves porting a virtual device driver from x86 to x64 (intel).
I got the source code, I modified it a bit and compiled it succesfuly with DDK (build environments). But when I tried to load it on a ia64 Windows7 machine it didn't want to load.
Then I tried some simple examples of device drivers from
--http://www.codeproject.com/KB/system/driverdev.aspx (I put '--' to be able to post the hyperlink) and from other links but still the same problem.
I hear on a forum that some libraries that you use to link are not compatible with the new machines and suggested to link to another similar libraries...but still didn't worked.
When I build I use "-cefw" command line parameters as suggested.
I do not have an *.inf file asociated but I'm copying it in system32/drivers and I'm using WinObj to see if next restart it's loaded into the memory.
I also tried this program ( http://www.codeproject.com/KB/system/tdriver.aspx ) to load the driver into the memory but still didn't worked for me.
Please please help me...I'm stuck on this and my deadline already passed.
I feel I'driving nuts in here trying to discover what am I doing wrong.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因此,总结一下一切:
So, to summarize everything:
我没有编写驱动程序,而是根据我从同事那里听到的信息:您的驱动程序有数字签名吗?如果没有,请查找有关在 64 位系统上加载未签名驱动程序的信息。
I did not wrote a driver, but on the basis on what I hear from colleagues: Are your driver digitaly signed? If not, look for information on loading unsigned drivers on 64bit systems.
两件事:
您提到了 x64(也称为 x86-64、AMD64 或 EMT64)和 IA64 (Itanium)。你知道它们是两种完全不同的架构,对吧?您有安腾系统吗?如果不是,则不应使用 IA-64 构建环境来编译任何内容。它无法在标准 PC(32 或 64)上运行。
在 64 位下,驱动程序必须经过数字签名才能用于生产。您需要从 Verisign 或类似机构获取 Authenticode 证书。出于测试目的,您可以在启动时按 F8 来绕过签名检查。您还可以使用测试证书进行签名。
http://www.microsoft.com/whdc/winlogo/drvsign /drvsign.mspx
Two things:
You mention both x64 (also called x86-64, AMD64, or EMT64) and IA64 (Itanium). You understand they are two completely different architectures, right? Do you have an Itanium System? If not, you should not be compiling anything using the IA-64 build environment. It won't run on a standard PC (32 or 64).
Under 64-bit, the driver must digitally signed for production use. You will need to get an Authenticode certificate from Verisign or similar. For testing purposes, you can bypass the signature check by pressing F8 at boot time. You can also sign with a test certificate.
http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx