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