Storport-Treiber-Miniportroutinen
Ein Miniporttreiber, der mit dem Storport-Treiber arbeitet, muss Implementierungen der in diesem Abschnitt aufgeführten Routinebeschreibungen enthalten und diese während der Initialisierungsphase des Miniporttreibers über die Struktur HW_INITIALIZATION_DATA verfügbar machen.
Die Storport-Miniport-Treiberroutinen entsprechen in den meisten Punkten ihren SCSI-Port-Gegenstücken. Es gibt jedoch wichtige Unterschiede zwischen dem Design des SCSI-Porttreibers und dem Design des Storport-Treibers, die von den Miniportroutinen berücksichtigt werden müssen.
Beispiel:
- Ein Storport-Miniport-Treiber muss nach Abschluss der Routine HwStorStartIo stets für den Empfang einer weiteren E/A-Anforderung bereit sein.
- Für einen SCSI-Miniporttreiber gilt diese Anforderung nicht. Er empfängt erst dann eine neue E/A-Anforderung, wenn er dem Porttreiber durch den Aufruf von StorPortNotification ausdrücklich signalisiert, dass er eine weitere E/A-Anforderung verarbeiten kann.
Wenn der Storport-Miniporttreiber eine übermittelte Anforderung nicht sofort verarbeiten kann, verfügt er über eine Reihe von Warteschlangenverwaltungsfunktionen, um die Überlastung zu behandeln. Diese Warteschlangenverwaltungsfunktionen stehen dem SCSI-Miniporttreiber nicht zur Verfügung. Wie der SCSI-Miniporttreiber, schließt auch der Storport-Miniporttreiber die Anforderung mit SRB_STATUS_BUSY ab. Im Gegensatz zur SCSI-Portversion kann er die Gerätewarteschlange jedoch mittels der Routine StorPortDeviceBusy auch als ausgelastet kennzeichnen. Vergleichbare Funktionen ermöglichen dem Storport-Miniporttreiber das Anhalten und Fortsetzen der Verarbeitung auf Adapterbasis.
Weitere Informationen zu den Supportroutinen, die vom Storport-Treiber bereitgestellt werden, finden Sie unter Storport-Treiberunterstützungsroutinen.
Weitere Informationen zum Storport-Treiber finden Sie unter Speicherporttreiber.
Liste der Storport-Miniport-Treiberroutinen
Routine | Beschreibung |
---|---|
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE | Behandelt einen Message Signaled Interrupt (MSI). |
HW_ADAPTER_CONTROL | Führt synchrone Vorgänge aus, um den Zustand oder das Verhalten eines Adapters zu steuern, z. B. das Anhalten oder Neustarten des HBA für die Energieverwaltung. |
HW_BUILDIO | Verarbeitet den SRB mit nicht synchronisiertem Zugriff auf freigegebene Systemdatenstrukturen vor der Übergabe an HwStorStartIo. |
HW_DPC_ROUTINE | Routine, deren Ausführung bei DISPATCH IRQL durch den Deferred Procedure Call (DPC)-Mechanismus verzögert wird. |
HW_FIND_ADAPTER | Verwendet die angegebene Konfiguration, um zu ermitteln, ob ein bestimmter HBA unterstützt wird, und Konfigurationsinformationen zu diesem Adapter zurückzugeben, wenn dies der Fall ist. |
HW_INITIALIZE | Initialisiert den Miniporttreiber nach einem Systemneustart oder einem Stromausfall. |
HW_INTERRUPT | Der Storport-Treiber ruft die Routine HwStorInterrupt auf, nachdem der HBA eine Unterbrechungsanforderung generiert hat. |
HW_PASSIVE_INITIALIZE_ROUTINE | Wird im Anschluss an die Routine HwStorInitialize aufgerufen, wenn sich der aktuelle IRQL bei PASSIVE_LEVEL befindet. |
HW_RESET_BUS | Wird vom Porttreiber aufgerufen, um Fehlerbedingungen zu löschen. |
HW_STARTIO | Der Storport-Treiber ruft die Routine HwStorStartIo einmalig für jede eingehende E/A-Anforderung auf. |
HW_TIMER | Wird nach dem Intervall aufgerufen, das angegeben wird, wenn der Miniporttreiber StorPortNotification mit dem RequestTimerCall NotificationType-Wert aufruft. |
HW_TRACING_ENABLED | Ermöglicht dem Storport das Senden einer Benachrichtigung an einen Miniport, dass die Ereignisablaufverfolgung aktiviert ist. |
HW_UNIT_CONTROL | Wird aufgerufen, um synchrone Vorgänge zur Steuerung des Zustands des Speichereinheitengeräts auszuführen. Der Miniporttreiber wird benachrichtigt, um eine Einheit zu starten oder einen Energiezustandsübergang für ein Einheitengerät zu verarbeiten. |
HW_WORKITEM | Eine vom Miniport-bereitgestellte Rückruffunktion für die Verarbeitung einer Storport-Arbeitselementanforderung. |