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