HW_INTERRUPT Rückruffunktion (storport.h)
Der Storport-Treiber ruft die HwStorInterrupt Routine auf, nachdem die 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 der 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.
Bemerkungen
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ückgegeben werden, idealerweise so kurz wie möglich. Daher muss nicht jede Aktivität mit hohem IRQL-Wert auf die [HwStorDpcRoutine](nc-storport-hw_dpc_routine.md, die im Miniporttreiber definiert und mit StorPortIssueDpcausgegeben wird, zurückgestellt werden. Die Latenz des DPC ist sehr niedrig und wird unmittelbar 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 zuerst eine Funktionsdeklaration bereitstellen, die den Typ der rückruffunktion identifiziert, die Sie definieren. Windows stellt eine Reihe von Rückruffunktionstypen für Treiber bereit. Durch das Deklarieren einer Funktion mithilfe der Rückruffunktionstypen können Codeanalyse für Treiber, statische Treiberüberprüfung (SDV) und andere Überprüfungstools Fehler finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.
Um beispielsweise eine HwStorInterrupt Rückrufroutine zu definieren, die MyHwInterruptheißt, verwenden Sie den HW_INTERRUPT Typ 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 wird in der Headerdatei Storport.h definiert. Um Fehler genauer zu identifizieren, wenn Sie die Codeanalysetools ausführen, müssen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzufügen. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen, die auf den Funktionstyp HW_INTERRUPT in der Headerdatei angewendet werden, verwendet 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_annotationsfinden Sie unter Annotating Function Behavior.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | storport.h (include Storport.h) |
IRQL- | DIRQL |
Siehe auch
[HwStorDpcRoutine](nc-storport-hw_dpc_routine.md