Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует три типа драйверов WDM: драйверы шины, функциональные драйверы и драйверы фильтров.
Водитель шины управляет отдельным устройством шины ввода-вывода и предоставляет функциональные возможности для каждого слота, независимые от устройств. Водители шины также обнаруживают и сообщают дочерние устройства, подключенные к шине.
Драйвер функции управляет отдельным устройством.
Драйвер фильтра фильтрует запросы ввода-вывода для устройства, класса устройств или шины.
В этом контексте шина — это любое устройство, к которому подключены другие физические, логические или виртуальные устройства. Традиционные шины, такие как SCSI и PCI, а также параллельные порты, последовательные порты и порты i8042.
Важно, чтобы разработчики драйверов понимали различные типы драйверов WDM и знали, какой драйвер они пишут. Например, обрабатывает ли драйвер каждый запрос Plug and Play IRP и как обрабатывать такие IRP, зависит от того, какой тип драйвера разрабатывается (драйвер шины, функциональный драйвер или драйвер фильтра).
На следующем рисунке показана связь между драйвером шины, функциональным драйвером и фильтрующими драйверами для устройства.
Каждое устройство обычно имеет драйвер для родительской шины ввода-вывода, функциональный драйвер для устройства и ноль или более фильтрующих драйверов для устройства. Дизайн драйвера, требующий большого количества фильтрующих драйверов, не обеспечивает оптимальную производительность.
Драйвера на предыдущем рисунке делятся на следующие типы:
Водитель шины обслуживает контроллер шины, адаптер или мост. На устройстве требуются драйверы шины; для каждого типа шины имеется один драйвер. Корпорация Майкрософт предоставляет водителям автобусов для наиболее распространенных автобусов. IHVs и OEM могут предоставлять других водителей автобусов.
Драйвер фильтра шины обычно повышает функциональность шины и предоставляется корпорацией Майкрософт или производителем оригинального оборудования. Для шины может существовать любое количество драйверов фильтров.
Драйверы фильтров нижнего уровня обычно изменяют поведение оборудования устройства. Они являются необязательными и обычно предоставляются независимыми производителями оборудования (IHV). Для устройства может быть любое количество драйверов фильтров нижнего уровня.
Драйвер функции — это основной драйвер для устройства. Драйвер функции обычно записывается поставщиком устройств и требуется (если устройство не используется в необработанном режиме).
Драйверы фильтров верхнего уровня обычно предоставляют дополнительные функции для устройства. Они являются необязательными и обычно предоставляются IHV.
В следующих разделах подробно описываются три общих типа драйверов WDM — драйверы шины, драйверы функций, драйверы фильтров. Также включен пример слоя драйвера WDM, использующего примеры USB-драйверов.