Função FltCbdqRemoveNextIo (fltkernel.h)
FltCbdqRemoveNextIo remove o próximo item correspondente na fila de dados de retorno de chamada de um minifiltro driver.
Sintaxe
PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo(
[in, out] PFLT_CALLBACK_DATA_QUEUE Cbdq,
[in, optional] PVOID PeekContext
);
Parâmetros
[in, out] Cbdq
Ponteiro para uma fila de dados de retorno de chamada com cancelamento seguro. Essa fila deve ter sido inicializada chamando FltCbdqInitialize.
[in, optional] PeekContext
Ponteiro para informações definidas pelo chamador que identificam o item correspondente. Esse parâmetro é opcional e pode ser NULL.
Valor de retorno
FltCbdqRemoveNextIo retorna um ponteiro para a estrutura de dados de retorno de chamada (FLT_CALLBACK_DATA) para o item que foi removido da fila ou NULL se nenhum item correspondente foi encontrado. FltCbdqRemoveNextIo retorna apenas itens para operações de E/S que ainda não foram canceladas.
Observações
FltCbdqRemoveNextIo remove o próximo item correspondente da fila de dados de retorno de chamada de um minifiltro driver.
Os drivers de minifiltro podem usar as rotinas deFltCbdq Xxx 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 canceladas. o sistema manipula de forma transparente o cancelamento de E/S para os drivers de minifiltro.
As rotinas xxx 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 (FLT_CALLBACK_DATA) representa uma operação de E/S baseada em IRP, use a macro FLT_IS_IRP_OPERATION.
Uma fila de dados de retorno de chamada é inicializada por FltCbdqInitialize. FltCbdqRemoveNextIo usa as rotinas fornecidas na tabela de expedição da fila para bloquear a fila e remover o próximo item correspondente da fila. A operação de remoção em si é executada pelo cbdqRemoveIo do driver de minifiltro rotina de retorno de chamada.
FltCbdqRemoveNextIo usa a rotina de retorno de chamada CbdqPeekNextIo da fila para verificar a fila em busca de itens correspondentes. O parâmetro PeekContext é passado para o cbdqPeekNextIo rotina de retorno de chamada para fazer loop por meio de itens correspondentes. O significado de PeekContext e os critérios para um item corresponder a um determinado PeekContext dependem inteiramente do driver de minifiltro.
Se a fila estiver protegida por um de bloqueio de rotação, em vez de um objeto de objeto mutex ou variável de recurso, o chamador de FltCbdqRemoveNextIo poderá ser executado no IRQL <= DISPATCH_LEVEL. Se um mutex ou recurso for usado, o chamador deverá estar em execução no IRQL <= APC_LEVEL.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
IRQL | Consulte a seção Comentários. |