Поделиться через


Сведения о библиотеке автономного реестра

Библиотека автономного реестра используется для изменения куста реестра за пределами активного системного реестра.

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

  • Функции автономного реестра можно использовать для изменения куста реестра в любом поддерживаемом формате реестра. Стандартные функции реестра могут вносить изменения только в активный куст реестра, и изменения должны быть совместимы с версией Windows, работающей в системе.
  • В автономной библиотеке реестра требуется только доступ на чтение для открытия файла hive реестра и записи для сохранения файла. Другие проверка доступа не выполняются на объектах в кусте, что позволяет изменять куст со стандартными привилегиями пользователя. При использовании стандартных функций реестра загрузка куста в активный реестр является привилегированной операцией, требующей административного доступа.

Функции автономного реестра не должны использоваться в качестве замены функций системного реестра по следующим причинам:

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

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

Windows Server 2003 и Windows XP: функция RegLoadAppKey не поддерживается.

Автономный куст реестра — это куст реестра, загруженный в память с помощью функций автономного реестра. Чтобы создать пустой автономный куст реестра, используйте функцию ORCreateHive . Чтобы изменить существующий hive реестра, используйте функцию RegSaveKey или RegSaveKeyEx для сохранения куста из активного системного реестра в файл, а затем используйте функцию OROpenHive для открытия файла.

Функции ORCreateHive и OROpenHive возвращают дескриптор корневому ключу автономного куста реестра. Этот дескриптор можно использовать как дескриптор любого другого ключа в автономном кусте реестра со следующими исключениями: функции ORCreateKey и OROpenKey нельзя использовать для возврата дескриптора корневому ключу. Функция ORCloseKey не может использоваться для закрытия корневого ключа. Для удаления корневого ключа нельзя использовать функцию ORDeleteKey. Во всех этих случаях функция завершается ошибкой с ERROR_INVALID_PARAMETER.

Используйте функцию ORCreateKey, чтобы добавить ключи в открытый автономный куст реестра и функцию ORSetValue, чтобы задать значения ключей. Библиотека автономного реестра поддерживает другие основные операции реестра, такие как перечисление, извлечение и удаление ключей и значений, а также настройка ключевых атрибутов, таких как поведение безопасности и виртуализации. Список функций см. в разделе "Функции автономной библиотеки реестра".

Чтобы сохранить изменения, внесенные в открытый автономный куст реестра, используйте функцию ORSaveHive для сохранения куста в файл. (Изменения не сохраняются, если только неORSaveHive называется.) После сохранения куста используйте функцию ORCloseHive , чтобы закрыть куст и свободные ресурсы, связанные с ним.

Автономный куст реестра проверяется только при открытии с помощью функции OROpenHive. Если hive поврежден, операция просто завершается ошибкой; попытка восстановить куст не выполняется. Доступ к проверка для объектов в кусте не выполняется, пока hive не загружается в активный реестр с функцией RegLoadKey.

Функции автономного реестра не поддерживают стандартные ключи.

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

Автономный реестр Library_Functions