次の方法で共有


NtCreateResourceManager 関数 (wdm.h)

ZwCreateResourceManager ルーチンは、リソース マネージャー オブジェクトを作成します。

構文

__kernel_entry NTSYSCALLAPI NTSTATUS NtCreateResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             RmGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] ULONG              CreateOptions,
  [in, optional] PUNICODE_STRING    Description
);

パラメーター

[out] ResourceManagerHandle

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

[in] DesiredAccess

リソース マネージャー オブジェクトへの呼び出し元の要求されたアクセスを指定する ACCESS_MASK 値。 呼び出し元は、すべての種類のオブジェクトに対して定義されているアクセス権 (ACCESS_MASKを参照) に加えて、リソース マネージャー オブジェクトに対して次のいずれかのアクセス権限フラグを指定できます。

ACCESS_MASK フラグ 呼び出し元が
RESOURCEMANAGER_ENLIST トランザクションに参加します (ZwCreateEnlistment 参照)。
RESOURCEMANAGER_GET_NOTIFICATION このリソース マネージャーに関連付けられているトランザクションに関する通知を受け取ります (ZwGetNotificationResourceManager 参照)。
RESOURCEMANAGER_REGISTER_PROTOCOL 使用されません。
RESOURCEMANAGER_QUERY_INFORMATION リソース マネージャーに関するクエリ情報 (ZwQueryInformationResourceManager 参照)。
RESOURCEMANAGER_SET_INFORMATION 使用されません。
RESOURCEMANAGER_RECOVER リソース マネージャーを復旧します (ZwRecoverResourceManager 参照)。
RESOURCEMANAGER_COMPLETE_PROPAGATION 使用されません。
 

または、次の汎用 ACCESS_MASK フラグを 1 つ以上指定することもできます。 (STANDARD_RIGHTS_Xxx フラグは、システム オブジェクトにセキュリティを適用するために使用される定義済みのシステム値です)。これらの汎用フラグを、前の表の追加フラグと組み合わせることもできます。 次の表は、一般的なアクセス権が特定のアクセス権にどのように対応するかを示しています。

汎用アクセス権 特定のアクセス権のセット
RESOURCEMANAGER_GENERIC_READ STANDARD_RIGHTS_READ、RESOURCEMANAGER_QUERY_INFORMATION、SYNCHRONIZE
RESOURCEMANAGER_GENERIC_WRITE STANDARD_RIGHTS_WRITE、RESOURCEMANAGER_SET_INFORMATION、RESOURCEMANAGER_RECOVER、RESOURCEMANAGER_ENLIST、RESOURCEMANAGER_GET_NOTIFICATION、RESOURCEMANAGER_REGISTER_PROTOCOL、RESOURCEMANAGER_COMPLETE_PROPAGATION、SYNCHRONIZE
RESOURCEMANAGER_GENERIC_EXECUTE STANDARD_RIGHTS_EXECUTE、RESOURCEMANAGER_RECOVER、RESOURCEMANAGER_ENLIST、RESOURCEMANAGER_GET_NOTIFICATION、RESOURCEMANAGER_COMPLETE_PROPAGATION、SYNCHRONIZE
RESOURCEMANAGER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED、RESOURCEMANAGER_GENERIC_READ、RESOURCEMANAGER_GENERIC_WRITE、およびRESOURCEMANAGER_GENERIC_EXECUTE

[in] TmHandle

ZwCreateTransactionManager または ZwOpenTransactionManagerを する前のすべてのユーザーによって取得された、トランザクション マネージャー オブジェクト へのハンドル。

[in] RmGuid

KTM がリソース マネージャーを識別するために使用する GUID へのポインター。 このポインターが NULL 場合、KTM は GUID を生成します。

[in, optional] ObjectAttributes

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

[in, optional] CreateOptions

オプションのオブジェクト作成フラグ。 次の表に、Ktmtypes.h で定義されている使用可能なフラグを示します。

CreateOptions フラグの 意味
RESOURCE_MANAGER_COMMUNICATION 内部使用のみ。
RESOURCE_MANAGER_VOLATILE 呼び出し元は揮発性リソースを管理します。 非永続的であり、復旧は実行されません。
 

このパラメーターは省略可能で、0 にすることができます。

[in, optional] Description

NULL で終わる文字列を含む呼び出し元が指定した UNICODE_STRING 構造体へのポインター。 この文字列は、リソース マネージャーの説明を提供します。 KTM は文字列のコピーを格納し、ログ ストリームに書き込むメッセージに文字列を含めます。 文字列の最大長はMAX_RESOURCEMANAGER_DESCRIPTION_LENGTH。 このパラメーターは省略可能であり、NULL できます。

戻り値

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

リターン コード 形容
STATUS_OBJECT_TYPE_MISMATCH
TmHandle 指定するハンドルは、トランザクション オブジェクトへのハンドルではありません。
STATUS_INVALID_HANDLE
TmHandle が指定 ハンドルが無効です。
STATUS_ACCESS_DENIED
呼び出し元には、指定されたトランザクション マネージャー オブジェクトへの適切なアクセス権がありません。
STATUS_TRANSACTION_OBJECT_EXPIRED
TmHandle が指定 ハンドルが閉じられます。
STATUS_INVALID_PARAMETER
CreateOptions パラメーターの値が無効であるか、パラメーターの文字列 Description が長すぎます。
STATUS_TM_VOLATILE
CreateOptions パラメーターはRESOURCE_MANAGER_VOLATILEを指定しませんが、TmHandle 指定するトランザクション マネージャーは揮発性です。
STATUS_OBJECT_NAME_COLLISION
ResourceManagerGuid が指定 GUID は既に存在します。
STATUS_ACCESS_DENIED
DesiredAccess パラメーターの値が無効です。
 

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

備考

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

ZwCreateResourceManager の詳細については、「Resource Managerの作成」を参照してください。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のオペレーティング システム バージョンで使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDIs、PowerIrpDDis

関連項目

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager