Как и предыдущие системы Windows NT/2000/XP, Windows Server 2003 обеспечивает возможность создания множества аппаратных конфигураций, которые хранятся в реестре. Так, например, можно создать профили для док-станций (что актуально для пользователей портативных компьютеров), а также профили для съемных устройств. Аппаратный профиль, или профиль оборудования (hardware profile), представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. Чтобы создать новый аппаратный профиль в Windows Server 2003, щелкните по значку System на панели управления, перейдите на вкладку Hardware и нажмите кнопку Hardware Profiles (Профили оборудования). Раскроется диалоговое окно Hardware Profiles (рис. 2.18).
В процессе установки Windows Server 2003 создается аппаратный профиль по умолчанию (Profile 1), в состав которого включены все устройства, обнаруженные на компьютере на момент установки операционной системы.
Принципы создания аппаратных профилей для настольных и портативных компьютеров несколько различны. Как уже говорилось в главе 1 "Планирование и установка системы", в процессе установки ОС производится обнаружение и распознавание всех аппаратных устройств, установленных на компьютере (вспомните сообщение Setup is inspecting your computer's hardware configuration . .., свидетельствующее о запуске программы Setup). Для настольных компьютеров создается один аппаратный профиль по умолчанию (Default hardware profile), включающий в свой состав все аппаратные компоненты, обнаруженные при установке системы. Для портативных компьютеров программа установки создает два аппаратных профиля по умолчанию (Docked Profile и Undocked Profile) и выбирает нужный профиль в зависимости от того, используется ли портативный компьютер в качестве док-станции или независимо. Хотя поддержка Plug and Play в значительной степени исключает необходимость ручного создания и конфигурирования аппаратных профилей, они все же могут быть весьма полезны.
Чтобы изменить свойства аппаратного профиля, выделите его имя в списке Available hardware profiles (Имеющиеся аппаратные профили) и нажмите кнопку Properties (Свойства). Можно также создать новый аппаратный профиль на базе уже существующего. Для этого выделите нужный аппаратный профиль в списке и нажмите кнопку Сору (Копировать), а затем укажите имя нового аппаратного профиля в раскрывшемся диалоговом окне Сору Profile (Копировать профиль). Чтобы удалить один из аппаратных профилей, выделите его имя в списке и нажмите кнопку Delete (Удалить).
Наконец, в диалоговом окне Hardware Profiles можно задать поведение системы по отношению к выбору аппаратных профилей. В нижней части этого окна находится группа Hardware profiles selection (Выбор аппаратного профиля) с двумя переключателями. Если выбрать переключатель Wait until I select a hardware profile (Ожидать выбора аппаратного профиля), то при загрузке система выведет на экран список аппаратных профилей и будет ожидать, когда пользователь выберет один из них. При выборе второго переключателя система во время запуска автоматически выберет первый профиль из списка, если пользователь не укажет нужный ему аппаратный профиль по истечении срока (в секундах), указанного в расположенном рядом поле.
Диспетчер ввода/вывода (I/O Manager) обеспечивает базовые сервисы для драйверов устройств. Диспетчер ввода/вывода представляет собой компонент режима ядра, который выполняет трансляцию команд чтения и записи режима пользователя в соответствующие IRP. Помимо этого, диспетчер ввода/вывода управляет всеми остальными основными IRP операционной системы. Эти интерфейсы работают точно так же, как они работали в операционной системе Windows NT 4.0. Обратите внимание, что поскольку диспетчер ввода/вывода имеется и в Windows NT 4.0, и в Windows 2000/XP/ Server 2003, драйвер Plug and Play может устанавливаться вручную в Windows NT 4.0 и может функционировать как драйвер Plug and Play в Windows 2000/XP/Server 2003.
Начиная с Windows XP, подсистема ввода/вывода была усовершенствована за счет введения новых интерфейсов прикладного программирования (API), которые должны быть доступны драйверам устройств в соответствии с требованиями программы Windows Logo. Драйверы устройств, разработанные специально для Windows XP и Windows Server 2003, за счет использования этих API смогут в полной мере реализовать преимущества, предоставляемые такими новыми возможностями, как Volume Snadow Copy Service (более подробно о них пойдет речь в главе 23 "Восстановление системы"). Наряду с этим, Windows XP и Windows Server 2003 обеспечивают полную обратную совместимость с драйверами, разработанными для Windows 2000. Таким образом, драйвер, который подходил для использования в Windows 2000, практически наверняка будет работать и в Windows XP и Windows Server 2003. Несмотря на это, Microsoft настоятельно рекомендует проверять, не существует ли для вашего устройства драйверов, разработанных специально для более новых версий операционной системы (чтобы получить обновленный драйвер, обратитесь к поставщику устройства или посетите сайт Windows Update).
Система ввода/вывода предоставляет уровневую архитектуру драйверов. В данном разделе обсуждаются типы драйверов WDM, уровни драйверов и объекты устройств. Более подробную информацию по данному вопросу можно найти в файлах сопроводительной документации к последней версии Windows DDK.
Впервые поддержка Plug and Play была включена в состав операционной системы Windows 95. Однако с тех пор технологии Plug and Play существенно изменились и прошли достаточно долгий путь развития. В значительной степени эта эволюция является результатом технической инициативы OnNow, которая представляла собой попытку определить в масштабах всей системы универсальный подход к управлению конфигурацией системы и устройств, а также к управлению электропитанием. Одним из результатов инициативы OnNow является спецификация ACPI 1.0 (Advanced Configuration and Power Interface Version 1.0), которая определяет новый интерфейс между системной платой и BIOS, расширяющий данные Plug and Play путем включения управления электропитанием и других конфигурационных возможностей, осуществляемых под контролем операционной системы.
В отличие от поддержки Plug and Play в Windows 95, реализация Plug and Play в Windows 2000/XP и продуктах из семейства Windows Server 2003 базируется не на Advanced Power Management (АРМ) BIOS или Plug and Play BIOS. Эти две реализации BIOS были разработаны для Windows 95 и, как ранние попытки обеспечения поддержки Plug and Play и управления электропитанием, они поддерживаются в Windows 98 для обеспечения обратной совместимости. Фактическая поддержка Plug and Play и управления электропитанием обеспечиваются в Windows 2000/XP и продуктах из семейства Windows Server 2003 Server интерфейсом ACPI.
Технология Plug and Play требует комбинированного взаимодействия BIOS персонального компьютера, его аппаратных компонентов, драйверов устройств и операционной системы. Основные требования к реализации системной платы и поддержке BIOS, необходимые для обеспечения поддержки Plug and Play в Windows 2000, Windows XP и Windows Server 2003, определены в спецификации ACPI. Новейшие версии операционных систем из семейства Windows используют эту спецификацию как основу для построения их архитектуры Plug and Play в соответствии с требованиями инициативы OnNow.
Спецификация ACPI определяет новый интерфейс между операционной системой и компонентами компьютера, обеспечивающими поддержку Plug and Play и управления электропитанием. Обратите внимание, что методы, определенные в ACPI, не зависят от конкретной операционной системы или типа процессора. ACPI определяет интерфейс на уровне регистров для базовых функций Plug and Play и управления электропитанием, а также определяет описательный интерфейс для дополнительных аппаратных возможностей. Это позволяет разработчикам реализовать целый диапазон функций Plug and Play и управления электропитанием для самых разных аппаратных платформ при использовании одного и того же драйвера операционной системы. Помимо этого, ACPI предоставляет общий механизм системных событий для Plug and Play и управления электропитанием.
Некоторые типы системных BIOS, декларируемые их поставщиками как соответствующие спецификации ACPI, могут вызвать проблемы с установкой Windows 2000/XP или Windows Server 2003. Иногда они также могут послужить причиной периодических ошибок ядра (ошибок STOP, известных также под названием "синих экранов смерти") уже после установки операционной системы. С целью минимизации вероятности возникновения таких ситуаций разработчики Microsoft включили в программу установки ОС специальные функциональные возможности, позволяющие блокировать или активизировать поддержку ACPI на основании следующих критериев.
Принадлежность BIOS к списку совместимых BIOS (Good BIOS List). Этот список используется для активизации режима поддержки ACPI для некоторых типов системной BIOS с датой выпуска до 01/01/1999. Если системная BIOS, обнаруженная на компьютере, указана в этом списке, то режим ACPI будет активизирован. Поскольку дата 01/01/1999 уже истекла, Microsoft больше не добавляет новых записей в список "хороших" BIOS.
Принадлежность к списку несовместимых BIOS (Incompatible BIOS list). Этот список используется для блокировки режима ACPI для некоторых BIOS с датой выпуска 01/01/1999 или более поздней. BIOS добавляются в этот список в том случае, если группа тестеров Microsoft или сами разработчики BIOS выясняют, что режим ACPI вызывает проблемы со стабильностью Windows. Это означает, что система не прошла тест на аппаратную совместимость ACPI (ACPI Hardware Compatibility Test, HCT), не загружается или не обеспечивает необходимого минимума функциональных возможностей. Список несовместимых BIOS (ACPI HCT) можно найти по следующему адресу: http://www.microsoft.com/hwdev/acpihct.htm.
Если системная BIOS не присутствует ни в одном из этих списков, объявляет себя как соответствующую спецификации ACPI и имеет дату не ранее 01/01/1999, то режим ACPI будет активизирован. Операционная система использует стандартную дату РС-АТ, которая находится по адресу F000:FFF5.
Если программа Windows Server 2003 Setup, проверяя систему перед установкой Windows, обнаруживает, что системная BIOS находится в списке несовместимых ACPI BIOS, то режим ACPI блокируется. Чтобы в полном объеме гарантировать функциональные возможности Plug and Play и управления электропитанием при использовании Windows 2000/XP или Windows Server 2003, BIOS необходимо обновить. Подробную информацию об этом можно получить по адресу: http://www.Hardware-Update.com.
В отличие от систем на базе процессоров Intel Itanium, которые всегда являются ACPI-совместимыми, для систем на базе процессоров х86 способ взаимодействия устройств Plug and Play с системной BIOS имеет очень важное значение. В некоторых системах программа BIOS Setup предоставляет опцию Enable Plug and Play operating system, которая влияет на способ этого взаимодействия. Строго говоря, эта опция указывает, какой из компонентов управляет аппаратными средствами компьютера — системная BIOS или же операционная система. Если ваша система не является ACPI-совместимой, то эту опцию рекомендуется блокировать, установив для нее значение No/Disabled.
Кроме того, Microsoft рекомендует блокировать эту опцию, если вы имеете систему с двойной загрузкой, где вторая операционная система — Windows 98/ME, особенно если тест Plug and Play на соответствие ACPI проходит в Windows 98/ME (BIOS определяется как ACPI BIOS), но не проходит в Windows XP или Windows Server 2003. Если ваша система полностью совместима с ACPI (это означает, что в ней присутствует ACPI BIOS и установлен ACPI HAL), то назначение ресурсов аппаратным устройствам выполняет не BIOS, а операционная система. Параметры, установленные через программу BIOS Setup, включая и опцию Enable Plug and Play operating system, при этом игнорируются.
Кроме спецификации ACPI, существуют и другие промышленные стандарты, например, Universal Serial Bus, Version 1.0, PCI Local Bus Specification, Revision 2.1 и PCMCIA.
Основная цель реализации Plug and Play — дальнейшее развитие промышленной инициативы, направленной на упрощение работы с персональными компьютерами для конечных пользователей. Кроме того, Plug and Play в Windows 2000, Windows XP и Windows Server 2003 решает следующие задачи.
Расширение существующей в Windows NT инфраструктуры ввода/вывода так, чтобы она поддерживала Plug and Play и управление электропитанием при одновременной поддержке промышленных стандартов на аппаратные средства Plug and Play.
Разработка общих интерфейсов драйверов, которые поддерживают Plug and Play и управление питанием для множества классов устройств под управлением Windows 2000/XP, Windows Server 2003 и Windows 98/ME.
Оптимизация поддержки Plug and Play для самых разнотипных компьютеров — портативных, настольных рабочих станций и серверов, имеющих системные платы ACPI. В дополнение к сказанному, поддержка драйверов устройств Plug and Play для различных классов устройств обеспечивается моделью драйвера Microsoft Win32 (Microsoft Win32® Driver Model, WDM), которая поддерживает также управление подачей электропитания и другие новые возможности, которые могут конфигурироваться и управляться операционной системой.
В Windows 2000/XP и Windows Server 2003 API-интерфейсы режима пользователя для управления устройствами и их конфигурирования в среде Plug and Play представляют собой 32-разрядные расширенные версии, базирующиеся на API Configuration Manager для Windows 95. В Windows 95 Configuration Manager представляет собой виртуальный драйвер устройства (VxD), который предоставляет эти процедуры в качестве сервисов компонентам, работающим в кольцах защиты 0 и 3.
Начиная с Windows 2000, эти процедуры расширяют функциональные возможности компонента Plug and Play Manager режима пользователя и представляют собой API-интерфейсы режима пользователя. Драйверы устанавливаются программой Setup. 32-разрядные API-интерфейсы инсталляции устройств, используемые программой Setup, представляют собой надмножество процедур инсталляции Windows 95.
Wiridows 2000, Windows XP и Windows Server 2003 предоставляют API, которые приложения могут использовать для индивидуального управления аппаратными событиями и для создания новых аппаратных событий.
Основные задачи по конфигурированию аппаратных средств и устранению неполадок в их работе выполняется на вкладке Hardware (Оборудование) окна System Properties (Свойства системы). Чтобы открыть это окно, воспользуйтесь значком System на панели управления и в раскрывшемся окне System Properties перейдите на вкладку Hardware (рис. 2.17).
Помимо возможности вызова мастера Add Hardware Wizard, работа с которым была рассмотрена в предыдущем разделе, административные средства, доступные на этой вкладке, позволяют выполнять следующие задачи.
Управлять опциями защиты драйверов устройств цифровой подписью (более подробная информация о защите системных файлов и драйверов Windows XP цифровой подписью будет приведена в главе 23 "Восстановление системы").
Вызывать утилиту Device Manager, позволяющую вручную конфигурировать параметры настройки аппаратных устройств.
Управлять аппаратными профилями.
Последующие несколько разделов будут посвящены детальному рассмотрению перечисленных возможностей.
В начале этой главы мы уже рассматривали пример, позволяющий получить общее представление о процессах, которые происходят в системе при установке новых устройств и разрешении аппаратных конфликтов. Однако этот пример имеет два существенных недостатка — он слишком прост и, самое главное, представляет информацию с точки зрения конечного пользователя. Теперь, когда мы ознакомились с основными концепциями Plug and Play, настало время обсудить, что же на самом деле происходит в системе при обнаружении и установке новых устройств, и какие компоненты требуются для успешного выполнения этой задачи.
Фактически подсистема Plug and Play выполняет следующие функции:
обнаружение и энумерация устройств;
выделение устройствам аппаратных ресурсов;
динамическая загрузка, инициализация и выгрузка драйверов;
уведомление других драйверов и приложений о доступности нового устройства;
управление подачей электропитания при установке и удалении устройств.
После того как Windows обнаруживает новое устройство Plug and Play, драйвер устройства может быть сконфигурирован и загружен динамически, при минимальном вмешательстве пользователя (фактически в большинстве случаев такое вмешательство вообще не требуется). Некоторые шины, например, PCI и USB, в полной мере используют преимущества Plug and Play, и распознавание устройств, подключенных к таким шинам, происходит полностью автоматически. Как только новое устройство обнаружено, PnP Manager и шинный драйвер производят его энумерацию, после чего производится загрузка драйвера и запуск устройства. Если устройство подключено впервые, и системный реестр не содержит информации об этом устройстве, Windows установит и запустит драйверы для этого устройства.
Как уже упоминалось, программа Setup динамически исследует аппаратную конфигурацию компьютера и заносит информацию обо всех обнаруженных устройствах в реестр. Необходимую информацию программа Setup получает от самого устройства и от ассоциированных с ним INF-файлов.
В системах РпР подсистема РпР динамически отслеживает все переходы устройств между различными состояниями по мере того, как устройство подключается к системе, конфигурируется, запускается, останавливается и удаляется из системы. Все эти переходы схематично показаны на иллюстрации, приведенной на рис. 2.10.
Когда устанавливается новое устройство, система использует идентификатор устройства (device ID) для поиска INF-файлов, которые могут быть использованы для установки этого устройства. Windows далее использует эту информацию для создания параметров реестра в составе ключа HKEY_LOCAL_MACHINE, a затем копирует на диск необходимые драйверы. Если с новым устройством можно использовать несколько различных драйверов, то для определения драйвера, наиболее подходящего для данного устройства, Windows применяет так называемую систему приоритетного использования драйверов (driver-ranking schemes). Приоритеты драйверов определяются на основании наличия или отсутствия цифровой подписи и близости соответствия аппаратному идентификатору устройства (hardware ID, HW ID).
Таким образом, если вам требуется установить новое устройство, в первую очередь следует попытаться сделать это, полностью положившись на подсистему Plug and Play. Как правило, Windows автоматически обнаружит и сконфигурирует все поддерживаемые устройства. Схема действий пользователя зависит от типа устройства и определяется следующими правилами.
Если устанавливается внешнее устройство Plug and Play, то просто подключите новое устройство, не выключая компьютера.
Если требуется установить внутренний адаптер PCI или ISA Plug and Play, остановите систему, выключите компьютер и установите новое устройство. После перезагрузки Windows обнаружит устройство и автоматически запустит процедуры его установки.
Если требуется установить наследуемое устройство, запустите Add Hardware wizard и попытайтесь обнаружить новое устройство средствами Windows Server 2003. Обратите внимание на то, что данная операция требует регистрации в системе от имени пользователя с административными правами.
Установка новых устройств происходит после регистрации пользователя в системе. Схема, иллюстрирующая процессы, которые происходят при установке драйверов нового устройства, приведена на рис. 2.11.
Процессы, имеющие место при установке драйвера нового устройства, происходят в следующей последовательности:
1. Пользователь подключает новое устройство к компьютеру. Обратите внимание, что если шина, к которой подключено устройство, поддерживает уведомление о неожиданном подключении нового устройства (hot-plug notification), то вы можете не останавливать Windows и не выключать компьютер,
2. PnP Manager совместно с шинным драйвером производят энумерацию нового устройства. Шинный драйвер при поддержке шины получает уведомление о присутствии нового устройства, и, в свою очередь, уведомляет модуль PnP Manager режима ядра об изменении аппаратной конфигурации (в данном случае, о добавлении нового устройства). PnP Manager режима ядра запрашивает у шинного драйвера список физически присутствующих на шине устройств и сравнивает этот список с его предыдущей копией, чтобы определить, какое устройство было добавлено. Затем PnP Manager запрашивает у шинного драйвера информацию о новом устройстве (hardware ID, vendor ID, идентификаторы совместимых устройств).
3. PnP Manager режима ядра уведомляет PnP Manager режима пользователя о необходимости установки нового устройства.
4. PnP Manager режима пользователя создает новый процесс с использованием rundli32.exe и запускает модуль newdev.dll для установки нового устройства. Например, на рис. 2.12 показан вид окна программы-мастера Found New Hardware Wizard, предлагающего пользователю установить обнаруженное новое устройство (в данном случае, это — портативный накопитель Ziv, подключаемый к компьютеру через интерфейс USB).
5. DLL-библиотека, отвечающая за установку новых устройств, вызывает функции Setup API и функции диспетчера конфигурации PnP (CfgMgr API). Таким образом, Newdev.dll создает список драйверов, которые возможно использовать с данным устройством (рис. 2.13).
6. Инсталляторы класса (class installer) и ко-инсталляторы (co-installers), если они имеются, принимают участие в установке устройства, предоставляя дополнительные функциональные возможности по его конфигурированию.
7. Программа Setup передает управление ядру для загрузки драйверов устройства. Как только Setup определит наиболее подходящий драйвер для устройства, скопирует файлы драйвера, зарегистрирует интерфейсы и так далее, он уведомит пользователя об успешной установке нового устройства (рис. 2.14) и передаст управление модулю PnP Manager режима ядра для загрузки драйверов и запуска устройства.
8. PnP Manager загружает функциональный драйвер и необязательные драйверы фильтра.
9. Инсталляторы могут предоставлять дополнительные страницы свойств для конфигурирования параметров устройства.
В частности, в рассматриваемом нами примере с портативным накопителем Ziv, после запуска драйверов в правом нижнем углу экрана появится всплывающее сообщение, информирующее о появлении в системе нового накопителя (рис. 2.15), который уже через несколько секунд будет готов к работе.
Обратите внимание, что удалять такой накопитель из системы необходимо с использованием функции Safe Removal, во избежание потери данных или даже порчи устройства. Для этого следует щелкнуть правой кнопкой мыши, указав курсором на значок, соответствующий съемному накопителю, выбрать из меню опцию Safely Remove this Device и дождаться появления всплывающего сообщения, подобного показанному на рис. 2.16.
Модуль Plug and Play Manager (PnP Manager), работающий в режиме ядра, поддерживает функции центрального управления, управляет шинными драйверами при выполнении энумерации (enumeration) и драйверами устройств при добавлении устройства, его запуске и т. д.
Например, Plug and Play Manager может направлять запросы, чтобы определить, может ли устройство быть удалено, и позволить драйверу устройства синхронизировать незавершенные запросы ввода/вывода с поступающим запросом. Plug and Play Manager координируется с соответствующим модулем режима пользователя при определении устройств, доступных для выполнения таких операций.
Повышение надежности системы и снижение возможного времени простоя всегда являлись одной из приоритетных целей разработчиков Microsoft, и уже в Windows 2000 этим вопросам было уделено самое пристальное внимание. Весьма ограниченная поддержка Plug and Play в Windows NT 4.0 являлась одним из наиболее существенных недостатков этой операционной системы и вызывала множество справедливых нареканий пользователей. По сравнению с Windows NT, операционные системы Windows 2000 Professional и Windows 2000 Server предоставили множество усовершенствований в данной области, реализация которых стала частью инициативы нулевого администрирования Microsoft (ZAW).
Был существенно расширен список поддерживаемых аппаратных устройств (HCL), в который были включены сотни новых принтеров, модемов, устройств с автоподачей для CD-ROM, стримеров, накопителей на магнитооптических дисках и других устройств.
Снижение частоты необходимых перезагрузок. В отличие от Windows NT 4.0 Workstation и Windows NT 4.0 Server, Windows 2000 Professional и Windows 2000 Server позволяют пользователям вносить изменения в конфигурацию компьютера без необходимости перезагрузки. Это преимущество явилось одним из наиболее значимых, т. к. оно упрощает обслуживание при одновременном повышении надежности.
Были существенно упрощены как установка самой операционной системы, так и процедуры установки и конфигурирования нового оборудования. Фактически уже в Windows 2000 большинство новых устройств могло быть подключено динамически.
Все это было достигнуто за счет включения в Windows 2000 поддержки Plug and Play, а также средств управления электропитанием и энергосбережением.
В новых операционных системах — Windows XP и Windows Server 2003 — были введены дополнительные усовершенствования в области работы с аппаратными средствами. Список этих усовершенствований весьма впечатляющ.
Уже на данный момент Windows XP и Windows Server 2003 реализуют поддержку Plug and Play для сотен устройств, не включенных в список совместимых устройств (HCL) для Windows 2000. Наряду с этим, обеспечивается улучшенная поддержка для устройств, подключаемых к шинам USB (Universal Serial Bus), IEEE 1394, PCI (Peripheral Component Interconnect). И хотя модель драйверов по сравнению с Windows 2000 не претерпела существенных изменений, Windows XP и Windows Server 2003 предлагают расширенную поддержку для многих распространенных классов устройств, включая сканеры, камеры, аудиоустройства, накопители высокой плотности и т. д. Помимо этого, начиная с Windows XP, была введена технология Windows Image.Acquisition (WIA), предоставляющая удобный пользовательский интерфейс для работы со сканерами и цифровыми камерами, подобный тому, который существует в Windows ME.
Улучшенная поддержка работы с цифровыми аудио- и видеофайлами. Поддержка цифровых аудио- и видеофайлов в Windows XP и Windows Server 2003 базируется на технологиях, уже реализованных в более ранних версиях Windows, однако, наряду с этим, были введены и новые технологии, обеспечивающие поддержку большого количества новых устройств, а также расширенные возможности по воспроизведению и хранению цифрового аудио и видео. В частности, для поддержки цифровых аудиоустройств Windows XP, как и ее предшественница Windows 2000, базируется на архитектуре WDM. Наряду с этим, в Windows XP и Windows Server 2003 реализован целый ряд новых технологий, обеспечивающих улучшенное качество воспроизведения и записи цифрового аудио, в том числе:
многоканальный вывод и воспроизведение для большого количества дополнительных аудиоформатов;
поддержка технологий Acoustic Echo Cancellation (AEC) и Global Effects (GFX), обеспечивающих улучшенное качество звукозаписи и более удобный интерфейс при работе с микрофонами USB;
улучшенная поддержка технологии DRM (Digital Rights Management), позволяющей обеспечить защиту авторских прав на музыкальные записи и другую цифровую информацию за счет шифрования и применения ограничений на использование (например, по типу воспроизводящих устройств). Все драйверы аудиоустройств, входящие в состав Windows XP и Windows Server 2003 Server, поддерживают эту технологию;
улучшенная поддержка работы с аудио-CD, CD-ROM, а также улучшенная поддержка DVD. Так, в Windows XP была введена встроенная поддержка чтения и записи на устройства DVD-RAM с использованием файловых систем FAT и FAT32. Помимо этого, обеспечиваются возможности чтения файловой системы UDF (Universal Disk Format) версии 2.01, представляющей собой функциональное расширение UDF 1.02, используемой на текущий момент в качестве стандарта для носителей DVD. Предоставляются встроенные возможности по записи компакт-дисков, включая запись дисков в форматах CD-R и CD-RW.
При этом обеспечиваются базовые функциональные возможности drag-and-drop, а также программа-мастер CD Writing Wizard;
наконец, компьютер, работающий под управлением Windows Server 2003 можно сконфигурировать как сервер мультимедийного содержания (Streaming media server), в режиме реального времени предоставляющий мультимедийную информацию в корпоративных сетях и в Интернете.
Улучшенная поддержка нескольких мониторов (технология DualView). Несмотря на то, что поддержка множества мониторов не является новой для Windows (впервые она была введена в Windows 98, и в существенно улучшенном виде присутствует в Windows 2000), в Windows XP она получила дальнейшее развитие за счет реализации технологии, известной как DualView. За счет этого Windows XP и Windows Server 2003 предоставляют дополнительные опции по конфигурированию множества мониторов как для портативных, так и для настольных компьютеров. Технология DualView представляет собой функциональное расширение встроенной поддержки множества мониторов, имеющейся в Windows 98, Windows ME и Windows 2000.
За счет улучшенного управления электропитанием и энергосберегающими режимами существенно повышена производительность системы. Так, например, введены функции быстрой загрузки (Fast Boot), улучшенная поддержка BIOS, а также усовершенствования в работе с "ждущим" (Standby) и "спящим" (Hibernation) режимами.
Усовершенствования технологии Plug and Play в Windows XP и Windows Server 2003 более чем на 90 процентов сократили количество перезагрузок системы, необходимых для проведения плановых работ. Более того, появившаяся функциональная возможность Shutdown Event Tracker позволяет вести строгий учет всех выполняемых перезагрузок (рис. 2.1). Более подробно эта функция будет рассмотрена в главе 23 "Восстановление системы".
Power Manager — это компонент режима ядра, который работает совместно с модулем Policy Manager и обрабатывает вызовы интерфейса прикладного программирования (API) управления электропитанием, координирует события и генерирует запросы на прерывания, связанные с управлением электропитанием IRP. Например, если различные устройства отправляют запросы на отключение, Power Manager собирает эти запросы, определяет, какие запросы должны быть сериализованы и генерирует соответствующие IRP.
Policy Manager наблюдает за активностью системы и собирает интегрированную информацию о статусе пользователей, приложений и драйверов устройств. При определенных обстоятельствах или по запросу Policy Manager генерирует IRP для изменения статуса драйверов устройств.
Следует обратить особое внимание на то, что утилита Device Manager no умолчанию не отображает все устройства. Так, устройства, не поддерживающие Plug and Play, устройства, не подключенные к компьютеру, и некоторые другие устройства являются скрытыми. Однако вы можете просмотреть список всех устройств, существующих в системе (в том числе и скрытых) с целью просмотра или устранения неполадок, выбрав команду Show hidden devices (Показать скрытые устройства) из меню View.
Для ручного управления параметрами настройки аппаратных средств используется утилита Device Manager, вызвать которую можно нажатием кнопки Device Manager (Диспетчер устройств) на вкладке Hardware окна System Properties. Device Manager отображает дерево аппаратных устройств (рис. 2.19), которое в иерархическом виде представляет все активные устройства, присутствующие в системе, а также информацию об этих устройствах. Windows XP и Windows Server 2003 обновляют дерево устройств при добавлении или удалении устройств, а также по мере переназначения ресурсов. Дерево устройств является иерархическим, при этом каждое устройство на шине представляется как дочернее устройство шинного адаптера или контроллера. Вся статическая информация об аппаратных средствах хранится в реестре, а компоненты системы Plug and Play и драйверы строят соответствующие поддеревья, поддерживают их и настраивают разрешения на доступ к новым и существующим поддеревьям реестра. (Более подробная информация о работе с системным реестром будет приведена в главе 24 "Работа с системным реестром".)
Чтобы просмотреть параметры устройства, выполнить его ручное конфигурирование, обновить драйвер, блокировать или переустановить устройство, а также выполнить сканирование изменений аппаратной конфигурации, укажите на нужное устройство курсором, выполните щелчок правой кнопкой мыши и выберите соответствующую команду из контекстного меню (см. рис. 2.19).
Для просмотра информации о конкретном устройстве разверните иерархическое дерево, укажите курсором на нужное устройство, выполните щелчок правой кнопкой мыши и выберите из контекстного меню команду Properties (Свойства). Утилиту Device Manager можно использовать для активизации и блокирования устройств, для устранения неполадок в их работе, ручного конфигурирования выделяемых устройствам аппаратных ресурсов, обновления или отката драйверов (Driver Rollback). Опция отката драйверов впервые появилась в составе Windows XP (и, безусловно, присутствует и Windows Server 2003), представляет собой дополнительное средство по обеспечению надежности и отказоустойчивости системы, которое будет более подробно рассмотрено в главе 23 "Восстановление системы".
Обратите внимание на то, что Device Manager позволяет просматривать дерево аппаратных устройств как по типу устройств (см. рис. 2.19), так и по подключению (рис. 2.20). Чтобы просмотреть дерево устройств по подключению, выберите команду Devices by connection (Устройства по подключению) из меню View (Вид).
С точки зрения системы Plug and Play существуют следующие три типа драйверов.
Шинный драйвер обслуживает контроллер шины, адаптер, мост или любое устройство, которое имеет дочерние устройства. Шинные драйверы относятся к обязательным драйверам и обычно поставляются Microsoft. Для каждого типа шины в системе имеется собственный шинный драйвер.
Функциональный драйвер — это основной драйвер устройства, который предоставляет интерфейс с этим устройством. Этот драйвер является обязательным, за исключением случаев, когда ввод/вывод устройства осуществляется шинным драйвером или любыми драйверами фильтра. Функциональный драйвер устройства обычно реализуется в виде пары драйвер/мини-драйвер. В таких парах драйверов драйвер класса (обычно разрабатываемый Microsoft) обеспечивает функциональные возможности, необходимые всем устройствам этого типа, а мини-драйвер (обычно разрабатываемый фирмой — поставщиком конкретного устройства) обеспечивает специфические функциональные особенности устройства. Plug and Play Manager загружает по одному функциональному драйверу для каждого устройства.
Драйвер фильтра сортирует запросы ввода/вывода для шины, устройства или класса устройств. Драйверы фильтра являются необязательными и могут существовать в любом количестве, располагаясь на различных уровнях — как выше, так и ниже функционального драйвера и шинного драйвера. Обычно такие драйверы поставляются фирмами OEM или независимыми поставщиками аппаратных средств (IHV).
В большинстве случаев драйверы фильтров нижнего уровня модифицируют поведение аппаратных средств. Например, низкоуровневый драйвер фильтра класса для мыши может обеспечивать ускорение ее работы, выполняя нелинейное преобразование данных о перемещении мыши.
Высокоуровневые драйверы фильтров обычно предоставляют дополнительные функции для устройства. Например, высокоуровневый драйвер фильтра для клавиатуры может вводить дополнительные проверки по безопасности.
Уровни драйверов
Для каждого конкретного устройства существует два или более уровней драйвера: шинный драйвер для шины ввода/вывода (или 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, но используются по-разному и могут иметь дополнительные расширения.
Дополнительные интерфейсы
Драйверы Plug and Play, предназначенные для использования в Windows 2000, Windows XP и Windows Server 2003, не ограничиваются использованием интерфейсов WDM. Драйверы могут вызывать другие интерфейсы для обеспечения поддержки наследуемых драйверов Windows NT, обнаружения аппаратных средств или других специфических функций, не предоставляемых WDM.
Обратите внимание, что если драйвер должен применяться как в Windows 98/ ME, так и в Windows 2000/XP/Server 2003, то он должен использовать только интерфейсы WDM.
Шинные драйверы WDM
Управление электропитанием и Plug and Play осуществляется при помощи шинных драйверов WDM, которые представляют собой стандартные драйверы WDM. Обратите внимание, что в этом контексте любое устройство, начиная с которого происходит энумерация других устройств, будет называться шиной. Шинный драйвер отвечает на пакеты запроса ввода/вывода (IRP) и может быть расширен за счет использования драйверов фильтров.
Шинный драйвер выполняет следующие задачи:
Энумерация устройств на шине
Динамическое извещение операционной системы о событиях на шине
Ответы на IRP от систем Plug and Play и управления электропитанием
Мультиплексирование доступа к шине (для некоторых шин)
Общее администрирование устройств на шине
В ходе энумерации драйвер шины идентифицирует устройства на своей шине и создает для них объекты устройств. Метод, с помощью которого драйвер идентифицирует устройства на шине, зависит от конкретной шины.
Шинный драйвер выполняет некоторые операции от имени устройств, находящихся на его шине, но обычно не обрабатывает операции чтения и записи на устройства, находящиеся на шине. (Эти операции обрабатываются функциональным драйвером.) Драйвер шины выступает в роли функционального драйвера для своего контроллера, адаптера, моста или другого устройства.
Microsoft поставляет шинные драйверы для большинства распространенных шин, в том числе: PCI, Plug and Play ISA, SCSI и USB. Прочие шинные драйверы могут поставляться независимыми поставщиками — IHV или OEM. Шинный драйвер может быть реализован как пара драйвер/мини-драйвер. В таких парах драйверов один из драйверов связан со вторым, а второй представляет собой DLL.
Драйвер ACPI выполняет роль как шинного драйвера, так и функционального драйвера. ACPI позволяет системе узнавать об устройствах, которые не имеют стандартного метода энумерации (т. е. о наследуемых устройствах), или о вновь определенных устройствах ACPI, энумерация которых должна производиться ACPI (например, о встроенных контроллерах). ACPI устанавливает драйверы фильтра верхнего уровня для устройств, функциональные возможности которых выходят за пределы стандарта для их шины. Например, если шинный драйвер PCI устанавливает графический контроллер с элементами управления электропитанием, которые не поддерживаются шиной PCI, то устройство может поддерживать дополнительные функциональные возможности, если драйвер ACPI загрузит для него высокоуровневый драйвер фильтра.
Драйверы устройств WDM
Драйверы устройств WDM обычно представляют собой пару "драйвер/мини-драйвер —• драйвер фильтра". В дополнение к предоставлению операционного интерфейса с устройством функциональные драйверы играют важную роль в системе управления электропитанием, предоставляя информацию владельцу политики для устройства о возможностях управления электропитанием и выполняя действия, относящиеся к переходам от режима энергосбережения к режиму подачи электропитания в полном объеме.
Управление электропитанием (power management) представляет собой интегрированный подход к энергосбережению в масштабах всей системы (на уровне аппаратных средств и программного обеспечения). Это означает, что компьютерная система, в полном объеме поддерживающая управление электропитанием и энергосбережение, должна включать как аппаратную, так и программную поддержку для следующих функций.
Минимальные временные затраты на запуск и останов компьютера. Это означает, что система может находиться в "спящем" режиме с минимальным потреблением энергии. Из этого режима она может быстро возобновить работу (без необходимости полной перезагрузки).
Эффективное и экономное энергопотребление, увеличение срока службы аппаратных устройств. Устройства потребляют электроэнергию только в том случае, когда они выполняют полезную работу (запросы системы или пользователя). Устройства, которые в течение заданного временного интервала не используются, отключаются и впоследствии включаются по требованию.
Бесшумная работа.
Требования к аппаратным средствам и программному обеспечению по управлению электропитанием и энергосбережению определены промышленной инициативой OnNow. В Windows 2000, Windows ХР и Windows Server 2003 такая поддержка обеспечивается — как компьютер в целом, так и каждое отдельное устройство потребляют только минимально необходимые уровни электроэнергии (разумеется, при условии, что аппаратные средства удовлетворяют требованиям инициативы OnNow). Здесь следует отметить, что управление электропитанием и РnР тесно взаимозависимы.
Этот подход к управлению электропитанием и энергосбережению обеспечивает следующие преимущества.
Интеллектуальное поведение системы в отношении энергосбережения.
Повышенную надежность и снижение риска потери данных (как вследствие увеличения срока службы аппаратных средств, так и вследствие снижения количества перезагрузок).
Более высокий уровень взаимодействия устройств.
С помощью утилиты Power Options (Электропитание) можно управлять потреблением энергии устройствами компьютера. Следует сразу же отметить, что для использования этих функций необходимо иметь компьютер, удовлетворяющий спецификации ACPI.
Для управления электропитанием:
1. Щелкните по значку Power Options на панели управления.
2. На экране появится окно Power Options Properties, раскрытое на вкладке Power Schemes (Схемы управления питанием) (рис. 2.21).
3. Чтобы перевести компьютер в режим энергосбережения, выберите одну из схем управления питанием (power scheme), которые представляют собой наборы параметров, управляющих питанием устройств компьютера. Можно использовать одну из стандартных схем или создать собственную. Например, в зависимости от установленных на компьютере аппаратных средств можно проделать следующее:
задать условия автоматического отключения монитора и жестких дисков;
перевести компьютер в ждущий режим (standby), если с включенным компьютером никто долгое время не работает. В этом режиме монитор и жесткие диски отключаются, и компьютер потребляет меньшее количество энергии. Когда пользователь начинает работу, такой компьютер быстро выходит из режима, в котором он находился, и рабочий стол восстанавливается в точности в том состоянии, в котором он был оставлен. Эта возможность очень полезна для экономии ресурса батарей в портативных компьютерах;
перевести компьютер в "спящий" режим (hibernation; буквально — "бездействие, зимняя спячка"). Функция спящего режима отключает монитор и жесткий диск, сохраняет все содержимое памяти на жестком диске и выключает компьютер. После перезапуска содержимое рабочего стола восстанавливается в точности в том состоянии, в котором оно находилось при переводе компьютера в спящий режим. Вывод компьютера из спящего режима занимает несколько больше времени, нежели вывод из режима энергосбережения.
Как правило, чаще всего требуется отключать монитор и жесткий диск на короткий период времени с целью экономии электроэнергии, и для этого лучше всего подходит ждущий режим.
Если вы планируете отсутствовать в течение достаточно длительного времени, то рекомендуется перевести компьютер в спящий режим. Чтобы активизировать поддержку спящего режима:
1. Раскройте окно Power Options Properties и перейдите на вкладку Hibernate (Спящий режим) (рис. 2.22). Если вкладка недоступна, ваш компьютер не поддерживает эту опцию.
2. Установите флажок Enable hibernation (После приостановки перейти в спящий режим). Следует отметить, что поскольку при переходе в спящий режим все содержимое оперативной памяти записывается на жесткий диск, требуется объем свободного дискового пространства, соответствующий объему оперативной памяти, установленной на компьютере.
Если вы не пользуетесь спящим режимом, отключите его на вкладке Hibernate. Помните, что объем зарезервированного дискового пространства может быть довольно значительным, и это пространство будет совершенно напрасно исключено из активного использования.
После активизации поддержки спящего режима в списке What do you want the computer to do? (Что должен делать компьютер?) диалогового окна Shut Down Windows (Завершить работу Windows) появится новый пункт — Hibernate, позволяющий вручную перевести компьютер в спящий режим.
В заключение следует отметить, что, по сравнению с Windows 2000, Windows XP и Windows Server 2003 предлагают следующие усовершенствования в области управления подачей электропитания и энергосбережением.
Ускоренный выход из ждущего и спящего режимов.
Улучшенная поддержка управления электропитанием для портативных компьютеров, в том числе встроенная поддержка технологий управления производительностью процессора и управление состоянием монитора на жидких кристаллах при работе от батарей в зависимости от их заряда.
Улучшенная поддержка событий типа "Wake-on". Когда компьютер не используется, создается полная иллюзия того, что он отключен. Однако при наступлении событий типа телефонного звонка, принятого факсмодемом или запроса, поступившего к сетевой карте, компьютер "проснется" и будет реагировать на соответствующее событие.
Возможности управления подачей электропитания для отдельных устройств, поддерживающих эту функцию.
Уровень поддержки Plug and Play, обеспечиваемый устройством, зависит как от аппаратной поддержки Plug and Play, так и от поддержки, обеспечиваемой драйвером этого устройства. На схематическом уровне эта концепция иллюстрируется в табл. 2.1.
Таблица 2.1. Уровни поддержки Plug and Play для устройств и драйверов