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