IWDFDevice2::AssignSxWakeSettings 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上對 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。 否則,方法可能會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
|
呼叫端為輸入參數指定了無效的值。 |
|
呼叫驅動程式不是裝置 電源原則擁有者。 |
|
DxState 參數會指定無效的裝置電源狀態,或總線驅動程式指出裝置無法觸發喚醒訊號, |
這個方法可能會傳回 Winerror.h 所包含的其他其中一個值。
驅動程式第一次呼叫 assignSxWakeSettings 時,會發生下列動作:
- 架構會儲存參數值。
- 如果 UserControlOfWakeSettings 參數設定為 WakeAllowUserControl,且 Enabled 參數設定為 WdfUseDefault,架構會讀取登錄,以找出使用者是否已啟用喚醒系統。
- 儲存 UserControlOfWakeSettings 參數的值。
- 在登錄中尋找使用者設定,如果 Enabled 參數的值 WdfUseDefault。
- 此值不能 PowerDeviceD0。
- 如果您指定 DevicePowerMaximum,架構會使用 DeviceWake 中所提供裝置總線核心模式驅動程式的值, 其 WDF_DEVICE_POWER_CAPABILITIES 結構的成員。
- 您無法指定低於 DeviceWake 中裝置電源狀態的裝置電源狀態, 內核模式總線驅動程式 WDF_DEVICE_POWER_CAPABILITIES 結構的成員。 (換句話說,如果總線驅動程式的 deviceWake 值是 PowerDeviceD2,則函式驅動程式的 DxState 值不能 PowerDeviceD3。
如需支援裝置喚醒功能的詳細資訊,請參閱 支援 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 |