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

Подпрограмма PoStartNextPowerIrp сообщает диспетчеру питания , что драйвер готов к обработке следующего IRP питания. (Только Windows Server 2003, Windows XP и Windows 2000.)

Синтаксис

void PoStartNextPowerIrp(
  [in, out] PIRP Irp
);

Параметры

[in, out] Irp

Указатель на IRP, в котором IRP_MJ_POWER код основной функции.

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

None

Remarks

Начиная с Windows Vista драйвер не требуется вызывать PoStartNextPowerIrp , а вызов этой процедуры не выполняет операцию управления питанием. Однако в Windows Server 2003, Windows XP и Windows 2000 poStartNextPowerIrp должен вызываться каждым драйвером в стеке устройств после того, как драйвер завершит работу с предыдущим IRP питания (если таковой имеется) и готов к обработке следующего IRP питания. Каждый драйвер должен вызывать его один раз для каждого IRP_MN_QUERY_POWER или IRP_MN_SET_POWER запроса.

Хотя irP питания выполняются только один раз, как правило, драйвером шины для устройства, каждый драйвер в стеке устройств должен вызывать PoStartNextPowerIrp , когда IRP перемещается вниз или выполняет резервное копирование стека. Даже если драйвер не выполняет IRP, драйвер должен, тем не менее, вызвать PoStartNextPowerIrp , чтобы сообщить диспетчеру питания о том, что он готов к обработке другого IRP питания.

Драйвер должен вызвать PoStartNextPowerIrp , пока текущее расположение стека IRP указывает на текущий драйвер. Поэтому эта подпрограмма должна вызываться перед IoCompleteRequest, IoSkipCurrentIrpStackLocation и PoCallDriver. Как правило, драйвер должен вызывать PoStartNextPowerIrp из процедуры IoCompletion , связанной с IRP, или из процедуры обратного вызова, переданной в PoRequestPowerIrp.

Водители автобусов должны вызвать PoStartNextPowerIrp перед завершением каждого IRP.

Требования

Требование Значение
Минимальная версия клиента Windows 2000.
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

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

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp