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
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.
| Value | Meaning |
- 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 client | Windows XP |
| Minimum supported server | Windows Server 2003 |
| Header | Winreg.h (include Windows.h) |
| Library | Advapi32.lib |
| DLL | Advapi32.dll |
| Unicode and ANSI names | RegSaveKeyExW (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