共用方式為


管理裝置電源原則

就像電源管理員維護及管理系統的電源原則一樣,每個裝置的裝置堆疊中的一個驅動程式會維護並管理裝置的電源原則。 此驅動程式是裝置的 裝置電源原則擁有者

裝置電源原則擁有者是具有裝置使用量和電源狀態最相關資訊的驅動程式。 它實際上無法將裝置註冊設定為開啟和關閉裝置電源,但必須能夠判斷裝置在使用中、閒置時間,以及何時應該變更電源狀態。

一般而言,裝置的函式驅動程式是其電源原則擁有者,但對於某些裝置,其他驅動程式或系統元件可能會擔任此角色。 如需電源管理相關驅動程式類型的詳細資訊,請參閱 WDM 驅動程式的類型

有些驅動程式會作為一個裝置的函式驅動程式, (建立 FDO) ,而匯流排驅動程式 (為列舉子裝置建立 PDO) 。 在其 Power 和 PnP IRP 的 Dispatch 常式中,這類驅動程式必須區分其傳送至 FDO 的 IRP 處理方式,以及傳送至 PDO 的 IRP。

例如,SCSI 介面卡的驅動程式可能會執行函式驅動程式的角色, (為介面卡本身建立 FDO) ,而匯流排驅動程式 (為連接至介面卡的磁片建立 PDO) 。 在其容量中作為 SCSI 介面卡的函式驅動程式/原則擁有者,此驅動程式會收到系統 IRP,並要求 SCSI 介面卡的裝置 IRP。 在其容量中作為磁片的匯流排驅動程式,它會處理並完成裝置 IRP,以指定所建立的磁片 PDO。 只是因為驅動程式擁有一個裝置的電源原則, (FDO) 並不表示它擁有子裝置的電源原則 (PDO) 。

裝置電源原則擁有者負責下列事項:

  • 藉由呼叫PoSetPowerState將裝置的初始電源狀態設定為 D0,因為它會處理隨插即用管理員的IRP_MN_START_DEVICE要求。

    裝置應該視需要開啟電源;例如,裝置必須開啟電源才能處理 I/O 要求。 裝置電源原則擁有者負責判斷其裝置何時需要、確保裝置電源已開啟,以及設定正確的裝置電源狀態。 當 PnP 啟動裝置 IRP 完成時,一般裝置應該開啟電源。

    一般而言,大部分的裝置應該在使用中時關閉電源,即使系統處於工作狀態也一樣。

  • 呼叫 PoRequestPowerIrp以傳送裝置電源要求以回應系統電源要求。

    例如,當原則擁有者收到系統設定電源 IRP 時,它會傳送裝置設定電源 IRP。 當系統進入任何睡眠狀態時,大部分裝置都會進入 D3。 DEVICE_CAPABILITIES結構中的DeviceState陣列會列出裝置可針對每個系統電源狀態維護的最高電源狀態。 (請參閱 Reporting Device Power Capabilities.)

  • 偵測裝置何時閒置並進入睡眠狀態,以節省能源。

    電源管理員或裝置原則擁有者可以偵測閒置的裝置,並傳送裝置電源 IRP 來變更其狀態。 如需詳細資訊,請參閱 偵測閒置裝置

  • 必要時,將其裝置傳回工作狀態。

    當 I/O 要求送達睡眠裝置時,裝置的驅動程式應該會傳回工作狀態。

  • 要求時啟用和停用其裝置的喚醒功能。

    裝置電源原則擁有者會傳送和取消等候/喚醒 IRP,如 支援具有Wake-Up功能的裝置中所述。