Condividi tramite


Avvio di un dispositivo

Il gestore PnP invia una richiesta di IRP_MN_START_DEVICE ai driver per avviare un dispositivo appena enumerato o riavviare un dispositivo esistente arrestato per il ribilanciamento delle risorse.

I driver di funzione e filtro devono impostare una routine IoCompletion , passare la richiesta di IRP_MN_START_DEVICE nello stack di dispositivi e posticipare le operazioni di avvio fino a quando tutti i driver inferiori non hanno terminato l'IRP. Il driver del bus padre, il driver inferiore nello stack di dispositivi, deve essere il primo driver a eseguire le operazioni di avvio in un dispositivo prima che il dispositivo sia accessibile da altri driver.

Per garantire una corretta sequenziazione delle operazioni di avvio, gestione PnP in Windows 2000 e versioni successive di Windows posticipa l'esposizione delle interfacce del dispositivo e blocca la creazione di richieste per il dispositivo fino a quando l'IRP di avvio non riesce.

Se un driver per un dispositivo non riesce la richiesta di IRP_MN_START_DEVICE , il gestore PnP invia una richiesta di IRP_MN_REMOVE_DEVICE allo stack di dispositivi (in Windows 2000 e versioni successive di Windows). In risposta a questo IRP, i driver per il dispositivo annullano le operazioni di avvio (se hanno avuto esito positivo, IRP di avvio), annullano le operazioni AddDevice e si scollegano dallo stack di dispositivi. Il gestore PnP contrassegna tale "avvio non riuscito".

Questa sezione contiene gli argomenti seguenti:

Avvio di un dispositivo in un driver di funzione

Avvio di un dispositivo in un driver di filtro

Avvio di un dispositivo in un driver del bus

Linee guida per la progettazione per l'avvio dei dispositivi