Partager via


PSYMBOL_FUNCENTRY_CALLBACK64 fonction de rappel (dbghelp.h)

Fonction de rappel définie par l’application utilisée avec la fonction SymRegisterFunctionEntryCallback64 . Il est appelé par la procédure de marche de pile.

Le type PSYMBOL_FUNCENTRY_CALLBACK64 définit un pointeur vers cette fonction de rappel. SymRegisterFunctionEntryCallbackProc64 est un espace réservé pour le nom de fonction défini par l’application.

Syntaxe

PSYMBOL_FUNCENTRY_CALLBACK64 PsymbolFuncentryCallback64;

PVOID PsymbolFuncentryCallback64(
  [in]           HANDLE hProcess,
  [in]           ULONG64 AddrBase,
  [in, optional] ULONG64 UserContext
)
{...}

Paramètres

[in] hProcess

Handle du processus qui a été passé à l’origine à la fonction StackWalk64 .

[in] AddrBase

Adresse d’une instruction pour laquelle la fonction de rappel doit retourner une entrée de table de fonction.

[in, optional] UserContext

Valeur définie par l’utilisateur spécifiée dans SymRegisterFunctionEntryCallback64 ou NULL. En règle générale, ce paramètre est utilisé par une application pour passer un pointeur vers une structure de données qui permet à la fonction de rappel d’établir un contexte.

Valeur retournée

Retourne la valeur NULL si aucune entrée de table de fonction n’est disponible.

En cas de réussite, retournez un pointeur vers une structure IMAGE_RUNTIME_FUNCTION_ENTRY . Reportez-vous au fichier d’en-tête WinNT.h pour la définition de cette fonction.

Remarques

La structure doit être retournée exactement sous la forme qu’elle existe dans le processus débogué. Certains membres peuvent être des pointeurs vers d’autres emplacements dans l’espace d’adressage du processus. La fonction de rappel ReadProcessMemoryProc64 peut être appelée pour récupérer les informations à ces emplacements.

L’application appelante est appelée via la fonction de rappel inscrite à la suite d’un appel à la fonction StackWalk64 . L’application appelante doit être préparée pour les effets secondaires possibles que cela peut provoquer. Si l’application n’a qu’une seule fonction de rappel utilisée par plusieurs threads, il peut être nécessaire de synchroniser certains types d’accès aux données dans le contexte de la fonction de rappel.

Cette fonction est similaire à la fonction de rappel FunctionTableAccessProc64 . La différence est que FunctionTableAccessProc64 retourne une structure IMAGE_FUNCTION_ENTRY , tandis que cette fonction retourne une structure IMAGE_RUNTIME_FUNCTION_ENTRY .

Cette fonction de rappel remplace la fonction de rappel PSYMBOL_FUNCENTRY_CALLBACK . PSYMBOL_FUNCENTRY_CALLBACK est défini comme suit dans Dbghelp.h.

#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
    );

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête dbghelp.h
Composant redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

Fonctions DbgHelp

SymRegisterFunctionEntryCallback64