A WinUSB (winusb.sys) egy szabadalmaztatott USB - illesztőprogram , amelyet a Microsoft a Windows XP -vel kezdődő Windows operációs rendszerei részeként biztosít . Lehetővé teszi a Windows-kompatibilis USB-eszközök fejlesztői számára, hogy megkönnyítsék a fejlesztést azáltal, hogy nincs szükség saját eszközillesztőik létrehozására, tanúsítására és terjesztésére.
Egyszerre csak egy szoftveralkalmazás által elérhető eszközökhöz tervezték (ami a legtöbb eszközhöz megfelelő), és lehetővé teszi az alkalmazás számára, hogy egy egyszerű szoftver DLL -en (winusb.dll) keresztül közvetlenül hozzáférjen az eszközhöz. A könyvtár biztosítja az eszköz USB interfészének konfigurálását és végponti szintű adatcseréjét vele.
Amikor egy USB-eszközt csatlakoztatunk, az átadja a leírásait a gazdagépnek. Ahhoz, hogy egy eszköz WinUSB-kompatibilisként azonosítható legyen, rendelkeznie kell egy karakterlánc-leíróval a 0xEE indexben, amely az „MSFT100” karakterláncot tartalmazza. A WinUSB ezután lekéri a gyártói leírókat.
Az egyik megoldás a szabványos USB-eszközosztályok használata . Az operációs rendszerek némelyikéhez beépített illesztőprogramokat tartalmaznak. Például HID osztály vagy CDC osztály . A CDC-eszközök virtuális soros portként működhetnek új eszközök használatához régi alkalmazásokkal, vagy új alkalmazások és eszközök egyszerű létrehozásához azok számára, akik nem ismerik az USB-t programozási szinten.
Ha az előző megoldás nem működik, mindenki megpróbálkozhat egyéni illesztőprogram írásával. A Microsoft Windows újabb verzióinál ezt a Windows Driver Foundation segítségével teheti meg .
A WinUSB helyett használhatja a libusb-win32 nyílt forráskódú könyvtárat. Ez a könyvtár, akárcsak a WinUSB, leegyszerűsíti az USB-eszközökkel való munkát, és használható Linux, Windows és Mac OS operációs rendszereken.