Partager via


STOR_POFX_COMPONENT structure (storport.h)

La structure STOR_POFX_COMPONENT décrit les attributs d’état d’alimentation d’un composant de périphérique de stockage. La structure STOR_POFX_COMPONENT_V2 fournit un contrôle d’état d’alimentation supplémentaire.

Syntaxe

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;

Membres

Version

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

Size

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

FStateCount

Nombre d’éléments dans le tableau pointant vers le membre FStates . En outre, ce membre spécifie le nombre d’états d’alimentation fonctionnels (état F) pris en charge par le composant. Un composant doit prendre en charge au moins un état F (F0).

DeepestWakeableFState

Index de l’état F le plus profond à partir duquel le composant peut sortir de veille. Spécifiez 0 pour F0, 1 pour F1, etc. Cet index doit être inférieur à FStateCount.

Id

ID de composant qui identifie de manière unique ce composant par rapport aux autres composants de l’appareil. Le pilote doit spécifier une valeur différente de zéro pour ce membre si l’infrastructure de gestion de l’alimentation (PoFx) nécessite un ID de composant pour distinguer ce composant d’autres composants similaires dans le même appareil. Les ID de composant pris en charge par Storport sont STORPORT_POFX_ADAPTER_GUID (identifie un adaptateur) et STORPORT_POFX_LUN_GUID (identifie une unité).

FStates[ANYSIZE_ARRAY]

Tableau de structures STOR_POFX_COMPONENT_IDLE_STATE . La longueur de ce tableau est spécifiée par le membre FStateCount . Chaque élément de tableau spécifie les attributs d’un état F pris en charge par le composant. L’élément 0 décrit F0, l’élément 1 décrit F1, et ainsi de suite. Lorsque plusieurs structures d’état inactives sont requises, les structures supplémentaires sont allouées à la fin de la structure STOR_ POFX_COMPONENT et FStateCount est définie sur 1, qui est la valeur de ANYSIZE_ARRAY, plus le nombre de structures supplémentaires.

Remarques

Lorsqu’un pilote miniport inscrit un appareil auprès de l’infrastructure de gestion de l’alimentation Storport, le pilote miniport fournit une structure de STOR_POFX_DEVICE qui contient les informations d’inscription. Cette structure contient un tableau de structures STOR_ POFX_COMPONENT . Les éléments de ce tableau décrivent les attributs de puissance des composants individuels de l’appareil. Les paramètres d’alimentation de ces composants sont gérés en fonction des informations contenues dans ce tableau.

Le membre Id contient un ID de composant qui identifie un composant de manière unique. L’ID de composant n’est pas le même que l’index du composant, qu’une routine telle que StorPortPoFxActivateComponent utilise pour identifier un composant dans un appareil inscrit. Un index de composant est un index dans le tableau Components de la structure STOR_POFX_DEVICE utilisée par le pilote de périphérique pour inscrire l’appareil. Si le tableau Components contient N éléments, les index de composant sont des valeurs entières comprises entre 0 et N-1. En revanche, un ID de composant est une valeur GUID.

L’ID du composant de périphérique à adaptateur unique est défini dans storport.h comme STORPORT_POFX_ADAPTER_GUID. L’ID du composant d’appareil à unité unique est STORPORT_POFX_LUN_GUID. Utilisez ces identificateurs lors de la description d’un composant d’adaptateur ou d’un composant d’unité dans le membre Id .

Les exigences relatives à l’état F sont les suivantes :

  • Pour un composant de périphérique d’adaptateur, le miniport doit spécifier un seul composant et jusqu’à huit états F pour l’adaptateur. StorPortInitializePoFxPower doit être appelé par le miniport uniquement dans le contexte de la routine d’initialisation passive du miniport.
  • Pour un composant d’appareil unitaire, le miniport doit spécifier un seul composant pour l’unité et peut spécifier jusqu’à deux états F. L’appareil d’unité doit avoir l’état F0 spécifié et peut éventuellement avoir un état F supplémentaire. StorPortInitializePoFxPower doit être appelé par le miniport uniquement dans le contexte du contrôle d’unité ScsiUnitPoFxPowerInfo du miniport.

Pour un composant d’appareil unitaire, si un état F supplémentaire est inclus dans le tableau FStates , le membre size reste défini sur STOR_POFX_COMPONENT_SIZE et n’inclut pas la taille de la structure de STOR_POFX_COMPONENT_IDLE_STATE supplémentaire.

Configuration requise

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

Voir aussi

HW_UNIT_CONTROL

STOR_POFX_COMPONENT_V2

STOR_POFX_COMPONENT_IDLE_STATE

STOR_POFX_DEVICE

StorPortInitializePoFxPower

StorPortPoFxActivateComponent