Requisiti di routine del driver standard

Quando si progetta un driver in modalità kernel, tenere presente quanto segue:

  • Ogni driver deve avere una routine DriverEntry , che inizializza le risorse e le strutture di dati a livello di driver. Il gestore di I/O chiama la routine DriverEntry quando carica il driver.

  • Ogni driver deve avere almeno una routine dispatch che riceve ed elabora i pacchetti di richiesta di I/O (IRP). Ogni driver deve inserire un punto di ingresso della routine dispatch nella struttura DRIVER_OBJECT , per ogni codice di funzione principale di IRP che il driver può ricevere. Un driver può avere una routine dispatch separata per ogni codice di funzione principale di IRP oppure può avere una o più routine dispatch che gestiscono diversi codici di funzione.

  • Ogni driver WDM deve avere una routine Di scaricamento . Il driver deve inserire il punto di ingresso della routine Scarica nell'oggetto driver del driver. Le responsabilità della routine di scaricamento di un driver PnP sono minime, ma la routine di scaricamento di un driver non PnP è responsabile del rilascio di tutte le risorse di sistema usate dal driver.

  • Ogni driver WDM deve avere una routine AddDevice e definirne il punto di ingresso nell'estensione driver dell'oggetto driver. Una routine AddDevice è responsabile della creazione e dell'inizializzazione di oggetti dispositivo per ogni dispositivo PnP dei controlli driver.

  • Un driver può avere una routine StartIo , che il gestore di I/O chiama per avviare le operazioni di I/O per i runtime di integrazione che il driver ha accodato a una coda IRP fornita dal sistema. Qualsiasi driver che non dispone di una routine StartIo deve configurare e gestire code interne per i provider di integrazione ricevuti oppure deve completare ogni IRP all'interno delle routine dispatch. I driver di livello superiore potrebbero non avere una routine StartIo , se passano semplicemente irP a driver di livello inferiore direttamente dalle routine dispatch.

  • Alcuni driver miniport sono eccezioni ai requisiti precedenti. Per informazioni sui requisiti per i driver miniport, vedere la documentazione specifica del tipo di dispositivo in Windows Driver Kit (WDK).

  • Se un driver ha un altro tipo di routine standard dipende dalla sua funzionalità e dal modo in cui tale driver si inserisce nel sistema (ad esempio, se interagisce con i driver forniti dal sistema). Per informazioni dettagliate, vedere la documentazione specifica del tipo di dispositivo in WDK.