WinUSB (winusb.sys) er en proprietær USB -driver , der leveres af Microsoft som en del af deres Windows -operativsystemer , der starter med Windows XP . Giver udviklere af Windows-kompatible USB-enheder mulighed for at lette udviklingen ved at eliminere behovet for at oprette, certificere og distribuere deres egne enhedsdrivere.
Designet til enheder, der kun tilgås af én softwareapplikation ad gangen (hvilket er velegnet til de fleste enheder) og tillader applikationen at få direkte adgang til enheden via en simpel software-DLL (winusb.dll). Biblioteket sørger for konfiguration af enhedens USB-interface og dataudveksling med den på slutpunktsniveau.
Når en USB-enhed er tilsluttet, kommunikerer den sine beskrivelser til værten. For at en enhed kan identificeres som WinUSB-kompatibel, skal den have en strengdeskriptor ved indeks 0xEE, der indeholder strengen "MSFT100". WinUSB anmoder derefter om sine leverandørbeskrivelser.
En løsning er at bruge standardiserede USB-enhedsklasser . Operativsystemer indeholder indbyggede drivere til nogle af dem. For eksempel HID -klasse eller CDC -klasse . En CDC-enhed kan fungere som en virtuel seriel port til at bruge en ny enhed med ældre applikationer eller til nemt at oprette nye applikationer og enheder til dem, der ikke er fortrolige med USB på programmeringsniveau.
Hvis den tidligere løsning ikke virker, kan alle prøve at skrive en brugerdefineret driver. For nyere versioner af Microsoft Windows kan dette gøres ved hjælp af Windows Driver Foundation .
I stedet for WinUSB kan du bruge open source-biblioteket libusb-win32. Dette bibliotek, ligesom WinUSB, forenkler arbejdet med USB-enheder og kan bruges i Linux, Windows og Mac OS operativsystemer.