在我问我的问题之前,这里有一些背景信息,这样你就可以更好地理解我正在努力实现的目标。我到处搜索,发现了类似的问题,但没有一个是我特别想问的。
我正在尝试将修改后的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位机器上运行得很好,但在这种情况下,用户应用程序使用的是PLX API,它最初只支持32位。我的用户应用程序在不更新的情况下仍然可以在64位操作系统下工作,还是会遇到问题?
发布于 2021-08-06 05:35:29
PLX PCI SDK (现在的Broadcom PCI/PCIe SDK)多年来一直支持具有相同源代码的32b/64b驱动程序。需要时使用特殊的宏,等等。在Windows中,由于WOW层,你的32位应用程序将工作得很好。PLX IOCTL结构始终将指针存储在64位字段中,以确保在构建32位应用程序时结构不会发生变化。SDK还提供了64位版本的API库,因此您也可以将应用程序构建为原生64位版本。在大多数情况下,相同的应用程序级别的源代码应该可以在Windows和Linux上运行。SDK中提供的示例都是Win/Linux的相同源代码。
https://stackoverflow.com/questions/14188716
复制相似问题