ScsiPortSetBusDataByOffset 函式 (srb.h)

ScsiPortSetBusDataByOffset 例程會在具有已發佈標準介面的動態設定 I/O 總線上設定適配卡的總線組態數據。

注意 未來可能會變更或無法使用 SCSI 埠驅動程式和 SCSI 迷你埠驅動程式模型。 相反地,我們建議使用 Storport 驅動程式Storport 迷你埠 驅動程式模型。
 

語法

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

參數

[in] DeviceExtension

迷你埠驅動程式裝置延伸模組的指標。

[in] BusDataType

包含類型 為 BUS_DATA_TYPE 的值,指定要設定的總線數據類型。 目前,其值可以是 PCIConfiguration。 不過,未來將支援其他標準化且可動態設定的總線類型。 支援的總線類型上限一律為 MaximumBusDataType

[in] SystemIoBusNumber

指定 HBA 所連接之 I/O 總線的系統指派號碼。 迷你埠驅動程式的 HwScsiFindAdapter 例程會從 輸入PORT_CONFIGURATION_INFORMATION SystemIoBusNumber 成員取得此值。

[in] SlotNumber

指定 HBA 的邏輯位置編號。

PCIConfiguration 指定為 BusDataType 時,此參數必須指定為PCI_SLOT_NUMBER類型值。

[in] Buffer

呼叫端提供的儲存區域指標,其中包含 BusDataType 專屬的組態資訊。

指定 PCIConfiguration 時,緩衝區會包含指定 SlotNumber 的一些或所有PCI_COMMON_CONFIG資訊。 指定的 OffsetLength 會決定提供多少資訊。

[in] Offset

指定呼叫端提供的組態值開始所在PCI_COMMON_CONFIG結構內的位元組位移。 迷你埠驅動程式可以使用PCI_COMMON_HDR_LENGTH,在 PCI_COMMON_CONFIG 中指定裝置特定區域的位移。

[in] Length

指定 [ 緩衝區] 儲存區域中的位元組數目。

傳回值

ScsiPortSetBusDataByOffset 會傳回為指定 SlotNumber 成功設定的數據位元組數目。 如果指定的 BusDataType 對目前平台無效,或所提供的資訊無效, ScsiPortSetBusDataByOffset 會傳回零。

備註

PCI 總線上 HBA 的迷你埠驅動程式很少呼叫 ScsiPortSetBusDataByOffset, 除非特定驅動程式 HBA 的異常情況或本質需要這類呼叫。 例如,迷你埠驅動程式可能會呼叫 ScsiPortSetBusDataByOffset 來清除 PCI 狀態緩存器中的位,如果其 HBA 在初始化期間發出目標中止訊號,或設定 HBA 的裝置特定組態數據。

只有在控件類型為 ScsiSetRunningConfig 時,才能從迷你埠驅動程式的 HwScsiFindAdapter 例程或從 HwScsiAdapterControl 呼叫 ScsiPortSetBusDataByOffset

規格需求

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

另請參閱

HalSetBusDataByOffset

HwScsiFindAdapter

PCI_COMMON_CONFIG

PCI_SLOT_NUMBER

PORT_CONFIGURATION_INFORMATION (SCSI)

ScsiPortGetBusData