FltCommitComplete routine

The FltCommitComplete routine acknowledges a TRANSACTION_NOTIFY_COMMIT notification.

Syntax


NTSTATUS FltCommitComplete(
  _In_     PFLT_INSTANCE Instance,
  _In_     PKTRANSACTION Transaction,
  _In_opt_ PFLT_CONTEXT  TransactionContext
);

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 context for the transaction. This parameter is optional and can be NULL.

Return value

FltCommitComplete returns STATUS_SUCCESS or an appropriate NTSTATUS value such as the following:

Return codeDescription
STATUS_NOT_FOUND

The minifilter driver did not set a context on the transaction. This is an error code.

 

Remarks

This routine is available on Windows Vista and later.

A minifilter driver that is enlisted in a transaction can receive a TRANSACTION_NOTIFY_COMMIT notification when the transaction is in the process of being committed. 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 FltCommitComplete.

  • 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 FltCommitComplete to indicate that it has finished this processing. If the minifilter driver's work routine does not call FltCommitComplete, the transaction commit operation cannot be completed by the kernel transaction manager.

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.

Requirements

Target platform

Universal

Header

Fltkernel.h (include Fltkernel.h)

Library

Fltmgr.lib

IRQL

PASSIVE_LEVEL

See also

FLT_REGISTRATION
FltAllocateContext
FltDeleteContext
FltDeleteTransactionContext
FltEnlistInTransaction
FltGetTransactionContext
FltPrepareComplete
FltPrePrepareComplete
FltRegisterFilter
FltReleaseContext
FltRollbackComplete
FltRollbackEnlistment
FltSetTransactionContext
PFLT_TRANSACTION_NOTIFICATION_CALLBACK

 

 

Send comments about this topic to Microsoft

Show: