EVT_HIDSPICX_NOTIFY_POWERDOWN función de devolución de llamada (hidspicx.h)
El controlador de cliente implementa la función de devolución de llamada EvtHidspicxNotifyPowerdown para recibir notificaciones cuando el dispositivo está a punto de pasar a un estado de baja potencia.
Sintaxis
EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;
NTSTATUS EvtHidspicxNotifyPowerdown(
WDFDEVICE Device,
BOOLEAN ArmForWake
)
{...}
Parámetros
Device
Identificador de un objeto de dispositivo de marco que el controlador cliente obtuvo de una llamada anterior a WdfDeviceCreate.
ArmForWake
Valor booleano que indica si el dispositivo se armará para la reactivación en el estado de destino para la transición de energía inminente.
Valor devuelto
NTSTATUS que indica si la preparación para la transición de energía se realizó correctamente o no. No se espera que este método produzca un error en tiempo de ejecución y puede provocar un error en el dispositivo por HidSpiCx.
Observaciones
Se espera que el controlador cliente implemente y proporcione una devolución de llamada que HidSpiCx usará para notificar al cliente una apagado inminente. El propósito de esta devolución de llamada es permitir que la extensión de clase indique al cliente que detenga el procesamiento de interrupciones del dispositivo, ya que el dispositivo está a punto de entrar en un estado de baja potencia. El cliente no debe reanudar el procesamiento de interrupciones hasta que se haya producido una devolución de llamada a la devolución de llamada D0Entry WDF del cliente.
El propósito de esta función es evitar el caso al entrar en un estado de suspensión en el que la extensión de clase envía un comando SET_POWER SLEEP
al dispositivo y el dispositivo declara la interrupción para reactivarse antes de que la extensión de clase y el controlador de cliente complete dx IRP. Sin una devolución de llamada adicional que indique al cliente que detenga el procesamiento de hardware de las interrupciones, el hardware emitiría una lectura spi en respuesta a una interrupción de reactivación, lo que infringiría el protocolo que requiere que el host envíe primero un comando de SET_POWER ON
antes de procesar interrupciones del dispositivo.
La extensión de clase llamará a esta función en IRQL pasivo y el cliente no debe devolverse hasta que el procesamiento de interrupciones haya dejado de funcionar.
Si el dispositivo se armará o no para reactivarse en el nivel de autobús se proporciona al cliente como comodidad, lo que permite al controlador cliente evitar la supervisión de comandos de WAIT_WAKE
si no es un conductor de autobús.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 11 |
encabezado de | hidspicx.h |
irQL | PASSIVE_LEVEL |