Фильтрация операций ввода-вывода в драйвере минифильтра
В следующем списке описано несколько рекомендаций по фильтрации определенных типов операций ввода-вывода в драйвере минифильтра файловой системы:
Подпрограмма обратного вызова перед операции для IRP_MJ_CREATE не может запрашивать или задавать контексты для файлов, потоков или дескрипторов потоков, так как во время предварительного создания создаваемый файл или поток (если таковые имеются) еще не определены.
Подпрограмма обратного вызова после операции для IRP_MJ_CLOSE не может задавать или запрашивать контексты для файлов, потоков или дескрипторов потоков, так как внутренние системные структуры, с которыми связаны эти элементы, освобождаются до вызова подпрограммы после закрытия.
Драйверы минифильтра никогда не должны завершаться сбоем IRP_MJ_CLEANUP или IRP_MJ_CLOSE операций. Эти операции могут быть выполнены, возвращены диспетчеру фильтров или завершены с помощью STATUS_SUCCESS. Однако подпрограмма обратного вызова перед операцией никогда не должна завершать эти операции сбоем.
Драйверы минифильтра не могут зарегистрировать подпрограмму обратного вызова после операции для IRP_MJ_SHUTDOWN.