Драйвер-фильтр файловой системы
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 13.12.07 20:16
Оценка:
Приветствую, уважаемые!

Заранее прошу сильно не пинать за ламерские вопросы, в поиске был, пока тема для меня новая, потому уповаю на ваши пинки.

Задача стоит простая: ознакомиться на личном примере с написанием простейшего фильтра файловой системы. Фильтр, собственно, должен делать только одно: если запрошенный объект файловой системы (файл, папка) удовлетворяет каким-то критериям, то запретить к нему доступ. Вопросы буквально следующие:

1. Я правильно понимаю, что надо ставить обработчик на IRP_MJ_CREATE, и возвращать

Irp->IoStatus.Status = STATUS_INVALID_DEVICE_REQUEST;


если мы хотим запретить доступ к объекту?

2. Посмотрел исходник sfilter из IFS SDK — там черт ногу сломит. Сильно подозреваю, что существует некая базовая совсем минимальная функциональность, которую мне надо реализовать. Пните в нужном направлении, плз.

3. Как правильно осуществлять обмен данными между фильтром и программой user-mode? Задача в общем-то типовая: программа хранит список правил фильтрации и при добавлении/удалении/изменении правила должна как-то сообщить об этом драйверу. Сильно подозреваю, что дергать прогу из драйвера на каждый IRP_MJ_CREATE — это ну совсем атас.

4. Я правильно понимаю, что функциональность minifilter поддерживается начиная с WinXP SP2? И если да, то стало быть единственный путь, позволяющий фильтровать файловую систему на WinXP ниже SP2 — это полноценный file system filter driver?

5. И последний: подозреваю, что времени на грамотное вхождение в тему уйдет просто масса, потому как бы два подвопроса: а) что посоветуете почитать _онлайн_ и, б) сколько будет стоить разработка драйвер-фильтра с подобной функциональностью (надо лишь запрещать достп к объектам файловой системы, если матчится правило, например, запретить доступ к "C:\Windows", и чтобы этой папки вообще не было видно в файловой системе, как если бы ее не было)?

Извиняюсь за обилие вопросов, но плодить кучу маленьких ламерских топиков имхо еще хуже Буду благодарен за ваши ответы.
<< Рабство не отменено — оно сменилось 8-часовым рабочим днем. >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.