次の方法で共有


Storport ミニポート ドライバーを使用した Storport インターフェイス

Storport ドライバーと Storport ミニポート ドライバーの間の通信は、SCSI 要求ブロック (SRB) とミニポート ドライバーのコールバック ルーチンによって行われます。 Storport ミニポート ドライバーコールバック ルーチンの詳細については、Storport ミニポート ドライバー ルーチンを参照してください。

個々の SRB 関数、SRB フラグ、および SRB ステータス値の概要と定義については、SCSI_REQUEST_BLOCK を参照してください。

ミニポート ドライバーが個々の SRB 関数に応答する方法については、HwStorStartIo を参照してください。

Storport は、非同期処理のために SRB を Storport ミニポート ドライバーに転送します。 通常、ミニポート ドライバーは、要求を実際に完了するまでに時間がかかります。 タグ付きキューをサポートするホスト バス アダプター (HBA) は、要求を内部的にキューに入れ、Storport が各要求に割り当てるタグによって示される順序で処理できます。 SCSI_REQUEST_BLOCK (SRB) 構造体には、Storport ドライバーとミニポート ドライバーがホスト アダプターの内部キューで SRB を並べ替える方法を指定するために使用する 2 つのメンバーが含まれています。

  • QueueTag: Storport は、各 SRB の QueuedTag メンバーにカウント ("タグ" 値) を割り当てます。 このタグは、アダプターがパケットを処理する順序を示します。 タグ値を使用すると、Storport は、どの SRB がまだ未処理で、どの正常に完了し、どの SRB がタイムアウトしたかを追跡することもできます。

  • QueueAction: SrbFlags に SRB_FLAGS_QUEUE_ACTION_ENABLE フラグが設定されたときに使用される、タグ付けされたキューに登録されたメッセージを示します。 ミニポートの QueueAction の使用はミニポート固有です。 SCSI ベースのミニポートは、HBA がサポートしている場合、SCSI 仕様に従うことができます。 QueueAction 値は次のいずれかになる場合があります。

意味
SRB_SIMPLE_TAG_REQUEST 以前のすべての SRB_HEAD_OF_QUEUE_TAG_REQUEST と SRB_ORDERED_QUEUE_TAG_REQUEST 要求が終了したら、要求をキューに入れ、任意の順序で実行します。
SRB_ORDERED_QUEUE_TAG_REQUEST 以前のすべての SRB_HEAD_OF_QUEUE_TAG_REQUEST と古い要求がすべて完了した後にのみ、要求を実行します。
SRB_HEAD_OF_QUEUE_TAG_REQUEST キューの先頭に要求を配置し、他のすべての SRB_HEAD_OF_QUEUE_TAG_REQUEST タグ付けされた要求を含め、キュー内の他のすべての要求の前に実行します。

詳細については、SCSI の仕様に関する記事を参照してください。