STOR_POFX_DEVICE_V3结构 (storport.h)

STOR_POFX_DEVICE_V3结构将存储设备的电源属性描述为电源管理框架 (PoFx) 。 此结构类似于 STOR_POFX_DEVICE 但允许调用方指定空闲超时值。

语法

typedef struct _STOR_POFX_DEVICE_V3 {
  ULONG               Version;
  ULONG               Size;
  ULONG               ComponentCount;
  ULONG               Flags;
  union {
    ULONG UnitMinIdleTimeoutInMS;
    ULONG AdapterIdleTimeoutInMS;
  };
  ULONG               MinimumPowerCyclePeriodInMS;
  STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY];
} STOR_POFX_DEVICE_V3, *PSTOR_POFX_DEVICE_V3;

成员

Version

此结构的版本号。 将此成员设置为 STOR_POFX_DEVICE_VERSION_V3

Size

此结构的大小。 将此值设置为 STOR_POFX_DEVICE_V3_SIZE

ComponentCount

Components 数组中的元素数。 将此成员设置为 1。 目前,存储适配器或逻辑单元仅支持单个组件。

Flags

设备电源状态功能标志。 微型端口设置一个或多个 PoFx 设备标志以启用或禁用电源状态功能。 标志 是以下各项的按位 OR 组合。

标志值 含义
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) 请求不向适配器或单元的设备对象发送通电 IRP。
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) 请求不将关机 IRP 发送到适配器或设备的设备对象。
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) 使 Storport 能够设置适配器的 D3 冷状态(如果支持)。 此标志仅适用于适配器。
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) 指示设备在空闲时是否可用于转储。 如果设备已进入空闲状态或在空闲状态时关闭电源,微型端口将无法使存储设备在转储模式下处于活动状态。
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) 如果 STOR_POFX_DEVICE_V3 表示单位,则此标志指示应遵循 UnitMinIdleTimeoutInMS 字段。 如果 STOR_POFX_DEVICE_V3 表示适配器,则表示应遵循 AdapterIdleTimeoutInMS 字段。
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) 指示 Storport 应动态调整 D3 空闲超时,以便设备在必要时可以主动进入 D3。 仅当使用 STOR_POFX_DEVICE_V3 时,这才有效。
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) 指定不应为此适配器公开的单元注册运行时电源管理。 这仅适用于表示适配器 的STOR_POFX_DEVICE 结构。
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) 指示微型端口不需要平台扩展插件的 P 状态支持, (PEP) 。 如果不确定,请设置此标志。
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) 检查当设备处于较低功率状态时,微型端口的转储版本在设备上电的能力。
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) 微型端口希望转储堆栈尝试打开设备电源。
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) 微型端口希望 Storport 在 Dx 转换上禁用/启用中断。
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) 微型端口等位输入适配器 D3 唤醒支持。
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) 微型端口需要 PEP 中的 P 状态。

UnitMinIdleTimeoutInMS

单位的最小空闲时间(以毫秒为单位)。 仅当在 Flags 中设置STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT时,此值才有效。

AdapterIdleTimeoutInMS

适配器空闲超时值(以毫秒为单位)。 仅当在 Flags 中设置STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT时,此值才有效。

MinimumPowerCyclePeriodInMS

指示设备不应 (D0 -> D3 -> D0) 一次以上的给定周期(以毫秒为单位)。 仅当设置了STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT标志时,此成员才有效。

Components[ANYSIZE_ARRAY]

此成员是一个或多个 STOR_POFX_COMPONENT 元素数组中的第一个元素。 如果数组包含多个元素,则附加元素紧跟 STOR_POFX_DEVICE 结构。 数组包含设备中每个组件的一个元素。 目前,存储设备只有一个组件,因此不需要额外的组件结构。

注解

若要为 Storport PoFx 支持注册存储适配器,微型端口驱动程序在其 HwStorInitialize 例程中调用 StorPortEnablePassiveInitialization,并实现 HwStorPassiveInitializeRoutine 微型端口在其 HwStorPassiveInitializeRoutine 中调用 StorPortInitializePoFxPower 来提供有关适配器组件的信息。

为了注册 Storport PoFx 支持的存储单元,微型端口驱动程序实现 HwStorUnitControl 回调例程并提供 ScsiUnitPoFxPowerInfo 单元控制代码的处理。 处理 ScsiUnitPoFxPowerInfo 控制代码时,如果启用了单元组件的空闲电源管理,微型端口将调用 StorPortInitializePoFxPower

由其 Components 数组索引标识的存储设备的 组件 。 存储设备只有一个组件,因此使用索引 0。 StorPortPoFxActivateComponentStorPortPoFxIdleComponent 等例程使用组件的数组索引来标识组件。

要求

要求
最低受支持的客户端 Windows 10
标头 storport.h

另请参阅

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent