функция обратного вызова PSYMBOL_REGISTERED_CALLBACK (dbghelp.h)
Определяемая приложением функция обратного вызова, используемая с функцией SymRegisterCallback64 . Вызывается обработчиком символов.
Тип PSYMBOL_REGISTERED_CALLBACK64 определяет указатель на эту функцию обратного вызова. SymRegisterCallbackProc64 — это заполнитель для имени определяемой приложением функции.
Синтаксис
PSYMBOL_REGISTERED_CALLBACK PsymbolRegisteredCallback;
BOOL PsymbolRegisteredCallback(
[in] HANDLE hProcess,
[in] ULONG ActionCode,
[in, optional] PVOID CallbackData,
[in, optional] PVOID UserContext
)
{...}
Параметры
[in] hProcess
Дескриптор процесса, который изначально был передан в функцию SymInitialize .
[in] ActionCode
Код обратного вызова. Этот параметр может принимать одно из указанных ниже значений.
Значение | Значение |
---|---|
|
Отображение подробных сведений.
Параметр CallbackData является указателем на строку. |
|
Началась отложенная загрузка символов. Чтобы отменить загрузку символов, верните значение TRUE.
Параметр CallbackData является указателем на структуру IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
Отложенная загрузка символов завершена.
Параметр CallbackData является указателем на структуру IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
Сбой отложенной загрузки символов.
Параметр CallbackData является указателем на структуру IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . Обработчик символов попытается снова загрузить символы, если функция обратного вызова задает элемент FileName этой структуры. |
|
Отложенная загрузка символов частично завершена. Загрузчику символов не удается прочитать заголовок изображения из файла изображения или указанного модуля.
Параметр CallbackData является указателем на структуру IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . Обработчик символов попытается снова загрузить символы, если функция обратного вызова задает элемент FileName этой структуры. DbgHelp 5.1: Это значение не поддерживается. |
|
Запущена отложенная загрузка символов.
Параметр CallbackData является указателем на структуру IMAGEHLP_DEFERRED_SYMBOL_LOAD64 . |
|
Найдены повторяющиеся символы. Эта причина используется только в формате COFF или CodeView.
Параметр CallbackData является указателем на структуру IMAGEHLP_DUPLICATE_SYMBOL64 . Чтобы указать, какой символ следует использовать, задайте элемент SelectedSymbol этой структуры. |
|
Отображение подробных сведений. Если вы не обрабатываете это событие, сведения повторно передаются через событие CBA_DEBUG_INFO.
Параметр CallbackData является указателем на структуру IMAGEHLP_CBA_EVENT . |
|
Загруженное изображение было прочитано.
Параметр CallbackData является указателем на структуру IMAGEHLP_CBA_READ_MEMORY . Функция обратного вызова должна считывать количество байтов, указанное элементом байтов , в буфер, заданный элементом buf , и соответствующим образом обновлять элемент bytesread . |
|
Параметры символов обновлены. Чтобы получить текущие параметры, вызовите функцию SymGetOptions .
Параметр CallbackData следует игнорировать. |
|
Отображение подробных сведений для исходного сервера. Если вы не обрабатываете это событие, сведения повторно передаются через событие CBA_DEBUG_INFO.
Параметр CallbackData является указателем на структуру IMAGEHLP_CBA_EVENT . DbgHelp 6.6 и более ранних версий: Это значение не поддерживается. |
|
Отображение подробных сведений для исходного сервера.
Параметр CallbackData является указателем на строку. DbgHelp 6.6 и более ранних версий: Это значение не поддерживается. |
|
Символы выгружены.
Параметр CallbackData следует игнорировать. |
[in, optional] CallbackData
Данные для операции. Формат этих данных зависит от значения параметра ActionCode .
Если функция обратного вызова была зарегистрирована в SymRegisterCallbackW64, данные являются строкой Или структурой данных в Юникоде. В противном случае данные используют формат ANSI.
[in, optional] UserContext
Определяемое пользователем значение, указанное в SymRegisterCallback64, или NULL. Как правило, этот параметр используется приложением для передачи указателя на структуру данных, которая позволяет функции обратного вызова установить определенный контекст.
Возвращаемое значение
Чтобы указать на успешность обработки кода, верните значение TRUE.
Чтобы указать на ошибку при обработке кода, верните значение FALSE. Если код не обрабатывает определенный код, необходимо также вернуть значение FALSE. (Возвращение true в этом случае может привести к непредвиденным последствиям.)
Комментарии
Вызывающее приложение вызывается через зарегистрированную функцию обратного вызова в результате другого вызова одной из функций обработчика символов. Вызывающее приложение должно быть подготовлено к возможным побочным эффектам, которые это может вызвать. Если приложение имеет только одну функцию обратного вызова, которая используется несколькими потоками, может потребоваться осторожность для синхронизации некоторых типов доступа к данным в контексте функции обратного вызова.
Эта функция обратного вызова заменяет функцию обратного вызова PSYMBOL_REGISTERED_CALLBACK . PSYMBOL_REGISTERED_CALLBACK в 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
Более подробный пример см. в статье Получение уведомлений.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | dbghelp.h |
Распространяемые компоненты | DbgHelp.dll 5.1 или более поздней версии |