Plug and Play и Windows Server 2003
Чтобы включить поддержку Plug and Play в Windows 2000, Windows XP и Windows Server 2003, потребовалось объединить реализацию Plug and Play с базовым исходным кодом Windows NT. Результаты этой интеграции перечислены ниже.
- Драйверы шины теперь отделены от уровня аппаратных абстракций (HAL). Драйверы шины управляют шиной ввода/вывода, включая функциональные возможности слотов, независимые от конкретных устройств. В этой новой архитектурной модели драйверы шины были отделены от HAL (Hardware Abstraction Layer), чтобы обеспечить координацию с изменениями и расширениями, внесенными в компоненты режима ядра, например, в модуль Executive, драйверы устройств и HAL. Как правило, драйверы шины поставляются Microsoft.
- Для обеспечения инсталляции и конфигурирования устройств теперь доступны новые методы и возможности. Новая архитектура включает изменения и расширения для существующих компонентов режима пользователя, включая спулер (Spooler), инсталляторы классов (class installers), панель управления, а также программу Setup. Также добавлены новые компоненты режимов пользователя и ядра, обладающие возможностями Plug and Play.
- Разработаны новые интерфейсы прикладного программирования Plug and Play для чтения и записи информации реестра. Для обеспечения этой цели были внесены изменения в структуру реестра. Теперь эта структура поддерживает Plug and Play и позволяет обеспечить дальнейшее совершенствование и расширение структуры реестра будущих версий при обеспечении обратной совместимости.
Windows XP и Windows Server 2003 поддерживают наследуемые драйверы Windows NT (legacy Windows NT drivers), но эти драйверы не будут обладать функциональными возможностями Plug and Play и управления электропитанием. Фирмы-производители, которым требуется обеспечить полную поддержку функциональных возможностей Plug and Play для выпускаемых устройств и функционирование одних и тех же драйверов как в Windows 2000/XP и Windows Server 2003, так и в Windows 98/ME, должны разрабатывать новые драйверы, интегрирующие последние достижения технологии Plug and Play и управления электропитанием.
Windows XP и Windows Server 2003 обеспечивают следующую поддержку Plug and Play.
- Автоматическое и динамическое распознавание установленных аппаратных средств. В число обеспечиваемых функций входят начальная инсталляция системы, распознавание аппаратных изменений Plug and Play между перезагрузками системы и реакция на аппаратные события времени исполнения, включая отключения и подключения док-станций и установку/удаление устройств.
- Назначение и переназначение аппаратных ресурсов. Драйверы устройств Plug and Play не назначают собственных ресурсов. Вместо этого необходимые для устройства ресурсы идентифицируются при энумерации устройства операционной системой. Модуль 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/XP и Windows Server 2003 является динамическая обработка событий. Добавление или удаление устройства является примером такого динамического события. Другой пример – способность динамического перевода устройства в режим энергосбережения и обратно. Система Plug and Play и система управления электропитанием используют функции WDM и применяют схожие методы реагирования на динамические события.
- Регистрация событий уведомления устройств. Plug and Play позволяет коду режима пользователя регистрировать и получать уведомления об определенных событиях Plug and Play. Процедура RegisterDeviceNotification позволяет осуществляющему вызов коду фильтровать класс или устройство, от которого требуется получать уведомления. Фильтр может быть специфическим, например дескриптор файловой системы, или общим, например класс устройств. Методы уведомлений, наследуемые от предыдущих версий Windows NT, также поддерживаются и работают как прежде.