次の方法で共有


ZwOpenResourceManager 関数 (wdm.h)

ZwOpenResourceManager ルーチンは、既存のリソース マネージャー オブジェクトへのハンドルを返します。

構文

NTSYSCALLAPI NTSTATUS ZwOpenResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             ResourceManagerGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);

パラメーター

[out] ResourceManagerHandle

ZwOpenResourceManager の呼び出しが成功した場合にリソース マネージャー ハンドルを受け取る呼び出し元によって割り当てられた変数へのポインター。

[in] DesiredAccess

リソース マネージャー オブジェクトへの呼び出し元の要求されたアクセス権を指定する ACCESS_MASK 値。 このパラメーターを指定する方法の詳細については、ZwCreateResourceManagerDesiredAccess パラメーターを参照してください。 このパラメーターを 0 にすることはできません。

[in] TmHandle

ZwCreateTransactionManager または ZwOpenTransactionManager の以前の呼び出しによって取得されたトランザクション マネージャー オブジェクトへのハンドル。

[in] ResourceManagerGuid

開くリソース マネージャーを識別する GUID へのポインター。

[in, optional] ObjectAttributes

オブジェクトの属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 InitializeObjectAttributes ルーチンを使用してこの構造体を初期化しますが、そのルーチンの InitializeAttributes パラメーターと Attributes パラメーターのみを指定します。 呼び出し元がシステム スレッド コンテキストで実行されていない場合は、 Attributes パラメーターで OBJ_KERNEL_HANDLE フラグを設定する必要があります。 このパラメーターは省略可能であり、 NULL にすることができます

戻り値

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

リターン コード 説明
STATUS_OBJECT_TYPE_MISMATCH
TmHandle が指定するハンドルは、トランザクション オブジェクトへのハンドルではありません。
STATUS_INVALID_HANDLE
TmHandle が指定するハンドルが無効です。
STATUS_ACCESS_DENIED
呼び出し元には、指定されたトランザクション マネージャー オブジェクトへの適切なアクセス権がありません。
STATUS_INVALID_PARAMETER
DesiredAccess パラメーターが 0 であるか、ResourceManagerGuid パラメーターが無効です。
STATUS_RESOURCEMANAGER_NOT_FOUND
指定したリソース マネージャーが見つかりませんでした。
STATUS_TRANSACTIONMANAGER_NOT_ONLINE
指定されたトランザクション マネージャーがオンラインではありません。
 

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

注釈

通常、TPS コンポーネントは、 以前に ZwCreateResourceManager を呼び出した別の TPS コンポーネントから参加 GUID を受信した後、 ZwOpenResourceManager を呼び出します。 ほとんどの TPS 設計では 、ZwOpenResourceManager を呼び出す必要はありません。

ZwOpenResourceManager を呼び出すリソース マネージャーは、オブジェクト ハンドルを閉じるには、最終的に ZwClose を呼び出す必要があります。

ZwOpenResourceManager の詳細については、「KTM オブジェクト」を参照してください。

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

カーネル モード ドライバーからの呼び出しの場合、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)

こちらもご覧ください

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateResourceManager

ZwCreateTransactionManager

ZwOpenTransactionManager