Schnittstelle des SCSI-Ports mit Miniporttreibern für SCSI-Ports
Die Kommunikation zwischen dem SCSI-Porttreiber und den SCSI-Port-Miniporttreibern erfolgt über SCSI-Anforderungsblöcke (SRBs) und Rückrufroutinen für Miniporttreiber. Eine ausführliche Erläuterung der Rückrufroutinen für SCSI-Port-Miniporttreiber finden Sie unter SCSI-Miniporttreiber.
Eine Übersicht und Definition der einzelnen SRB-Funktionen, SRB-Flags und SRB-status Werte finden Sie unter SCSI_REQUEST_BLOCK.
Diskussionen darüber, wie Miniporttreiber auf jede einzelne SRB-Funktion reagieren müssen, finden Sie unter HwScsiStartIo-Treiberroutine.
Der SCSI-Port leitet SRBs synchron an SCSI-Port-Miniporttreiber weiter, es sei denn, der Adapter unterstützt markierte Warteschlangen. Hostbusadapter, 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 vom SCSI-Port jeder Anforderung zugewiesen werden. Die SCSI_REQUEST_BLOCK-Struktur (SRB) enthält zwei Member, die der SCSI-Porttreiber verwendet, um anzugeben, wie SRBs in der internen Warteschlange des Hostadapters sortiert werden sollen: QueuedTag und QueueAction. Der SCSI-Port weist dem QueuedTag-Member jedes SRB eine Anzahl oder einen Tagwert zu, der die Reihenfolge angibt, in der der Adapter die Pakete verarbeiten soll. Mit den Tagwerten kann der SCSI-Port auch nachverfolgen, welche SRBs erfolgreich abgeschlossen wurden und welche SRBs ein Timeout aufgetreten sind.
Dem QueueAction-Member wird einer der folgenden Werte zugewiesen:
SRB_SIMPLE_TAG_REQUEST
SRB_HEAD_OF_QUEUE_TAG_REQUEST
SRB_ORDERED_QUEUE_TAG_REQUEST
Eine Erläuterung dieser Werte finden Sie in der SCSI-2-Spezifikation.