The STOR_POFX_COMPONENT structure describes the power state attributes of a storage device component.


typedef struct _PO_FX_COMPONENT {
  ULONG                          Version;
  USHORT                         Size;
  ULONG                          FStateCount;
  ULONG                          DeepestWakeableIdleState;
  GUID                           Id;



The version number of this structure. Set this member to STOR_POFX_DEVICE_VERSION_V1.


The size of this structure. Set this value to STOR_POFX_COMPONENT_SIZE.


The number of elements in the array that is pointed to by the FStates member. Additionally, this member specifies the number of functional power states (F-state) that the component supports. A component must support at least one F-state (F0).


The index of the deepest F-state from which the component can wake. Specify 0 for F0, 1 for F1, and so on. This index must be less than FStateCount.


A component ID that uniquely identifies this component with respect to the other components in the device. The driver should specify a nonzero value for this member if the power management framework (PoFx) requires a component ID to distinguish this component from other, similar components in the same device. The component IDs supported by Storport are STORPORT_POFX_ADAPTER_GUID and STORPORT_POFX_LUN_GUID.


A array of STOR_POFX_COMPONENT_IDLE_STATE structures. The length of this array is specified by the FStateCount member. Each array element specifies the attributes of an F-state that is supported by the component. Element 0 describes F0, element 1 describes F1, and so on. When more than one idle state structure is required, the additional structures are allocated at the end of the STOR_ POFX_COMPONENT structure and the FStateCount is set to 1, the value of ANYSIZE_ARRAY, plus the count of the additional structures.


When a miniport driver registers a device with the Storport power management framework, the miniport driver supplies a STOR_POFX_DEVICE structure that holds the registration information. This structure contains an array of STOR_ POFX_COMPONENT structures. The elements in this array describe the power attributes of the individual components in the device. The power settings of these components are managed based on the information in this array.

The Id member contains a component ID that uniquely identifies a component. The component ID is not the same as the component index, which a routine such as StorPortPoFxActivateComponent uses to identify a component in a registered device. A component index is an index into the Components array in the STOR_POFX_DEVICE structure that the device driver used to register the device. If the Components array contains N elements, component indexes are integer values in the range 0 to N–1. In contrast, a component ID is a GUID value.

The ID for the single adapter device component is defined in storport.h as STORPORT_POFX_ADAPTER_GUID. The ID for the single unit device component is STORPORT_POFX_LUN_GUID. Use these identifiers when describing either an adapter component or a unit component in the Id member.

For a adapter device component, a maximum of one F-state (F0) is permitted. For a unit device component, two F-states are allowed. The unit device must have the F0 state specified and optionally have one additional F-state.

For a unit device component, if an additional F-state is included in the FStates array, the size member remains set to STOR_POFX_COMPONENT_SIZE and does not include the size of the additional STOR_POFX_COMPONENT_IDLE_STATE structure.



Supported starting with Windows 8.



See also




Send comments about this topic to Microsoft

© 2016 Microsoft