STOR_POFX_COMPONENT结构(storport.h)
STOR_POFX_COMPONENT 结构描述存储设备组件的电源状态属性。 STOR_POFX_COMPONENT_V2 结构提供额外的电源状态控制。
语法
typedef struct _STOR_POFX_COMPONENT {
ULONG Version;
ULONG Size;
ULONG FStateCount;
ULONG DeepestWakeableFState;
GUID Id;
STOR_POFX_COMPONENT_IDLE_STATE FStates[ANYSIZE_ARRAY];
} STOR_POFX_COMPONENT, *PSTOR_POFX_COMPONENT;
成员
Version
此结构的版本号。 将此成员设置为 STOR_POFX_DEVICE_VERSION_V1。
Size
此结构的大小。 将此值设置为 STOR_POFX_COMPONENT_SIZE。
FStateCount
FStates 成员指向的数组中的元素数。 此外,此成员指定组件支持的功能电源状态数(F 状态)。 组件必须至少支持一个 F 状态(F0)。
DeepestWakeableFState
组件可从中唤醒的最深 F 状态的索引。 为 F0 指定 0,为 F1 指定 1,依此指定。 此索引必须小于 FStateCount。
Id
一个组件 ID,用于唯一标识此组件的设备中的其他组件。 如果电源管理框架(PoFx)要求组件 ID 将此组件与同一设备中的其他类似组件区分开来,驱动程序应为此成员指定非零值。 Storport 支持的组件 ID STORPORT_POFX_ADAPTER_GUID(标识适配器)和STORPORT_POFX_LUN_GUID(标识单元)。
FStates[ANYSIZE_ARRAY]
STOR_POFX_COMPONENT_IDLE_STATE 结构的数组。 此数组的长度由 FStateCount 成员指定。 每个数组元素指定组件支持的 F 状态的属性。 元素 0 描述 F0、元素 1 描述 F1 等。 当需要多个空闲状态结构时,会在 STOR_ POFX_COMPONENT 结构的末尾分配其他结构,FStateCount 设置为 1,即ANYSIZE_ARRAY的值,以及其他结构的计数。
言论
当微型端口驱动程序向 Storport 电源管理框架注册设备时,微型端口驱动程序会提供一个保存注册信息的 STOR_POFX_DEVICE 结构。 此结构包含 STOR_ POFX_COMPONENT 结构的数组。 此数组中的元素描述设备中各个组件的电源属性。 这些组件的电源设置基于此数组中的信息进行管理。
Id 成员包含唯一标识组件的组件 ID。 组件 ID 与组件索引不同,StorPortPoFxActivateComponent 等例程用于标识已注册设备中的组件。 组件索引是设备驱动程序用于注册设备的STOR_POFX_DEVICE结构中 组件 数组的索引。 如果 组件 数组包含 N 个元素,则组件索引是范围 0 到 N–1 中的整数值。 相比之下,组件 ID 是 GUID 值。
单个适配器设备组件的 ID 在 storport.h 中定义为 STORPORT_POFX_ADAPTER_GUID。 单个单元设备组件的 ID STORPORT_POFX_LUN_GUID。 在描述 ID 成员中的适配器组件或单元组件时,请使用这些标识符。
F 状态要求如下所示:
- 对于适配器设备组件,微型端口必须为适配器指定单个组件和最多 8 个 F 状态。 StorPortInitializePoFxPower 应仅在微型端口被动初始化例程的上下文中调用微型端口。
- 对于单元设备组件,微型端口必须为该单元指定单个组件,并且最多可以指定两个 F 状态。 单元设备必须指定 F0 状态,并且可以选择有一个额外的 F 状态。 StorPortInitializePoFxPower 应仅在微型端口的 ScsiUnitPoFxPowerInfo 单元控制上下文中调用微型端口。
对于单元设备组件,如果 FStates 数组中包含其他 F 状态,则大小成员将保持设置为 STOR_POFX_COMPONENT_SIZE,并且不包括其他 STOR_POFX_COMPONENT_IDLE_STATE 结构的大小。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 8 |
标头 | storport.h |