HW_INTERRUPT Rückruffunktion (storport.h)

Der Storport-Treiber ruft die HwStorInterrupt-Routine auf, nachdem der HBA eine Interruptanforderung generiert hat.

Syntax

HW_INTERRUPT HwInterrupt;

BOOLEAN HwInterrupt(
  PVOID DeviceExtension
)
{...}

Parameter

DeviceExtension

Ein Zeiger auf den Miniporttreiber pro HBA-Speicherbereich.

Rückgabewert

Wenn der Miniporttreiber feststellt, dass sein HBA den Interrupt nicht generiert hat, sollte HwStorInterrupt so schnell wie möglich FALSE zurückgeben. Die HwStorInterrupt-Routine sollte innerhalb von 50 Mikrosekunden zurückgegeben werden.

Hinweise

Der Name HwStorInterrupt ist nur ein Platzhalter. Der eigentliche Prototyp dieser Routine wird in Storport.h wie folgt definiert:

typedef
BOOLEAN
HW_INTERRUPT (
  IN PVOID  DeviceExtension
  );

Die HwStorInterrupt-Routine sollte innerhalb von 50 Mikrosekunden zurückkehren, idealerweise so kurz wie möglich. Daher muss nicht alle Aktivitäten bei hohem IRQL-Wert auf die [HwStorDpcRoutine](nc-storport-hw_dpc_routine.md) zurückgestellt werden, die im Miniporttreiber definiert und mit StorPortIssueDpc ausgegeben wird. Die Latenz des DPC ist sehr niedrig und wird sofort nach der Rückgabe von hoher IRQL aufgerufen.

Der Porttreiber ruft die HwStorInterrupt-Routine bei DIRQL auf.

Beispiele

Um eine HwStorInterrupt-Rückruffunktion zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückruffunktion angibt. Windows bietet eine Reihe von Rückruffunktionstypen für Treiber. Das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.

Um beispielsweise eine HwStorInterrupt-Rückrufroutine namens MyHwInterrupt zu definieren, verwenden Sie den typ HW_INTERRUPT , wie in diesem Codebeispiel gezeigt:

HW_INTERRUPT MyHwInterrupt;

Implementieren Sie dann Ihre Rückrufroutine wie folgt:

_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

Der HW_INTERRUPT Funktionstyp ist in der Headerdatei Storport.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den HW_INTERRUPT Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für Storport-Treiber. Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header storport.h (einschließlich Storport.h)
IRQL DIRQL

Weitere Informationen

[HwStorDpcRoutine] (nc-storport-hw_dpc_routine.md

StorPortIssueDpc