Compartir a través de


Función FltCommitComplete (fltkernel.h)

La rutina FltCommitComplete reconoce 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 se puede 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.

Observaciones

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 del controlador de minifiltro TransactionNotificationCallback. El controlador de minifiltro confirma esta notificación de una de estas dos maneras:

  • El controlador de minifiltro TransactionNotificationCallback rutina realiza cualquier procesamiento necesario y devuelve STATUS_SUCCESS. En este caso, el controlador de minifiltro no llama a FltCommitComplete.
  • El controlador de minifiltro TransactionNotificationCallback rutina 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 terminado este procesamiento. Si la rutina de trabajo del controlador de minifiltro no llama a FltCommitComplete, el administrador de transacciones del kernel no puede completar la operación de confirmación de transacciones.
Para registrar una rutina de TransactionNotificationCallback, un 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.

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 Valor
de la plataforma de destino de Universal
encabezado de fltkernel.h (incluya Fltkernel.h)
biblioteca de Fltmgr.lib
irQL PASSIVE_LEVEL

Consulte también

FLT_REGISTRATION

FltAllocateContext

fltDeleteContext

fltDeleteTransactionContext

fltEnlistInTransaction

FltGetTransactionContext

fltPreprepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

fltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK