2016-07-28 4 views
0

Я пытаюсь разработать драйвер файловой системы Minifilter для перехвата операций ввода-вывода и определения изменений уровня диска, сделанных для определенного файла. Я нашел пример кода в образцах драйвера Windows, документ https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/.Minifilter для обнаружения изменений уровня блока или уровня диска, внесенных в файл?

Это мое требование: каждый раз, когда операция записи происходит в определенном файле, мне нужно отфильтровать его и выяснить, какие изменения на уровне диска для файла выполняются этой операцией записи. Но я не уверен, какую операцию ввода-вывода я должен фильтровать для своих требований. Пожалуйста, укажите мне в правильном направлении. Я делаю это для инкрементного резервного копирования.

ответ

0

, если вы заинтересованы в изменениях на уровне дисков вам нужно искать только FLTFL_CALLBACK_DATA_IRP_OPERATION с IrpFlags & IRP_NOCACHE

+0

Можете ли вы быть более сложным? –

+0

Изменения уровня диска никогда не выполнялись в fast-io - поэтому вам нужно искать только операции FLTFL_CALLBACK_DATA_IRP_OPERATION. то нужно искать флаги Irp, только если IRP_NOCACHE - будет изменяться на уровне диска. поэтому вам нужны запросы фильтров в обратном вызове PreWrite по этим двум критериям – RbMm