Partilhar via


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

[Aplica-se a KMDF e UMDF]

O de um driver EvtDeviceArmWakeFromS0 braços de função de retorno de chamada de evento (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.

Valor de retorno

Se a operação for bem-sucedida, a função de retorno de chamada EvtDeviceArmWakeFromS0 deverá retornar STATUS_SUCCESS ou outro valor de status para o qual NT_SUCCESS(status) é igual VERDADEIRO. Caso contrário, ele deverá retornar um valor de 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 do driver EvtDeviceDisarmWakeFromS0. (A estrutura não relata uma falha de dispositivo para o gerenciador PnP.)

Observações

Para registrar uma função de retorno de chamada EvtDeviceArmWakeFromS0, um driver deve chamar WdfDeviceInitSetPowerPolicyEventCallbacks. Além disso, o driver deve definir IdleCanWakeFromS0 no idleCaps membro 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 de ônibus lida com operações específicas do barramento, como habilitar o sinal de 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 ônibus reduza o estado de energia do dispositivo, mas depois que a estrutura enviar uma 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 do driver EvtDeviceArmWakeFromS0.
  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 PnP e gerenciamento de energia.

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 IdleCaps membro 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 de tempo.

Para obter mais informações sobre essa função de retorno de chamada, consulte Suporte aode power-down ocioso.

Requisitos

Requisito Valor
da 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

Consulte também

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromS0