Мы хотели бы поддержать некоторое оборудование, которое недавно было прекращено. Драйвер для оборудования представляет собой простую 32-битную C DLL. У нас нет исходного кода, и (по юридическим причинам) мы не заинтересованы в декомпиляции или обратном проектировании драйвера.
Аппаратное обеспечение быстро отправляет тонны данных, поэтому протокол связи должен быть довольно эффективным.
Наше программное обеспечение является родным 64-битным приложением C ++, но мы хотели бы получить доступ к оборудованию через 32-битный процесс. Как эффективный и элегантный способ взаимодействия 32-разрядных и 64-разрядных приложений друг с другом (в идеале не требующий изобретения нового протокола)?
Решение должно быть на C / C ++.
Обновление: несколько респондентов попросили уточнить, был ли это драйвер в пользовательском режиме или в режиме ядра. К счастью, это драйвер пользовательского режима.