SCSI ポートの SRB とストレージ クラス ドライバーとのインターフェイス
ストレージ クラス ドライバーとその他の上位レベルのコンポーネントは、SCSI 要求ブロック (SRB) を構築することによって SCSI ポート ドライバーと通信します。 SRB の詳細については、「SCSI_REQUEST_BLOCK」を参照してください。 ストレージ クラス ドライバーは、MajorFunction メンバーが IRP_MJ_SCSI に設定されている IRP で、作成した SRB を SCSI ポート に渡します。 SRB をポート ドライバーに渡す前に、ストレージ クラス ドライバーが SRB をビルドするために実行しなければならない手順については、「ストレージ クラス ドライバーの BuildRequest ルーチン」を参照してください。
SRB をスタックに転送する前に、SCSI ポートは、SRB 内の特定の値 (ポート番号、パス、ターゲット番号、ターゲット デバイスの論理ユニット番号など) を設定します。
IDE/ATAPI および IEEE 1394 バス用のシステム提供ポート ドライバーなどの他のポート ドライバーとは異なり、SCSI ポートは、基になるアダプターへ転送前に、受信した SRB のコマンド記述子ブロック (CDB) を別の形式に変換する必要はありません。 SCSI ポートは、単に SRB にいくつかのターゲット固有の情報を追加し、変更されていない CDB を使用してミニポート ドライバーに渡します。 したがって、SCSI ポートは、CDN を含む SRB をスタックの下に渡す単なるメッセンジャーです。
このため、ストレージ クラス ドライバーと SCSI ポートの間の SRB インターフェイスのほとんどの側面については、ストレージ クラス ドライバーとストレージ ミニポート ドライバーおよびそれらに付随する参照資料に関する一般的なドキュメントで説明されています。 ストレージ クラス ドライバーと SCSI ポート ミニポート ドライバーのペアの間の SRB インターフェイスに関連するセクションの一覧については、「SCSI ポート ミニポート ドライバーと SCSI ポートのインターフェイス」を参照してください。