ScsiPortGetBusData 函式 (srb.h)

ScsiPortGetBusData 例程會傳回迷你埠驅動程式的 HwScsiFindAdapter 例程可能用來判斷它是否支援特定 I/O 總線上的特定適配卡,以及設定 HBA 是否支援特定 I/O 總線上的特定組態資訊。

注意 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 的值,指定要傳回之總線特定組態數據的型別。 目前,這個值可以是下列其中一項: [Azure][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 可以傳回下列任一值來指出錯誤。

傳回碼 Description
0 (零)
PCI 總線不存在。
2
PCI 總線存在,但指定的PCI SlotNumber 上沒有裝置。 Buffer 包含PCI_COMMON_CONFIG VendorId 成員PCI_INVALID_VENDOR_ID值。

備註

只有當控件類型為 ScsiSetRunningConfig 時,只能從迷你埠驅動程式的 HwScsiFindAdapter 例程或從 HwScsiAdapterControl 呼叫 ScsiPortGetBusData。 來自其他迷你埠驅動程式例程的呼叫會導致系統失敗或呼叫端的作業不正確。

ScsiPortGetBusData 傳回的設定數據只有在迷你埠驅動程式再次呼叫 ScsiPortGetBusData 之前才有效。 只要呼叫端的 HwScsiFindAdapter 例程傳回控制權,任何傳回的組態數據就會變成無效。

規格需求

需求
目標平台 桌面
標頭 srb.h (包括 Miniport.h、Scsi.h)
程式庫 Scsiport.lib

另請參閱

HwScsiFindAdapter

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

PORT_CONFIGURATION_INFORMATION (SCSI)