FltPrePrepareComplete - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// fltkernel.h

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

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-fltkernel-fltprepreparecomplete)

FltPrePrepareComplete function

Description

The FltPrePrepareComplete routine acknowledges a TRANSACTION_NOTIFY_PREPREPARE notification.

Parameters

Instance [in]

Opaque instance pointer for the caller.

Transaction [in]

Opaque transaction pointer for the transaction.

TransactionContext [in, optional]

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

To register a TransactionNotificationCallback routine, a minifilter driver stores the address of a routine of type PFLT_TRANSACTION_NOTIFICATION_CALLBACK in the TransactionNotificationCallback member of the FLT_REGISTRATION structure that the minifilter driver passes as the Registration parameter of FltRegisterFilter.

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.

See also

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK