Esempio di oggetti dispositivo WDM

La figura seguente illustra gli oggetti del dispositivo che rappresentano i dispositivi da tastiera e mouse visualizzati in precedenza nella figura che illustra le configurazioni hardware di tastiera e mouse. I driver della tastiera e del mouse visualizzati nella figura che illustrano i livelli di tastiera e driver del mouse creano questi oggetti dispositivo chiamando una routine di supporto di I/O (IoCreateDevice).

oggetti dispositivo da tastiera e mouse.

Per i dispositivi della tastiera e del mouse, sia le rispettive porte che i driver di classe creano oggetti dispositivo. Il driver di porta crea un oggetto dispositivo fisico (PDO) per rappresentare la porta fisica. Ogni driver di classe crea un oggetto dispositivo funzionale (FDO) per rappresentare la tastiera o il dispositivo del mouse come destinazione per le richieste di I/O.

Ogni driver di classe chiama una routine di supporto di I/O per ottenere un puntatore all'oggetto dispositivo del driver di livello inferiore successivo, in modo che il driver di classe possa concatenarsi sopra tale driver, ovvero il driver di porta. Il driver di classe può quindi inviare richieste di I/O fino al driver di porta per il PDO di destinazione che rappresenta il dispositivo fisico.

Un driver di filtro facoltativo aggiunto alla configurazione creerebbe un oggetto dispositivo filtro (filtro DO). Come il driver di classe, un driver di filtro facoltativo si incatena al driver inferiore successivo nello stack di dispositivi e invia richieste di I/O per il pdO di destinazione fino al driver inferiore successivo.

Come illustrato in precedenza nella figura Livelli di tastiera e driver del mouse , ogni driver di porta è un driver del bus (livello più basso), quindi ogni driver di porta di un dispositivo che genera interruzioni deve configurare oggetti di interruzione e registrare un ISR.

Un driver di porta dual-device, ad esempio il driver i8042 per il controller del dispositivo ausiliario e della tastiera illustrato nella figura Configurazioni hardware tastiera e mouse , deve configurare oggetti di interruzione specifici del dispositivo se ogni dispositivo usa un vettore di interruzione diverso. Quando si scrive un driver di questo tipo, è possibile implementare isr separati per ogni dispositivo o implementare un singolo ISR per entrambi i dispositivi.