Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Все версии Windows позволяют устройству находиться в D3cold во время сна компьютера (в одном из системных состояний с низкой мощностью S1–S4). Прежде чем компьютер переходит из S0, функциональные драйверы, драйверы шины и фильтровые драйверы работают вместе, чтобы перевести устройство в D3hot. Когда компьютер входит в состояние SX с низкой мощностью, этот переход имеет побочный эффект перемещения устройства из D3hot в D3cold.
Начиная с Windows 8 устройство может войти и выйти из D3cold, пока компьютер остается в S0. Драйвер, который является владельцем политики питания (PPO) для устройства, может включать и отключать переход в состояние D3cold. Драйвер не должен переводить устройство в состояние D3cold, если устройство не может, при необходимости, выйти из D3cold и возобновить нормальную работу после перехода в D0.
Когда устройство переводится в состояние D3, оно изначально переходит в подстатус D3hot. Из состояния D3hot устройство может перейти в D0 или D3cold. В ответ на событие пробуждения или запрос ввода-вывода устройство переходит из состояния D3hot в состояние D0. В противном случае устройство может остаться в D3hot или перейти от D3hot к D3cold. Дополнительные сведения об этих переходах см. в диаграмме состояний питания устройства в Состояния Питания Устройства.
Драйвер не инициирует переход устройства с D3hot на D3cold. Вместо этого переход происходит, когда все другие устройства, совместно использующие общий источник питания с данным устройством, находятся в D3hot и готовы перейти в D3cold. Когда последние из этих устройств переходят в состояние D3hot, базовые драйверы шины и системное встроенное ПО отключают источник питания, а устройства одновременно переходят в состояние D3cold.
Драйвер PPO для устройства сообщает операционной системе, следует ли включить переход устройства с D3hot на D3cold. Драйвер может предоставить эти сведения в INF-файле, который устанавливает устройство, или драйвер может вызвать подпрограмму SetD3ColdSupport во время выполнения, чтобы динамически включить или отключить переходы устройства на D3cold. Для получения дополнительной информации см. раздел Использование интерфейса драйвера GUID_D3COLD_SUPPORT_INTERFACE.
Включив устройство в D3cold, драйвер гарантирует следующее поведение:
- Устройство может терпеть переход от D3hot к D3cold, когда компьютер останется в S0.
- Устройство будет правильно работать, когда оно возвращается из D3cold в D0.
Устройство, которое не соответствует либо требованию, может быть недоступно после ввода D3cold, пока компьютер не перезагрузится или не войдет в спящее состояние. Если устройство должно иметь возможность сигнализировать о событии пробуждения из любого состояния Dx с низким энергопотреблением, в которое оно входит, переход в состояние D3cold не должен быть разрешён, если драйвер не уверен, что сигнал пробуждения устройства будет работать в D3cold.
Размещение устройства в D3cold не обязательно означает, что все источники питания устройства были удалены; это означает, что только источники энергии, которые позволяют обмену данными с устройством через шину, исчезли. Устройство все еще может получить достаточно энергии, чтобы сообщить процессору о событии пробуждения. Например, сетевой адаптер Ethernet, основной источник питания которого удален, может извлечь питание из кабеля Ethernet.
Так как D3cold — это состояние, в котором шина не может использоваться для взаимодействия с устройством, драйвер не может напрямую поместить устройство в D3cold. Вместо этого драйвер сначала вызывает процедуру PoRequestPowerIrp, чтобы запросить IRP питания D3 (запрос IRP_MN_SET_POWER с целевым состоянием = PowerDeviceD3) для перемещения устройства с D0 на D3hot. После ввода D3hot устройство может или не перейти с D3hot на D3cold. Устройство переходит в состояние D3cold только в том случае, если питание на шине отключается, что происходит, если драйвер родительской шины отключает шину или если системное встроенное ПО отключает питание части аппаратной платформы.