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 | 請參閱一節。 |