структура 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.
Требования
Требование | Значение |
---|---|
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfdevice.h (включая Wdf.h) |