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 |
---|---|
|
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. |
|
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:
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 |