Функция PoFxNotifySurprisePowerOn (wdm.h)

Подпрограмма PoFxNotifySurprisePowerOn уведомляет платформу управления питанием (PoFx) о том, что устройство было включено в качестве побочного эффекта при предоставлении питания другому устройству.

Синтаксис

void PoFxNotifySurprisePowerOn(
  [in] PDEVICE_OBJECT Pdo
);

Параметры

[in] Pdo

Указатель на объект физического устройства (PDO). Этот параметр указывает на DEVICE_OBJECT структуру, представляющую физическое устройство, которое было включено в качестве побочного эффекта. Вызывающий объект всегда является водителем шины, который перечислил PDO.

Возвращаемое значение

None

Remarks

Драйверы устройств не должны вызывать эту подпрограмму. Эта процедура должна вызываться только водителями автобусов.

Водитель автобуса вызывает эту процедуру, чтобы сообщить PoFx, что устройство, которое в настоящее время не используется, было случайно включено одновременно со вторым устройством. Например, первое устройство может совместно использовать шину питания со вторым устройством. Таким образом, питание не может быть предоставлено второму устройству без питания, как побочный эффект, на первое устройство. Так как первое устройство не используется, оно должно быть настроено так, чтобы оно потребляло как можно меньше энергии.

Чтобы запросить переход на состояние питания D0, драйвер устройства отправляет IRP_MN_SET_POWER запрос вниз по стеку устройств. Через PDO в этом стеке драйвер шины, который является родительским для этого устройства, получает запрос и отвечает, подает питание на устройство. Однако если водитель автобуса не может включить это устройство, не включив другое неиспользуемое устройство, водитель автобуса может вызвать PoFxNotifySurprisePowerOn , чтобы уменьшить потребление энергии неиспользуемым устройством.

При входе в PoFxNotifySurprisePowerOn устройство, представленное параметром Pdo , находится в неинициализированном состоянии питания D0. В этом состоянии все компоненты устройства обычно включены. В ответ на вызов PoFxNotifySurprisePowerOn PoFx настраивает устройство в инициализированном состоянии D0. Во время этой конфигурации PoFx переключает как можно больше компонентов в состояния питания Fx с низким энергопотреблением. Если это возможно, PoFx настраивает устройство в состоянии "горячий D3", который на самом деле является состоянием D0, в котором все отдельные компоненты на устройстве отключаются.

PoFxNotifySurprisePowerOn может настроить только устройство, зарегистрированное с помощью PoFx, когда устройство было ранее отключено. Однако, если водитель автобуса не знает, что устройство не зарегистрировано, водитель автобуса должен вызвать PoFxNotifySurprisePowerOn , когда устройство включено в качестве побочных эффектов.

Если драйверу шины не удается вызвать эту подпрограмму при включении устройства, оборудование устройства может оставаться в состоянии полного включения в течение неопределенного времени, в течение которого PoFx предполагает, что устройство остается в состоянии питания D3 (полностью выключено).

Вызывайте PoFxNotifySurprisePowerOn , только если устройство было включено случайно, как побочный эффект включения другого устройства. Если драйвер шины восстанавливает питание устройства в ответ на обратный вызов DevicePowerRequiredCallback или IRP_MN_SET_POWER запрос на переход D0, вызовите подпрограмму PoFxReportDevicePoweredOn , чтобы сообщить PoFx при восстановлении питания устройства.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть wdm.h
Библиотека Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

См. также раздел

DEVICE_OBJECT

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PoFxReportDevicePoweredOn