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

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

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

  1. Упрощенная разработка:

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

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

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

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

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

  1. Связь с устройствами:

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

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

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

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

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

Компоненты WinUSB

WinUSB включает:

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

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

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

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

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

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

Примечание.

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