Обзор разработки драйверов Windows для контроллеров функций USB

В этой статье описывается поддержка в операционной системе Windows для разработки драйвера контроллера функций универсальной последовательной шины (USB), который взаимодействует с расширением контроллера функций USB (UFX) корпорации Майкрософт.

Средства разработки и двоичные файлы, предоставляемые Корпорацией Майкрософт

Комплект драйверов Windows (WDK) содержит ресурсы, необходимые для разработки драйверов, такие как заголовки, библиотеки, инструменты и примеры.

Скачивание комплектов и средств для Windows

Windows предоставляет драйверы контроллера функций USB для папки "Входящие", такие как UfxSynopsys.sys для оборудования контроллера Synopsys IP. Как правило, они требуют изменения и проверки на уровне платформы, которые обычно выполняются партнерами по оборудованию или изготовителями оборудования при создании платформы. Этот процесс может включать интеграцию с ACPI для уведомления системных драйверов о событиях подключения и отсоединения USB, а также выполнение дополнительной проверки с помощью предоставленных Корпорацией Майкрософт тестов HLK. Чтобы написать собственный драйвер контроллера, вам потребуется:

  • UFX (Ufx01000.sys), загруженный в качестве FDO. Этот драйвер входит в состав Windows.
  • Ссылка на библиотеку заглушки (Ufx01000.lib). Библиотека заглушки находится в WDK. Библиотека преобразует вызовы, выполненные драйвером контроллера функций, и передает их в UFX.
  • Включите Ufxclient.h, предоставленный в WDK.

Чтобы отправлять запросы из пользовательского режима, вам потребуется:

  • GenericUSBFn.sys загружен в качестве драйвера класса функции USB. Этот драйвер входит в состав Windows.
  • Включите Genericusbfnioctl.h, предоставленный в WDK.

Чтобы отправить запросы из драйвера класса USB, вам потребуется:

  • UFX (Ufx01000.sys), загруженный в качестве FDO. Этот драйвер входит в состав Windows.
  • Включите usbfnioctl.h, предоставленный в WDK.

Чтобы написать драйвер фильтра, который обрабатывает зарядку через собственные зарядные устройства, вам потребуется:

  • В UFX UfxChipidea.sys или Ufxsynopsys.sys загружены в качестве драйвера клиента.
  • Включите Ufxproprietarycharger.h, предоставленный в WDK.

Архитектура UFX

Ознакомьтесь со стеком драйверов USB, предоставляемым корпорацией Майкрософт:

Драйверы на стороне USB-устройства в Windows

Знакомство с объектами и дескрипторами UFX

UFX расширяет функциональные возможности объектов WDF для определения собственных объектов UCX, относящихся к USB. Дополнительные сведения об объектах WDF см. в статье Общие сведения об объектах платформы.

Для запросов очередей UFX использует объекты, относящиеся к USB. Дополнительные сведения см. в статье Объекты и дескрипторы UFX, используемые драйвером клиента функции USB.

Написание драйвера клиента контроллера функций

Узнайте о поведении UFX, о том, как он взаимодействует с драйвером клиента, а также о функциях, которые должен реализовать драйвер клиента.

Задачи для драйвера клиента контроллера функций

Разделы справочника по программированию

Справочник по программированию драйвера функций USB для UFX

Справочник по программированию драйвера клиента контроллера функций USB

Драйвер фильтра USB для поддержки собственных зарядных устройств