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 |
---|---|
|
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 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 |