1

这个问题基本上是对这个线程的跟进: 在 32 位程序中使用 64 位驱动程序。视窗

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

不清楚的是,当使用像显卡这样的“标准设备”时,自动 64<->32 位转换是如何发生的。Windows 64 位操作系统下的任何 32 位应用程序都应该能够使用打印机驱动程序或通过使用某些 Windows DLL 使用 GDI 绘制一些东西。微软必须将显卡或打印机的硬件驱动程序从 32 位转换为 64 位。我知道 WoW64 可以访问注册表和文件系统,但它是否也可以转换为标准驱动程序?

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

4

1 回答 1

2

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

于 2009-03-25T13:20:32.117 回答