Вопрос

У нас есть несколько устаревших компонентов, которые взаимодействуют с COM-портами, USB и т. д.

Я хотел бы создать программу .NET, которая будет эмулировать COM-порт и регистрировать трафик, передавая его куда-нибудь в конечную точку службы WCF или непосредственно в базу данных.Возможно, также обертывание реального COM-порта наподобие шаблона декоратора.

Я осмотрелся и нашел проект Com0Com на Sourceforge, но это довольно старый API и написан на C++.

Я понимаю, что могу решить эту конкретную проблему, создав драйвер линейного принтера и никогда не взаимодействуя с COM-портами, зарегистрированными в системе.Некоторые ссылки на это также будут высоко оценены.

Кто-нибудь сделал это?Как вы создаете системные ресурсы в .NET?

Это было полезно?

Решение

Вам придется написать драйвер, так работает Com0Com.Если эти компоненты выполняются внутри процесса, вы можете перехватить функции Windows API, например Microsoft Detours.

Для любого решения требуется C/C++, вы не можете написать этот код на управляемом языке.Хотя обход технически возможен, просто очень трудно получить права.Однако вы можете купить решение, ваши требования нередки, хотя и устарели.Достаточно устаревший, поэтому найти его может быть немного сложно.

Другие советы

Кто-нибудь сделал это?

Чтобы добавить к тому, что сказал Nobugz:

  • Когда я писал эмулятор COM-порта, я использовал образец драйвера последовательного порта в DDK (serial.sys).

  • Когда я писал оболочку/регистратор COM-порта, я делал это, начиная с примера драйвера фильтра параллельного порта в DDK (parport.sys).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top