Водители автобусов

Водитель автобуса обслуживает контроллер шины, адаптер или мост (см. рисунок Возможные уровни драйвера). Корпорация Майкрософт предоставляет водителей для наиболее распространенных автобусов, таких как PCI, PnpISA, SCSI и USB. Другие водители автобусов могут быть предоставлены IHV или изготовителями оборудования. Водители автобусов являются обязательными водителями; для каждого типа автобуса на компьютере есть по одному водителю. Водитель автобуса может обслуживать несколько автобусов, если на машине есть несколько автобусов одного типа.

Основные обязанности водителя автобуса:

  • Перечисление устройств в шине.

  • Реагирование на Plug and Play IRP и irP управления питанием.

  • Мультиплексный доступ к автобусу (для некоторых автобусов).

  • Общее администрирование устройств в шине.

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

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

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

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

Поскольку драйвер шины выступает в качестве драйвера-функции для контроллера, адаптера или моста, он также управляет политикой питания устройства для этих компонентов.

Драйвер шины может быть реализован как пара "драйвер/мини-драйвер", так как пара портов SCSI/драйвера минипорта управляет адаптером шины узла SCSI (HBA). В таких парах драйверов мини-диск связан со вторым драйвером, который является библиотекой DLL.