Поделиться через


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

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

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

Синтаксис

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON EvtWdfDeviceArmWakeFromSxWithReason;

NTSTATUS EvtWdfDeviceArmWakeFromSxWithReason(
  [in] WDFDEVICE Device,
  [in] BOOLEAN DeviceWakeEnabled,
  [in] BOOLEAN ChildrenArmedForWake
)
{...}

Параметры

[in] Device

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

[in] DeviceWakeEnabled

Логическое значение, которое, если значение TRUE, указывает на то, что устройство включено для пробуждения системы.

[in] ChildrenArmedForWake

Логическое значение, которое, если значение TRUE, указывает на то, что одно или несколько дочерних устройств могут активировать систему.

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

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

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

Комментарии

Версия 1.7 и более поздние версии KMDF поддерживают функцию обратного вызова EvtDeviceArmWakeFromSxWithReason в дополнение к функции обратного вызова EvtDeviceArmWakeFromSx .

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

Функция обратного вызова EvtDeviceArmWakeFromSxWithReason предоставляет два параметра, которые позволяют драйверу определить, почему платформа вызвала ее:

  • Платформа задает для параметра DeviceWakeEnabled значение TRUE , если элемент Enabledструктуры WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS указывает, что устройство может разбудить систему.
  • Платформа задает для параметра ChildrenArmedForWake значение TRUE , если одно или несколько дочерних устройств устройства могут разбудить систему, а члену ArmForWakeIfChildrenAreArmedForWake WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS присвоено значение TRUE.
Один или оба этих параметра могут иметь значение TRUE из-за следующих сценариев:
  • Устройство драйвера включено для пробуждения системы.
  • Одно или несколько дочерних устройств устройства могут активировать систему.
  • Устройство и одно или несколько его дочерних устройств могут активировать систему.
Дополнительные сведения о функции обратного вызова EvtDeviceArmWakeFromSxWithReason см. в разделе Примечания статьи EvtDeviceArmWakeFromSx.

Требования

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

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

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromSx