PSYMBOL_FUNCENTRY_CALLBACK 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_CALLBACK PsymbolFuncentryCallback;
PVOID PsymbolFuncentryCallback(
[in] HANDLE hProcess,
[in] DWORD AddrBase,
[in, optional] PVOID 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 |