處理電源 IRP
驅動程式會在 DispatchPower 常式中處理電源 IRP。 所有電源管理要求都有主要 IRP 程式碼 IRP_MJ_POWER ,以及下列其中一個次要代碼:
IRP_MN_QUERY_POWER - 判斷變更電源狀態是否可行之查詢
IRP_MN_SET_POWER — 要求從一個電源狀態變更為另一個電源狀態
IRP_MN_WAIT_WAKE — 要求裝置啟用喚醒本身或系統
IRP_MN_POWER_SEQUENCE — 要求資訊以優化特定裝置的電源還原
需要 支援IRP_MN_SET_POWER 和 IRP_MN_QUERY_POWER 。 所有驅動程式都必須準備好處理這些 IRP。
對於裝置堆疊中所有可喚醒回應外部訊號的裝置,都需要 支援IRP_MN_WAIT_WAKE 。 驅動程式會傳送此 IRP 來啟用裝置進行喚醒。
IRP_MN_POWER_SEQUENCE的支援是選擇性的。 此 IRP 可為需要很長時間才能還原電源的裝置提供優化。
電源 IRP 可以指定系統電源作業或裝置電源作業。 系統電源 IRP 和個別裝置的電源 IRP會透過裝置堆疊略有不同路徑,如下列各節所述。