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


Поддерживающая Система Wake-Up

Хотя система находится в состоянии низкой мощности, некоторые устройства могут обнаруживать внешнее событие, например входящий сетевой пакет, а затем проснуть систему. Например, если устройство PCI имеет возможность пробуждения системы, как указано в регистре возможностей управления питанием (PMC) устройства, он просыпает систему, вызывая сигнал события управления питанием (PME) на шине PCI.

Если ваше устройство может вывести систему из состояния пониженного энергопотребления, функция обратного вызова EvtDriverDeviceAdd в владельце политик питания должна выполнить следующие два шага:

  1. Чтобы указать, вызовите WdfDeviceAssignSxWakeSettings:

    • Состояние низкой мощности, в которое будет входить устройство
    • Могут ли пользователи управлять параметрами простоя устройства
    • Включена или отключена ли возможность пробуждения устройства

    Дополнительные сведения об этих параметрах см. в структуре WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS.

  2. Вызовите WdfDeviceInitSetPowerPolicyEventCallbacks, чтобы зарегистрировать следующие функции обратного вызова событий, если они необходимы для вашего устройства.

    • EvtDeviceArmWakeFromSx или EvtDeviceArmWakeFromSxWithReason, что позволяет оборудованию устройства реагировать на внешнее событие пробуждения.
    • EvtDeviceDisarmWakeFromSx, что отключает способность устройства реагировать на внешние события пробуждения.
    • EvtDeviceWakeFromSxTriggered, который сообщает водителю, что автобус обнаружил сигнал пробуждения.

Водители автобусов также участвуют в пробуждении системы. Драйвер шины устройства обычно предоставляет функции обратного вызова EvtDeviceEnableWakeAtBus и EvtDeviceDisableWakeAtBus. Эти функции выполняют все необходимые действия на адаптере шины для включения и отключения возможности устройства пробуждаться от состояния низкого энергопотребления.

Когда драйвер шины определяет, что устройство активировало сигнал пробуждения, он должен вызывать WdfDeviceIndicateWakeStatus, чтобы уведомить платформу о том, что питание устройства должно быть восстановлено. Затем платформа передает эти сведения остальным драйверам в стеке драйверов.

Сведения о записях реестра, которые управляют возможностями пробуждения устройства, см. в разделе Управление пользователем простоя и поведения пробуждения устройства.