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 结构的指针。 如果 pSecurityDescriptorNULL,则密钥将获取默认的安全描述符。 密钥的默认安全描述符中的 ACL 继承自其直接父密钥。

phkResult [out]

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

pdwDisposition [out, optional]

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

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

 

如果 pdwDispositionNULL,则不返回处置信息。

返回值

如果函数成功,则返回值为 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