Современная система PnP состоит из следующих компонентов:
1. BIOS стандарта PnP.
Уведомления – сообщение пользователю об обнаружении нового устройства
Конфигурирование – изоляция устройства до присвоения ID.
Поддержка данных- информация завершения POST на специальной RAM.
2. Система драйверов-энумераторов шин.
Контроллер шины получает информацию из RAM об устройстве или из реестра для устройств «не PnP» и присваивает уникальный номер.
3. Дерево аппаратных средств и реестр.
Ветвь в реестре OS под названием «HKEY_LOKAL_MACHINE\HARDWARE», которая состоит из типов аппаратных устройств.
4. Windows 95 и выше (или другая OS PnP).
Фирма Intel предлагает спецификацию PnP всем разработчикам OS.
5. Драйверы устройств PnP.
Спецификация PnP предполагает не только наличие доступной для BIOS информации об устройстве в RAM этого устройства, но и динамически подгружаемый драйвер этого устройства. Существует интерфейс прикладного программирования (API) для создания таких драйверов для новых устройств стандарта PnP. Загрузка таких драйверов должна регистрироваться диспетчером конфигурации и отвечать за выделенные ресурсы (сдавать их при выгрузке).
|
|
6. Арбитр ресурсов (служба OS PnP).
Основные функции:
- Обновление реестра, помещая туда новейшую информацию о выделении ресурсов на стадии загрузки,
- Переназначение ресурсов «на лету» любым устройства PnP, конфигурация которых изменилась.
Арбитр ресурсов работает в контакте с диспетчером конфигурации, который в любой момент может запросить у арбитра ресурсов освобождения ресурса с последующим предоставлением его другому устройству.
7. Диспетчер конфигурации (служба OS PnP).
Отвечает за процесс конфигурирования всей системы в целом.
Диспетчер конфигурации непосредственно взаимодействует, как с BIOS, так и с реестром, координируя процесс конфигурирования в ходе событий:
- когда BIOS отправляет ему список устройств «не PnP» на системной плате при загрузке, которые имеют жестко закрепленные за ними ресурсы,
- когда он получает извещение об изменении конфигурации от BIOS или от энумераторов шин, которую он использует для идентификации всех устройств на конкретной шине, а также требования каждого устройства о выделении ресурсов. Эта информация заносится в реестр.
8. Пользовательский интерфейс (API).
Основное требование для пользовательских приложений, запускаемых в OS PnP – они не должны иметь явных обращений к ресурсам устройств (портам ввода/вывода, прерываниям или дискам) необходимо заменять эти обращения формальными обращениями к соответствующим устройствам.