ScsiPortGetBusData 函数 (srb.h)

ScsiPortGetBusData 例程返回微型端口驱动程序 HwScsiFindAdapter 例程可能用于确定它是否支持特定 I/O 总线上的特定适配器,以及配置 HBA(如果这样做)。

注意 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

语法

SCSIPORT_API ULONG ScsiPortGetBusData(
  [in] PVOID DeviceExtension,
  [in] ULONG BusDataType,
  [in] ULONG SystemIoBusNumber,
  [in] ULONG SlotNumber,
  [in] PVOID Buffer,
  [in] ULONG Length
);

参数

[in] DeviceExtension

指向微型端口驱动程序的每 HBA 存储区域的指针。

[in] BusDataType

包含 BUS_DATA_TYPE 类型的值,该值指定要返回的特定于总线的配置数据类型。 目前,此值可以是下列值之一:EisaConfigurationPosPCIConfiguration。 但是,将来将支持其他类型的总线配置。 支持的类型的上限始终 MaximumBusDataType

[in] SystemIoBusNumber

指定 I/O 总线的系统分配编号。 微型端口驱动程序的 HwScsiFindAdapter 例程从输入PORT_CONFIGURATION_INFORMATION SystemIoBusNumber 成员获取此值。

[in] SlotNumber

指定设备的逻辑槽号或位置。

如果 PCIConfiguration 指定为 BusDataType,则必须将此参数指定为PCI_SLOT_NUMBER类型值。

[in] Buffer

指向返回配置数据的缓冲区或区域的指针;如果给定的 长度 为零,则指向作系统特定的端口驱动程序返回其分配的缓冲区的指针的位置。

[in] Length

指定要在 Buffer处返回的最大字节数;如果调用方要求特定于作系统的端口驱动程序分配缓冲区以包含数据,则为零。

返回值

ScsiPortGetBusData 返回存储在缓冲区中的配置信息的字节数。 输入 BusDataType 为 PCIConfiguration 时,ScsiPortGetBusData 可以返回以下任一值来指示错误。

返回代码 描述
0 (零)
PCI 总线不存在。
2
PCI 总线存在,但给定的 PCI SlotNumber上没有设备。 Buffer 包含PCI_COMMON_CONFIG VendorId 成员处的值PCI_INVALID_VENDOR_ID。

言论

ScsiPortGetBusData 只能从微型端口驱动程序的 HwScsiFindAdapter 例程或从 HwScsiAdapterControl 调用控件类型 ScsiSetRunningConfig。 来自其他微型端口驱动程序例程的调用将导致系统故障或调用方作不正确。

ScsiPortGetBusData 返回的配置数据仅在微型端口驱动程序再次调用 ScsiPortGetBusData 之前有效。 调用方 HwScsiFindAdapter 例程返回控制后,任何返回的配置数据就会失效。

要求

要求 价值
目标平台 桌面
标头 srb.h (包括 Miniport.h、Scsi.h)
Scsiport.lib

另请参阅

HwScsiFindAdapter

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

PORT_CONFIGURATION_INFORMATION (SCSI)