Compartilhar via


Função FltCbdqDisable (fltkernel.h)

FltCbdqDisable desabilita a fila de dados de retorno de chamada de um driver de minifiltro.

Sintaxe

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

Parâmetros

[in, out] Cbdq

Ponteiro para a fila de dados de retorno de chamada.

Retornar valor

Nenhum

Comentários

FltCbdqDisable desabilita uma fila de dados de retorno de chamada para que não seja possível adicionar mais itens a ela.

Os drivers de minifiltro podem usar as rotinas FltCbdqXxx para implementar uma fila de dados de retorno de chamada para operações de E/S baseadas em IRP. Usando essas rotinas, os drivers de minifiltro podem tornar suas filas cancel-safe; o sistema lida de forma transparente com o cancelamento de E/S para os drivers de minifiltro.

As rotinas FltCbdqXxx só podem ser usadas para operações de E/S baseadas em IRP. Para determinar se uma determinada estrutura de dados de retorno de chamada representa uma operação de E/S baseada em IRP, use a macro FLT_IS_IRP_OPERATION .

Um driver de minifiltro normalmente chama FltCbdqDisable durante a remoção da instância ou o descarregamento do driver de minifiltro. Depois de chamar essa rotina, o driver de minifiltro deve esvaziar ou esvaziar a fila. Isso pode ser feito chamando FltCbdqRemoveNextIo repetidamente até que não haja mais itens na fila.

Consulte FltCbdqInitialize para obter detalhes sobre como criar uma fila de dados de retorno de chamada. Use FltCbdqInsertIo para adicionar uma solicitação de E/S à fila. Use FltCbdqRemoveIo para remover uma solicitação de E/S específica da fila ou FltCbdqRemoveNextIo para remover a próxima solicitação de E/S disponível.

Para reabilitar a fila depois de desabilitá-la, chame FltCbdqEnable.

Se a fila estiver protegida por um bloqueio de rotação em vez de um objeto mutex ou variável de recurso, o chamador de FltCbdqDisable poderá ser executado em IRQL <= DISPATCH_LEVEL. Se um mutex ou recurso for usado, o chamador deverá estar em execução em IRQL <= APC_LEVEL.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
IRQL Consulte a seção Observações.

Confira também

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo