ScsiPortIoMapTransfer 関数 (srb.h)
ScsiPortIoMapTransfer ルーチンは、下位 HBA を介してデータを転送するミニポート ドライバーのシステム DMA コントローラーを設定します。
構文
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) を使用する HBA のミニポート ドライバーのみが ScsiPortIoMapTransfer を呼び出します。 このようなミニポート ドライバーがデータを転送する HBA を設定する前に、このルーチンを呼び出す必要があります。 LogicalAddress と Length で指定される範囲は、指定された SRB によって記述されたバッファー内にある必要があります。
オペレーティング システム固有のポート ドライバーがシステム DMA コントローラーをプログラムした後、ミニポート ドライバーの HwScsiDmaStarted ルーチンを 呼び出します。 HwScsiDmaStarted は 、HBA をプログラムしてデータ転送を開始する必要があります。 HBA は、ミニポート ドライバーの ScsiPortIoMapTransfer への呼び出しと、ミニポート ドライバーの HwScsiDmaStarted ルーチンへのオペレーティング システム固有のポート ドライバーの呼び出しの間で中断できることに注意してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | srb.h (Miniport.h、Scsi.h を含む) |
Library | Scsiport.lib |