2013-12-02 2 views
1

Я работаю над драйвером фильтра верхнего уровня, который контролирует запись/изменение в секторе, а затем устанавливает соответствующие биты этого сектора в моем собственном растровом изображении. Я использую пример diskperf, который представлен в WDK как базовый.Драйвер фильтра тома не контролирует некоторые системные файлы

В основном контролируются все записи/изменения в секторе и устанавливаются соответствующие биты. Моя проблема заключается в том, что мой драйвер фильтра не способен отслеживать определенные сектора, , например: $ MFT, $ MFTMirr и т. Д.

Но его способность отслеживать сектор $ LogFile. Может ли кто-нибудь сказать, какие атрибуты или флаги должны быть настроены для обработки всех типов IO записи, чтобы мой драйвер фильтра мог отслеживать все сектора, включая секторы системных файлов, такие как $ MFT и такие файлы?

Любая помощь будет оценена по достоинству. Заранее спасибо.

ответ

0

Если ваш драйвер является драйвером громкости, он должен получить все чтение/запись на этом томе. Но записи для $Mft или $MftMirror могут не проходить через громкость. Драйвер NTFS может непосредственно записывать на разделы/диск через private apis, пропускать стек томов. Следовательно, вы не увидите записи в своем драйвере.

+0

Привет, Спасибо, что ответили. Знаете ли вы какой-либо способ, чтобы я мог узнать в своем драйвере, когда все записи сделаны в файлах $ Mft? – user3057138

+0

@ user3057138, я думаю, вам нужно спуститься в стек. Запишите драйвер фильтра диска, чтобы получить эти операции ввода-вывода. – Rohan

+0

@ user3057138: или кража основных записей функций из драйвера NTFS? Это рискованно. – 0xC0000022L

Смежные вопросы