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


Функция PoStartNextPowerIrp (wdm.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.
Целевая платформа Универсальное
Верхняя часть wdm.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