Определение того, может ли устройство разбудить систему
Некоторые устройства, такие как клавиатуры, модемы и сетевые карты, могут реагировать на внешние сигналы в спящем режиме устройства. В рамках своей технологии управления питанием операционная система предоставляет таким устройствам способ пробуждения спящей системы, которая затем может восстановить ее предыдущий контекст. Механизм пробуждения программного обеспечения позволяет системе пробуждаться из любого состояния, кроме S5 (PowerSystemShutdown), в зависимости от поддержки в системе и оборудовании устройства и BIOS. Система в состоянии S5 всегда должна быть перезагружена.
Хотя операционная система предназначена для пробуждения от любого из промежуточных состояний спящего режима, точные возможности пробуждения зависят от компьютера и устройства к устройству. Не все компьютеры поддерживают все состояния спящего режима системы; Поэтому возможность выхода из определенных состояний на некоторых компьютерах бессмысленна.
Аналогичным образом, большинство устройств не поддерживают все состояния питания устройства (D0–D3) и не поддерживают пробуждение из всех состояний питания устройства, которые они поддерживают.
Состояния спящего режима, в которые может войти устройство, а также состояния, из которых оно поддерживает пробуждение, описываются при перечислении водителем автобуса и хранятся в DEVICE_CAPABILITIES структуре. В следующей таблице перечислены элементы этой структуры, относящиеся к поддержке ожидания и пробуждения.
Член | Описание |
---|---|
Значение true, если устройство поддерживает состояние PowerDeviceD1. |
|
Значение true, если устройство поддерживает состояние PowerDeviceD2. |
|
Значение true, если устройство может выйти из PowerDeviceD0. |
|
Значение true, если устройство может выйти из PowerDeviceD1. |
|
Значение true, если устройство может выйти из PowerDeviceD2. |
|
Значение true, если устройство может проснуться из PowerDeviceD3. |
|
DeviceState [PowerSystemMaximum] |
Указывает максимальное состояние питания устройства, которое это устройство может поддерживать для каждого состояния питания системы, от PowerSystemUnspecified до PowerSystemShutdown. |
Указывает наименьшее состояние питания системы (от S0 до S4), из которого может быть пробуждена система. |
|
Указывает наименьшее состояние питания устройства (D0–D3), из которого устройство может пробуждаться. |
В записи DeviceWake указано наименьшее состояние питания устройства, от которого устройство может реагировать на сигнал пробуждения. Значение PowerDeviceUnspecified указывает, что устройство не может разбудить систему. В записи SystemWake указано наименьшее состояние системы питания, из которого может быть пробуждена система. Эти значения основаны на возможностях родительского devnode, и драйверы не должны изменять их. Дополнительные сведения см. в разделе Возможности создания отчетов для устройств.
Как правило, устройство может разбудить систему, если верно следующее:
Устройство находится в состоянии питания, равном или большему значению DeviceWake .
Система находится в состоянии питания, равном или большему значению SystemWake .