Re: Кто - нибудь писал tightly coupled drivers ?
От: Valerio Россия linkedin.com/in/boronin
Дата: 21.10.03 11:30
Оценка:
Здравствуйте, Exkurs, Вы писали:

E>Кто — нибудь их писал, у кого есть их примеры и какие ограничения есть для такого вида драйверов ?

E>Могут ли быть tightly coupled drivers не для PnP драйверов ?
в наших проектах последние 4 года обычно работает связка из 2-х tightly coupled drivers:
первый драйвер — настоящий file system filter driver
второй драйвер — функциональный драйвер реализующий собственно всю логику, клиент 1го драйвера

на фильтре лежат стандартные задачи: приаттачиться везде где нужно, следить за всем чем нужно (EX: mount events) и предоставить в конечном счете удобный для использования функциональным драйвером сервис:
— конструирование и кэш имен файлов
— подсчет ссылок на file objects
— правильно вызвать все IRP_MJ_XXX + FastIoXxx Pre & Post handlers.

При инициализации функдрайвера он регистрируется у первого драйвера и указывает на какие именно события он желает отвечать: например CreatePre & ClosePost (до вызова IoCallDriver в IRP_MJ_CREATE и после в IRP_MJ_CLOSE).

Соотв. задача написания нового фильтра сильно упрощается — можно сосредоточиться только на бизнес-логике и меньше отвлекаться на такие трудоемкие "мелочи" как конструирование имени файла в CreatePreHandler (до реального открытия файла фильтр УЖЕ вызывает обработчик функционального драйвера, если он есть, с ГОТОВЫМ именем файла)

соотв и не нужно каждый раз тратить время на bugfixing & QA фильтра — все это экономит на каждом новом фильтре "с нуля" около 6-9 мес труда разработчика (при использовании нашей среды с такой моделью)

кстати FDDK от OSR выполнено по схожему принципу — связка из нескольких драйверов...

но и написание такого универсального фильтра — задача далеко нетривиальная, на наш фильтр люди потратили 3 года еще до меня, а сейчас следующая версия выходит и продукту уже более 5 лет вложенных сюда точно получается

если нужна ссылка, то смотрите The File System Filter Framework for Windows, это первая версия продукта (выпущен довольно давно но по работает без проблем и на XР и на 2003 — есть даже бинарная совместимость начиная с НТ4). Скоро начнется рекламная компания второй версии, в разработке которой я уже принимал участие
... << RSDN@Home 1.1 beta 2 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.