Предопределенные ключи

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

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

Handle Описание
HKEY_CLASSES_ROOT
Записи реестра, подчиненные этому разделу, определяют типы (или классы) документов и свойства, связанные с этими типами. Приложения Shell и COM используют сведения, хранящиеся в этом ключе.
Этот ключ также обеспечивает обратную совместимость с базой данных регистрации Windows 3.1, сохраняя сведения о поддержке DDE и OLE. Средства просмотра файлов и расширения пользовательского интерфейса хранят идентификаторы классов OLE в HKEY_CLASSES_ROOT, а внутрипроцессные серверы регистрируются в этом ключе.
Этот дескриптор не следует использовать в службе или приложении, которое олицетворяет разных пользователей.
Дополнительные сведения см. в разделе HKEY_CLASSES_ROOT.
HKEY_CURRENT_CONFIG
Содержит сведения о текущем профиле оборудования локальной компьютерной системы. Сведения в разделе HKEY_CURRENT_CONFIG описывают только различия между текущей конфигурацией оборудования и стандартной конфигурацией. Сведения о стандартной конфигурации оборудования хранятся в разделе Программные и системные ключи HKEY_LOCAL_MACHINE.
HKEY_CURRENT_CONFIG — это псевдоним дляHKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current.
Дополнительные сведения см . в разделе HKEY_CURRENT_CONFIG.
HKEY_CURRENT_USER
Записи реестра, подчиненные этому разделу, определяют предпочтения текущего пользователя. К этим параметрам относятся параметры переменных среды, данные о группах программ, цветах, принтерах, сетевых подключениях и предпочтениях приложений. Этот ключ упрощает установку параметров текущего пользователя; ключ сопоставляется с ветвью текущего пользователя в HKEY_USERS. В HKEY_CURRENT_USER поставщики программного обеспечения хранят текущие пользовательские настройки, которые будут использоваться в своих приложениях. Корпорация Майкрософт, например, создает ключHKEY_CURRENT_USER\Software\Microsoft для своих приложений, при этом каждое приложение создает собственный подраздел в ключе Майкрософт .
Сопоставление между HKEY_CURRENT_USER и HKEY_USERS выполняется по каждому процессу и устанавливается, когда процесс впервые ссылается на HKEY_CURRENT_USER. Сопоставление основано на контексте безопасности первого потока, ссылающегося на HKEY_CURRENT_USER. Если в этом контексте безопасности нет куста реестра, загруженного в HKEY_USERS, сопоставление устанавливается с HKEY_USERS\.Default. После установки этого сопоставления оно сохраняется, даже если контекст безопасности потока меняется.
Все записи реестра в HKEY_CURRENT_USER , кроме записей вHKEY_CURRENT_USER\Software\Classes , включаются в раздел реестра для отдельных пользователей перемещаемого профиля пользователя. Чтобы исключить другие записи из перемещаемого профиля пользователя, сохраните их в HKEY_CURRENT_USER_LOCAL_SETTINGS.
Этот дескриптор не следует использовать в службе или приложении, которое олицетворяет разных пользователей. Вместо этого вызовите функцию RegOpenCurrentUser .
Дополнительные сведения см. в разделе HKEY_CURRENT_USER.
HKEY_CURRENT_USER_LOCAL_SETTINGS
Записи реестра, подчиненные этому разделу, определяют настройки текущего пользователя, которые являются локальными для компьютера. Эти записи не включаются в раздел реестра для отдельных пользователей перемещаемого профиля пользователя. Windows Server 2008, Windows Vista, Windows Server 2003 и Windows XP/2000: Этот ключ поддерживается начиная с Windows 7 и Windows Server 2008 R2.

HKEY_LOCAL_MACHINE
Записи реестра, подчиненные этому разделу, определяют физическое состояние компьютера, включая данные о типе шины, системной памяти, установленном оборудовании и программном обеспечении. Он содержит подразделы, содержащие текущие данные конфигурации, в том числе сведения о Plug and Play (ветвь Enum, которая включает полный список всего оборудования, которое когда-либо находилось в системе), настройки входа в сеть, сведения о безопасности сети, сведения о программном обеспечении (например, имена серверов и расположение сервера) и другие системные сведения.
Дополнительные сведения см. в разделе HKEY_LOCAL_MACHINE.
HKEY_PERFORMANCE_DATA
Записи реестра, подчиненные этому разделу, позволяют получать доступ к данным о производительности. Данные фактически не хранятся в реестре; функции реестра приводят к тому, что система собирает данные из своего источника.
HKEY_PERFORMANCE_NLSTEXT
Записи реестра, подчиненные этому разделу, ссылаться на текстовые строки, описывающие счетчики на локальном языке области, в которой работает компьютерная система. Эти записи недоступны для Regedit.exe и Regedt32.exe. Windows 2000: Этот ключ не поддерживается.

HKEY_PERFORMANCE_TEXT
Записи реестра, подчиненные этому ключу, ссылались на текстовые строки, описывающие счетчики на английском языке (США). Эти записи недоступны для Regedit.exe и Regedt32.exe. Windows 2000: Этот ключ не поддерживается.

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

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

Функции RegDisablePredefinedCache и RegDisablePredefinedCacheEx отключают кэширование дескрипторов для предопределенных дескрипторов реестра. Службы, использующие олицетворение, должны вызывать RegDisablePredefinedCacheEx перед использованием предопределенных дескрипторов реестра.

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