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 表示不支持该功能。
  • 函数驱动程序和筛选器驱动程序可以指定 WdfTrueWdfFalseWdfUseDefault 值,以指示框架应使用堆栈中较低级驱动程序提供的值。 例如,如果总线驱动程序为 DeviceD1 指定 WdfTrue,而设备的函数驱动程序指定 WdfUseDefault,则框架使用 WdfTrue 作为功能。
  • 当总线驱动程序在为子设备创建设备对象后调用 WdfDeviceSetPowerCapabilities 时,它应指定 WdfTrueWdfFalse。 总线驱动程序可以为子设备指定 WdfUseDefault ,但在这种情况下, WdfUseDefaultWdfFalse 相同。
若要初始化WDF_DEVICE_POWER_CAPABILITIES结构,驱动程序应调用 WDF_DEVICE_POWER_CAPABILITIES_INIT

要求

要求
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdfdevice.h (包括 Wdf.h)

另请参阅

WDF_DEVICE_PNP_CAPABILITIES