Compartir a través de


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
STATUS_FLT_ALREADY_ENLISTED
El autor de la llamada ya está inscrito en la transacción. Se trata de un código de error.
STATUS_FLT_DELETING_OBJECT
La instancia especificada en el parámetro Instance se está descomponiéndose. Se trata de un código de error.
STATUS_INSUFFICIENT_RESOURCES
FltEnlistInTransaction encontró un error de asignación de grupo. Se trata de un código de error.
STATUS_INVALID_PARAMETER
El autor de la llamada no registró una rutina TransactionNotificationCallback . Se trata de un código de error.
STATUS_INVALID_PARAMETER_4
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

Consulte también

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK