RegSaveKeyExA 函数 (winreg.h)
以指定格式将指定键及其所有子项和值保存到注册表文件中。
备份或还原系统状态(包括系统文件和注册表配置单元)的应用程序应使用 卷影复制服务 ,而不是注册表功能。
语法
LSTATUS RegSaveKeyExA(
[in] HKEY hKey,
[in] LPCSTR lpFile,
[in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] DWORD Flags
);
参数
[in] hKey
打开的注册表项的句柄。
此函数不支持 HKEY_CLASSES_ROOT 预定义密钥。
[in] lpFile
要在其中保存指定键和子项的文件的名称。 如果文件已存在,则函数将失败。
新文件具有 archive 属性。
如果字符串不包含路径,则会在本地密钥的调用进程的当前目录中创建文件,或者在远程密钥的 %systemroot%\system32 目录中创建文件。
[in, optional] lpSecurityAttributes
指向 SECURITY_ATTRIBUTES 结构的指针,该结构指定新文件的安全描述符。 如果 lpSecurityAttributes 为 NULL,则该文件将获取默认的安全描述符。 文件的默认安全描述符中的 ACL 继承自其父目录。
[in] Flags
保存的密钥或配置单元的格式。 此参数的取值可为下列值之一:
返回值
如果函数成功,则返回值为 ERROR_SUCCESS。
如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 可以将 FormatMessage 函数与 FORMAT_MESSAGE_FROM_SYSTEM 标志一起使用,以获取错误的泛型说明。
如果在对此函数的一次调用中指定了上面为 Flags 参数列出的多个可能值(例如,如果两个或更多个值是 OR),或者如果指定了 REG_NO_COMPRESSION 并且 hKey 指定了不是配置单元根的键,则此函数将返回ERROR_INVALID_PARAMETER。
注解
与 RegSaveKey 不同,此函数不支持 HKEY_CLASSES_ROOT 预定义密钥。
如果 hKey 表示远程计算机上的密钥,则 lpFile 描述的路径相对于远程计算机。
RegSaveKeyEx 函数仅保存非易失性密钥。 它不会保存易失性密钥。 密钥在创建时会变得易失性或非易失性;请参阅 RegCreateKeyEx。
可以在后续调用 RegLoadKey、RegReplaceKey 或 RegRestoreKey 函数时使用 RegSaveKeyEx 创建的文件。 如果 RegSaveKeyEx 在其操作过程中失败,则文件将损坏,并且对文件的 RegLoadKey、 RegReplaceKey 或 RegRestoreKey 的后续调用将失败。
不建议将 RegSaveKeyEx 与 RegRestoreKey 一起使用来复制注册表中的子树。 此方法不会触发通知,并且可能会使其他应用程序使用的句柄失效。 请改用 SHCopyKey 函数或 RegCopyTree 函数。
调用进程必须启用SE_BACKUP_NAME特权。 有关详细信息,请参阅使用特殊特权运行。
注意
winreg.h 标头将 RegSaveKeyEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winreg.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |