Power-Down e sequenza di rimozione per un driver del bus
La figura seguente illustra l'ordine in cui il framework chiama le funzioni di callback degli eventi del driver del bus KMDF durante l'accensione e la rimozione di un dispositivo connesso al bus. La sequenza inizia nella parte superiore della figura con un dispositivo operativo che si trova nello stato di alimentazione funzionante (D0):
Il framework non elimina il PDO finché il dispositivo non viene fisicamente rimosso dal sistema. Ad esempio, se un utente disabilita il dispositivo in Gestione dispositivi o lo arresta nell'utilità Rimuovi hardware in modo sicuro ma non rimuove fisicamente il dispositivo, il framework mantiene il PDO. Se il dispositivo viene riabilitato in un secondo momento, il framework usa lo stesso PDO e avvia la sequenza di avvio chiamando il callback evtDevicePrepareHardware , come illustrato in Power-Up Sequence per un oggetto dispositivo fisico.
Nota: in genere, il framework chiama la funzione di callback EvtDeviceReleaseHardware di un driver del bus dopo che ha chiamato la funzione EvtDeviceReleaseHardware per tutti i dispositivi figlio enumerati dal driver. In caso di errore di alimentazione o spegnimento del dispositivo da parte dell'elemento padre, il framework potrebbe chiamare evtDeviceReleaseHardware del driver prima che abbia chiamato le funzioni EvtDeviceReleaseHardware per tutti i dispositivi figlio. Valutare la possibilità di chiamare WdfDeviceInitSetReleaseHardwareOrderOnFailure per assicurarsi che il framework chiami il callback evtDeviceReleaseHardware del driver del bus solo dopo la rimozione di tutti i dispositivi figlio.