Partager via


StorPortGetLogicalUnit, fonction (storport.h)

La routine StorPortGetLogicalUnit retourne un pointeur vers la zone de stockage par unité logique du pilote miniport.

Syntaxe

STORPORT_API PVOID StorPortGetLogicalUnit(
  [in] PVOID HwDeviceExtension,
  [in] UCHAR PathId,
  [in] UCHAR TargetId,
  [in] UCHAR Lun
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par 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 à HBA dans cette extension, telles que l’état du HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le pilote miniport dès que la routine HwStorFindAdapter du pilote miniport est appelée. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.

[in] PathId

Identifie le bus SCSI.

[in] TargetId

Identifie le contrôleur ou l’appareil cible sur le bus.

[in] Lun

Identifie le numéro d’unité logique (LU) de l’appareil cible.

Valeur retournée

StorPortGetLogicalUnit retourne un pointeur vers la zone de stockage du pilote miniport pour l’unité logique demandée. Si l’unité logique n’existe pas, elle retourne NULL.

Remarques

StorPortGetLogicalUnit n’est pas pertinent si la routine DriverEntry du pilote miniport a spécifié zéro pour la LuExtensionSize dans le HW_INITIALIZATION_DATA quand elle a appelé StorPortInitialize. Sinon, le pilote de port spécifique au système d’exploitation alloue et initialise avec des zéros un ensemble d’extensions lu de la taille spécifiée pour le pilote miniport à utiliser.

Le stockage par unité logique peut être utilisé pour stocker des données pertinentes pour un périphérique particulier, comme des pointeurs de données enregistrés. Pour accéder à cette zone, le pilote miniport appelle StorPortGetLogicalUnit lorsque le pilote conserve des informations sur l’état ou le fonctionnement actuel d’un périphérique particulier.

Le pilote de port spécifique au système d’exploitation peut considérer qu’une unité logique est inexistante s’il n’y a pas de demande active pour cette unité logique et que l’appareil n’a jamais été sélectionné avec succès.

Notes

Lorsque le pilote miniport appelle StorPortGetLogicalUnit à l’adresse IRQL = DISPATCH_LEVEL, la fonction acquiert le verrou d’interruption. L’appel de StorPortGetLogicalUnit trop souvent à ce niveau IRQL a un impact sur les performances et la scalabilité du pilote miniport.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows XP et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
Bibliothèque Storport.lib

Voir aussi

HW_INITIALIZATION_DATA

StorPortInitialize