Introduzione alle routine del driver Standard

Ogni driver in modalità kernel viene costruito intorno a un set di routine del driver standard definite dal sistema. I driver in modalità kernel elaborano i pacchetti di richiesta di I/O (IRP) all'interno di queste routine standard chiamando routine di supporto del driver fornite dal sistema.

Tutti i driver, indipendentemente dal loro livello in una catena di driver collegati, devono avere un set di routine standard di base per elaborare i provider di integrazione. Se un driver deve implementare routine standard aggiuntive, dipende dal fatto che il driver controlli un dispositivo fisico o sia a più livelli su un driver di dispositivo fisico, nonché sulla natura del dispositivo fisico sottostante. I driver di livello più basso che controllano i dispositivi fisici hanno routine più richieste rispetto ai driver di livello superiore, che in genere passano irP a un driver inferiore per l'elaborazione.

Le routine del driver standard possono essere suddivise in due gruppi: quelli che ogni driver in modalità kernel deve avere e quelli facoltativi, a seconda del tipo di driver e della posizione nello stack di dispositivi.

Nella tabella seguente sono elencate le routine standard necessarie.

Routine del driver standard richieste Scopo Dove descritto
DriverEntry Inizializza il driver e il relativo oggetto driver. Scrittura di una routine DriverEntry
AddDevice Inizializza i dispositivi e crea oggetti dispositivo. Scrittura di una routine AddDevice
Routine Dispatch Ricevere ed elaborare i provider di integrazione. Scrittura di routine dispatch
Scaricare Rilasciare le risorse di sistema acquisite dal driver. Scrittura di una routine di scaricamento

Nella tabella seguente sono elencate diverse routine facoltative.

Routine del driver standard facoltative Scopo Dove descritto
Reinizializzare Completa l'inizializzazione del driver se DriverEntry non può. Scrittura di una routine reinizializzare
StartIo Avvia un'operazione di I/O in un dispositivo fisico. Scrittura di una routine StartIo
Routine del servizio interrupt Salva lo stato di un dispositivo quando viene interrotto. Scrittura di un ISR
Chiamate di procedura posticipate Completa l'elaborazione di un interrupt del dispositivo dopo che un ISR salva lo stato del dispositivo. Oggetti DPC e CONTROLLER di dominio
SynchCritSection Sincronizza l'accesso ai dati del driver. Uso delle sezioni critiche
AdapterControl Avvia le operazioni DMA. Oggetti adapter e DMA
IoCompletion Completa l'elaborazione di un driver di un IRP. Completamento dei runtime di integrazione
Annulla Annulla l'elaborazione di un driver di un IRP. Annullamento di IRP
CustomTimerDpc, IoTimer Temporizzazione e sincronizzazione degli eventi. Tecniche di sincronizzazione

L'oggetto dispositivo di destinazione e IRP corrente sono parametri di input per molte routine standard. Ogni driver elabora ogni IRP in fasi attraverso il set di routine standard.

Per convenzione, i driver forniti dal sistema anteponevano un prefisso di identificazione, specifico del driver o specifico del dispositivo al nome di ogni routine standard ad eccezione di DriverEntry. Ad esempio, questa documentazione usa "DD", come illustrato nell'illustrazione in Introduzione agli oggetti driver. Seguendo questa convenzione è più semplice eseguire il debug e gestire i driver.