Поддержка контекстов минифильтра
Диспетчер фильтров предоставляет поддержку, позволяющую драйверам минифильтра связывать контексты с объектами для сохранения состояния при операциях ввода-вывода. К объектам, которые могут иметь контексты, относятся файлы, тома, экземпляры, потоки, дескрипторы потоков и транзакции. Сведения о реализации минифильтра см. в разделе О контекстах минифильтра .
Сторонние файловые системы должны использовать структуру FSRTL_ADVANCED_FCB_HEADER (а не структуру FSRTL_COMMON_FCB_HEADER ) для правильной работы с контекстами потоков и обработки потоков.
Контексты могут быть выделены из страничного или невыгружаемого пула, за исключением контекстов томов, которые должны быть выделены из невыгружаемого пула.
Контексты освобождаются автоматически при освобождении всех невыполненных ссылок. Если драйвер минифильтра определяет подпрограмму обратного вызова очистки контекста, диспетчер фильтров вызывает подпрограмму до освобождения контекста.
Диспетчер фильтров выполняет удаление контекстов при удалении связанного объекта, при отключении экземпляра и при выгрузке драйвера мини-фильтра.
Контексты не поддерживаются для файлов подкачки или во время следующих операций:
Предварительная обработка для запросов на создание
Обработка после операции для запросов на закрытие
Обработка запросов IRP_MJ_NETWORK_QUERY_OPEN
Пример драйвера минифильтра, использующего контексты, см. в примере CTX .
Процедуры поддержки диспетчера фильтров для управления контекстом
Диспетчер фильтров предоставляет множество подпрограмм поддержки контекста поддержки для минифильтров:
Создание и регистрация контекстов:
Настройка контекстов:
Контексты запросов:
Получение контекстов и ссылки на их контексты:
Освобождение и удаление контекстов: