次の方法で共有


ScsiPortIoMapTransfer 関数 (srb.h)

ScsiPortIoMapTransfer ルーチンは、下位 HBA を介してデータを転送するミニポート ドライバーのシステム DMA コント ローラーを設定します。

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

転送するバイト数を指定します。

戻り値

何一つ

備考

ScsiPortIoMapTransfer システム DMA コントローラー (下位 DMA) 呼び出しを使用する HBA のミニポート ドライバーのみ。 このようなミニポート ドライバーは、データを転送する HBA を設定する前に、このルーチンを呼び出す必要があります。 LogicalAddress および Length で指定する範囲は、指定された SRB によって記述されたバッファー内になければなりません。

オペレーティング システム固有のポート ドライバーは、システム DMA コントローラーをプログラムした後、ミニポート ドライバーの HwScsiDmaStarted ルーチンを呼び出します。 HwScsiDmaStarted 、HBA をプログラムしてデータ転送を開始する必要があります。 HBA は、ミニポート ドライバーの ScsiPortIoMapTransfer へのミニポート ドライバーの呼び出しと、ミニポート ドライバーの HwScsiDmaStarted ルーチンへのオペレーティング システム固有のポート ドライバーの呼び出しの間で中断できることに注意してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー srb.h (ミニポート h、Scsi.h を含む)
ライブラリ Scsiport.lib

関連項目

HwScsiDmaStarted

ScsiPortFlushDma