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


Функция 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.

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

Никакой

Замечания

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

Хотя power IRPs выполняются только один раз, как правило, водителем шины для устройства, каждый драйвер в стеке устройств должен вызывать PoStartNextPowerIrp, так как IRP перемещается вниз или резервное копирование стека. Даже если драйвер завершается ошибкой IRP, драйвер должен, тем не менее, вызвать PoStartNextPowerIrp, чтобы сообщить диспетчеру питания, что он готов к обработке другого power 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