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