支援系統Wake-Up
當系統處於低電源狀態時,某些裝置可以偵測外來事件,例如傳入的網路封包,然後喚醒系統。 例如,如果 PCI 裝置具有系統喚醒功能,如裝置的電源管理功能 (PMC) 註冊所示,它會在 PCI 匯流排上引發電源管理事件 (PME) 訊號來喚醒系統。
如果您的裝置可以從全系統的低電源狀態喚醒系統,電源原則擁有者中的EvtDriverDeviceAdd回呼函式必須執行下列兩個步驟:
呼叫 WdfDeviceAssignSxWakeSettings 以指定:
- 裝置將進入的低電源狀態
- 使用者是否可以控制裝置的閒置設定
- 裝置的喚醒功能是否已啟用或停用
如需這些設定的詳細資訊,請參閱 WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS 結構。
如果您需要裝置的回呼函式,請呼叫 WdfDeviceInitSetPowerPolicyEventCallbacks 來註冊下列事件回呼函式:
- EvtDeviceArmWakeFromSx 或 EvtDeviceArmWakeFromSxWithReason,可讓裝置硬體回應外部喚醒事件。
- EvtDeviceDisarmWakeFromSx,可停用裝置回應外部喚醒事件的能力。
- EvtDeviceWakeFromSxTriggered,通知驅動程式匯流排偵測到喚醒訊號。
匯流排驅動程式也會參與喚醒系統。 裝置匯流排的驅動程式通常會提供 EvtDeviceEnableWakeAtBus 和 EvtDeviceDisableWakeAtBus 回呼函式。 這些函式會在匯流排介面卡上執行任何必要動作,以啟用和停用裝置從低電源狀態喚醒的能力。
當匯流排驅動程式判斷裝置已觸發喚醒訊號時,它必須呼叫 WdfDeviceIndicateWakeStatus ,以通知架構應還原裝置的電源。 架構接著會將此資訊傳遞至驅動程式堆疊中的其餘驅動程式。
如需控制裝置喚醒功能的登錄專案相關資訊,請參閱 裝置閒置和喚醒行為的使用者控制。