Freigeben über


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.