IWDFDevice2::AssignSxWakeSettings 方法 (wudfddi.h)

[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D84852B64499F4A4B8C20D1EDFA8AFDA4 上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]

AssignSxWakeSettings 方法提供驅動程式提供的資訊,說明裝置在裝置和系統處於低電源狀態時觸發喚醒訊號的能力。

語法

HRESULT AssignSxWakeSettings(
  [in] DEVICE_POWER_STATE                    DxState,
  [in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
  [in] WDF_TRI_STATE                         Enabled
);

參數

[in] DxState

DEVICE_POWER_STATE型別列舉值,可識別當系統電源狀態下降至可喚醒的低電源狀態時,裝置將進入的低裝置電源狀態。 DxState 的值不能是 PowerDeviceD0。 DEVICE_POWER_STATE值定義於 wdm.h 中。

[in] UserControlOfWakeSettings

WDF_POWER_POLICY_SX_WAKE_USER_CONTROL型別列舉值,指出使用者是否可以修改裝置的喚醒設定。

[in] Enabled

WDF_TRI_STATE類型的列舉值,指出裝置是否可以喚醒系統 (,也就是當系統處於低電源狀態時,將系統還原至 S0) 。 此成員可以有下列其中一個值:

WdfTrue - 啟用系統喚醒。

WdfFalse - 已停用系統喚醒。

WdfUseDefault - 一開始會啟用系統;但如果 UserControlOfWakeSettings 成員設定為 WakeAllowUserControl則使用者的設定或驅動程式的 INF 檔案 會覆寫初始值。

如果喚醒系統且系統即將進入低電源狀態,架構會在裝置進入低電源狀態之前呼叫驅動程式的 IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx 回呼函式。

傳回值

如果作業成功,AssignSxWakeSettings 會傳回S_OK。 否則,方法可能會傳回下列其中一個值:

傳回碼 Description
E_INVALIDARG
呼叫端為輸入參數指定了無效的值。
HRESULT_FROM_NT (STATUS_INVALID_DEVICE_REQUEST)
呼叫驅動程式不是裝置的 電源原則擁有者
HRESULT_FROM_NT (STATUS_POWER_STATE_INVALID)
DxState 參數會指定無效的裝置電源狀態,或總線驅動程式指出裝置無法觸發喚醒訊號,
 

這個方法可能會傳回 Winerror.h 包含的其他其中一個值。

備註

驅動程式第一次呼叫 AssignSxWakeSettings 時,會發生下列動作:

  • 架構會儲存參數值。
  • 如果 UserControlOfWakeSettings 參數設定為 WakeAllowUserControl ,而且 Enabled 參數設定為 WdfUseDefault,架構會讀取登錄,以了解使用者是否已啟用喚醒系統。
在後續呼叫 AssignSxWakeSettings 期間,架構不會儲存 UserControlOfWakeSettings 參數的值。 換句話說,架構會在驅動程式第一次呼叫 AssignSxWakeSettings 時執行下列步驟,但在稍後的呼叫期間不會執行下列步驟:
  • 儲存 UserControlOfWakeSettings 參數的值。
  • 如果 Enabled 參數的值是 WdfUseDefault,請在登錄中尋找用戶設定。
下列規則適用於您為 DxState 參數指定的值:
  • 此值不可為 PowerDeviceD0
  • 如果您指定 DevicePowerMaximum,架構會使用其 WDF_DEVICE_POWER_CAPABILITIES 結構之 DeviceWake 成員中提供之裝置總線的核心模式驅動程式值。
  • 您無法在內核模式總線驅動程式WDF_DEVICE_POWER_CAPABILITIES結構的 DeviceWake 成員中,指定低於裝置電源狀態的裝置電源狀態。 (換句話說,如果總線驅動程式的 DeviceWake 值為 PowerDeviceD2,則函式驅動程式的 DxState 值不能是 PowerDeviceD3.)
如需控制裝置喚醒功能的登錄專案相關信息,請參閱 UMDF 中的裝置閑置和喚醒行為的使用者控制

如需支援裝置喚醒功能的詳細資訊,請參閱 支援 UMDF 型驅動程式中的系統 Wake-Up

下列程式代碼範例會取得 IWDFDevice2 介面,然後呼叫 AssignSxWakeSettings

    IWDFDevice2 *pIWDFDevice2 = NULL;
    HRESULT hr;

    //
    // Get a pointer to the IWDFDevice2 interface.
    //
    hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
                                     (void**) &pIWDFDevice2);
    if (SUCCEEDED(hr)) 
    {
        hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
                                                WakeAllowUserControl,
                                                WdfUseDefault);
    }
...
    SAFE_RELEASE(pIWDFDevice2);

規格需求

需求
終止支援 在 UMDF 2.0 和更新版本中無法使用。
目標平台 桌面
最低UMDF版本 1.9
標頭 wudfddi.h (包含 Wudfddi.h)
Dll WUDFx.dll

另請參閱

IWDFDevice2

IWDFDevice2::AssignS0IdleSettings