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之後,此區域可供 DeviceExtension->HwDeviceExtension HBA 裝置對象的成員使用。 埠驅動程式會在移除裝置時釋放此記憶體。
[in] Srb
DMA 傳輸之 SCSI 要求區塊的指標。
[in] LogicalAddress
指定傳輸作業的起始位址。 這個值可以是要傳送數據或從中傳送數據的緩衝區基位址。 此值可以是這類緩衝區內的位移。
[in] Length
指定要傳輸的位元組數目。
傳回值
沒有
言論
只有使用系統 DMA 控制器 (從屬 DMA) 呼叫的 HBA 迷你連接埠驅動程式 ScsiPortIoMapTransfer。 在這類迷你埠驅動程式設定其 HBA 以傳輸數據之前,必須先呼叫此例程。 LogicalAddress 和 Length 所指定的範圍必須位於指定的 SRB 所描述的緩衝區內。
作系統特定的埠驅動程式程式系統 DMA 控制器之後,它會呼叫迷你埠驅動程式的 HwScsiDmaStarted 例程。 HwScsiDmaStarted 應該將 HBA 程式設計為開始數據傳輸。 請注意,HBA 可以在迷你埠驅動程式呼叫 ScsiPortIoMapTransfer 與作系統特定的埠驅動程式呼叫 miniport 驅動程式的 HwScsiDmaStarted 例程之間中斷。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | srb.h (include Miniport.h, Scsi.h) |
連結庫 | Scsiport.lib |