Глава 7

Справочник по ключам реестра

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

Довольно часто им приходится выполнять и задачи, связанные с администрированием реестра. В главе 1 приводилось очень краткое описание ключей реестра в Windows NT/2000 и Windows XP. В данной главе, которая призвана послужить своего рода справочником по основным ключам реестра операционных систем Windows NT/2000/XP, мы рассмотрим этот вопрос более подробно. Особо выделим новые ключи, которые были добавлены в Windows XP.

Примечание 

Так же как и многие другие системные компоненты Windows XP, реестр этой операционной системы очень схож с реестром, имеющимся в Windows NT/2000, и имеет существенные отличия от реестра Windows 9x/ME. Это объясняется тем, что система Windows XP создана на основе ядра Windows NT/2000. Однако, в виду того что в Windows XP было представлено много новых функциональных возможностей, а само ядро системы было усовершенствовано, в реестре системы появились новые ключи и элементы. Это не удивительно, т. к. все новые функциональные возможности операционной системы обязательно находят свое отражение в ее реестре.

 

HKEY_LOCAL_MACHINE

HKEY_LOCAL_MACHINE представляет собой один из самых важных и интересных корневых ключей реестра. Он содержит конфигурационные данные для локального компьютера. Информация, хранящаяся в составе этого ключа, используется приложениями, драйверами устройств и системой Windows NT/2000/XP для получения данных о конфигурации локального компьютера, вне зависимости от того, какой пользователь зарегистрирован в системе и какое программное обеспечение используется.

HKEY_LOCAL_MACHINE содержит пять вложенных ключей, краткие описания которых приведены в табл. 7.1.

Примечание

Можно прочесть информацию, содержащуюся в любом из этих ключей, но практический смысл имеет только редактирование данных, хранящихся в составе ключей Software И System.

Таблица 7.1. Вложенные ключи корневого ключа HKEY_LOCAL_MACHINE

Ключ

Содержимое

HARDWARE

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

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

Вложенный ключ DEVICEMAP содержит разнообразные данные в форматах, определяемых конкретными классами драйверов.

Вложенный ключ RESOURCEMAP описывает, какие драйверы устройств запрашивают конкретные системные ресурсы (включая порты, адреса DMA, IRQ). Обратите внимание, что во всех операционных системах, созданных на базе Windows NT, включая Windows 2000 и Windows XP, предусмотрен более простой способ просмотра и редактирования содержимого этого ключа. Для этого рекомендуется использовать различные инструментальные средства администрирования. Например, для Windows NT 4.0 это утилита Windows NT Diagnosties (Winmsdp.exe), а в Windows 2000 и Windows XP — консоль ММС или Диспетчер устройств (Device Manager)

SAM

База данных сервиса каталога, которая содержит информацию подсистемы безопасности об учетных записях пользователей и групп, а также о доменах сети Windows NT/2000/XP. (SAM — это диспетчер бюджетов безопасности, Security Account Manager.) По умолчанию этот ключ является нечитаемым с помощью редакторов реестра даже для пользователей, которые зарегистрировались в системе от имени администратора. Данные, хранящиеся в составе ключа HKLM\SAM, нигде официально не документированы, а пароли пользователей зашифрованы

 

Обратите внимание, что в доменах Windows NT база данных SAM также содержит в себе базу данных сервиса каталога. В доменах Windows 2000 база данных сервиса каталога хранится на контроллерах домена, в файле Ntds.dit. Однако база данных SAM продолжает играть важную роль, т. к. в ней хранятся локальные бюджеты (необходимые для локальной регистрации пользователей). Если компьютер под управлением Windows XP, не является участником домена, то база данных SAM служит главным хранилищем учетных записей пользователей и групп

SECURITY

База данных, которая содержит локальную политику безопасности, включая права конкретных пользователей. Этот ключ используется только подсистемой безопасности Windows NT/2000/XP. В качестве примера информации, содержащейся в составе этого ключа, можно привести сведения о наличии у конкретного пользователя права перезагружать локальный компьютер, загружать драйверы устройств, выполнять резервное копирование файлов или получать доступ к локальной системе через сеть. Информация ключа SECURITY также зашифрована. Ключ HKLM\SAM представляет собой ссылку на содержимое ключа HKLM\SECURITY\SAM

SOFTWARE

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

SYSTEM

База данных, управляющая запуском системы, загрузкой драйверов устройств, сервисами Windows NT/2000/XP и поведением операционной системы

Если под ключом HKEY_CURRENT_USER существуют данные, аналогичные данным, находящимся под ключом HKEY_LOCAL_MACHINE, то в соответствии с принятым соглашением, данные под ключом HKEY_CURRENT_USER имеют приоритет.

Примечание 

Внимательный читатель, конечно, помнит, что параметр Policy, расположенный в составе ключа HKEY_LOCAL_MACHINE, имеет приоритет перед значениями, заданными индивидуально для каждого пользователя, а это имеет место, если вы зарегистрировались в системе под именем Администратор (Administrator) и даете указание использовать установленную опцию по умолчанию (см. главу 5).

Однако значения, находящиеся под этим ключом, могут также расширять (но не замещать) данные, расположенные под ключом HKEY_LOCAL_MACHINE. К тому же, некоторые элементы (например, параметры, управляющие загрузкой драйверов устройств) не имеют смысла вне ключа HKEY_LOCAL_MACHINE.

 

Ключ HKEY_LOCAL_MACHINE\HARDWARE

Ключ HKEY_LOCAL_MACHINE\HARDWARE содержит данные об аппаратных средствах, вычисляемые при запуске системы. В число этих данных входят данные об устройствах на материнской плате, а также о прерываниях, используемых конкретными драйверами устройств.

Ключ HARDWARE содержит важные наборы данных, разбитых на три вложенных ключа: DESCRIPTION, DEVICEMAP и RESOURCEMAP.

Вся информация, которая содержится в ключе HKEY_LOCAL_MACHINE \HARDWARE, является непостоянной (volatile). Это означает, что параметры вычисляются заново при каждом запуске системы и теряются при ее остановке. Приложения и драйверы устройств используют это поддерево для чтения информации о системных компонентах для сохранения данных непосредственно в подключе DEVICEMAP и косвенным образом в подключе RESOURCEMAP (рис. 7.1).

Рис. 7.1. Ключ HREY_LOCAL_MACHINE\HARDWARE

 Примечание 

Как отмечалось в главе 5, интегрированная поддержка Plug and Play и управление питанием в Windows 2000/XP осуществляется лишь на компьютерах, оснащенных Advanced Configuration and Power Interface (ACPI) BIOS. При запуске ОС системный загрузчик проверяет, загружен ли BIOS именно такого типа. Если это так, то в операционной системе активизируется ASPI. Если такой BIOS не загружен, то режим ACPI выключен и вместо него используется менее надежная модель — Advanced Power Management (АРМ). Microsoft осуществляет поддержку драйвера ACPI как части операционной системы. В системах, имеющих ACPI BIOS, HAL (Hardware Abstraction Layer, Уровень аппаратных абстракций) обеспечивает загрузку драйвера ACPI в основание дерева устройств (device tree), в котором он выполняет роль интерфейса между операционной системой и BIOS. Драйвер ACPI прозрачен для других драйверов. Если в системе есть ACPI BIOS, в дереве реестра HKEY_LOCAL_MACHINE\HARDWARE будет содержаться вложенный ключ ACPI (рис. 7.1).

Не пытайтесь редактировать данные подключа HKEY_LOCAL_MACHINE \HARDWARE. Большая часть информации хранится в двоичном формате, что затрудняет ее понимание.

Рис. 7.2. Просмотр информации об аппаратных средствах компьютера в Windows XP с помощью утилиты Сведения о системе

Информацию об аппаратных средствах компьютера Windows 2000 можно просмотреть, выполнив команды Программы | Администрирование | Управление компьютером (Programs | Administrative Tools Computer Management) меню Пуск (Start) и развернув дерево консоли ММС. Чтобы просмотреть эту же информацию в Windows XP, нажмите кнопку Пуск (Start), затем выберите команду Все программы | Администрирование | Управление компьютером (All Programs | Accessories | System Tools System Information) для того, чтобы открыть окно Сведения о системе (System Information) (рис. 7.2). Как и в Windows 2000, информация об аппаратных средствах, представленная в удобочитаемом виде, тоже извлекается из реестра.

 

Вложенный ключ DESCRIPTION

Вложенный ключ DESCRIPTION, расположенный под ключом HKEY_LOCAL_MACHINEXHARDWARE, отображает информацию из базы данных аппаратных устройств. На компьютерах с процессорами Intel эта база данных содержит сведения об устройствах, обнаруженных Ntdetect.com и Ntoskrnl.exe. Ntdetect.com представляет собой стандартную программу, написанную в стиле DOS, которая использует вызовы к системной BIOS для сбора информации об аппаратных средствах компьютера и их конфигурации. Сюда входит информация о дате и времени, хранящаяся в микросхеме CMOS (энергонезависимой памяти), типах шин (например, ISA, PCI, EISA) и идентификаторах устройств на этих шинах, количестве, типах и объеме жестких дисков, имеющихся в системе, количестве и типах параллельных портов и т. д. На базе собранной информации формируются внутренние структуры данных, которые ядро операционной системы (Ntoskrnl.exe) при запуске сохраняет в составе ключа HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION.

Отличие версии Ntdetect.com, входящей в состав Windows 2000 и Windows XP, заключается в том, что ее функции распознавания устройств PnP (Plug and Play) переданы драйверам РnР, в то время как Windows NT 4.0 вследствие ограниченности поддержки РnР распознает аппаратные средства компьютера только с помощью Ntdetect.

Ntdetect.com опознает следующие аппаратные средства:

 Примечание

На этапе запуска не выполняется распознавание плат сетевых адаптеров. Выявление плат сетевых адаптеров производится либо в процессе установки Windows NT/2000/XP, либо при установке на компьютер новой сетевой платы.

Еще несколько вложенных ключей, каждый из которых соответствует конкретным типам контроллеров шины на локальном компьютере, находятся в составе ключа HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\ SystemYMultifunctionAdapter.

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

Рис. 7.3. Параметры ключа HKEY_LOCAL_MACHINE\ HARDWARE\DESCRIPTION\ System\MultifunctionAdapter

Для каждого выявленного аппаратного компонента параметры component information и Configuration Data содержат двоичные данные о версии и конфигурации (рис. 7.3). Параметр identifier содержит имя компонента (если оно указано).

 

Вложенный ключ DEVICEMAP

Ключ HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP содержит  набор вложенных ключей, каждый из которых имеет один или несколько параметров, указывающих для обнаруженных устройств путь к информации о драйверах, необходимых этим устройствам. Рассмотрим применение этой информации для поиска драйверов устройств на примере хранения в реестре сведений о драйверах видеоадаптеров. На рис. 7.4 показан пример, иллюстрирующий содержимое вложенного ключа VIDEO, расположенного в составе ключа DEVICEMAP (информация, которую увидите вы, раскрыв этот ключ реестра, будет отличаться от показанной на этой иллюстрации, но, тем не менее, она будет подчиняться ряду общих закономерностей).

Рис. 7.4. Содержимое ключа HKEY_LOCAL_MACHINE\ HARDWARE\DEVICEMAP\VIDEO

Итак, в составе ключа реестра HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP \VIDEO имеется несколько параметров, которые фактически представляют собой указатели на активные в текущий момент устройства. Это параметры с именами \Device\videow, где w— порядковый номер (О, 1, 2 и т. д.). Значения каждого из этих параметров представляют собой строки (тип данных REG_SZ), которые указывают на драйверы соответствующих устройств.

Примечание

Обратите внимание на формат данных строк-указателей. Например, параметр \Device\video0, представленный на рис. 7.4, имеет значение \Registry\Machine\System\CurrentControlSet\Control\Video\ {С9В3527 9-10E5-4858-9713-1B9D431C37FD} \0000. Это ведь совсем не то обозначение корневых ключей реестра, к которому мы уже привыкли (для сравнения: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER и т. д.). Что же все это значит? Дело в том, что Windows NT/2000/XP— это объектно-ориентированные операционные системы, работающие с объектами разнообразных типов: устройства (Device), порты (Port), события (Event), каталоги (Directory), символические ссылки (SymbolicLinks) и многие другие. Ключи реестра представляют собой одну из разновидностей объектов, и корневой ключ реестра — это объект типа Key с именем REGISTRY. Именно поэтому в документации по DDK (Device Driver Kit) имена всех ключей реестра начинаются со строки \REGISTRY (например, \REGISTRY\Machine\CurrentControlSet\Services). Таким образом, например, дескриптор ключа HKEY_LOCAL_MACHINE представляет собой ключ с именем \REGiSTRY\Machine, а дескриптор ключа HKEY_USERS —ключ с именем \REGISTRY\User.

Теперь откроем ключ \HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\ Control\Video\{С9В35279-10Е5-4858-9713-1B9D431C37FD}\0000 (рис. 7.5).

Рис. 7.5. Содержимое ключа HKLM\SYSTEM\ CurrentControlSet\Control\Video\ {C9B35279-10E5-4858-9713-lB9D431C37FD}\0000

Обратите внимание, что он содержит большое количество элементов, главным образом в двоичном формате.

Однако, среди этих элементов есть значение Device Description (тип данных REG_SZ), которое, как следует из его названия, содержит описание устройства (в нашем примере, NVIDIA RIVA тмт). Кроме того, в нем содержится еще одно значение — installedoispiayDrivers, указывающее драйвер для этого устройства. В нашем случае, оно указывает сервис nv4. Информацию об этом сервисе можно найти в реестре под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, в котором должен содержаться вложенный ключ с таким же именем (в нашем примере, nv4). Раскроем ключ HKEY_LOCAL_MACHINE\SYSTEM\Current controiset \services; в нем мы обнаружим вложенный ключ с именем nv4 (рис. 7.6). Он необходим для правильного функционирования устройства.

Рис.7.6. Содержимое ключа HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\nv4

Совет 

Для нахождения ключа следует использовать поисковые возможности программы Regedit.exe. В нашем случае, это самый простой способ.

В составе этого ключа мы в любом случае обнаружим стандартные параметры, задающие режим запуска драйвера: start, Tag, Type, ErrorControl и Group. В зависимости от типа драйвера в составе его ключа могут присутствовать и другие параметры, например, такие, как строковый параметр imagePath, который указывает фактический путь к каталогу, в котором расположен нужный драйвер.

 Примечание

Обратите внимание на то, как задан путь к драйверу. Способ загрузки драйвера, как было указано в предыдущей главе, определяется параметром start, и на момент загрузки драйвера операционная система может еще не назначить дискам буквенные обозначения. Поэтому, если вы укажете путь типа "C:\WINNT\System32\DRIVERS\<eauv^paueep>", то ничего хорошего из этого не получится.

В составе ключа HKEY_LOCAL_MACHINE\SYSTEM\ ControlSetflM\Services\<Driver> может иметься необязательный параметр DisplayName (тип данных REG_SZ). Значение этого параметра представляет собой текстовую строку, которая будет отображаться административной утилитой Устройства (Devices) из Панели управления (Control Panel) для Windows NT 4.0 и консолью ММС — для Windows 2000 и Windows XP. Если параметр DisplayName отсутствует, то в списке будет отображено имя сервиса или драйвера (в нашем случае — nv4).

В дополнение к перечисленным параметрам, ключ видеодрайвера в составе ключа HKEY_LOCAL_MACHINE\SYSTEM\ControlSetnnn\Services содержит несколько вложенных ключей. Наиболее важным из них является ключ, имя которого совпадает с именем параметра Devicen (в рассматриваемом примере это ключ Device0). Пример содержимого этого ключа показан на рис. 7.7.

В зависимости от реализации видеодрайвера этот ключ может содержать множество разнообразных параметров. Одним из стандартных является параметр VgaCompatibie, который для большинства современных драйверов устанавливается равным FALSE (нуль), из чего следует, что данный драйвер базируется на драйвере минипорта Microsoft VGA.

Параметры (все имеют тип данных REG_BINARY) Hardware-information. ChipType, HardwareInformation.Crc32, Hardwarelnformation.DacType и Hardwarelnformation.MemorySize содержат информацию об устройстве, которую отображают административные утилиты, и присутствуют как в реестре Windows NT 4.0/Windows 2000, так и в реестре Windows XP, только в различных местах.

При загрузке графической оболочки Windows, система выполняет чтение параметров видеорежима, содержащихся в составе следующего ключа реестра (рис. 7.8):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl
Set\Hardware Profiles\
 Current\System\CurrentControlSet\Control\VIDEO\
 {C9B35279-10E5-4858-9713-1B9D431C37FD}\0000      

Рис. 7.7. Пример содержимого вложенного ключа Devicen для подключа драйвера устройства, размещенного под ключом HKEY_LOCAL_MACHINE\ SYSTEM\ControlSetrmn\Services

Рис. 7.8. Установки реестра, задающие видеорежим

Выполнив чтение этих параметров, система затем проверяет наличие драйвера дисплея, способного поддерживать указанный режим. Как только подходящий драйвер найден, загрузка продолжается. А что происходит, если ни один из драйверов, перечисленных в составе этого параметра, не поддерживает заданного режима? Ответ очень прост: будет использован стандартный режим VGA (16 цветов).

Итак, мы рассмотрели, как информация вложенных ключей из состава ключа HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP используется для поиска сведений о драйверах конкретных устройств (в нашем примере была рассмотрена видеокарта, но поиск драйверов для любого другого устройства также осуществляется по сходному алгоритму). Подводя итоги обсуждения ключа HKEY_LOCAL_MACHINE\HARDWARE\DEV:CEMAP, скажем, что параметры, содержащиеся в составе его вложенных ключей, описывают или фактическое имя порта, или путь к соответствующему вложенному ключу в составе ключа HKEY_LOCAL_MACHINE\SYSTEM ControlSetrmn\Services, который содержит информацию о драйвере устройства. Именно эта информация может потребоваться системному администратору при устранении неполадок. Стоит еще раз упомянуть о том, что в более удобочитаемом виде эти данные отображаются с помощью утилит администрирования (например, Диспетчера устройств (Device Manager)).

 

Вложенный ключ RESOURCEMAP

Ключ RESOURCEMAP, расположенный под ключом HKEY_LOCAL_MACHINE\HARDWARE, устанавливает соответствие между драйверами устройств и ресурсами, используемыми этими драйверами. Каждый параметр ключа RESOURCEMAP содержит данные, сообщаемые драйвером устройства об используемых этим драйвером портах ввода/вывода, адресах памяти, прерываниях, каналах DMA и т. д. Все данные, содержащиеся в этом ключе, являются непостоянными (volatile). Это означает, что ключ воссоздается всякий раз при запуске Windows NT/2000/XP.

Ключи HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP В Windows NT 4.0 и в  Windows 2000/XP имеют различия, обусловленные тем, что в Windows 2000 введена полнофункциональная поддержка Plug and Play, и появился новый модуль режима ядра (Plug and Play Manager). В реестре Windows NT 4.0 в составе ключа RESOURCEMAP содержатся вложенные ключи <Devicedass>, предназначенные для информации о конкретных классах драйверов устройств. Каждый из этих ключей содержит один или несколько вложенных ключей <DriverName>, которые хранят информацию о конкретных драйверах.

В реестре Windows 2000/XP вид ключа RESOURCEMAP изменился (рис. 7.9). Теперь функции централизованного управления устройствами возложены на модуль Диспетчер PnP (Plug and Play Manager), и все данные о системных ресурсах хранятся в составе ключа HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP\PnP ManagerXPnpManager.

Рис. 7.9. Ключ RESOURCEMAP в Windows XP

 

Ключ HKEY_LOCAL_MACHINE\SAM

Ключ HKEY_LOCAL_MACHINE\SAM содержит информацию о пользовательских и групповых учетных записях в базе данных службы каталога (которая ранее была известна как база данных SAM) на локальном компьютере. Для компьютеров, работающих под управлением Windows NT Server (Windows 2000 Server), этот ключ содержит также информацию о системе безопасности домена.

Данный ключ проецируется на ключ HKEY_LOCAL_MACHiNE\Security\SAM, поэтому изменения, внесенные в один из указанных ключей реестра, автоматически появятся в другом.

 

Ключ HKEY_LOCAL_MACHINE\SECURITY

Ключ HKEY_LOCAL_MACHINE\SECURITY содержит информацию о подсистеме безопасности локального компьютера, включая пользовательские права, политику в отношении паролей, а также членство в локальных группах. Вся эта информация задается с помощью административных утилит: User Manager в Windows NT 4.0 Workstation, User Manager for Domains в Windows NT 4.0 Server и с помощью оснастки ММС Управление пользователями (User Management) в Windows 2000/XP.

Ключ HKEY_LOCAL_MACHINE\SECURITY\SAM проецируется на ключ HKEY_LOCAL_MACHINE\SAM, поэтому изменения, внесенные в один из этих ключей, автоматически появляются в другом.

 

Ключ HKEY_LOCAL_MACHINE\SOFTWARE

Ключ HKEY_LOCAL_MACHINE\SOFTWARE содержит данные о конфигурации программного обеспечения, установленного на локальном компьютере. Расположенные под этим ключом параметры действительны в отношении любого пользователя, зарегистрировавшегося на данном компьютере, и показывают, какое программное обеспечение на нем установлено.

Ключ HKEY_LOCAL_MACHINE\SOFTWARE\Classes хранит данные, с помощью которых система ассоциирует приложения с типами файлов (различаемых по расширению имен файлов). Кроме того, здесь же хранится информация реестра, ассоциированная с объектами СОМ. Данные, содержащиеся в составе ключа classes, отражаются также в ключе HKEY_CLASSES_ROOT. На рис. 7.10 представлен вид ключа HKEY_LOCAL_MACHINE\SOFTWARE.

Рис. 7.10. Вид ключа HKEY_LOCAL_MACHINE\SOFTWARE

Поддерево HKEY_LOCAL_MACHINE\SOFTWARE содержит несколько вложенных ключей. В следующих разделах описаны подключи classes, Program Groups и secure. Кроме того, в данной главе приведена общая информация о различных вложенных ключах <Description>, которые могут появляться в реестре.

 

Вложенный ключ Classes

Параметры этого ключа совпадают с параметрами, расположенными под ключом HKEY_CLASSES_ROOT, максимально подробную информацию о котором можно найти в руководстве "OLE Programmer's Reference", входящем в состав продукта Windows Platform Software Development Kit. Ключ HKEY_LOCAL_MACHINE\SOFTWARE\classes содержит два типа вложенных ключей:

Внимание

Содержащаяся в реестре информация о компонентной модели объектов (СОМ) должна быть создана приложениями, поддерживающими СОМ. Непосредственное редактирование реестра отнюдь не является наиболее простым методом редактирования этой информации. Чтобы выполнить такую настройку в Windows NT 4.0, воспользуйтесь командой Параметры (Options) меню Вид (View) в Windows NT Explorer и перейдите на вкладку Типы файлов (File Types) диалогового окна Параметры (Options). В Windows 2000 или Windows XP для этой цели вызовите утилиту Свойства папки (Folder Options) из Панели управления (Control Panel) или команду Свойства папки (Folder Options) меню Сервис (Tools) в Проводнике (Windows Explorer) и в открывшемся диалоговом окне Свойства папки (Folder Options) перейдите на вкладку Типы файлов (File Types).

Рис. 7.11. Вкладка Типы файлов диалогового окна Свойства папки

Рис. 7.12. Содержимое ключа реестра HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ .avi, соответствующего ассоциации по расширению имени файла (AVI)

Рис. 7.13. Свойства оболочки для класса AVlFile, хранящиеся под ключом HKEY_LOCAL_MACHINE\SOFTWARE\Classes

 

Вложенные ключи Description

Вложенные ключи HKEY_LOCAL_MACHINE\SOFTWARE\Description содержат имена и номера версий программного обеспечения, установленного на локальном компьютере. (Данные о конфигурации этих приложений для каждого пользователя хранятся под ключом HKEY_CURRENT_USER.)

Приложения в процессе установки регистрируют эту информацию в форме:

HKEY_LOCAL_MACHINE\SOFTWARE\
DESCRIPTIONCompanyName\ProduсtName\Version. 

Примечание

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

На рис. 7.14 представлен пример, как регистрационная информация приложения (в нашем случае, это антивирусная программа F-Secure) хранится под ключом HKEY_LOCAL_MACHINE\SOFTWARE.

Рис. 7.14. Пример регистрационной информации приложения, хранящейся под ключом HKEY_LOCAL_MACHINE\SOFTWARE

 

Вложенный ключ Microsoft

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

Особый интерес представляет собой вложенный ключ windows NT \Currentversion, который имеется в составе ключа HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft. Этот ключ содержит информацию о программном обеспечении, которое поддерживает сервисы, встроенные в Windows NT /2000/ХР, а также данные о версии и типе текущей копии Windows NT/2000 /ХР (например, однопроцессорная или многопроцессорная). Разумеется, однопроцессорное ядро Windows NT/2000/XP может работать на многопроцессорном компьютере, но при этом вы не получите никаких преимуществ мультипроцессорной обработки. Чтобы определить, какой тип ядра работает на данном компьютере, просмотрите данные реестра, расположенные В составе ключа HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT \CurrentVersion (рис. 7.15).

 Примечание

Говоря о ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \windows NTXCurrentversion просто невозможно не упомянуть о наиболее ценном усовершенствовании Windows XP, повысившем производительность этой операционной системы. Windows XP обеспечивает встроенный пользовательский режим определения потери динамической памяти (heap-leak detection). Проблема заключается в том, что неверно написанное приложение может вызвать так называемую "утечку" динамически распределяемой памяти. Когда такие ситуации возникали в версиях, предшествующих Windows XP, для идентификации причины такой "утечки" требовались специальные инструментальные средства. Для активизации этой возможности установите следующий ключ:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows      
  NT\CurrentVersiori\Image
   File Execution Options\J_mageName] 
 "ShutdownFlags"="3"

Рис. 7.15. Содержимое ключа реестра HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows NT\CurrentVersion

 

Вложенный ключ Program Groups

Ключ Program Groups, расположенный под ключом HKEY_LOCAL_MACHINE \SOFTWARE, был переопределен еще в Windows NT 4.0. В предыдущих версиях Windows NT он содержал список программных групп, используемых всеми пользователями локального компьютера. В Windows NT 4.0 и Windows 2000/ХР этот ключ служит только для того, чтобы указать, преобразованы ли все прежние программные группы, существовавшие в предыдущих версиях операционной системы, в новую структуру каталога.

В составе ключа Program Groups имеется единственный параметр — ConvertedToLinks — значение которого указывает, преобразованы ли программные группы. Значение этого параметра, равное 1, указывает, что преобразование завершено.

Если устанавливается новая копия операционной системы Windows XP (в отличие от обновления версии операционной системы до Windows XP), то подключ Program Groups не содержит никаких вложенных ключей. Если на компьютере производилось обновление версий, то ключ Program Groups будет содержать вложенные ключи с двоичными данными, определяющими общие программные группы.

 

Вложенный ключ Secure

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

 

Вложенный ключ Windows 3.1 Migration Status

Вложенный ключ windows 3.1 Migration status содержит данные, только если на компьютере производилось обновление версии операционной системы с Windows 3.1 до Windows NT 4.0, а затем и до Windows 2000/XP. Параметры, содержащиеся в этом ключе, указывают, был ли осуществлен успешный перевод всех INI-файлов и Reg.dat в формат реестра Windows NT 4.0/2000/ХР. Если этот ключ удалить, то при следующей перезагрузке Windows снова попытается выполнить преобразование формата этих файлов.

Вложенный ключ windows 3.1 Migration status имеется и в составе ключа HKEY_CURRENT_USER. Он отслеживает статус перевода файлов программных групп (с расширением GRP) в формат Проводника (Windows Explorer).

 

Ключ HKEY_LOCAL_MACHINE\SYSTEM

Все данные, относящиеся к процессу запуска, которые должны считываться (а не вычисляться) в процессе запуска, сохраняются в улье SYSTEM. Полная копия этих данных размещается и в файле System.alt. Данные ключа HKEY_LOCAL_MACHINE\SYSTEM, который представляет собой улей System, организованы в наборы управляющих опций (control sets), каждый из которых содержит полный перечень параметров для устройств и сервисов. Время от времени у системного администратора может возникать необходимость в редактировании элементов ключа currenccontrolset.

Подробная информация о содержимом ключа CurrentControlSet была приведена в главе 6.

 

Вложенные ключи ControlSetnnn, Select и CurrentControlSet

Реестр, и особенно его данные из улья SYSTEM, играют ключевую роль при запуске системы. Чтобы гарантировать запуск системы в любом случае, Windows NT/2000/XP хранит резервную копию, позволяющую отменять любые изменения конфигурации, которые привели к эффекту, отличному от ожидаемого. Данный раздел посвящен рассмотрению этого механизма.

Все данные, необходимые для управления процессом запуска, собраны в подключи реестра, которые называются наборами управляющих опций (control sets). Каждый такой набор опций содержит по четыре вложенных ключа.

Множественные наборы управляющих опций сохраняются в виде вложенных ключей ключа HKEY_LOCAL_MACHINE\SYSTEM под именами от ControlSet001 до controlsetooa. Возможно существование четырех наборов управляющих опций, но обычно их всего два. Фактически, этот механизм аналогичен созданию резервных копий файла Config.sys на компьютерах под управлением MS-DOS (имеется текущий файл, используемый при загрузке, и резервная копия, о которой известно, что с ее использованием процесс загрузки протекал без ошибок). Однако в данном случае вся работа по созданию и поддержке резервных копий выполняется системой автоматически.

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

Рис. 7.16. Содержимое ключа HKEY_LOCAL_MACHINE\SYSTEM\Select

Ключ CurrentcontrolSet представляет собой символическую ссылку на набор управляющих опций, обозначенный параметром current из ключа HKEY_LOCAL_MACHINE\SYSTEM\Select. Это сделано для того, чтобы можно было использовать постоянные пути для ссылки на вложенные ключи используемого на текущий момент набора управляющих опций, даже в том случае, если его имя изменится.

Каждый раз при запуске системы набор управляющих опций, использованный для запуска, сохраняется (под ключом HKEY_LOCAL_MACHINE\SYSTEM\clone, который не отображается редакторами реестра). Если запуск прошел успешно, этот набор управляющих опций считается "хорошим", и система отбрасывает существующий набор LastKnownGood, замещая его содержимым ключа done. Администратор имеет возможность изменить требования к процессу запуска, который должен считаться успешным, однако процесс запуска обычно считается "хорошим", если при запуске сервисов не было серьезных или критических ошибок, и в системе смог зарегистрироваться хотя бы один пользователь.

Конфигурация LastKnownGood используется, когда пользователь в процессе запуска выбирает опцию Загрузка последней удачной конфигурации (Last Known Good Configuration), или если запуск прошел неудачно (в этом случае набор управляющих опций не будет считаться "хорошим"). Если это случается, система создает новый набор управляющих опций, копируя набор LastKnownGood. Значения элементов ключа HKEY_LOCAL_MACHINE \SYSTEM\select изменяются следующим образом:

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

Совет 

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

Самым простым методом модификации данных, хранимых в этих ключах, является использование административных утилит и опций Панели управления (Control Panel).

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

 

Вложенные ключи Control в наборах управляющих опций

В составе каждого из наборов управляющих опций имеется вложенный ключ control. Он содержит стартовые параметры системы, включая информацию о загружаемых подсистемах, переменных среды, размерах и местоположении файлов подкачки и т. д. Вложенные ключи, расположенные в составе ключа control управляющего набора, перечислены в табл. 7.2, а типичная конфигурация вложенного ключа Control показана на рис. 7.17.

Таблица 7.2. Вложенные ключи Control в управляющих наборах

Ключ

Описание

GroupOrderList

Указывает порядок, в котором должны загружаться сервисы для всех групп, имеющих их. Используется в комбинации с Tags

BackupRestore

Данный ключ содержит вложенные ключи, которые задают параметры для программы Ntbackup, включая такие ключи как FilesNotToBackup и KeysNotToRestore (рис. 7.18), содержащие списки файлов, которые не должны быть включены в процесс резервирования или восстановления. Содержимое вложенного ключа BackupRestore может использоваться для настройки встроенной утилиты Microsoft Backup. Обратите также внимание на вложенный ключ AsrKeysNotToRestore, появившийся в Windows XP. Он связан с процессом Автоматического восстановления системы (Automated System Recovery), который в Windows XP включает в себя функциональную возможность Emergency Repair Disk, ранее используемую в Windows NT и Windows 2000. По умолчанию, он содержит в себе единственный элемент Plug&Play (тип данных— P£G _MULTI_SZ, значение — CurrentControlSet \Control\CriticalDeviceDatabase\). Эта информация не подлежит восстановлению во время процесса ASR, и это не удивительно, поскольку она должна создаваться заново в процессе работы программы Setup, когда она осуществляет проверку конфигурации аппаратных средств системы

ComputerName

Имена компьютеров по умолчанию и активных компьютеров хранятся в подключах ComputerNane и Active-ComputerName. Для установки имени компьютера используйте опцию Сеть (Network) из окна Панель управления (Control Panel) в Windows NT 4.0, вкладку Сетевая идентификация (Network Identification) окна Свойства системы (System Properties) в Windows 2000 или же вкладку Имя компьютера (Computer Name) окна Свойства системы (System Properties) в Windows XP

BootVerification Program

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

CrashControl

Данный ключ содержит элементы, управляющие поведением системы в случае ее аварийного отказа, включая опции файла дампа памяти. Обратите внимание на строковое значение MinidimpDir, появившееся в Windows XP. Как свидетельствует имя этой переменной, этот параметр указывает путь к каталогу, в котором хранятся малые дампы памяти, которые используются, как правило, службой Отчет об ошибках (Error Reporting). Эти параметры можно установить в окне Загрузка и восстановление (Startup and Recovery)

ServiceGroupOrder

Определяет порядок загрузки различных групп сервисов в пределах группы с использованием параметров Tags и GroupOrderList

HiveList

Местоположение файлов, которые содержат информацию реестра (содержимое этого ключа показано на рис. 7.19). Данное значение должно поддерживаться системой, поскольку параметры именно этого ключа указывают точное местоположение файлов ульев реестра (и если они не будут там обнаружены, загрузка завершится неудачей). Посмотрите внимательно рис. 7.19, и особое внимание обратите на формат, в котором представлены имена параметров (уже знакомая нам схема \REGISTRY \MACHINE\<hivename>, где <hivename> — имя конкретного улья, например, SOFTWARE, SYSTEM и т. д.), а также их значения (схема \Device \HarddiskVolumeN\%SystemRoot%\ System32\Config\<hive>). Такая схема принята именно потому, что на момент, когда требуется загружать ульи реестра, буквенных обозначений логических дисков в системе еще нет

KeyboardLayout

DLL для языка раскладки клавиатуры, используемого по умолчанию, а также ключ DosKeybCcdes, перечисляющий все остальные доступные раскладки клавиатуры. Чтобы задать язык раскладки клавиатуры, используйте вкладку Язык (Input Locales) окна Клавиатура (Keyboard) из окна Панель управления (Control Panel) в Windows NT 4.0 или вкладку Языки и раскладки (Input Locales) опции Языки и стандарты (Regional Options) в Windows 2000/XP

LSA

Аутентификационный пакет для распорядителя локальной безопасности (Local Security Authority, LSA). Это значение должно поддерживаться только системой, поскольку допущенные при его редактировании ошибки могут привести к тому, что в системе не сможет зарегистрироваться ни один пользователь

NetworkProvider

Может содержать вложенные ключи, которые указывают сетевых провайдеров и порядок, в котором они должны загружаться. Управление параметрами сетевых провайдеров осуществляется через опцию Сеть (Network) из окна Панель управления (Control Panel) в Windows NT 4.0 или через опцию Сеть и удаленный доступ к сети (Network and Dial-up Connections) в Windows 2000/XP

PriorityControl

Разделение приоритетов Win32. Это значение следует настраивать только с помощью утилиты Система (System) из Панели управления (Control Panel)

NLS

Информация о поддержке национальных языков. Настройку поддержки национальных языков и локальных параметров (locales, в число которых входят клавиатурная раскладка, формат даты и времени, валюты и т. д.) в Windows NT 4.0 следует осуществлять через опцию Языки и стандарты (Regional Settings) из окна Панель управления (Control Panel), а в Windows 2000/XP — через опцию Языки и стандарты (Regional Options) из окна Панель управления (Control Panel)

Print

Информация об установленных на текущий момент принтерах и среде подсистемы печати хранится в нескольких вложенных ключах: • Environments — вложенный ключ, который в свою очередь содержит другие ключи, определяющие драйверы и процессоры печати для системных сред;

  •   Monitors — ключ, способный содержать подключи, в которых содержатся данные для конкретных сетевых мониторов печати; 

  •  Printers — ключ, который может содержать подключи, описывающие параметры для каждого установленного принтера;

  •   Providers — ключ, который может содержать подключи, описывающие DLL сетевых сервисов печати.

 Чтобы изменить параметры печати, нажмите кнопку Пуск (Start), выберите команду Настройка (Settings), затем — папку Принтеры (Printers)

ProductOptions

Тип программного продукта (например, Windows NT). Эти значения должны поддерживаться только системой. Особенно интересен тот факт, что и в Windows 2000/XP тип программного продукта, задаваемый параметром ProductType, имеет значение "WinNT"

Setup

Параметры установки аппаратных средств. Эти значения должны поддерживаться только системой. Пользователи могут делать свой выбор, запуская программу Windows NT /2000/XP Setup

TimeZoneInformation

Значения, определяющие сведения о часовых поясах и устанавливаемые через опцию Дата и время (Date/Time) из окна Панели управления (Control Panel)

VirtualDeviceDrivers

Windows

Виртуальные драйверы устройств. Эти значения должны поддерживаться только системой Пути к корневому и системному каталогам Windows NT/2000/XP. Эти значения должны поддерживаться только системой

SessionManager

Глобальные переменные, используемые диспетчером сеансов (Session Manager). Этот ключ, в свою очередь, может содержать следующие вложенные ключи:

  •   DOS Devices — подключ, определяющий такие устройства MS-DOS, как AUX, MAILSLOT, NUL, PIPE, PRN и UNC;

  •   Environment — определяет такие параметры, как переменные ComSpec, Path, Os2LibPath и WinDir. Установка переменных пользовательской среды как в Windows NT 4.0, так и в Windows 2000/XP осуществляется с помощью утилиты Система (System) из Панели управления (Control Panel);

  •   FileRenameOperations — используется в процессе запуска для переименования некоторых файлов с тем, чтобы их можно было заменить. Эти значения (если они есть) должны поддерживаться только системой; 

  •  KnownDLLs — ключ, который определяет каталоги и имена файлов для DLL диспетчера сеансов. Эти значения должны поддерживаться только системой; 

  •  MemoryManagement — ключ, который определяет опции подкачки. Параметры файла подкачки можно задавать с помощью утилиты Система (System) из Панели управления (Control Panel). Именно в этом ключе появляется параметр RegistrySizeLimit, устанавливающий ограничение по размеру реестра в Windows NT/2000, обсуждавшееся в главе 1; 

  •  Subsystems — подключ, который определяет информацию, предназначенную для подсистем Windows NT /2000/ХР. Эти значения должны поддерживаться только системой

WOW

Опции, определяющие поведение 16-разрядных приложений Windows при их запуске под управлением Windows. Эти значения должны поддерживаться только системой

 

Вложенный ключ Еnum для всех наборов управляющих опций

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

Впервые этот ключ появился в реестре Windows NT 4.0, и добавлен он был именно для того, чтобы операционная система Windows NT получила доступ к устройствам и драйверам и могла управлять ими с помощью методов, подобных применявшимся в Windows 95. (Эти методы похожи, но не идентичны, поскольку архитектура Windows NT отличается от архитектуры Windows 95.)

Рис. 7.17. Типичная конфигурация подключа Control для управляющего набора CurrentControlSet

Рис. 7.18. Содержимое вложенного ключа BackupRestore

Рис. 7.19. Содержимое ключа hivelist

Рис. 7.20. Структура ключа  HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Enum

Изменения, внесенные за счет ввода новых ключей, выполняли свою роль в подготовке Windows NT к работе с новым поколением драйверов и устройств, соответствующих стандарту Plug and Play. Как уже отмечалось в главе 5, полнофункциональная поддержка технологии РпР была впервые реализована в Windows 2000, и в дальнейшем усовершенствована в Windows XP.

Внимание

Не пользуйтесь редактором реестра для внесения изменений в этот ключ. Допущенные ошибки могут не позволить Windows NT/2000/XP распознавать аппаратные устройства, необходимые для запуска компьютера, и работать с ними.

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

Сам ключ Enum является просто контейнером. Он не ассоциирован ни с одним параметром. Непосредственно под ключом Enum находятся как минимум два вложенных ключа. Ключ HTREE представляет дерево физических устройств; остальные ключи представляют энумераторы (enumerators) — средства, с помощью которых Windows NT/2000/XP узнает об устройстве.

Ключ HTREE\Root\0 представляет собой зарезервированное пространство в реестре и является вершиной иерархии (корнем) аппаратного дерева (это справедливо и в Windows 2000/XP). Поскольку Windows 2000/XP — это первая из операционных систем семейства Windows NT, которая обеспечивает полноценную поддержку Plug and Play, содержимое ключа Enum усложнилось и расширилось. На рис. 7.20 изображена структура ключа Enum для системы Windows XP.

Остальные вложенные ключи, расположенные непосредственно под ключом Enum, соответствуют энумераторам и содержат вложенные ключи устройств, относящихся к одному и тому же энумератору. В соответствии с требованиями Plug and Play, энумератору поставлена в соответствие шина устройств (например, PCI или ISAPNP). Энумератор по умолчанию, Root, используется для устройств, не удовлетворяющих стандарту Plug and Play, — так называемых унаследованных устройств (legacy devices). На рис. 7.21 показан энумератор Root типичного компьютера, работающего под управлением Windows NT/XP.

Каждый вложенный ключ энумератора содержит другие вложенные ключи, которые представляют типы и модели устройств. Вложенные ключи типов устройств, в свою очередь, содержат вложенные ключи, которые представляют экземпляры устройств этого типа. Имя каждого вложенного ключа типа устройства указывает, является ли устройство наследуемым (legacy device) или же удовлетворяет стандарту Plug and Play.

Рис. 7.21. Энумератор Root типичного компьютера, работающего под управлением Windows XP

Для большинства устройств, не соответствующих стандарту Plug and Play, Windows NT/2000/XP строит идентификатор типа устройства (device-type ID), который имеет форму LEGACY_<DriverName>. Указанный вложенный ключ содержит данные для всех устройств, управляемых этим драйвером.

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

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

 

Вложенный ключ Services для всех наборов управляющих опций

Вложенный ключ Services, который содержится в каждом из наборов управляющих опций, перечисляет все драйверы устройств, драйверы файловых систем и драйверы сервисов Win32, которые могут загружаться загрузчиком операционной системы (Boot Loader), Диспетчером ввода/вывода (I/O Manager) и Диспетчером управления сервисами (Service Control Manager).

Как уже говорилось ранее в этой главе, при обсуждении ключа HKEY_ LOCAL_MACHINE\HARDWARE\DEVICEMAP, его вложенные ключи содержат параметры, которые ссылаются на элементы ключа services в наборе управляющих опций. К примеру, для мыши, подключаемой к последовательному порту, в подключе DEViCEMAP\PointerPort может присутствовать следующий элемент:

\Device\PointerPort0; 
\REGISTRY\Machine\System\ControlSet001\
Services\Sermouse      

В составе ключа services должен иметься соответствующий этой ссылке ключ с именем sermouse, который и определяет параметры для драйвера мыши, подключаемой к последовательному порту. Этот механизм установки соответствий между устройствами и их драйверами (device mapping, отсюда имя ключа — DEVICEMAP) уже был рассмотрен нами на примере видеодрайверов.

 Примечание 

В Windows XP для упрощения процесса инсталляции устройств они устанавливаются и конфигурируются с помощью объединения в класс установки устройств (device setup class). Этот класс определяет компоненты инсталлятора класса и дополнительного инсталлятора класса, участвующих в установке устройства.

Таким образом,, для параллельного порта мыши под ключом HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\PointerClass будет находиться элемент, изображенный на рис. 7.22. Обратите внимание, что имя класса — Pointerdass, а не FointerPort, как это было в Windows NT/2000:

\Device\PointerClass0;
 \REGISTRY\MACHINE\SYSTEM\ControlSet001\
Services\Mouclass      

Так же как в NT/2000, ключ services содержит вложенный ключ, относящийся к этой ссылке, именуемый Mouciass. Этот подключ идентифицирует параметры драйвера мыши (рис. 7.23). В начале главы мы обсуждали этот механизм на примере видеодрайверов.

Microsoft определяет классы установок для большинства устройств. Независимые поставщики оборудования (IHV) и поставщики комплексного оборудования (OEM) могут определить новые классы, однако лишь в том случае, если имеющиеся классы не применимы. Например, поставщику цифровой камеры не нужно определять новый класс установки, т. к. камеры относятся к классу установки Image. Точно так же, например, устройства бесперебойного питания (UPS) относятся к классу Battery.

Рис. 7.22. Пример содержимого ключа реестра HKEY_LOCAL_MACHINE\HARDWARE\ DEVICEMAP\PointerClass в Windows XP

Рис. 7.23. Ключ Services содержит вложенный ключ, относящийся к ссылке, находящейся под ключом DEVICEMAP

Инсталлятор класса задает класс инсталлируемого компонента с помощью значения ClassGuid. Это так называемый глобально универсальный идентификатор (Globally Unique Identifier, GUID), который связан с классом установки конкретного устройства. Значения GUID могут быть сгенерированы с помощью утилиты Uuidgen.exe. Более подробная информация об этой утилите представлена в сопроводительной документации Platform SDK.

GUID класса установки задает ключ реестра . .. \currentcontroiset \Control\Class\ClassGuiD, под которым должен создаваться новый вложенный ключ для любого конкретного устройства, относящегося к стандартному классу установки.

Каждый вложенный в Services ключ может содержать несколько стандартных (но не обязательных) элементов, как показано на рис. 7.24, иллюстрирующем состав ключа Alerter, который задает параметры сервиса Alerter.

Параметры ErrorControl, Group, DependOnGroup, DependOnService, ImagePath, ObjectName, Start, Tag И Type управляют поведением сервиса.

Порядок загрузки сервисов и драйверов указывается в ключе \Control\ServiceGroupOrder набора управляющих опций.

Рис. 7.24. Параметры сервиса Alerter в реестре Windows XP

 

Вложенный ключ Hardware Profiles для всех наборов управляющих опций

Вложенный ключ Hardware Profiles в каждом наборе управляющих опций содержит конфигурационные данные для всех аппаратных профилей в системе Windows NT/2000/XP. Этот ключ впервые появился в реестре Windows NT 4.0.

Как известно, аппаратный профиль (hardware profile) представляет собой набор изменений в стандартной конфигурации устройств и сервисов (включая драйверы и сервисы Win32), загружаемых при старте системы.

Windows NT/2000/XP создает аппаратный профиль по умолчанию (default hardware profile) на основе исходной конфигурации (original configuration), определяемой во время установки системы. Пользователи могут создать множество аппаратных профилей и при запуске Windows NT/2000/XP выбирать аппаратный профиль, используемый на текущий момент.

На рис. 7.25 показана типичная структура, которую может иметь ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles.

Каждый вложенный ключ, входящий в состав ключа Hardware Profiles, содержит конфигурационные данные для одного аппаратного профиля. Если в системе имеется несколько аппаратных профилей, то она идентифицирует профиль как текущий, когда пользователь выбирает его в процессе запуска системы. Ключ HKEY_LOCALJMACHINE\SYSTEM\Current ControlSet\HardwareProfiies\Current представляет собой символическую ссылку на один из ключей с именами 0000, 0001 и т. д.

Дерево HKEY_CURRENT_CONFIG представляет собой псевдоним (alias), указывающий на ключ Hardware Profiles\Current из ключа CurrentControlSet.

Содержимое ключа current появляется в поддереве HKEY_CURRENT_CONFIG.

Совет

Чтобы определить, какой из ключей с именами типа 0000, 0001 и т. д. в составе ключа Hardware Profiles выбран в качестве текущего (current) аппаратного профиля, просмотрите ключ HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\ Control\iDConfigDB. В составе этого ключа имеется параметр CurrentConfig (рис. 7.26), значение которого соответствует номеру ключа, содержащего текущий аппаратный профиль.

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

Рис. 7.25. Типичный состав ключа HKEY_LOCAL MACHINE\ SYSTEM\CurrentControlSet\Hardware Profiles

Рис. 7.26. Содержимое вложенного ключа IDConfigDB

Если аппаратный профиль содержит изменение соответствующего параметра ключей Software и System из HKEY_LOCAL_MACHINE, то оригинальное значение не изменяется. Вместо этого величина, отражающая изменение, сохраняется В аналогичном ключе иерархии Hardware Profiles\<Wu/nber>.

Например, если пользователь создает аппаратный профиль, в котором драйвер Iomega Parallel Port Legacy Filter Driver (рраЗ) не загружается, то ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Enum\Root\LEGACY_PPA3 не изменяется. Напротив, путь реестра, по которому будет сохранено это изменение, будет следующим (рис. 7.27):

HKEY_LOCAL_MACHINE\System\CurrentControl
Set\Hardware   
 Profiles \<Number>\System\CurrentControlSet\
Enum\Root\LEGACY_PPA3 

Рис. 7.27. В профилях аппаратного обеспечения сохраняются лишь изменения в исходной конфигурации

 

Вложенный ключ Setup

Ключ setup, расположенный в иерархии под ключом HKEY_LOCAL _MACHINE\SYSTEM, предназначен для внутреннего использования программой Setup. He изменяйте значимые элементы указанного ключа, поскольку все эти параметры должны поддерживаться системой.

 

Вложенный ключ Disk

Ключ HKEY_LOCAL_MACHINE \SYSTEM\Disk в реестре операционной системы Windows NT 4.0 содержит всю информацию, необходимую для управления томами. Этот ключ создается административной программой Windows NT, которая называется Disk Administrator. В составе этого ключа имеется параметр information с типом данных REG_BINARY. Данный параметр содержит всю конфигурационную информацию, в том числе: сведения о распознанных разделах на жестком диске, назначенные логическим дискам буквенные наименования, а также все сведения об отказоустойчивых дисковых конфигурациях (зеркальные наборы, чередующиеся наборы с контролем четности и без), если они имеются. Подробную информацию об отказоустойчивых дисковых конфигурациях можно найти в документации из Windows NT 4.0 Workstation Resource Kit.

Ключ HKEY_LOCAL_MACHINE\SYSTEM\Disk создается в реестре Windows NT 4.0 при первом запуске утилиты Disk Administrator. Эта программа создает как этот ключ, так и хранящийся в его составе двоичный параметр information, значение которого содержит информацию об имеющихся в системе жестких дисках и их разбиении на разделы. По мере того как пользователь с помощью программы Disk Administrator создает и удаляет разделы, назначает логическим дискам буквенные наименования или конфигурирует отказоустойчивые тома, эта программа сохраняет все конфигурационные изменения в параметре information.

Если пользователь явным образом устанавливает буквенное наименование для устройства CD-ROM (допустим, пользователь непременно желает установить для этого устройства буквенное обозначение "Н:", и никакого другого), то в составе ключа Disk будет существовать еще один параметр с именем \device\cdRomO. Этот параметр должен иметь строковый тип данных, и его значение будет представлять собой присвоенное устройству буквенное обозначение. Помимо программы Disk Administrator информацию ключа Disk читают также драйвер отказоустойчивой дисковой подсистемы (Ftdisk.sys) и подсистема Win32. Драйвер Ftdisk.sys определяет наличие в системе отказоустойчивых дисковых конфигураций (зеркальные и чередующиеся наборы), читая информацию параметра information. Подсистеме Win32 хранящиеся в составе параметра information данные нужны для установки буквенных наименований дисков.

 Примечание 

Параметр information имеет переменную длину, поскольку количество дисков и отказоустойчивых томов, которое может существовать в конкретной системе Windows NT 4.0, тоже является величиной переменной.

В Windows 2000/XP управление дисками претерпело весьма существенные изменения (включая новый тип томов — динамические тома). Параметр HKEY_LOCAL_MACHINE\SYSTEM\Disk\Information присутствует в реестре по-прежнему, но информация об отказоустойчивых томах в его составе больше не хранится.

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

 

HKEY_CLASSES_ROOT

Корневой ключ реестра HKEY_CLASSES_ROOT содержит информацию обо всех ассоциациях (связях) расширений имен файлов, с приложениями, поддерживающими эти типы файлов, и о данных, ассоциированных с объектами СОМ. Как уже говорилось ранее, эти данные совпадают с информацией, которая содержится в ключе classes, расположенной в иерархии ниже ключа HKEY_LOCAL_MACHINE\SOFTWARE.

Единственным предназначением ключа HKEY_CLASSES_ROOT является обеспечение совместимости с регистрационной базой данных Windows 3.1.

 

HKEY_CURRENT_CONFIG

Корневой ключ HKEY_CURRENT_CONFIG впервые появился в Windows NT 4.0. Этот ключ содержит конфигурационные данные для аппаратного профиля, используемого на компьютере на текущий момент. Фактически ключ представляет собой псевдоним (alias), или ссылку, указывающую на ключ HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\ HardwareProflies\Current

Ключ HKEY_CURRENT_CONFIG впервые появился в реестре Windows NT 4.0 для обеспечения совместимости с ключом HKEY_CURRENT_CONFIG, имеющемся в реестре Windows 95. Теперь, поскольку поддерево HKEY_CURRENT_CONFIG существует и в реестре Windows NT/2000/XP, использующие это поддерево приложения, разработанные для Windows 95, могут работать и под управлением Windows NT/2000/XP.

На рис. 7.28 показана структура ключа HKEY_CURRENT_CONFIG. Этот рисунок демонстрирует, что ключ HKEY_CURRENT_CONFIG представляет собой просто еще один способ просмотра содержимого ключа HKEY_LOCAL_MACHINE \SYSTEM\ CurrentControlSet\Hardware Proflies\Current.

Ключ HKEY_CURRENT_CONFIG содержит данные, описывающие текущий аппаратный профиль.

Рис. 7.28. Ключи реестра HKEY_CURRENT_CONFIGи HKEY_LOCAL_MACHINE\System\CurrentControlSet\ HardwareProflies\Current

 

HKEY_CURRENT_USER

Ключ HKEY_CURRENT_USER содержит в своей иерархии базу данных, описывающую пользовательский профиль пользователя, на текущий момент локально зарегистрированного на компьютере. Пользовательский профиль содержит информацию, которая определяет вид и поведение индивидуального рабочего стола пользователя (desktop), сетевые соединения, а также настройку параметров среды. Применение пользовательского профиля гарантирует, что Windows NT/2000/XP будет одинаково выглядеть и одинаково себя вести на любом компьютере, где зарегистрируется пользователь, при условии, что профиль данного пользователя существует на этом компьютере или в том же домене.

Ключ HKEY_CURRENT_USER содержит всю информацию, необходимую для установки на компьютер рабочей среды для конкретного пользователя. Сюда входят такие данные, как настройка приложений, экранные цвета, а также другие персональные предпочтения. Кроме того, пользовательский профиль включает установку прав пользователя в системе. Многие из этих параметров настройки аналогичны тем, которые существовали в файле Win.ini для ранних версий Windows, являвшихся надстройкой над MS-DOS.

Стандартные вложенные ключи HKEY_CORRENT_USER описаны в табл. 7.3.

Таблица 7.3. Стандартные подключи HKEY_CURRENT_USER

Ключ

Описание

AppEvents

Вложенные ключи, определяющие события, связанные с приложениями, включая sound scheme, набор взаимосвязей между действиями пользователя и звуковой реакцией компьютера на эти действия

Environment

Параметры, которые соответствуют настройке переменных среды для пользователя, на текущий момент зарегистрированного в системе. Эти значимые элементы содержат информацию, которая на компьютерах MS-DOS хранилась в файле Autoexec.bat. Установку этих значений следует осуществлять с помощью утилит Панели управления (Control Panel)

Console

Данный подключ, в свою очередь, содержит вложенные ключи, которые определяют опции и размер окна для консоли. Консоль представляет собой интерфейс между приложениями режима пользователя и приложениями, работающими в символьном режиме. Сюда же входят и параметры настройки сеанса работы с командной строкой в Windows NT/2000/XP. Все эти параметры (определяющие цвет окна, размер курсора, размер шрифта и стиль) можно изменить непосредственно в окне, содержащем командную строку. Можно также указать, будут ли эти параметры использоваться в каждом или же только текущем сеансе

ControlPanel

Вложенные ключи соответствующих параметров, настройка которых осуществляется средствами Панели управления (Control Panel). Сюда входит и информация, которая в ранних версиях Windows, работавших совместно с MS-DOS, хранилась в файле Win.ini

Printers

Вложенные ключи, описывающие принтеры, установленные на компьютере и доступные зарегистрировавшемуся на текущий момент пользователю. Чтобы изменить значимые элементы, задающие параметры принтеров, нажмите кнопку Пуск (Start), выберите опцию Настройка (Settings), затем укажите на папку Принтеры (Printers)

Windows 3 . 1 Migrations Status

Этот ключ содержит данные только в том случае, если на компьютере производилось обновление версии операционной системы с Windows З.Аx до Windows NT 4.0. Он содержит вложенные ключи, которые определяют, успешно ли прошел процесс преобразования файлов программных групп (файлы GRP) и мни-циализационных файлов (файлы INI) в формат Windows NT 4.0. Если этот ключ удалить, то при следующей перезагрузке Windows NT/2000/XP опять попытается выполнить это преобразование.

Подключ Windows 3.1 Migration Status для отслеживания статуса преобразования файлов INI и Reg.dat в формат Windows NT 4.0 существует и в составе подключа HKEY_LOCAL MACHINEXSoftware 

UNICODE Program Groups

Этот ключ не использовался уже в Windows NT 4.0. Если на компьютере было произведено обновление версии операционной системы (с одной из более ранних версий Windows NT до Windows NT 4.0), то в этом ключе могут содержаться некоторые старые подключи с данными в двоичном формате. Однако ни в самом этом ключе, ни в его вложенных ключах и параметрах нет данных, необходимых для работы Windows NT 4.0/Windows 2000 или Windows XP

Keyboard Layout

Вложенные ключи, определяющие язык, используемый для текущей раскладки клавиатуры

Software

Вложенные ключи, описывающие конфигурируемые параметры настройки установленного на компьютере программного обеспечения, с которым зарегистрировавшийся на текущий момент пользователь имеет право работать. Эта информация имеет ту же структуру, что и ключ HKEY_LOCAL MACHINE\SOFTWARE.

Сюда входит информация о приложениях, которая ранее хранилась в файле Win.ini или отдельных файлах инициализации, которые активно использовали ранние версии Windows, работавшие совместно с MS-DOS

Как говорилось ранее в разделе, посвященном рассмотрению ключа HKEY_LOCAL_MACHINE,если в поддеревьях HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER существуют аналогичные данные, то данные из HKEY_CURRENT_USER обладают приоритетом. Наиболее значимым примером действия этого соглашения являются переменные среды — при этом переменные среды, определенные для зарегистрированного на текущий момент пользователя, имеют приоритет перед системными переменными среды. Для определения переменных среды используется утилита Система (System) из Панели управления (Control Panel).

Ключ HKEY_CURRENT_USER проецируется на ключ HKEY_USER\<SID_#>, где <SID_#> — это строка, содержащая идентификатор безопасности зарегистрировавшегося в системе пользователя. Процесс регистрации в системе (logon) строит среду пользовательского профиля, базируясь на данных, которые он находит в подключе HKEY_USER\<SID_#>. Если такие данные недоступны, то ключ  HKEY_CURRENT_USER строится на основании данных, которые содержатся в файле %SystemRoot98\Profi\es\Defau\t User\Ntuser.dat (Windows NT 4.0) или в файле %SystemRoot98\Documents and Settings\Default User\Ntuser.dat (Windows 2000/XP).

 Примечание

Чтобы найти имя файла, поддерживающего улей, просмотрите ключ HiveList В составе ключа HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Control. Чтобы обнаружить, какой файл улья поддерживает пользовательский профиль (вне зависимости от того, зарегистрирован пользователь или нет), просмотрите подключ ProfiieList под HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\WindowsNT\CurrentVersion.

 

HKEY_USERS

Ключ HKEY_USERS содержит все загруженные пользовательские профили. Ключ HKEY_USERS содержит как минимум два ключа: .DEFAULT и строку <security ID> для пользователя, зарегистрированного в системе на текущий момент (рис. 7.29). Информация из ключа . DEFAULT используется, если на компьютере на текущий момент не зарегистрирован ни один пользователь.

Рис. 7.29. Структура ключа HKEY_USERS

Ключ DEFAULT содержит те же самые вложенные ключи, что и HKEY_CURRENT_USER. Эти ключи описаны в Табл. 7.3.

 

Резюме

Итак, в этой главе мы рассмотрели основные ключи реестров Windows NT/2000/XP уже более подробно, нежели в главе 1, которая носит больше ознакомительный характер. К сожалению, составить максимально полный справочник по ключам реестра и втиснуть его в рамки одной главы не представляется возможным (иначе эта глава сама по себе превратится в целую книгу). Тем не менее, приведенные здесь сведения представляют собой своего рода "необходимый минимум" знаний, которые должен иметь о структуре реестра каждый грамотный администратор или специалист из группы технической поддержки, специализирующийся на операционных системах Windows NT/2000/XP.

Используются технологии uCoz