StorPortGetBusData 函数 (storport.h)
StorPortGetBusData 例程检索初始化 HBA 所需的特定于总线的配置信息。
语法
STORPORT_API ULONG StorPortGetBusData(
[in] PVOID DeviceExtension,
[in] ULONG BusDataType,
[in] ULONG SystemIoBusNumber,
[in] ULONG SlotNumber,
[in, out] PVOID Buffer,
[in] ULONG Length
);
参数
[in] DeviceExtension
指向微型端口驱动程序的每个 HBA 存储区域的指针。
[in] BusDataType
包含 类型为 BUS_DATA_TYPE 的值,该值指定要返回的特定于总线的配置数据的类型。 目前,此值可以是以下值之一: “Cmos”、“ EisaConfiguration”、“ Pos”或 “PCIConfiguration”。 但是,将来将支持其他类型的总线配置。 支持的类型的上限始终为 MaximumBusDataType。
[in] SystemIoBusNumber
指定系统分配的 I/O 总线编号。 微型端口驱动程序的 HwStorFindAdapter 例程从最初在 PORT_CONFIGURATION_INFORMATION 中设置的 SystemIoBusNumber 成员获取此值。
[in] SlotNumber
指定设备的逻辑槽号或位置。
如果将 PCIConfiguration 指定为 BusDataType,则必须将此参数指定为PCI_SLOT_NUMBER类型值。
[in, out] Buffer
指向配置数据返回到的缓冲区或区域的指针,或者,如果给定 的 Length 为零,则指向特定于 OS 的端口驱动程序返回指向其分配的缓冲区的指针的位置。
[in] Length
指定要在 缓冲区返回的最大字节数,如果调用方要求特定于 OS 的端口驱动程序分配缓冲区以包含数据,则为零。
返回值
StorPortGetBusData 返回存储在缓冲区中的配置信息的字节数。 当输入 BusDataType 为 PCIConfiguration 时, StorPortGetBusData 可以返回以下值之一来指示错误。
返回代码 | 说明 |
---|---|
0(零) | PCI 总线不存在。 |
2 | PCI 总线存在,但给定的 PCI SlotNumber 中没有设备。 缓冲区包含 PCI_COMMON_CONFIG VendorId 成员处PCI_INVALID_VENDOR_ID的值。 |
注解
微型端口驱动程序可以从以下例程调用 StorPortGetBusData :
- 从其 HwStorFindAdapter 回调例程。
- 仅当 ControlType 为 ScsiSetRunningConfig 时,才从其 HwStorAdapterControl。
来自其他微型端口驱动程序例程的调用将导致系统故障或调用方操作不正确。
StorPortGetBusData 返回的配置数据仅在微型端口驱动程序再次调用 StorPortGetBusData 之前有效。 调用方 HwStorFindAdapter 例程返回控制权后,任何返回的配置数据将变为无效。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | storport.h (包括 Storport.h) |
Library | Storport.lib |