共用方式為


從篩選驅動程式呼叫PoStartNextPowerIrp

從 Windows Vista 開始,不需要呼叫 PoStartNextPowerIrp,而且呼叫此例程不會執行電源管理作業。 不過,在 Windows Server 2003、Windows XP 和 Windows 2000 中,篩選驅動程式必須針對驅動程式收到的每個IRP_MN_QUERY_POWERIRP_MN_SET_POWER要求呼叫 PoStartNextPowerIrp 一次。 當呼叫發生時,取決於要求的類型,以及驅動程式是否會失敗或成功要求,如下表所示。

要求類型 如果驅動程式成功要求,就會發生呼叫: 如果驅動程式未能處理請求,會進行呼叫。

IRP_MN_QUERY_POWER (裝置電源狀態)

IoCompletion 例程中,在返回之前立即執行。

DispatchPower 例程中,呼叫 IoCompleteRequest 之前。

IRP_MN_QUERY_POWER (系統電源狀態)

DispatchPower 例程中,取得移除鎖定權限之後,並且在設定 IRP 堆疊位置之前。

DispatchPower 例程中,呼叫 IoCompleteRequest 之前。

IRP_MN_SET_POWER (裝置電源狀態)

IoCompletion 例程中,緊接在傳回之前。

不允許。

IRP_MN_SET_POWER (系統電源狀態)

DispatchPower 例程中,取得移除鎖定之後,以及在設定 IRP 堆疊位置之前。

不允許。