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
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| hKey | HKEY | 開いているクラスターデータベースキーのハンドルです。このパラメーターを NULL にすることはできません。 |
| lpszSubKey | LPWSTR | 作成または開くサブキーの名前を指定する、null で終わる Unicode 文字列へのポインターです。 lpszSubKey パラメーターは、次の条件を満たすサブキーを指す必要があります。
|
| dwOptions | DWORD | このキーに対する特別なオプションを指定します。現在、dwOptions には次の値を 設定できます。 REG_OPTION_NON_VOLATILE (0x00000000)開かれた、または作成されたキーは揮発性ではありません。この情報はシステムの再起動後も保持されます。 |
| samDesired | DWORD | 新しいキーに必要なセキュリティアクセスを指定するアクセスマスクです。次の値が有効です。 詳細については、 レジストリキーのセキュリティとアクセス権を参照してください。 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)所有者を変更する権限です。 |
| lpSecurityAttributes | SECURITY_ATTRIBUTES* | このパラメーターは無視されます。新しいレジストリキーにセキュリティ属性を設定するには、 ClusterRegCreateKey が正常に復帰した後に ClusterRegSetKeySecurity 関数を 呼び出してください。 |
| phkResult | HKEY* | 開かれた、または作成されたキーのハンドルへのポインターです。 |
| lpdwDisposition | DWORD* | lpszSubKey が指すキーが開かれたのか、作成されたのかを示す値への ポインターです。次の値が有効です。 REG_CREATED_NEW_KEY (0x00000001)キーは存在しなかったため、作成されました。 REG_OPENED_EXISTING_KEY (0x00000002)キーは存在しており、開かれました。 |
公式ドキュメント
指定したクラスターデータベースキーを作成します。キーがデータベースに既に存在する場合、 ClusterRegCreateKey は変更を加えずにそのキーを 開きます。
戻り値
操作が成功した場合、この関数は ERROR_SUCCESS を返します。
操作が失敗した場合、この関数は システムエラーコードを返します。
解説(Remarks)
呼び出し元は、ClusterRegCreateKey 関数で作成したキーのハンドルが不要になったら、 ClusterRegCloseKey を呼び出して そのハンドルを閉じる必要があります。
次のリソース DLL エントリポイント関数からは、ClusterRegCreateKey を 呼び出さないでください。
ClusterRegCreateKey は、それ以外のリソース DLL エントリポイント関数やワーカースレッドからは 安全に呼び出すことができます。詳細については、 リソース DLL で呼び出しを避けるべき関数を参照してください。Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)