Freigeben über


PSYMBOL_FUNCENTRY_CALLBACK Rückruffunktion (dbghelp.h)

Eine anwendungsdefinierte Rückruffunktion, die mit der SymRegisterFunctionEntryCallback64-Funktion verwendet wird. Es wird vom Stapelgehenverfahren aufgerufen.

Der PSYMBOL_FUNCENTRY_CALLBACK64-Typ definiert einen Zeiger auf diese Rückruffunktion. SymRegisterFunctionEntryCallbackProc64 ist ein Platzhalter für den anwendungsdefinierten Funktionsnamen.

Syntax

PSYMBOL_FUNCENTRY_CALLBACK PsymbolFuncentryCallback;

PVOID PsymbolFuncentryCallback(
  [in]           HANDLE hProcess,
  [in]           DWORD AddrBase,
  [in, optional] PVOID UserContext
)
{...}

Parameter

[in] hProcess

Ein Handle für den Prozess, der ursprünglich an die StackWalk64-Funktion übergeben wurde.

[in] AddrBase

Die Adresse einer Anweisung, für die die Rückruffunktion einen Funktionstabelleneintrag zurückgeben soll.

[in, optional] UserContext

Der benutzerdefinierte Wert, der in SymRegisterFunctionEntryCallback64 oder NULL angegeben ist. In der Regel wird dieser Parameter von einer Anwendung verwendet, um einen Zeiger an eine Datenstruktur zu übergeben, mit der die Rückruffunktion einen Kontext einrichten kann.

Rückgabewert

Gibt den Wert NULL zurück, wenn kein Funktionstabelleneintrag verfügbar ist.

Geben Sie bei Erfolg einen Zeiger auf eine IMAGE_RUNTIME_FUNCTION_ENTRY-Struktur zurück. Die Definition dieser Funktion finden Sie in der Headerdatei WinNT.h.

Hinweise

Die Struktur muss genau in der Form zurückgegeben werden, die im zu debuggenden Prozess vorhanden ist. Einige Member können Zeiger auf andere Speicherorte im Prozessadressraum sein. Die Rückruffunktion ReadProcessMemoryProc64 kann aufgerufen werden, um die Informationen an diesen Speicherorten abzurufen.

Die aufrufende Anwendung wird als Ergebnis eines Aufrufs der StackWalk64-Funktion über die registrierte Rückruffunktion aufgerufen. Die aufrufende Anwendung muss auf die möglichen Nebenwirkungen vorbereitet sein, die dies verursachen kann. Wenn die Anwendung nur über eine Rückruffunktion verfügt, die von mehreren Threads verwendet wird, müssen möglicherweise einige Arten des Datenzugriffs im Kontext der Rückruffunktion synchronisiert werden.

Diese Funktion ähnelt der Rückruffunktion FunctionTableAccessProc64 . Der Unterschied besteht darin, dass FunctionTableAccessProc64 eine IMAGE_FUNCTION_ENTRY-Struktur zurückgibt, während diese Funktion eine IMAGE_RUNTIME_FUNCTION_ENTRY-Struktur zurückgibt.

Diese Rückruffunktion ersetzt die PSYMBOL_FUNCENTRY_CALLBACK Rückruffunktion. PSYMBOL_FUNCENTRY_CALLBACK wird in Dbghelp.h wie folgt definiert.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYMBOL_FUNCENTRY_CALLBACK PSYMBOL_FUNCENTRY_CALLBACK64
#endif

typedef
PVOID
(CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
    __in HANDLE hProcess,
    __in DWORD AddrBase,
    __in_opt PVOID UserContext
    );

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile dbghelp.h
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

DbgHelp-Funktionen

SymRegisterFunctionEntryCallback64