Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описаны основные понятия и задачи разработки драйверов узлов. Этот раздел применяется к вам, если вы пишете новый драйвер контроллера узла, который взаимодействует с драйвером расширения контроллера usb-узла Майкрософт (Ucx01000.sys).
Ниже представлена измененная версия схемы, показанная в драйверах на стороне хоста USB в Windows. Эта версия скрывает сведения уровня драйвера USB-клиента, которые не относятся к разработке драйверов контроллера узла.
На предыдущем изображении
- Драйвер USB-концентратора (Usbhub3.sys) — это драйвер KMDF. Драйвер концентратора отвечает за управление USB-концентраторами и их портами, перечислением и созданием объектов физического устройства (PDOS) USB-устройств и других концентраторов, которые могут быть подключены к их подчиненным портам.
- Расширение контроллера USB (Ucx01000.sys) — это слой абстракции для драйвера концентратора, расположенного выше в стеке, и предоставляет универсальный механизм для очередей запросов к драйверу хост-контроллера нижележащего уровня.
- Драйвер контроллера USB управляет оборудованием. Usbxhci.sys является одним из таких драйверов, предоставляемых корпорацией Майкрософт, который предназначен для оборудования usb-контроллера, соответствующего спецификации xHCI, в частности. Для независимых разработчиков оборудования может потребоваться написать собственный драйвер контроллера узла, а не использовать Usbxhci.sysпапки "Входящие". Например, для оборудования XHCI, которое не полностью соответствует спецификации и поэтому не может использовать Usbxhci.sys или для оборудования, отличного от XHCI, например USB через TCP-подключение.
Двунаправленное взаимодействие между UCX и драйвером контроллера узла происходит с помощью интерфейсов программирования расширения контроллера USB (UCX). Каждый драйвер статически связывается с точками входа в предоставленной Microsoft библиотеке заглушки (Ucx01000.lib) при компиляции драйвера.
Ниже приведены стеки устройств, загруженные для драйвера контроллера узла: