我的Windows驱动程序有一个.sys文件和一个.dll(我猜是驱动程序的编程接口?)。无论如何,我需要编译驱动程序以在Windows 7 64位上运行。我已经下载了DDK并且能够编译所有内容,但我的应用程序仍无法使用新驱动程序。
如果应用程序是32位应用程序,驱动程序DLL是否需要编译为32位DLL,而.sys文件是否为64位文件?或者SYS和DLL文件都需要是64位?
答案 0 :(得分:5)
在64位系统上:
如果DLL被设计为与设备驱动程序通信,则应仔细编写它以使用与驱动程序相同的数据类型定义。最好是驱动程序和DLL都避免使用在用于相互通信的结构中对32位和64位(例如size_t
)进行不同定义的数据类型。
但是,不意味着DLL应该构建为64位DLL(即使用x86-64指令集)。它应该使用链接到它的应用程序将使用的任何指令集。
答案 1 :(得分:0)