PFLT_TRANSACTION_NOTIFICATION_CALLBACK función de devolución de llamada (fltkernel.h)

Un controlador de minifiltro puede registrar una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK como su rutina TransactionNotificationCallback .

Sintaxis

PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;

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

Parámetros

[in] FltObjects

Puntero a una estructura FLT_RELATED_OBJECTS que contiene punteros opacos para los objetos relacionados con la operación actual.

[in] TransactionContext

Puntero al contexto de transacción del controlador de minifiltro.

[in] NotificationMask

Especifica el tipo de notificaciones que el administrador de filtros envía al controlador de minifiltro, como uno de los valores siguientes.

Valor Significado
TRANSACTION_NOTIFY_COMMIT Esta notificación se envía cuando se confirma la transacción.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Para Windows Vista SP1 y versiones posteriores, esta notificación se envía cuando la transacción se confirma por completo (es decir, cuando todos los administradores de recursos asociados a la transacción, como TxF, se han confirmado).
TRANSACTION_NOTIFY_PREPARE Esta notificación se envía cuando la transacción entra en la fase de preparación para la confirmación.
TRANSACTION_NOTIFY_PREPREPARE Esta notificación se envía cuando la transacción entra en la fase de preparación previa para la confirmación.
TRANSACTION_NOTIFY_ROLLBACK Esta notificación se envía cuando se revierte o anula la transacción.

Valor devuelto

La rutina PFLT_TRANSACTION_NOTIFICATION_CALLBACK devuelve uno de los siguientes valores NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
Si se devuelve este valor de estado, se indica que el controlador de minifiltro ha finalizado con la transacción. Se trata de un código de éxito.
STATUS_PENDING
Si se devuelve este valor de estado, se indica que el controlador de minifiltro aún no ha finalizado con la transacción. Se trata de un código de éxito.

Comentarios

Cuando un controlador de minifiltro se registra a sí mismo llamando a FltRegisterFilter desde su rutina DriverEntry , puede registrar una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK como rutina TransactionNotificationCallback del minifiltro.

Para registrar la rutina TransactionNotificationCallback , el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK en el miembro TransactionNotificationCallback de la estructura FLT_REGISTRATION que el controlador de minifiltro pasa como parámetro Registration de FltRegisterFilter.

El administrador de filtros llama a esta rutina para notificar al controlador de minifiltro el estado de una transacción en la que está inscrito el controlador de minifiltro.

Si el controlador de minifiltro devuelve STATUS_PENDING de esta rutina de devolución de llamada, debe llamar finalmente a una de las siguientes rutinas para indicar que ha terminado de procesar la notificación:

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRollbackComplete

Requisitos

Requisito Value
Cliente mínimo compatible La rutina PFLT_TRANSACTION_NOTIFICATION_CALLBACK está disponible en Windows Vista y versiones posteriores.
Plataforma de destino Escritorio
Encabezado fltkernel.h (incluya Fltkernel.h)
IRQL PASSIVE_LEVEL

Consulte también

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete