Архитектура: эмуляция USB-устройства (UDE)

В разделе описывается архитектура эмуляции USB-устройства (UDE), которая эмулирует поведение хост-контроллера USB и подключенного устройства. С помощью UDE аппаратное обеспечение, отличное от USB, может взаимодействовать с верхними уровнями с помощью usb-драйверов на стороне узла в Windows.

Драйверы UDE

эмуляция usb-устройства (ude).

На предыдущем рисунке:

  • Драйвер концентратора USB (Usbhub3.sys) — это драйвер KMDF. Драйвер концентратора отвечает за управление USB-концентраторами и их портами, перечисление и создание объектов физических устройств (PDO) USB-устройств и других концентраторов, которые могут быть подключены к подчиненным портам.
  • Расширение ХОСТ-контроллера USB (Ucx01000.sys) — это уровень абстракции для драйвера концентратора выше в стеке и предоставляет универсальный механизм для очередей запросов к базовому драйверу хост-контроллера.
  • Расширение класса UDE (UdeCx) вызывает драйвер клиента UDE с помощью функций обратного вызова, реализованных клиентом. Расширение класса предоставляет подпрограммы для драйвера клиента для создания объектов UDE и управления ими.
  • Драйвер клиента UDE управляет оборудованием, взаимодействуя с API WDF и UDE. Верхний край взаимодействует с WDF и расширением класса UDE с помощью конструкций USB. Его нижняя граница взаимодействует с оборудованием с помощью интерфейса оборудования.
  • Пользовательское оборудование. Например, оборудование PCI можно эмулировать для работы в качестве USB-устройства.

Узлы устройств UDE

Ниже приведены стеки устройств, загруженные для драйвера клиента UDE:

Узлы устройств эмуляции usb-устройства (ude).