PoStartNextPowerIrp 函式 (wdm.h)

PoStartNextPowerIrp 例程會向電源管理員發出訊號,指出驅動程式已準備好處理下一個電源 IRP。 (僅限 Windows Server 2003、Windows XP 和 Windows 2000。)

語法

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

參數

[in, out] Irp

主要函式程式代碼 IRP_MJ_POWER的 IRP 指標。

傳回值

備註

從 Windows Vista 開始,驅動程式不需要呼叫 PoStartNextPowerIrp ,而且此例程的呼叫不會執行電源管理作業。 不過,在 Windows Server 2003、Windows XP 和 Windows 2000 上,必須在驅動程式完成先前的電源 IRP 之後,由裝置堆疊中的每個驅動程式呼叫 PoStartNextPowerIrp ,如果有的話,而且已準備好處理下一個電源 IRP。 每個驅動程式都必須針對每個 IRP_MN_QUERY_POWERIRP_MN_SET_POWER 要求呼叫一次。

雖然電源 IRP 只會完成一次,通常是由裝置的總線驅動程式完成,但裝置堆疊中的每個驅動程式都必須呼叫 PoStartNextPowerIrp ,因為 IRP 會向下移動或備份堆疊。 即使驅動程式失敗 IRP,驅動程式仍必須呼叫 PoStartNextPowerIrp ,以向電源管理員發出已準備好處理另一個電源 IRP 的訊號。

驅動程式必須在目前的 IRP 堆疊位置指向目前的驅動程式時呼叫 PoStartNextPowerIrp 。 因此,此例程必須在 IoCompleteRequestIoSkipCurrentIrpStackLocationPoCallDriver之前呼叫。 一般規則是,驅動程式應該從與 IRP 相關聯的 IoCompletion 例程呼叫 PoStartNextPowerIrp,或從傳遞給 PoRequestPowerIrp 的回呼例程呼叫 PoStartNextPowerIrp

公交車驅動程序必須先呼叫 PoStartNextPowerIrp ,才能完成每個 IRP。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 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