Compartilhar via


PSYMBOL_FUNCENTRY_CALLBACK 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_CALLBACK PsymbolFuncentryCallback;

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

Confira também

Funções DbgHelp

SymRegisterFunctionEntryCallback64