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

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

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

Синтаксис

LSTATUS RegRestoreKeyA(
  [in] HKEY   hKey,
  [in] LPCSTR lpFile,
  [in] DWORD  dwFlags
);

Параметры

[in] hKey

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

HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIGHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERS Любая информация, содержащаяся в этом ключе и его дочерних ключах, перезаписывается данными в файле, на которые указывает параметр lpFile .

[in] lpFile

Имя файла с данными реестра. Этот файл обычно создается с помощью функции RegSaveKey .

[in] dwFlags

Флаги, указывающие способ восстановления ключа или ключей. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
REG_FORCE_RESTORE
0x00000008L
Если этот параметр указан, операция восстановления выполняется, даже если открытые дескрипторы существуют в расположении или под расположением в иерархии реестра, на которое указывает параметр hKey .
REG_WHOLE_HIVE_VOLATILE
0x00000001L
Если этот параметр указан, создается новый, изменяющийся (только для памяти) набор сведений о реестре или куст. Если указан REG_WHOLE_HIVE_VOLATILE, ключ, определяемый параметром hKey , должен иметь значение HKEY_USERS или HKEY_LOCAL_MACHINE .

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

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

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

Комментарии

Существует два разных формата файлов hive реестра. Кусты реестра, созданные в текущих операционных системах, обычно не могут быть загружены более ранними.

Если открыты какие-либо подразделы параметра hKey , regRestoreKey завершается ошибкой .

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

Эта функция заменяет ключи и значения ниже указанного ключа ключами и значениями, которые являются дочерними ключом верхнего уровня в файле, независимо от имени ключа верхнего уровня в файле. Например, hKey может идентифицировать ключ A с подразделами B и C, а параметр lpFile указывает файл, содержащий ключ X с подразделами Y и Z. После вызова RegRestoreKey реестр будет содержать раздел A с подразделами Y и Z. Записи значений A будут заменены записями значений X.

Новые сведения в файле, указанном lpFile , перезаписывают содержимое ключа, заданного параметром hKey , за исключением имени ключа.

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

Примечание

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

Требования

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

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

RegDeleteKey

RegLoadKey

RegReplaceKey

RegSaveKey

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

Обзор реестра