Win32 API 日本語リファレンス
ホーム › Networking.Clustering › PCLUSAPI_CLUSTER_REG_CREATE_KEY

PCLUSAPI_CLUSTER_REG_CREATE_KEY

コールバック

シグネチャ

INT PCLUSAPI_CLUSTER_REG_CREATE_KEY(
    HKEY hKey,
    LPWSTR lpszSubKey,
    DWORD dwOptions,
    DWORD samDesired,
    SECURITY_ATTRIBUTES* lpSecurityAttributes,
    HKEY* phkResult,
    DWORD* lpdwDisposition
);

パラメーター

フィールド型説明
hKeyHKEY開いているクラスターデータベースキーのハンドルです。このパラメーターを NULL にすることはできません。
lpszSubKeyLPWSTR

作成または開くサブキーの名前を指定する、null で終わる Unicode 文字列へのポインターです。 lpszSubKey パラメーターは、次の条件を満たすサブキーを指す必要があります。

  • hKey で識別されるキーの子キーであること。
  • 円記号 ( \ ) で始まらないこと。
  • NULL でないこと。
lpszSubKey パラメーターには空の文字列を指定することもできます。その場合、 ClusterRegCreateKey は hKey が表すデータベースキーのハンドルを 返します。
dwOptionsDWORD

このキーに対する特別なオプションを指定します。現在、dwOptions には次の値を 設定できます。

REG_OPTION_NON_VOLATILE (0x00000000)

開かれた、または作成されたキーは揮発性ではありません。この情報はシステムの再起動後も保持されます。

samDesiredDWORD

新しいキーに必要なセキュリティアクセスを指定するアクセスマスクです。次の値が有効です。

詳細については、 レジストリキーのセキュリティとアクセス権を参照してください。

ACCESS_SYSTEM_SECURITY (0x01000000)

システムセキュリティにアクセスする権限です。 システムアクセス制御リスト (SACL) へのアクセスを示すために 使用されます。この種類のアクセスでは、呼び出し元プロセスが SE_SECURITY_NAME (監査と セキュリティログの管理) 特権を持っている必要があります。

DELETE (0x00010000)

削除する権限です。

KEY_ALL_ACCESS (0x000F003F)

KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、 KEY_NOTIFY、KEY_CREATE_SUB_KEY、 KEY_CREATE_LINK、KEY_SET_VALUE の各アクセスを組み合わせたものです。

KEY_CREATE_LINK (0x00000020)

シンボリックリンクを作成する権限です。

KEY_ENUMERATE_SUB_KEYS (0x00000008)

サブキーを列挙する権限です。

KEY_EXECUTE (0x00020019)

読み取りアクセスの権限です。

KEY_NOTIFY (0x00000010)

変更通知の権限です。

KEY_QUERY_VALUE (0x00000001)

サブキーのデータを照会する権限です。

KEY_READ (0x00020019)

KEY_QUERY_VALUE、KEY_ENUMERATE_SUB_KEYS、 KEY_NOTIFY の各アクセスを組み合わせたものです。

KEY_SET_VALUE (0x00000002)

サブキーのデータを変更する権限です。

KEY_WRITE (0x00020006)

KEY_SET_VALUE と KEY_CREATE_SUB_KEY のアクセスを 組み合わせたものです。

READ_CONTROL (0x00020000)

セキュリティ記述子の所有者、グループ、および 随意アクセス制御リスト (DACL) を読み取る権限です。

WRITE_DAC (0x00040000)

DACL に書き込む権限です。

WRITE_OWNER (0x00080000)

所有者を変更する権限です。

lpSecurityAttributesSECURITY_ATTRIBUTES*このパラメーターは無視されます。新しいレジストリキーにセキュリティ属性を設定するには、 ClusterRegCreateKey が正常に復帰した後に ClusterRegSetKeySecurity 関数を 呼び出してください。
phkResultHKEY*開かれた、または作成されたキーのハンドルへのポインターです。
lpdwDispositionDWORD*

lpszSubKey が指すキーが開かれたのか、作成されたのかを示す値への ポインターです。次の値が有効です。

REG_CREATED_NEW_KEY (0x00000001)

キーは存在しなかったため、作成されました。

REG_OPENED_EXISTING_KEY (0x00000002)

キーは存在しており、開かれました。

公式ドキュメント

指定したクラスターデータベースキーを作成します。キーがデータベースに既に存在する場合、 ClusterRegCreateKey は変更を加えずにそのキーを 開きます。

戻り値

操作が成功した場合、この関数は ERROR_SUCCESS を返します。

操作が失敗した場合、この関数は システムエラーコードを返します。

解説(Remarks)

呼び出し元は、ClusterRegCreateKey 関数で作成したキーのハンドルが不要になったら、 ClusterRegCloseKey を呼び出して そのハンドルを閉じる必要があります。

次のリソース DLL エントリポイント関数からは、ClusterRegCreateKey を 呼び出さないでください。

ClusterRegCreateKey は、それ以外のリソース DLL エントリポイント関数やワーカースレッドからは 安全に呼び出すことができます。詳細については、 リソース DLL で呼び出しを避けるべき関数を参照してください。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)