Warteschlangenspeicheranforderungen
Obwohl es für einen Speicherklassentreiber möglich ist, interne Warteschlangen für IRPs einzurichten, ist dies selten erforderlich und beeinträchtigt wahrscheinlich auch die Leistung des Treibers, da der Speicherporttreiber bereits treiberseitig erstellte, LU-spezifische Gerätewarteschlangen für IRPs verwaltet. Unabhängig davon, ob ein bestimmter HBA mehrere ausstehende Befehle unterstützt (z. B. SCSI-markierte Warteschlangen), können Speicherklassentreiber jede Anforderung an ihre Geräte senden, da jede IRP eingeht und sich auf den vom System bereitgestellten Porttreiber oder den HBA verlassen, um Anforderungen in der Warteschlange schnell zu verarbeiten.
Wenn bestimmte SCSI-Fehler auftreten, friert der Systemporttreiber die entsprechende LU-spezifische Warteschlange ein und benachrichtigt den Klassentreiber. Weitere Informationen zur Behandlung von Fehlern und zum Freigeben von eingefrorenen Anforderungswarteschlangen finden Sie unter:
Releasequeue-Routine des Speicherklassentreibers
InterpretRequestSense-Routine des Speicherklassentreibers
Wiederholungsroutine des Speicherklassentreibers
Wenn ein HBA Befehlswarteschlangen unterstützt, wie in den zurückgegebenen STORAGE_ADAPTER_DESCRIPTOR Daten angegeben, legt der Klassentreiber SRB_FLAGS_QUEUE_ENABLE fest und verwendet den QueueAction-Member der SRBs, die er erstellt, um zu steuern, wie seine Anforderungen in die Warteschlange gestellt werden.