Función FltPrepareComplete (fltkernel.h)
La rutina FltPrepareComplete confirma una notificación de TRANSACTION_NOTIFY_PREPREPARE.
Sintaxis
NTSTATUS FLTAPI FltPrePrepareComplete(
[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 de transacción del controlador minifiltro.
Valor devuelto
FltPrepareComplete 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
Un controlador de minifiltro que está inscrito en una transacción puede recibir una notificación de TRANSACTION_NOTIFY_PREPREPARE cuando la transacción entra en la fase de preparación previa para la 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 FltPreprepareComplete.
- La rutina TransactionNotificationCallback del controlador minifilter 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 minifiltro debe llamar a FltPreprepareComplete para indicar que ha terminado este procesamiento. Si la rutina de trabajo del controlador minifiltro no llama a FltPrePrepareComplete, el administrador de transacciones no puede completar la operación de preparación previa de la 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 |
---|---|
Cliente mínimo compatible | Esta rutina está disponible en Windows Vista y versiones posteriores. |
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
Archivo DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |