Роман Клименко - Недокументированные и малоизвестные возможности Windows XP
■ Default — именно этот параметр определяет, какая копия раздела ControlSet будет загружена при нормальной загрузке системы. Например, если его значение равно 2, то при обычной загрузке системы раздел CurrentControlSet будет ссылкой на содержимое раздела ControlSet002.
■ Current — определяет номер текущей копии раздела ControlSet, на которую ссылается раздел CurrentControlSet.
■ LastKnownGood — указывает номер копии раздела ControlSet, которая будет использоваться для построения содержимого раздела CurrentControlSet при использовании команды меню альтернативной загрузки Загрузка последней удачной конфигурации.
■ Failed — определяет раздел ControlSet, при предыдущей загрузке которого произошел какой-то сбой и загрузка была прервана.
Когда известно, какой из разделов ControlSet для какой загрузки предназначен, возникает еще один вопрос — а значения какого из них правильнее и лучше всего редактировать? Здесь автор может посоветовать лишь исходя из своего опыта — лучше всего редактировать значения параметров из раздела, ссылка на который указана в значении параметра LastKnownGood, а потом пробовать запустить систему с помощью команды альтернативного окна загрузки Загрузка последней удачной конфигурации. Есть большая доля вероятности, что после редактирования параметров ваша операционная система не загрузится, и тогда вы просто сможете загрузить ее в обычном режиме. Причем все дело в том, что в большинстве случаев операционная система не загружается уже после регистрации в ней пользователя — требует ввода нового активационного ключа. Из предыдущих глав книги вы знаете, что, как только в системе регистрируется пользователь, ветвь реестра ControlSet, с помощью которой была выполнена загрузка, считается корректной и ссылка на нее указывается в качестве значения параметра LastKnownGood. Другими словами, если вы использовали ветвь ControlSet, описываемую в параметре Default, то при таком стечении обстоятельств окажется поврежденной как текущая конфигурация ControlSet, так и конфигурация, на которую будет ссылаться значение параметра LastKnownGood.
Вот и все. Теперь вы можете попытаться изменить версию своей операционной системы, но хотелось бы еще раз напомнить, что это является незаконным предприятием и рассказ о нем приведен лишь в ознакомительных целях.
Динамические параметры
Теперь поговорим еще о нескольких параметрах, которые влияют на версию системы Windows. Автор назвал их динамическими, потому что в отличие от параметра ProductSuite, который был рассмотрен выше, эти параметры очень часто проверяются системой — особенно их любят проверять пакеты MSI. К тому же, предположительно, эти параметры работают только в Windows XP Professional — в других операционных системах применяются другие параметры.
Все приведенные ниже параметры находятся в ветви реестра HKEY_LOCAL_MACHINE SYSTEMWPA, хранящей все ключи активации, доступные на компьютере. Но, кроме данных ключей, эта ветвь системного реестра может включать в себя два раздела — TabletPC и MediaCenter. В каждом из них может присутствовать DWORD-параметр Installed, значение которого определяет, является ли текущая операционная система данной разновидностью Windows. Например, если значение этого параметра ветви реестра TabletPC будет равно 1, то после перезагрузки вы сможете увидеть картину, подобную приведенной на рис. 12.1.
Рис. 12.1. Изменение версии Windows
ПРИМЕЧАНИЕ
Естественно, что лишь один из параметров Installed должен быть равен 1. Второй в таком случае либо не должен вообще существовать, либо должен быть равен 0.
Если вам понравился предыдущий рисунок и вы уже попытались изменить соответствующий вашим желаниям параметр, то возможны два варианта. Первый состоит в том, что в вашей системе не существует разделов TabletPC и MediaCenter. В этом случае вы безболезненно сможете изменить понравившийся вам параметр, создав его. Это был простой вариант. В сложном варианте в вашей системе уже существует раздел, в котором вы хотите создать или изменить значение параметра Installed. В этом случае система не разрешит вам этого сделать и единственный выход из такого положения — это воспользоваться второй операционной системой либо комплектом, подобным загрузочному диску ERD Commander, версия редактора которого способна изменять значения любых параметров.
Если у вас установлена вторая операционная система Windows, поддерживающая разделы NTFS, то можно загрузиться из нее, а потом в редакторе реестра просто загрузить куст SYSTEM первой операционной системы, параметр которой вы хотите изменить. Куст SYSTEM находится в ветви реестра %systemroot%system32config вашей первой операционной системы, и, чтобы его загрузить, необходимо выделить в редакторе реестра корневой раздел HKEY_LOCAL_MACHINE, а потом в меню Файл выбрать команду Загрузить куст. После этого перед вами появится диалог, в котором нужно выбрать куст SYSTEM, а в следующем диалоге присвоить ему произвольное имя — именно под таким именем вы сможете его увидеть как одну из ветвей корневого раздела HKEY_LOCAL_MACHINE.
ПРИМЕЧАНИЕ
Местоположение всех запущенных системой в данный момент кустов реестра можно определить по содержащимся в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlhivelist параметрам строкового типа. Имена этих параметров определяют названия кустов, а значения — пути, по которым они расположены.
Если при преобразовании Windows XP Home Edition в Windows XP Professional ваша операционная система получит дополнительные возможности (подключение с помощью удаленного Рабочего стола и т.д.), то при преобразовании Windows XP в Windows XP TabletPC изменится только логотип Windows. Хотя если вы захотите, то можете установить дополнительные программы, предназначенные для TabletPC. Все они находятся в папке «путь к дистрибутиву операционной системы»CMPNENTSTABLETPCI386 вашего установочного диска (конечно, вместо TabletPC ваш установочный диск может поддерживать только Windows XP MediaCenter, файлы которого находятся в каталоге «путь к дистрибутиву операционной системы»cmpnentsmediactri386). Все они находятся в упакованном виде, поэтому для их извлечения понадобится выполнить команду expand «путь к дистрибутиву операционной системы»CMPNENTSTABLETPCI386*.* «путь к папке, в которую нужно распаковать файлы (папка обязательно должна существовать)». После этого необходимо переименовать все расширения в соответствии с реальными расширениями, например, файл с расширением EX_ нужно переименовать в файл с расширением EXE.
ПРИМЕЧАНИЕ
Файлы установки дополнительных программ TabletPC и MediaCenter можно также найти в каталоге %systemroot%INF. Они называются medctroc.INF и tabletpc.INF.
Напоследок хотелось бы напомнить, что изменение версии Windows — это незаконная процедура, которая может лишить вас лицензионных прав на вашу операционную систему и перевести ее в разряд пиратских. К тому же есть большая вероятность невозможности последующей загрузки. В частности, после изменения версии Windows XP на Windows XP MediaCenter с большой долей вероятности система попросит у вас новый активационный ключ или переустановку системы. А при изменении версии Windows XP на Windows Embedded существует большая вероятность того, что система вообще не загрузится, не выводя больше никаких сообщений.
Кстати, еще хотелось бы несколько слов сказать об установочном диске Windows XP. Вообще, установочные диски от Microsoft — это такая интересная вещь, в которой никогда точно не знаешь, что найдешь. Например, на установочном диске Windows XP Professional можно найти пакет установщика Windows для инсталляции программы MSN Messenger 6.1. Если вы часто пользуетесь программой Messenger (по умолчанию устанавливается Messenger версии 4.7), то можете попробовать воспользоваться MSN Messenger 6.1, вдруг понравится. Как и большинство файлов на установочном диске, пакет установки MSN Messenger 6.1 хранится в каталоге i386 в сжатом виде. Пакет установки MSN Messenger 6.1 имеет название MSNMSGS.MS_. Чтобы его распаковать перед установкой, нужно воспользоваться командой в следующем формате:
expand "d:MSNMSGS.MS_" "d:1"
Здесь d: определяет путь к каталогу, в котором расположен пакет установки MSN Messenger 6.1 (не забудьте перед распаковкой переместить пакет MSNMSGS.MS_ в другой каталог, так как, скорее всего, непосредственно с установочного диска вам будет запрещено распаковывать файлы), а d:1 определяет каталог, в который будет распаковываться пакет установки. После распаковки пакета замените его расширение MS_ на MSI, а потом установите данный пакет установщика Windows. В результате у вас появится вот такая красивая программа (рис. 12.2).
Рис. 12.2. Окно программы MSN Messenger 6.1
Эту программу можно открыть с помощью файла msnmsgr.exe, расположенного в каталоге %ProgramFiles%MSN Messenger.
Глава 13
Программа Debug
Следующей возможностью, которую хотелось бы описать, является способ создания программ Win32 с помощью стандартного отладчика командной строки debug.exe.