Реестр Windows XP отличается многоуровневой архитектурой, включающей в себя четыре нисходящих логических компонента. К первому компоненту, расположенному в самом верху иерархии реестра, относятся так называемые ветви реестра. Эти ветви обозначаются с использованием англоязычной аббревиатуры HKEY_. После символа подчеркивания идет название самой ветви. Всего в реестре Windows XP есть пять основных ветвей: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS и HKEY_CURRENT_CONFIG.

К второму компоненту в системе иерархии реестра относятся разделы, или ключи реестра (keys). В Windows XP не существует универсального стандарта для обозначения ключей реестра, поэтому имена для них назначались разработчиками согласно типам данных, которые расположены в ключе. Работать с ключами можно в программе Редактор реестра (RegEdit), где они отображаются в виде подпапок ветвей HKEY_, как показано рисунке ниже.

Редактор реестра

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

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

  • Указываются системой. Имена ключей выбираются ОС, их изменение может сделать Windows XP полностью неработоспособной.
  • Указываются пользователем. Имена ключей может изменять администратор компьютера, и такие модификации не станут причиной каких-либо фатальных проблем.

Ступенькой ниже в структурной иерархии реестра расположены подразделы реестра (subkeys). Подразделы также прямо не связаны с какими-либо типами данных и не используются в рамках каких-либо соглашений, которые ограничивают присвоение им названий. Наравне с именами ключей, названия подразделов определяются как ОС, так и пользователем, причем в первом случае их модификация может стать причиной проблем в работе Windows, а во втором — нет.

Финальная ступень в архитектуре системного реестра называется параметром (values). Это компонент реестра, содержащий непосредственно сами данные, которые обуславливают работу ОС и всего компьютера. Параметры, фактически, являются цепочкой «имя параметра — значение параметра» и различаются по типу содержащейся в качестве их значений информации.

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

Разобравшись с реестром, перейдем к обзору типы данных, которые хранятся в параметрах реестра Windows.

Типы данных системного реестра Windows

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

  • REG_NONE. Тип данных «Неизвестный». Зашифрованные данные.
  • REGSZ. Тип данных «Строковый». Текст.
  • REG_EXPAND_SZ. Тип данных «Строковый». Текст и переменные.
  • REG_BINARY. Тип данных «Двоичный». Двоичные данные.
  • REG_DWORD. Тип данных «Числовой». Число.
  • REG_DWORD_BIN_ENDIAN. Тип данных «Числовой». Число с обратным порядком байтов.
  • REG_LINK. Тип данных «Строковый». Путь к файлу.
  • REG_MULTI_SZ. Тип данных «Многостроковый». Массив строк.
  • REG_RESOURCE_LIST. Тип данных «Строковый». Список ресурсов устройств.
  • REG_FULL_RESOURCE_DESCRIPTOR. Тип данных «Строковый». Идентификатор ресурса устройства.
  • REG_RESOURCE_REQUIREMENTS_LIST. Тип данных «Строковый». Идентификатор ресурса устройства.

Любой пользователь может свободно редактировать все значения параметров реестра, причем не важно, к какому типу данных, из указанных ранее, они относятся. В программе Редактор реестра представлен набор встроенных мастеров, которые дают возможность менять разнообразные типы данных. В частности, для настройки значений числовых параметров используется мастер DWORD, двоичных — BINARY, строковых — STRING и многостроковых — MULTISTRING.

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

  • HKEY_LOCAL_MACHINE (HKLM). В этой ветви представлены данные, связанные с операционной системе и оборудованием. К ним относятся, например, тип шины компьютера, общий объем доступной оперативной памяти, список загруженных в текущий момент времени драйверов устройств, а также информация об особенностях загрузки Windows. Это самая объемная ветвь системного реестра Windows XP, которая применяется для тонкой настройки оборудования компьютера. При этом данные, расположенные в этой ветви, относятся сразу ко всем профилям пользователей, зарегистрированных в системе.
  • HKEY_CURRENT_USER (HKCU). В этой ветви находятся сведения о пользователе, текущий сеанс работы которого обслуживается реестром. В подразделах этой ветви записаны данные о переменных окружения, группах программ пользователя, настройках рабочего стола и экрана, сетевых соединениях, принтерах и дополнительной конфигурации программ (в Windows XP переменные окружения применяются в сценариях, записях реестра и других программах лишь в роли подстановочных параметров). Эта информация передаются из подраздела Security ID (SID) ветви HKEY_USERS для текущего пользователя. Другими словами, в данной ветви предоставлена вся информация, относящаяся к профилю активного пользователя Windows.
  • HKEY_CLASSES_ROOT (HKR). В данной ветви находятся данные об операционной системе и оборудовании, к примеру, тип шины компьютера, объем доступной оперативной памяти, список загруженных в текущий момент времени драйверов устройств, а также информация, связанная с загрузкой Windows. Эта ветвь содержит наибольший объем информации в системном реестре Windows XP и зачастую применяется для тонкой настройки оборудования компьютера. Данные в этой ветви относятся к профилям всех зарегистрированных в системе пользователей.
  • HKEY_USERS (HKU). В этой ветви расположены подразделы с данными о всех профилях пользователей компьютера. Один из ее подразделов всегда связан с подразделом HKEY_CURRENT_USER (через параметр Security ID (SID) пользователя)). В другом подразделе, а именно, подразделе, HKEY_USERS\DEFAULT, представлены данные о параметрах системы в настоящий момент времени, которые были актуальны до начала сеанса работы пользователя, зарегистрированного в системе.
  • HKEY_CURRENT_CONFIG (HKCC). В данной ветви представлены подразделы со сведениями обо всех профилях оборудования, активного в текущем рабочем сеансе. Профили оборудования дают возможность выбирать драйверы поддерживаемых устройств для выбираемого сеанса работы (что позволяет, к примеру, не задействовать активацию порта док-станции переносного компьютера в тот период, когда он не подключен к станции). Данные сведения передаются из подразделов HKEY_LOCAL_MACHlNE\SYSTEM\CurrentControlSet.

Читаем продолжение в разделе Системный реестр Windows.