Architettura: Emulazione dispositivo USB (UDE)

La sezione descrive l'architettura di UDE (Device Emulation) USB 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

emulazione del dispositivo USB (ude).

Nell'immagine precedente,

  • Il driver hub USB (Usbhub3.sys) è un driver KMDF. Il driver hub è responsabile della gestione degli hub USB e delle relative porte, dell'enumerazione e della creazione di oggetti dispositivo fisico (PDO) di dispositivi USB e di altri hub che possono essere collegati alle porte downstream.
  • L'estensione del controller host USB (Ucx01000.sys) è un livello di astrazione al driver hub sopra 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 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 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:

Nodi dispositivo usb di emulazione (ude).