Compartilhar via


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

Confira também

Estados de energia do dispositivo

Estados de Low-Power do dispositivo