EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 función de devolución de llamada (wdfdevice.h)
[Se aplica a KMDF y UMDF]
Los brazos de función de devolución de llamada de evento EvtDeviceArmWakeFromS0 de un controlador (es decir, habilita) un dispositivo para que pueda desencadenar una señal de reactivación mientras está en estado de dispositivo de bajo consumo, si el sistema permanece en estado de funcionamiento del sistema (S0).
Sintaxis
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;
NTSTATUS EvtWdfDeviceArmWakeFromS0(
[in] WDFDEVICE Device
)
{...}
Parámetros
[in] Device
Identificador de un objeto de dispositivo de marco.
Valor devuelto
Si la operación se realiza correctamente, la función de devolución de llamada EvtDeviceArmWakeFromS0 debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) sea TRUE. De lo contrario, debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Si NT_SUCCESS(status) es igual a FALSE, el marco no llama a la función de devolución de llamada EvtDeviceDisarmWakeFromS0 del controlador. (El marco no notifica un error de dispositivo al administrador de PnP).
Comentarios
Para registrar una función de devolución de llamada EvtDeviceArmWakeFromS0 , un controlador debe llamar a WdfDeviceInitSetPowerPolicyEventCallbacks. Además, el controlador debe establecer IdleCanWakeFromS0 en el miembro IdleCaps de su estructura de WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS .
La función de devolución de llamada EvtDeviceArmWakeFromS0 controla las operaciones específicas del dispositivo necesarias para permitir que el dispositivo detecte un evento externo que desencadene una señal de reactivación en el bus. La función de devolución de llamada EvtDeviceEnableWakeAtBus del controlador de autobús controla las operaciones específicas del bus, como habilitar la señal del evento de administración de energía (PME) del bus PCI.
Si el controlador ha registrado una función de devolución de llamada EvtDeviceArmWakeFromS0 , el marco lo llama mientras el dispositivo sigue en estado de alimentación del dispositivo D0, antes de que el controlador de bus reduzca el estado de alimentación del dispositivo, pero después de que el marco haya enviado un IRP de espera/reactivación en nombre del controlador.
El proceso se produce en la secuencia siguiente:
- El marco determina que el dispositivo ha estado inactivo durante un período de tiempo preestablecido.
- El marco llama a la función de devolución de llamada EvtDeviceArmWakeFromS0 del controlador.
- El marco solicita al controlador que el bus del dispositivo reduzca la potencia del dispositivo.
Para obtener más información sobre cuándo el marco llama a esta función de devolución de llamada, consulte Escenarios de administración de energía y PnP.
No es necesario proporcionar una función de devolución de llamada EvtDeviceArmWakeFromS0 si el dispositivo:
- Es un dispositivo USB que admite "suspensión selectiva".
- No se puede apagar mientras el sistema permanece totalmente encendido.
- No requiere operaciones de hardware especiales que permitan al dispositivo desencadenar una señal de reactivación.
Para obtener más información sobre esta función de devolución de llamada, consulte Compatibilidad con el apagado inactivo.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Versión mínima de UMDF | 2.0 |
Encabezado | wdfdevice.h (incluya Wdf.h) |
IRQL | PASSIVE_LEVEL |