共用方式為


從篩選驅動程式呼叫 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 堆疊位置之前。

不允許。