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


Функция PoSetPowerState (ntifs.h)

Программа PoSetPowerState уведомляет систему об изменении состояния питания устройства для устройства.

Синтаксис

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

Параметры

[in] DeviceObject

Указатель на целевой DEVICE_OBJECT.

[in] Type

Указывает значение POWER_STATE_TYPE. Драйверы должны указывать DevicePowerState.

[in] State

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

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

PoSetPowerState возвращает предыдущее состояние питания.

Замечания

PoSetPowerState уведомляет диспетчер питания нового состояния питания для устройства. Каждый драйвер в стеке устройств (фильтры, функции и драйверы шины) должен вызывать PoSetPowerState, чтобы сообщить диспетчеру питания об изменении состояния питания соответствующего объекта устройства. Например:

  • Драйвер вызывает эту подпрограмму после получения запроса набора питания устройства и перед вызовом PoStartNextPowerIrp. При обработке запроса IRP_MN_START_DEVICE PnP драйвер должен вызвать PoSetPowerState, чтобы уведомить диспетчер питания о том, что устройство находится в состоянии D0.

  • Если устройство отключено, драйвер должен вызвать PoSetPowerState перед выходом из состояния D0. Кроме того, драйвер должен иметь возможность обрабатывать клиентские запросы до возврата PoSetPowerState.

  • Если устройство работает, драйвер должен вызвать PoSetPowerState после успешного включения устройства в состояние D0.

Дополнительные сведения о настройке питания устройства вверх и вниз см. в разделе Обработка IRP_MN_SET_POWER дляустройств Power States.

Вызывающие PoSetPowerState должны выполняться в IRQL <= APC_LEVEL за исключением того, когда задано состояние D0. При задании состояния D0 вызывающие элементы могут выполняться в IRQL <= DISPATCH_LEVEL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000
целевая платформа Всеобщий
заголовка ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

См. также

IRP_MN_START_DEVICE

PoStartNextPowerIrp