ScsiPortIoMapTransfer 函式 (srb.h)

ScsiPortIoMapTransfer 例程會為迷你埠驅動程式設定系統 DMA 控制器,以透過次級 HBA 傳輸數據。

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

語法

SCSIPORT_API VOID ScsiPortIoMapTransfer(
  [in] PVOID               HwDeviceExtension,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               LogicalAddress,
  [in] ULONG               Length
);

參數

[in] HwDeviceExtension

硬體裝置擴充功能的指標。 這是埠驅動程式代表迷你埠驅動程式配置和初始化的每個 HBA 儲存區域。 迷你埠驅動程式通常會在此延伸模組中儲存 HBA 特定資訊,例如 HBA 的狀態和 HBA 的對應存取範圍。 此區域可在迷你埠驅動程式呼叫 ScsiPortInitialize 之後,立即提供給 HBA 裝置物件的 DeviceExtension-HwDeviceExtension> 成員。 埠驅動程式會在移除裝置時釋放此記憶體。

[in] Srb

DMA 傳輸之 SCSI 要求區塊的指標。

[in] LogicalAddress

指定傳輸作業的起始位址。 這個值可以是緩衝區的基位址,或要從中傳輸數據。 此值可以是這類緩衝區內的位移。

[in] Length

指定要傳送的位元組數目。

傳回值

備註

只有使用系統 DMA 控制器的小型埠驅動程式, (次級 DMA) 呼叫 ScsiPortIoMapTransfer。 在這類迷你埠驅動程式設定其 HBA 以傳輸數據之前,必須先呼叫此例程。 LogicalAddressLength 所指定的範圍必須位於指定 SRB 所描述的緩衝區內。

在作業系統特定的埠驅動程式程式系統 DMA 控制器之後,它會呼叫迷你埠驅動程式的 HwScsiDmaStarted 例程。 HwScsiDmaStarted 應該將 HBA 程式設計為開始數據傳輸。 請注意,HBA 可以中斷迷你埠驅動程式 對 ScsiPortIoMapTransfer 的呼叫,以及對迷你埠驅動程式 HwScsiDmaStarted 例程的操作系統特定埠驅動程式呼叫。

規格需求

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

另請參閱

HwScsiDmaStarted

ScsiPortFlushDma