Condividi tramite


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 relativa struttura DRIVER_OBJECT , per ogni codice di funzione principale IRP che il driver può ricevere. Un driver può avere una routine dispatch separata per ogni codice di funzione principale 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 di dispositivo per ogni dispositivo PnP che il driver controlla.

  • Un driver può avere una routine StartIo, che viene chiamata dal gestore di I/O per avviare le operazioni di I/O per gli IRP 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 gli IRP ricevuti oppure deve completare ogni IRP all'interno delle routine di dispatch. I driver di livello superiore potrebbero non avere una routine StartIo se passano semplicemente gli IRP ai driver di livello inferiore direttamente dalle loro routine di dispatch.

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

  • Il fatto che un driver disponga di qualsiasi altro tipo di routine standard dipende dalla sua funzionalità e dal modo in cui tale driver rientra 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.