Condividi tramite


Livelli di driver WDM: esempio

Questa sezione descrive un possibile set di driver WDM per l'hardware USB per illustrare i livelli di driver WDM.

Nella figura seguente viene illustrata una configurazione hardware PnP di esempio per un joystick USB.

diagramma che illustra l'hardware plug and play di esempio per un joystick usb.

In questa figura il joystick USB si collega a 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 nella scheda controller host USB. Il controller host USB si collega a un bus PCI. Dal punto di vista di PnP, l'hub USB, il controller host USB e il bus PCI sono tutti i dispositivi del bus perché forniscono ogni porta. 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.

diagramma che illustra i livelli di plug and play di esempio per un joystick usb.

A partire dalla parte inferiore della figura precedente, i driver nello stack di esempio includono:

  • Driver PCI che guida il bus PCI. Si tratta di un driver 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 classe/miniclasse. La classe del controller host USB e i driver miniclasse vengono forniti con il sistema da Microsoft.

  • Driver del bus dell'hub USB che guida 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 classe/miniclasse.

    Il driver di funzione, il driver principale per il dispositivo joystick, è la coppia di driver di classe HID/HID USB miniclass. (HID rappresenta "Dispositivo interfaccia umana". Il driver miniclasse USB HID supporta la semantica specifica USB dei dispositivi HID, basandosi sulla DLL del driver di classe HID per il supporto hiD generale.

    Un driver di funzione può essere specifico di un determinato dispositivo o, come nel caso di HID, un driver di funzione può gestire un gruppo di dispositivi. In questo esempio, il driver della classe HID/HID USB miniclasse esegue i servizi di coppia di driver HID conformi al sistema in un bus USB. Una coppia di driver di classe HID/HID 1394 miniclasse servirebbe qualsiasi dispositivo conforme a HID in 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/la coppia di driver USB miniclasse HID) viene scritta 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 del dispositivo di livello inferiore che consente al joystick di emulare un dispositivo del mouse.

    Il filtro superiore viene scritto da qualcuno che deve filtrare l'I/O del joystick e il driver di filtro inferiore è scritto dal fornitore del joystick.

  • I client HID in modalità kernel e modalità utente e l'applicazione non sono driver, ma vengono visualizzati per la completezza.