STOR_POFX_DEVICE_V2 structure

The STOR_POFX_DEVICE_V2 structure describes the power attributes of a storage device to the power management framework (PoFx). This structure is similar to STOR_POFX_DEVICE but contains additional timeout settings.

Syntax


typedef struct _STOR_POFX_DEVICE_V2 {
  ULONG               Version;
  USHORT              Size;
  ULONG               ComponentCount;
  ULONG               Flags;
  union {
    ULONG UnitMinIdleTimeoutInMS;
    ULONG AdapterIdleTimeoutInMS;
  };
  STOR_POFX_COMPONENT Components[ANYSIZE_ARRAY];
} STOR_POFX_DEVICE_V2, *PSTOR_POFX_DEVICE_V2;

Members

Version

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

Size

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

ComponentCount

The number of elements in the Components array. Set this member to 1. Currently, only a single component is supported for either a storage adapter or logical unit.

Flags

The device power state capabilities flags. The miniport sets one or more of the PoFx device flags to enable or disable power state capabilities.

Flags is a bitwise OR combination of the following.

ValueMeaning
STOR_POFX_DEVICE_FLAG_NO_D0

Requests that a power up IRP not be sent to the device object for the adapter or unit.

STOR_POFX_DEVICE_FLAG_NO_D3

Requests that a power down IRP not be sent to the device object for the adapter or unit.

STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD

Enables Storport to set the D3 Cold state for the adapter if it supports it. This flag applies to adapters only.

STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE

The miniport is not able to bring the storage device active in dump mode if the device has entered the idle state or the power off when idle state. This flag indicates whether a device is available for dump when it is idle.

STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT

The timeout value in UnitMinIdleTimeoutInMS or AdapterIdleTimeoutInMS is used for the D3 idle timeout.

 

UnitMinIdleTimeoutInMS

The minimum idle time in milliseconds for an unit. This value is only valid when STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT is set in Flags.

AdapterIdleTimeoutInMS

The adapter idle timeout value in milliseconds. This value is only valid when STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT is set in Flags.

Components

This member is the first element in an array of one or more STOR_POFX_COMPONENT elements. If the array contains more than one element, the additional elements immediately follow the STOR_POFX_DEVICE structure. The array contains one element for each component in the device. Currently, storage devices have only one component so additional component structures are unnecessary.

Remarks

To register a storage adapter for Storport PoFx support, the miniport driver calls StorPortEnablePassiveInitialization in its HwStorInitialize routine and implements a HwStorPassiveInitializeRoutine. The miniport calls StorPortInitializePoFxPower within it's HwStorPassiveInitializeRoutine to provide information about the adapter component.

To register a storage unit for Storport PoFx support, the miniport driver implements the HwStorUnitControl callback routine and provides handling of the ScsiUnitPoFxPowerInfo unit control code. When the handling the ScsiUnitPoFxPowerInfo control code, the miniport calls StorPortInitializePoFxPower if idle power management for the unit component is enabled.

The component for the storage device identified by its Components array index. Storage devices have only one component so the index of 0 is used. Routines such as StorPortPoFxActivateComponent and StorPortPoFxIdleComponent use the array index of a component to identify the component.

Requirements

Version

Supported starting with Windows 8.

Header

Storport.h

See also

STOR_POFX_COMPONENT
STOR_POFX_DEVICE
StorPortInitializePoFxPower
StorPortPoFxActivateComponent
StorPortPoFxIdleComponent

 

 

Send comments about this topic to Microsoft

Afficher:
© 2014 Microsoft