FltPrePrepareComplete function (fltkernel.h)
The FltPrePrepareComplete routine acknowledges a TRANSACTION_NOTIFY_PREPREPARE notification.
Syntax
NTSTATUS FLTAPI FltPrePrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parameters
[in] Instance
Opaque instance pointer for the caller.
[in] Transaction
Opaque transaction pointer for the transaction.
[in, optional] TransactionContext
Pointer to the minifilter driver's transaction context.
Return value
FltPrePrepareComplete returns STATUS_SUCCESS or an appropriate NTSTATUS value, such as the following:
Return code | Description |
---|---|
|
The minifilter driver did not set a context on the transaction. This is an error code. |
Remarks
A minifilter driver that is enlisted in a transaction can receive a TRANSACTION_NOTIFY_PREPREPARE notification when the transaction enters the pre-prepare for commit phase. To send the notification to the minifilter driver, the filter manager calls the minifilter driver's TransactionNotificationCallback routine. The minifilter driver acknowledges this notification in one of two ways:
- The minifilter driver's TransactionNotificationCallback routine performs any needed processing and returns STATUS_SUCCESS. In this case, the minifilter driver does not call FltPrePrepareComplete.
- The minifilter driver's TransactionNotificationCallback routine posts any needed processing to a worker thread and returns STATUS_PENDING. After performing the processing asynchronously, the minifilter driver's work routine must call FltPrePrepareComplete to indicate that it has finished this processing. If the minifilter driver's work routine does not call FltPrePrepareComplete, the transaction pre-prepare operation cannot be completed by the kernel transaction manager.
To enlist in a transaction, call FltEnlistInTransaction.
To allocate a new transaction context, call FltAllocateContext.
To retrieve a transaction context, call FltGetTransactionContext.
To delete a transaction context, call FltDeleteTransactionContext or FltDeleteContext.
To set a transaction context, call FltSetTransactionContext.
Requirements
Requirement | Value |
---|---|
Minimum supported client | This routine is available on Windows Vista and later. |
Target Platform | Universal |
Header | fltkernel.h (include Fltkernel.h) |
Library | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | <= APC_LEVEL |