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 |