EVT_HIDSPICX_NOTIFY_POWERDOWN função de retorno de chamada (hidspicx.h)
A função de retorno de chamada EvtHidspicxNotifyPowerdown é implementada pelo driver cliente para receber notificações quando o dispositivo está prestes a fazer a transição para um estado de baixa potência.
Sintaxe
EVT_HIDSPICX_NOTIFY_POWERDOWN EvtHidspicxNotifyPowerdown;
NTSTATUS EvtHidspicxNotifyPowerdown(
WDFDEVICE Device,
BOOLEAN ArmForWake
)
{...}
Parâmetros
Device
Um identificador para um objeto de dispositivo de estrutura que o driver cliente obteve de uma chamada anterior para WdfDeviceCreate.
ArmForWake
Valor booliano que indica se o dispositivo estará armado para ativação no estado de destino para a transição de energia iminente.
Retornar valor
NTSTATUS indicando se a preparação para a transição de energia foi bem-sucedida ou não. Esse método não deve falhar em runtime e pode resultar em uma falha do dispositivo por HidSpiCx.
Comentários
Espera-se que o driver do cliente implemente e forneça um retorno de chamada que HidSpiCx usará para notificar o cliente de uma queda de energia iminente. A finalidade desse retorno de chamada é permitir que a extensão de classe instrua o cliente a parar de processar interrupções do dispositivo, pois o dispositivo está prestes a entrar em um estado de baixa potência. O cliente não deve retomar o processamento de interrupções até que ocorra um retorno de chamada para o retorno de chamada do WDF D0Entry do cliente.
A finalidade dessa função é evitar o caso ao entrar em um estado de suspensão em que a extensão de classe envia um SET_POWER SLEEP
comando para o dispositivo e o dispositivo declara a interrupção para ativar antes que o Dx IRP seja concluído pela extensão de classe e pelo driver cliente. Sem um retorno de chamada adicional instruindo o cliente a interromper o processamento de hardware de interrupções, o hardware emitiria um SPI lido em resposta a uma interrupção de ativação, o que violaria o protocolo que exige que o host primeiro envie um SET_POWER ON
comando antes de processar interrupções do dispositivo.
Essa função será chamada pela extensão de classe no IRQL passivo e o cliente não deverá retornar até que o processamento de interrupção seja interrompido.
Se o dispositivo será ou não armado para ativação no nível do ônibus é fornecido ao cliente como uma conveniência, permitindo que o motorista cliente evite o monitoramento de WAIT_WAKE
comandos se ele não for um motorista de ônibus.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 11 |
Cabeçalho | hidspicx.h |
IRQL | PASSIVE_LEVEL |