Compartilhar via


EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 função de retorno de chamada (wdfdevice.h)

[Aplica-se a KMDF e UMDF]

A função de retorno de chamada de evento EvtDeviceArmWakeFromS0 de um driver (ou seja, habilita) um dispositivo para que ele possa disparar um sinal de ativação enquanto estiver em um estado de dispositivo de baixa potência, se o sistema permanecer no estado de trabalho do sistema (S0).

Sintaxe

EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;

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

Parâmetros

[in] Device

Um identificador para um objeto de dispositivo de estrutura.

Retornar valor

Se a operação for bem-sucedida, a função de retorno de chamada EvtDeviceArmWakeFromS0 deverá retornar STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, ele deverá retornar um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Se NT_SUCCESS(status) for igual a FALSE, a estrutura não chamará a função de retorno de chamada EvtDeviceDisarmWakeFromS0 do driver. (A estrutura não relata uma falha de dispositivo para o gerenciador PnP.)

Comentários

Para registrar uma função de retorno de chamada EvtDeviceArmWakeFromS0 , um driver deve chamar WdfDeviceInitSetPowerPolicyEventCallbacks. Além disso, o driver deve definir IdleCanWakeFromS0 no membro IdleCaps de sua estrutura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS .

A função de retorno de chamada EvtDeviceArmWakeFromS0 manipula operações específicas do dispositivo necessárias para permitir que o dispositivo detecte um evento externo que dispara um sinal de ativação no barramento. A função de retorno de chamada EvtDeviceEnableWakeAtBus do motorista do barramento lida com operações específicas do barramento, como habilitar o sinal pme (evento de gerenciamento de energia) do barramento PCI.

Se o driver tiver registrado uma função de retorno de chamada EvtDeviceArmWakeFromS0 , a estrutura a chamará enquanto o dispositivo ainda estiver no estado de energia do dispositivo D0, antes que o driver de barramento reduza o estado de energia do dispositivo, mas depois que a estrutura enviar um IRP de espera/ativação em nome do driver.

O processo ocorre na seguinte sequência:

  1. A estrutura determina que o dispositivo ficou ocioso por um período predefinido.
  2. A estrutura chama a função de retorno de chamada EvtDeviceArmWakeFromS0 do driver.
  3. A estrutura solicita ao driver que o barramento do dispositivo diminua a potência do dispositivo.
Imediatamente antes de seu dispositivo entrar em um estado de baixa potência, a estrutura chamará a função de retorno de chamada EvtDeviceD0Exit do driver.

Para obter mais informações sobre quando a estrutura chama essa função de retorno de chamada, consulte Cenários de gerenciamento de energia e PnP.

Você não precisa fornecer uma função de retorno de chamada EvtDeviceArmWakeFromS0 se o dispositivo:

  • É um dispositivo USB que dá suporte à "suspensão seletiva".
  • Não é possível desligar enquanto o sistema permanece totalmente ligado.
  • Não requer operações de hardware especiais que permitem que o dispositivo dispare um sinal de ativação.
Se o dispositivo der suporte à "suspensão seletiva" usb e se o driver definir IdleUsbSelectiveSuspend no membro IdleCaps de sua estrutura de WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS , a estrutura enviará uma solicitação de "suspensão seletiva" para o driver de barramento USB quando o dispositivo estiver ocioso por um período predefinido.

Para obter mais informações sobre essa função de retorno de chamada, consulte Suporte à ociosidade de energia para baixo.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Versão mínima do UMDF 2,0
Cabeçalho wdfdevice.h (inclua Wdf.h)
IRQL PASSIVE_LEVEL

Confira também

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromS0