Функция 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

Имя файла, в котором необходимо сохранить указанный ключ и подразделы. Если файл уже существует, функция завершается ошибкой.

Новый файл имеет атрибут архива.

Если строка не содержит путь, файл создается в текущем каталоге вызывающего процесса для локального ключа или в каталоге %systemroot%\system32 для удаленного ключа.

[in, optional] lpSecurityAttributes

Указатель на структуру SECURITY_ATTRIBUTES , указывающую дескриптор безопасности для нового файла. Если значение lpSecurityAttributes равно NULL, файл получает дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для файла наследуются от родительского каталога.

[in] Flags

Формат сохраненного ключа или куста. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
REG_STANDARD_FORMAT
1
Ключ или куст сохраняются в стандартном формате. Стандартный формат — это единственный формат, поддерживаемый Windows 2000.
REG_LATEST_FORMAT
2
Ключ или куст сохраняются в последнем формате. Последний формат поддерживается начиная с Windows XP. После сохранения ключа или куста в этом формате его нельзя загрузить в более раннюю систему.
REG_NO_COMPRESSION
4
Куст сохраняется без сжатия для ускорения операций сохранения. Параметр hKey должен указать корень куста в HKEY_LOCAL_MACHINE или HKEY_USERS. Например, HKLM\SOFTWARE является корнем куста.

Возвращаемое значение

Если функция завершается успешно, возвращаемое значение ERROR_SUCCESS.

Если функция завершается ошибкой, возвращаемое значение является ненулевым кодом ошибки, определенным в Winerror.h. Функцию FormatMessage можно использовать с флагом FORMAT_MESSAGE_FROM_SYSTEM, чтобы получить общее описание ошибки.

Если для параметра Flags указано несколько возможных значений, указанных выше, в одном вызове этой функции( например, если задано два или более значений, или если указан REG_NO_COMPRESSION и hKey указывает ключ, который не является корнем куста, эта функция возвращает ERROR_INVALID_PARAMETER.

Комментарии

В отличие от RegSaveKey, эта функция не поддерживает HKEY_CLASSES_ROOT предопределенный ключ.

Если hKey представляет ключ на удаленном компьютере, путь, описанный lpFile , относится к удаленному компьютеру.

Функция RegSaveKeyEx сохраняет только ненулевое значение ключей. Он не сохраняет переменные ключи. Ключ делается неустойчивым или невосприимчивым при его создании; см. раздел RegCreateKeyEx.

Файл, созданный RegSaveKeyEx , можно использовать в последующих вызовах функции RegLoadKey, RegReplaceKey или RegRestoreKey . Если RegSaveKeyEx завершает работу частично, файл будет поврежден и последующие вызовы RegLoadKey, RegReplaceKey или RegRestoreKey для файла завершаются ошибкой.

Использование RegSaveKeyEx вместе с RegRestoreKey для копирования поддерев в реестре не рекомендуется. Этот метод не активирует уведомления и может привести к недействительным дескрипторам, используемым другими приложениями. Вместо этого используйте функцию SHCopyKey или функцию RegCopyTree .

Вызывающий процесс должен иметь SE_BACKUP_NAME привилегии. Дополнительные сведения см. в разделе "Выполнение со специальными привилегиями".

Примечание

Заголовок winreg.h определяет RegSaveKeyEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования нейтрализуемого кодировки псевдонима с кодом, который не является кодировкой нейтральным, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winreg.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKey

Файлы реестра

Функции реестра

SECURITY_ATTRIBUTES