Un dispositivo torna allo stato di lavoro (UMDF 1)
Avviso
UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.
Gli esempi di UMDF 1 archiviati sono disponibili nell'aggiornamento degli esempi di driver di Windows 11 versione 22H2 - Maggio 2022.
Per altre info, vedi Introduzione con UMDF.
Un dispositivo in stato a basso consumo torna allo stato di funzionamento se si verifica una delle condizioni seguenti:
Il dispositivo rileva un evento esterno e attiva un segnale di riattivazione sul bus. Il driver del bus in modalità kernel rileva il segnale di riattivazione.
Il dispositivo è stato inattivo e un driver chiama IWDFDevice2::StopIdle.
Lo stato di alimentazione del sistema è cambiato da uno stato a basso consumo allo stato di funzionamento (S0).
In ognuna di queste situazioni, il driver del bus in modalità kernel ripristina il dispositivo (un dispositivo figlio del bus) allo stato funzionante (D0).
Per ogni driver di filtro e funzione basata su UMDF che supporta il dispositivo, il framework esegue le operazioni seguenti, in sequenza, un driver alla volta, a partire dal driver più basso nello stack di driver:
Il framework chiama la funzione di callback IPnpCallback::OnD0Entry del driver (se esistente).
Se il driver è il proprietario dei criteri di alimentazione del dispositivo, il framework chiama la funzione di callback IPowerPolicyCallbackWakeFromS0::OnDisarmWakeFromS0 o IPowerPolicyCallbackWakeFromSx::OnDisarmWakeFromSx .
Il framework riavvia tutte le code di I/O gestite dal dispositivo e chiama le funzioni di callback IQueueCallbackIoResume::OnIoResume (se necessario).
Se il driver usa I/O autogestito, il framework chiama la funzione di callback IPnpCallbackSelfManagedIo::OnSelfManagedIoRestart .
Per visualizzare un diagramma che mostra questi passaggi, vedere Plugs utente in un dispositivo.