共用方式為


EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON回呼函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

驅動程式的 EvtDeviceArmWakeFromSxWithReason 事件回呼函式 (,也就是啟用) 裝置,以便在低電源裝置狀態時觸發喚醒訊號。 喚醒訊號會導致裝置進入其工作狀態 (D0) ,並讓系統進入其工作狀態 (S0) 。

語法

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX_WITH_REASON EvtWdfDeviceArmWakeFromSxWithReason;

NTSTATUS EvtWdfDeviceArmWakeFromSxWithReason(
  [in] WDFDEVICE Device,
  [in] BOOLEAN DeviceWakeEnabled,
  [in] BOOLEAN ChildrenArmedForWake
)
{...}

參數

[in] Device

架構裝置物件的句柄。

[in] DeviceWakeEnabled

布爾值,如果為 TRUE,表示裝置能夠喚醒系統。

[in] ChildrenArmedForWake

布爾值,如果為 TRUE,表示啟用一或多個子裝置喚醒系統的能力。

傳回值

如果 EvtDeviceArmWakeFromSxWithReason 回呼函式沒有發生錯誤,它必須傳回STATUS_SUCCESS或另一個狀態值,NT_SUCCESS (狀態) 等於 TRUE。 否則,它必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE

如果NT_SUCCESS (狀態) 等於 FALSE,架構會呼叫驅動程式的 EvtDeviceDisarmWakeFromSx 回呼函式。 (架構不會向 PnP 管理員回報裝置失敗。)

備註

1.7 版和更新版本的 KMDF 除了 EvtDeviceArmWakeFromSxWithReason 回呼函式之外,還支援 EvtDeviceArmWakeFromSx 回呼函式。

若要註冊 EvtDeviceArmWakeFromSxWithReason 回呼函式,驅動程式必須呼叫 WdfDeviceInitSetPowerPolicyEventCallbacks。 驅動程式可以註冊 EvtDeviceArmWakeFromSx 回呼函式或 EvtDeviceArmWakeFromSxWithReason 回呼函式,但不能同時註冊兩者。

EvtDeviceArmWakeFromSxWithReason 回呼函式提供兩個參數,可讓驅動程式判斷架構呼叫的原因:

  • 如果WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS結構的 Enabled 成員指出裝置可以喚醒系統,架構會將 DeviceWakeEnabled 參數設定為 TRUE
  • 如果一或多個裝置的子裝置可以喚醒系統,且WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS的 ArmForWakeAreArmedForWake 成員,架構會將 ChildrenArmedForWake 參數設定為 TRUE
其中一個或兩個參數都可以 是 TRUE,因為下列案例:
  • 驅動程式的裝置已啟用以喚醒系統。
  • 啟用一或多個裝置的子裝置來喚醒系統。
  • 裝置及其一或多個子裝置都已啟用以喚醒系統。
如需 EvtDeviceArmWakeFromSxWithReason 回呼函式的詳細資訊,請參閱 EvtDeviceArmWakeFromSx 的一節。

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.7
最低UMDF版本 2.0
標頭 wdfdevice.h (包含 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtDeviceArmWakeFromS0

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromSx