STOR_POFX_COMPONENT - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// storport.h

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;

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-storport-_stor_pofx_component)

STOR_POFX_COMPONENT structure

Description

The STOR_POFX_COMPONENT structure describes the power state attributes of a storage device component. The STOR_POFX_COMPONENT_V2 structure provides additional power state control.

Members

Version

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

Size

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

FStateCount

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).

DeepestWakeableFState

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.

Id

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 (identifies an adapter) and STORPORT_POFX_LUN_GUID (identifies a unit).

FStates

An 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, which is the value of ANYSIZE_ARRAY, plus the count of the additional structures.

Remarks

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.

The F-state requirements are as follows:

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.

See also

HW_UNIT_CONTROL

STOR_POFX_COMPONENT_V2

STOR_POFX_COMPONENT_IDLE_STATE

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent