Função FltPrepareComplete (fltkernel.h)
A rotina de FltPrepareComplete reconhece uma notificação de TRANSACTION_NOTIFY_PREPARE.
Sintaxe
NTSTATUS FLTAPI FltPrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parâmetros
[in] Instance
Ponteiro de instância opaco para o chamador.
[in] Transaction
Ponteiro de transação opaco para a transação.
[in, optional] TransactionContext
Ponteiro para o contexto de transação do driver de minifiltro.
Valor de retorno
FltPrepareComplete 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. |
Observações
Um driver de minifiltro que é inscrito em uma transação pode receber uma notificação TRANSACTION_NOTIFY_PREPARE quando a transação entra na fase de preparação para confirmação. Para enviar a notificação para o driver de minifiltro, o gerenciador de filtros chama a rotina de 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 FltPrepareComplete.
- O TransactionNotificationCallback do driver de minifiltro postagens de rotina qualquer processamento necessário para um thread de trabalho e retorna STATUS_PENDING. Depois de executar o processamento de forma assíncrona, a rotina de trabalho do driver de minifiltro deve chamar FltPrepareComplete para indicar que concluiu esse processamento. Se a rotina de trabalho do driver de minifiltro não chamar FltPrepareComplete, a operação de preparação da transação não poderá ser concluída pelo gerenciador de transações do kernel.
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.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | A rotina FltPrepareComplete está disponível no Windows Vista e posterior. |
da Plataforma de Destino | Universal |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
biblioteca | FltMgr.lib |
de DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |