Partager via


Fonction StorPortStateChangeDetected (storport.h)

Avertit le pilote de port Storport d’un changement d’état pour un numéro d’unité logique (LUN), un port HBA (Host Bus Adapter) ou un appareil cible.

Syntaxe

ULONG StorPortStateChangeDetected(
  [in]           PVOID            HwDeviceExtension,
  [in]           ULONG            ChangedEntity,
  [in]           PSTOR_ADDRESS    Address,
  [in]           ULONG            Attributes,
  [in, optional] PHW_STATE_CHANGE HwStateChange,
  [in, optional] PVOID            HwStateChangeContext
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par adaptateur HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes miniport stockent généralement des informations spécifiques à L’adaptateur HBA dans cette extension, telles que l’état de l’adaptateur HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le pilote miniport immédiatement après que le pilote miniport a appelé StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.

[in] ChangedEntity

Indicateurs indiquant les entités dont l’état a changé. Il s’agit d’une combinaison OR au niveau du bit de ces valeurs :

Valeur Signification
STATE_CHANGE_LUN
1 (0x1)
L’état du LUN a changé.
STATE_CHANGE_TARGET
2 (0x2)
L’état cible a changé.
STATE_CHANGE_BUS
4 (0x4)
L’état du bus ou du port a changé.

[in] Address

Adresse de l’entité avec le changement d’état. La valeur de l’adresse ne peut pas changer tant que le rappel dans HwStateChange n’est pas appelé. Si l’adresse est allouée en mémoire, la mémoire doit être libérée par la routine de rappel.

[in] Attributes

Attributs associés à l’entité. Il s’agit d’une combinaison OR au niveau du bit des éléments suivants :

Valeur Signification
ATTRIBUTE_VM_PASSTHROUGH_LUN
Les LUN sont réservés à l’utilisation des machines virtuelles.

[in, optional] HwStateChange

Pointeur vers une routine de rappel fournie par le miniport. Le cas échéant, le pilote Storport appelle cette routine lorsque le pilote a terminé de traiter cette notification de changement d’état.

[in, optional] HwStateChangeContext

Valeur de contexte fournie par miniport qui est incluse lorsque la routine définie dans HwStateChange est appelée.

Valeur retournée

Valeur status indiquant le résultat de la notification. Il peut s’agir de l’une des valeurs suivantes :

Code de retour Description
STOR_STATUS_SUCCESS
Le traitement de la notification de changement d’état est planifié.
STOR_STATUS_INVALID_PARAMETER
Le type d’adresse ou le type d’entité n’est pas valide.
STOR_STATUS_UNSUCCESSFUL
Une notification antérieure est en cours et celle-ci ne peut pas être planifiée.

Remarques

Un appel réussi à StorPortStateChangeDetected entraîne une nouvelle énumération de l’entité modifiée.

Une seule demande de changement d’état peut être active à tout moment. Si un miniport doit effectuer un autre appel StorPortStateChangeDetected , il doit fournir un rappel HwStateChange et effectuer un autre appel à StorPortStateChangeDetected après le rappel à HwStateChange . Si un miniport souhaite indiquer plusieurs changements d’état en même temps, le miniport peut appeler StorPortStateChangeDetected une fois, les entités modifiées étant définies dans ChangedEntity qui inclut toutes les modifications d’état actuelles.

Si plusieurs indicateurs sont spécifiés dans ChangedEntity, l’indicateur ayant une valeur supérieure sera prioritaire sur les indicateurs inférieurs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 8 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
IRQL Quelconque

Voir aussi

HwStorStateChange