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


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

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

Чтобы указать формат сохраненного ключа или hive, используйте функцию 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, указывающую дескриптор безопасности для нового файла. Если lpSecurityAttributesNULL, файл получает дескриптор безопасности по умолчанию. Списки управления доступом в дескрипторе безопасности по умолчанию для файла наследуются от родительского каталога.

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

Если функция выполнена успешно, возвращаемое значение 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winreg.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

RegCreateKeyEx

RegDeleteKey

RegLoadKey

RegReplaceKey

RegRestoreKey

RegSaveKeyEx

файлов реестра

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

SECURITY_ATTRIBUTES