PSYMBOL_REGISTERED_CALLBACK função de retorno de chamada (dbghelp.h)
Uma função de retorno de chamada definida pelo aplicativo usada com a função SymRegisterCallback64 . Ele é chamado pelo manipulador de símbolos.
O tipo PSYMBOL_REGISTERED_CALLBACK64 define um ponteiro para essa função de retorno de chamada. SymRegisterCallbackProc64 é um espaço reservado para o nome da função definida pelo aplicativo.
Sintaxe
PSYMBOL_REGISTERED_CALLBACK PsymbolRegisteredCallback;
BOOL PsymbolRegisteredCallback(
[in] HANDLE hProcess,
[in] ULONG ActionCode,
[in, optional] PVOID CallbackData,
[in, optional] PVOID UserContext
)
{...}
Parâmetros
[in] hProcess
Um identificador para o processo que foi originalmente passado para a função SymInitialize .
[in] ActionCode
O código de retorno de chamada. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Exibir informações detalhadas.
O parâmetro CallbackData é um ponteiro para uma cadeia de caracteres. |
|
O carregamento de símbolo adiado foi iniciado. Para cancelar a carga do símbolo, retorne TRUE.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
A carga de símbolo adiada foi concluída.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
Falha na carga de símbolo adiada.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . O manipulador de símbolos tentará carregar os símbolos novamente se a função de retorno de chamada definir o membro FileName dessa estrutura. |
|
A carga de símbolo adiada foi parcialmente concluída. O carregador de símbolo não consegue ler o cabeçalho da imagem do arquivo de imagem ou do módulo especificado.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . O manipulador de símbolos tentará carregar os símbolos novamente se a função de retorno de chamada definir o membro FileName dessa estrutura. DbgHelp 5.1: Não há suporte para esse valor. |
|
A carga de símbolo adiada foi iniciada.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
Símbolos duplicados foram encontrados. Esse motivo é usado apenas no formato COFF ou CodeView.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_DUPLICATE_SYMBOL64 . Para especificar qual símbolo usar, defina o membro SelectedSymbol dessa estrutura. |
|
Exibir informações detalhadas. Se você não manipular esse evento, as informações serão ressentidas por meio do evento CBA_DEBUG_INFO.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_CBA_EVENT . |
|
A imagem carregada foi lida.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_CBA_READ_MEMORY . A função de retorno de chamada deve ler o número de bytes especificado pelo membro bytes no buffer especificado pelo membro buf e atualizar o membro bytesread adequadamente. |
|
As opções de símbolo foram atualizadas. Para recuperar as opções atuais, chame a função SymGetOptions .
O parâmetro CallbackData deve ser ignorado. |
|
Exibir informações detalhadas para o servidor de origem. Se você não manipular esse evento, as informações serão ressentidas por meio do evento CBA_DEBUG_INFO.
O parâmetro CallbackData é um ponteiro para uma estrutura IMAGEHLP_CBA_EVENT . DbgHelp 6.6 e anteriores: Não há suporte para esse valor. |
|
Exibir informações detalhadas para o servidor de origem.
O parâmetro CallbackData é um ponteiro para uma cadeia de caracteres. DbgHelp 6.6 e anteriores: Não há suporte para esse valor. |
|
Os símbolos foram descarregados.
O parâmetro CallbackData deve ser ignorado. |
[in, optional] CallbackData
Dados da operação. O formato desses dados depende do valor do parâmetro ActionCode .
Se a função de retorno de chamada tiver sido registrada com SymRegisterCallbackW64, os dados serão uma cadeia de caracteres Unicode ou uma estrutura de dados. Caso contrário, os dados usarão o formato ANSI.
[in, optional] UserContext
Valor definido pelo usuário especificado em SymRegisterCallback64 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
Para indicar o êxito na manipulação do código, retorne TRUE.
Para indicar falha ao lidar com o código, retorne FALSE. Se o código não manipular um código específico, você também deverá retornar FALSE. (Retornar TRUE neste caso pode ter consequências não intencionais.)
Comentários
O aplicativo de chamada é chamado por meio da função de retorno de chamada registrada como resultado de outra chamada para uma das funções do manipulador de símbolos. 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 ter cuidado para sincronizar alguns tipos de acesso a dados enquanto estiver no contexto da função de retorno de chamada.
Essa função de retorno de chamada substitui a função de retorno de chamada PSYMBOL_REGISTERED_CALLBACK. PSYMBOL_REGISTERED_CALLBACK é definido da seguinte maneira em Dbghelp.h.
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYMBOL_REGISTERED_CALLBACK PSYMBOL_REGISTERED_CALLBACK64
#else
typedef BOOL
(CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
__in HANDLE hProcess,
__in ULONG ActionCode,
__in_opt PVOID CallbackData,
__in_opt PVOID UserContext
);
#endif
Para obter um exemplo mais abrangente, leia Obtendo notificações.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | dbghelp.h |
Redistribuível | DbgHelp.dll 5.1 ou posterior |