filter(intermediate) driver

From
Kirill Neznamov (2:5025/32.88)
To
All
Date
2002-01-17T10:41Z
Area
SU.WINDOWS.NT.PROG
Доброе время суток All!

Написал я сабж для серийного порта дабы перехватывать то что на модем
приходит.
(IRP_MJ_READ && IRP_MJ_WRITE).
Так вот выходит такая фигня - когда я открываю свой драйвер по CreateFile()
любая другая прога(например tmail) открыть модем не может.Однако утилитка
PortMon после своего запуска не блокирует ком порт.То бишь после запуска
PortMon прекрасно запускается tmail и инет дозвонка.Kак ребята из
systeminternals сделали это? Может это какая нить недокументированная фича и
надо что то в реестре прописать? Я в своем драйвере все сделал почти так же
как
и в их исходнике filemon только подключаюсь функцией
IoAttachDeviceToDeviceStack() к стеку драйвера ком порта вместо драйвера
файловой системы.

Затем в usermode приложение открываю свой драйвер так:
CreateFile("\\\\.\\sniffdrv",
           GENERIC_READ | GENERIC_WRITE,
           0, (так говорят в документации.Если вместо 0 FILE_SHARE_READ |
               FILE_SHARE_WRITE все равно не помогает )
           NULL,
           OPEN_EXISTING,
           FILE_ATTRIBUTE_NORMAL,
           NULL);
После CreateFile все проги которые хотят заюзать модем обламываются :(
Kогда я останавливаю свой сервис все работает нормально.
Kак это побороть? Подскажите хотя бы в каком направлении рыть.

P.S. кстати нашел в реестре в разделе CurrentControlSet\Services\Serial
параметр PermiteShare.У меня он был 0.Установил его в 1 - все осталось как и
было.:(

P.P.S Помогите плиз.Задолбался я уже 3 ночи подряд над этой фигней парится!!







С наилучшими пожеланиями,
                         KiR                    [Team BuZZ] [Team GoA ]
--- TM-Ed 1.14+
 * Origin: Кто не хочет - ищет причину,кто хочет - ищет возможность.                                 Goa_Dream_Station (2:5025/32.88)