Condividi tramite


Scarica ambiente routine

Il sistema operativo scarica un driver quando il driver viene sostituito o quando tutti i dispositivi che i servizi driver sono stati rimossi. Il gestore PnP chiama la routine di scaricamento di un driver PnP se il driver non ha più oggetti dispositivo dopo aver gestito una richiesta di IRP_MN_REMOVE_DEVICE .

All'inizio della sequenza di scaricamento, gestione I/O o gestione PnP contrassegna l'oggetto driver e i relativi oggetti dispositivo come "Scarica in sospeso". Dopo che un driver è stato contrassegnato come "Scarica in sospeso", nessun driver aggiuntivo può collegarsi a tale driver, né può essere fatto alcun riferimento aggiuntivo agli oggetti dispositivo del driver. Il driver può completare gli IRP in sospeso, ma il sistema non invierà nuovi IRP al driver.

Il gestore di I/O chiama la routine di scaricamento di un driver quando sono vere tutte le operazioni seguenti:

  • Nessun riferimento rimane a uno degli oggetti del dispositivo creati dal driver. In altre parole, nessun file associato al dispositivo sottostante può essere aperto, né può essere in sospeso per uno degli oggetti del dispositivo del driver.

  • Nessun altro driver rimane collegato a questo driver.

  • Il driver ha chiamato IoUnregisterPlugPlayNotification per annullare la registrazione di tutte le notifiche PnP per cui è stata registrata in precedenza.

Si noti che la routine Di scaricamento non viene chiamata se la routine DriverEntry di un driver restituisce uno stato di errore. In questo caso, il gestore di I/O libera semplicemente lo spazio di memoria occupato dal driver.

Né il gestore PnP né la gestione I/O chiamano routine di scaricamento in fase di arresto del sistema. Un driver che deve eseguire l'elaborazione di arresto deve registrare una routine DispatchShutdown .