Глава 5

Реестр и аппаратные средства

Многие задачи по настройке и конфигурированию операционных систем семейства Windows (Windows 9x/ME, Windows NT/2000, Windows XP) выполняются при помощи утилит Панели управления (Control Panel), тесно связанных с реестром. При просмотре конфигурационной информации чтение данных выполняется из реестра. В свою очередь, изменения конфигурации, вносимые утилитами Панели управления (Control Panel), записываются в реестр. Конфигурационные изменения не войдут в силу до тех пор, пока не будут прочитаны из реестра на этапе загрузки компьютера. Именно поэтому Windows NT 4.0 и все более ранние версии Windows требуют перезагрузки для того, чтобы внесенные изменения вошли в силу.

Примечание

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

Ограниченная поддержка аппаратных средств и частые перезагрузки были наиболее серьезными недостатками Windows NT. В Windows 2000 и Windows XP они были устранены благодаря реализации поддержки технологии Plug and Play. В этой главе мы подробно рассмотрим концепцию Plug and Play (PnP) и раскроем следующие вопросы:

 

Реестр и подсистема Plug and Play

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

Поскольку вы начинаете широкомасштабную поддержку Windows XP, вам необходимо хорошо понимать роль реестра в Windows. С появлением Windows 95 была введена новая концепция, позволяющая существенно упростить использование ПК — Plug and Play (или РпР). Что же представляет собой Plug and Play — стандарт, спецификацию или концепцию? Фактически Plug and Play — это сочетание общей философии разработки и набора спецификаций, описывающих архитектуру аппаратных средств. Строго говоря, поддержка РпР подразумевает комбинацию взаимодействующих между собой системной BIOS, аппаратных устройств, системных ресурсов, драйверов устройств и самой операционной системы.

 Примечание

В 64-разрядных компьютерах системная BIOS известна как Extensible Firmware Interface (EFI).

Все компоненты Plug and Play предназначены для достижения единой цели — обеспечить совместную автоматическую работу компьютера, периферийных устройств и их драйверов, а также операционной системы при минимальном вмешательстве со стороны пользователя. Работая с системой, полностью соответствующей требованиям Plug and Play, пользователи могут не беспокоиться о том, возникнет ли при установке нового устройства аппаратный конфликт с другим устройством. Основой, на которой строится такая система конфигурирования, является реестр.

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

Распознаватель аппаратных средств (Ntdetect.com) собирает информацию о характеристиках аппаратных средств системы, и ядро операционной системы при запуске сохраняет эту информацию в составе ключа HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION. По мере запуска драйверов устройств они информируют о себе систему с тем, чтобы она могла ассоциировать устройства с соответствующими им драйверами. Windows NT/2000/XP помешает эту информацию в состав ключа HKLM\HARDWARE\DEVICEMAP. Наконец, информация о ресурсах, необходимых для работы устройств (адреса портов, диапазоны DMA, номера прерываний), сохраняется в составе ключа HKLM\HARDWARE\RESOURCEMAP.

В Windows 2000 появились две новые подсистемы модуля Executive — это Диспетчер Plug and Play (Plug and Play Manager) и Диспетчер управления электропитанием (Power Manager). Диспетчер Plug and Play (Plug and Play Manager) интегрирован с Диспетчером ввода/вывода (I/O Manager) и не принимает участия в инициализации, но инициализация драйверов происходит таким образом, что некоторые устройства распознаются драйверами Plug and Play, в то время как Windows NT 4.0, вследствие ограниченности поддержки Plug and Play, выполняет распознавание только с помощью Ntdetect.com.

Несмотря на то, что Windows XP основывается на ядре Windows NT/2000, поддержка Plug and Play, реализованная в этой операционной системе, была значительно усилена, усовершенствована и оптимизирована. Общая идея этого проекта заключалась в том, чтобы объединить преимущества двух ветвей семейства Windows — Windows NT/2000 и Windows Millennium Edition (Windows ME). Этот подход оказался успешным, т. к. он позволил достичь большей стабильности операционной системы и большей совместимости аппаратных средств.

В настоящее время, Windows XP обеспечивает поддержку Plug and Play для сотен устройств, ранее не поддерживаемых в Windows 2000, например, сканеров, камер, аудиоустройств, накопителей (CD и DVD) и мониторов, а также более эффективную поддержку шин USB, IEEE 1394, PCI и др. Улучшение подсистемы Plug and Play положительно повлияло на общую стабильность и производительность. Это особенно относится к процессу установки устройств, который стал более простым и автоматизированным, как было продемонстрировано в примере, представленном в главе 1. Кроме того, была усовершенствована поддержка управления электропитанием, что принесет безусловную пользу как пользователям настольных, так и портативных компьютеров.

 

Краткая история Plug and Play

Plug and Play представляет собой технологию, которая поддерживает автоматическое конфигурирование ПК и всех установленных на нем устройств. Целью ее разработки является обеспечение для пользователя возможности подключить новое устройство (например, звуковой адаптер или факс-модем) и сразу же начать работу без необходимости вручную конфигурировать это устройство. Реализация технологии Plug and Play осуществляется на уровне аппаратных средств, операционной системы, драйверов устройств и BIOS.

Спецификация Plug and Play представляет собой результат работы промышленного комитета, состоящего из фирм-поставщиков, производящих как аппаратные средства, так и программное обеспечение. Комитет был образован в марте 1993 года, и изначально в его состав вошли представители фирм Microsoft, Intel и Compaq. К концу 1995 года на рынке аппаратных средств появились сотни устройств, удовлетворяющих этому стандарту и производимых самыми различными фирмами.

Первой операционной системой, обеспечивавшей поддержку Plug and Play, была Microsoft Windows 95. Однако с момента появления Windows 95 стандарты РnР претерпели существенную эволюцию, которая в основном является результатом инициативы комитета разработчиков OnNow. Промышленная инициатива OnNow пытается определить универсальный подход к управлению операционной системой и конфигурацией устройств. Основным ее результатом является спецификация Advanced Configuration and Power Interface (ACPI) Version 1.0, которая определяет новый интерфейс системной платы и BIOS. Этот интерфейс расширяет возможности Plug and Play, позволяя операционной системе обеспечить управление питанием, и предоставляет другие новые конфигурационные возможности.

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

На настоящий момент технологии Plug and Play определены для устройств USB, IEEE 1394, PCI, ISA, SCSI, ATA, LPT, COM и PC Card/Card Bus. Каждое устройство Plug and Play должно обладать следующими возможностями:

 

Поддержка Plug and Play в Windows NT 4.0

Среди пользователей бытует мнение о том, что Windows NT 4.0 не обеспечивает поддержки Plug and Play. На самом деле Windows NT 4.0 поддерживает Plug and Play, но эта поддержка является весьма ограниченной, и ее уровень существенно ниже, нежели обеспечиваемый в Windows 95/98/ME и Windows 2000/XP. За исключением устройств PCI, все параметры настройки аппаратных средств должны совпадать с установленными в реестре.

Если это условие не соблюдается, драйвер устройства не будет загружен, а устройство не станет работать.

Все устройства, использующие шину PCI, Windows NT 4.0 конфигурирует автоматически на этапе запуска системы. После того как устройство будет автоматически сконфигурировано, параметры его настройки (IRQ, адрес порта ввода/вывода и другие параметры), как правило, не меняются. Windows NT 4.0 будет изменять параметры устройств в реестре, только если эти параметры не соответствуют количеству или типу устройств на шине PCI.

Windows NT 4.0 читает данные BIOS и информацию, полученную от устройств, только один раз — на этапе распознавания аппаратных средств при запуске системы. После запуска все управление устройствами осуществляется только при помощи драйверов этих устройств и реестра. После завершения загрузки Windows NT 4.0 никогда не обращается к BIOS.

 

Реализация Plug and Play в Windows 2000 и Windows XP

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

По сравнению с предыдущими версиями Windows NT, операционные системы Windows 2000/XP предоставляют повышенную надежность и снижают возможное время простоя. Эти усовершенствования стали возможными за счет расширения диапазона поддерживаемых аппаратных средств и обеспечения полноценной поддержки Plug and Play. Реализация всех этих новых функций является частью инициативы нулевого администрирования Microsoft (Microsoft Zero Administration), основное назначение которой заключается в минимизации времени простоя Windows. Например, часто устройства Plug and Play могут быть установлены или отключены во время работы Windows, и система распознает и корректно обрабатывает эту ситуацию. К таким устройствам можно отнести, например, все USB-устройства, некоторые устройства IEEE 1394 и т. д.

Снижение частоты необходимых перезагрузок является одним из наиболее значимых преимуществ, поскольку упрощает как установку операционной системы, так и процедуры установки нового оборудования. Фактически, в большинстве случаев новые устройства могут быть подключены динамически — то есть без перезагрузки компьютера. Существенно расширен и перечень поддерживаемых аппаратных средств — теперь в HCL (Hardware Compatibility List) включены сотни новых принтеров, модемов, устройств с автоподачей для CD-ROM, стримеров, накопителей на магнитооптических дисках и других устройств. Все это было достигнуто за счет включения в Windows 2000/XP полноценной поддержки Plug and Play, а также средств управления электропитанием и энергосбережением (Power Management).

Удаление устройства с компьютера, без предварительного уведомления об этом операционной системы, называют внезапным удалением (surprise removal/ Как правило, Windows XP корректно справляется с этой ситуацией, поскольку драйверы устройств, разработанные в соответствии со спецификацией Windows XP Logo Requirements, должны уведомлять операционную систему об удалении устройства. Удаление такого устройства не влияет на систему. Однако для ряда устройств, таких как некоторые запоминающие устройства, модемы и сетевые адаптеры, производить внезапное удаление не рекомендуется. При внезапном удалении таких устройств операционная система отображает экран с сообщением о некорректном отключении устройства (Unsafe Removal of Device) и рекомендует пользователю следующий раз при отключении устройства использовать безопасное отключение (Safe Removal). Пользователь может блокировать генерацию этого сообщения для тех устройств, для которых внезапное отключение неприемлемо. Безопасное отключение (Safe Removal) предназначено для уведомления операционной системы о том, что устройство будет отключено, и его можно найти в зоне уведомления, если такое устройство установлено в системе.

 Примечание 

Однако, некоторые устройства необходимо устанавливать или удалять лишь при выключенной системе. Это относится к тем устройствам, для установки которых требуется вскрывать системный блок. К тому же, если при удалении устройства выполняется передача данных, или же операционная система пытается обратиться к некоторым типам устройств, которые отсоединены, то может произойти потеря данных, их разрушение или даже сбой системы. Например, внезапное отсоединение устройств PC Card, CardBus, устройств параллельного или СОМ-порта, в то время когда драйвер устройства выполняет попытки записи по соответствующим портам, может привести к зависанию системы или к ошибке типа STOP, что потребует произвести перезагрузку системы.

В отличие от Windows 95, реализация Plug and Play в Windows 2000 и в Windows XP не базируется только на расширенном управлении питанием (Advanced Power Management, АРМ) BIOS или Plug and Play BIOS. Эти две реализации BIOS были разработаны для Windows 95 и, как ранние попытки обеспечения поддержки Plug and Play и управления электропитанием, они поддерживаются в Windows 98 и Windows ME для обеспечения обратной совместимости. Фактическая поддержка Plug and Play и управления электропитанием обеспечиваются в Windows 2000 и Windows XP интерфейсом ACPI.

Некоторые из BIOS, удовлетворяющие требованиям ACPI, вызывают появление в Windows 2000/XP ошибок STOP ("синий экран"). Чтобы свести к минимуму количество таких ситуаций, когда проблемы BIOS вызывают появление ошибок STOP, в состав текстовой фазы программы установки Windows 2000/XP была добавлена функциональная возможность, позволяющая активизировать или блокировать поддержку режима ACPI, основываясь на содержимом следующих двух списков.

Если системная BIOS не присутствует ни в одном из этих списков, объявляет себя как соответствующую спецификации ACPI и имеет дату не ранее 01/01/1999, то режим ACPI будет активизирован. Операционная система использует системную дату, которая находится по адресу FOOO:FFF5.

 Примечание 

Если программа Setup, проверяя систему перед установкой Windows 2000/XP, обнаруживает, что системная BIOS находится в списке несовместимых ACPI BIOS, то режим ACPI блокируется. Чтобы в полном объеме гарантировать функциональные возможности Plug and Play и управления электропитанием при использовании Windows 2000/XP, BIOS необходимо обновить. Подробную информацию об этом можно получить по адресу: http://www.Hardware-Update.com.

Для систем на базе процессоров х86 существует существенное различие в способах, с помощью которых системная BIOS взаимодействует с устройствами Plug and Play. В некоторых системах в программе BIOS Setup предусмотрена опция Enable Plug and Play operating system, которая оказывает влияние на это взаимодействие. Строго говоря, эта опция указывает, какой компонент осуществляет управление аппаратным обеспечением, — системная BIOS или же операционная система. Если ваша система не поддерживает ACPI или не обеспечивает ACPI-совместимости, то рекомендуется установить значение этой опции — No/Disabled. Microsoft также рекомендует отключить эту опцию, если вы используете двойную загрузку Windows XP и Windows 9х/МЕ, особенно в тех случаях, если тест на соответствие Plug and Play в системе Windows 98/ME проходит, а в Windows XP — нет. Если у вас полностью совместимая ACPI-система (то есть имеется ACPI BIOS и установлен ACPI HAL), то управление ресурсами осуществляет Windows XP, a не BIOS. Установки BIOS игнорируются, включая опцию Enable Plug and Play operating system. Ввиду этого, эти установки BIOS могут быть оставлены без изменений. Однако, Microsoft утверждает, что значение No/Disabled данной опции остается предпочтительным.

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

 

Поддержка Plug and Play в Windows 2000/XP

Чтобы включить поддержку Plug and Play в Windows 2000, потребовалось объединить реализацию Plug and Play с базовым исходным кодом Windows NT. Результаты этой интеграции перечислены ниже.

Windows 2000 поддерживает наследуемые драйверы Windows NT (legacy Windows NT drivers), но эти драйверы не обладают функциональными возможностями Plug and Play и управления электропитанием. Фирмы-производители, которым требуется обеспечить полную поддержку функциональных возможностей Plug and Play для выпускаемых устройств и функционирование одних и тех же драйверов как в Windows 2000/XP, так и в Windows 98/ME, должны разрабатывать новые драйверы, интегрирующие последние достижения технологии Plug and Play и управления электропитанием.

Далее в этой главе будет приведено краткое описание архитектуры Plug and Play в Windows 2000/XP. Подробное описание всех модификаций, которые требуется внести в драйверы для обеспечения полномасштабной поддержки системы Plug and Play в Windows 2000/XP, можно найти в документации к Windows DDK.

 

Спецификация ACPI

Система Plug and Play требует комбинированного взаимодействия BIOS персонального компьютера, его аппаратных компонентов, драйверов устройств и операционной системы. Основные требования к реализации системной платы и поддержке BIOS, необходимые для обеспечения поддержки Plug and Play в Windows 2000/XP, определены в спецификации ACPI. Как Windows 2000/XP, так и Windows 98/ME используют эту спецификацию как основу для построения своей архитектуры Plug and Play в соответствии с требованиями инициативы OnNow.

Спецификация ACPI определяет новый интерфейс между операционной системой и компонентами компьютера, обеспечивающими поддержку Plug and Play и управления подачей электропитания. Обратите внимание, что методы, определенные в ACPI, не зависят от конкретной операционной системы или типа процессора. ACPI определяет интерфейс на уровне регистров для базовых функций Plug and Play и управления электропитанием, а также описательный интерфейс для дополнительных аппаратных возможностей. Это предоставляет разработчикам возможность реализовать целый диапазон функций Plug and Play и управления электропитанием для самых разных аппаратных платформ при использовании одного и того же драйвера операционной системы. Помимо этого, ACPI предоставляет общий механизм системных событий для Plug and Play и управления электропитанием.

Кроме спецификации ACPI существуют и другие промышленные стандарты, например, Universal Serial Bus, Version 1.0, PCI Local Bus Specification, Revision 2.1 и PCMCIA.

 

Системная поддержка для Plug and Play

Windows 2000/XP обеспечивает следующую поддержку Plug and Play.

 

Уровни поддержки устройств и драйверов

Уровень поддержки Plug and Play, обеспечиваемый устройством, зависит как от аппаратной поддержки Plug and Play, так и от поддержки, обеспечиваемой драйвером этого устройства. На схематическом уровне эта концепция иллюстрируется табл. 5.1.

Таблица 5.1. Уровни поддержки Plug and Play для устройств и драйверов

Тип устройства

Драйвер Plug and Play

Драйвер без поддержки Plug and Play

Устройство Plug and Play

Полная поддержка Plug and Play

Поддержка Plug and Play отсутствует

Устройство без поддержки Plug and Play

Возможна частичная поддержка Plug and Play

Поддержка Plug and Play отсутствует

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

Как видите, поддержка Plug and Play зависит как от устройства, так и от его драйвера. Например, если вы вручную установили устройство, которое не поддерживает Plug and Play, то, тем не менее, можете расширить его функциональные возможности и обеспечить частичную поддержку Plug and Play, установив соответствующий драйвер Plug and Play.

Примечание 

Windows XP обеспечивает поддержку Plug and Play для мониторов только в том случае, если и сам монитор, и его адаптер, а также драйвер монитора предполагают поддержку Plug and Play; иначе же монитор будет распознан как установленный по умолчанию.

 

Архитектура Plug and Play в Windows 2000/XP

Ядро Windows 2000/XP обеспечивает поддержку Plug and Play в процессе загрузки и предоставляет интерфейсы для взаимодействия с такими компонентами операционной системы, как уровень аппаратных абстракций (HAL), исполняющая подсистема (модуль Executive) и драйверы устройств. Функции режима пользователя взаимодействуют с функциями режима ядра, обеспечивая возможности динамической конфигурации и интерфейса с остальными компонентами, которые должны поддерживать Plug and Play, например, с программой Setup и приложениями Панели управления (Control Panel). На рис. 5.1 представлена схема архитектуры РпР в Windows 2000/XP.

Следующие разделы содержат подробное описание модулей Plug and Play.

Рис. 5.1. Архитектура Plug and Play в Windows 2000 и Windows XP

 

Диспетчер Plug and Play в режиме ядра

Диспетчер Plug and Play (Plug and Play Manager), работающий в режиме ядра, поддерживает функции центрального управления, управляет шинными драйверами при выполнении энумерации и драйверами устройств при добавлении устройства, его запуске и т. д.

Например, Диспетчер Plug and Play (Plug and Play Manager) направляет запросы, чтобы определить, может ли устройство быть удалено, и дать драйверу устройства возможность синхронизировать незавершенные запросы ввода/вывода с поступающим запросом. Диспетчер Plug and Play (Plug and Play Manager) режима ядра взаимодействует с Диспетчером Plug and Play (Plug and Play Manager) режима пользователя при определении устройств, доступных для выполнения таких операций.

 

Диспетчер электропитания и Диспетчер политики

Диспетчер электропитания (Power Manager) — это компонент режима ядра, который работает совместно с Диспетчером политики (Policy Manager) и обрабатывает вызовы интерфейса прикладного программирования (API) управления электропитанием, координирует события и генерирует запросы на прерывания, связанные с управлением электропитанием (IRP). Например, если различные устройства отправляют запросы на отключение, Диспетчер электропитания (Power Manager) собирает эти запросы, определяет, какие запросы должны быть сериализованы и генерирует соответствующие 1RP.

Диспетчер политики (Policy Manager) наблюдает за активностью системы и собирает интегрированную информацию о статусе пользователей, приложений и драйверов устройств. При определенных обстоятельствах или по запросу Диспетчер политики (Policy Manager) генерирует IRP для изменения статуса драйверов устройств.

 

Диспетчер ввода/вывода

Диспетчер ввода/вывода (I/O Manager) обеспечивает базовые сервисы для драйверов устройств и представляет собой компонент режима ядра, который выполняет трансляцию команд чтения и записи режима пользователя в соответствующие IRP. Помимо этого, диспетчер ввода/вывода управляет всеми остальными основными IRP операционной системы. Эти интерфейсы работают точно так же, как они работали в операционной системе Windows NT 4.0.

 Примечание 

В Windows XP усовершенствована подсистема ввода/вывода путем добавления новых API, с которыми могут работать драйверы, разработанные в соответствии с требованиями Windows XP Logo. Драйверы устройств, специально созданные для Windows XP, могут использовать все преимущества новых функциональных возможностей Windows XP, включая Восстановление системы (System Restore) и Теневое копирование тома (Volume Snapshot Service), о которых упоминалось в главе 2. В то же время, Windows XP обеспечивает полную функциональную совместимость с драйверами, разработанными для Windows 2000. Обратите внимание, несмотря на то, что все существующие драйверы Windows 2000 смогут работать с Windows XP, настоятельно рекомендуется использовать драйверы, разработанные специально для Windows XP. Для получения обновленного драйвера необходимо связаться с поставщиком или посетить сайт Windows Update.

 

Интерфейс WOM для Plug and Play

Диспетчер ввода/вывода предоставляет уровневую архитектуру драйверов. В данном разделе обсуждаются типы драйверов WDM (Win32 Driver Model), уровни драйверов и объекты устройств. Более подробную информацию по данному вопросу можно найти в документации, входящей в состав самой последней версии Windows DDK.

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

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

 

Уровни драйверов

Для каждого конкретного устройства существует два или более уровней драйвера: шинный драйвер для шины ввода/вывода (или Диспетчер Plug and Play (Plug and Play Manager) — для устройств, помещенных при энумерации на корневой уровень) и функциональный драйвер устройства. Помимо этого, могут присутствовать один или несколько драйверов фильтра для шины или устройства.

 

Объекты устройств

Драйвер создает объект устройства (device object) для каждого устройства, которым он управляет. Объект устройства представляет устройство для драйвера. С точки зрения Plug and Play существуют три типа объектов устройств: физические (Physical Device Objects. PDO), функциональные (Functional Device Objects, FDO) и объекты фильтров устройств. PDO представляют устройство на шине; каждый интерфейс прикладного программирования Plug and Play API, который ссылается на устройство, ссылается на PDO. Объекты FDO представляют функциональные возможности устройства функциональному драйверу. Объекты фильтров представляют драйвер фильтра. Все эти объекты устройств имеют тип DEVICE_OBJECT, но используются по-разному и могут иметь дополнительные расширения.

 

Дополнительные интерфейсы Windows 2000/XP

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

Обратите внимание, что если драйвер предназначен для работы как в Windows 98/ME, так и в Windows 2000/XP, то он должен использовать только интерфейсы WDM.

 

Шинные драйверы WDM

Управление электропитанием и Plug and Play выполняется шинными драйверами WDM, которые представляют собой стандартные драйверы WDM. Обратите внимание, что в этом контексте любое устройство, от которого происходит энумерация других устройств, будет называться шиной. Шинный драйвер отвечает на пакеты запроса ввода/вывода (IRP) и может быть расширен за счет использования драйверов фильтров.

Шинный драйвер выполняет следующие задачи:

В ходе энумерации драйвер шины идентифицирует устройства на своей шине и создает для них объекты устройств. Метод, с помощью которого драйвер идентифицирует устройства на шине, зависит от конкретной шины.

Шинный драйвер выполняет некоторые операции от имени устройств, находящихся на его шине, но обычно не обрабатывает операции чтения и записи на эти устройства. (Эти операции обрабатываются функциональным драйвером.) Драйвер шины выступает в роли функционального драйвера для своего контроллера, адаптера, моста или другого устройства.

Microsoft поставляет шинные драйверы для большинства распространенных шин, в том числе: PCI, Plug and Play ISA, SCSI и USB. Прочие шинные драйверы могут поставляться независимыми поставщиками — IHV или OEM. Шинный драйвер может быть реализован как пара драйвер/минидрайвер. В таких парах один из драйверов связан с другим, который представляет собой DLL.

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

 

Драйверы устройств WDM

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

 

Компоненты Plug and Play режима пользователя

API Windows 2000/XP режима пользователя для управления устройствами и их конфигурирования в среде Plug and Play представляют собой 32-разрядные расширенные версии, базирующиеся на API Диспетчера конфигурации (Configuration Manager, CfgMgr) для Windows 95. В Windows 95 Диспетчер конфигурации (Configuration Manager) является виртуальным драйвером устройства (VxD), который предоставляет эти процедуры в качестве сервисов компонентам, работающим в кольцах 0 и 3.

В Windows 2000/XP эти процедуры расширяют функциональные возможности компонента Диспетчер Plug and Play (PnP Manager) режима пользователя и представляют собой API режима пользователя. Драйверы устанавливаются программой Setup. 32-разрядные API инсталляции устройств, используемые программой Setup, представляют собой надмножество процедур инсталляции Windows 95.

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

 

Дерево устройств Plug and Play

Диспетчер Plug and Play (Plug and Play Manager) поддерживает дерево устройств, которое может просматриваться из Диспетчера устройств (Device Manager) (рис. 5.2), отслеживающего все активные устройства в системе, и информацию об этих устройствах.

Рис. 5.2. Дерево устройств, отображаемых Диспетчером устройств

Диспетчер Plug and Play (Plug and Play Manager) обновляет дерево устройств при добавлении или удалении устройств или по мере переназначения ресурсов. Дерево устройств является иерархическим, при этом каждое устройство на шине представляется как дочернее устройство шинного адаптера или контроллера. Вся статическая информация об аппаратных средствах хранится в реестре, а компоненты системы Plug and Play и драйверы осуществляют, поддерживают и получают доступ к новым и существующим поддеревьям реестра. В процессе энумерации данные для каждого устройства сохраняются в реестре под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum. Система Plug and Play принимает решения о том, какие драйверы устройств должны загружаться на базе информации, полученной в результате процесса энумерации. Таким образом, между деревом Enum и списком сервисов, расположенным под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, существует исключительно важная связь.

Следует отметить, что Диспетчер устройств (Device Manager) позволяет просматривать устройства как по типу, так и по подключению. Для просмотра устройств по подключению, необходимо выбрать команду Устройства по подключению (Devices by connection) в меню Вид (View). Дерево устройств, в котором отображены устройства, сгруппированные по их подключению, представлены на рис. 5.3.

Рис. 5.3. Просмотр устройств, упорядоченных по подключению

Каждая ветвь в дереве определяет узел устройства со следующими требованиями для конфигурации системы:

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

Программа Диспетчер устройств (Device Manager) по умолчанию не показывает все устройства. Те из них, которые являются так называемыми унаследованными (legacy devices), а также те, которые больше не подключены к компьютеру и некоторые другие, — являются скрытыми. Чтобы их увидеть, выберите команду Показать скрытые устройства (Show hidden devices) меню Вид (View).

Рис. 5.4. Окно Переменные среды

 Примечание 

Можно настроить Диспетчер устройств (Device Manager) так, чтобы он всегда показывал список отсутствующих устройств. В окне Панели управления (Control Panel) необходимо выполнить двойной щелчок на значке Система (System), выбрать вкладку Дополнительно (Advanced) и затем в диалоговом окне Переменные среды (Environment Variables) (рис. 5.4) создать переменную DEVMGR_SHOW_NONPRESENT_DEVICES и присвоить ей Значение 1.

Программа Диспетчер устройств (Device Manager) может использоваться для активизации и отключения устройств, устранения неполадок, обновления драйверов, выполнения откатов драйвера (driver rollback) и изменения ресурсов, назначенных устройствам. Для того чтобы проверить изменения в аппаратной конфигурации, обновить драйвер устройства, отключить или деинсталлировать устройство, выявить неполадки в нем, или просмотреть его свойства, необходимо щелкнуть правой кнопкой мыши по соответствующему узлу устройства в дереве устройств, а затем выбрать соответствующую команду в контекстном меню.

 

Распознавание устройств Plug and Play

Реализация Plug and Play в Windows XP обеспечивает следующие преимущества:

После того как Windows XP распознает устройство Plug and Play, его драйвер может быть динамически сконфигурирован и загружен. При этом от пользователя потребуется ввести минимум данных или же вовсе ничего не потребуется. Некоторые шины, например, PCI и USB, позволяют полностью использовать возможности Plug and Play и определяются автоматически. После распознавания устройства, Диспетчер Plug and Play (PnP Manager) и драйвер шины осуществят энумерацию устройства, загрузят необходимый драйвер (или несколько драйверов). При подключении нового устройства (о нем нет информации в реестре), Windows XP выполнит инсталляцию и запуск драйверов для данного устройства.

Как уже отмечалось, программа Windows XP Setup проверяет конфигурацию аппаратных средств компьютера и записывает информацию об определенном устройстве в реестр. Программа Setup получает информацию о конфигурации устройств системы из соответствующих этим устройствам INF-файлов, а о тех устройствах, которые поддерживают Plug and Play, — непосредственно от самих устройств.

В системе РnР, устройство переходит через различные состояния РnР: конфигурируется, запускается, возможно, останавливается для балансировки ресурса и может быть удалено. Переходы между различными состояниями PnP-устройства показаны на рис. 5.5.

Когда устанавливается новое устройство, Windows XP использует уникальный идентификатор устройства для поиска INF-файлов, соответствующих этому устройству. На основании этой информации Windows XP создает элемент для данного устройства в ветви HKEY_LOCAL_MACHINE реестра и копирует необходимые драйверы. Затем в соответствии с командами INF-файла создаются остальные ключи и параметры реестра, необходимые драйверу.

Рис. 5.5. Состояния устройства РnР

Windows XP использует схему ранжирования драйверов (driver ranking scheme) для того, чтобы определить, какой драйвер необходимо загрузить, если устройству соответствует множество драйверов. Драйверы ранжируются на основе сведений о том, снабжены ли они цифровой подписью (digital signature), и степени соответствия так называемому аппаратному идентификатору устройства. Если для какого-либо устройства имеется несколько драйверов, то для инсталляции будет выбран драйвер с наивысшим рангом. Ниже представлен список схем ранжирования (от высшего к низшему рангу):

Когда вам необходимо инсталлировать новое устройство, следует сначала предоставить операционной системе Windows XP автоматически распознать и сконфигурировать его. В зависимости от конкретного устройства, нужно сделать следующее:

Устройства будут инсталлированы после того, как пользователь зарегистрируется на компьютере.

Для того чтобы использовать функциональные возможности технологии Plug and Play, по возможности, выбирайте новые устройства, которые ее поддерживают, даже если на компьютере нет ACPI BIOS.

Один пример, иллюстрирующий инсталляцию новых устройств, а также все необходимые для этого компоненты, представлены на рис. 5.6. Последовательность действий должна быть следующей:

1. Пользователь устанавливает устройство в компьютер. Обратите внимание, что если само устройство и его шина поддерживают так называемое уведомление о внезапном подключении (hot-plug notification), то допускается подключение устройства без выключения компьютера.

2. Диспетчер Plug and Play (PnP Manager) и драйвер шины осуществляют энумерацию. Сначала драйвер шины посредством самой шины принимает уведомление о новом устройстве, а затем уведомляет Диспетчер Plug and Play (PnP Manager), работающий в режиме ядра, об изменении в аппаратной конфигурации (в нашем случае, было добавлено новое устройство). Затем Диспетчер Plug and Play (PnP Manager), работающий в режиме ядра, запрашивает у драйвера шины список устройств, физически к ней подключенных, и сравнивает новый список с предыдущей копией. Так, Диспетчер Plug and Play (PnP Manager) определяет, какое устройство было добавлено, и запрашивает у драйвера шины информацию о новом устройстве (идентификатор устройства, идентификатор поставщика, идентификаторы совместимости и характеристики устройства).

3. Диспетчер Plug and Play (PnP Manager), работающий в режиме ядра, уведомляет Диспетчер Plug and Play (PnP Manager), который работает в режиме пользователя, о наличии устройства, которое необходимо установить.

4. PnP Manager, работающий в режиме пользователя, создает новый процесс с помощью rundll32.exe и запускает newdev.dll для инсталляции устройства.

Рис. 5.6. Схема установки устройства

5. Динамическая библиотека нового устройства — New Device DLL вызывает функции инсталляции устройства (Setup API), а также функции диспетчера конфигурации — PnP Configuration Manager (CfgMgr API) — для выполнения задач инсталляции. Динамически загружаемая библиотека нового устройства (New Device DLL) создает список драйверов, которые подходят для данного устройства, и при необходимости запускает Мастер обнаружения новых устройств (Found New Device wizard). Выбор драйверов обсуждался ранее в этой главе.

6. В инсталляции устройства могут использоваться инсталлятор класса (class installer) и дополнительные инсталляторы (при необходимости).

7. Программа Setup передает управление режиму ядра (Kernel Mode) для загрузки драйверов и запуска устройства. Когда будет выбран наиболее подходящий драйвер для устройства, программа Setup копирует соответствующие файлы драйвера, регистрирует дополнительный инсталлятор, предназначенный исключительно для данного устройства и т. д. Затем управление передается режиму ядра для загрузки драйверов, и запускается устройство. Соответствующая функция диспетчера конфигурации (CfgMgr) отправляет запрос программе Диспетчер Plug and Play (PnP Manager), работающей в режиме ядра.

8. Диспетчер Plug and Play (PnP Manager) загружает соответствующий драйвер функции, а также необязательный драйвер фильтра для устройства.

9. Инсталляторы могут поддерживать страницы программы-мастера, служащие для установок устройства.

 

Откат драйвера (Driver Rollback)

Это новое свойство, представленное в Windows XP, обеспечивает усовершенствование, направленное на повышение надежности. Такие проблемы, как аппаратные конфликты, повторяющиеся ошибки STOP или же проявления нестабильности возникают после установки несовместимого драйвера. Очевидно, что в подобной ситуации крайне необходимо иметь возможность замены драйвера, вызывающего проблемы, без повторной инсталляции операционной системы. В Windows XP такая возможность предусмотрена.

Комплекс средств Откат драйвера (Driver Rollback) является ценным средством устранения неполадок, когда необходимо восстановить поврежденную систему, а также может использоваться при отладке бета-версий драйверов. Например, если после обновления версии драйвера ваша система выводит сообщение STOP, следует попытаться загрузить систему в безопасном режиме и заменить неподходящий драйвер.

Для использования Отката драйвера (Driver RollBack) выполните следующее:

1. В окне Панели управления (Control Panel) запустите утилиту Система (System), перейдите на вкладку Оборудование (Hardware) и нажмите кнопку Диспетчер устройств (Device Manager).

2. Укажите правой кнопкой мыши устройство, обновленный драйвер которого вызвал проблему, и в контекстном меню выберите команду Свойства (Properties).

3. В открывшемся диалоговом окне перейдите на вкладку Драйвер (Driver) (рис. 5.7). Нажмите кнопку Откатить (Roll Back Driver).

4. Диспетчер устройств (Device Manager) предложит подтвердить откат драйвера. Нажмите кнопку Да (Yes). Если предыдущей версии драйвера нет, то программа отката (Driver Rollback) отобразит сообщение об ошибке (рис. 5.8) и затем предложит воспользоваться другими средствами для устранения неполадки.

Рис. 5.7. На вкладке Драйвер свойств устройства теперь предусмотрена возможность выполнения отката драйвера (замены текущего драйвера на предыдущий)

Рис. 5.8. Откат невозможен, поскольку для данного устройства нет резервной копии драйвера

 

Аппаратные профили

Windows 2000/XP обеспечивает возможность создания множества аппаратных конфигураций, которые хранятся в реестре. Так, можно создать профили для док-станций (docking stations), что актуально для пользователей портативных компьютеров, а также профили для съемных устройств. Аппаратный профиль (hardware profile) представляет собой набор инструкций, с помощью которого можно указать операционной системе Windows 2000/XP, драйверы каких устройств должны загружаться при запуске компьютера.

Чтобы создать новый аппаратный профиль в Windows 2000/XP, следует вызвать утилиту Система (System) из Панели управления (Control Panel), перейти на вкладку Оборудование (Hardware) (рис. 5.9) и нажать кнопку Профили оборудования (Hardware Profiles). Раскроется одноименное окно, показанное на рис. 5.10.

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

Чтобы изменить свойства аппаратного профиля, выделите его имя в списке Имеющиеся профили оборудования (Available hardware profiles) и нажмите кнопку Свойства (Properties). Можно также создать новый аппаратный профиль на базе одного из уже существующих. Для этого достаточно выделить нужный аппаратный профиль в списке и нажать кнопку Копировать (Сору), а затем указать имя нового аппаратного профиля в открывшемся диалоговом окне Копирование профиля (Copy Profile). Чтобы удалить аппаратный профиль, выделите его имя в списке и нажмите кнопку Удалить (Delete).

Рис. 5.9. Вкладка Оборудование диалогового окна Свойства системы

Рис. 5.10. Профили аппаратного обеспечения

Наконец, в диалоговом окне Профили оборудования (Hardware Profiles) можно задать поведение системы по отношению к выбору аппаратных профилей. В нижней части этого окна находится группа Выбор профиля оборудования (Hardware profiles selection) с двумя переключателями. Если выбрать переключатель дождаться явного указания от пользователя (Wait until I select a hardware profile), то при загрузке Windows 2000/XP выведет на экран список аппаратных профилей и будет ожидать, когда пользователь выберет один из них. Если установлен второй переключатель, то при запуске Windows 2000/XP автоматически выберет первый профиль из списка, если пользователь не укажет нужный ему аппаратный профиль по истечении срока (в секундах), указанного в расположенном рядом поле.

Аппаратные профили хранятся в реестре в составе ключа HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles.

 

Управление электропитанием и энергосбережение

Управление электропитанием (power management) представляет собой интегрированный подход к энергосбережению в масштабах всей системы (на уровне аппаратных средств и программного обеспечения). Это означает, что компьютерная система, в полном объеме поддерживающая функции управления питанием и энергосбережения, должна включать как аппаратную, так и программную поддержку для перечисленных ниже функций.

Требования к аппаратным средствам и программному обеспечению по управлению электропитанием и энергосбережению определены промышленной инициативой OnNow. В Windows XP такая поддержка обеспечивается, и как компьютер в целом, так и каждое отдельное устройство потребляют только минимально необходимые уровни электроэнергии (разумеется, при условии, что аппаратные средства удовлетворяют требованиям инициативы OnNow). Здесь следует отметить, что управление электропитанием и РnР тесно связаны между собой и взаимозависимы.

Этот подход к управлению электропитанием и энергосбережению обеспечивает следующие преимущества: 

При помощи утилиты Электропитание (Power Options) из Панели управления (Control Panel) можно снизить потребление энергии любым количеством устройств компьютера. Следует сразу же отметить, — чтобы использовать эти функции, необходимо иметь компьютер, удовлетворяющий спецификации ACPI.

 

Вкладка Схемы управления питанием

Чтобы запустить утилиту Электропитание (Power Options):

1. В меню Пуск (Start) последовательно выберите команды Настройка | Панель управления (Settings | Control Panel). В раскрывшемся окне Панель управления (Control Panel) выполните двойной щелчок мышью, указав на значок Электропитание (Power Management).

2. На экране появится окно Свойства: Электропитание (Power Options Properties), открытое на вкладке Схемы управления питанием (Power Schemes) — рис. 5.11.

Рис. 5.11. Вкладка Схемы управления питанием окна Свойства: Электропитание

3. Чтобы перевести компьютер в режим энергосбережения, следует выбрать одну из схем подачи питания (power scheme), которые представляют собой наборы параметров, управляющих использованием питания устройствами компьютера. Можно выбрать одну из стандартных схем или создать собственную. Например, в зависимости от установленных на компьютере аппаратных средств, можно проделать следующее:

В табл. 5.2 перечислены ключи реестра, которые пользователь может модифицировать, перейдя на вкладку Схемы управления питанием (Power Schemes) диалогового окна Свойства: Электропитание (Power Options Properties).

Таблица 5.2. Ключи реестра, модифицируемые путем выбора опций вкладки Схемы управления питанием окна Свойства: Электропитание

Элементы управления вкладки Схемы управления питанием

Ключ реестра

Список Схемы управления питанием (Power schemes)

HKCU\Control Panel\PowerCfg\ Current Power Policy

Пороговые значения интервала неактивности (для системы, монитора, жесткого диска — поля Ждущий режим через (System hibernates), Отключение дисплея (Turn off monitor), Отключение дисков (Turn off hard disks))

Двоичные параметры, находящиеся в составе ключа HKCU\ControlPanel \PowerCfg\ Power Policies \n\Policies

 

Удаление схемы подачи электропитания (кнопка Удалить (Delete))

Удаляет ключ HKCU\ControlPanel\ PowerCfgX Power Policies \n\Policies

Уменьшает счетчик индекса HKLM\SOFTWARE\ Microsoft \Windows /Cur rentVersion\ Controls Folder\PowerCfg\LastID

Добавление новой схемы подачи электропитания (кнопка Сохранить как (Save As))

Добавляет новый ключ в состав ключаHKCU\ Control Panel \PowerCfg\PowerPolicies\ n\Policies

Увеличивает счетчик индекса HKLM\ SOFTWARE \ Microsoft \Windows\CurrentVersion\ Controls Folder\PowerCfg\LastID

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

 

Вкладка Спящий режим

Кроме того, утилита Power Options из Панели управления (Control Panel) позволяет перевести компьютер в "спящий" режим (hibernation — буквально, "бездействие; зимняя спячка"). Как уже отмечалось, функция спящего режима отключает монитор и жесткий диск, сохраняет все содержимое памяти на жестком диске и выключает компьютер. После выхода из спящего режима содержимое рабочего стола восстанавливается в точности в том состоянии, в котором оно находилось при переводе компьютера в спящий режим. Вывод компьютера из спящего режима занимает несколько больше времени, нежели вывод из режима энергосбережения. Если вы планируете отсутствовать в течение достаточно длительного времени, то рекомендуется перевести компьютер в спящий режим. Чтобы активизировать поддержку спящего режима:

1. Раскройте окно Свойства: Электропитание (Power Options Properties) и перейдите на вкладку Спящий режим (Hibernate) (рис. 5.12). Если эта вкладка недоступна, значит, ваш компьютер не поддерживает данную опцию.

Рис. 5.12. Вкладка Спящий режим окна Свойства: Электропитание

2. Установите флажок Разрешить использование спящего режима (Enable hibernation). Следует отметить, что поскольку при переходе в спящий режим все содержимое оперативной памяти записывается на жесткий диск, необходимо иметь объем свободного дискового пространства, соответствующий объему оперативной памяти, установленной на компьютере.

После активизации поддержки спящего режима в списке Выберите желаемое действие (What do you want the computer to do?) диалогового окна Завершение работы Windows (Shut Down Windows) появится новый пункт — Переход в спящий режим (Hibernate), позволяющий вручную перевести компьютер в спящий режим (рис. 5.13).

Рис. 5.13. После активизации поддержки спящего режима в списке действий, которые можно выполнить, в окне Завершение работы Windows появился новый элемент Переход в спящий режим

 

Вкладка Дополнительно

Вкладка Дополнительно (Advanced) окна Свойства: Электропитание (Power Options Properties) (рис. 5.14) позволяет:

Ключи реестра, соответствующие параметрам, устанавливаемым на этой вкладке, перечислены в табл. 5.3.

Таблица 5.3. Ключи реестра, модифицируемые изменением параметров на вкладке Дополнительно окна Свойства: Электропитание

Элемент управления вкладки Дополнительно

Ключ реестра

Флажок Всегда отображать значок на панели задач (Always show icon on the taskbar)

HKCU\Control Panel\PowerCfg \GlobalPowerPolicy\Policies

Флажок Запрашивать пароль при выходе из ждущего режима (Prompt for password when computer goes resumes from standby)

HKCU\Control Panel\PowerCfg \GlobalPowerPolicy\Policies

 

Рис. 5.14. Вкладка Дополнительно окна Свойства: Электропитание

Рис. 5.15. Индикатор на панели задач позволяет быстро получить доступ к утилите Электропитание

 

Вкладка АРМ

Расширенное управление электропитанием (АРМ, Advanced Power Management) — это наследуемая (legacy) схема управления электропитанием, базирующаяся на подходе к реализации BIOS, который был принят в Windows 95. Наиболее интересные возможности АРМ зависят от BIOS, функции которой скрыты от операционной системы. В настоящий момент АРМ представляет собой устаревшее (наследуемое) решение, на смену которому пришла спецификация ACPI - надежная схема управления питанием и конфигурацией, используемая в семействе операционных систем Windows 98 и Windows 2000/XP.

 Примечание

Microsoft настоятельно рекомендует разрабатывать современные компьютерные системы с учетом спецификации ACPI. В данной главе об этой спецификации приведена только базовая информация. Более подробные сведения об ACPI и Windows можно найти по адресу http://www.microsoft.com/hwdev /onnow.

Тем не менее, Microsoft осознает, что одни компьютеры будут обладать только поддержкой АРМ, а другие смогут поддерживать как ACPI, так и АРМ. Поддержка АРМ была включена в Windows 2000/XP исключительно с целью обеспечения поддержки наследуемых портативных компьютеров типа notebook (legacy notebook computers).

АРМ не следует использовать, если системная BIOS находится в списке "Disable АРМ", составленном разработчиками Microsoft. АРМ на таких компьютерах работать не будет, и не надо пытаться обойти это ограничение.

АРМ можно попытаться использовать, если системная BIOS не удовлетворяет стандарту ACPI или соответствует ему не полностью.

Примечание

На некоторых компьютерах АРМ BIOS может приводить к нестабильному поведению системы. Однако в этом случае включение поддержки АРМ в Windows 2000/XP (использование файла Ntapm.sys) исправит проблему.

Windows 2000/XP различает перечисленные далее типы систем АРМ.

 Примечание

Единственный приемлемый способ активизации или блокировки поддержки АРМ — это использование утилиты Электропитание (Power Options) из Панели управления (Control Panel). Для того чтобы активизировать АРМ, перейдите на вкладку АРМ окна Свойства: Электропитание (Power Options Properties) и установите флажок Разрешить поддержку расширенного управления питанием (Enable Advanced Power Management support). Обратите внимание, что включение поддержки АРМ перезагрузки не требует.

Поддержка АРМ включена только в состав Windows 2000 Professional, Windows ХР Professional и Home Edition. В семействе серверов Windows 2000 Server (в том числе Windows 2000 Advanced Server и Windows 2000 DataCenter) она отсутствует.

 

Ключи реестра, содержащие информацию о поддержке АРМ

Данные о поддержке АРМ, полученные распознавателем аппаратных средств (Ntdetect.com), находятся в реестре в составе ключа HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\ System\MultifunctionAdapter.

В составе этого ключа имеется набор вложенных ключей с именами 0, 1, 2, 3 и т. д. Каждый из них содержит параметры с именами component Information, Configuration Data, Identifier. Найдите ключ, для которого параметр identifier имеет значение АРМ (рис. 5.16). Параметр Configuration Data будет содержать данные АРМ, собранные Ntdetect.com во время запуска системы. Если такой ключ в реестре отсутствует, это означает, что система не поддерживает АРМ.

Поддержка АРМ обеспечивается только на платформах Intel (версия HAL — Halx86.dll). Эта информация находится в реестре под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\ApmLegalHal. Ecли в составе этого ключа имеется параметр Present с типом данных REG_DWORD, установленный в 1, это значит, что версия HAL допускает поддержку АРМ.

Рис. 5.16. Данные о поддержке АРМ в реестре 

Результаты машинного определения, сопоставленные с Biosinfo.inf, хранятся под ключом HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Biosinfo\APM. Если параметр Attributes равен 1, то АРМ BIOS присутствует в системе, и данный компьютер относится к списку "AutoEnable АРМ". Если это значение равно 2, то АРМ BIOS в системе отсутствует и входит в список "Disable АРМ". Любой другой вариант означает, что компьютер относится к нейтральным системам.

Если компьютер соответствует спецификации ACPI, то в составе ключа HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services будет присутствовать ключ \ACPI, в котором параметр start равен 0. Это указывает системе на необходимость загрузки драйвера Acpi.sys на начальном этапе загрузки системы.

Более подробная информация о процессе загрузки будет приведена в главе 6.

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

 

Вкладка ИБП

Если в системе присутствует поддержка источника бесперебойного питания (ИБП, Uninterruptible Power Supply — UPS), то системой можно управлять посредством параметров утилиты Электропитание (Power Options). Для управления и конфигурирования службы UPS, запустите утилиту Электропитание (Power Options) в окне Панели управления (Control Panel), и перейдите на вкладку ИБП (UPS) (рис. 5.17). Эта вкладка отображает текущее состояние системы питания, подробные данные об установленном оборудовании UPS, а также текущий статус службы UPS.

Рис. 5.17. Вкладка ИБП окна Свойства: Электропитание

 

Средства управления питанием Windows 2000/XP

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

Круг обсуждаемых вопросов включает:

 

Схемы управления питанием

Средства Windows 2000/XP по управлению подачей электропитания и энергосбережением базируются на концепции схем подачи электропитания. Схема подачи электропитания (power scheme) представляет собой группу предопределенных параметров, управляющих подачей электропитания и энергосбережением, которые передаются модулю Диспетчер управления питанием (Power Policy Manager), и с помощью которых он управляет электропитанием в данной системе.

Каждая схема подачи электропитания состоит из двух структур данных, одна из которых задает глобальную политику управления электропитанием (global power policy structure), а вторая — политику управления электропитанием, уникальную для конкретной схемы (non-global power policy structure).

Помимо этого, структуры политики управления электропитанием подразделяются на структуры, управляющие поведением компьютера (machine structures) и пользовательские структуры (user structures).

Структуры данных, определяющие политику управления электропитанием, перечислены ниже.

 

Ключи реестра, предназначенные для управления электропитанием

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

 Примечание

Изменив значения параметров реестра, управляющих электропитанием, не следует ожидать, что внесенные изменения войдут в силу немедленно. Windows читает эти параметры из реестра при регистрации пользователя в системе, при нажатии кнопки ОК после внесения изменений через утилиту Электропитание (Power Options) из Панели управления (Control Panel), а также при вызове функций чтения реестра.

Ключи реестра, управляющие электропитанием, перечислены ниже.

 

Резюме

В данной главе рассмотрена роль архитектуры Plug and Play в Windows 2000/XP. Вы также узнали о том, как информация об устройствах хранится в реестре Windows NT/2000/XP, и что с ней происходит при конфигурировании аппаратных средств с помощью Диспетчера устройств (Device Manager) или при добавлении и удалении устройств. Далее мы рассмотрели инициативу OnNow, спецификацию ACPI, управление, а также те ключи реестра, которые отвечают за управление питанием компьютером. Если ваша система соответствует спецификации ACPI, то при добавлении в систему нового устройства вы не должны сталкиваться с задачей обеспечения его сосуществования с устройствами, которые уже установлены в системе.

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