Compartilhar via


Função FltPrePrepareComplete (fltkernel.h)

A rotina FltPreprepareComplete reconhece uma notificação de TRANSACTION_NOTIFY_PREPREPARE.

Sintaxe

NTSTATUS FLTAPI FltPrePrepareComplete(
  [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.

Retornar valor

FltPrepareComplete retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como o seguinte:

Código de retorno Descrição
STATUS_NOT_FOUND
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 é inscrito em uma transação pode receber uma notificação de TRANSACTION_NOTIFY_PREPREPARE quando a transação entra na fase de pré-preparação para confirmação. Para enviar a notificação 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 FltPrePrepareComplete.
  • 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 trabalho do driver de minifiltro deve chamar FltPrePrepareComplete para indicar que concluiu esse processamento. Se a rotina de trabalho do driver de minifiltro não chamar FltPrePrepareComplete, a operação de pré-preparação da transação não poderá ser concluída pelo gerenciador de transações do kernel.
Para registrar uma rotina TransactionNotificationCallback , um driver de minifiltro armazena o endereço de uma rotina do tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK no membro TransactionNotificationCallback da estrutura FLT_REGISTRATION que o driver de minifiltro passa como o parâmetro Registration de FltRegisterFilter.

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
Cliente mínimo com suporte Essa rotina está disponível no Windows Vista e posterior.
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Confira também

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK