共用方式為


處理系統電源狀態的IRP_MN_SET_POWER

電源管理員會傳送電源 IRP,指定次要程式碼 IRP_MN_SET_POWER 和系統電源狀態,原因如下:

  • 若要變更系統電源狀態。

  • 若要在失敗 IRP_MN_QUERY_POWER 要求之後停止目前的電源狀態。

透過 I/O 管理員,電源管理員會將 IRP 傳送至每個 PnP 裝置節點上裝置堆疊中的頂端驅動程式。 IRP 會在正確的系統電源狀態堆疊中通知所有驅動程式。

為了確保啟動有順序,電源管理員會排序系統電源啟動 IRP,讓父裝置有機會在子系啟動之前啟動。 電源管理員不會在傳送系統電源 IRP 之前查詢。

同樣地,為了確保電腦以循序睡眠或關機,電源管理員會傳送系統 IRP,以定義的順序指定睡眠、休眠或關機,讓裝置在接近根目錄的裝置之前關閉根電源。 可能的話,電源管理員會在傳送這類 IRP 之前查詢。 如需詳細資訊,請參閱 處理系統電源狀態IRP_MN_QUERY_POWER

系統電源 IRP 不是變更電源狀態的直接要求, 它是通知。 驅動程式不得將其裝置的電源狀態變更為 系統 電源 IRP 的直接回應;驅動程式只會變更其裝置的電源狀態,以回應 裝置 電源 IRP。 (裝置電源原則擁有者會傳送裝置電源 IRP;請參閱 在裝置電源原則擁有者中處理系統Set-Power IRP。)

即使裝置已經處於對要求系統電源狀態有效的裝置電源狀態,每個驅動程式仍必須將系統設定電源 IRP 傳遞給下一個較低的驅動程式,直到到達匯流排驅動程式為止。 只允許匯流排驅動程式完成此 IRP。

驅動程式如何處理此 IRP 取決於其在裝置堆疊中的角色,如下列各節所述:

處理裝置電源原則擁有者中的系統Set-Power IRP

處理匯流排驅動程式中的系統Set-Power IRP

在篩選驅動程式中處理系統Set-Power IRP

驅動程式無法失敗 IRP_MN_SET_POWER 要求來設定系統電源狀態。 電源管理員會忽略針對此 IRP 傳回的任何失敗狀態。