структура PO_FX_DEVICE_V2 (wdm.h)
Структура PO_FX_DEVICE описывает атрибуты питания устройства для платформы управления питанием (PoFx).
Синтаксис
typedef struct _PO_FX_DEVICE_V2 {
ULONG Version;
ULONGLONG Flags;
PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK ComponentActiveConditionCallback;
PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK ComponentIdleConditionCallback;
PPO_FX_COMPONENT_IDLE_STATE_CALLBACK ComponentIdleStateCallback;
PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK DevicePowerRequiredCallback;
PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK DevicePowerNotRequiredCallback;
PPO_FX_POWER_CONTROL_CALLBACK PowerControlCallback;
PVOID DeviceContext;
ULONG ComponentCount;
PO_FX_COMPONENT_V2 Components[ANYSIZE_ARRAY];
} PO_FX_DEVICE_V2, *PPO_FX_DEVICE_V2;
Члены
Version
Номер версии этой структуры. Если драйвер зарегистрируется для поддержки состояния производительности в PoFx, задайте для этого члена значение PO_FX_VERSION_V2. В противном случае задайте для этого элемента значение PO_FX_VERSION_V1.
Flags
Задайте значение 0. В настоящее время флаги для этого элемента не определены.
ComponentActiveConditionCallback
Указатель на подпрограмму обратного вызова ComponentActiveConditionCallback , реализованную драйвером устройства.
ComponentIdleConditionCallback
Указатель на подпрограмму обратного вызова ComponentIdleConditionCallback , реализованную драйвером устройства.
ComponentIdleStateCallback
Указатель на подпрограмму обратного вызова ComponentIdleStateCallback , реализованную драйвером устройства.
DevicePowerRequiredCallback
Указатель на процедуру обратного вызова DevicePowerRequiredCallback , реализованную драйвером устройства.
DevicePowerNotRequiredCallback
Указатель на процедуру обратного вызова DevicePowerNotRequiredCallback , реализованную драйвером устройства.
PowerControlCallback
Указатель на подпрограмму обратного вызова PowerControlCallback , реализованную драйвером устройства.
DeviceContext
Указатель на контекст устройства, выделенного вызывающим объектом. Этот указатель передается в качестве параметра каждой реализованной драйвером функции обратного вызова, на которую указывает данная структура. Драйвер устройства использует этот контекст для хранения сведений о текущем состоянии питания устройства. Этот контекст непрозрачн для PoFx.
ComponentCount
Количество элементов в массиве Components . Кроме того, этот элемент указывает количество компонентов на устройстве.
Components[ANYSIZE_ARRAY]
Этот элемент является первым элементом в массиве из одного или нескольких элементов PO_FX_COMPONENT . Если массив содержит несколько элементов, дополнительные элементы сразу же следуют за PO_FX_DEVICE структурой. Массив содержит по одному элементу для каждого компонента на устройстве. Состоянием питания Fx каждого компонента можно управлять независимо от состояний питания Fx других компонентов на устройстве. Константа ANYSIZE_ARRAY определена как 1 в файле заголовка Ntdef.h.
Комментарии
Чтобы зарегистрировать устройство с помощью PoFx, драйвер вызывает подпрограмму PoFxRegisterDevice и предоставляет в качестве параметра указатель на структуру PO_FX_DEVICE , описывающую устройство.
Каждый элемент в массиве Components описывает атрибуты состояния питания одного компонента на устройстве. Каждый компонент на устройстве идентифицируется по индексу массива Компонентов . Подпрограммы, такие как PoFxActivateComponent и PoFxCompleteIdleCondition , используют индекс массива компонента для идентификации компонента.
Драйвер устройства не требуется для реализации всех шести процедур обратного вызова. Драйвер может задать для указателя функции в структуре PO_FX_DEVICE значение NULL, если драйвер не реализует соответствующую подпрограмму обратного вызова. Однако необходимо реализовать некоторые подпрограммы обратного вызова. В частности, если один или несколько компонентов на устройстве имеют несколько состояний Fx, драйвер должен реализовать подпрограммы ComponentIdleStateCallback, ComponentActiveConditionCallback и ComponentIdleConditionCallback . В противном случае регистрация устройства завершается сбоем, и PoFxRegisterDevice возвращает STATUS_INVALID_PARAMETER.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается начиная с Windows 8. |
Верхняя часть | wdm.h (включая Wudfwdm.h) |
См. также раздел
ComponentActiveConditionCallback
ComponentIdleConditionCallback