Función FltEnlistInTransaction (fltkernel.h)
La rutina FltEnlistInTransaction incluye un controlador de minifiltro en una transacción determinada.
Sintaxis
NTSTATUS FLTAPI FltEnlistInTransaction(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in] PFLT_CONTEXT TransactionContext,
[in] NOTIFICATION_MASK NotificationMask
);
Parámetros
[in] Instance
Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.
[in] Transaction
Puntero de transacción opaco para la transacción.
[in] TransactionContext
Puntero al contexto de transacción del controlador de minifiltro. Este parámetro es obligatorio y no puede ser NULL.
[in] NotificationMask
Especifica el tipo de notificaciones que el administrador de filtros va a enviar al controlador de minifiltro, como uno o varios de los valores enumerados en la tabla siguiente. Este parámetro es obligatorio y no puede ser cero.
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 ha entrado en la fase de preparación para la confirmación. |
TRANSACTION_NOTIFY_PREPREPARE | Esta notificación se envía cuando la transacción ha entrado 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. |
FLT_MAX_TRANSACTION_NOTIFICATIONS | TRANSACTION_NOTIFY_COMMIT | TRANSACTION_NOTIFY_PREPARE | TRANSACTION_NOTIFY_PREPREPARE | TRANSACTION_NOTIFY_ROLLBACK |
Valor devuelto
FltEnlistInTransaction devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:
Código devuelto | Descripción |
---|---|
|
El autor de la llamada ya está inscrito en la transacción. Se trata de un código de error. |
|
La instancia especificada en el parámetro Instance se está descomponiéndose. Se trata de un código de error. |
|
FltEnlistInTransaction encontró un error de asignación de grupo. Se trata de un código de error. |
|
El autor de la llamada no registró una rutina TransactionNotificationCallback . Se trata de un código de error. |
|
El llamador especificó un valor no válido para el parámetro NotificationMask . Se trata de un código de error. |
Comentarios
Un controlador de minifiltro llama a FltEnlistInTransaction para inscribirse en una transacción. Antes de llamar a FltEnlistInTransaction, el controlador de minifiltro debe haber registrado una rutina TransactionNotificationCallback . De lo contrario, se producirá un error en la llamada a FltEnlistInTransaction .
Para registrar una rutina TransactionNotificationCallback , un 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.
Para revertir o anular una transacción, llame a FltRollbackEnlistment.
Para asignar un nuevo contexto de transacción, llame a FltAllocateContext.
Para recuperar un contexto de transacción, llame a FltGetTransactionContext.
Para eliminar un contexto de transacción, llame a FltDeleteTransactionContext o FltDeleteContext.
Para establecer un contexto de transacción, llame a FltSetTransactionContext.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Esta rutina está disponible en Windows Vista y versiones posteriores de Windows. |
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
Archivo DLL | FltMgr.sys |
IRQL | <= APC_LEVEL |