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