Interested Article - WinUSB

WinUSB (winusb.sys) — проприетарный USB - драйвер , поставляемый корпорацией Microsoft в составе своих операционных систем семейства Windows , начиная с Windows XP . Позволяет разработчикам Windows-совместимых USB-устройств облегчить разработку за счет отказа от создания, сертификации и распространения собственных драйверов устройств.

Предназначен для устройств, доступ к которым осуществляется только одним программным приложением в любой момент времени (что подходит для большинства устройств) и позволяет приложению получать прямой доступ к устройству через простую программную DLL-библиотеку (winusb.dll). Библиотека обеспечивает конфигурирование USB-интерфейса устройства и обмен данными с ним на уровне конечных точек.

Техническая реализация

При подключении USB устройства оно сообщает хосту свои дескрипторы. Чтобы устройство определилось как совместимое с WinUSB, в нем должен существовать строковый дескриптор с индексом 0xEE, содержащий строку «MSFT100». После этого WinUSB запрашивает свои дескрипторы вендора.

Достоинства и недостатки

Достоинства

  • Не требуется знать, как писать драйверы.
  • Упрощается и ускоряется разработка.

Недостатки

  • Только одно приложение имеет доступ к устройству в любой момент.
  • Поддержка передачи появилась начиная с Windows 8.1.
  • Некоторые ограничения в конфигурировании USB-интерфейса устройства.

Другие решения

Одним из решений является использование стандартизированных классов USB-устройств . Операционные системы содержат встроенные драйверы для некоторых из них. Например, HID -класс или -класс ( ). CDC-устройство может выступать как виртуальный последовательный порт для использования нового устройства с устаревшими приложениями или для простоты создания новых приложений и устройств теми, кто не знаком с USB на уровне программирования.

Если предыдущий вариант решения не подходит, каждый может попробовать написать специализированный драйвер. Для новых версий Microsoft Windows это можно сделать при помощи Windows Driver Foundation .

Вместо WinUSB можно использовать библиотеку с открытым исходным кодом libusb-win32. Эта библиотека так же, как WinUSB, упрощает работу с USB-устройствами и может применяться в операционных системах Linux, Windows и Mac OS.

Ссылки

  • . Microsoft (5 декабря 2007). Дата обращения: 9 июля 2008. 8 апреля 2012 года.
  • . Microsoft Developer Network . Дата обращения: 9 июля 2008. 12 июня 2013 года.
  • . USB Implementers Forum, Inc. (15 марта 2007). Дата обращения: 27 марта 2007. (недоступная ссылка) Новые версии спецификаций можно найти на
Источник —

Same as WinUSB