RegSaveKeyEx Function

Saves the specified key and all of its subkeys and values to a registry file, in the specified format.

Applications that back up or restore system state including system files and registry hives should use the Volume Shadow Copy Service instead of the registry functions.

Syntax

C++
LONG WINAPI RegSaveKeyEx(
  __in      HKEY hKey,
  __in      LPCTSTR lpFile,
  __in_opt  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  __in      DWORD Flags
);

Parameters

hKey [in]

A handle to an open registry key. This handle must specify a registry hive.

This function does not support the HKEY_CLASSES_ROOT predefined key.

lpFile [in]

The name of the file in which the specified key and subkeys are to be saved. If the file already exists, the function fails.

The new file has the archive attribute.

If the string does not include a path, the file is created in the current directory of the calling process for a local key, or in the %systemroot%\system32 directory for a remote key.

lpSecurityAttributes [in, optional]

A pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new file. If lpSecurityAttributes is NULL, the file gets a default security descriptor. The ACLs in a default security descriptor for a file are inherited from its parent directory.

Flags [in]

The format of the saved key or hive. This parameter can be one of the following values.

ValueMeaning
REG_STANDARD_FORMAT
1

The key or hive is saved in standard format. The standard format is the only format supported by Windows 2000.

REG_LATEST_FORMAT
2

The key or hive is saved in the latest format. The latest format is supported starting with Windows XP. After the key or hive is saved in this format, it cannot be loaded on an earlier system.

REG_NO_COMPRESSION
4

The key or hive is saved with no compression. This option accommodates faster save operations.

 

Return Value

If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.

If more than one of the possible values listed above for the Flags parameter is specified in one call to this function—for example, if two or more values are OR'ed—this function returns ERROR_INVALID_PARAMETER.

Remarks

Unlike RegSaveKey, this function does not support the HKEY_CLASSES_ROOT predefined key.

If hKey represents a key on a remote computer, the path described by lpFile is relative to the remote computer.

The RegSaveKeyEx function saves only nonvolatile keys. It does not save volatile keys. A key is made volatile or nonvolatile at its creation; see RegCreateKeyEx.

You can use the file created by RegSaveKeyEx in subsequent calls to the RegLoadKey, RegReplaceKey, or RegRestoreKey function. If RegSaveKeyEx fails partway through its operation, the file will be corrupt and subsequent calls to RegLoadKey, RegReplaceKey, or RegRestoreKey for the file will fail.

RegSaveKeyEx is often used in conjunction with RegRestoreKey to copy subtrees in the registry. An alternative to this approach is to use the SHCopyKey function.

The calling process must have the SE_BACKUP_NAME privilege enabled. For more information, see Running with Special Privileges.

Requirements

Minimum supported clientWindows XP
Minimum supported serverWindows Server 2003
HeaderWinreg.h (include Windows.h)
LibraryAdvapi32.lib
DLLAdvapi32.dll
Unicode and ANSI namesRegSaveKeyExW (Unicode) and RegSaveKeyExA (ANSI)

See Also

RegCreateKeyEx
RegDeleteKey
Registry Files
Registry Functions
RegLoadKey
RegReplaceKey
RegRestoreKey
RegSaveKey
SECURITY_ATTRIBUTES

Send comments about this topic to Microsoft

Build date: 11/19/2009

Tags :


Community Content

BobF77
Requires Process Elevation
Note that RegSaveKeyEx requires process elevation on Windows Vista and above if UAC is enabled. Otherwise, it will fail with a return code of ERROR_PRIVILEGE_NOT_HELD because privilege SE_BACKUP_NAME is not available to an unelevated process.
Tags :

Page view tracker