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 参数的值。
- 在注册表中查找用户设置,如果 已启用 参数的值 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 |