Поделиться через


Функция SymRegisterCallback (dbghelp.h)

Регистрирует функцию обратного вызова для использования обработчиком символов.

Синтаксис

BOOL IMAGEAPI SymRegisterCallback(
  [in] HANDLE                      hProcess,
  [in] PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
  [in] PVOID                       UserContext
);

Параметры

[in] hProcess

Дескриптор процесса, который изначально был передан функции SymInitialize .

[in] CallbackFunction

Функция обратного вызова SymRegisterCallbackProc64 .

[in] UserContext

Определяемое пользователем значение или NULL. Это значение просто передается в функцию обратного вызова. Как правило, этот параметр используется приложением для передачи указателя на структуру данных, которая позволяет функции обратного вызова установить определенный контекст.

Возвращаемое значение

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Комментарии

Функция SymRegisterCallback64 позволяет приложению зарегистрировать функцию обратного вызова для использования обработчиком символов. Обработчик символов вызывает зарегистрированную функцию обратного вызова при наличии сведений о состоянии или ходе выполнения приложения.

Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR. SymRegisterCallbackW64 определяется в Dbghelp.h следующим образом.

BOOL
IMAGEAPI
SymRegisterCallbackW64(
    __in HANDLE hProcess,
    __in PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction,
    __in ULONG64 UserContext
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymRegisterCallback64   SymRegisterCallbackW64
#endif

Эта функция заменяет функцию SymRegisterCallback . Дополнительные сведения см. в разделе Обновленная поддержка платформы. SymRegisterCallback определяется следующим образом в Dbghelp.h.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymRegisterCallback SymRegisterCallback64
#else
BOOL
IMAGEAPI
SymRegisterCallback(
    __in HANDLE hProcess,
    __in PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
    __in_opt PVOID UserContext
    );
#endif

Более подробный пример см. в статье Получение уведомлений.

Требования

Требование Значение
Целевая платформа Windows
Header dbghelp.h
Библиотека Dbghelp.lib
DLL Dbghelp.dll
Распространяемые компоненты DbgHelp.dll 5.1 или более поздней версии

См. также раздел

Функции DbgHelp

Получение уведомлений

SymInitialize

SymRegisterCallbackProc64