共用方式為


PoStartNextPowerIrp 函式 (ntifs.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 上,PoStartNextPowerIrp 必須在驅動程式完成先前電源 IRP 之後,由裝置堆疊中的每個驅動程式呼叫,如果有的話,且已準備好處理下一個電源 IRP。 每個驅動程式都必須針對每個 IRP_MN_QUERY_POWERIRP_MN_SET_POWER 要求呼叫一次。

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

當目前的 IRP 堆疊位置指向目前的驅動程式時,驅動程式必須呼叫 PoStartNextPowerIrp。 因此,必須在 IoCompleteRequestIoSkipCurrentIrpStackLocationPoCallDriver之前呼叫此例程。 一般情況下,驅動程式應該從與 IRP 相關聯的 IoCompletion 例程,或從傳遞 至 poRequestPowerIrp的回呼例程呼叫 PoStartNextPowerIrp

總線驅動程式必須先呼叫 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