PSYMBOL_FUNCENTRY_CALLBACK función de devolución de llamada (dbghelp.h)
Función de devolución de llamada definida por la aplicación que se usa con la función SymRegisterFunctionEntryCallback64 . Lo llama el procedimiento de caminata de pila.
El tipo PSYMBOL_FUNCENTRY_CALLBACK64 define un puntero a esta función de devolución de llamada. SymRegisterFunctionEntryCallbackProc64 es un marcador de posición para el nombre de función definido por la aplicación.
Sintaxis
PSYMBOL_FUNCENTRY_CALLBACK PsymbolFuncentryCallback;
PVOID PsymbolFuncentryCallback(
[in] HANDLE hProcess,
[in] DWORD AddrBase,
[in, optional] PVOID UserContext
)
{...}
Parámetros
[in] hProcess
Identificador del proceso que se pasó originalmente a la función StackWalk64 .
[in] AddrBase
Dirección de una instrucción para la que la función de devolución de llamada debe devolver una entrada de tabla de función.
[in, optional] UserContext
Valor definido por el usuario especificado en SymRegisterFunctionEntryCallback64 o NULL. Normalmente, una aplicación usa este parámetro para pasar un puntero a una estructura de datos que permite que la función de devolución de llamada establezca algún contexto.
Valor devuelto
Devuelve el valor NULL si no hay ninguna entrada de tabla de funciones disponible.
Si se ejecuta correctamente, devuelve un puntero a una estructura de IMAGE_RUNTIME_FUNCTION_ENTRY . Consulte el archivo de encabezado WinNT.h para obtener la definición de esta función.
Comentarios
La estructura debe devolverse exactamente en el formato que existe en el proceso que se está depurando. Algunos miembros pueden ser punteros a otras ubicaciones del espacio de direcciones del proceso. Se puede llamar a la función de devolución de llamada ReadProcessMemoryProc64 para recuperar la información en estas ubicaciones.
La aplicación que realiza la llamada se llama a través de la función de devolución de llamada registrada como resultado de una llamada a la función StackWalk64 . La aplicación que llama debe estar preparada para los posibles efectos secundarios que esto puede causar. Si la aplicación solo tiene una función de devolución de llamada que usan varios subprocesos, puede ser necesario sincronizar algunos tipos de acceso a datos mientras se encuentra en el contexto de la función de devolución de llamada.
Esta función es similar a la función de devolución de llamada FunctionTableAccessProc64 . La diferencia es que FunctionTableAccessProc64 devuelve una estructura IMAGE_FUNCTION_ENTRY , mientras que esta función devuelve una estructura IMAGE_RUNTIME_FUNCTION_ENTRY .
Esta función de devolución de llamada reemplaza a la función de devolución de llamada PSYMBOL_FUNCENTRY_CALLBACK . PSYMBOL_FUNCENTRY_CALLBACK se define de la siguiente manera en 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
);
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | dbghelp.h |
Redistribuible | DbgHelp.dll 5.1 o posterior |