次の方法で共有


NtRecoverEnlistment 関数 (wdm.h)

ZwRecoverEnlistment ルーチンは、指定された参加リストに関連付けられているトランザクションの回復操作を開始します。

構文

__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

パラメーター

[in] EnlistmentHandle

ZwCreateEnlistment または ZwOpenEnlistment の以前の呼び出しによって取得された参加オブジェクトへのハンドル。 ハンドルには、 オブジェクトへのENLISTMENT_RECOVERアクセス権が必要です。

[in, optional] EnlistmentKey

リソース マネージャーが ZwCreateEnlistment への EnlistmentKey パラメーターとして以前に指定した参加キー値へのポインター。 このパラメーターは省略可能であり、リソース マネージャーが ZwCreateEnlistment を呼び出したときに参加キーを指定しなかった場合は NULL にすることができます。

戻り値

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

リターン コード 説明
STATUS_OBJECT_TYPE_MISMATCH
指定されたハンドルは、参加オブジェクトへのハンドルではありません。
STATUS_INVALID_HANDLE
オブジェクト ハンドルが無効です。
STATUS_TRANSACTION_REQUEST_NOT_VALID
トランザクションまたはその参加リストが正しい状態ではありません。
STATUS_PENDING
KTM は、リソース マネージャーの通知キューにコミット、ロールバック、または未確定の通知を追加し、リソース マネージャーが ResourceManagerNotification コールバック ルーチンを使用していません。
STATUS_ACCESS_DENIED
呼び出し元には、参加オブジェクトへの適切なアクセス権がありません。
 

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

注釈

リソース マネージャーが ZwRecoverEnlistment を呼び出した後、KTM は参加リストのTRANSACTION_NOTIFY_COMMIT、TRANSACTION_NOTIFY_ROLLBACK、またはTRANSACTION_NOTIFY_INDOUBT 通知 を配信します。 そのため、リソース マネージャーが ResourceManagerNotification コールバック ルーチンを使用していない限り、ZwRecoverEnlistment がSTATUS_SUCCESSまたはSTATUS_PENDINGを返す場合は、すぐに ZwGetNotificationResourceManager を呼び出す必要があります。

ZwRecoverEnlistment の詳細については、「回復操作の処理」を参照してください。

NtRecoverEnlistmentZwRecoverEnlistment は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx バージョンと ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用」を参照してください。

要件

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

こちらもご覧ください

ResourceManagerNotification

TmRecoverEnlistment

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment