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

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

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

Синтаксис

LSTATUS RegReplaceKeyA(
  [in]           HKEY   hKey,
  [in, optional] LPCSTR lpSubKey,
  [in]           LPCSTR lpNewFile,
  [in]           LPCSTR lpOldFile
);

Параметры

[in] hKey

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

HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIGHKEY_CURRENT_USERHKEY_USERS HKEY_LOCAL_MACHINE

[in, optional] lpSubKey

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

Если указанный подраздел не является корнем куста, RegReplaceKey проходит по древовидной структуре куста, пока не обнаружит корень куста, а затем заменяет содержимое этого куста содержимым файла данных, указанного в lpNewFile.

Дополнительные сведения см. в разделе Ограничения размера элементов реестра.

[in] lpNewFile

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

[in] lpOldFile

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

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

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

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

Комментарии

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

Файл, указанный параметром lpNewFile , остается открытым до перезапуска системы.

Если hKey — это дескриптор, возвращаемый RegConnectRegistry, то пути, указанные в lpNewFile и lpOldFile , относятся к удаленному компьютеру.

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

Примечание

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

Требования

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

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

RegConnectRegistry

RegDeleteKey

RegLoadKey

RegRestoreKey

RegSaveKey

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

Общие сведения о реестре