Статические параметры
Статические параметры
Информация о текущей версии Windows находится в двух статических параметрах реестра и одном динамическом. Для начала поговорим о статических параметрах — они находятся в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions. Это параметры ProductType и ProductSuite.
? ProductType — параметр REG_SZ-типа. Определяет само направление данной версии Windows: то ли она предназначена для рабочих компьютеров, то ли для серверов, то ли для контроллеров домена. В зависимости от назначения Windows параметр может принимать следующие значения:
• WinNT — данная версия системы Windows является рабочей станцией (Windows XP Professional, Windows XP Home Edition);
• LanmanNT — версия Windows является контроллером домена;
• ServerNT — данная версия Windows является сервером.
ПРИМЕЧАНИЕ
Вот что пишет об этом параметре сама Microsoft: «Свойство ProductType представляет дополнительные сведения о компьютере. Возможны следующие значения: 1 — Рабочая станция, 2 — Контроллер домена, 3 — Сервер».
? ProductSuite — параметр REG_MULTI_SZ-типа. Определяет дополнительную градацию Windows и может принимать следующие значения:
• Blade — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• Personal — данная версия Windows принадлежит к линейке Home Editions;
• DataCenter — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• EmbeddedNT — указывает разновидность Windows Embedded;
• Terminal Server — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• Small Business (Restricted) — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• BackOffice — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• CommunicationServer — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• Enterprise — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• Small Business — указывает версию Windows для Windows 2003 Server, поэтому в книге не рассматривается;
• ConcurrentLimit — определяет версию Windows для Windows 2003 Server, поэтому в книге не рассматривается.
ПРИМЕЧАНИЕ
Об этом параметре Microsoft пишет: «Свойство ProductSuite содержит информацию об установленных и лицензированных дополнениях к операционной системе».
Как видите, мир Windows разнообразен, а теперь подумаем, что можно сделать с приведенной здесь информацией. А сделать можно лишь одно — преобразовать одну версию Windows в другую, что в некоторых кругах еще называется форсажем. К сожалению, значение параметра ProductType Windows изменить не разрешит — это грубое нарушение лицензионных прав на вашу версию операционной системы (именно такое сообщение выводит система на «синем экране смерти» после изменения значения параметра ProductType). Но с некоторыми поправками можно изменить значение параметра ProductSuite.
ВНИМАНИЕ
Данные сведения приведены лишь в ознакомительных целях. Любое изменение версии Windows является нарушением прав на данный продукт и может не только вывести вашу систему из строя, но и автоматически сделать вашу лицензионную версию в глазах корпорации Microsoft пиратской, после чего вы не сможете пользоваться такими функциями, как Windows Update.
Для примера преобразуем Windows XP Home Editions в Windows XP Professional. После этого вы получите такие новые функции, как возможность управления операционной системой с помощью mstsc (удаленное управление Рабочим столом), а также возможность установки операционной системы в качестве контроллера домена.
Итак, если посмотреть на описанные выше значения для параметра ProductSuite, то можно заметить, что для Windows XP Home Editions это значение должно быть равно Personal. Это действительно так, но какое значение параметра должно быть для Windows XP Professional, ведь в приведенном описании этого значения нет? Все дело в том, что для Windows XP Professional значение параметра ProductSuite должно отсутствовать.
Если вы уже попробовали изменить значение параметра ProductSuite, то, без сомнения, знаете, что операционная система не даст это сделать. Будет выведено сообщение о нарушении прав лицензионного продукта, после чего предыдущее значение вернется на свое место (оно вернется даже тогда, когда это значение явно не соответствует ни одному из приведенных выше значений). Поэтому простым способом редактирования параметра вы ничего не добьетесь.
Вспомним о ветви реестра HKEY_LOCAL_MACHINESYSTEM все, что было написано в предыдущих частях книги. Итак, ветвь HKEY_LOCAL_MACHINESYSTEM хранит все сведения о драйверах и службах, зарегистрированных в системе. Она также хранит наиболее важную информацию о конфигурации операционной системы — если содержимое ветви HKEY_LOCAL_MACHINESYSTEM будет повреждено, то с большой долей вероятности вы не сможете загрузить операционную систему. Но ведь ошибки могут происходить не только по вине пользователя, но и по вине сторонних программ или самой операционной системы — это уже очень большая группа риска, а по теории вероятности, чем больше факторов риска, тем больше вероятность, что непредвиденное событие все-таки произойдет. Именно поэтому программистами Microsoft для страховки было решено продублировать всю критически важную информацию в нескольких ветвях реестра — так появились ветви реестра HKEY_LOCAL_MACHINESYSTEMControlSet001, HKEY_LOCAL_MACHINESYSTEMControlSet002 и т.д. Каждая из этих ветвей хранит конфигурацию системы в разные моменты времени, а ветвь реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet является лишь ссылкой на один из приведенных разделов реестра Windows.
Теперь можно поставить еще один вопрос — если запрещено изменять параметр в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSet, то будет ли также запрещено изменять значение того же параметра в ветвях реестра HKEY_LOCAL_MACHINESYSTEMControlSetNNN? Оказывается, что значения параметров данных ветвей совершенно не защищены от изменений и Windows позволяет редактировать любые параметры, даже те, которые запрещено редактировать в разделе CurrentControlSet.
Осталось вспомнить еще одно — как же Windows выбирает, какой из разделов ControlSetNNN нужно использовать при следующей загрузке компьютера. Для этого применяются значения параметров DWORD-типа из ветви системного реестра HKEY_LOCAL_MACHINESYSTEMSelect. Эта ветвь может содержать следующие параметры.
? Default — именно этот параметр определяет, какая копия раздела ControlSet будет загружена при нормальной загрузке системы. Например, если его значение равно 2, то при обычной загрузке системы раздел CurrentControlSet будет ссылкой на содержимое раздела ControlSet002.
? Current — определяет номер текущей копии раздела ControlSet, на которую ссылается раздел CurrentControlSet.
? LastKnownGood — указывает номер копии раздела ControlSet, которая будет использоваться для построения содержимого раздела CurrentControlSet при использовании команды меню альтернативной загрузки Загрузка последней удачной конфигурации.
? Failed — определяет раздел ControlSet, при предыдущей загрузке которого произошел какой-то сбой и загрузка была прервана.
Когда известно, какой из разделов ControlSet для какой загрузки предназначен, возникает еще один вопрос — а значения какого из них правильнее и лучше всего редактировать? Здесь автор может посоветовать лишь исходя из своего опыта — лучше всего редактировать значения параметров из раздела, ссылка на который указана в значении параметра LastKnownGood, а потом пробовать запустить систему с помощью команды альтернативного окна загрузки Загрузка последней удачной конфигурации. Есть большая доля вероятности, что после редактирования параметров ваша операционная система не загрузится, и тогда вы просто сможете загрузить ее в обычном режиме. Причем все дело в том, что в большинстве случаев операционная система не загружается уже после регистрации в ней пользователя — требует ввода нового активационного ключа. Из предыдущих глав книги вы знаете, что, как только в системе регистрируется пользователь, ветвь реестра ControlSet, с помощью которой была выполнена загрузка, считается корректной и ссылка на нее указывается в качестве значения параметра LastKnownGood. Другими словами, если вы использовали ветвь ControlSet, описываемую в параметре Default, то при таком стечении обстоятельств окажется поврежденной как текущая конфигурация ControlSet, так и конфигурация, на которую будет ссылаться значение параметра LastKnownGood.
Вот и все. Теперь вы можете попытаться изменить версию своей операционной системы, но хотелось бы еще раз напомнить, что это является незаконным предприятием и рассказ о нем приведен лишь в ознакомительных целях.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
8.1. Статические библиотеки
8.1. Статические библиотеки Статические библиотеки представляют собой простые коллекции объектных файлов, объединенных утилитой ar (архиватор), ar группирует объектные файлы в один архив и добавляет таблицу, в которой указано, какие объектные файлы в архиве какие символы
Статические фильтры
Статические фильтры AlphaЗадает уровень прозрачности элемента страницы.При настройке этого фильтра можно использовать следующие параметры:AlphaImageLoadedОтображает графическое изображение внутри элемента страницы между его фоном и содержимым.При настройке этого фильтра
27.5. Параметры транзитных узлов и параметры получателя IPv6
27.5. Параметры транзитных узлов и параметры получателя IPv6 Параметры для транзитных узлов и параметры получателя IPv6 имеют одинаковый формат, показанный на рис. 27.3. Восьмиразрядное поле следующий заголовок (next header) идентифицирует следующий заголовок, который следует за
R.9.4 Статические члены
R.9.4 Статические члены Для члена класса, представляющего данные или функцию, можно при описании класса задать спецификацию static. Для статического члена, представляющего данные, в программе существует только один экземпляр, которым владеют все объекты этого класса.
R.14.8 Статические члены и переменные
R.14.8 Статические члены и переменные Для каждого шаблонного класса или функции, создаваемых по шаблону типа, образуется своя копия статических переменных или членов. Рассмотрим пример:template‹class T› class X { static T s; //…};X‹int› aa;X‹char*› bb;Здесь в классе X‹int› есть статический член
Статические методы
Статические методы Рассмотрим следующий класс Teenager (подросток), который определяет статический метод Complain(), возвращающий случайную строку, полученную с помощью вызова частной вспомогательной функции GetRandomNumber().class Teenager { private static Random r = new Random(); private static int GetRandomNumber(short
Статические конструкторы
Статические конструкторы Вы уже знаете о том, что конструкторы используются для установки значения данных типа во время его создания, Если указать присваивание значения элементу статических данных в рамках конструктора уровня экземпляра, вы обнаружите, что это
Статические классы
Статические классы Язык C# 2005 расширил область применения ключевого слова static путем введения в рассмотрение статических классов. Когда класс определен, как статический, он не допускает создания экземпляров с помощью ключевого слова new и может содержать только
Статические свойства
Статические свойства В C# также поддерживаются статические свойства. Вспомните из главы 3, что статические члены доступны на уровне класса, а не экземпляра (объекта) этого класса. Например, предположим, что тип Employee определяет элемент статических данных, представляющий
Статические переменные
Статические переменные Название раздела не следует понимать буквально, т. е. считать, что такие переменные не могут изменяться. В действительности слово "статические" здесь означает, что переменные остаются в работе. Они имеют такую же область действия, как
Глава 7 Статические изображения
Глава 7 Статические изображения • Добавление изображений в проект• Клипы изображений• Инструмент Свойства клипа для статического изображенияPinnacle Studio позволяет использовать в проектах статические изображения: фотографии, рисунки, планы, стоп-кадры. Применяя к ним
Статические методы
Статические методы Вы можете объявить некоторые методы класса статическими методами. Для этого вы должны воспользоваться ключевым словом static. Статические методы не принимают параметр this. На использование статических методов накладывается ряд ограничений.•
5.4.4 Статические Члены
5.4.4 Статические Члены Класс – это тип, а не объект данных, и в каждом объекте класса имеется своя собственная копия данных, членов этого класса. Однако некоторые типы наиболее элегантно реализуются, если все объекты этого типа могут совместно использовать (разделять)
5.4.4 Статические Члены
5.4.4 Статические Члены Класс – это тип, а не объект данных, и в каждом объекте класса имеется своя собственная копия данных, членов этого класса. Однако некоторые типы наиболее элегантно реализуются, если все объекты этого типа могут совместно использовать (разделять)
8.5.1 Статические Члены
8.5.1 Статические Члены Член данные класса может быть static; члены функции не могут. Члены не могут быть auto, register или extern. Есть единственная копия статического члена, совместно используемая всеми членами класса в программе. На статический член mem класса cl можно ссылаться cl:mem,