функция обратного вызова EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 (wdfdevice.h)
[Относится к KMDF и UMDF]
Функция обратного вызова события EvtDeviceArmWakeFromS0 драйвера (т. е. включает) устройство, чтобы оно запустите сигнал пробуждения в состоянии устройства с низким энергопотреблением, если система остается в рабочем состоянии системы (S0).
Синтаксис
EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;
NTSTATUS EvtWdfDeviceArmWakeFromS0(
[in] WDFDEVICE Device
)
{...}
Параметры
[in] Device
Дескриптор объекта устройства платформы.
Возвращаемое значение
Если операция выполнена успешно, функция обратного вызова EvtDeviceArmWakeFromS0 должна возвращать STATUS_SUCCESS или другое значение состояния, для которого NT_SUCCESS(status) равно TRUE. В противном случае он должен возвращать значение состояния, для которого NT_SUCCESS (status) равно FALSE.
Если NT_SUCCESS(status) равно FALSE, платформа не вызывает функцию обратного вызова EvtDeviceDisarmWakeFromS0 драйвера. (Платформа не сообщает диспетчеру PnP о сбое устройства.)
Комментарии
Чтобы зарегистрировать функцию обратного вызова EvtDeviceArmWakeFromS0 , драйвер должен вызвать WdfDeviceInitSetPowerPolicyEventCallbacks. Кроме того, драйвер должен задать IdleCanWakeFromS0 в элементе IdleCapsструктуры WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS .
Функция обратного вызова EvtDeviceArmWakeFromS0 обрабатывает операции, относящиеся к конкретному устройству, которые необходимы для обнаружения устройства внешнего события, которое активирует сигнал пробуждения в шине. Функция обратного вызова EvtDeviceEnableWakeAtBus водителя автобуса обрабатывает операции, связанные с шиной, такие как включение сигнала события управления питанием (PME) шины PCI.
Если драйвер зарегистрировал функцию обратного вызова EvtDeviceArmWakeFromS0 , платформа вызывает ее, пока устройство все еще находится в состоянии питания устройства D0, прежде чем драйвер шины понижает состояние питания устройства, но после того, как платформа отправила IRP ожидания или пробуждения от имени драйвера.
Процесс выполняется в следующей последовательности:
- Платформа определяет, что устройство бездействует в течение предустановленного периода времени.
- Платформа вызывает функцию обратного вызова EvtDeviceArmWakeFromS0 драйвера.
- Платформа запрашивает драйвер для шины устройства, чтобы снизить мощность устройства.
Дополнительные сведения о том, когда платформа вызывает эту функцию обратного вызова, см. в статье Сценарии PnP и управления питанием.
Вам не нужно предоставлять функцию обратного вызова EvtDeviceArmWakeFromS0 , если устройство:
- Usb-устройство, поддерживающее "выборочную приостановку".
- Не может быть выключен, пока система остается полностью питанием.
- Не требуются специальные аппаратные операции, позволяющие устройству активировать сигнал пробуждения.
Дополнительные сведения об этой функции обратного вызова см. в разделе Поддержка выключения бездействующего включения.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |
IRQL | PASSIVE_LEVEL |