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 de TransactionNotificationCallback.
PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;
NTSTATUS PfltTransactionNotificationCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] PFLT_CONTEXT TransactionContext,
[in] ULONG NotificationMask
)
{...}
[in] FltObjects
Puntero a una estructura de 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 de 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. |
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 correcto. |
|
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 correcto. |
Cuando un controlador de minifiltro se registra llamando a FltRegisterFilter desde su rutina de DriverEntry, puede registrar una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK como rutina TransactionNotificationCallback del minifiltro rutina.
Para registrar la rutina transactionNotificationCallback de, el controlador de minifiltro almacena la dirección de una rutina de tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK en el TransactionNotificationCallback miembro de la estructura FLT_REGISTRATION que pasa el controlador de minifiltro 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:
Requisito | Valor |
---|---|
cliente mínimo admitido | La rutina PFLT_TRANSACTION_NOTIFICATION_CALLBACK está disponible en Windows Vista y versiones posteriores. |
de la plataforma de destino de | Escritorio |
encabezado de | fltkernel.h (incluya Fltkernel.h) |
irQL | PASSIVE_LEVEL |