Windows x64上32位和64位应用程序之间的进程间通信

Bri*_*pie 3 c++ winapi interprocess

我们想支持最近停产的一些硬件.硬件的驱动程序是一个普通的32位C DLL.我们没有源代码,并且(出于法律原因)对驱动程序的反编译或逆向工程不感兴趣.

硬件快速发送大量数据,因此通信协议需要非常高效.

我们的软件是原生的64位C++应用程序,但我们希望通过32位进程访问硬件.什么是32位和64位应用程序相互通信的有效,优雅的方式(理想情况下,这不涉及发明新协议)?

解决方案应该是C/C++.

更新:一些受访者要求澄清这是用户模式还是内核模式驱动程序.幸运的是,它是一个用户模式驱动程序.

Han*_*ant 6

如果这是一个真正的驱动程序(内核模式),那么你就是SOL.Vista x64不允许安装未签名的驱动程序.它只是一个用户模式DLL,您可以通过使用任何标准IPC机制来获得修复.管道,套接字,进程外COM,大致按顺序排列.它都以总线速度运行,因此只要您可以缓冲足够的数据,上下文切换开销不应该太大.