WinUSB

WinUSB  (winusb.sys) är en proprietär USB- drivrutin som tillhandahålls av Microsoft som en del av deras Windows - operativsystem som börjar med Windows XP . Tillåter utvecklare av Windows-kompatibla USB-enheter att underlätta utvecklingen genom att eliminera behovet av att skapa, certifiera och distribuera sina egna drivrutiner.

Designad för enheter som endast nås av en mjukvaruapplikation åt gången (vilket är lämpligt för de flesta enheter) och tillåter applikationen att direkt komma åt enheten via en enkel mjukvaru-DLL (winusb.dll). Biblioteket tillhandahåller konfiguration av enhetens USB-gränssnitt och datautbyte med det på slutpunktsnivå.

Teknisk implementering

När en USB-enhet är ansluten kommunicerar den dess beskrivningar till värden. För att en enhet ska identifieras som WinUSB-kompatibel måste den ha en strängdeskriptor vid index 0xEE som innehåller strängen "MSFT100". WinUSB begär sedan sina leverantörsbeskrivningar.

Fördelar och nackdelar

Fördelar

Nackdelar

Andra lösningar

En lösning är att använda standardiserade USB-enhetsklasser . Operativsystem innehåller inbyggda drivrutiner för vissa av dem. Till exempel HID -klass eller CDC -klass . En CDC-enhet kan fungera som en virtuell seriell port för att använda en ny enhet med äldre applikationer, eller för att enkelt skapa nya applikationer och enheter för de som inte är bekanta med USB på programmeringsnivå.

Om den tidigare lösningen inte fungerar kan alla försöka skriva en anpassad drivrutin. För nyare versioner av Microsoft Windows kan detta göras med Windows Driver Foundation .

Istället för WinUSB kan du använda biblioteket med öppen källkod libusb-win32. Detta bibliotek, liksom WinUSB, förenklar arbetet med USB-enheter och kan användas i operativsystemen Linux, Windows och Mac OS.

Länkar