функция обратного вызова 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 ожидания/пробуждения от имени драйвера.
Процесс выполняется в следующей последовательности:
- Платформа определяет, что система вот-вот перейдет в состояние системы с низким энергопотреблением.
- Платформа вызывает функцию обратного вызова EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason драйвера.
- Платформа запрашивает у водителя шину устройства, чтобы снизить мощность устройства.
Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в разделе Сценарии PnP и управления питанием.
Вам не нужно предоставлять функцию обратного вызова EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason , если для устройства не требуются специальные аппаратные операции, позволяющие устройству активировать сигнал пробуждения.
Дополнительные сведения об этой функции обратного вызова см. в разделе Поддержка пробуждения системы.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
IRQL | PASSIVE_LEVEL |