WinUSB
WinUSB (winusb.sys) — проприетарный USB-драйвер, поставляемый корпорацией Microsoft в составе своих операционных систем семейства Windows, начиная с Windows XP. Позволяет разработчикам Windows-совместимых USB-устройств облегчить разработку за счет отказа от создания, сертификации и распространения собственных драйверов устройств. Предназначен для устройств, доступ к которым осуществляется только одним программным приложением в любой момент времени (что подходит для большинства устройств) и позволяет приложению получать прямой доступ к устройству через простую программную DLL-библиотеку (winusb.dll). Библиотека обеспечивает конфигурирование USB-интерфейса устройства и обмен данными с ним на уровне конечных точек. Техническая реализацияПри подключении USB устройства оно сообщает хосту свои дескрипторы. Чтобы устройство определилось как совместимое с WinUSB, в нем должен существовать строковый дескриптор с индексом 0xEE, содержащий строку «MSFT100». После этого WinUSB запрашивает свои дескрипторы вендора. Достоинства и недостаткиДостоинства
Недостатки
Другие решенияОдним из решений является использование стандартизированных классов USB-устройств. Операционные системы содержат встроенные драйверы для некоторых из них. Например, HID-класс или CDC-класс (USB communications device class). CDC-устройство может выступать как виртуальный последовательный порт для использования нового устройства с устаревшими приложениями или для простоты создания новых приложений и устройств теми, кто не знаком с USB на уровне программирования. Если предыдущий вариант решения не подходит, каждый может попробовать написать специализированный драйвер. Для новых версий Microsoft Windows это можно сделать при помощи Windows Driver Foundation. Вместо WinUSB можно использовать библиотеку с открытым исходным кодом libusb-win32. Эта библиотека так же, как WinUSB, упрощает работу с USB-устройствами и может применяться в операционных системах Linux, Windows и Mac OS. Ссылки
Information related to WinUSB |