Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Questa sezione descrive un set possibile di driver WDM per l'hardware USB per illustrare i livelli di driver WDM.
La figura seguente illustra una configurazione hardware PnP di esempio per un joystick USB.
In questa figura, il joystick USB collega una porta su un hub USB. L'hub USB in questo esempio si trova nella scheda Controller host USB e viene collegato alla singola porta sulla scheda controller host USB. Il controller host USB si collega a un bus PCI. Dal punto di vista PnP, l'hub USB, il controller host USB e il bus PCI sono tutti i dispositivi bus perché ognuno fornisce porte. Il joystick non è un dispositivo bus.
La figura seguente mostra un set di driver di esempio che potrebbe essere caricato per l'hardware del joystick USB nella figura precedente.
A partire dalla parte inferiore della figura precedente, i driver nello stack di esempio includono:
Un driver PCI che gestisce il bus PCI. Questo è un autista del bus PnP. Il driver del bus PCI viene fornito con il sistema da Microsoft.
Il driver del bus per il controller host USB viene implementato come coppia di driver di classe/miniclasse. La classe del controller host USB e i driver di miniclassi sono forniti da Microsoft con il sistema.
Il driver del bus dell'hub USB che gestisce l'hub USB. Il driver dell'hub USB viene fornito con il sistema da Microsoft.
Tre driver per il dispositivo joystick; uno di essi è una coppia di classi/miniclasse.
Il driver di funzione, il driver principale per il dispositivo joystick, è rappresentato dalla coppia di driver: il driver di classe HID e il driver miniclass di HID USB. (HID rappresenta "Human Interface Device".) Il driver della sottoclasse USB HID supporta la semantica specifica USB dei dispositivi HID, che si basa sulla DLL del driver di classe HID per il supporto HID generale.
Un driver di funzione può essere specifico di un particolare dispositivo o, come nel caso di HID, un driver di funzione può gestire un gruppo di dispositivi. In questo esempio, il driver di classe HID e il driver di miniclass USB HID gestiscono qualsiasi dispositivo compatibile con HID nel sistema su un bus USB. Una coppia di driver di classe HID/miniclasse HID 1394 servirebbe qualsiasi dispositivo conforme a HID su un bus 1394.
Un driver di funzione può essere scritto dal fornitore del dispositivo o da Microsoft. In questo esempio, il driver di funzione (la classe HID/coppia di driver miniclass USB HID) viene scritto da Microsoft.
In questo esempio sono disponibili due driver di filtro per il dispositivo joystick: un filtro di classe superiore che aggiunge una funzionalità del pulsante macro e un filtro dispositivo di livello inferiore che consente al joystick di emulare un dispositivo del mouse.
Il filtro di livello superiore viene scritto da qualcuno che deve filtrare l'I/O del joystick e il driver di filtro di livello inferiore viene scritto dal fornitore del joystick.
I client HID in modalità kernel e in modalità utente e l'applicazione non sono driver, ma vengono visualizzati per completezza.