estructura STOR_POFX_DEVICE_V3 (storport.h)

La estructura STOR_POFX_DEVICE_V3 describe los atributos de energía de un dispositivo de almacenamiento en el marco de administración de energía (PoFx). Esta estructura es similar a STOR_POFX_DEVICE , pero permite al autor de la llamada especificar un valor de tiempo de espera de inactividad.

Sintaxis

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;

Miembros

Version

Número de versión de esta estructura. Establezca este miembro en STOR_POFX_DEVICE_VERSION_V3.

Size

Tamaño de esta estructura. Establezca este valor en STOR_POFX_DEVICE_V3_SIZE.

ComponentCount

Número de elementos de la matriz Components . Establezca este miembro en 1. Actualmente, solo se admite un único componente para un adaptador de almacenamiento o una unidad lógica.

Flags

Marcas de funcionalidades de estado de energía del dispositivo. La minipuerto establece una o varias marcas de dispositivo PoFx para habilitar o deshabilitar las funcionalidades de estado de energía. Las marcas son una combinación OR bit a bit de lo siguiente.

Valor de marca Significado
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) Solicita que un IRP de encendido no se envíe al objeto de dispositivo para el adaptador o la unidad.
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) Solicita que un IRP de apagado no se envíe al objeto de dispositivo para el adaptador o la unidad.
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) Permite a Storport establecer el estado D3 Cold para el adaptador si lo admite. Esta marca solo se aplica a los adaptadores.
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) Indica si un dispositivo está disponible para volcado cuando está inactivo. El minipuerto no puede activar el dispositivo de almacenamiento en modo de volcado de memoria si el dispositivo ha entrado en el estado de inactividad o la apagado cuando el estado de inactividad.
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) Si el STOR_POFX_DEVICE_V3 representa una unidad, esta marca indica que se debe respetar el campo UnitMinIdleTimeoutInMS . Si el STOR_POFX_DEVICE_V3 representa un adaptador, indica que se debe respetar el campo AdapterIdleTimeoutInMS .
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) Indica que Storport debe ajustar dinámicamente el tiempo de espera de inactividad D3 para que el dispositivo pueda entrar de forma agresiva en D3 cuando sea necesario. Esto solo es válido cuando se usa STOR_POFX_DEVICE_V3 .
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) Especifica que ninguna de las unidades expuestas por este adaptador debe registrarse para la administración de energía en tiempo de ejecución. Esto solo es válido para STOR_POFX_DEVICE estructuras que representan un adaptador.
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) Indica que el miniporte no requiere compatibilidad con P-State desde el complemento de extensión de plataforma (PEP). En caso de duda, establezca esta marca.
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) Comprueba la capacidad de la versión de volcado de memoria de la minipuerto en el dispositivo cuando el dispositivo está en estados de menor potencia.
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) La minipuerto quiere que la pila de volcado intente encender el dispositivo.
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) El miniport desea que Storport deshabilite o habilite las interrupciones en transiciones dx.
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) Compatibilidad con reactivación D3 del adaptador isopt-in de miniporte.
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) El minipuerto requiere estados P del PEP.

UnitMinIdleTimeoutInMS

Tiempo de inactividad mínimo en milisegundos para una unidad. Este valor solo es válido cuando STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT se establece en Marcas.

AdapterIdleTimeoutInMS

Valor de tiempo de espera de inactividad del adaptador en milisegundos. Este valor solo es válido cuando STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT se establece en Marcas.

MinimumPowerCyclePeriodInMS

Indica que el dispositivo no debe estar en ciclo de alimentación (D0 -> D3 -> D0) más de una vez por el período dado en milisegundos. Este miembro solo es válido cuando se ha establecido la marca de STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT.

Components[ANYSIZE_ARRAY]

Este miembro es el primer elemento de una matriz de uno o varios elementos STOR_POFX_COMPONENT . Si la matriz contiene más de un elemento, los elementos adicionales siguen inmediatamente la estructura STOR_POFX_DEVICE . La matriz contiene un elemento para cada componente del dispositivo. Actualmente, los dispositivos de almacenamiento solo tienen un componente, por lo que no son necesarias estructuras de componentes adicionales.

Comentarios

Para registrar un adaptador de almacenamiento para la compatibilidad con Storport PoFx, el controlador de miniport llama a StorPortEnablePassiveInitialization en su rutina HwStorInitialize e implementa un HwStorPassiveInitializeRoutine. El miniport llama a StorPortInitializePoFxPower dentro de HwStorPassiveInitializeRoutine para proporcionar información sobre el componente del adaptador.

Para registrar una unidad de almacenamiento para la compatibilidad con Storport PoFx, el controlador de miniport implementa la rutina de devolución de llamada HwStorUnitControl y proporciona el control del código de control de unidad ScsiUnitPoFxPowerInfo . Al controlar el código de control ScsiUnitPoFxPowerInfo , la miniporta llama a StorPortInitializePoFxPower si está habilitada la administración de energía inactiva para el componente de unidad.

Componente del dispositivo de almacenamiento identificado por su índice de matriz Components . Los dispositivos de almacenamiento solo tienen un componente para que se use el índice de 0. Rutinas como StorPortPoFxActivateComponent y StorPortPoFxIdleComponent usan el índice de matriz de un componente para identificar el componente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10
Encabezado storport.h

Consulte también

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent