NtCommitEnlistment 関数 (wdm.h)
ZwCommitEnlistment ルーチンは、指定された参加リストのトランザクションのコミット操作を開始します。
構文
__kernel_entry NTSYSCALLAPI NTSTATUS NtCommitEnlistment(
[in] HANDLE EnlistmentHandle,
[in, optional] PLARGE_INTEGER TmVirtualClock
);
パラメーター
[in] EnlistmentHandle
ZwCreateEnlistment または ZwOpenEnlistment の以前の呼び出しによって取得された参加オブジェクトへのハンドル。 オブジェクトは 優れた参加リスト を表す必要があり、ハンドルはオブジェクトにENLISTMENT_SUPERIOR_RIGHTSアクセスできる必要があります。
[in, optional] TmVirtualClock
仮想クロック値へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
操作が成功した場合、ZwCommitEnlistment はSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
指定されたハンドルは、参加オブジェクトへのハンドルではありません。 |
|
オブジェクト ハンドルが無効です。 |
|
呼び出し元は、参加オブジェクトに対する適切なアクセス権を持っていません。 |
|
呼び出し元は、参加の 優れたトランザクション マネージャー ではありません。 |
|
呼び出し元は、TRANSACTION_NOTIFY_COMMIT_COMPLETE通知を受信するために登録されませんでした。 |
|
参加リストのトランザクションは、コミットできる状態ではありません。 |
|
このトランザクションのコミット操作は既に開始されています。 |
|
トランザクションはロールバックされているため、コミットできません。 |
ルーチンは、他の NTSTATUS 値を返す場合があります。
注釈
ZwCommitEnlistment を呼び出すことができるのは、上位のトランザクション マネージャーだけです。
ZwCommitEnlistment の呼び出し元は、TRANSACTION_NOTIFY_COMMIT_COMPLETE通知を受信するために登録する必要があります。
ZwCommitEnlistment ルーチンを使用すると、KTM はトランザクションに参加しているすべてのリソース マネージャーにTRANSACTION_NOTIFY_COMMIT通知を送信します。
ZwCommitEnlistment の詳細については、「優れたトランザクション マネージャーの作成」および「コミット操作の処理」を参照してください。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDIs、PowerIrpDDis |