EVT_WDF_DEVICE_D0_EXIT funzione di callback (wdfdevice.h)
[Si applica a KMDF e UMDF]
La funzione di callback dell'evento EvtDeviceD0Exit di un driver esegue operazioni necessarie quando il dispositivo del driver lascia lo stato di alimentazione D0.
Sintassi
EVT_WDF_DEVICE_D0_EXIT EvtWdfDeviceD0Exit;
NTSTATUS EvtWdfDeviceD0Exit(
[in] WDFDEVICE Device,
[in] WDF_POWER_DEVICE_STATE TargetState
)
{...}
Parametri
[in] Device
Handle per un oggetto dispositivo framework.
[in] TargetState
Enumeratore WDF_POWER_DEVICE_STATE tipizzato che identifica lo stato di alimentazione del dispositivo che il dispositivo sta per entrare.
Valore restituito
Se la funzione di callback EvtDeviceD0Exit non rileva errori, deve restituire STATUS_SUCCESS o un altro valore di stato per il quale NT_SUCCESS(stato) è uguale a TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(stato) equivale a FALSE.
Commenti
Per registrare una funzione di callback EvtDeviceD0Exit , un driver deve chiamare WdfDeviceInitSetPnpPowerEventCallbacks.
Se il driver ha registrato una funzione di callback EvtDeviceD0Exit , il framework chiama la funzione ogni volta che uno dei dispositivi del driver lascia lo stato funzionante (D0). Un dispositivo lascia lo stato D0 quando si verifica uno dei seguenti:
- Il sistema e tutti i suoi dispositivi stanno per lasciare i loro stati di lavoro e immettere uno stato di bassa potenza.
- Il dispositivo sta per immettere uno stato di bassa potenza perché è inattiva, se il dispositivo supporta l'inattività a bassa potenza.
- Il gestore Plug and Play sta tentando di ridistribuire le risorse hardware del sistema.
- Un utente ha indicato, in genere tramite l'interfaccia utente di un'applicazione, che vuole rimuovere il dispositivo.
Per altre informazioni su quando il framework chiama questa funzione di callback, vedere Scenari di Gestione energia e PnP.
A meno che il dispositivo non sia stato rimosso a sorpresa, il framework chiama questa funzione di callback immediatamente dopo aver disabilitato gli interruzioni del dispositivo, ma prima che l'alimentazione del dispositivo venga ridotta da D0. Il parametro TargetState identifica lo stato di alimentazione del dispositivo che il dispositivo sta per immettere.
La funzione di callback EvtDeviceD0Exit deve eseguire tutte le operazioni necessarie prima che il dispositivo entri nello stato di bassa potenza specificato, ad esempio il salvataggio di tutte le informazioni necessarie per il driver in seguito per ripristinare lo stato di alimentazione D0 del dispositivo.
Se il parametro TargetState è WdfPowerDevicePrepareForHibernation, il driver non deve arrestare il dispositivo, perché il sistema userà il dispositivo durante il salvataggio del file di ibernazione.
Se TargetState è WdfPowerDeviceD3Final, è consigliabile presupporre che il sistema sia disattivato, il dispositivo sta per essere rimosso o che sia in corso un ribilanciamento della risorsa . Se il driver deve salvare le informazioni, deve scriverlo su disco o su un altro supporto di archiviazione permanente. Tuttavia, non è corretto controllare WdfPowerDeviceD3Final e quindi eseguire la pulizia per la rimozione del dispositivo. Ad esempio, se un dispositivo che ha immesso lo stato di alimentazione Dx a causa dell'inattività viene rimosso successivamente, il dispositivo EvtDeviceD0Exit non verrà chiamato di nuovo. Il posto corretto per eseguire questo lavoro sarebbe invece in EvtDeviceReleaseHardware .
Per altre informazioni sui driver che forniscono questa funzione di callback, vedere Supporto di PnP e Power Management nei driver di funzione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfdevice.h (includere Wdf.h) |
IRQL | PASSIVE_LEVEL |