Функция RegSaveKeyA (winreg.h)
Сохраняет указанный ключ и все его вложенные ключи и значения в новом файле в стандартном формате.
Чтобы указать формат сохраненного ключа или hive, используйте функцию RegSaveKeyEx.
Приложения, которые выполняют резервное копирование или восстановление состояния системы, включая системные файлы и кусты реестра, должны использовать службу теневого копирования томов вместо функций реестра.
Синтаксис
LSTATUS RegSaveKeyA(
[in] HKEY hKey,
[in] LPCSTR lpFile,
[in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
Параметры
[in] hKey
Дескриптор открытого раздела реестра.
Этот дескриптор возвращается функцией
- 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 |
См. также
файлов реестра