В колонках играет - George Michael - Spinning The WheelНастроение сейчас - хорошенькоеИСТОЧНИК
Глава 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 опознает следующие аппаратные средства:
- тип шины/адаптера;
- клавиатура;
- адаптеры SCSI;
- коммуникационные порты;
- идентификатор компьютера (Machine ID);
- видеоадаптер;
- математический сопроцессор;
- мышь;
- флоппи-дисководы;
- параллельные порты.
Примечание
На этапе запуска не выполняется распознавание плат сетевых адаптеров. Выявление плат сетевых адаптеров производится либо в процессе установки 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 содержит два типа вложенных ключей:
- Вложенные ключи типа <Filename-extension> ассоциируют установленные на компьютере приложения с типами файлов по расширениям имен файлов. Эти ключи содержат информацию, которую пользователи добавляют в реестр, используя вкладку Типы файлов (File Types) окна Свойства папки (Folder Options) в Проводнике (Windows Explorer) — рис. 7.11, а также информацию, добавляемую программами установки приложений Windows. Кроме того, в указанных ключах содержатся сведения о приложениях, которые установлены системой Windows NT/2000/XP. Приведенный на рис. 7.12 пример иллюстрирует ассоциацию файлов AVI с приложением Windows Media Player, а экранный снимок редактора реестра (рис. 7.12) показывает содержимое соответствующего этой ассоциации ключа реестра(HKEY_LOCAL_MACHINE \soFTWARE\ciasses\.avi).
- Ключи типа <class-definition> содержат информацию, ассоциированную с объектами СОМ. Данные этих ключей указывают оболочку (shell) и свойства OLE (COM) для конкретных объектов. Если приложение поддерживает динамический обмен данными (DDE), то вложенный ключ shell может, в свою очередь, содержать вложенные ключи (например, Open и Print), в которых определены команды DDE для открытия и распечатки файлов. Стоит отметить, что такие ключи содержат информацию, подобную той, которая хранилась в базе данных реестра ранних версий Windows (Windows 3.1x). На рис. 7.13 показаны свойства AVI-файла.
Внимание
Содержащаяся в реестре информация о компонентной модели объектов (СОМ) должна быть создана приложениями, поддерживающими СОМ. Непосредственное редактирование реестра отнюдь не является наиболее простым методом редактирования этой информации. Чтобы выполнить такую настройку в 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). Каждый такой набор опций содержит по четыре вложенных ключа.
- Ключ Control содержит конфигурационные данные, используемые для управления системой, включая сетевое имя компьютера и подсистемы, которые должны стартовать.
- Ключ Enum хранит данные об аппаратной конфигурации компьютера, включая данные об устройствах и загружаемых драйверах.
- Ключ Hardware Profiles хранит данные о конфигурации драйверов и устройств, относящихся к конкретному аппаратному профилю. Для каждого набора управляющих опций пользователи могут создать несколько аппаратных профилей. Ключ Hardware Profiles содержит данные только в том случае, если они отличаются от стандартных параметров настройки для драйверов и устройств. Текущий аппаратный профиль, входящий в состав ключа CurrentControlSet, содержится также в ключе HKEY_CURRENT_CONFIG.
- Ключ Services содержит список драйверов, файловых систем, сервисных программ, работающих в режиме пользователя, а также виртуальные аппаратные ключи. Данные этого ключа определяют загружаемые сервисы и задают порядок их загрузки. Кроме того, эти данные определяют, каким образом сервисы могут вызывать друг друга.
Множественные наборы управляющих опций сохраняются в виде вложенных ключей ключа HKEY_LOCAL_MACHINE\SYSTEM под именами от ControlSet001 до controlsetooa. Возможно существование четырех наборов управляющих опций, но обычно их всего два. Фактически, этот механизм аналогичен созданию резервных копий файла Config.sys на компьютерах под управлением MS-DOS (имеется текущий файл, используемый при загрузке, и резервная копия, о которой известно, что с ее использованием процесс загрузки протекал без ошибок). Однако в данном случае вся работа по созданию и поддержке резервных копий выполняется системой автоматически.
Вложенный ключ select, содержимое которого показано на рис. 7.16, содержит четыре параметра, описывающих, каким образом используются наборы управляющих опций.

Рис. 7.16. Содержимое ключа HKEY_LOCAL_MACHINE\SYSTEM\Select
- Параметр Default определяет номер набора управляющих опций (например, 001=ControlSet001), который система должна будет использовать при следующем запуске, вследствие возникшей ошибки или при ручном вызове пользователем управляющего набора LastKnownGood.
- Параметр current указывает номер набора управляющих опций, который фактически был использован для запуска компьютера.
- Параметр LastKnownGood указывает номер набора управляющих опций, представляющего собой полную копию набора управляющих опций, с помощью которого в последний раз был произведен успешный запуск операционной системы.
- Параметр Failed указывает набор опций управления, который был замещен набором LastKnownGood при последнем запуске системы. Данный набор следует внимательно изучить, поскольку это поможет узнать причину, по которой могла потребоваться замена (использование управляющего набора LastKnownGood).
Ключ 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 изменяются следующим образом:
- набор управляющих опций, идентифицированный как Default, становится набором, идентифицируемым как Failed;
- набор управляющих опций, идентифицированный как LastKnownGood, идентифицируется как Default.
Данные пользовательских профилей хранятся под другими ключами, и поэтому на них эти изменения не отражаются.
Совет
Чтобы определить, какой набор управляющих опций использовался при запуске системы, просмотрите значения ключа select.
Самым простым методом модификации данных, хранимых в этих ключах, является использование административных утилит и опций Панели управления (Control Panel).
При внесении конфигурационных изменений с помощью редактора реестра следует редактировать ключ CurrentControlset.
Вложенные ключи Control в наборах управляющих опций
В составе каждого из наборов управляющих опций имеется вложенный ключ control. Он содержит ста