共用方式為


PoSetPowerState 函式 (ntifs.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 值。

傳回值

PoSetPowerState 會傳回先前的電源狀態。

言論

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
目標平臺 普遍
標頭 ntifs.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 請參閱一節。

另請參閱

IRP_MN_START_DEVICE

PoStartNextPowerIrp