Бөлісу құралы:


Уровни драйвера WDM: пример

В этом разделе описывается возможный набор драйверов WDM для USB-оборудования для иллюстрации уровней драйверов WDM.

На следующем рисунке показан пример конфигурации оборудования PnP для USB-джойстика.

схема, иллюстрирующая пример оборудования с поддержкой технологии Plug and Play для USB-джойстика.

На этом изображении USB-джойстик подключается к порту на концентраторе USB. USB-концентратор в этом примере находится на плате USB-хост-контроллера и подключен к единственному порту на этой плате. Контроллер usb-узла подключается к шине PCI. С точки зрения PnP, USB-концентратор, контроллер USB-хоста и шина PCI являются устройствами шины, потому что они предоставляют порты. Джойстик не является устройством шины.

На следующем рисунке показан пример набора драйверов, которые могут быть загружены для оборудования USB-джойстика на предыдущем рисунке.

диаграмма, иллюстрирующая слои драйверов plug and play для USB-джойстика.

Начиная снизу предыдущего рисунка, драйверы в примере стека включают:

  • Драйвер PCI, который управляет шиной PCI. Это водитель автобуса PnP. Драйвер шины PCI предоставляется системой корпорацией Майкрософт.

  • Драйвер шины для контроллера USB-хоста реализуется как пара драйверов: драйвер класса и драйвер миникласса. Драйверы класса и миникласса хост-контроллера USB предоставляются системой от корпорации Майкрософт.

  • Драйвер шины USB-концентратора, который управляет USB-концентратором. Драйвер USB-концентратора предоставляется системой корпорацией Майкрософт.

  • Три драйвера для устройства джойстика; одним из них является пара классов и миниклассов.

    Основной драйвер для устройства джойстика — это пара драйверов: драйвер класса HID и миниклассовый драйвер HID USB. (HID представляет "Устройство пользовательского интерфейса".) Драйвер миникласса HID USB поддерживает семантику USB-устройств HID, используя библиотеку DLL драйвера класса HID для общей поддержки HID.

    Драйвер функции может быть специфичным для конкретного устройства или, как и в случае с HID, обслуживать группу устройств. В этом примере пара драйверов: драйвер класса HID и драйвер миникласса HID USB, обслуживает любое устройство, совместимое с HID, в системе на USB-шине. Пара драйверов класса HID/HID 1394 miniclass будет обслуживать любое устройство, совместимое с HID, на шине 1394.

    Драйвер функции можно написать поставщиком устройств или корпорацией Майкрософт. В этом примере драйвер функции (пара драйверов класса HID/мини-класса HID USB) написан корпорацией Майкрософт.

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

    Фильтр верхнего уровня написан кем-то, кто должен фильтровать джойстик ввода-вывода и драйвер фильтра нижнего уровня написан поставщиком джойстика.

  • Клиенты HID в режиме ядра и пользовательском режиме и приложение не являются драйверами, но отображаются для полноты.