Freigeben über


struct RUNTIME_FUNCTION

Aktualisiert: November 2007

Für tabellenbasierte Ausnahmebehandlung ist ein Tabelleneintrag für alle Funktionen erforderlich, durch die Stapelspeicher reserviert oder eine andere Funktion aufgerufen wird (z. B. Funktionen, die keine Endfunktionen sind). Funktionstabelleneinträge haben das folgende Format:

ULONG

Adresse des Funktionsanfangs

ULONG

Adresse des Funktionsendes

ULONG

Adresse der Entladeinformationen

Die RUNTIME_FUNCTION-Struktur muss im Arbeitsspeicher auf DWORD-Grenzen ausgerichtet sein. Alle Adressen sind bildbezogen, d. h. es handelt sich um 32-Bit-Offsets aus der Startadresse des Bildes, das den Funktionstabelleneintrag enthält. Diese Einträge werden sortiert und in den .pdata-Abschnitt eines PE32+-Bildes eingefügt. Damit dynamisch erzeugte Funktionen [JIT-Compiler] unterstützt werden, muss von der Laufzeit RtlInstallFunctionCallback oder RtlAddFunctionTable verwendet werden, damit diese Informationen dem Betriebssystem bereitgestellt werden. Andernfalls kann dies zu einer unzuverlässigen Ausnahmebehandlung und unzuverlässigem Debuggen von Prozessen führen.

Siehe auch

Referenz

Entladedaten für die Ausnahmebehandlung, Debuggerunterstützung