Condividi tramite


Architettura e moduli WinUSB

WinUSB è costituito da due componenti principali:

  • Winusb.sys è un driver in modalità kernel che può essere installato come filtro o driver di funzione, sopra i driver di protocollo in uno stack di dispositivi in modalità kernel USB.
  • Winusb.dll è una DLL in modalità utente che espone funzioni WinUSB. Le applicazioni possono usare queste funzioni per comunicare con Winusb.sys quando viene installato come driver di funzione di un dispositivo.

Per i dispositivi che non richiedono un driver di funzione personalizzato, Winusb.sys può essere installato nello stack in modalità kernel del dispositivo come driver di funzione. I processi in modalità utente possono quindi comunicare con Winusb.sys usando un set di richieste di controllo I/O del dispositivo o chiamando funzioni WinUSB.

La figura seguente mostra uno stack di driver USB che contiene diverse istanze di Winusb.sys.

driver winusb e stack di oggetti dispositivo.

La figura precedente mostra una configurazione WinUSB di esempio che implementa tre classi di interfaccia del dispositivo, ognuna delle quali ha un'unica interfaccia del dispositivo registrata:

  • Istanza 1 di Winusb.sys registra Interfaccia dispositivo A, che supporta un driver in modalità utente (Usboem.dll).
  • Istanza 2 di Winusb.sys registra l'interfaccia dispositivo B, che supporta un driver in modalità utente per uno scanner (Usbscan.exe) che comunica con Winusb.dll usando un servizio di sistema (SVCHOST).
  • Istanza 3 di Winusb.sys registra Device Interface C, che supporta un'utilità di aggiornamento del firmware (Usbfw.exe).

Esiste esattamente un'istanza caricata di Winusb.sys. Un PDO può rappresentare un dispositivo non composito (ad esempio, istanza 1 nel diagramma) oppure può rappresentare un'interfaccia o una raccolta di interfacce in un dispositivo composito (ad esempio, istanze 2 e 3). Per i dispositivi WMCDC (USB Wireless Mobile Communication Device) un PDO può anche rappresentare diverse raccolte di interfacce. Per altre informazioni sui dispositivi PDO per i dispositivi WMCDC, vedere Supporto per la classe dispositivo di comunicazione mobile wireless.

Qualsiasi applicazione in modalità utente può comunicare con lo stack USB caricando la libreria di collegamento dinamica WinUSB (Winusb.dll) e chiamando le funzioni WinUSB esposte da questo modulo.

Installazione di WinUSB (winusb.sys)
Come accedere a un dispositivo USB usando funzioni WinUSB
Funzioni WinUSB per la modifica dei criteri di pipe
Gestione energia WinUSB
Funzioni WinUSB
WinUSB