close

WinUSB

Vai alla navigazione Vai alla ricerca

WinUSB  (winusb.sys) è un driver USB proprietario fornito da Microsoft come parte dei loro sistemi operativi Windows a partire da Windows XP . Consente agli sviluppatori di dispositivi USB compatibili con Windows di semplificare lo sviluppo eliminando la necessità di creare, certificare e distribuire i propri driver di dispositivo.

Progettato per dispositivi accessibili da una sola applicazione software alla volta (che è adatta alla maggior parte dei dispositivi) e consente all'applicazione di accedere direttamente al dispositivo tramite una semplice DLL software (winusb.dll). La libreria fornisce la configurazione dell'interfaccia USB del dispositivo e lo scambio di dati con essa a livello di endpoint.

Realizzazione tecnica

Quando un dispositivo USB è collegato, comunica i suoi descrittori all'host. Affinché un dispositivo possa essere identificato come compatibile con WinUSB, deve avere un descrittore di stringa all'indice 0xEE contenente la stringa "MSFT100". WinUSB richiede quindi i suoi descrittori del fornitore.

Vantaggi e svantaggi

Vantaggi

  • Non c'è bisogno di sapere come scrivere i driver
  • Semplifica e accelera lo sviluppo

Svantaggi

  • Solo un'applicazione ha accesso al dispositivo alla volta
  • Il supporto per i trasferimenti isocroni esiste da Windows 8.1.
  • Alcune limitazioni nella configurazione dell'interfaccia USB del dispositivo

Altre soluzioni

Una soluzione consiste nell'utilizzare classi di dispositivi USB standardizzate . I sistemi operativi contengono driver integrati per alcuni di essi. Ad esempio, classe HID o classe CDC . Un dispositivo CDC può fungere da porta seriale virtuale per utilizzare un nuovo dispositivo con applicazioni legacy o per creare facilmente nuove applicazioni e dispositivi per chi non ha familiarità con l'USB a livello di programmazione.

Se la soluzione precedente non funziona, tutti possono provare a scrivere un driver personalizzato. Per le versioni più recenti di Microsoft Windows, questo può essere fatto utilizzando Windows Driver Foundation .

Invece di WinUSB, puoi usare la libreria open source libusb-win32. Questa libreria, come WinUSB, semplifica il lavoro con i dispositivi USB e può essere utilizzata nei sistemi operativi Linux, Windows e Mac OS.

Collegamenti