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 数组中的每个元素描述设备中一个组件的电源状态属性。 设备中的每个组件都由其 Components 数组索引标识。 PoFxActivateComponentPoFxCompleteIdleCondition 等例程使用组件的数组索引来标识组件。

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

要求

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

另请参阅

ComponentActiveConditionCallback

ComponentIdleConditionCallback

ComponentIdleStateCallback

DevicePowerNotRequiredCallback

DevicePowerRequiredCallback

PO_FX_COMPONENT

PoFxActivateComponent

PoFxCompleteIdleCondition

PoFxRegisterDevice

PowerControlCallback