structure ACCESS_RANGE (storport.h)
Un ACCESS_RANGE décrit une plage de ports d’E/S ou de mémoire utilisée par un HBA.
Syntaxe
typedef struct _ACCESS_RANGE {
STOR_PHYSICAL_ADDRESS RangeStart;
ULONG RangeLength;
BOOLEAN RangeInMemory;
} ACCESS_RANGE, *PACCESS_RANGE;
Membres
RangeStart
Contient une adresse physique qui spécifie l’adresse de base relative du bus d’une plage utilisée par l’adaptateur HBA. La valeur de ce membre peut être obtenue à partir de l’un des éléments AccessRanges dans la structure PORT_CONFIGURATION_INFORMATION. Il s’agit d’une adresse qui peut être transmise à StorPortGetDeviceBase.
RangeLength
Spécifie la taille, en octets ou le nombre de ports de la plage. Un pilote miniport doit s’assurer que cette valeur correspond à la plage réellement décodée par l’adaptateur. Par exemple, si l’adaptateur HBA utilise sept registres, mais répond à huit, ce membre doit être défini sur 8.
RangeInMemory
Indique que la plage est en mémoire lorsque TRUE, plutôt que dans l’espace d’E/S. Lorsque FALSE, la plage est dans l’espace d’E/S.
Remarques
Chaque ACCESS_RANGE est un élément de tableau AccessRanges dans la structure PORT_CONFIGURATION_INFORMATION qui est passée à la routine HwStorFindAdapter d’un pilote miniport.
Storport alloue de la mémoire pour les plages d’accès et initialise le membre AccessRanges. La routine du pilote miniport HwStorFindAdapter doit utiliser uniquement les adresses fournies et ne doit jamais jamais tenter de trouver d’autres HBA sur le même bus à l’aide d’adresses de son propre devis. La tentative d’accès à d’autres plages de mémoire ou de port relatives aux bus lorsque le pilote de port a fourni des informations de plage, en particulier dans les systèmes x86 uniquement dans lesquels certains appareils sont initialisés en mode réel x86, peuvent entraîner l’échec de l’initialisation d’autres appareils sur le bus ou même provoquer l’échec du processus de démarrage du système.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | storport.h (include Srb.h, Storport.h, Strmini.h) |