EXPAND_STACK_CALLOUT Rückruffunktion (ntddk.h)
Die ExpandedStackCall-Routine wird mit einer garantierten Stapelgröße ausgeführt.
Syntax
EXPAND_STACK_CALLOUT ExpandStackCallout;
VOID() ExpandStackCallout(
[in, optional] PVOID Parameter
)
{...}
Parameter
[in, optional] Parameter
Der Wert, der an die KeExpandKernelStackAndCallout-Routine übergeben wurde, die ExpandedStackCall ausgeführt hat.
Rückgabewert
Keine
Bemerkungen
Die ExpandedStackCall-Routine muss alle Ausnahmen behandeln. Jede nicht behandelte Ausnahme führt dazu, dass das System fehlercheckt mit Der Fehlerüberprüfung 0x1E: KMODE_EXCEPTION_NOT_HANDLED.
Wenn ExpandedStackCall den aktuellen IRQL ändert, muss der ursprüngliche Wert vor der Rückgabe wiederhergestellt werden.
Beispiele
Um eine ExpandedStackCall-Rückrufroutine zu definieren, müssen Sie zunächst eine Funktionsdeklaration bereitstellen, die den Typ der von Ihnen definierten Rückrufroutine identifiziert. 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 ExpandedStackCall-Rückrufroutine mit dem Namen MyExpandedStackCall
zu definieren, verwenden Sie den typ EXPAND_STACK_CALLOUT, wie in diesem Codebeispiel gezeigt:
EXPAND_STACK_CALLOUT MyExpandedStackCall;
Implementieren Sie dann Ihre Rückrufroutine wie folgt:
_Use_decl_annotations_
VOID
MyExpandedStackCall(
PVOID Parameter
)
{
// Function body
}
Der EXPAND_STACK_CALLOUT Funktionstyp ist in der Wdm.h-Headerdatei definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie die _Use_decl_annotations_
Anmerkung ihrer Funktionsdefinition hinzu. Die _Use_decl_annotations_
Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den EXPAND_STACK_CALLOUT 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 WDM-Treiber. Informationen zu _Use_decl_annotations_
finden Sie unter Annotating Function Behavior.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | ntddk.h (include Ntddk.h, Ntifs.h) |