функция обратного вызова EVT_WDF_DEVICE_ARM_WAKE_FROM_SX (wdfdevice.h)

[Применимо к KMDF и UMDF]

Функция обратного вызова события EvtDeviceArmWakeFromSx драйвера (т. е. включает) устройство, которое может активировать сигнал пробуждения, находясь в состоянии устройства с низким энергопотреблением. Сигнал пробуждения приводит к тому, что устройство переходит в рабочее состояние (D0), а система переходит в рабочее состояние (S0).

Синтаксис

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX EvtWdfDeviceArmWakeFromSx;

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

Параметры

[in] Device

Дескриптор объекта устройства платформы.

Возвращаемое значение

Если функция обратного вызова EvtDeviceArmWakeFromSx не обнаруживает ошибок, она должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS(status) равно FALSE.

Если NT_SUCCESS(status) равно FALSE, платформа вызывает функцию обратного вызова EvtDeviceDisarmWakeFromSx драйвера. (Платформа не сообщает диспетчеру PnP о сбое устройства.)

Комментарии

Чтобы зарегистрировать функцию обратного вызова EvtDeviceArmWakeFromSx , драйвер должен вызвать WdfDeviceInitSetPowerPolicyEventCallbacks. Драйверы могут регистрировать функцию обратного вызова EvtDeviceArmWakeFromSx или функцию обратного вызова EvtDeviceArmWakeFromSxWithReason , но не обе функции.

Эта функция обратного вызова обрабатывает операции, связанные с устройством, которые необходимы для обнаружения внешнего события, которое активирует сигнал пробуждения в шине. Функция обратного вызова EvtDeviceEnableWakeAtBus водителя шины обрабатывает операции, связанные с шиной, такие как включение сигнала события управления питанием (PME) шины PCI.

Если драйвер зарегистрировал функцию обратного вызова EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason , платформа вызывает ее, пока устройство все еще находится в состоянии питания устройства D0, прежде чем драйвер шины понижает состояние питания устройства, но после того, как платформа отправит IRP ожидания/пробуждения от имени драйвера.

Процесс выполняется в следующей последовательности:

  1. Платформа определяет, что система вот-вот перейдет в состояние системы с низким энергопотреблением.
  2. Платформа вызывает функцию обратного вызова EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason драйвера.
  3. Платформа запрашивает у водителя шину устройства, чтобы снизить мощность устройства.
Непосредственно перед переходом устройства в состояние низкого энергопотребления платформа вызывает функцию обратного вызова EvtDeviceD0Exit драйвера.

Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в разделе Сценарии PnP и управления питанием.

Вам не нужно предоставлять функцию обратного вызова EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason , если для устройства не требуются специальные аппаратные операции, позволяющие устройству активировать сигнал пробуждения.

Дополнительные сведения об этой функции обратного вызова см. в разделе Поддержка пробуждения системы.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)
IRQL PASSIVE_LEVEL

См. также раздел

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSxWithReason

EvtDeviceDisarmWakeFromSx