Partager via


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.

Note Les modèles de pilote de port SCSI et de pilote miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser les modèles de pilote Storport et de pilote miniport Storport .
 

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
0 (zéro)
Le bus PCI n’existe pas.
2
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

Voir aussi

HwScsiFindAdapter

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

PORT_CONFIGURATION_INFORMATION (SCSI)