Системный блок
Следующий раздел реестра - HKEY_LOCAL_MACHINE, хранилище информации о вашем компьютере и о независимых от наличия различных пользователей настройках программ. Он - самый крупный и самый важный из всех разделов реестра. При этом он содержит в себе, в одном из своих подразделов и весь раздел HKEY_CLASSES_ROOT, который вынесен в отдельный ключ реестра лишь для удобства редактирования, и все возможные варианты содержимого раздела HKEY_CURRENT_CONFIG, в который помещается информация из HKEY_LOCAL_MACHINE в зависимости от текущей аппаратной конфигурации. Как HKEY_LOCAL_MACHINE в Редакторе реестра отображается файл System.dat, то есть вся информация HKEY_LOCAL_MACHINE физически содержится именно в этом файле.
Таким образом, HKEY_LOCAL_MACHINE - первый из описанных "реальный" раздел реестра, то есть имеющий под собой "физическую природу" - файл System.dat. (HKEY_CLASSES_ROOT и HKEY_ CURRENT_CONFIG - его подразделы, а HKEY_CURRENT_USER - подраздел HKEY_USERS, второго "реального" раздела реестра).
Подраздел Config содержит в себе данные о зарегистрированных в системе аппаратных конфигурациях. Windows позволяет при регулярных изменениях состава устройств в компьютере (например, при работе с ноутбуком, который имеет "док" - присоединяемую часть с CD-ROM, модемом и др.) не устанавливать и удалять каждый раз драйверы для всех этих устройств, а создать фиксированный набор драйверов для каждого из этих составов устройств и менять эти наборы при необходимости. Такой набор называется аппаратной конфигурацией и устанавливается через окно Панель управления - Система - Конфигурации.
В настоящее время в связи с развитием новых технологий USB и др. устройств "горячего подключения" необходимость в различных аппаратных конфигурациях почти отпала, но их поддержка в Windows присутствует[40].
В ключе Config под своими номерами располагаются записи о всех созданных конфигурациях, а при загрузке компьютера или изменении конфигурации соответствующий раздел "отражается" в реестре под видом раздела HKEY_CURRENT_CONFIG.
Если аппаратная конфигурация одна, то и в разделе Config есть только один подраздел, совпадающий с ключом HKEY_CURRENT_CONFIG[41].
В разделе HKEY_LOCAL_MACHINE\Config находятся и некоторые настройки операционной системы. Например, в ключе Сonfig\0001 (номер конфигурации)\display\settings указываются шрифты, используемые Windows по умолчанию, например, в "Блокноте". А в параметре Resolution этого раздела расположено указание на экранное разрешение. (Можете его поменять на любые цифры, хоть на 1000*200, и, если ваша видеокарта позволит, то именно такое разрешение экрана и будет.)
Подраздел DesktopManagement посвящен работе системы с библиотекой deskmgmt.dll из каталога Windows\System, отвечающей за работу операционной системы с процессором, памятью и другими устройствами материнской платы компьютера. Здесь записаны команды, обратившись с которыми из другой программы к этой библиотеке, можно получить соответствующие данные.
Подраздел Enum содержит информацию о распознанных операционной системой устройствах компьютера.
В Windows 9x есть несколько важных программных компонентов, отвечающих за обнаружение устройств и предоставление их для работы другим компонентам системы. Основными среди них являются два - диспетчер конфигурации и энумератор. При загрузке компьютера диспетчер конфигурации опрашивает BIOS и получает от него информацию о всех устройствах, не поддерживающих стандарт Plug&Play, а затем заносит ее в реестр, в этот самый раздел Enum. Затем в дело вступает программа-энумератор, которая считывает из реестра информацию о не-Plug&Play устройствах, а затем опрашивает имеющиеся в компьютере Plug&Play-устройства и составляет список всех имеющихся устройств, назначив каждому единственный идентификатор - так называемый HardwareID.
Затем основная роль вновь переходит к диспетчеру конфигурации, который на основании предоставляемой энумератором информации о наличии устройств и их характеристике (Plug&Play или нет) распределяет между устройствами прерывания, адреса ввода-вывода и другие ресурсы системы.
В этом ему помогают специальные подпрограммы - "арбитры", которые изменяют выделяемые ресурсы так, чтобы не было ресурсов, используемых одновременно двумя устройствами.
Вначале распределяются ресурсы между не-Plug&Play устройствами (информация о которых пришла еще из BIOS), а затем - между Plug&Play, так как последние умеют работать с разными настройками распределения ресурсов без изменения своей аппаратной части, и переназначить им, например, прерывания можно программно. Все внесенные изменения фиксируются в разделе Enum, а также в разделе HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class, содержащем совокупность информации о распознанных устройствах, а также о загруженных для них драйверах, на подразделы с данными о которых в разделе Enum имеются ссылки.
Подраздел HKEY_LOCAL_MACHINE\Hardware, несмотря на многообещающее название, хранит в себе немного информации о имеющихся последовательных портах и установленных на них модемах.
Подразделы Network и Security содержат малозначащие параметры сети Microsoft Network (интересно, в России кто-нибудь хоть когда-нибудь ей пользовался?).
И вот, наконец, - второй подраздел Software, на этот раз уже состоящий из универсальной для всех пользователей данного компьютера информации. Как и ранее, он состоит из разделов с именами компаний-производителей с подразделами внутри них, посвященных отдельным программам. В разделе HKEY_LOCAL_MACHINE\Software\Microsoft расположены настройки самой Windows и ее компонентов, а также всех программ Microsoft. Например, в подразделе Active Setup этого раздела находятся параметры системы установки компонентов Windows через Internet - Active Setup. В его подразделе Installed Components вы увидите все компоненты Internet Explorer, которые вы выбирали (или нет) при установке этого браузера. В подразделе Shared Tools раздела HKEY_LOCAL_MACHINE\Software\Microsoft находится список программ и библиотек пакета MS Office, которыми могут пользоваться другие компоненты этого пакета (скажем, "галерея клипов", которая может быть вызвана из любого приложения MS Office), с указанием пути к каждому из них.
Но, конечно, как и в прошлый раз, самым интересным местом здесь будет подраздел Windows\CurrentVersion, относящийся к операционной системе. В самом CurrentVersion, даже не в его подразделах, есть весьма полезные параметры. Скажем, именно здесь находится информация, отображающаяся в верхней части окна Панель управления - Система - Общие.
Подраздел AppPaths раздела CurrentVersion - это Windows'ский аналог параметра Path из файла autoexec.bat. Можно еще назвать его реестровым собранием ярлыков программ. Здесь можно указать пути к различным программам и имена для их запуска, а затем набирать эти имена в окне "Выполнить" для вызова этих программ, не заботясь об указании пути к ним (рис.14.9).
Подраздел Explorer опять-таки посвящен программе "Проводник", но уже - ее общим настройкам. В подразделах Desktop\NameSpace и Mycomputer\NameSpace находятся идентификаторы тех обьектов, которые должны быть расположены на Рабочем столе и в папке "Мой компьютер", например, "Корзина" или "Удаленный доступ к сети". Вы можете удалить отсюда ненужные обьекты или, наоборот, добавить сюда желаемые, создав вначале для них идентификаторы в разделе HKEY_CLASSES_ROOT, как описано выше.
Рис.14.9. Укажите в этом разделе имя для запуска программы и путь
к ней и не заботьтесь о задании правильного пути в окне "Выполнить"
В параметрах подразделов LastCheck и LastOptimize (подраздела Explorer подраздела CurrentVersion) содержится информация о последнем моменте дефрагментации или проверки жестких дисков компьютера.
В подразделе Tips вы найдете все советы, отображающиеся при первом запуске компьютера с Windows (рис.14.10). Их можно просмотреть и с помощью программы welcome.exe из каталога Windows.
Рис.14.10. Склад полезных советов для окна "Добро пожаловать в Windows". (Когда вы, кстати, видели это окно в последний раз?)
Подраздел Fonts хранит в себе информацию об именах шрифтов и их соответствии названиям файлов.
Вы, кстати, никогда не удивлялись, почему в "Проводнике" и в Norton Commander содержимое папки Windows\Fonts выглядит по-разному (рис.14.11)? Да потому, что Norton Commander берет информацию об именах файлов в этой папке из каталога, а "Проводник" - вот из этого раздела реестра. Почему копирование шрифтов в папку Fonts длится значительно дольше, чем в любую другую папку? Да потому, что еще в реестре их все надо прописать, да еще перед этим из каждого извлечь полное имя! Еще бы не дольше было...
Рис.14.11. Сравните окна слева внизу и справа внизу.
В чем причина разницы? В окне сверху.
В подразделе MS-DOS Emulation, в его подразделе AppCompat находится список программ MS-DOS, которые могут работать только в "Режиме MS-DOS", а не в окне "Сеанса MS-DOS" и требуют выгрузки Windows для своей работы (рис.14.12).
Рис.14.12. Имя этой программы было прописано здесь в реестре - и вот что вышло из попытки ее запуска. (А вы небось думали, что Windows как-то программы анализирует и думает, "пойдет" она под ней или нет? Как же...)
Из следующего подраздела реестра, MS-DOS Options, берутся параметры для диалоговых окон при настройке ярлыков программ MS-DOS для особой конфигурации "Режима MS-DOS". Именно с помощью этих параметров можно удобно настроить файлы autoexec.bat и config.sys для каждого ярлыка программы, работающей в "Режиме MS-DOS". Только настраивать их, разумеется, лучше все же через Свойства ярлыка.
Подразделы Run, RunServices, RunOnce, RunOnceEx, RunServicesOnce содержат в себе указания на программы, которые должны запуститься автоматически при запуске Windows. Выше уже рассказывалось про аналогичный раздел в ключе HKEY_CURRENT_USER, программы в котором запускались при начале сеанса работы данного пользователя, ну, а программы, указанные здесь, запустятся в любом случае. Почаще навещайте этот раздел - здесь могут прятаться трояны! (Три последних подраздела из перечисленных запустят указанную в них программу лишь один раз.) Именно здесь, в подразделе Run находится команда вызова программы резервирования реестра scanregw.exe.
В
разделе HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\Current Version\Policies, в его подразделе Ratings есть параметр Key. Сотрите его, если вы случайно в процессе исследования Microsoft Internet Explorer задали пароль на ограничение доступа к отдельным ресурсам Интернета (Свойства обозревателя - Содержание - Ограничение доступа) и благополучно забыли его.
Если вы хотите изменить путь к установочным файлам Windows (например, если вы поставили Windows с компакт-диска, а затем поместили ее дистрибутив на винчестер и желаете, чтобы при любой установке драйверов или своих компонентов она обращалась именно туда), то введите в параметр SourcePath раздела HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\Current Version\Setup нужный путь.
В подразделе Time Zones приведен список настроек всех возможных часовых зон из меню настройки местного времени. (Параметры же установленной временной зоны размещаются ниже, в разделе HKEY_LOCAL_MACHINE\ System\CurrentControlSet\control\TimeZoneInformation.)
Подраздел Uninstall (подраздела Explorer подраздела CurrentVersion) содержит в себе пути и параметры деинсталляторов для всех программ, которые допускают такую возможность. Именно отсюда берется информация для представления в окне Панель управления - Установка и удаление программ. Параметр DisplayName определяет название программы, которое в этом окне будет отображаться.
Если вы хотите напугать какого-нибудь любителя "Color Lines" или "Сапера", кто включит ваш компьютер без вашего ведома, вставьте в раздел HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\ CurrentVersion\Winlogon параметры LegalNoticeCaption и LegalNoticeText с каким-нибудь текстом. Тогда при загрузке Windows будет отображаться окошко с этими данными (рис.14.13).
Ну, а теперь закончим описание раздела HKEY_LOCAL_ MACHINE\Software\Microsoft\Windows\ CurrentVersion и перейдем к самому последнему подразделу ключа HKEY_LOCAL_MACHINE - System, к его единственному подразделу CurrentControlSet.
В этом подразделе содержатся два ключа: Сontrol и Services. Параметры этой части реестра не менее важны, чем, скажем, подраздела Enum, так как содержат в себе многие настройки системы. Но большая их часть - чисто служебная и изменять их через редактор реестра не стоит. Впрочем, можно слегка пробежаться по наиболее интересным разделам.
В подразделе FileSystem записаны некоторые параметры работы операционной системы с носителями информации с другой файловой системой вроде CD-ROM.
Подраздел Keyboard layouts содержит список возможных раскладок клавиатуры и имена соответствующих им файлов с раскладками (установлены могут быть отнюдь не все эти файлы).
Рис.14.13. Любителя без спросу поиграть на вашем компьютере в "Сапера"
подобная надпись может здорово напугать.
Подраздел Nls посвящен кодовым страницам, которые поддерживаются системой. В его подразделе Codepage каждому номеру кодовой страницы (например, "1251" - кодировка Windows-1251) поставлен в соответствие файл, содержащий информацию об этой кодовой странице, а в подразделе Locale - имена этих кодовых страниц. Иногда проблемы с отображением русских символов в некоторых программах вроде AdobePhotoshop можно устранить, поставив значение параметра "1252" в разделе HKEY_LOCAL_MACHINE\System\ CurrentControlSet\control\Nls\Codepage в "CP_1251.nls".
Подраздел PerfStats посвящен состоянию системы и несколько подробнее описан ниже.
Подраздел SessionManager посвящен старым приложениям MS-DOS. В подразделе CheckBadApps содержится список программ MS-DOS, которые могут быть несовместимы с Windows. Наверное, вы пробовали из-под Windows запустить Norton Commander для MS-DOS и получали сообщение, что программа некорректно работает в этой операционной системе? Так вот для каждой программы MS-DOS, при попытке запуска которой выдается такое сообщение, есть свой подраздел с именем ее запускающего файла в подразделе CheckBadApps, а в нем - параметр с именем запускающего файла (рис.14.14), в котором указано число.
Это число - указатель на номер справочного раздела в файле Apps.hlp из папки Windows\Help, в котором рассказано, почему данная программа некорректно работает в Windows.
Рис.14.14. Для любой программы MS-DOS можно создать здесь раздел, и тогда при попытке ее запуска будет выводиться подобное предупреждение.
Подраздел CheckBadApps400 имеет то же самое предназначение, что и предыдущий, но в нем размещены имена программ для Windows 3.х, а не для MS-DOS.
Подразделы подраздела SessionManager с буквами "DLL" в имени хранят в себе имена системных библиотек, с которыми работает Windows, в зависимости от имени раздела - 16-ти или 32-х - разрядных. А в подразделе WarnVerDLLs приводятся имена библиотек, совместимость которых с Windows вызывает у нее "подозрения".
Подраздел TimeZoneInformation (подраздела System\Current ControlSet\control) хранит в себе информацию о текущей временной зоне.
В следующем большом подразделе HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services содержится в основном служебная системная информация. Некоторые из его подразделов очень важны для операционной системы.
Подраздел Arbitrators содержит информацию программ-арбитров, о которых шла речь выше.
Подраздел Class перекликается по своему содержанию с описанным выше разделом HKEY_LOCAL_MACHINE\Enum, частично беря свои данные из него, и содержит в себе информацию об установленных и распознанных устройствах. Именно из него берется информация для отображения в окне Панель управления - Система - Устройства (рис.14.15).
Таким образом, этот подраздел фактически является "реестром в реестре" - базой данных по устройствам, "железу", установленным в компьютере. В него включена информация, поставляемая энумератором и диспетчером конфигурации и записанная в разделе HKEY_LOCAL_MACHINE\Enum, а также данные о загруженных драйверах устройств и их параметрах (к примеру, строка инициализации модема помещается в ключе Class\Modem\0000\Init). Вспомните, кстати, что в Enum'е были ссылки на драйвера устройств вида Driver = DiskDrive\0001.
Так вот это были ссылки именно на подразделы этого раздела Class, в чем нетрудно убедиться.
Рис.14.15. Основа основ компьютера - раздел устройств. Все окно "Устройства" - здесь. И даже разбиение списка устройств на ветки в этом окне такое же,
как и ключей в реестре
То есть - раздел HKEY_LOCAL_MACHINE\System\Current ControlSet\ Services\Class является основным держателем информации об устройствах компьютера, назначенных им ресурсах и загруженных для них драйверах. Именно он поставляет информацию в окно Панель управления - Система - Устройства. Раздел HKEY_LOCAL_ MACHINE\Enum тесно связан с этим разделом и хранит "технические" данные для каждого устройства. В разделе HKEY_DYN_DATA располагаются данные о текущем состоянии каждого из устройств.
В разделах HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\ Class и HKEY_LOCAL_MACHINE\Enum размещается информация лишь об имеющихся устройствах, об их характеристиках и назначенных ресурсах. Информация же о конкретной работе устройств, о том, исправны они или нет, находится в разделе реестра HKEY_DYN_DATA, который постоянно находится в оперативной памяти.
Остальная часть раздела HKEY_LOCAL_MACHINE\System\CurrentControl Set\Services содержит данные некоторых программ и особого интереса для пользователя не представляет.
В системном реестре Windows 2000/XP по сравнению с реестром Windows 9х похожую структуру имеет лишь подраздел HKEY_LOCAL_MACHINE\Software, однако настройки операционной системы, в частности, таблица соответствия имен шрифтов и их файлов, находятся не только в его подразделе Microsoft\Windows, но и в подразделе Microsoft\WindowsNT. Остальные подразделы имеют другую структуру и другое предназначение. Кроме того, к перечисленным выше местам реестра, указанные в которых программы запускаются автоматически при старте Windows, в Windows 2000/XP добавились еще параметры Userinit раздела HKEY_LOCAL_MACHINE\ Software\Microsoft\Windows NT\CurrentVersion\Winlogon и Load раздела HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows.