WDF_DEVICE_POWER_CAPABILITIES 结构 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
WDF_DEVICE_POWER_CAPABILITIES结构描述设备的电源功能。
语法
typedef struct _WDF_DEVICE_POWER_CAPABILITIES {
ULONG Size;
WDF_TRI_STATE DeviceD1;
WDF_TRI_STATE DeviceD2;
WDF_TRI_STATE WakeFromD0;
WDF_TRI_STATE WakeFromD1;
WDF_TRI_STATE WakeFromD2;
WDF_TRI_STATE WakeFromD3;
DEVICE_POWER_STATE DeviceState[PowerSystemMaximum];
DEVICE_POWER_STATE DeviceWake;
SYSTEM_POWER_STATE SystemWake;
ULONG D1Latency;
ULONG D2Latency;
ULONG D3Latency;
DEVICE_POWER_STATE IdealDxStateForSx;
} WDF_DEVICE_POWER_CAPABILITIES, *PWDF_DEVICE_POWER_CAPABILITIES;
成员
Size
此结构的大小(以字节为单位)。
DeviceD1
一个WDF_TRI_STATE类型的值,指示设备支持设备睡眠状态 D1(如果设置为 WdfTrue)。 有关 WDF_TRI_STATE 值的详细信息,请参阅以下“备注”部分。
DeviceD2
WDF_TRI_STATE类型的值,指示设备支持设备睡眠状态 D2(如果设置为 WdfTrue)。
WakeFromD0
一个 WDF_TRI_STATE 类型的值,该值指示如果设置为 WdfTrue,则设备可以在其 D0 状态下响应唤醒信号。
WakeFromD1
一个WDF_TRI_STATE类型的值,该值指示如果设置为 WdfTrue,则设备可以在处于 D1 状态时响应唤醒信号。
WakeFromD2
一个 WDF_TRI_STATE 类型的值,指示如果设置为 WdfTrue,则设备可以在其 D2 状态下响应唤醒信号。
WakeFromD3
一个WDF_TRI_STATE类型的值,该值指示如果设置为 WdfTrue,则设备可以在其 D3 状态下响应唤醒信号。
DeviceState[PowerSystemMaximum]
一个DEVICE_POWER_STATE类型的值的数组,指示每个系统电源状态设备支持的功率最强的设备状态。 此数组使用 SYSTEM_POWER_STATE 枚举作为索引值。 如果数组元素的值为 PowerDeviceMaximum,框架将使用操作系统为该元素存储的任何值。 DEVICE_POWER_STATE和SYSTEM_POWER_STATE枚举在 wdm.h 中定义。 有关 DeviceState 成员的详细信息,请参阅 DeviceState。
DeviceWake
一个DEVICE_POWER_STATE类型的值,指示设备可从中向系统发送唤醒信号的最低设备功率状态。 如果此值为 PowerDeviceMaximum,则框架将使用此成员当前存储在系统中的任何值。
SystemWake
一个SYSTEM_POWER_STATE类型的值,指示设备可从中向系统发送唤醒信号的最低系统功率状态。 如果此值为 PowerSystemMaximum,则框架将使用此成员当前存储在系统中的任何值。 SYSTEM_POWER_STATE值在 wdm.h 中定义。
D1Latency
设备从 D1 状态返回到其 D0 状态所需的大致时间(以 100 纳秒为单位)。 如果此值为 -1,则框架将使用此成员当前存储在系统中的任何值。
D2Latency
设备从 D2 状态返回到其 D0 状态所需的大致时间(以 100 纳秒为单位)。 如果此值为 -1,则框架将使用此成员当前存储在系统中的任何值。
D3Latency
设备从 D3 状态返回到其 D0 状态所需的大致时间(以 100 纳秒为单位)。 如果此值为 -1,则框架将使用此成员当前存储在系统中的任何值。
IdealDxStateForSx
一个DEVICE_POWER_STATE类型的值,指示当系统进入任何 系统睡眠状态 且设备未启用唤醒系统时,设备应进入的设备 睡眠状态 。 如果此值为零,则框架使用 PowerDeviceD3。 此值不能为 PowerDeviceD0。
如果驱动程序指定 一个 IdealDxStateForSx 值,该值表示比设备堆栈在设备的 DeviceState 数组中指定的功率更高的设备睡眠状态,则框架将使用数组中的低功率状态。 例如,如果驱动程序将 IdealDxStateForSx 值指定为 D1,并且设备的 DeviceState 数组指定 D2,则框架将使用 D2。
注解
WDF_DEVICE_POWER_CAPABILITIES 结构用作 WdfDeviceSetPowerCapabilities 的输入。
多个成员使用 WDF_TRI_STATE 类型。 对于这些成员,以下规则适用:
- 值为 WdfTrue 表示设备支持该功能,值为 WdfFalse 表示不支持该功能。
- 函数驱动程序和筛选器驱动程序可以指定 WdfTrue 或 WdfFalse 或 WdfUseDefault 值,以指示框架应使用堆栈中较低级驱动程序提供的值。 例如,如果总线驱动程序为 DeviceD1 指定 WdfTrue,而设备的函数驱动程序指定 WdfUseDefault,则框架使用 WdfTrue 作为功能。
- 当总线驱动程序在为子设备创建设备对象后调用 WdfDeviceSetPowerCapabilities 时,它应指定 WdfTrue 或 WdfFalse。 总线驱动程序可以为子设备指定 WdfUseDefault ,但在这种情况下, WdfUseDefault 与 WdfFalse 相同。
要求
要求 | 值 |
---|---|
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |