Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esistono due tipi di base di driver di Microsoft Windows:
I driver in modalità utente vengono eseguiti in modalità utente e in genere forniscono un'interfaccia tra un'applicazione Win32 e i driver in modalità kernel o altri componenti del sistema operativo.
Ad esempio, in Windows Vista, tutti i driver della stampante vengono eseguiti in modalità utente. Per altre informazioni sui componenti del driver della stampante, vedere Introduzione alla stampa.
I driver in modalità kernel vengono eseguiti in modalità kernel come parte dell'esecutivo, che è costituito da componenti del sistema operativo in modalità kernel che gestiscono memoria di I/O, Plug and Play, processi e thread, sicurezza e così via. I driver in modalità kernel sono in genere a livelli. In genere, i driver di livello superiore ricevono dati dalle applicazioni, filtrano i dati e lo passano a un driver di livello inferiore che supporta la funzionalità del dispositivo.
Alcuni driver in modalità kernel sono anche driver WDM, che sono conformi al modello di driver windows (WDM). Tutti i driver WDM supportano Plug and Play e gestione energia. I driver WDM sono compatibili con l'origine (ma non compatibili con il file binario) tra Windows 98/Me e Windows 2000 e i sistemi operativi successivi.
Come il sistema operativo stesso, i driver in modalità kernel vengono implementati come componenti discreti e modulari che hanno un set ben definito di funzionalità necessarie. Tutti i driver in modalità kernel forniscono un set di routine standard definite dal sistema.
La figura seguente divide i driver in modalità kernel in diversi tipi.
Come illustrato nella figura, esistono tre tipi di base di driver in modalità kernel in uno stack di driver: livello più alto, intermedio e livello più basso. Ogni tipo differisce solo leggermente nella struttura, ma notevolmente nella funzionalità:
Driver di livello più alto. I driver di livello più alto includono driver di file system (FSD) che supportano file system, ad esempio:
NTFS
Tabella di allocazione file (FAT)
File system CD-ROM (CDFS)
I driver di livello più alto dipendono sempre dal supporto dei driver di livello inferiore sottostante, ad esempio i driver di funzione di livello intermedio e i driver del bus hardware di livello più basso.
Driver intermedi, ad esempio un disco virtuale, un mirror o un driver di classe specifico del tipo di dispositivo. I driver intermedi dipendono dal supporto dei driver di livello inferiore sottostanti. I driver intermedi sono suddivisi ulteriormente come segue:
I driver di funzione controllano dispositivi periferici specifici in un bus di I/O.
I driver di filtro si inseriscono sopra o sotto i driver di funzione.
I driver del bus software presentano un set di dispositivi figlio a cui possono essere collegati ancora più alti classi, funzioni o driver di filtro.
Ad esempio, un driver che controlla un adattatore multifunzione con un set di dispositivi eterogenei è un driver del bus software.
Qualsiasi driver di classe fornito dal sistema che esporta un'interfaccia classe/miniclasse definita dal sistema è, in effetti, un driver intermedio con uno o più driver miniclass collegati (talvolta chiamati minidriver). Ogni coppia di classi collegate/minidriver offre funzionalità equivalenti a quella di un driver di funzione o di un driver del bus software.
I driver di livello più basso controllano un bus di I/O a cui sono connessi i dispositivi periferici. I driver di livello più basso non dipendono dai driver di livello inferiore.
I driver del bus hardware sono forniti dal sistema e in genere controllano gli autobus di I/O configurabili dinamicamente.
I driver del bus hardware funzionano con il gestore Plug and Play per configurare e riconfigurare le risorse hardware del sistema, per tutti i dispositivi figlio connessi agli autobus di I/O che controllano il driver. Queste risorse hardware includono mapping per le richieste di memoria e interruzione del dispositivo (IRQs). I driver del bus hardware presumono alcune delle funzionalità fornite dal componente HAL nelle versioni del sistema operativo basato su Windows NT prima di Windows 2000.
I driver legacy che controllano direttamente un dispositivo fisico sono driver di livello più basso.