Поделиться через


Обзор разработки клиентских драйверов Windows для USB-устройств

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

USB-устройства — это периферийные устройства, такие как мышь и клавиатуры, которые подключены к компьютеру через один порт. Драйвер USB-клиента — это программное обеспечение, установленное на компьютере, которое взаимодействует с оборудованием для выполнения работы устройства. Если устройство принадлежит к классу устройств, поддерживаемому корпорацией Майкрософт, Windows загружает один из предоставленных корпорацией Майкрософт USB-драйверов (встроенных драйверов класса) для устройства. В противном случае пользовательский драйвер клиента должен быть предоставлен производителем оборудования или сторонним поставщиком. Пользователь устанавливает драйвер клиента для устройства при первом обнаружении устройства Windows. После успешной установки Windows загружает драйвер клиента при каждом подключении устройства и выгружает драйвер, когда устройство отсоединяется от главного компьютера.

Вы можете разработать пользовательский драйвер клиента для USB-устройства с помощью платформ драйверов Windows (WDF) или модели драйвера Windows (WDM). Вместо того чтобы взаимодействовать с оборудованием напрямую, большинство клиентских драйверов отправляют свои запросы в предоставленный Корпорацией Майкрософт стек USB-драйверов, который выполняет вызовы функций уровня абстракции оборудования (HAL) для отправки запроса драйвера клиента на оборудование. В разделах этого раздела описываются типичные запросы, которые может отправлять клиентский драйвер, и интерфейсы драйвера устройства (DIS), которые драйвер клиента должен вызывать для создания этих запросов.

Аудитория разработчиков

Драйвер клиента для USB-устройства — это драйвер WDF или WDM, который взаимодействует с устройством через DDIs, предоставляемые стеком драйверов USB. Этот раздел предназначен для программистов на C/C++, знакомых с WDM. Прежде чем использовать этот раздел, необходимо ознакомиться с базовой разработкой драйверов. Дополнительные сведения см. в статье начало работы с драйверами Windows. Для драйверов WDF драйвер клиента может использовать интерфейсы KMDF или среда выполнения платформы драйвера режима пользователя (UMDF), предназначенные специально для работы с целевыми USB-устройствами. Дополнительные сведения об интерфейсах, относящихся к USB, см. в разделах Справочник по USB WDF и Целевые интерфейсы USB-ввода-вывода UMDF.

Средства разработки

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

Справочник по программированию ЧЕРЕЗ USB

Содержит спецификации для запросов ввода-вывода, подпрограмм поддержки, структур и интерфейсов, используемых драйверами USB-клиента. Эти подпрограммы и связанные структуры данных определяются в заголовках WDK.

Примеры usb-драйверов

Используйте эти примеры, чтобы приступить к программированию драйвера USB-клиента.

Официальные спецификации USB можно скачать на веб-сайте библиотеки документов универсальной последовательной шины . Этот веб-сайт содержит ссылки на различные редакции спецификаций универсальной серийной шины.

Разделы документации

  • Начало работы с разработкой драйверов USB-клиента
    Знакомство с разработкой USB-драйверов. Содержит сведения о выборе наиболее подходящей модели для предоставления USB-драйвера для устройства. Создание, сборка и установка первых шаблонов ДРАЙВЕРОВ USB в пользовательском режиме и режиме ядра с помощью шаблонов USB, входящих в состав Microsoft Visual Studio.

  • Драйверы USB на стороне узла в Windows
    Общие сведения об архитектуре стека драйверов USB.

  • Сведения о блочных запросах USB (URB)
    Узнайте, как драйвер клиента создает структуру данных переменной длины, называемую блоком запросов USB (URB), для отправки запросов в стек драйверов USB.

  • Дескрипторы USB
    Узнайте, как драйвер клиента создает структуру данных переменной длины, называемую блоком запросов USB (URB), для отправки запросов в стек драйверов USB.

  • Выбор конфигурации USB в USB-драйверах
    Конфигурация устройства — это задачи, выполняемые драйвером клиента для выбора конфигурации USB и альтернативного интерфейса в каждом интерфейсе. В разделе показаны вызовы методов, необходимые для выбора конфигурации USB.

  • Отправка передачи данных по USB в драйверах USB-клиента
    Описывает USB-каналы, URI-файлы для запросов ввода-вывода и способ использования клиентским драйвером интерфейсов драйвера устройства (DDIs) для передачи данных на USB-устройство и с его помощью.

  • Реализация управления питанием в драйверах USB-клиента
    Используйте возможности управления питанием USB-устройств, соответствующих спецификации Универсальной последовательной шины (USB), имеют широкий и сложный набор функций управления питанием.