Глава 3. Поддержка оборудования

Глава 3. Поддержка оборудования

1. Поддержка Plug and Play

 

Глава 3

Поддержка оборудования

По сравнению с предыдущими версиями Windows NT операционная система Windows 2000 предоставляет повышенную надежность и снижает возможное время простоя. Усовершенствования стали возможными за счет расширения диапазона поддерживаемых аппаратных средств и обеспечения полноценной поддержки технологии Plug and Play. Реализация всех этих новых функций является частью инициативы нулевого администрирования Microsoft (ZAW). Например, в отличие от Windows NT 4.0, Windows 2000 позволяют пользователям вносить разнообразные изменения в конфигурацию компьютера без необходимости его перезагрузки. Снижение частоты необходимых перезагрузок — одно из наиболее значимых преимуществ Windows 2000, т. к. это упрощает обслуживание и повышает доступность и качество предоставляемого сервиса при одновременном снижении затрат.

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

 

Поддержка Plug and Play

В Windows 2000 теперь в полном объеме реализована технология Plug and Play — набор стандартов аппаратной и программной поддержки, позволяющей компьютерной системе распознавать и адаптировать изменения аппаратной конфигурации без вмешательства пользователя и без необходимости перезагрузки компьютера. Новые средства операционной системы, выполняющие задачи по управлению аппаратными средствами, — Мастер оборудования (Hardware Wizard) и Диспетчер устройств (Device Manager) — существенно упрощают установку новых устройств, таких как устройства CD-ROM, сетевые адаптеры, жесткие диски и т. д.

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

Изменение сетевой конфигурации, например, модификация IP-адресов, добавление или удаление сетевых протоколов.
Добавление или удаление периферийных устройств, включая аудио- и видеоадаптеры и их драйверы.
Добавление, удаление и переконфигурирование многих периферийных устройств, включая жесткие диски, сетевые адаптеры и устройства CD-ROM.

 

2. Установка нового устройства

 

Установка нового устройства

Что происходит с системой при установке в ней нового устройства? Если у вас есть хотя бы небольшой предварительный опыт работы с более ранними версиями Windows NT, вам известно, что практически вся информация об аппаратных средствах компьютера и установленном на нем программном обеспечении хранится в системном реестре.

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

Рис. 3.1. Окно Поиск нового оборудования (Found New Hardware)


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

1. На панели управления выберите значок Установка оборудования (Add/Remove Hardware). Мастер оборудования можно вызвать и другим способом: раскройте панель управления, выполните двойной щелчок на значке Система (System), в раскрывшемся окне Свойства системы (System Properties) перейдите на вкладку Оборудование (Hardware) и нажмите кнопку Мастер оборудования (Hardware Wizard). При использовании любого из описанных методов на экране появится окно Мастер установки оборудования (Add/Remove Hardware Wizard). Нажмите в этом окне кнопку Далее (Next).
2. В следующем окне пользователю предлагается выбрать задачу по работе с аппаратными средствами. Помимо установки новых устройств, мастер оборудования позволяет решать следующие задачи:
  • Просмотр свойств аппаратных устройств и индивидуальная настройка их параметров, а также устранение неполадок в их работе
  • Динамическое отключение аппаратных устройств и удаление устройств и их драйверов из системы

Выберите опцию Добавить/провести диагностику устройства (Add/Trouble-shoot a device) (рис. 3.2) и нажмите кнопку Далее.

Рис. 3.2. Добавление нового оборудования с помощью мастера оборудования Windows 2000

3. В отличие от предыдущих версий Winodws NT, Windows 2000 обеспечивает полноценную поддержку Plug and Play. Как правило, новое устройство Plug and Play будет обнаружено и автоматически сконфигурировано мастером оборудования, поэтому обычно задачи пользователя по конфигурированию аппаратных средств компьютера на этом заканчиваются. Только в наихудшем варианте, когда новое устройство не является устройством Plug and Play, появляется окно, показанное на рис. 3.3. В этом окне имеется список Устройства (Devices), в котором перечислены все устройства, на текущий момент установленные в системе. Если в работе одного из этих устройств имеются неполадки, выделите нужное устройство в списке и нажмите кнопку Далее. Для установки нового устройства выберите в списке Устройства опцию Добавление нового устройства (Add a new device) и нажмите кнопку Далее.
Рис. 3.3. Установка устройства, не поддерживающего Plug and Play, с помощью мастера оборудования

4. На экране появится окно, показанное на рис. 3.4. В этом окне рекомендуется согласиться с предложенной по умолчанию опцией Да, провести поиск нового оборудования (Yes, search for new hardware), при которой операционная система попытается обнаружить новое устройство. Нажмите кнопку Далее, и система начнет процедуру обнаружения новых аппаратных средств. Обычно в процессе поиска система обнаруживает все установленные устройства. Если новое устройство не было обнаружено, проверьте, корректно ли оно установлено. Нужно отметить, что даже в этом случае вариант ручной установки устройств с помощью опции Нет, выбрать оборудование из списка (No, I want to select the hardware from a list) предпочтительнее, чем редактирование реестра вручную.
5. Как уже говорилось, мастер оборудования обнаружит все поддерживаемые и правильно установленные устройства, даже если они не поддерживают стандарт Plug and Play. Если на данном этапе возникли затруднения, то в первую очередь убедитесь в том, что устройство включено в список совместимых аппаратных средств (HCL) операционной системы Windows 2000, а затем проверьте, правильно ли оно подключено к компьютеру и не используется ли другой программой. После того как на экране появится список обнаруженных устройств, завершите процедуру установки, следуя инструкциям мастера.
Рис. 3.4. Windows 2000 предлагает режим установки устройства, не поддерживающего Plug and Play


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

Для многих пользователей представляет значительный интерес изменение настройки выделяемых устройству ресурсов. Вы уже знаете, что диспетчер конфигурации управляет этими параметрами автоматически при инсталляции нового устройства и загрузке Windows. Однако иногда требуется ручная настройка, например, при аппаратном конфликте, который не может быть разрешен диспетчером конфигурации и реестром. Предположим, что конфликтуют настройки IRQ и DMA для двух устройств. В этом случае для редактирования параметров в реестре вы также можете использовать диспетчер устройств.

 

3.1.gif

Изображение: 

3.2.gif

Изображение: 

3.3.gif

Изображение: 

3.4.gif

Изображение: 

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

 

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

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

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

 

4. Эволюция технологии Plug and Play

 

Эволюция технологии Plug and Play

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

Технология Plug and Play требует комбинированного взаимодействия uius персонального компьютера, его аппаратных компонентов, драйверов устройств и операционной системы. Основные требования к реализации системной платы и поддержке BIOS, необходимые для обеспечения поддержки Plug and Play в Windows 2000, определены в спецификации ACPI. Windows 2000 и Windows 98 используют эту спецификацию как основу для построения их архитектуры 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 — дальнейшее развитие промышленной инициативы, направленной на упрощение работы с персональными компьютерами для конечных пользователей. Кроме того, Plug and Play в Windows 2000 решает следующие задачи:

Расширение существующей в Windows NT инфраструктуры ввода/вывода так, чтобы она поддерживала Plug and Play и управление электропитанием при одновременной поддержке промышленных стандартов на аппаратные средства Plug and Play.
Разработка общих интерфейсов драйверов, которые поддерживают Plug and Play и управление питанием для множества классов устройств под управлением Windows 2000 и Windows 98.
Оптимизация поддержки Rug and Play для самых разнотипных компьютеров — портативных, настольных рабочих станций и серверов, имеющих системные платы ACPI. В дополнение к сказанному, поддержка драйверов устройств Plug and Play для различных классов устройств обеспечивается моделью драйвера Microsoft Win32 (Microsoft Win32® Driver Model, WDM), которая поддерживает также управление подачей электропитания и другие новые возможности, которые могут конфигурироваться и управляться операционной системой.

 

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

 

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

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

Таблица 3.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 (полная поддержка Plug and Play). Чтобы обеспечить оптимальную поддержку Plug and Play, аппаратная реализация должна соответствовать инициативе OnNow, включая спецификацию ACPI. Поддержка Plug and Play в Windows 2000 направлена только на системы ACPI.
Устройство 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). Хотя такая система не может автоматически и динамически распознавать аппаратные средства и загружать соответствующие драйверы, она обеспечит возможность .управления выделением ресурсов Plug and Play, а также предоставит интерфейс для взаимодействия драйвера с системой Plug and Play и позволит взаимодействовать с системой управления электропитанием и регистрировать события, связанные с уведомлением устройств. Если такое устройство имеет драйвер Plug and Play, то оно отображается в диспетчере устройств, и для него будут доступны страницы конфигурирования свойств.
Ни устройство, ни драйвер не поддерживают Plug and Play (поддержка Plug and Play отсутствует). Драйверы, разработанные до включения поддержки Plug and Play в операционную систему, будут функционировать точно так же, как раньше (без обеспечения функций Plug and Play). Все новые драйверы должны поддерживать Plug and Play.

 

6. Plug and Play и Windows 2000

 

Plug and Play и Windows 2000

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

Драйверы шины теперь отделены от уровня аппаратных абстракций (HAL). Драйверы шины управляют шиной ввода/вывода, включая функциональные возможности слотов, независимые от конкретных устройств. В этой новой архитектурной модели драйверы шины были отделены от HAL, чтобы обеспечить координацию с изменениями и расширениями, внесенными в компоненты режима ядра, например, в модуль Executive, драйверы устройств и HAL. Как правило, драйверы шины поставляются Microsoft.
Для обеспечения инсталляции и конфигурирования устройств теперь доступны новые методы и возможности. Новая архитектура включает изменения и расширения для существующих компонентов режима пользователя, включая спулер (Spooler), инсталляторы классов (class installers), приложения панели управления, а также программу Setup. Также добавлены новые компоненты режимов пользователя и ядра, обладающие возможностями Plug and Play.
Разработаны новые интерфейсы прикладного программирования Plug and Play для чтения и записи информации реестра. Для обеспечения этой цели были внесены изменения в структуру реестра. Теперь эта структура поддерживает Plug and Play и позволяет обеспечить дальнейшее совершенствование и расширение структуры реестра будущих версий при обеспечении обратной совместимости.

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

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

Автоматическое и динамическое распознавание установленных аппаратных средств Е число обеспечиваемых функций входят начальная инсталляция системы, распознавание аппаратных изменений Plug and Play между перезагрузками системы и реакция на аппаратные события времени исполнения, включая отключения и подключения док-станций и установку/удаление устройств.
Назначение и переназначение аппаратных ресурсов. Драйверы устройств Plug and Play не назначают собственных ресурсов. Вместо этого необходимые для устройства ресурсы идентифицируются при перечислении (enumeration) устройств операционной системой. Модуль Plug and Play Manager запрашивает эти требования при выделении ресурсов каждому устройству. На основании запросов на назначение ресурсов, подаваемых каждым устройством, Plug and Play Manager назначает устройствам соответствующие ресурсы, включая порты ввода/вывода, прерывания (IRQ), каналы DMA и адреса памяти. При необходимости Plug and Play Manager переконфигурирует назначение ресурсов. Такая необходимость возникает, например, при добавлении в систему нового устройства, которое запрашивает ресурсы, уже назначенные другому устройству.
Загрузка соответствующих драйверов. Plug and Play Manager определяет и загружает драйверы, необходимые для поддержки конкретного устройства.
Интерфейс для взаимодействия драйверов с системой Plug and Play. Этот интерфейс состоит, в основном, из процедур ввода/вывода, пакетов запроса ввода/вывода для системы Plug and Play (I/O Request Packets, IRP), необходимых точек входа драйверов и информации реестра.
Взаимодействие с системой управления электропитанием. Ключевой особенностью системы Plug and Play в Windows 2000 является динамическая обработка событий. Добавление или удаление устройства является примером такого динамического события. Другой пример — способность динамического перевода устройства в режим энергосбережения и обратно. Система Plug and Play и система управления электропитанием используют функции WDM и применяют схожие методы реагирования на динамические события.
Регистрация событий уведомления устройств. Plug and Play позволяет коду режима пользователя регистрировать и получать уведомления об определенных событиях Plug and Play. Процедура RegisterDeviceNotification позволяет осуществляющему вызов коду фильтровать класс или устройство, от которого требуется получать уведомления. Фильтр может быть специфическим, например, дескриптор файловой системы, или общим, например, класс устройств. Методы уведомлений, наследуемые от предыдущих версий Windows NT, также поддерживаются и работают как прежде.

 

7. Архитектура Plug and Play в Windows 2000

 

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

Ядро Windows 2000 обеспечивает поддержку Plug and Play в процессе загрузки и предоставляет интерфейсы для взаимодействия с такими компонентами операционной системы, как уровень аппаратных абстракций (HAL), исполняющая подсистема (модуль Executive) и драйверы устройств (рис, 3,5). Функции режима пользователя взаимодействуют с функциями режима ядра, обеспечивая возможности динамической конфигурации и интерфейса с остальными компонентами, которые должны поддерживать Plug and Play, например, с программой Setup и приложениями панели управления. Следующие разделы подробно описывают модули Plug and Play.

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

 

3.5.gif

Изображение: 

8. Plug and Play Manager в режиме ядра

 

Plug and Play Manager в режиме ядра

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

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

 

9. Power Manager и Policy Manager

 

Power Manager и Policy Manager

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

 

10. I/O Manager

 

I/O Manager

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

 

11. Интерфейс WDM для Plug and Play

 

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

Система ввода/вывода предоставляет уровневую архитектуру драйверов. В данном разделе обсуждаются типы драйверов WDM, уровни драйверов и объекты устройств. Более подробную информацию по данному вопросу можно найти в файле справочной системы Introduction to Plug and Play, входящем в состав Windows 98 DDK, а также в файлах документации к Windows 2000 DDK.

 

12. Типы драйверов

 

Типы драйверов

С точки зрения системы Plug and Play существуют следующие три типа драйверов:

Шинный драйвер (драйвер шины) обслуживает контроллер шины, адаптер, мост или любое устройство, которое имеет дочерние устройства. Шинные драйверы относятся к обязательным драйверам и обычно поставляются Microsoft. Для каждого типа шины в системе имеется собственный шинный драйвер.
Функциональный драйвер — это основной драйвер устройства, который предоставляет интерфейс с этим устррйством. Этот драйвер является обязательным, за исключением случаев, когда ввод/вывод устройства осуществляется шинным драйвером или любыми драйверами фильтра. Функциональный драйвер устройства обычно реализуется в виде пары драйвер/мини-драйвер. В таких парах драйвер класса (обычно разрабатываемый Microsoft) обеспечивает функциональные возможности, необходимые всем устройствам этого типа, а мини-драйвер (обычно разрабатываемый фирмой-поставщиком конкретного устройства) обеспечивает специфические функциональные особенности устройства. Plug and Play Manager загружает по одному функциональному драйверу для каждого устройства.
Драйвер фильтра сортирует запросы ввода/вывода для шины, устройства или класса устройств. Драйверы фильтра являются необязательными и могут существовать в любом количестве, располагаясь на различных уровнях — как выше, так и ниже функционального драйвера и шинного драйвера. Обычно такие драйверы поставляются фирмами OEM или независимыми поставщиками аппаратных средств (1HV). В большинстве случаев драйверы фильтров нижнего уровня модифицируют поведение аппаратных средств. Например, низкоуровневый драйвер фильтра класса для мыши может обеспечивать ускорение ее работы, выполняя нелинейное преобразование данных о перемещении мыши. Высокоуровневые драйверы фильтров обычно предоставляют дополнительные функции для устройства. Например, высокоуровневый драйвер фильтра у для клавиатуры может вводить дополнительные проверки по безопасности.

 

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

 

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

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

 

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

 

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

Драйвер создает объект устройства (device object) для каждого устройства, которым он управляет. Объект устройства представляет устройство для драйвера. С точки зрения Plug and Play существуют три типа объектов устройств:

Физические объекты устройств (Physical Device Objects, PDO),
Функциональные объекты устройств (Functional Device Objects, FDO)
Объекты фильтров устройств

PDO представляют устройство на шине; каждый интерфейс прикладного программирования Plug and Play API, который ссылается на устройство, ссылается на PDO. FDO представляют функциональные возможности устройства функциональному драйверу. Объекты фильтров представляют драйвер фильтра. Эти три типа объектов устройств имеют тип DEVICE_OBJECT, но используются по-разному и могут иметь дополнительные расширения.

 

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

 

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

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

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

 

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

 

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

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

Динамическое извещение операционной системы о событиях на шине
Ответы на IRP от систем Plug and Play и управления электропитанием
Мультиплексирование доступа к шине (для некоторых шин)
Общее администрирование устройств на шине

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

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

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

 

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

 

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

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

 

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

 

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

API Windows 2000 режима пользователя для управления устройствами и их конфигурирования в среде 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.

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

 

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

 

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

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

Рис. 3.6. Дерево устройств, отображаемых диспетчером устройств (Device Manager), поддерживается модулем Plug and Play Manager


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

 

3.6.gif

Изображение: 

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

 

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

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

профили для док-станций (что актуально для пользователей портативных компьютеров), а также профили для съемных устройств. Аппаратный профиль, или профиль оборудования (hardware profile), представляет собой набор инструкций, с помощью которого можно указать операционной системе Windows 2000, драйверы каких устройств должны загружаться при запуске компьютера. Чтобы создать новый аппаратный профиль в Windows 2000, откройте окно свойств системы, перейдите на вкладку Оборудование и нажмите кнопку Профили оборудования (Hardware Profiles). Раскроется диалоговое окно Профили оборудования (рис. 3.7).

Рис. 3.7. Аппаратные профили


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

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

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

 

3.7.gif

Изображение: 

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

 

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

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

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

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

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

Интеллектуальное поведение системы в отношении энергосбережения
Повышенную надежность и снижение риска потери данных (как вследствие увеличения срока службы аппаратных средств, так и вследствие снижения количества перезагрузок)
Более высокий уровень взаимодействия устройств

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

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

1. Выберите команду Пуск | Настройка | Панель управления | Электропитание (Start | Settings | Control Panel | Power Options).
2. На экране появится окно Свойства: Параметры электропитания (Power Options Properties), раскрытое на вкладке Схемы управления питанием (Power Schemes) (рис. 3.8).

Рис. 3.8. Вкладка Схемы управления питанием (Power Schemes) окна Свойства: Параметры электропитания (Power Options Properties)


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

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

1. Раскройте окно Свойства: Параметры электропитания и перейдите на вкладку Спящий режим (Hibernate) (рис. 3.9). Если вкладка недоступна, ваш компьютер не поддерживает эту опцию.
2. Установите флажок После приостановки перейти в спящий режим (Enable hibernate support). Следует отметить, что поскольку при переходе в спящий режим все содержимое оперативной памяти записывается на жесткий диск, требуется объем свободного дискового пространства, соответствующий объему оперативной памяти, установленной на компьютере.

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

Внимание

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



Рис. 3.9. Вкладка Спящий режим (Hibernate)



Рис. 3.10. Переход в спящий режим (Hibernate) — новый элемент в списке диалогового окна Завершение работы Windows (Shut Down Windows)



Предупреждение

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

 

3.10.gif

Изображение: 

3.8a.gif

Изображение: 

3.8b.gif

Изображение: 

3.9.gif

Изображение: