Condividi tramite


Tipi di driver Windows

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.

diagramma che illustra i tipi di driver in modalità kernel.

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à:

  1. 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.

  2. 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.

  3. 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.