Freigeben über


Storport-Schnittstelle mit Storport Miniport-Treibern

Die Kommunikation zwischen dem Storport-Treiber und den Storport-Miniporttreibern erfolgt über SCSI-Anforderungsblöcke (SRBs) und Rückrufroutinen für Miniporttreiber. Eine ausführliche Erläuterung der Storport Miniport-Treiberrückrufroutinen finden Sie unter Storport Miniport Driver Routines.

Eine Übersicht und Definition der einzelnen SRB-Funktionen, SRB-Flags und SRB-status Werte finden Sie unter SCSI_REQUEST_BLOCK.

Weitere Informationen dazu, wie Miniporttreiber auf jede einzelne SRB-Funktion reagieren müssen, finden Sie unter HwStorStartIo.

Storport leitet SRBs zur asynchronen Verarbeitung an Storport-Miniporttreiber weiter. In der Regel benötigt der Miniporttreiber einige Zeit, um die Anforderung tatsächlich abzuschließen. Host bus adapters (HBAs), die markierte Warteschlangen unterstützen, können Anforderungen intern in die Warteschlange stellen und in der Reihenfolge verarbeiten, die durch die Tags angegeben ist, die Storport jeder Anforderung zuweist. Die SCSI_REQUEST_BLOCK-Struktur (SRB) enthält zwei Member, mit denen die Storport- und Miniporttreiber angeben, wie SRBs in der internen Warteschlange des Hostadapters sortiert werden sollen:

  • QueueTag: Storport weist dem QueuedTag-Member jedes SRB einen Count- oder "Tag"-Wert zu. Dieses Tag gibt die Reihenfolge an, in der der Adapter die Pakete verarbeiten soll. Mit den Tagwerten kann Storport auch nachverfolgen, welche SRBs noch ausstehen, welche erfolgreich abgeschlossen wurden und für die ein Timeout aufgetreten ist.

  • QueueAction: Gibt die Tagged-Queueing-Nachricht an, die verwendet werden soll, wenn das flag SRB_FLAGS_QUEUE_ACTION_ENABLE in SRB festgelegt ist. SrbFlags. Die Verwendung von QueueAction durch den Miniport ist miniportspezifisch. SCSI-basierte Miniports können der SCSI-Spezifikation entsprechen, wenn dies vom HBA unterstützt wird. QueueAction kann einer der folgenden Werte sein:

Wert Bedeutung
SRB_SIMPLE_TAG_REQUEST Stellen Sie die Anforderung in eine Warteschlange, und führen Sie sie in beliebiger Reihenfolge aus, sobald alle älteren SRB_HEAD_OF_QUEUE_TAG_REQUEST und SRB_ORDERED_QUEUE_TAG_REQUEST Anforderungen beendet wurden.
SRB_ORDERED_QUEUE_TAG_REQUEST Führen Sie die Anforderung erst aus, nachdem alle älteren SRB_HEAD_OF_QUEUE_TAG_REQUEST und alle älteren Anforderungen abgeschlossen wurden.
SRB_HEAD_OF_QUEUE_TAG_REQUEST Platzieren Sie die Anforderung am Anfang der Warteschlange, und führen Sie sie vor allen anderen Anforderungen in der Warteschlange aus, einschließlich aller anderen SRB_HEAD_OF_QUEUE_TAG_REQUEST markierten Anforderungen.

Weitere Informationen finden Sie in der SCSI-Spezifikation.