共用方式為


EVT_WDF_DEVICE_ARM_WAKE_FROM_S0回呼函式 (wdfdevice.h)

[適用於 KMDF 和 UMDF]

驅動程式的 EvtDeviceArmWakeFromS0 事件回呼函式 (,也就是啟用) 裝置,以便在低電源裝置狀態時觸發喚醒訊號,如果系統維持在 系統運作狀態 (S0) 。

語法

EVT_WDF_DEVICE_ARM_WAKE_FROM_S0 EvtWdfDeviceArmWakeFromS0;

NTSTATUS EvtWdfDeviceArmWakeFromS0(
  [in] WDFDEVICE Device
)
{...}

參數

[in] Device

架構裝置物件的句柄。

傳回值

如果作業成功,EvtDeviceArmWakeFromS0 回呼函式必須傳回STATUS_SUCCESS或另一個狀態值,NT_SUCCESS (狀態) 等於 TRUE。 否則,它必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE

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

備註

若要註冊 EvtDeviceArmWakeFromS0 回呼函式,驅動程式必須呼叫 WdfDeviceInitSetPowerPolicyEventCallbacks。 此外,驅動程式必須在其WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS結構的IdleCaps成員中設定IdleCanWakeFromS0

EvtDeviceArmWakeFromS0 回呼函式會處理裝置特定的作業,讓裝置偵測觸發總線喚醒訊號的外部事件。 總線驅動程式的 EvtDeviceEnableWakeAtBus 回呼函式會處理總線特定的作業,例如啟用 PCI 總線的電源管理事件 (PME) 訊號。

如果驅動程式已註冊 EvtDeviceArmWakeFromS0 回呼函式,則當裝置仍在 D0 裝置電源狀態時,架構會在總線驅動程式降低裝置的電源狀態之前呼叫它,但在架構代表驅動程式傳送 等候/喚醒 IRP 之後。

此程式會以下欄順序發生:

  1. 架構會判斷裝置已閑置預設的時間量。
  2. 架構會呼叫驅動程式的 EvtDeviceArmWakeFromS0 回呼函式。
  3. 架構會要求裝置總線的驅動程式降低裝置的電源。
在裝置進入低電源狀態之前,架構會呼叫驅動程式的 EvtDeviceD0Exit 回呼函式。

如需架構何時呼叫此回呼函式的詳細資訊,請參閱 PnP 和電源管理案例

如果您的裝置,您不需要提供 EvtDeviceArmWakeFromS0 回呼函式:

  • 這是支援「選擇性暫停」的USB裝置。
  • 當系統維持完全電源時,無法關閉電源。
  • 不需要讓裝置觸發喚醒訊號的特殊硬體作業。
如果您的裝置支援 USB「選擇性暫停」,而且驅動程式在其WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS結構的 IdleCaps 成員中設定 IdleUsbSelectiveSuspend,架構會在裝置閒置一段時間後,傳送「選擇性暫停」要求給 USB 總線驅動程式。

如需此回呼函式的詳細資訊,請參閱 支援閑置電源關閉

規格需求

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

另請參閱

EvtDeviceArmWakeFromSx

EvtDeviceDisarmWakeFromS0