Condividi tramite


EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 funzione di callback (wdfdevice.h)

[Si applica a KMDF e UMDF]

Un driver EvtDeviceArmWakeFromS0 le braccia della funzione di callback degli eventi (ovvero abilita) un dispositivo in modo che possa attivare un segnale di riattivazione mentre è in uno stato di dispositivo a basso consumo, se il sistema rimane nello stato di lavoro del sistema (S0).

Sintassi

EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;

NTSTATUS EvtWdfDeviceArmWakeFromS0(
  [in] WDFDEVICE Device
)
{...}

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

Valore restituito

Se l'operazione ha esito positivo, la funzione di callback EvtDeviceArmWakeFromS0 deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(stato) è uguale TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS( stato) è uguale a FALSE.

Se NT_SUCCESS(stato) è uguale a FALSE, il framework non chiama la funzione di callback del driver EvtDeviceDisarmWakeFromS 0. Il framework non segnala un errore del dispositivo al gestore PnP.

Osservazioni

Per registrare un EvtDeviceArmWakeFromS0 funzione di callback, un driver deve chiamare WdfDeviceInitSetPowerPolicyEventCallbacks. Inoltre, il driver deve impostare IdleCanWakeFromS0 nel membro IdleCaps della relativa struttura di WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS.

Il EvtDeviceArmWakeFromS0 funzione di callback gestisce operazioni specifiche del dispositivo necessarie per consentire al dispositivo di rilevare un evento esterno che attiva un segnale di riattivazione sul bus. Il conducente del bus EvtDeviceEnableWakeAtBus funzione di callback gestisce operazioni specifiche del bus, ad esempio l'abilitazione del segnale DELL'evento di risparmio energia del bus PCI.

Se il driver ha registrato un EvtDeviceArmWakeFromS0 funzione di callback, il framework lo chiama mentre il dispositivo è ancora nello stato di alimentazione del dispositivo D0, prima che il driver del bus abbassa lo stato di alimentazione del dispositivo, ma dopo che il framework ha inviato un IRP di attesa/riattivazione per conto del driver.

Il processo si verifica nella sequenza seguente:

  1. Il framework determina che il dispositivo è rimasto inattivo per un periodo di tempo preimpostato.
  2. Il framework chiama il driver EvtDeviceArmWakeFromS0 funzione di callback.
  3. Il framework richiede al driver del bus del dispositivo di ridurre la potenza del dispositivo.
Immediatamente prima che il dispositivo entri in uno stato di basso consumo, il framework chiamerà il EvtDeviceD0Exit funzione di callback del driver.

Per altre informazioni sui casi in cui il framework chiama questa funzione di callback, vedere scenari di risparmio energia e PnP.

Non è necessario fornire una funzione di callback EvtDeviceArmWakeFromS0 se il dispositivo:

  • Dispositivo USB che supporta la "sospensione selettiva".
  • Non può essere spento mentre il sistema rimane completamente alimentato.
  • Non richiede operazioni hardware speciali che consentono al dispositivo di attivare un segnale di riattivazione.
Se il dispositivo supporta la "sospensione selettiva" USB e se il driver imposta IdleUsbSelectiveSuspend nel IdleCaps membro della relativa struttura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS, il framework invia una richiesta "sospensione selettiva" al driver del bus USB quando il dispositivo è inattivo per un periodo di tempo preimpostato.

Per altre informazioni su questa funzione di callback, vedere Supporto dell'di power-down inattivo.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

Vedere anche

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromS0