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 的值,该值指定要返回的特定于总线的配置数据的类型。 目前,此值可以是以下值之一: “Cmos”、“ EisaConfiguration”、“ Pos”“PCIConfiguration”。 但是,将来将支持其他类型的总线配置。 支持的类型的上限始终为 MaximumBusDataType

[in] SystemIoBusNumber

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

[in] SlotNumber

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

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

[in] Buffer

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

[in] Length

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

返回值

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

返回代码 说明
0(零)
PCI 总线不存在。
2
PCI 总线存在,但给定的 PCI SlotNumber 中没有设备。 缓冲区包含 PCI_COMMON_CONFIG VendorId 成员处PCI_INVALID_VENDOR_ID的值。

注解

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

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

要求

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

另请参阅

HwScsiFindAdapter

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

PORT_CONFIGURATION_INFORMATION (SCSI)