DeviceWake
Элемент DeviceWakeDEVICE_CAPABILITIES содержит наименьшее (наименьшее) состояние питания устройства, из которого устройство может сигнализировать о событии пробуждения, или PowerDeviceUnspecified , если устройство не может проснуться в ответ на внешний сигнал.
Драйвер автобуса задает это значение. Драйвер более высокого уровня может изменить значение на состояние с более высокой энергопотреблением. Например, если драйвер шины задает для Параметра DeviceWake значение D3, но драйвер дальше по стеку устройств поддерживает пробуждение только из D2, драйвер более высокого уровня может изменить значение на D2.
Обратите внимание, что если драйвер изменяет DeviceWake, ему также может потребоваться изменить SystemWake , чтобы избежать конфликтов с сопоставлениями системы и устройства в массиве DeviceState . Например, предположим, что драйвер автобуса задает следующее:
DeviceState[PowerSystemSleeping1] = PowerDeviceD1
DeviceState[PowerSystemSleeping2] = PowerDeviceD3
DeviceWake = PowerDeviceD3
SystemWake = PowerSystemSleeping2
Если драйвер более высокого уровня определяет, что его устройство не может разбудить систему с D3, но только с D2 или выше, он может изменить DeviceWake на D2. Однако это изменение приводит к невозможности сопоставления между S2 и D3. Помните, что в массиве DeviceState перечислены самые высокие состояния питания устройства, которые устройство может поддерживать для заданного состояния питания системы. Если в примере используется состояние питания системы PowerSystemSleeping2, состоянием питания устройства не может быть PowerDeviceD2. Чтобы устранить эту проблему, драйвер также должен изменить SystemWake на PowerSystemSleeping1. То же самое относится к параметрам WakeFromDx и DeviceDx . Драйвер должен убедиться, что все изменения, внесенные в SystemWake или DeviceWake , не конфликтуют со значениями WakeFromDx и DeviceDx . Значения WakeFromDx и DeviceDx отражают характеристики оборудования, которые драйвер не может изменить.
Если элементы SystemWake и DeviceWake являются ненулевыми (то есть не powerSystemUnspecified), устройство и его драйверы поддерживают пробуждение в этой системе.
На оборудовании, отличном от ACPI, элемент DeviceWake содержит ноль (PowerSystemUnspecified).