Share via


Architettura: estensione del controller host USB (UCX)

Questa sezione presenta concetti e attività generali per lo sviluppo di driver host. La sezione si applica all'utente se si scrive un nuovo driver controller host che comunica con il driver di estensione del controller host USB fornito da Microsoft (Ucx01000.sys).

Ecco una versione modificata di un diagramma illustrato nei driver lato host USB in Windows. Questa versione nasconde i dettagli del livello driver client USB, che non sono rilevanti per lo sviluppo di driver del controller host.

architettura ucx.

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.
  • Il driver del controller host USB gestisce l'hardware. Usbxhci.sys è un driver di questo tipo fornito da Microsoft, che è destinato all'hardware del controller USB conforme alla specifica xHCI, in particolare. Potrebbe essere necessario per gli sviluppatori hardware indipendenti scrivere il proprio driver del controller host, anziché usare la posta in arrivo Usbxhci.sys. Ad esempio, per un hardware XHCI non completamente conforme alla specifica e pertanto non può usare Usbxhci.sys o per hardware non XHCI, ad esempio usb su connessione TCP.

La comunicazione bidirezionale che avviene tra UCX e il driver del controller host avviene tramite interfacce di programmazione UCX (USB Host Controller Extension). Ogni driver si collega in modo statico ai punti di ingresso nella libreria stub fornita da Microsoft (Ucx01000.lib) quando il driver viene compilato.

Ecco gli stack di dispositivi caricati per il driver del controller host:

stack di dispositivi ucx.