NtPrePrepareEnlistment 関数 (wdm.h)
ZwPrePrepareEnlistment ルーチンは、指定された参加リストのトランザクションの事前準備操作を開始します。
構文
__kernel_entry NTSYSCALLAPI NTSTATUS NtPrePrepareEnlistment(
[in] HANDLE EnlistmentHandle,
[in, optional] PLARGE_INTEGER TmVirtualClock
);
パラメーター
[in] EnlistmentHandle
ZwCreateEnlistment または ZwOpenEnlistment の以前の呼び出しによって取得された 参加オブジェクト へのハンドル。 オブジェクトは 優れた参加 を表す必要があり、ハンドルはオブジェクトにENLISTMENT_SUPERIOR_RIGHTSアクセスできる必要があります。
[in, optional] TmVirtualClock
仮想クロック値へのポインター。 このパラメーターは省略可能であり、NULL できます。
戻り値
ZwPrePrepareEnlistment 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
呼び出し元は、参加 優れたトランザクション マネージャー ではありません。 |
|
呼び出し元は、TRANSACTION_NOTIFY_PREPREPARE_COMPLETE通知を受信するために登録しませんでした。 |
|
指定されたハンドルは、参加オブジェクトへのハンドルではありません。 |
|
オブジェクト ハンドルが無効です。 |
|
呼び出し元には、参加オブジェクトへの適切なアクセス権がありません。 |
|
参加リストのトランザクションは、準備フェーズに入る状態ではありません。 |
ルーチンは、他NTSTATUS 値を返す場合があります。
備考
ZwPrePrepareEnlistment 呼び出すことができるのは、優れたトランザクション マネージャーだけです。
ZwPrepareEnlistment の呼び出し元は、TRANSACTION_NOTIFY_PREPREPARE_COMPLETE通知を受信するために登録する必要があります。
ZwPrePrepareEnlistment ルーチンにより、KTM はトランザクションに参加しているすべてのリソース マネージャーにTRANSACTION_NOTIFY_PREPREPARE通知を送信します。
ZwPrePrepareEnlistment の詳細については、「優れたトランザクション マネージャー の作成とコミット操作の処理 を参照してください。
NtPrepareEnlistment と ZwPrepareEnlistment は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDIs、PowerIrpDDis |
関連項目
TmPrePrepareEnlistment の