Fonction ScsiPortGetBusData (srb.h)
La routine ScsiPortGetBusData retourne des informations de configuration spécifiques au type de bus que la routine HwScsiFindAdapter d’un pilote miniport peut utiliser pour déterminer si elle prend en charge un adaptateur particulier sur un bus d’E/S particulier, et pour configurer l’adaptateur HBA si c’est le cas.
Syntaxe
SCSIPORT_API ULONG ScsiPortGetBusData(
[in] PVOID DeviceExtension,
[in] ULONG BusDataType,
[in] ULONG SystemIoBusNumber,
[in] ULONG SlotNumber,
[in] PVOID Buffer,
[in] ULONG Length
);
Paramètres
[in] DeviceExtension
Pointeur vers la zone de stockage par HBA du pilote miniport.
[in] BusDataType
Contient une valeur de type BUS_DATA_TYPE qui spécifie le type de données de configuration spécifiques au bus à retourner. Actuellement, cette valeur peut être l’une des suivantes : Cmos, EisaConfiguration, Pos ou PCIConfiguration. Toutefois, d’autres types de configuration de bus seront pris en charge à l’avenir. La limite supérieure sur les types pris en charge est toujours MaximumBusDataType.
[in] SystemIoBusNumber
Spécifie le numéro attribué par le système du bus d’E/S. La routine HwScsiFindAdapter du pilote miniport obtient cette valeur à partir de l’entrée PORT_CONFIGURATION_INFORMATION membre SystemIoBusNumber .
[in] SlotNumber
Spécifie le numéro d’emplacement logique ou l’emplacement de l’appareil.
Si PCIConfiguration est spécifié en tant que BusDataType, ce paramètre doit être spécifié en tant que valeur de type PCI_SLOT_NUMBER.
[in] Buffer
Pointeur vers une mémoire tampon ou une zone vers laquelle les données de configuration sont retournées ou, si la longueur donnée est égale à zéro, pointe vers un emplacement vers lequel le pilote de port spécifique au système d’exploitation retourne un pointeur vers une mémoire tampon qu’il alloue.
[in] Length
Spécifie le nombre maximal d’octets à retourner dans Buffer, ou zéro si l’appelant exige que le pilote de port spécifique au système d’exploitation alloue une mémoire tampon pour contenir les données.
Valeur retournée
ScsiPortGetBusData retourne le nombre d’octets d’informations de configuration stockées dans la mémoire tampon. Lorsque l’entrée BusDataType est PCIConfiguration, ScsiPortGetBusData peut retourner l’une des valeurs suivantes pour indiquer une erreur.
Code de retour | Description |
---|---|
|
Le bus PCI n’existe pas. |
|
Le bus PCI existe, mais il n’existe aucun appareil au niveau du numéro d’emplacement PCI donné. La mémoire tampon contient la valeur PCI_INVALID_VENDOR_ID au PCI_COMMON_CONFIG membre VendorId . |
Remarques
ScsiPortGetBusData peut être appelé uniquement à partir de la routine HwScsiFindAdapter d’un pilote miniport ou à partir de HwScsiAdapterControl lorsque le type de contrôle est ScsiSetRunningConfig. Les appels d’autres routines de pilotes miniport entraînent une défaillance du système ou une opération incorrecte pour l’appelant.
Les données de configuration retournées par ScsiPortGetBusData ne sont valides que jusqu’à ce que le pilote miniport appelle à nouveau ScsiPortGetBusData . Dès que la routine HwScsiFindAdapter de l’appelant retourne le contrôle, toutes les données de configuration retournées ne sont plus valides.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | srb.h (include Miniport.h, Scsi.h) |
Bibliothèque | Scsiport.lib |