Функция 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 для состояний питания устройства.
Вызывающие функции 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 | См. раздел "Примечания". |