ORCreateKey 函数

在脱机注册表配置单元中创建指定的注册表项。 如果该项已存在,函数将打开它。

语法

DWORD ORCreateKey(
  _In_      ORHKEY               Handle,
  _In_      PCWSTR               lpSubKey,
  _In_opt_  PWSTR                lpClass,
  _In_opt_  DWORD                dwOptions,
  _In_opt_  PSECURITY_DESCRIPTOR pSecurityDescriptor,
  _Out_     PORHKEY              phkResult,
  _Out_opt_ PDWORD               pdwDisposition
);

parameters

句柄 [in]

脱机注册表配置单元中打开的注册表项的句柄。

lpSubKey [in]

指向 Unicode 字符串的指针,该字符串包含此函数打开或创建的子项的名称。 lpSubKey 参数必须指定由 Handle 参数标识的键的子项;它在注册表树中最多可以有 32 个级别。 有关键名称的详细信息,请参阅 注册表的结构。

此参数不能为 NULL。

键名称不区分大小写。

lpClass [in, 可选]

类 (此键的对象类型) 。 此参数可以忽略。 此参数可以为 NULL。

dwOptions [in, optional]

此参数可以是 0 或以下值之一。

值 含义
REG_OPTION_CREATE_LINK
0x00000002L
键是符号链接。 目标路径分配给键的 L“SymbolicLinkValue”值。 目标路径必须是绝对注册表路径。 如果设置了此选项,还必须设置 REG_OPTION_NON_VOLATILE 。
如果 lpSubKey 参数指定现有密钥,则必须使用 REG_OPTION_CREATE_LINK 创建它。
仅当应用程序兼容性绝对必要时才应使用注册表符号链接。
REG_OPTION_NON_VOLATILE
0x00000000L
键不是易失的;这是默认值。 信息存储在文件中,并在系统重启时保留。 ORSaveHive 函数保存不可变的键。

 

pSecurityDescriptor [in, optional]

指向包含新密钥的安全描述符 的SECURITY_DESCRIPTOR 结构的指针。 如果 pSecurityDescriptor 为 NULL,则密钥将获取默认的安全描述符。 密钥的默认安全描述符中的 ACL 继承自其直接父密钥。

phkResult [out]

一个变量的指针,此变量指向已打开或已创建的项的句柄。 使用完句柄后,使用 ORCloseKey 函数关闭密钥。

pdwDisposition [out, optional]

指向接收以下处置值之一的变量的指针。

值 含义
REG_CREATED_NEW_KEY
0x00000001L
密钥不存在且已创建。
REG_OPENED_EXISTING_KEY
0x00000002L
密钥存在,只是打开而不更改。

 

如果 pdwDisposition 为 NULL,则不返回处置信息。

返回值

如果函数成功,则返回值为 ERROR_SUCCESS。

如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 可以将 FormatMessage 函数与 FORMAT_MESSAGE_FROM_SYSTEM 标志一起使用,以获取错误的泛型说明。

如果使用 REG_OPTION_CREATE_LINK 设置 dwOptions 参数,但REG_OPTION_NON_VOLATILE是明确的,或者要返回的句柄是配置单元根键的句柄,则函数将返回ERROR_INVALID_PARAMETER。

备注

ORCreateKey 函数创建的键没有值。 应用程序可以使用 ORSetValue 函数来设置键值。

ORCreateKey 函数不能用于在脱机注册表配置单元中创建根密钥。 使用 ORCreateHive 函数创建根密钥并获取密钥的句柄。

脱机注册表不支持保存单个密钥。 使用 ORSaveHive 函数将密钥及其子项保存在配置单元中。

要求

要求 值
可再发行组件
Windows 脱机注册表库版本 1.0 或更高版本
标头
Offreg.h
DLL
Offreg.dll

请参阅

ORCloseKey

ORCreateHive

ORDeleteKey

ORSaveHive

SECURITY_DESCRIPTOR