Поделиться через


Фильтрация операций ввода-вывода в драйвере минифильтра

В следующем списке описано несколько рекомендаций по фильтрации определенных типов операций ввода-вывода в драйвере минифильтра файловой системы:

  • Подпрограмма обратного вызова перед операции для IRP_MJ_CREATE не может запрашивать или задавать контексты для файлов, потоков или дескрипторов потоков, так как во время предварительного создания создаваемый файл или поток (если таковые имеются) еще не определены.

  • Подпрограмма обратного вызова после операции для IRP_MJ_CLOSE не может задавать или запрашивать контексты для файлов, потоков или дескрипторов потоков, так как внутренние системные структуры, с которыми связаны эти элементы, освобождаются до вызова подпрограммы после закрытия.

  • Драйверы минифильтра никогда не должны завершаться сбоем IRP_MJ_CLEANUP или IRP_MJ_CLOSE операций. Эти операции могут быть выполнены, возвращены диспетчеру фильтров или завершены с помощью STATUS_SUCCESS. Однако подпрограмма обратного вызова перед операцией никогда не должна завершать эти операции сбоем.

  • Драйверы минифильтра не могут зарегистрировать подпрограмму обратного вызова после операции для IRP_MJ_SHUTDOWN.