ZwRecoverEnlistment 関数 (wdm.h)
ZwRecoverEnlistment ルーチンは、指定された参加リストに関連付けられているトランザクションの回復操作を開始します。
構文
NTSYSCALLAPI NTSTATUS ZwRecoverEnlistment(
[in] HANDLE EnlistmentHandle,
[in, optional] PVOID EnlistmentKey
);
パラメーター
[in] EnlistmentHandle
ZwCreateEnlistment または ZwOpenEnlistment の以前の呼び出しによって取得された参加オブジェクトへのハンドル。 ハンドルには、 オブジェクトへのENLISTMENT_RECOVERアクセス権が必要です。
[in, optional] EnlistmentKey
リソース マネージャーが ZwCreateEnlistment への EnlistmentKey パラメーターとして以前に指定した参加キー値へのポインター。 このパラメーターは省略可能であり、リソース マネージャーが ZwCreateEnlistment を呼び出したときに参加キーを指定しなかった場合は NULL にすることができます。
戻り値
操作が成功した場合、ZwRecoverEnlistment はSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
指定されたハンドルは、参加オブジェクトへのハンドルではありません。 |
|
オブジェクト ハンドルが無効です。 |
|
トランザクションまたはその参加リストが正しい状態ではありません。 |
|
KTM は、コミット、ロールバック、または未確定通知をリソース マネージャーの通知キューに追加し、リソース マネージャーが ResourceManagerNotification コールバック ルーチンを使用していません。 |
|
呼び出し元は、参加オブジェクトに対する適切なアクセス権を持っていません。 |
ルーチンは、他の NTSTATUS 値を返す場合があります。
注釈
リソース マネージャーが ZwRecoverEnlistment を呼び出した後、KTM は参加のTRANSACTION_NOTIFY_COMMIT、TRANSACTION_NOTIFY_ROLLBACK、またはTRANSACTION_NOTIFY_INDOUBT 通知 を配信します。 したがって、リソース マネージャーが ResourceManagerNotification コールバック ルーチンを使用していない限り、ZwRecoverEnlistment がSTATUS_SUCCESSまたはSTATUS_PENDINGを返す場合は、すぐに ZwGetNotificationResourceManager を呼び出す必要があります。
ZwRecoverEnlistment の詳細については、「回復操作の処理」を参照してください。
NtRecoverEnlistment と ZwRecoverEnlistment は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
こちらもご覧ください
Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用