PoSetPowerState 函式 (wdm.h)

PoSetPowerState 例程會通知系統裝置的裝置電源狀態變更。

語法

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

參數

[in] DeviceObject

目標 DEVICE_OBJECT的指標。

[in] Type

表示 POWER_STATE_TYPE 值。 驅動程式必須指定 DevicePowerState

[in] State

指定要設定的電源狀態。 驅動程式必須指定 DEVICE_POWER_STATE 值。

傳回值

在 Windows 2000 和更新版本的作業系統上, PoSetPowerState 會傳回先前的電源狀態。 在 Windows 98/Me 上, PoSetPowerState 會傳回在 State 中傳遞的狀態。

備註

PoSetPowerState 會通知裝置的新電源狀態電源 管理員 。 裝置堆疊中的每個驅動程式 (篩選、函式和總線驅動程式) 必須呼叫 PoSetPowerState ,通知電源管理員其對應裝置物件的電源狀態變更。 例如:

  • 驅動程式會在收到裝置設定電源要求之後,以及在呼叫 PoStartNextPowerIrp之前呼叫此例程。 處理 PnP IRP_MN_START_DEVICE 要求時,驅動程式應該呼叫 PoSetPowerState ,以通知電源管理員裝置處於 D0 狀態。
  • 如果裝置關閉電源,驅動程式必須先呼叫 PoSetPowerState ,才能離開 D0 狀態。 此外,驅動程式必須能夠在 PoSetPowerState 傳回之前處理用戶端要求。
  • 如果裝置已啟動電源,驅動程式必須在裝置成功放入 D0 狀態之後呼叫 PoSetPowerState
如需啟動和關閉裝置電源的詳細資訊,請參閱 處理裝置電源狀態的IRP_MN_SET_POWER

PoSetPowerState 的呼叫端必須在 IRQL <= APC_LEVEL執行,但將狀態設定為 D0 時除外。 將狀態設定為 D0 時,呼叫端可以在 IRQL <= DISPATCH_LEVEL執行。

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 請參閱一節。

另請參閱

IRP_MN_START_DEVICE

PoStartNextPowerIrp