Função FltCommitFinalizeComplete (fltkernel.h)
A rotina FltCommitFinalizeComplete reconhece uma notificação de TRANSACTION_NOTIFY_COMMIT_FINALIZE.
Sintaxe
NTSTATUS FLTAPI FltCommitFinalizeComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parâmetros
[in] Instance
Ponteiro opaco para uma instância de um driver de minifiltro. Esse parâmetro é necessário e não pode ser NULL.
[in] Transaction
Ponteiro opaco para a transação em que o driver de minifiltro está inscrito no momento. Esse parâmetro é necessário e não pode ser NULL.
[in, optional] TransactionContext
Ponteiro para o contexto do driver de minifiltro para a transação. Esse parâmetro é opcional e pode ser NULL.
Retornar valor
FltCommitFinalizeComplete retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:
Código de retorno | Descrição |
---|---|
|
O driver de minifiltro não definiu um contexto na transação. Este é um código de erro. |
Comentários
Um driver de minifiltro que está inscrito em uma transação pode receber uma notificação TRANSACTION_NOTIFY_COMMIT_FINALIZE quando a transação estiver totalmente confirmada (ou seja, quando todos os gerenciadores de recursos associados à transação, como TxF, tiverem confirmado). Para um driver de minifiltro antivírus que executa verificações fora das transações, você pode usar esse valor de notificação para determinar quando o driver deve iniciar a verificação de arquivos.
Para enviar a notificação TRANSACTION_NOTIFY_COMMIT_FINALIZE para o driver de minifiltro, o gerenciador de filtros chama a rotina TransactionNotificationCallback do driver de minifiltro. O driver de minifiltro reconhece essa notificação de duas maneiras:
- A rotina TransactionNotificationCallback do driver de minifiltro executa qualquer processamento necessário e retorna STATUS_SUCCESS. (Nesse caso, o driver de minifiltro não chama FltCommitFinalizeComplete.)
- A rotina TransactionNotificationCallback do driver de minifiltro posta qualquer processamento necessário em um thread de trabalho e retorna STATUS_PENDING. Depois de executar o processamento de forma assíncrona, a rotina de thread de trabalho do driver de minifiltro deve chamar FltCommitFinalizeComplete para indicar que ele terminou esse processamento. Se a rotina de thread de trabalho do driver de minifiltro não chamar FltCommitFinalizeComplete, determinados recursos do sistema serão vazados.
Para se inscrever em uma transação, chame FltEnlistInTransaction.
Para alocar um novo contexto de transação, chame FltAllocateContext.
Para recuperar um contexto de transação, chame FltGetTransactionContext.
Para excluir um contexto de transação, chame FltDeleteTransactionContext ou FltDeleteContext.
Para definir um contexto de transação, chame FltSetTransactionContext.
Para obter mais informações, consulte Notificações de transação.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista Service Pack 1 (SP1) e posterior. |
Plataforma de Destino | Universal |
Cabeçalho | fltkernel.h (inclua Fltkernel.h) |
Biblioteca | Fltmgr.lib |
IRQL | <= APC_LEVEL |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de