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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour