EVT_WDF_DEVICE_D0_ENTRY funzione di callback (wdfdevice.h)

[Si applica a KMDF e UMDF]

La funzione di callback dell'evento EvtDeviceD0Entry di un driver esegue operazioni necessarie quando il dispositivo del driver entra nello stato di alimentazione D0.

Sintassi

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

[in] PreviousState

Enumeratore WDF_POWER_DEVICE_STATE tipizzato che identifica lo stato di alimentazione del dispositivo precedente.

Valore restituito

Se la funzione di callback EvtDeviceD0Entry 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.

Per altre informazioni sui valori restituiti della funzione di callback, vedere Segnalazione di errori del dispositivo.

Il framework non chiama la funzione di callback EvtDeviceD0Exit del driver dopo la funzione di callback EvtDeviceD0Entry restituisce un valore di stato per il quale NT_SUCCESS(stato) è uguale a FALSE.

Commenti

Per registrare una funzione di callback EvtDeviceD0Entry per un dispositivo, un driver deve chiamare WdfDeviceInitSetPnpPowerEventCallbacks.

Se il driver ha registrato una funzione di callback EvtDeviceD0Entry per un dispositivo, il framework chiama la funzione ogni volta che il dispositivo entra nello stato di lavoro (D0). Un dispositivo immetterà lo stato D0 quando si verifica una delle operazioni seguenti:

  • Un dispositivo viene enumerato (perché il dispositivo è stato collegato o il sistema è stato riavviato).
  • Il sistema e tutti i suoi dispositivi tornano agli stati di lavoro da uno stato di bassa potenza.
  • Il dispositivo torna allo stato di funzionamento dopo che ha immesso uno stato di bassa potenza perché era inattivo (se il dispositivo supporta l'inattività a bassa potenza).
  • Il gestore Plug and Play ha ridistribuito le risorse hardware del sistema tra i dispositivi del sistema.
Il framework chiama la funzione di callback EvtDeviceD0Entry immediatamente dopo che il dispositivo entra nello stato di lavoro (D0) e è disponibile per il driver, ma prima che siano stati abilitati gli interruzioni del dispositivo. Il parametro PreviousState identifica lo stato di alimentazione del dispositivo in cui il dispositivo si trovava prima di entrare nello stato D0. Quando il framework chiama prima EvtDeviceD0Entry, fornisce un valore PreviousState di WdfPowerDeviceD3Final.

La funzione di callback deve eseguire tutte le operazioni necessarie per rendere il dispositivo completamente operativo, ad esempio il caricamento del firmware o l'abilitazione delle funzionalità del dispositivo disabilitate quando il dispositivo è in uno stato a bassa potenza.

Se la funzione di callback EvtDeviceD0Entry restituisce un valore di stato per cui NT_SUCCESS(status) è FALSE, il framework esegue le operazioni seguenti:

  • Se il dispositivo inizia per la prima volta, il framework inizia una sequenza di rimozione ordinata per il dispositivo.
  • Se il dispositivo restituisce uno stato di bassa potenza allo stato di funzionamento, il framework inizia una sequenza di rimozione a sorpresa per il dispositivo.
Il framework non chiama la funzione di callback EvtDeviceD0Exit del driver in una di queste situazioni.

Per altre informazioni su quando il framework chiama la funzione di callback EvtDeviceD0Entry , vedere Scenari di PnP e Power Management.

Per altre informazioni sui driver che forniscono questa funzione di callback, vedere Supporto di PnP e Power Management nei driver di funzione.

La funzione di callback EvtDeviceD0Entry viene chiamata in IRQL = PASSIVE_LEVEL. Non è consigliabile rendere questa funzione di callback paginabile.

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 (vedere la sezione Osservazioni)

Vedi anche

EvtDeviceD0Exit