Condividi tramite


Architettura dell'emulazione dei dispositivi USB

Questo articolo descrive l'architettura dell'emulazione del dispositivo USB (UDE), che emula il comportamento di un controller host USB e di un dispositivo connesso. Usando UDE, un hardware non USB può comunicare con i livelli superiori usando i driver lato host USB in Windows.

Driver UDE

Diagramma dello stack software UDE.

Nell'immagine precedente,

  • Il driver dell'hub USB (Usbhub3.sys) è un driver del framework del driver in modalità kernel (KMDF). Il driver hub è responsabile della gestione degli hub USB e delle relative porte, enumerazione e creazione di oggetti dispositivo fisico (PDO) di dispositivi USB e di altri hub che potrebbero essere collegati alle porte downstream.
  • L'estensione del controller host USB (Ucx01000.sys) è un livello di astrazione per il driver hub nello stack e fornisce un meccanismo generico per accodare le richieste al driver del controller host sottostante.
  • L'estensione della classe UDE (UdeCx) viene chiamata al driver client UDE tramite le funzioni di callback implementate dal client. L'estensione della classe fornisce routine per il driver client per creare oggetti UDE e gestirli.
  • Il driver client UDE gestisce l'hardware, interagendo con le API WDF (Windows Driver Framework) e UDE. Il bordo superiore comunica con l'estensione della classe WDF e UDE usando costrutti USB. Il bordo inferiore comunica con l'hardware usando l'interfaccia dell'hardware.
  • Hardware personalizzato: ad esempio, un hardware PCI può essere emulato per funzionare come dispositivo USB.

Nodi del dispositivo UDE

Ecco gli stack di dispositivi caricati per il driver client UDE:

Diagramma degli stack di dispositivi UDE.