2

在我问我的问题之前,这里有一些背景信息,以便您可以更好地了解我要完成的工作。我四处搜索并发现了类似的问题,但没有一个是我要问的。

我正在尝试将修改后的 32 位 PLX Pci9056 设备驱动程序移植到 64 位。我还有一些使用该驱动程序的用户应用程序。PLX 提供完整的 SDK,包括 dll 中的 PLX API、驱动程序源代码以及用于创建和调试用户应用程序的工具。它使用 Windows DDK 构建环境来构建驱动程序。以下是它们的交互方式:

用户应用程序 --> PLX API --> PLX Pci 9056 驱动程序 --> PLX 芯片

32 位驱动程序已经在 Windows 7 32 位系统上测试并且可以正常工作。我相信我应该能够简单地在 64 位 Windows DDK 构建环境中重建驱动程序(当然在处理任何指针转换之后。如果我错了,请纠正我。)此时驱动程序应该在 64- 上正常运行位Windows 7机器。

我知道通常 32 位应用程序可以在 64 位机器上正常运行,但在这种情况下,用户应用程序使用的是最初仅为支持 32 位而构建的 PLX API。我的用户应用程序在不更新的情况下是否仍可在 64 位操作系统中运行,还是会遇到问题?

4

1 回答 1

0

PLX PCI SDK(现为 Broadcom PCI/PCIe SDK)多年来一直支持具有相同源代码的 32b/64b 驱动程序。需要时使用特殊宏等。在 Windows 中,由于 WOW 层,您的 32 位应用程序将正常工作。PLX IOCTL 结构始终将指针存储在 64 位字段中,以确保在构建 32 位应用程序时结构不会发生变化。SDK 还提供 API 库的 64 位构建,因此您也可以将您的应用程序构建为原生 64 位。在大多数情况下,相同的应用程序级源代码应该可以在 Windows 和 Linux 中运行。SDK 中提供的示例对于 Win/Linux 都是相同的源。

于 2021-08-06T05:35:29.270 回答