DeviceWake

DEVICE_CAPABILITIESDeviceWake成員包含裝置可發出喚醒事件訊號的最低 (最低電源) 裝置電源狀態,如果裝置無法喚醒以回應外部訊號,則為 PowerDeviceUnspecified

匯流排驅動程式會設定此值。 較高層級的驅動程式可以將值變更為更高電源的狀態。 例如,如果匯流排驅動程式將 DeviceWake 設定為 D3,但進一步啟動裝置堆疊的驅動程式僅支援從 D2 喚醒,則較高層級驅動程式可以將值變更為 D2。

請注意,如果驅動程式變更 DeviceWake,可能也必須變更 SystemWake ,以避免 與 DeviceState 陣列中的系統對裝置對應發生衝突。 例如,假設匯流排驅動程式會設定下列各項:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

如果較高層級的驅動程式判斷其裝置無法從 D3 喚醒系統,但只能從 D2 或更高版本喚醒,它可以將 DeviceWake 變更為 D2。 不過,這項變更會導致無法從 S2 對應到 D3。 請記住, DeviceState 陣列會列出裝置可支援指定系統電源狀態的最高裝置電源狀態。 如果範例中的系統電源狀態是 PowerSystemSleeping2,則裝置電源狀態不能是 PowerDeviceD2。 若要消除這個問題,驅動程式也必須將 SystemWake 變更為 PowerSystemSleeping1WakeFromDxDeviceDx設定也是如此。 驅動程式必須確定對 SystemWakeDeviceWake 所做的任何變更不會與 WakeFromDxDeviceDx 值衝突。 WakeFromDxDeviceDx的值反映驅動程式無法變更的硬體特性。

如果 SystemWakeDeviceWake 成員都是非零 (,而不是 PowerSystemUnspecified) ,則裝置及其驅動程式支援此系統上的喚醒。

在非 ACPI 硬體上, DeviceWake 成員包含零 (PowerSystemUnspecified) 。