将PLX 32位设备驱动程序移植到64位驱动程序

时间:2013-01-07 01:31:01

标签: windows 64-bit driver device-driver 32-bit

在我提出问题之前,这里有一些背景信息,以便您可以更好地理解我想要完成的任务。我一直在寻找并找到类似的问题,但没有一个是我特别要求的问题。

我正在尝试将修改后的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位机器上运行正常,但在这种情况下,User应用程序使用的PLX API最初只是为了支持32位而构建的。我的用户应用程序是否仍可在64位操作系统中运行而无需更新,或者我是否会遇到问题?

1 个答案:

答案 0 :(得分: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 都是相同的来源。