Transizioni di stato per dispositivi PnP

In un sistema PnP, un dispositivo passa attraverso vari stati PnP durante la configurazione, l'avvio, possibilmente interrotto per ribilanciare le risorse ed eventualmente rimosso. Questa sezione offre una panoramica degli stati del dispositivo PnP. La panoramica è una roadmap per gran parte del supporto PnP richiesto in un driver. Altre parti di questa documentazione descrivono in dettaglio ogni transizione di stato.

La figura seguente illustra gli stati PnP per un dispositivo e il modo in cui un dispositivo passa da uno stato a un altro.

diagramma che illustra gli stati del dispositivo dal punto di vista plug and play.

A partire dalla parte superiore sinistra della figura precedente, un dispositivo PnP è fisicamente presente nel sistema perché l'utente ha appena inserito il dispositivo o il dispositivo era presente all'avvio. Il dispositivo non è ancora noto al software di sistema.

Per avviare la configurazione software per il dispositivo, il gestore PnP e il driver del bus padre enumereranno il dispositivo. Il gestore PnP, possibilmente con l'aiuto dei componenti in modalità utente, identifica i driver per il dispositivo, inclusi il driver di funzione e tutti i driver di filtro facoltativi. Il gestore PnP chiama la routine DriverEntry di ogni driver se il driver non è ancora caricato. Per altre informazioni sulla creazione di report ed enumerazione di un dispositivo PnP, vedere Aggiunta di un dispositivo PnP a un sistema in esecuzione.

Dopo aver inizializzato un driver, deve essere pronto per inizializzare i dispositivi. Il gestore PnP chiama la routine AddDevice di un driver per ogni dispositivo che controlla il driver.

Quando un driver riceve una richiesta di IRP_MN_START_DEVICE dal gestore PnP, il driver avvia il dispositivo ed è pronto per elaborare le richieste di I/O per il dispositivo. Per informazioni sulla gestione di una richiesta di IRP_MN_START_DEVICE , vedere Avvio di un dispositivo.

Se il gestore PnP deve riconfigurare le risorse hardware di un dispositivo attivo, invia IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE richieste ai driver del dispositivo. Dopo aver riconfigurato le risorse hardware, il gestore PnP indirizza i driver a riavviare il dispositivo inviando una richiesta di IRP_MN_START_DEVICE . Per informazioni sulla gestione dei runtime di integrazione di arresto, vedere Arresto di un dispositivo. I driver per un dispositivo configurato per l'avvio possono ricevere IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE richieste prima dell'avvio del dispositivo, anche se questo passaggio non è illustrato nella figura precedente.

In Windows 98/Me, il gestore PnP invia anche IRP_MN_QUERY_STOP_DEVICE e IRP_MN_STOP_DEVICE richieste quando un dispositivo viene disabilitato. I driver in questi sistemi ricevono anche una richiesta di IRP_MN_STOP_DEVICE dopo un avvio non riuscito.

Quando un dispositivo PnP viene fisicamente rimosso dal sistema o è già stato rimosso, il gestore PnP invia vari IRP rimossi ai driver del dispositivo, indirizzandoli alla rimozione della rappresentazione software del dispositivo (oggetti dispositivo e così via). Per informazioni sulla gestione dei runtime di integrazione, vedere Rimozione di un dispositivo.

A un certo punto, dopo che tutti i dispositivi di un driver sono stati rimossi, il gestore PnP chiama la routine Scarica scaricamento del driver e scarica il driver.