ClusterRegCreateKey 函数 (clusapi.h)

创建指定的 群集数据库 密钥。 如果该密钥已存在于数据库中, 则 ClusterRegCreateKey 将打开它,而无需进行更改。

语法

LONG ClusterRegCreateKey(
  [in]            HKEY                  hKey,
  [in]            LPCWSTR               lpszSubKey,
  [in]            DWORD                 dwOptions,
  [in]            REGSAM                samDesired,
  [in, optional]  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [out]           PHKEY                 phkResult,
  [out, optional] LPDWORD               lpdwDisposition
);

参数

[in] hKey

打开的群集数据库密钥的句柄。 此参数不能为 NULL

[in] lpszSubKey

指向以 null 结尾的 Unicode 字符串的指针,该字符串指定要创建或打开的子项的名称。 lpszSubKey 参数必须指向以下子项:

  • hKey 标识的密钥的子密钥。
  • 不得以反斜杠字符 ( \ ) 开头。
  • 不得为 NULL
lpszSubKey 参数可以指向空字符串,导致 ClusterRegCreateKey 返回 hKey 表示的数据库密钥的句柄。

[in] dwOptions

为此键指定特殊选项。 目前, dwOptions 可以设置为以下值。

REG_OPTION_NON_VOLATILE (0x00000000)

打开或创建的密钥不是易失的;重新启动系统时,将保留信息。

[in] samDesired

指定新密钥所需的安全访问权限的访问掩码。 以下值有效。

有关详细信息,请参阅 注册表项安全和访问权限

ACCESS_SYSTEM_SECURITY (0x01000000)

访问系统安全性的权限。 它用于指示对 SACL) (系统访问控制列表 的访问。 这种类型的访问要求调用进程具有 SE_SECURITY_NAME (管理审核和安全日志) 特权。

删除 (0x00010000)

删除权限。

KEY_ALL_ACCESS (0x000F003F)

KEY_QUERY_VALUEKEY_ENUMERATE_SUB_KEYSKEY_NOTIFYKEY_CREATE_SUB_KEYKEY_CREATE_LINKKEY_SET_VALUE访问的组合。

创建符号链接的权限。

KEY_ENUMERATE_SUB_KEYS (0x00000008)

枚举子项的权限。

KEY_EXECUTE (0x00020019)

读取访问权限的权限。

KEY_NOTIFY (0x00000010)

更改通知的权限。

KEY_QUERY_VALUE (0x00000001)

查询子项数据的权限。

KEY_READ (0x00020019)

KEY_QUERY_VALUEKEY_ENUMERATE_SUB_KEYSKEY_NOTIFY访问的组合。

KEY_SET_VALUE (0x00000002)

更改子项数据的权限。

KEY_WRITE (0x00020006)

KEY_SET_VALUEKEY_CREATE_SUB_KEY访问的组合。

READ_CONTROL (0x00020000)

读取所有者、组和 自由访问控制列表 的权限 (安全描述符的 DACL) 。

WRITE_DAC (0x00040000)

写入 DACL 的权限。

WRITE_OWNER (0x00080000)

更改所有者的权限。

[in, optional] lpSecurityAttributes

忽略此参数。 若要在新注册表项上设置安全属性,请在 成功返回 ClusterRegCreateKey 后调用 ClusterRegSetKeySecurity 函数。

[out] phkResult

指向打开的或创建的键的句柄的指针。

[out, optional] lpdwDisposition

指向值的指针,该值描述是打开还是创建了 lpszSubKey 指向的键。 以下值有效。

REG_CREATED_NEW_KEY (0x00000001)

密钥不存在且已创建。

REG_OPENED_EXISTING_KEY (0x00000002)

密钥存在且已打开。

返回值

如果操作成功,函数将返回 ERROR_SUCCESS

如果操作失败,该函数将返回 系统错误代码

注解

调用方应调用 ClusterRegCloseKey ,以关闭 由 ClusterRegCreateKey 函数创建的密钥句柄。

不要从以下资源 DLL 入口点函数调用 ClusterRegCreateKey

可以从任何其他资源 DLL 入口点函数或工作线程安全地调用 ClusterRegCreateKey。 有关详细信息,请参阅 在资源 DLL 中对避免的函数调用

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008 Enterprise、Windows Server 2008 Datacenter
目标平台 Windows
标头 clusapi.h
Library ClusAPI.lib
DLL ClusAPI.dll

另请参阅

群集注册表访问函数

ClusterRegCloseKey

ClusterRegDeleteKey

ClusterRegOpenKey