Freigeben über


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 MyExpandedStackCallzu 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)

Weitere Informationen

KeExpandKernelStackAndCallout