Поделиться через


Функция 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 (например, если два или более значений имеют значение OR'ed) или если указано 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