Обзор разработки клиентских драйверов Windows для USB-устройств
В этой статье описывается поддержка универсальной последовательной шины (USB) в операционной системе Windows, которая позволяет разрабатывать драйверы USB-устройств, взаимодействующие с Windows.
USB-устройства — это периферийные устройства, такие как устройства мыши и клавиатуры, подключенные к компьютеру через один порт. USB-клиент — это программное обеспечение, установленное на компьютере, который взаимодействует с оборудованием, чтобы сделать функцию устройства. Если устройство принадлежит к классу устройств, поддерживаемому корпорацией Майкрософт, Windows загружает один из usb-драйверов, предоставляемых Корпорацией Майкрософт (встроенные драйверы класса) для устройства. В противном случае пользовательский драйвер клиента должен предоставляться производителем оборудования или сторонним поставщиком. Пользователь устанавливает драйвер клиента для устройства при первом обнаружении устройства Windows. После успешной установки Windows загружает драйвер клиента при каждом присоединении устройства и выгрузит драйвер при отключении устройства от хост-компьютера.
Вы можете разработать пользовательский драйвер клиента для USB-устройства с помощью Windows Driver Framework ( WDF) или модели драйвера Windows (WDM). Вместо прямого взаимодействия с оборудованием большинство клиентских драйверов отправляют свои запросы в стек USB-драйверов, предоставляемый Корпорацией Майкрософт, что делает вызовы функций аппаратного уровня абстракции (HAL) для отправки запроса драйвера клиента на оборудование. В разделах этого раздела описываются типичные запросы, которые драйвер клиента может отправлять и интерфейсы драйверов устройств (DDIS), которые драйвер клиента должен вызывать для создания этих запросов.
Аудитория разработчика
Драйвер клиента для USB-устройства — это драйвер WDF или WDM, который взаимодействует с устройством через DDIs, предоставляемый стеком USB-драйверов. Этот раздел предназначен для использования программистами C/C++, знакомыми с WDM. Прежде чем использовать этот раздел, необходимо понять основные разработки драйверов. Дополнительные сведения см. в статье "Начало работы с драйверами в Windows". Для драйверов WDF драйвер клиента может использовать интерфейсы Driver Framework в режиме ядра (KMDF) или среда выполнения платформы драйвера режима пользователя (UMDF), предназначенные специально для работы с USB-целевыми объектами. Дополнительные сведения об интерфейсах, относящихся к USB, см . в справочнике по WDF USB и целевым интерфейсам UMDF USB-ввода-вывода.
Средства разработки
Пакет драйверов Windows (WDK) содержит ресурсы, необходимые для разработки драйверов, таких как заголовки, библиотеки, инструменты и примеры.
Справочник по программированию USB
Предоставляет спецификации запросов ввода-вывода, подпрограмм поддержки, структур и интерфейсов, используемых драйверами USB-клиента. Эти подпрограммы и связанные структуры данных определяются в заголовках WDK.
Примеры USB-драйвера
Используйте эти примеры для начала работы с программированием драйвера USB-клиента.
- Универсальный USB-драйвер Usbsamp
- Пример драйвера функции KMDF для OSR USB-FX2
- Пример драйвера функции UMDF для OSR USB-FX2 (UMDF версии 1)
- Пример драйвера функций для OSR USB-FX2 (UMDF версии 2)
Связанные стандарты и спецификации
Официальные спецификации 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), имеют широкий и сложный набор функций управления питанием.