ZwPrepareComplete routine

The ZwPrepareComplete routine notifies KTM that the calling resource manager has finished preparing a transaction's data.

Syntax


NTSTATUS ZwPrepareComplete(
  _In_      HANDLE EnlistmentHandle,
  _In_opt_  PLARGE_INTEGER TmVirtualClock
);

Parameters

EnlistmentHandle [in]

A handle to an enlistment object that was obtained by a previous call to ZwCreateEnlistment or ZwOpenEnlistment. The handle must have ENLISTMENT_SUBORDINATE_RIGHTS access to the object.

TmVirtualClock [in, optional]

A pointer to a virtual clock value. This parameter is optional and can be NULL.

Return value

ZwPrepareComplete returns STATUS_SUCCESS if the operation succeeds. Otherwise, this routine might return one of the following values:

Return codeDescription
STATUS_OBJECT_TYPE_MISMATCH

The specified handle is not a handle to an enlistment object.

STATUS_INVALID_HANDLE

The object handle is invalid.

STATUS_TRANSACTION_NOT_REQUESTED

The transaction or its enlistment is not in the correct state.

STATUS_ACCESS_DENIED

The caller does not have appropriate access to the enlistment object.

 

The routine might return other NTSTATUS values.

Remarks

A resource manager must call ZwPrepareComplete after it has finished servicing a TRANSACTION_NOTIFY_PREPARE notification.

After a resource manager has called ZwPrepareComplete, it cannot roll back the transaction.

For more information about ZwPrepareComplete, see Handling Commit Operations.

Requirements

Version

Available in Windows Vista and later operating system versions.

Header

Wdm.h (include Wdm.h or Ntifs.h)

Library

Ntoskrnl.lib

IRQL

PASSIVE_LEVEL

DDI compliance rules

PowerIrpDDis, HwStorPortProhibitedDDIs

See also

TmPrepareComplete
ZwCreateEnlistment
ZwOpenEnlistment
ZwPrePrepareComplete

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft. All rights reserved.