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

콜백 코드입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
CBA_DEBUG_INFO
0x10000000
자세한 정보를 표시합니다.

CallbackData 매개 변수는 문자열에 대한 포인터입니다.

CBA_DEFERRED_SYMBOL_LOAD_CANCEL
0x00000007
지연된 기호 로드가 시작되었습니다. 기호 로드를 취소하려면 TRUE를 반환 합니다.

CallbackData 매개 변수는 IMAGEHLP_DEFERRED_SYMBOL_LOAD64 구조체에 대한 포인터입니다.

CBA_DEFERRED_SYMBOL_LOAD_COMPLETE
0x00000002
지연된 기호 로드가 완료되었습니다.

CallbackData 매개 변수는 IMAGEHLP_DEFERRED_SYMBOL_LOAD64 구조체에 대한 포인터입니다.

CBA_DEFERRED_SYMBOL_LOAD_FAILURE
0x00000003
지연된 기호 로드가 실패했습니다.

CallbackData 매개 변수는 IMAGEHLP_DEFERRED_SYMBOL_LOAD64 구조체에 대한 포인터입니다. 콜백 함수가 이 구조체의 FileName 멤버를 설정하는 경우 기호 처리기는 기호를 다시 로드하려고 시도합니다.

CBA_DEFERRED_SYMBOL_LOAD_PARTIAL
0x00000020
지연된 기호 로드가 부분적으로 완료되었습니다. 기호 로더가 이미지 파일 또는 지정된 모듈에서 이미지 헤더를 읽을 수 없습니다.

CallbackData 매개 변수는 IMAGEHLP_DEFERRED_SYMBOL_LOAD64 구조체에 대한 포인터입니다. 콜백 함수가 이 구조체의 FileName 멤버를 설정하는 경우 기호 처리기는 기호를 다시 로드하려고 시도합니다.

DbgHelp 5.1: 이 값은 지원되지 않습니다.

CBA_DEFERRED_SYMBOL_LOAD_START
0x00000001
지연된 기호 로드가 시작되었습니다.

CallbackData 매개 변수는 IMAGEHLP_DEFERRED_SYMBOL_LOAD64 구조체에 대한 포인터입니다.

CBA_DUPLICATE_SYMBOL
0x00000005
중복 기호가 발견되었습니다. 이러한 이유는 COFF 또는 CodeView 형식으로만 사용됩니다.

CallbackData 매개 변수는 IMAGEHLP_DUPLICATE_SYMBOL64 구조체에 대한 포인터입니다. 사용할 기호를 지정하려면 이 구조체의 SelectedSymbol 멤버를 설정합니다.

CBA_EVENT
0x00000010
자세한 정보를 표시합니다. 이 이벤트를 처리하지 않으면 CBA_DEBUG_INFO 이벤트를 통해 정보가 다시 들여집니다.

CallbackData 매개 변수는 IMAGEHLP_CBA_EVENT 구조체에 대한 포인터입니다.

CBA_READ_MEMORY
0x00000006
로드된 이미지를 읽었습니다.

CallbackData 매개 변수는 IMAGEHLP_CBA_READ_MEMORY 구조체에 대한 포인터입니다. 콜백 함수는 바이트 멤버가 지정한 바이트 수를 buf 멤버가 지정한 버퍼로 읽고 그에 따라 bytesread 멤버를 업데이트해야 합니다.

CBA_SET_OPTIONS
0x00000008
기호 옵션이 업데이트되었습니다. 현재 옵션을 검색하려면 SymGetOptions 함수를 호출합니다 .

CallbackData 매개 변수는 무시해야 합니다.

CBA_SRCSRV_EVENT
0x40000000
원본 서버에 대한 자세한 정보를 표시합니다. 이 이벤트를 처리하지 않으면 CBA_DEBUG_INFO 이벤트를 통해 정보가 다시 들여집니다.

CallbackData 매개 변수는 IMAGEHLP_CBA_EVENT 구조체에 대한 포인터입니다.

DbgHelp 6.6 이하: 이 값은 지원되지 않습니다.

CBA_SRCSRV_INFO
0x20000000
원본 서버에 대한 자세한 정보를 표시합니다.

CallbackData 매개 변수는 문자열에 대한 포인터입니다.

DbgHelp 6.6 이하: 이 값은 지원되지 않습니다.

CBA_SYMBOLS_UNLOADED
0x00000004
기호가 언로드되었습니다.

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
헤더 dbghelp.h
재배포 가능 파일 DbgHelp.dll 5.1 이상

추가 정보

DbgHelp 함수

알림 받기

IMAGEHLP_CBA_EVENT

IMAGEHLP_CBA_READ_MEMORY

IMAGEHLP_DEFERRED_SYMBOL_LOAD64

IMAGEHLP_DUPLICATE_SYMBOL64

SymRegisterCallback64