Функция FltCbdqDisable (fltkernel.h)

FltCbdqDisable отключает очередь обратного вызова драйвера минифильтра.

Синтаксис

VOID FLTAPI FltCbdqDisable(
  [in, out] PFLT_CALLBACK_DATA_QUEUE Cbdq
);

Параметры

[in, out] Cbdq

Указатель на очередь данных обратного вызова.

Возвращаемое значение

None

Remarks

FltCbdqDisable отключает очередь данных обратного вызова, чтобы в нее больше не добавлялись элементы.

Драйверы минифильтра могут использовать подпрограммы FltCbdqXxx для реализации очереди данных обратного вызова для операций ввода-вывода на основе IRP. Используя эти процедуры, драйверы минифильтра могут сделать свои очереди отмены безопасными; система прозрачно обрабатывает отмену ввода-вывода для драйверов минифильтра.

Подпрограммы FltCbdqXxx можно использовать только для операций ввода-вывода на основе IRP. Чтобы определить, представляет ли данная структура данных обратного вызова операцию ввода-вывода на основе IRP, используйте макрос FLT_IS_IRP_OPERATION .

Драйвер минифильтра обычно вызывает FltCbdqDisable во время удаления экземпляра или выгрузки драйвера минифильтра. После вызова этой подпрограммы драйвер минифильтра должен очистить очередь или очистить ее. Это можно сделать, многократно вызывая FltCbdqRemoveNextIo , пока в очереди не останется никаких элементов.

Дополнительные сведения о создании очереди данных обратного вызова см. в статье FltCbdqInitialize . Используйте FltCbdqInsertIo , чтобы добавить запрос ввода-вывода в очередь. Используйте FltCbdqRemoveIo , чтобы удалить конкретный запрос ввода-вывода из очереди, или FltCbdqRemoveNextIo , чтобы удалить следующий доступный запрос ввода-вывода.

Чтобы повторно включить очередь после ее отключения, вызовите FltCbdqEnable.

Если очередь защищена спин-блокировкой , а не объектом мьютекса или переменной ресурса, вызывающий объект FltCbdqDisable может выполняться в IRQL <= DISPATCH_LEVEL. Если используется мьютекс или ресурс, вызывающий объект должен работать в среде IRQL <= APC_LEVEL.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
IRQL См. раздел "Примечания".

См. также раздел

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo