Общие сведения о WinUSB для разработчиков

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

Основные преимущества использования WinUSB

  • Упрощенная разработка

    • Простота использования: WinUSB абстрагирует большую часть сложности, связанной с USB-подключением, что упрощает взаимодействие с USB-устройствами.
    • Нет необходимости в пользовательском драйвере. Для многих USB-устройств WinUSB можно использовать напрямую, что устраняет необходимость записи и обслуживания пользовательского драйвера.
  • Кроссплатформенная совместимость

    • Стандартизированный интерфейс: WinUSB предоставляет стандартизированный интерфейс для usb-связи, который может помочь обеспечить совместимость между различными версиями Windows.
  • Эффективность времени и затрат

    • Сокращенное время разработки. Использование WinUSB может значительно сократить время, необходимое для разработки и тестирования USB-драйвера.
    • Более низкие затраты на обслуживание: так как корпорация Майкрософт поддерживает WinUSB, вы можете полагаться на обновление и поддержку, что снижает долгосрочные затраты на обслуживание.
  • Доступ к функциям USB

    • Полная функция USB: WinUSB поддерживает широкий спектр функций USB, включая массовую передачу, передачу управления, передачу прерываний и инохронную передачу.

Что можно сделать с помощью WinUSB

  • Взаимодействие устройств

    • Передача данных: отправка и получение данных на USB-устройство с помощью массовых, контрольных, прерываний или изохронных передач.
    • Запросы на управление: отправка запросов на управление для настройки устройства или получения сведений.
  • Конфигурация устройств

    • Настройка конфигурации: выберите конфигурации, интерфейсы и альтернативные параметры для настройки USB-устройства.
    • Управление конечными точками: управление конечными точками для передачи данных.
  • Перечисление устройств

    • Идентификация устройства: перечисление и идентификация USB-устройств, подключенных к системе.
    • Извлечение дескрипторов: извлечение дескрипторов устройств, конфигурации, интерфейса и конечных точек.
  • Кастомные приложения

    • Приложения в пользовательском режиме: разработка приложений пользовательского режима, взаимодействующих с USB-устройствами с помощью API WinUSB.
    • Обновления встроенного ПО: реализуйте механизмы обновления встроенного ПО для USB-устройств.
  • Тестирование и отладка

    • Прототипирование. Быстрое прототипирование usb-устройства для тестирования функциональных возможностей оборудования.
    • Отладка: используйте WinUSB для отладки проблем связи между узлом и USB-устройством.

Компоненты WinUSB

WinUSB включает:

  • Драйвер режима ядра (winusb.sys)
  • Библиотека динамической компоновки в режиме пользователя (winusb.dll), которая предоставляет функции WinUSB, описанные в winusb.h. Эти функции можно использовать для управления USB-устройствами с помощью программного обеспечения в пользовательском режиме.

По умолчанию winusb.sys устанавливается в стек ядра устройства в качестве драйвера верхнего фильтра. Приложения взаимодействуют с драйвером функции User-Mode Driver Framework (UMDF) устройства для выдачи запросов на чтение, запись или ввод-вывод устройства. В этой конфигурации winusb.sys служит самонастраивающийся стека устройств и владельцем питания. Вы также можете установить winusb.sys в качестве драйвера функции для USB-устройства.

Начало работы с WinUSB

В этом разделе содержатся сведения о следующих статьях:

  • Выбор правильного драйвера для устройства
  • Использование WinUSB для взаимодействия с USB-устройствами
  • Установка winusb.sys в качестве драйвера функции для USB-устройства

Он также содержит подробные примеры кода, показывающие, как приложения и USB-устройства взаимодействуют.

Примечание.

WinUSB поддерживает изохронные передачи, начиная с Windows 8.