Partager via


STOR_POFX_DEVICE_V3 structure (storport.h)

La structure STOR_POFX_DEVICE_V3 décrit les attributs d’alimentation d’un périphérique de stockage à l’infrastructure de gestion de l’alimentation (PoFx). Cette structure est similaire à STOR_POFX_DEVICE , mais permet à l’appelant de spécifier une valeur de délai d’inactivité.

Syntaxe

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;

Membres

Version

Numéro de version de cette structure. Définissez ce membre sur STOR_POFX_DEVICE_VERSION_V3.

Size

La taille de cette structure. Définissez cette valeur sur STOR_POFX_DEVICE_V3_SIZE.

ComponentCount

Nombre d’éléments dans le tableau Components . Définissez ce membre sur 1. Actuellement, un seul composant est pris en charge pour un adaptateur de stockage ou une unité logique.

Flags

Indicateurs des fonctionnalités d’état d’alimentation de l’appareil. Le miniport définit un ou plusieurs indicateurs d’appareil PoFx pour activer ou désactiver les fonctionnalités d’état d’alimentation. Flags est une combinaison OR au niveau du bit des éléments suivants.

Valeur d’indicateur Signification
STOR_POFX_DEVICE_FLAG_NO_D0 (0x01) Demande qu’un IRP de mise sous tension ne soit pas envoyé à l’objet d’appareil pour l’adaptateur ou l’unité.
STOR_POFX_DEVICE_FLAG_NO_D3 (0x02) Demande qu’un IRP de mise hors tension ne soit pas envoyé à l’objet de périphérique pour l’adaptateur ou l’unité.
STOR_POFX_DEVICE_FLAG_ENABLE_D3_COLD (0x04) Permet à Storport de définir l’état froid D3 de l’adaptateur s’il le prend en charge. Cet indicateur s’applique uniquement aux adaptateurs.
STOR_POFX_DEVICE_FLAG_NO_DUMP_ACTIVE (0x08) Indique si un appareil est disponible pour le vidage lorsqu’il est inactif. Le miniport n’est pas en mesure de mettre le périphérique de stockage actif en mode vidage si l’appareil est passé à l’état inactif ou à l’arrêt en cas d’inactivité.
STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT (0x10) Si le STOR_POFX_DEVICE_V3 représente une unité, cet indicateur indique que le champ UnitMinIdleTimeoutInMS doit être respecté. Si le STOR_POFX_DEVICE_V3 représente un adaptateur, cela indique que le champ AdapterIdleTimeoutInMS doit être respecté.
STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT (0x20) Indique que Storport doit ajuster dynamiquement le délai d’inactivité D3 de sorte que l’appareil puisse entrer agressivement dans D3 si nécessaire. Cela est valide uniquement lorsque STOR_POFX_DEVICE_V3 est utilisé.
STOR_POFX_DEVICE_FLAG_NO_UNIT_REGISTRATION (0x40) Spécifie qu’aucune des unités exposées par cet adaptateur ne doit être inscrite pour la gestion de l’alimentation du runtime. Cela est valide uniquement pour les structures STOR_POFX_DEVICE qui représentent un adaptateur.
STOR_POFX_DEVICE_FLAG_PERF_STATE_PEP_OPTIONAL (0x80) Indique que le miniport ne nécessite pas la prise en charge de P-State à partir du plug-in d’extension de plateforme (PEP). En cas de doute, définissez cet indicateur.
STOR_POFX_DEVICE_FLAG_NO_IDLE_DEBOUNCE (0x100) Vérifie dans quelle mesure la version de vidage du miniport peut être mise sous tension sur l’appareil lorsque l’appareil est dans des états d’alimentation inférieure.
STOR_POFX_DEVICE_FLAG_DUMP_ALWAYS_POWER_ON (0x200) Le miniport souhaite que la pile de vidage tente de mettre l’appareil sous tension.
STOR_POFX_DEVICE_FLAG_DISABLE_INTERRUPTS_ON_D3 (0x400) Le miniport souhaite que Storport désactive/active les interruptions sur les transitions Dx.
STOR_POFX_DEVICE_FLAG_ADAPTER_D3_WAKE (0x800) Prise en charge de l’adaptateur miniport isopt-in D3 wake.
STOR_POFX_DEVICE_FLAG_GET_PERF_STATE_FROM_PEP (0x1000) Le miniport nécessite des états P du PEP.

UnitMinIdleTimeoutInMS

Temps d’inactivité minimal en millisecondes pour une unité. Cette valeur n’est valide que lorsque STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT est défini dans Indicateurs.

AdapterIdleTimeoutInMS

Valeur du délai d’inactivité de l’adaptateur en millisecondes. Cette valeur n’est valide que lorsque STOR_POFX_DEVICE_FLAG_IDLE_TIMEOUT est défini dans Indicateurs.

MinimumPowerCyclePeriodInMS

Indique que l’appareil ne doit pas être alimenté (D0 -> D3 -> D0) plusieurs fois par période donnée en millisecondes. Ce membre n’est valide que lorsque l’indicateur STOR_POFX_DEVICE_FLAG_ADAPTIVE_D3_IDLE_TIMEOUT a été défini.

Components[ANYSIZE_ARRAY]

Ce membre est le premier élément d’un tableau d’un ou de plusieurs éléments STOR_POFX_COMPONENT . Si le tableau contient plusieurs éléments, les éléments supplémentaires suivent immédiatement la structure STOR_POFX_DEVICE . Le tableau contient un élément pour chaque composant de l’appareil. Actuellement, les périphériques de stockage n’ont qu’un seul composant. Les structures de composants supplémentaires ne sont donc pas nécessaires.

Remarques

Pour inscrire un adaptateur de stockage pour la prise en charge de Storport PoFx, le pilote miniport appelle StorPortEnablePassiveInitialization dans sa routine HwStorInitialize et implémente un HwStorPassiveInitializeRoutine. Le miniport appelle StorPortInitializePoFxPower dans son HwStorPassiveInitializeRoutine pour fournir des informations sur le composant de l’adaptateur.

Pour inscrire une unité de stockage pour la prise en charge de Storport PoFx, le pilote miniport implémente la routine de rappel HwStorUnitControl et assure la gestion du code de contrôle d’unité ScsiUnitPoFxPowerInfo . Lors de la gestion du code de contrôle ScsiUnitPoFxPowerInfo , le miniport appelle StorPortInitializePoFxPower si la gestion de l’alimentation inactive pour le composant d’unité est activée.

Composant du périphérique de stockage identifié par son index de tableau Components . Les périphériques de stockage n’ont qu’un seul composant. L’index de 0 est donc utilisé. Les routines telles que StorPortPoFxActivateComponent et StorPortPoFxIdleComponent utilisent l’index de tableau d’un composant pour identifier le composant.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
En-tête storport.h

Voir aussi

STOR_POFX_COMPONENT

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent

StorPortPoFxIdleComponent