次の方法で共有


TmCommitEnlistment 関数 (wdm.h)

TmCommitEnlistment ルーチンは、指定された参加リストのトランザクションに対してコミット操作を開始します。

構文

NTSTATUS TmCommitEnlistment(
  [in] PKENLISTMENT   Enlistment,
  [in] PLARGE_INTEGER TmVirtualClock
);

パラメーター

[in] Enlistment

参加オブジェクトへのポインター。 コンポーネントは、 ResourceManagerNotification コールバック ルーチンへの入力としてこのポインターを受け取ることができます。 または、コンポーネントで ObReferenceObjectByHandle を呼び出し、ZwCreateEnlistment、TmCreateEnlistment、または ZwOpenEnlistment を以前に呼び出したオブジェクト ハンドルを指定することもできます。

[in] TmVirtualClock

仮想クロック値へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます

戻り値

操作が成功した場合、TmCommitEnlistment はSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。

リターン コード 説明
STATUS_ENLISTMENT_NOT_SUPERIOR
呼び出し元は、参加リストの 優れたトランザクション マネージャー ではありません。
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
呼び出し元は、TRANSACTION_NOTIFY_COMMIT_COMPLETE通知を受信するように登録しませんでした。
STATUS_TRANSACTION_REQUEST_NOT_VALID
参加リストのトランザクションが、コミット可能な状態ではありません。
STATUS_TRANSACTION_NOT_ACTIVE
このトランザクションのコミット操作は既に開始されています。
STATUS_TRANSACTION_ALREADY_ABORTED
トランザクションはロールバックされているため、コミットできません。
 

ルーチンは、他の NTSTATUS 値を返す場合があります。

注釈

TmCommitEnlistment ルーチンは、ZwCommitEnlistment ルーチンのポインター ベースのバージョンです。

TmCommitEnlistment を呼び出すことができるのは、上位のトランザクション マネージャーだけです。

Zw Xxx ルーチンではなく KTM の TmXxx ルーチンを使用する場合の詳細については、「TmXxx ルーチンの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のオペレーティング システム バージョンで使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL

こちらもご覧ください

ObReferenceObjectByHandle

ResourceManagerNotification

TmCreateEnlistment

ZwCommitEnlistment

ZwCreateEnlistment

ZwOpenEnlistment