RtlVirtualUnwind-Funktion (winnt.h)
Ruft den Aufrufkontext der Funktion ab, die dem angegebenen Funktionskontext vorangestellt ist.
Hinweis
Diese Funktion ist nicht auf allen Prozessorplattformen implementiert, und die Implementierung unterscheidet sich auf jeder Plattform, die sie unterstützt. Der folgende Prototyp listet alle potenziellen Parameter und deren Anwendung auf. Weitere Informationen zu prozessorspezifischen Funktionsprototypen.
Syntax
NTSYSAPI PEXCEPTION_ROUTINE RtlVirtualUnwind(
[in] DWORD HandlerType,
[in] DWORD64 ImageBase,
[in] DWORD64 ControlPc,
[in] PRUNTIME_FUNCTION FunctionEntry,
[in, out] PCONTEXT ContextRecord,
[out] PVOID *HandlerData,
[out] PDWORD64 EstablisherFrame,
[in, out, optional] PKNONVOLATILE_CONTEXT_POINTERS ContextPointers
);
Parameter
[in] HandlerType
Der Handlertyp. Dieser Parameter kann einen der folgenden Werte annehmen.
Dieser Parameter ist nur in x64 vorhanden.
[in] ImageBase
Die Basisadresse des Moduls, zu dem die Funktion gehört.
[in] ControlPc
Die virtuelle Adresse, an der das Steuerelement die angegebene Funktion verlassen hat.
[in] FunctionEntry
Die Adresse des Funktionstabelleneintrags für die angegebene Funktion. Rufen Sie zum Abrufen des Funktionstabelleneintrags die RtlLookupFunctionEntry-Funktion auf.
[in, out] ContextRecord
Ein Zeiger auf eine CONTEXT-Struktur , die den Kontext des vorherigen Frames darstellt.
[out] HandlerData
Der Speicherort des PCs. Wenn dieser Parameter 0 ist, befindet sich der PC im Prolog, Epilog oder in einem NULL-Framebereich der Funktion. Wenn dieser Parameter 1 ist, befindet sich der PC im Textkörper der Funktion.
Dieser Parameter ist in x64 nicht vorhanden.
[out] EstablisherFrame
Ein Zeiger auf eine FRAME_POINTERS-Struktur , die den Wert des Einrichtungsrahmenzeigers empfängt. Der echte Framezeiger wird nur definiert, wenn InFunction ist 1
.
Dieser Parameter ist vom Typ PULONG64 auf x64.
[in, out, optional] ContextPointers
Ein optionaler Zeiger auf eine Kontextzeigerstruktur.
Rückgabewert
Diese Funktion gibt einen Zeiger auf eine EXCEPTION_ROUTINE Rückruffunktion zurück.
Hinweise
Die vollständige Liste der Epilogmarker für x64 lautet wie folgt:
- Ret
- ret n
- rep ret
- jmp imm8 | imm32 , wobei sich das Ziel außerhalb der zu lösenden Funktion befindet
- jmp qword ptr imm32
- rex.w jmp reg
Anforderungen
Zielplattform | Windows |
Kopfzeile | winnt.h (windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |