Функция RegSaveKeyA (winreg.h)

Сохраняет указанный ключ и все его подразделы и значения в новом файле в стандартном формате.

Чтобы указать формат сохраненного ключа или куста, используйте функцию RegSaveKeyEx .

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

Синтаксис

LSTATUS RegSaveKeyA(
  [in]           HKEY                        hKey,
  [in]           LPCSTR                      lpFile,
  [in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Параметры

[in] hKey

Дескриптор открытого раздела реестра.

Этот дескриптор возвращается функцией RegCreateKeyEx или RegOpenKeyEx или может быть одним из следующих предопределенных ключей:

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER

[in] lpFile

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

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

[in, optional] lpSecurityAttributes

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

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

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

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

Если файл уже существует, функция завершается ошибкой ERROR_ALREADY_EXISTS.

Комментарии

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

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

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

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

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

Примечание

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

Требования

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

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

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKeyEx

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

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

SECURITY_ATTRIBUTES