|
Шинные
драйверы 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 загрузит для него высокоуровневый
драйвер фильтра.
|