Windows中的64/32位标准驱动程序转换

时间:2009-03-25 12:00:23

标签: 64-bit 32-bit wow64

这个问题基本上是对这个主题的跟进: Using a 64 bit driver in a 32 bit program. Windows

正如我所知,当我有一个64位驱动程序,它用于一组64位DLL时,我不能让32位进程调用DLL。我们现在使用一些有趣的interpocess通信来解决这个问题。

当使用像图形卡这样的“标准设备”时,如何发生自动64-32位转换是不清楚的。 Windows 64位操作系统下的任何32位应用程序都应该能够使用打印机驱动程序或使用某些Windows DLL在GDI上绘制内容。但是,微软必须为显卡或打印机进行32位到64位硬件驱动的转换。我知道WoW64为注册表和文件系统访问做了这个,但它是否也转换为标准驱动程序?

具体问题是,如果我们有硬件的64位WDM驱动程序,32位应用程序是否可以轻松使用,而Windows正在进行转换64< - > 32?

1 个答案:

答案 0 :(得分:2)

“标准设备”被视为“标准设备”,因为Windows本身对它们负责。在64位Windows的情况下,这意味着有64位和32位DLL。 32位DLL是特殊的,可以与64位内核(包括该内核中的驱动程序)通信。通常,32位DLL不与64位DLL通信,因为没有64位进程可以加载后面的DLL。