PO_FX_DEVICE_V1结构 (wdm.h)

PO_FX_DEVICE结构描述设备电源管理框架的电源属性, (PoFx) 。

语法

typedef struct _PO_FX_DEVICE_V1 {
  ULONG                                      Version;
  ULONG                                      ComponentCount;
  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;
  PO_FX_COMPONENT_V1                         Components[ANYSIZE_ARRAY];
} PO_FX_DEVICE_V1, *PPO_FX_DEVICE_V1;

成员

Version

此结构的版本号。 如果驱动程序将注册 PoFx 的性能状态支持,请将此成员设置为 PO_FX_VERSION_V2。 否则,请将此成员设置为 PO_FX_VERSION_V1

ComponentCount

Components 数组中的元素数。 此外,此成员指定设备中的组件数。

ComponentActiveConditionCallback

指向由设备驱动程序实现的 ComponentActiveConditionCallback 回调例程的指针。

ComponentIdleConditionCallback

指向由设备驱动程序实现的 ComponentIdleConditionCallback 回调例程的指针。

ComponentIdleStateCallback

指向由设备驱动程序实现的 ComponentIdleStateCallback 回调例程的指针。

DevicePowerRequiredCallback

指向设备驱动程序实现的 DevicePowerRequiredCallback 回调例程的指针。

DevicePowerNotRequiredCallback

指向设备驱动程序实现的 DevicePowerNotRequiredCallback 回调例程的指针。

PowerControlCallback

指向设备驱动程序实现的 PowerControlCallback 回调例程的指针。

DeviceContext

指向调用方分配的设备上下文的指针。 此指针作为参数传递给此结构指向的每个驱动程序实现的回调函数。 设备驱动程序使用此上下文来存储有关设备的当前电源状态的信息。 此上下文与 PoFx 不透明。

Components[ANYSIZE_ARRAY]

此成员是一个或多个 PO_FX_COMPONENT 元素数组中的第一个元素。 如果数组包含多个元素,则其他元素紧跟 PO_FX_DEVICE 结构。 数组包含设备中每个组件的一个元素。 可以独立于设备中其他组件的 Fx 电源状态控制每个组件的 Fx 电源状态。 ANYSIZE_ARRAY常量定义为 Ntdef.h 头文件中的 1。

注解

若要将设备注册到 PoFx,驱动程序调用 PoFxRegisterDevice 例程,并作为参数提供指向描述设备的 PO_FX_DEVICE 结构的指针。

Components 数组中的每个元素描述设备中一个组件的电源状态属性。 设备中的每个组件由 其组件 数组索引标识。 PoFxActivateComponentPoFxCompleteIdleCondition 等例程使用组件的数组索引来标识组件。

实现所有六个回调例程不需要设备驱动程序。 如果驱动程序未实现相应的回调例程,驱动程序可以在 PO_FX_DEVICE 结构中将函数指针设置为 NULL。 但是,必须实现某些回调例程。 具体而言,如果设备中的一个或多个组件具有多个 Fx 状态,驱动程序必须实现 ComponentIdleStateCallbackComponentActiveConditionCallbackComponentIdleConditionCallback 例程。 否则,设备注册失败, PoFxRegisterDevice 返回 STATUS_INVALID_PARAMETER

要求

   
最低受支持的客户端 从Windows 8开始支持。
Header wdm.h (包括 Wudfwdm.h)

请参阅

ComponentActiveConditionCallback

ComponentIdleConditionCallback

ComponentIdleStateCallback

DevicePowerNotRequiredCallback

DevicePowerRequiredCallback

PO_FX_COMPONENT

PoFxActivateComponent

PoFxCompleteIdleCondition

PoFxRegisterDevice

PowerControlCallback