Поделиться через


структура 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 типизированное значение, указывающее, если задано значение WdfTrue, что устройство поддерживает спящий режим D1 устройства. Дополнительные сведения о значении WDF_TRI_STATE см. в следующем разделе Примечаний.

DeviceD2

Значение типа WDF_TRI_STATE, указывающее, если задано значение WdfTrue, что устройство поддерживает спящий режим D2 устройства.

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

Приблизительное время (в 100 наносекундных единицах), необходимое устройству для возвращения в состояние D0 из состояния D1. Если это значение равно -1, платформа использует любое значение, которое в настоящее время хранится в системе для этого элемента.

D2Latency

Приблизительное время (в 100 наносекундных единицах), которое требуется устройству для возврата в состояние D0 из состояния D2. Если это значение равно -1, платформа использует любое значение, которое в настоящее время хранится в системе для этого элемента.

D3Latency

Приблизительное время (в 100 наносекундных единицах), необходимое устройству для возвращения в состояние D0 из состояния D3. Если это значение равно -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 , чтобы указать, что платформа должна использовать значение, предоставленное более низким драйвером в стеке. Например, если драйвер шины указывает WdfTrue для DeviceD1 , а драйвер функции устройства указывает WdfUseDefault, платформа использует WdfTrue для этой возможности.
  • Когда водитель автобуса вызывает WdfDeviceSetPowerCapabilities после создания объекта устройства для дочернего устройства, он должен указать WdfTrue или WdfFalse. Драйвер автобуса может указать WdfUseDefault для дочернего устройства, но в этом случае WdfUseDefault совпадает с WdfFalse.
Чтобы инициализировать структуру WDF_DEVICE_POWER_CAPABILITIES, драйвер должен вызвать WDF_DEVICE_POWER_CAPABILITIES_INIT.

Требования

Требование Значение
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfdevice.h (включая Wdf.h)

См. также раздел

WDF_DEVICE_PNP_CAPABILITIES