Compartir a través de


Función FltCommitComplete (fltkernel.h)

La rutina FltCommitComplete confirma una notificación de TRANSACTION_NOTIFY_COMMIT.

Sintaxis

NTSTATUS FLTAPI FltCommitComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

Parámetros

[in] Instance

Puntero de instancia opaco para el autor de la llamada.

[in] Transaction

Puntero de transacción opaco para la transacción.

[in, optional] TransactionContext

Puntero al contexto del controlador de minifiltro para la transacción. Este parámetro es opcional y puede ser NULL.

Valor devuelto

FltCommitComplete devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como el siguiente:

Código devuelto Descripción
STATUS_NOT_FOUND
El controlador de minifiltro no estableció un contexto en la transacción. Se trata de un código de error.

Comentarios

Esta rutina está disponible en Windows Vista y versiones posteriores.

Un controlador de minifiltro que está inscrito en una transacción puede recibir una notificación de TRANSACTION_NOTIFY_COMMIT cuando la transacción está en proceso de confirmación. Para enviar la notificación al controlador de minifiltro, el administrador de filtros llama a la rutina TransactionNotificationCallback del controlador de minifiltro. El controlador de minifiltro confirma esta notificación de una de estas dos maneras:

  • La rutina TransactionNotificationCallback del controlador minifilter realiza cualquier procesamiento necesario y devuelve STATUS_SUCCESS. En este caso, el controlador de minifiltro no llama a FltCommitComplete.
  • La rutina TransactionNotificationCallback del controlador minifiltro publica cualquier procesamiento necesario en un subproceso de trabajo y devuelve STATUS_PENDING. Después de realizar el procesamiento de forma asincrónica, la rutina de trabajo del controlador de minifiltro debe llamar a FltCommitComplete para indicar que ha finalizado este procesamiento. Si la rutina de trabajo del controlador de minifiltro no llama a FltCommitComplete, el administrador de transacciones no puede completar la operación de confirmación de transacción.
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 inscribirse en una transacción, llame a FltEnlistInTransaction.

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
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library Fltmgr.lib
IRQL PASSIVE_LEVEL

Consulte también

FLT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK