共用方式為


判斷裝置是否可以喚醒系統

某些裝置,例如鍵盤、數據機和網路卡,可以在裝置睡眠狀態時回應外部訊號。 作為電源管理技術的一部分,作業系統提供一種方式讓這類裝置喚醒睡眠系統,然後可以還原其先前的內容。 軟體喚醒機制可讓系統從 S5 (PowerSystemShutdown) 以外的任何狀態喚醒,視系統和裝置硬體和 BIOS 的支援而定。 狀態為 S5 的系統必須一律重新開機。

雖然作業系統的設計目的是要從任何中繼睡眠狀態喚醒,但確切喚醒功能會從電腦到電腦和裝置到裝置而有所不同。 並非所有電腦都支援所有系統睡眠狀態;因此,從某些狀態喚醒的能力在某些電腦上沒有意義。

同樣地,大部分的裝置都不支援所有裝置電源狀態, (D0 到 D3) 也不支援所有裝置電源狀態的喚醒。

裝置可以輸入的睡眠狀態,以及其支援喚醒的狀態,會在匯流排驅動程式列舉時加以描述,並儲存在 DEVICE_CAPABILITIES 結構中。 下表列出與等候/喚醒支援相關的此結構成員。

member 描述

DeviceD1

如果裝置支援 PowerDeviceD1 狀態,則為 True。

DeviceD2

如果裝置支援 PowerDeviceD2 狀態,則為 True。

WakeFromD0

如果裝置可以從 PowerDeviceD0 喚醒,則為 True。

WakeFromD1

如果裝置可以從 PowerDeviceD1 喚醒,則為 True。

WakeFromD2

如果裝置可以從 PowerDeviceD2 喚醒,則為 True。

WakeFromD3

如果裝置可以從 PowerDeviceD3 喚醒,則為 True。

DeviceState [PowerSystemMaximum]

指定此裝置可支援每個系統電源狀態的最高裝置電源狀態,從 PowerSystemUnspecified 到 PowerSystemShutdown。

SystemWake

指定要從中喚醒系統的最低系統電源狀態 (S0 到 S4) 。

DeviceWake

指定裝置可從中喚醒的最低裝置電源狀態 (D0 到 D3) 。

DeviceWake專案會列出裝置可以回應喚醒訊號的最低裝置電源狀態。 PowerDeviceUnspecified 值表示裝置無法喚醒系統。 SystemWake專案會列出系統可從中喚醒的最低系統電源狀態。 這些值是以父 devnode 的功能為基礎,驅動程式不應該變更它們。 如需詳細資訊,請參閱 報告裝置電源功能

一般而言,如果下列條件成立,裝置可以喚醒系統:

  • 裝置處於等於或大於 DeviceWake 值的電源狀態。

  • 系統處於等於或大於 SystemWake 值的電源狀態。