gpt4 book ai didi

64-bit - 在 32 位程序中使用 64 位驱动程序。 window

转载 作者:行者123 更新时间:2023-12-05 00:09:17 29 4
gpt4 key购买 nike

这只是一个中途编程问题。首先,我有一张 PCI-Express 卡和 32/64 位驱动程序。目标操作系统必须是 Windows 64 位系统。我读到在 Vista64 下,所有驱动程序都必须是经过认证的 64 位驱动程序。这是 64 位操作系统下的一般限制吗?这是否也适用于“XP 64”或任何 Linux 系统?

因此,为简单起见,假设我在 Vista64 下为我的 PCIe 卡使用 64 位驱动程序,并且有一堆 64 位 DLL 来使用卡功能。另一方面,有一个大型的、遗留的 32 位 exe 程序需要使用 PCIe 设备。将程序转换为 64 位将是一项巨大的工作。

那么如何将 32 位程序和 64 位驱动程序结合在一起呢?我读到混合 32/64 位二进制文​​件和 DLL 根本不可能,但这对我来说很难相信。我确定您可以在 32 位应用程序中打印出 Vista64 下的文档,Windows 会以某种方式将其包装到 64 位打印机驱动程序中。

最佳答案

只有在 Vista 下才需要 64 位认证;非 Windows 平台没有认证机构,我不相信 XP 或 Windows Server 会检查认证(虽然不确定,它可能取决于您使用的服务包)。

如果您通过 Windows API 使用驱动程序,那么应该没有任何问题; Windows 将在内核中进行 32<->64 位转换。如果您尝试在自己的进程中加载​​驱动程序,那可能是不可能的。正如 Dirk 所说,您必须在自己的进程中运行它并通过 COM 服务器进行通信。如果您必须以更高权限的执行级别运行驱动程序并希望从用户模式调用它,我不确定您必须跳过哪些障碍。

希望您的 64 位 DLL 提供 32 位 API,或者 Windows 提供标准驱动程序接口(interface)(如果它是常见的 I/O 设备,如显示器或网卡)。

关于64-bit - 在 32 位程序中使用 64 位驱动程序。 window ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/602587/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com