Condividi tramite


Linee guida per la progettazione per l'avvio dei dispositivi

  • Il gestore PnP non riesce a creare richieste per il dispositivo fino al completamento del IRP_MN_START_DEVICE IRP, a indicare che tutti i driver per il dispositivo hanno eseguito le operazioni di avvio.

  • Poiché una routine DispatchPnP viene eseguita nel contesto di un thread di sistema in IRQL PASSIVE_LEVEL, qualsiasi memoria allocata con ExAllocatePoolWithTag per l'uso esclusivamente durante l'inizializzazione può essere dal pool di paging, purché il driver non controlli il dispositivo che contiene un file di pagina di sistema. Tale allocazione di memoria deve essere rilasciata con ExFreePool prima che la routine DispatchPnP restituisca il controllo .

  • L'ISR di un driver di dispositivo WDM deve essere in grado di determinare se è stato chiamato con un interrupt spurio anche durante l'avvio del dispositivo. Al ritorno dalla chiamata a IoConnectInterrupt nel percorso del codice che gestisce IRP_MN_START_DEVICE, l'ISR può essere chiamato immediatamente se nel dispositivo sono abilitati gli interrupt.