PFLT_TRANSACTION_NOTIFICATION_CALLBACK função de retorno de chamada (fltkernel.h)

Um driver de minifiltro pode registrar uma rotina do tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK como sua rotina TransactionNotificationCallback .

Sintaxe

PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;

NTSTATUS PfltTransactionNotificationCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] PFLT_CONTEXT TransactionContext,
  [in] ULONG NotificationMask
)
{...}

Parâmetros

[in] FltObjects

Ponteiro para uma estrutura FLT_RELATED_OBJECTS que contém ponteiros opacos para os objetos relacionados à operação atual.

[in] TransactionContext

Ponteiro para o contexto de transação do driver de minifiltro.

[in] NotificationMask

Especifica o tipo de notificações que o gerenciador de filtros está enviando para o driver de minifiltro, como um dos valores a seguir.

Valor Significado
TRANSACTION_NOTIFY_COMMIT Essa notificação é enviada quando a transação está sendo confirmada.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Para o Windows Vista SP1 e posterior, essa notificação é enviada quando a transação é totalmente confirmada (ou seja, quando todos os gerenciadores de recursos associados à transação, como o TxF, tiverem confirmado).
TRANSACTION_NOTIFY_PREPARE Essa notificação é enviada quando a transação entra na fase de preparação para confirmação.
TRANSACTION_NOTIFY_PREPREPARE Essa notificação é enviada quando a transação entra na fase de pré-preparação para confirmação.
TRANSACTION_NOTIFY_ROLLBACK Essa notificação é enviada quando a transação está sendo revertida ou anulada.

Retornar valor

A rotina PFLT_TRANSACTION_NOTIFICATION_CALLBACK retorna um dos seguintes valores NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
Retornar esse valor status indica que o driver de minifiltro foi concluído com a transação. Este é um código de êxito.
STATUS_PENDING
Retornar esse valor status indica que o driver de minifiltro ainda não foi concluído com a transação. Este é um código de êxito.

Comentários

Quando um driver de minifiltro se registra chamando FltRegisterFilter de sua rotina DriverEntry , ele pode registrar uma rotina do tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK como a rotina TransactionNotificationCallback do minifiltro.

Para registrar a rotina TransactionNotificationCallback , o 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.

O gerenciador de filtros chama essa rotina para notificar o driver de minifiltro sobre o status de uma transação na qual o driver de minifiltro está inscrito.

Se o driver de minifiltro retornar STATUS_PENDING dessa rotina de retorno de chamada, ele deverá chamar uma das seguintes rotinas para indicar que terminou de processar a notificação:

FltCommitComplete

FltPrepareComplete

FltPrePrepareComplete

FltRollbackComplete

Requisitos

Requisito Valor
Cliente mínimo com suporte A rotina de PFLT_TRANSACTION_NOTIFICATION_CALLBACK está disponível no Windows Vista e posterior.
Plataforma de Destino Área de Trabalho
Cabeçalho fltkernel.h (inclua Fltkernel.h)
IRQL PASSIVE_LEVEL

Confira também

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete