Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um driver de minifiltro chama fltSetCancelCompletion para especificar uma rotina de cancelamento a ser chamada se uma determinada operação de E/S for cancelada.
Sintaxe
NTSTATUS FLTAPI FltSetCancelCompletion(
[in] PFLT_CALLBACK_DATA CallbackData,
[in] PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
);
Parâmetros
[in] CallbackData
Ponteiro para a estrutura de dados de retorno de chamada (FLT_CALLBACK_DATA) para a operação de E/S. A operação deve ser uma operação de E/S baseada em IRP e não deve ser uma operação de E/S de paginação. 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. Esse parâmetro é necessário e não pode ser NULL.
[in] CanceledCallback
Ponteiro para uma rotina de cancelamento fornecida pelo chamador. O Gerenciador de Filtros chamará essa rotina se a operação de E/S representada por CallbackData for cancelada.
Essa rotina é declarada da seguinte maneira:
typedef VOID
(*PFLT_COMPLETE_CANCELED_CALLBACK) (
IN PFLT_CALLBACK_DATA CallbackData
);
CallbackData
Ponteiro para a estrutura de FLT_CALLBACK_DATA para a operação de E/S.
Valor de retorno
FltSetCancelCompletion retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado.
Observações
FltSetCancelCompletion especifica uma rotina de cancelamento para uma operação de E/S baseada em IRP que deve ser postada em uma fila de trabalho.
Os drivers de minifiltro geralmente chamam FltSetCancelCompletion para uma operação de E/S imediatamente antes de chamar FltQueueDeferredIoWorkItem para postar a operação em uma fila de trabalho.
Não chame FltSetCancelCompletion para qualquer operação de E/S que deve ser postada em uma fila de dados de retorno de chamada com segurança de cancelamento usando as rotinas deFltCbdq Xxx.
O Gerenciador de Filtros chama a rotina CanceledCallback sem manter o sistema cancelar o bloqueio de rotação ou executar qualquer outra sincronização. Qualquer sincronização necessária deve ser fornecida pelo próprio driver de minifiltro.
Para cancelar uma operação de E/S, chame fltCancelIo.
Requisitos
| Requisito | Valor |
|---|---|
| da Plataforma de Destino | Universal |
| cabeçalho | fltkernel.h (inclua Fltkernel.h) |
| biblioteca | FltMgr.lib |
| de DLL | Fltmgr.sys |
| IRQL | <= DISPATCH_LEVEL |