Re: Общение serial port драйвера c user-mode.
От: Vovkos Россия https://ioninja.com
Дата: 28.07.02 22:49
Оценка: 4 (1)
Здравствуйте Andrew S, Вы писали:

AS>Привет всем. Жизнь заставляет писАть драйвер ком-порта, при этом возникает необходимость общения с user-mode приложением (для управления поведением драйвера, вызовом некоторых функций и т.п.).

AS>Очевидно, для общения с драйвером посредством отложенного DeviceIoControl необходимо получить хандл драйвера. Также очевидно, что напрямую сделать ЭТО в случае с ком портом не представляется возможным, т.к. такой хандл должно мочь создать приложение пользователя. Очевидно, есть 2 решения.
AS>1. Писать filter драйвер. Ну, или совмещать его функциональность в основном.
AS>2. Использовать неизвестные мне недокументированные возможности и создавать таки хандл (точнее, его копию) из юзер моде.
AS>Интересует следующее.
AS>а) Возможно ли совместить функционал 2-х типов драйверов в одном, т.е. сначала сделать IoCreateDevice и IoAttachDeviceToDeviceStack для собственно драйвера последовательного порта, а потом сделать в нем же так называемый вторичный девайс, спеиально для общения с нашим управляющим user-mode приложением, и потом тоже его IoAttachDeviceToDeviceStack. Соотв., управляющее юзер-моде приложение будет создавать объект вторичного девайса, а приложение пользователя — первичного. (?) какие параметры передавать IoCreateDevice в этом случае для успешной работы вторичного девайса. Очевидно, в этом случае на функциях IOCTLххх и IRP_ххх прижется разбирать, какой именно драйвер вызывается.
AS>б) Другие варианты.

AS>Возможно, я что то недопонимаю, т.к. опыта написания таких драйверов немного.

AS>Всем спасибо за советы.

Просто создай для общения с приложением второй девайс (DEVICE_TYPE возьми какойнть начиная с 0x8000) и симболик линк для него создай, и все. Никуда его аттачить не надо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.