Общие сведения о 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 устанавливается в стек ядра устройства в качестве драйвера верхнего фильтра. Приложения взаимодействуют с драйвером функции UMDF устройства для выдачи запросов на чтение, запись или ввод-вывод устройства. В этой конфигурации winusb.sys служит самонастраивающийся стека устройств и владельцем питания. Вы также можете установить winusb.sys в качестве драйвера функции для USB-устройства.
Начало работы с WinUSB
В этом разделе содержатся сведения о следующих статьях:
- Выбор правильного драйвера для устройства
- Использование WinUSB для взаимодействия с USB-устройствами
- Установка winusb.sys в качестве драйвера функции для USB-устройства
Вы также найдете подробные примеры кода, показывающие, как приложения и USB-устройства взаимодействуют.
Примечание.
WinUSB поддерживает изохронные передачи, начиная с Windows 8.