PSYMBOL_FUNCENTRY_CALLBACK64 função de retorno de chamada (dbghelp.h)
Uma função de retorno de chamada definida pelo aplicativo usada com a função SymRegisterFunctionEntryCallback64 . Ele é chamado pelo procedimento de caminhada de pilha.
O tipo PSYMBOL_FUNCENTRY_CALLBACK64 define um ponteiro para essa função de retorno de chamada. SymRegisterFunctionEntryCallbackProc64 é um espaço reservado para o nome da função definida pelo aplicativo.
Sintaxe
PSYMBOL_FUNCENTRY_CALLBACK64 PsymbolFuncentryCallback64;
PVOID PsymbolFuncentryCallback64(
[in] HANDLE hProcess,
[in] ULONG64 AddrBase,
[in, optional] ULONG64 UserContext
)
{...}
Parâmetros
[in] hProcess
Um identificador para o processo que foi originalmente passado para a função StackWalk64 .
[in] AddrBase
O endereço de uma instrução para a qual a função de retorno de chamada deve retornar uma entrada de tabela de funções.
[in, optional] UserContext
O valor definido pelo usuário especificado em SymRegisterFunctionEntryCallback64 ou NULL. Normalmente, esse parâmetro é usado por um aplicativo para passar um ponteiro para uma estrutura de dados que permite que a função de retorno de chamada estabeleça algum contexto.
Retornar valor
Retornará o valor NULL se nenhuma entrada de tabela de funções estiver disponível.
Em caso de êxito, retorne um ponteiro para uma estrutura IMAGE_RUNTIME_FUNCTION_ENTRY . Consulte o arquivo de cabeçalho WinNT.h para obter a definição dessa função.
Comentários
A estrutura deve ser retornada exatamente na forma em que existe no processo que está sendo depurado. Alguns membros podem ser ponteiros para outros locais no espaço de endereço do processo. A função de retorno de chamada ReadProcessMemoryProc64 pode ser chamada para recuperar as informações nesses locais.
O aplicativo de chamada é chamado por meio da função de retorno de chamada registrada como resultado de uma chamada para a função StackWalk64 . O aplicativo de chamada deve estar preparado para os possíveis efeitos colaterais que isso pode causar. Se o aplicativo tiver apenas uma função de retorno de chamada que está sendo usada por vários threads, talvez seja necessário sincronizar alguns tipos de acesso a dados enquanto estiver no contexto da função de retorno de chamada.
Essa função é semelhante à função de retorno de chamada FunctionTableAccessProc64 . A diferença é que FunctionTableAccessProc64 retorna uma estrutura IMAGE_FUNCTION_ENTRY , enquanto essa função retorna uma estrutura IMAGE_RUNTIME_FUNCTION_ENTRY .
Essa função de retorno de chamada substitui a função de retorno de chamada PSYMBOL_FUNCENTRY_CALLBACK. PSYMBOL_FUNCENTRY_CALLBACK é definido da seguinte maneira em 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 | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | dbghelp.h |
Redistribuível | DbgHelp.dll 5.1 ou posterior |