ScsiPortIoMapTransfer 函式 (srb.h)
ScsiPortIoMapTransfer 例程會為迷你埠驅動程式設定系統 DMA 控制器,以透過次級 HBA 傳輸數據。
語法
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 以傳輸數據之前,必須先呼叫此例程。 LogicalAddress 和 Length 所指定的範圍必須位於指定 SRB 所描述的緩衝區內。
在作業系統特定的埠驅動程式程式系統 DMA 控制器之後,它會呼叫迷你埠驅動程式的 HwScsiDmaStarted 例程。 HwScsiDmaStarted 應該將 HBA 程式設計為開始數據傳輸。 請注意,HBA 可以中斷迷你埠驅動程式 對 ScsiPortIoMapTransfer 的呼叫,以及對迷你埠驅動程式 HwScsiDmaStarted 例程的操作系統特定埠驅動程式呼叫。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | srb.h (包括 Miniport.h、Scsi.h) |
程式庫 | Scsiport.lib |