ZwCommitEnlistment 関数 (wdm.h)
ZwCommitEnlistment ルーチンは、指定された参加リストのトランザクションに対してコミット操作を開始します。
構文
NTSYSCALLAPI NTSTATUS ZwCommitEnlistment(
[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 バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |