Freigeben über


PSYMBOL_FUNCENTRY_CALLBACK64 Rückruffunktion (dbghelp.h)

Eine anwendungsdefinierte Rückruffunktion, die mit der SymRegisterFunctionEntryCallback64-Funktion verwendet wird. Es wird vom Stapelgangsverfahren 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_CALLBACK64 PsymbolFuncentryCallback64;

PVOID PsymbolFuncentryCallback64(
  [in]           HANDLE hProcess,
  [in]           ULONG64 AddrBase,
  [in, optional] ULONG64 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 in SymRegisterFunctionEntryCallback64 angegebene benutzerdefinierte Wert oder NULL. 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, in der sie im Debugprozess 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 über die registrierte Rückruffunktion als Ergebnis eines Aufrufs der StackWalk64-Funktion 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