diff --git a/include/dbghelp.h b/include/dbghelp.h index 15e9f9d2d77..9672b667f1e 100644 --- a/include/dbghelp.h +++ b/include/dbghelp.h @@ -33,7 +33,12 @@ extern "C" { #endif #endif +#ifdef _IMAGEHLP_SOURCE_ #define IMAGEAPI WINAPI +#else +#define IMAGEAPI DECLSPEC_IMPORT WINAPI +#endif + #define DBHLPAPI IMAGEAPI typedef struct _LOADED_IMAGE @@ -494,25 +499,23 @@ typedef struct _DBGHELP_MODLOAD_DATA #define SLMFLAG_NO_SYMBOLS 0x4 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID); -BOOL WINAPI EnumerateLoadedModules64(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); +BOOL IMAGEAPI EnumerateLoadedModules64(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(PCWSTR, DWORD64, ULONG, PVOID); -BOOL WINAPI EnumerateLoadedModulesW64(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); -BOOL WINAPI EnumerateLoadedModulesEx(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); -BOOL WINAPI EnumerateLoadedModulesExW(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); +BOOL IMAGEAPI EnumerateLoadedModulesW64(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); +BOOL IMAGEAPI EnumerateLoadedModulesEx(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); +BOOL IMAGEAPI EnumerateLoadedModulesExW(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(PCSTR, DWORD64, PVOID); -BOOL WINAPI SymEnumerateModules64(HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID); +BOOL IMAGEAPI SymEnumerateModules64(HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(PCWSTR, DWORD64, PVOID); -BOOL WINAPI SymEnumerateModulesW64(HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID); -BOOL WINAPI SymGetModuleInfo64(HANDLE, DWORD64, PIMAGEHLP_MODULE64); -BOOL WINAPI SymGetModuleInfoW64(HANDLE, DWORD64, PIMAGEHLP_MODULEW64); -DWORD64 WINAPI SymGetModuleBase64(HANDLE, DWORD64); -DWORD64 WINAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD); -DWORD64 WINAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, - PMODLOAD_DATA, DWORD); -DWORD64 WINAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, - PMODLOAD_DATA, DWORD); -BOOL WINAPI SymUnloadModule64(HANDLE, DWORD64); -BOOL WINAPI SymRefreshModuleList(HANDLE); +BOOL IMAGEAPI SymEnumerateModulesW64(HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID); +BOOL IMAGEAPI SymGetModuleInfo64(HANDLE, DWORD64, PIMAGEHLP_MODULE64); +BOOL IMAGEAPI SymGetModuleInfoW64(HANDLE, DWORD64, PIMAGEHLP_MODULEW64); +DWORD64 IMAGEAPI SymGetModuleBase64(HANDLE, DWORD64); +DWORD64 IMAGEAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD); +DWORD64 IMAGEAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD); +DWORD64 IMAGEAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD); +BOOL IMAGEAPI SymUnloadModule64(HANDLE, DWORD64); +BOOL IMAGEAPI SymRefreshModuleList(HANDLE); /************************* * Symbol Handling * @@ -722,60 +725,58 @@ typedef struct _TI_FINDCHILDREN_PARAMS #define SYMSEARCH_RECURSE 0x02 #define SYMSEARCH_GLOBALSONLY 0x04 -BOOL WINAPI SymGetTypeInfo(HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID); -BOOL WINAPI SymGetTypeInfoEx(HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS); +BOOL IMAGEAPI SymGetTypeInfo(HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID); +BOOL IMAGEAPI SymGetTypeInfoEx(HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS); typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO, ULONG, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(PSYMBOL_INFOW, ULONG, PVOID); -BOOL WINAPI SymEnumTypes(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); -BOOL WINAPI SymEnumTypesW(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); -BOOL WINAPI SymEnumTypesByName(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); -BOOL WINAPI SymEnumTypesByNameW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); -BOOL WINAPI SymFromAddr(HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*); -BOOL WINAPI SymFromAddrW(HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*); -BOOL WINAPI SymFromInlineContext(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFO); -BOOL WINAPI SymFromInlineContextW(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFOW); -BOOL WINAPI SymFromToken(HANDLE, DWORD64, DWORD, PSYMBOL_INFO); -BOOL WINAPI SymFromTokenW(HANDLE, DWORD64, DWORD, PSYMBOL_INFOW); -BOOL WINAPI SymFromName(HANDLE, PCSTR, PSYMBOL_INFO); -BOOL WINAPI SymFromNameW(HANDLE, PCWSTR, PSYMBOL_INFOW); -BOOL WINAPI SymGetSymFromAddr64(HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64); -BOOL WINAPI SymGetSymFromName64(HANDLE, PCSTR, PIMAGEHLP_SYMBOL64); -BOOL WINAPI SymGetTypeFromName(HANDLE, ULONG64, PCSTR, PSYMBOL_INFO); -BOOL WINAPI SymGetTypeFromNameW(HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW); -BOOL WINAPI SymGetSymNext64(HANDLE, PIMAGEHLP_SYMBOL64); -BOOL WINAPI SymGetSymNextW64(HANDLE, PIMAGEHLP_SYMBOLW64); -BOOL WINAPI SymGetSymPrev64(HANDLE, PIMAGEHLP_SYMBOL64); -BOOL WINAPI SymGetSymPrevW64(HANDLE, PIMAGEHLP_SYMBOLW64); -BOOL WINAPI SymEnumSym(HANDLE,ULONG64,PSYM_ENUMERATESYMBOLS_CALLBACK,PVOID); -BOOL WINAPI SymEnumSymbols(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, - PVOID); -BOOL WINAPI SymEnumSymbolsW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, - PVOID); +BOOL IMAGEAPI SymEnumTypes(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumTypesW(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumTypesByName(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumTypesByNameW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +BOOL IMAGEAPI SymFromAddr(HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*); +BOOL IMAGEAPI SymFromAddrW(HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*); +BOOL IMAGEAPI SymFromInlineContext(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromInlineContextW(HANDLE, DWORD64, ULONG, PDWORD64, PSYMBOL_INFOW); +BOOL IMAGEAPI SymFromToken(HANDLE, DWORD64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromTokenW(HANDLE, DWORD64, DWORD, PSYMBOL_INFOW); +BOOL IMAGEAPI SymFromName(HANDLE, PCSTR, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromNameW(HANDLE, PCWSTR, PSYMBOL_INFOW); +BOOL IMAGEAPI SymGetSymFromAddr64(HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymFromName64(HANDLE, PCSTR, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetTypeFromName(HANDLE, ULONG64, PCSTR, PSYMBOL_INFO); +BOOL IMAGEAPI SymGetTypeFromNameW(HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW); +BOOL IMAGEAPI SymGetSymNext64(HANDLE, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymNextW64(HANDLE, PIMAGEHLP_SYMBOLW64); +BOOL IMAGEAPI SymGetSymPrev64(HANDLE, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymPrevW64(HANDLE, PIMAGEHLP_SYMBOLW64); +BOOL IMAGEAPI SymEnumSym(HANDLE,ULONG64,PSYM_ENUMERATESYMBOLS_CALLBACK,PVOID); +BOOL IMAGEAPI SymEnumSymbols(HANDLE, ULONG64, PCSTR, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSymbolsW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(PCSTR, DWORD64, ULONG, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(PCWSTR, DWORD64, ULONG, PVOID); -BOOL WINAPI SymEnumerateSymbols64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID); -BOOL WINAPI SymEnumerateSymbolsW64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID); -BOOL WINAPI SymEnumSymbolsForAddr(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); -BOOL WINAPI SymEnumSymbolsForAddrW(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumerateSymbols64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID); +BOOL IMAGEAPI SymEnumerateSymbolsW64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID); +BOOL IMAGEAPI SymEnumSymbolsForAddr(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSymbolsForAddrW(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK64)(HANDLE, ULONG, ULONG64, ULONG64); -BOOL WINAPI SymRegisterCallback64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); -BOOL WINAPI SymRegisterCallbackW64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); -BOOL WINAPI SymUnDName64(PIMAGEHLP_SYMBOL64, PSTR, DWORD); -BOOL WINAPI SymMatchString(PCSTR, PCSTR, BOOL); -BOOL WINAPI SymMatchStringA(PCSTR, PCSTR, BOOL); -BOOL WINAPI SymMatchStringW(PCWSTR, PCWSTR, BOOL); -BOOL WINAPI SymSearch(HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD); -BOOL WINAPI SymSearchW(HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD); -DWORD WINAPI UnDecorateSymbolName(PCSTR, PSTR, DWORD, DWORD); -DWORD WINAPI UnDecorateSymbolNameW(PCWSTR, PWSTR, DWORD, DWORD); -BOOL WINAPI SymGetScope(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); -BOOL WINAPI SymGetScopeW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); -BOOL WINAPI SymFromIndex(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); -BOOL WINAPI SymFromIndexW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); -BOOL WINAPI SymAddSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD); -BOOL WINAPI SymAddSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD); -BOOL WINAPI SymDeleteSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD); -BOOL WINAPI SymDeleteSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD); +BOOL IMAGEAPI SymRegisterCallback64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymRegisterCallbackW64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymUnDName64(PIMAGEHLP_SYMBOL64, PSTR, DWORD); +BOOL IMAGEAPI SymMatchString(PCSTR, PCSTR, BOOL); +BOOL IMAGEAPI SymMatchStringA(PCSTR, PCSTR, BOOL); +BOOL IMAGEAPI SymMatchStringW(PCWSTR, PCWSTR, BOOL); +BOOL IMAGEAPI SymSearch(HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD); +BOOL IMAGEAPI SymSearchW(HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD); +DWORD IMAGEAPI UnDecorateSymbolName(PCSTR, PSTR, DWORD, DWORD); +DWORD IMAGEAPI UnDecorateSymbolNameW(PCWSTR, PWSTR, DWORD, DWORD); +BOOL IMAGEAPI SymGetScope(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymGetScopeW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); +BOOL IMAGEAPI SymFromIndex(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromIndexW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); +BOOL IMAGEAPI SymAddSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD); +BOOL IMAGEAPI SymAddSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD); +BOOL IMAGEAPI SymDeleteSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD); +BOOL IMAGEAPI SymDeleteSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD); typedef struct _OMAP { @@ -783,7 +784,7 @@ typedef struct _OMAP ULONG rvaTo; } OMAP, *POMAP; -BOOL WINAPI SymGetOmaps(HANDLE, DWORD64, POMAP*, PDWORD64, POMAP*, PDWORD64); +BOOL IMAGEAPI SymGetOmaps(HANDLE, DWORD64, POMAP*, PDWORD64, POMAP*, PDWORD64); /************************* * Source Files * @@ -791,28 +792,27 @@ BOOL WINAPI SymGetOmaps(HANDLE, DWORD64, POMAP*, PDWORD64, POMAP*, PDWORD64); typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(PSOURCEFILE, PVOID); typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW, PVOID); -BOOL WINAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALLBACK, - PVOID); -BOOL WINAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID); -BOOL WINAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64); -BOOL WINAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64); -BOOL WINAPI SymGetLineFromInlineContext(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINE64); -BOOL WINAPI SymGetLineFromInlineContextW(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINEW64); -BOOL WINAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64); -BOOL WINAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64); -BOOL WINAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64); -BOOL WINAPI SymGetLineNextW64(HANDLE, PIMAGEHLP_LINEW64); -BOOL WINAPI SymGetLineFromName64(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64); -BOOL WINAPI SymGetLineFromNameW64(HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64); -ULONG WINAPI SymGetFileLineOffsets64(HANDLE, PCSTR, PCSTR, PDWORD64, ULONG); -BOOL WINAPI SymGetSourceFile(HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD); -BOOL WINAPI SymGetSourceFileW(HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD); -BOOL WINAPI SymGetSourceFileToken(HANDLE, ULONG64, PCSTR, PVOID*, DWORD*); -BOOL WINAPI SymGetSourceFileTokenW(HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*); -BOOL WINAPI SymGetSourceFileFromToken(HANDLE, PVOID, PCSTR, PSTR, DWORD); -BOOL WINAPI SymGetSourceFileFromTokenW(HANDLE, PVOID, PCWSTR, PWSTR, DWORD); -BOOL WINAPI SymGetSourceVarFromToken(HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD); -BOOL WINAPI SymGetSourceVarFromTokenW(HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymEnumSourceFiles(HANDLE, ULONG64, PCSTR, PSYM_ENUMSOURCEFILES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSourceFilesW(HANDLE, ULONG64, PCWSTR, PSYM_ENUMSOURCEFILES_CALLBACKW, PVOID); +BOOL IMAGEAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLineFromInlineContext(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineFromInlineContextW(HANDLE, DWORD64, ULONG, DWORD64, PDWORD, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineNextW64(HANDLE, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLineFromName64(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineFromNameW64(HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64); +ULONG IMAGEAPI SymGetFileLineOffsets64(HANDLE, PCSTR, PCSTR, PDWORD64, ULONG); +BOOL IMAGEAPI SymGetSourceFile(HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileW(HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileToken(HANDLE, ULONG64, PCSTR, PVOID*, DWORD*); +BOOL IMAGEAPI SymGetSourceFileTokenW(HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*); +BOOL IMAGEAPI SymGetSourceFileFromToken(HANDLE, PVOID, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileFromTokenW(HANDLE, PVOID, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymGetSourceVarFromToken(HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceVarFromTokenW(HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD); typedef struct _SRCCODEINFO { @@ -838,64 +838,60 @@ typedef struct _SRCCODEINFOW typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACK)(PSRCCODEINFO, PVOID); typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACKW)(PSRCCODEINFOW, PVOID); -BOOL WINAPI SymEnumLines(HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID); -BOOL WINAPI SymEnumLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID); -BOOL WINAPI SymEnumSourceLines(HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID); -BOOL WINAPI SymEnumSourceLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumLines(HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumSourceLines(HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSourceLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID); /************************* * File & image handling * *************************/ -BOOL WINAPI SymInitialize(HANDLE, PCSTR, BOOL); -BOOL WINAPI SymInitializeW(HANDLE, PCWSTR, BOOL); -BOOL WINAPI SymCleanup(HANDLE); +BOOL IMAGEAPI SymInitialize(HANDLE, PCSTR, BOOL); +BOOL IMAGEAPI SymInitializeW(HANDLE, PCWSTR, BOOL); +BOOL IMAGEAPI SymCleanup(HANDLE); -HANDLE WINAPI FindDebugInfoFile(PCSTR, PCSTR, PSTR); +HANDLE IMAGEAPI FindDebugInfoFile(PCSTR, PCSTR, PSTR); typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(HANDLE, PCSTR, PVOID); typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID); -HANDLE WINAPI FindDebugInfoFileEx(PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID); -HANDLE WINAPI FindDebugInfoFileExW(PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID); -HANDLE WINAPI SymFindDebugInfoFile(HANDLE, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID); -HANDLE WINAPI SymFindDebugInfoFileW(HANDLE, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID); +HANDLE IMAGEAPI FindDebugInfoFileEx(PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI FindDebugInfoFileExW(PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID); +HANDLE IMAGEAPI SymFindDebugInfoFile(HANDLE, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI SymFindDebugInfoFileW(HANDLE, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID); typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(PCSTR, PVOID); typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACKW)(PCWSTR, PVOID); -BOOL WINAPI FindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, - PSTR, PFINDFILEINPATHCALLBACK, PVOID); -BOOL WINAPI SymFindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, - PSTR, PFINDFILEINPATHCALLBACK, PVOID); -BOOL WINAPI SymFindFileInPathW(HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD, - PWSTR, PFINDFILEINPATHCALLBACKW, PVOID); -HANDLE WINAPI FindExecutableImage(PCSTR, PCSTR, PSTR); +BOOL IMAGEAPI FindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, PSTR, PFINDFILEINPATHCALLBACK, PVOID); +BOOL IMAGEAPI SymFindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, PSTR, PFINDFILEINPATHCALLBACK, PVOID); +BOOL IMAGEAPI SymFindFileInPathW(HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD, PWSTR, PFINDFILEINPATHCALLBACKW, PVOID); +HANDLE IMAGEAPI FindExecutableImage(PCSTR, PCSTR, PSTR); typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(HANDLE, PCSTR, PVOID); typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACKW)(HANDLE, PCWSTR, PVOID); -HANDLE WINAPI FindExecutableImageEx(PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); -HANDLE WINAPI FindExecutableImageExW(PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); -HANDLE WINAPI SymFindExecutableImage(HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); -HANDLE WINAPI SymFindExecutableImageW(HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); -PIMAGE_NT_HEADERS WINAPI ImageNtHeader(PVOID); -PVOID WINAPI ImageDirectoryEntryToDataEx(PVOID, BOOLEAN, USHORT, PULONG, - PIMAGE_SECTION_HEADER *); -PVOID WINAPI ImageDirectoryEntryToData(PVOID, BOOLEAN, USHORT, PULONG); -PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(PIMAGE_NT_HEADERS, PVOID, ULONG); -PVOID WINAPI ImageRvaToVa(PIMAGE_NT_HEADERS, PVOID, ULONG, PIMAGE_SECTION_HEADER*); -BOOL WINAPI SymGetSearchPath(HANDLE, PSTR, DWORD); -BOOL WINAPI SymGetSearchPathW(HANDLE, PWSTR, DWORD); -BOOL WINAPI SymSetSearchPath(HANDLE, PCSTR); -BOOL WINAPI SymSetSearchPathW(HANDLE, PCWSTR); -DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE); -BOOL WINAPI MakeSureDirectoryPathExists(PCSTR); -BOOL WINAPI SearchTreeForFile(PCSTR, PCSTR, PSTR); -BOOL WINAPI SearchTreeForFileW(PCWSTR, PCWSTR, PWSTR); +HANDLE IMAGEAPI FindExecutableImageEx(PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI FindExecutableImageExW(PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); +HANDLE IMAGEAPI SymFindExecutableImage(HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI SymFindExecutableImageW(HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); +PIMAGE_NT_HEADERS IMAGEAPI ImageNtHeader(PVOID); +PVOID IMAGEAPI ImageDirectoryEntryToDataEx(PVOID, BOOLEAN, USHORT, PULONG, PIMAGE_SECTION_HEADER *); +PVOID IMAGEAPI ImageDirectoryEntryToData(PVOID, BOOLEAN, USHORT, PULONG); +PIMAGE_SECTION_HEADER IMAGEAPI ImageRvaToSection(PIMAGE_NT_HEADERS, PVOID, ULONG); +PVOID IMAGEAPI ImageRvaToVa(PIMAGE_NT_HEADERS, PVOID, ULONG, PIMAGE_SECTION_HEADER*); +BOOL IMAGEAPI SymGetSearchPath(HANDLE, PSTR, DWORD); +BOOL IMAGEAPI SymGetSearchPathW(HANDLE, PWSTR, DWORD); +BOOL IMAGEAPI SymSetSearchPath(HANDLE, PCSTR); +BOOL IMAGEAPI SymSetSearchPathW(HANDLE, PCWSTR); +DWORD IMAGEAPI GetTimestampForLoadedLibrary(HMODULE); +BOOL IMAGEAPI MakeSureDirectoryPathExists(PCSTR); +BOOL IMAGEAPI SearchTreeForFile(PCSTR, PCSTR, PSTR); +BOOL IMAGEAPI SearchTreeForFileW(PCWSTR, PCWSTR, PWSTR); typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(PCSTR, PVOID); typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(PCWSTR, PVOID); -BOOL WINAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID); -BOOL WINAPI EnumDirTreeW(HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID); -BOOL WINAPI SymMatchFileName(PCSTR, PCSTR, PSTR*, PSTR*); -BOOL WINAPI SymMatchFileNameW(PCWSTR, PCWSTR, PWSTR*, PWSTR*); -PCHAR WINAPI SymSetHomeDirectory(HANDLE, PCSTR); -PWSTR WINAPI SymSetHomeDirectoryW(HANDLE, PCWSTR); -PCHAR WINAPI SymGetHomeDirectory(DWORD, PSTR, size_t); -PWSTR WINAPI SymGetHomeDirectoryW(DWORD, PWSTR, size_t); +BOOL IMAGEAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID); +BOOL IMAGEAPI EnumDirTreeW(HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID); +BOOL IMAGEAPI SymMatchFileName(PCSTR, PCSTR, PSTR*, PSTR*); +BOOL IMAGEAPI SymMatchFileNameW(PCWSTR, PCWSTR, PWSTR*, PWSTR*); +PCHAR IMAGEAPI SymSetHomeDirectory(HANDLE, PCSTR); +PWSTR IMAGEAPI SymSetHomeDirectoryW(HANDLE, PCWSTR); +PCHAR IMAGEAPI SymGetHomeDirectory(DWORD, PSTR, size_t); +PWSTR IMAGEAPI SymGetHomeDirectoryW(DWORD, PWSTR, size_t); #define hdBase 0 #define hdSym 1 #define hdSrc 2 @@ -904,10 +900,10 @@ PWSTR WINAPI SymGetHomeDirectoryW(DWORD, PWSTR, size_t); /************************* * Context management * *************************/ -BOOL WINAPI SymSetContext(HANDLE, PIMAGEHLP_STACK_FRAME, PIMAGEHLP_CONTEXT); -BOOL WINAPI SymSetScopeFromIndex(HANDLE, ULONG64, ULONG); -BOOL WINAPI SymSetScopeFromAddr(HANDLE, ULONG64); -BOOL WINAPI SymSetScopeFromInlineContext(HANDLE, ULONG64, ULONG); +BOOL IMAGEAPI SymSetContext(HANDLE, PIMAGEHLP_STACK_FRAME, PIMAGEHLP_CONTEXT); +BOOL IMAGEAPI SymSetScopeFromIndex(HANDLE, ULONG64, ULONG); +BOOL IMAGEAPI SymSetScopeFromAddr(HANDLE, ULONG64); +BOOL IMAGEAPI SymSetScopeFromInlineContext(HANDLE, ULONG64, ULONG); /************************* * Stack management * @@ -1004,28 +1000,28 @@ typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64) typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64); typedef DWORD64 (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(HANDLE, DWORD64); typedef DWORD64 (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(HANDLE, HANDLE, LPADDRESS64); -BOOL WINAPI StackWalk64(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, +BOOL IMAGEAPI StackWalk64(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64); #define SYM_STKWALK_DEFAULT 0x00000000 #define SYM_STKWALK_FORCE_FRAMEPTR 0x00000001 -BOOL WINAPI StackWalkEx(DWORD, HANDLE, HANDLE, LPSTACKFRAME_EX, PVOID, +BOOL IMAGEAPI StackWalkEx(DWORD, HANDLE, HANDLE, LPSTACKFRAME_EX, PVOID, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64, DWORD); -PVOID WINAPI SymFunctionTableAccess64(HANDLE, DWORD64); +PVOID IMAGEAPI SymFunctionTableAccess64(HANDLE, DWORD64); typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(HANDLE, ULONG64, ULONG64); -BOOL WINAPI SymRegisterFunctionEntryCallback64(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64); -BOOL WINAPI SymGetUnwindInfo(HANDLE, DWORD64, PVOID, PULONG); +BOOL IMAGEAPI SymRegisterFunctionEntryCallback64(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymGetUnwindInfo(HANDLE, DWORD64, PVOID, PULONG); /* Inline context related APIs */ -DWORD WINAPI SymAddrIncludeInlineTrace(HANDLE, DWORD64); +DWORD IMAGEAPI SymAddrIncludeInlineTrace(HANDLE, DWORD64); #define SYM_INLINE_COMP_ERROR 0 #define SYM_INLINE_COMP_IDENTICAL 1 @@ -1034,8 +1030,8 @@ DWORD WINAPI SymAddrIncludeInlineTrace(HANDLE, DWORD64); #define SYM_INLINE_COMP_STEPOVER 4 #define SYM_INLINE_COMP_DIFFERENT 5 -DWORD WINAPI SymCompareInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, DWORD64); -BOOL WINAPI SymQueryInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, LPDWORD, LPDWORD); +DWORD IMAGEAPI SymCompareInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, DWORD64); +BOOL IMAGEAPI SymQueryInlineTrace(HANDLE, DWORD64, DWORD, DWORD64, DWORD64, LPDWORD, LPDWORD); /************************* * Version, global stuff * @@ -1051,8 +1047,8 @@ typedef struct API_VERSION USHORT Reserved; } API_VERSION, *LPAPI_VERSION; -LPAPI_VERSION WINAPI ImagehlpApiVersion(void); -LPAPI_VERSION WINAPI ImagehlpApiVersionEx(LPAPI_VERSION); +LPAPI_VERSION IMAGEAPI ImagehlpApiVersion(void); +LPAPI_VERSION IMAGEAPI ImagehlpApiVersionEx(LPAPI_VERSION); #ifndef _WIN64 typedef struct _IMAGE_DEBUG_INFORMATION @@ -1090,8 +1086,8 @@ typedef struct _IMAGE_DEBUG_INFORMATION DWORD Reserved[ 2 ]; } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION; -PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(HANDLE, PCSTR, PCSTR, ULONG); -BOOL WINAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); +PIMAGE_DEBUG_INFORMATION IMAGEAPI MapDebugInformation(HANDLE, PCSTR, PCSTR, ULONG); +BOOL IMAGEAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION); #endif typedef enum @@ -1109,21 +1105,19 @@ typedef enum #endif } IMAGEHLP_EXTENDED_OPTIONS; -DWORD WINAPI SymGetOptions(void); -DWORD WINAPI SymSetOptions(DWORD); - -BOOL WINAPI SymGetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option); -BOOL WINAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value); - -BOOL WINAPI SymSetParentWindow(HWND); +DWORD IMAGEAPI SymGetOptions(void); +DWORD IMAGEAPI SymSetOptions(DWORD); +BOOL IMAGEAPI SymGetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option); +BOOL IMAGEAPI SymSetExtendedOption(IMAGEHLP_EXTENDED_OPTIONS option, BOOL value); +BOOL IMAGEAPI SymSetParentWindow(HWND); /*************************** * Symbol servers & stores * ***************************/ -BOOL WINAPI SymSrvGetFileIndexes(PCSTR, GUID *, PDWORD, PDWORD, DWORD); -BOOL WINAPI SymSrvGetFileIndexesW(PCWSTR, GUID *, PDWORD, PDWORD, DWORD); -BOOL WINAPI SymSrvGetFileIndexInfo(PCSTR, PSYMSRV_INDEX_INFO, DWORD); -BOOL WINAPI SymSrvGetFileIndexInfoW(PCWSTR, PSYMSRV_INDEX_INFOW, DWORD); +BOOL IMAGEAPI SymSrvGetFileIndexes(PCSTR, GUID *, PDWORD, PDWORD, DWORD); +BOOL IMAGEAPI SymSrvGetFileIndexesW(PCWSTR, GUID *, PDWORD, PDWORD, DWORD); +BOOL IMAGEAPI SymSrvGetFileIndexInfo(PCSTR, PSYMSRV_INDEX_INFO, DWORD); +BOOL IMAGEAPI SymSrvGetFileIndexInfoW(PCWSTR, PSYMSRV_INDEX_INFOW, DWORD); typedef BOOL (WINAPI* PSYMBOLSERVERPROC)(PCSTR, PCSTR, PVOID, DWORD, DWORD, PSTR); typedef BOOL (WINAPI* PSYMBOLSERVERPROCA)(PCSTR, PCSTR, PVOID, DWORD, DWORD, PSTR); @@ -1216,33 +1210,33 @@ typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(HANDLE, ULONG, PVOID, PVOI typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(HANDLE, DWORD, PVOID); typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(HANDLE, HANDLE, LPADDRESS); -BOOL WINAPI EnumerateLoadedModules(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID); -BOOL WINAPI StackWalk(DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID, PREAD_PROCESS_MEMORY_ROUTINE, PFUNCTION_TABLE_ACCESS_ROUTINE, PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE); -BOOL WINAPI SymEnumerateModules(HANDLE, PSYM_ENUMMODULES_CALLBACK, PVOID); -BOOL WINAPI SymEnumerateSymbols(HANDLE, ULONG, PSYM_ENUMSYMBOLS_CALLBACK, PVOID); -BOOL WINAPI SymEnumerateSymbolsW(HANDLE, ULONG, PSYM_ENUMSYMBOLS_CALLBACKW, PVOID); -PVOID WINAPI SymFunctionTableAccess(HANDLE, DWORD); -BOOL WINAPI SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE); -BOOL WINAPI SymGetLineFromAddrW(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW); -BOOL WINAPI SymGetLineFromName(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE); -BOOL WINAPI SymGetLineNext(HANDLE, PIMAGEHLP_LINE); -BOOL WINAPI SymGetLineNextW(HANDLE, PIMAGEHLP_LINEW); -BOOL WINAPI SymGetLinePrev(HANDLE, PIMAGEHLP_LINE); -BOOL WINAPI SymGetLinePrevW(HANDLE, PIMAGEHLP_LINEW); -DWORD WINAPI SymGetModuleBase(HANDLE, DWORD); -BOOL WINAPI SymGetModuleInfo(HANDLE, DWORD, PIMAGEHLP_MODULE); -BOOL WINAPI SymGetModuleInfoW(HANDLE, DWORD, PIMAGEHLP_MODULEW); -BOOL WINAPI SymGetSymFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_SYMBOL); -BOOL WINAPI SymGetSymFromName(HANDLE, PCSTR, PIMAGEHLP_SYMBOL); -BOOL WINAPI SymGetSymNext(HANDLE, PIMAGEHLP_SYMBOL); -BOOL WINAPI SymGetSymNextW(HANDLE, PIMAGEHLP_SYMBOLW); -BOOL WINAPI SymGetSymPrev(HANDLE, PIMAGEHLP_SYMBOL); -BOOL WINAPI SymGetSymPrevW(HANDLE, PIMAGEHLP_SYMBOLW); -DWORD WINAPI SymLoadModule(HANDLE, HANDLE, PCSTR, PCSTR, DWORD, DWORD); -BOOL WINAPI SymRegisterCallback(HANDLE, PSYMBOL_REGISTERED_CALLBACK, PVOID); -BOOL WINAPI SymRegisterFunctionEntryCallback(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID); -BOOL WINAPI SymUnDName(PIMAGEHLP_SYMBOL, PSTR, DWORD); -BOOL WINAPI SymUnloadModule(HANDLE, DWORD); +BOOL IMAGEAPI EnumerateLoadedModules(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID); +BOOL IMAGEAPI StackWalk(DWORD, HANDLE, HANDLE, LPSTACKFRAME, PVOID, PREAD_PROCESS_MEMORY_ROUTINE, PFUNCTION_TABLE_ACCESS_ROUTINE, PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE); +BOOL IMAGEAPI SymEnumerateModules(HANDLE, PSYM_ENUMMODULES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumerateSymbols(HANDLE, ULONG, PSYM_ENUMSYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumerateSymbolsW(HANDLE, ULONG, PSYM_ENUMSYMBOLS_CALLBACKW, PVOID); +PVOID IMAGEAPI SymFunctionTableAccess(HANDLE, DWORD); +BOOL IMAGEAPI SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineFromAddrW(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW); +BOOL IMAGEAPI SymGetLineFromName(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineNext(HANDLE, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineNextW(HANDLE, PIMAGEHLP_LINEW); +BOOL IMAGEAPI SymGetLinePrev(HANDLE, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLinePrevW(HANDLE, PIMAGEHLP_LINEW); +DWORD IMAGEAPI SymGetModuleBase(HANDLE, DWORD); +BOOL IMAGEAPI SymGetModuleInfo(HANDLE, DWORD, PIMAGEHLP_MODULE); +BOOL IMAGEAPI SymGetModuleInfoW(HANDLE, DWORD, PIMAGEHLP_MODULEW); +BOOL IMAGEAPI SymGetSymFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_SYMBOL); +BOOL IMAGEAPI SymGetSymFromName(HANDLE, PCSTR, PIMAGEHLP_SYMBOL); +BOOL IMAGEAPI SymGetSymNext(HANDLE, PIMAGEHLP_SYMBOL); +BOOL IMAGEAPI SymGetSymNextW(HANDLE, PIMAGEHLP_SYMBOLW); +BOOL IMAGEAPI SymGetSymPrev(HANDLE, PIMAGEHLP_SYMBOL); +BOOL IMAGEAPI SymGetSymPrevW(HANDLE, PIMAGEHLP_SYMBOLW); +DWORD IMAGEAPI SymLoadModule(HANDLE, HANDLE, PCSTR, PCSTR, DWORD, DWORD); +BOOL IMAGEAPI SymRegisterCallback(HANDLE, PSYMBOL_REGISTERED_CALLBACK, PVOID); +BOOL IMAGEAPI SymRegisterFunctionEntryCallback(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID); +BOOL IMAGEAPI SymUnDName(PIMAGEHLP_SYMBOL, PSTR, DWORD); +BOOL IMAGEAPI SymUnloadModule(HANDLE, DWORD); #endif diff --git a/include/imagehlp.h b/include/imagehlp.h index 25ab8d115e0..3c7bb90b511 100644 --- a/include/imagehlp.h +++ b/include/imagehlp.h @@ -28,7 +28,12 @@ extern "C" { #endif /* defined(__cplusplus) */ +#ifdef _IMAGEHLP_SOURCE_ #define IMAGEAPI WINAPI +#else +#define IMAGEAPI DECLSPEC_IMPORT WINAPI +#endif + #define DBHLPAPI IMAGEAPI #define API_VERSION_NUMBER 7 /* 7 is the default */ @@ -224,13 +229,8 @@ typedef struct _IMAGE_DEBUG_INFORMATION { DWORD Reserved[3]; } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION; -PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation( - HANDLE FileHandle, PCSTR FileName, - PCSTR SymbolPath, ULONG ImageBase -); -BOOL WINAPI UnmapDebugInformation( - PIMAGE_DEBUG_INFORMATION DebugInfo -); +PIMAGE_DEBUG_INFORMATION IMAGEAPI MapDebugInformation(HANDLE FileHandle, PCSTR FileName, PCSTR SymbolPath, ULONG ImageBase); +BOOL IMAGEAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION DebugInfo); #endif typedef struct _ADDRESS { @@ -794,552 +794,177 @@ typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)( * Functions */ -BOOL WINAPI BindImage( - PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath -); -BOOL WINAPI BindImageEx( - DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath, - PIMAGEHLP_STATUS_ROUTINE StatusRoutine -); -PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile( - LPVOID BaseAddress, DWORD FileLength, - LPDWORD HeaderSum, LPDWORD CheckSum -); -BOOL WINAPI EnumDirTree( - HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID -); -BOOL WINAPI EnumDirTreeW( - HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID -); -BOOL WINAPI EnumerateLoadedModules( - HANDLE hProcess, - PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback, - PVOID UserContext -); -BOOL WINAPI EnumerateLoadedModules64( - HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID -); -BOOL WINAPI EnumerateLoadedModulesW64( - HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID -); -HANDLE WINAPI FindDebugInfoFile( - PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath -); -HANDLE WINAPI FindDebugInfoFileEx( - PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID -); -HANDLE WINAPI FindDebugInfoFileExW( - PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID -); -HANDLE WINAPI FindExecutableImage( - PCSTR, PCSTR, PSTR -); -HANDLE WINAPI FindExecutableImageEx( - PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID -); -HANDLE WINAPI FindExecutableImageExW( - PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID -); -BOOL WINAPI FindFileInPath( - HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, - PSTR, PFINDFILEINPATHCALLBACK, PVOID -); -BOOL WINAPI GetImageConfigInformation( - PLOADED_IMAGE LoadedImage, - PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation -); -DWORD WINAPI GetImageUnusedHeaderBytes( - PLOADED_IMAGE LoadedImage, - LPDWORD SizeUnusedHeaderBytes -); -DWORD WINAPI GetTimestampForLoadedLibrary( - HMODULE Module -); -BOOL WINAPI ImageAddCertificate( - HANDLE FileHandle, LPWIN_CERTIFICATE Certificate, PDWORD Index -); -PVOID WINAPI ImageDirectoryEntryToData( - PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size -); -BOOL WINAPI ImageEnumerateCertificates( - HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount, - PDWORD Indices, DWORD IndexCount -); -BOOL WINAPI ImageGetCertificateData( - HANDLE FileHandle, DWORD CertificateIndex, - LPWIN_CERTIFICATE Certificate, PDWORD RequiredLength -); -BOOL WINAPI ImageGetCertificateHeader( - HANDLE FileHandle, DWORD CertificateIndex, - LPWIN_CERTIFICATE Certificateheader -); -BOOL WINAPI ImageGetDigestStream( - HANDLE FileHandle, DWORD DigestLevel, - DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle -); -PLOADED_IMAGE WINAPI ImageLoad( - PCSTR DllName, PCSTR DllPath -); -PIMAGE_NT_HEADERS WINAPI ImageNtHeader( - PVOID Base -); -BOOL WINAPI ImageRemoveCertificate( - HANDLE FileHandle, DWORD Index -); -PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection( - PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva -); -PVOID WINAPI ImageRvaToVa( - PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva, - PIMAGE_SECTION_HEADER *LastRvaSection -); -BOOL WINAPI ImageUnload( - PLOADED_IMAGE LoadedImage -); -LPAPI_VERSION WINAPI ImagehlpApiVersion( - void -); -LPAPI_VERSION WINAPI ImagehlpApiVersionEx( - LPAPI_VERSION AppVersion -); -BOOL WINAPI MakeSureDirectoryPathExists( - PCSTR DirPath -); -BOOL WINAPI MapAndLoad( - PCSTR ImageName, PCSTR DllPath, PLOADED_IMAGE LoadedImage, - BOOL DotDll, BOOL ReadOnly -); -DWORD WINAPI MapFileAndCheckSumA( - PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum -); -DWORD WINAPI MapFileAndCheckSumW( - PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum -); -BOOL WINAPI ReBaseImage( - PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase, - BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, - ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize, - ULONG_PTR *NewImageBase, ULONG TimeStamp -); -BOOL WINAPI ReBaseImage64( - PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase, - BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, - ULONG *OldImageSize, ULONG64 *OldImageBase, ULONG *NewImageSize, - ULONG64 *NewImageBase, ULONG TimeStamp -); -BOOL WINAPI RemovePrivateCvSymbolic( - PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize -); -BOOL WINAPI SearchTreeForFile( - PCSTR RootPath, PCSTR InputPathName, PSTR OutputPathBuffer -); -BOOL WINAPI SearchTreeForFileW( - PCWSTR RootPath, PCWSTR InputPathName, PWSTR OutputPathBuffer -); -BOOL WINAPI SetImageConfigInformation( - PLOADED_IMAGE LoadedImage, - PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation -); -BOOL WINAPI SplitSymbols( - PSTR ImageName, PCSTR SymbolsPath, - PSTR SymbolFilePath, ULONG Flags -); -BOOL WINAPI StackWalk( - DWORD MachineType, HANDLE hProcess, HANDLE hThread, - LPSTACKFRAME StackFrame, PVOID ContextRecord, - PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, - PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, - PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, - PTRANSLATE_ADDRESS_ROUTINE TranslateAddress -); -BOOL WINAPI StackWalk64( - DWORD MachineType, HANDLE hProcess, HANDLE hThread, - LPSTACKFRAME64 StackFrame, PVOID ContextRecord, - PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, - PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, - PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, - PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress -); -BOOL WINAPI SymAddSymbol( - HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD -); -BOOL WINAPI SymAddSymbolW( - HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD -); -BOOL WINAPI SymCleanup( - HANDLE hProcess -); -BOOL WINAPI SymDeleteSymbol( - HANDLE, ULONG64, PCSTR, DWORD64, DWORD -); -BOOL WINAPI SymDeleteSymbolW( - HANDLE, ULONG64, PCWSTR, DWORD64, DWORD -); -BOOL WINAPI SymEnumerateModules( - HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback, - PVOID UserContext -); -BOOL WINAPI SymEnumerateModules64( - HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID -); -BOOL WINAPI SymEnumerateModulesW64( - HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID -); -BOOL WINAPI SymEnumerateSymbols( - HANDLE hProcess, DWORD BaseOfDll, - PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext -); -BOOL WINAPI SymEnumerateSymbolsW( - HANDLE hProcess, DWORD BaseOfDll, - PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext -); -BOOL WINAPI SymEnumerateSymbols64( - HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID -); -BOOL WINAPI SymEnumerateSymbolsW64( - HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID -); -BOOL WINAPI SymEnumLines( - HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID -); -BOOL WINAPI SymEnumLinesW( - HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID -); -BOOL WINAPI SymEnumSourceFiles( - HANDLE hProcess, ULONG64 ModBase, PCSTR Mask, - PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext -); -BOOL WINAPI SymEnumSourceFilesW( - HANDLE hProcess, ULONG64 ModBase, PCWSTR Mask, - PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles, PVOID UserContext -); -BOOL WINAPI SymEnumSourceLines( - HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID -); -BOOL WINAPI SymEnumSourceLinesW( - HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID -); -BOOL WINAPI SymEnumSymbols( - HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask, - PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext -); -BOOL WINAPI SymEnumSymbolsW( - HANDLE hProcess, DWORD BaseOfDll, PCWSTR Mask, - PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext -); -BOOL WINAPI SymEnumSymbolsForAddr( - HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID -); -BOOL WINAPI SymEnumSymbolsForAddrW( - HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID -); -BOOL WINAPI SymEnumTypes( - HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID -); -BOOL WINAPI SymEnumTypesW( - HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID -); -HANDLE WINAPI SymFindExecutableImage( - HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID -); -HANDLE WINAPI SymFindExecutableImageW( - HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID -); -BOOL WINAPI SymFindFileInPath( - HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, - PSTR, PFINDFILEINPATHCALLBACK, PVOID -); -BOOL WINAPI SymFindFileInPathW( - HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD, - PWSTR, PFINDFILEINPATHCALLBACKW, PVOID -); -BOOL WINAPI SymFromAddr( - HANDLE, DWORD64, DWORD64*, SYMBOL_INFO* -); -BOOL WINAPI SymFromAddrW( - HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW* -); -BOOL WINAPI SymFromIndex( - HANDLE, ULONG64, DWORD, PSYMBOL_INFO -); -BOOL WINAPI SymFromIndexW( - HANDLE, ULONG64, DWORD, PSYMBOL_INFOW -); -BOOL WINAPI SymFromName( - HANDLE, PCSTR, PSYMBOL_INFO -); -BOOL WINAPI SymFromNameW( - HANDLE, PCWSTR, PSYMBOL_INFOW -); -BOOL WINAPI SymFromToken( - HANDLE, DWORD64, DWORD, PSYMBOL_INFO -); -BOOL WINAPI SymFromTokenW( - HANDLE, DWORD64, DWORD, PSYMBOL_INFOW -); -PVOID WINAPI SymFunctionTableAccess( - HANDLE hProcess, DWORD AddrBase -); -PVOID WINAPI SymFunctionTableAccess64( - HANDLE hProcess, DWORD64 AddrBase -); -ULONG WINAPI SymGetFileLineOffsets64( - HANDLE, PCSTR, PCSTR, PDWORD64, ULONG -); -PCHAR WINAPI SymGetHomeDirectory( - DWORD, PSTR, size_t -); -PWSTR WINAPI SymGetHomeDirectoryW( - DWORD, PWSTR, size_t -); -BOOL WINAPI SymGetLineFromAddr( - HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE -); -BOOL WINAPI SymGetLineFromAddrW( - HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW -); -BOOL WINAPI SymGetLineFromAddr64( - HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64 -); -BOOL WINAPI SymGetLineFromAddrW64( - HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64 -); -BOOL WINAPI SymGetLineFromName( - HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE -); -BOOL WINAPI SymGetLineFromName64( - HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64 -); -BOOL WINAPI SymGetLineFromNameW64( - HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64 -); -BOOL WINAPI SymGetLineNext( - HANDLE, PIMAGEHLP_LINE -); -BOOL WINAPI SymGetLineNextW( - HANDLE, PIMAGEHLP_LINEW -); -BOOL WINAPI SymGetLineNext64( - HANDLE, PIMAGEHLP_LINE64 -); -BOOL WINAPI SymGetLineNextW64( - HANDLE, PIMAGEHLP_LINEW64 -); -BOOL WINAPI SymGetLinePrev( - HANDLE, PIMAGEHLP_LINE -); -BOOL WINAPI SymGetLinePrevW( - HANDLE, PIMAGEHLP_LINEW -); -BOOL WINAPI SymGetLinePrev64( - HANDLE, PIMAGEHLP_LINE64 -); -BOOL WINAPI SymGetLinePrevW64( - HANDLE, PIMAGEHLP_LINEW64 -); -DWORD WINAPI SymGetModuleBase( - HANDLE hProcess, DWORD dwAddr -); -BOOL WINAPI SymGetModuleInfo( - HANDLE hProcess, DWORD dwAddr, - PIMAGEHLP_MODULE ModuleInfo -); -BOOL WINAPI SymGetModuleInfoW( - HANDLE, DWORD, PIMAGEHLP_MODULEW -); -BOOL WINAPI SymGetModuleInfo64( - HANDLE, DWORD64, PIMAGEHLP_MODULE64 -); -BOOL WINAPI SymGetModuleInfoW64( - HANDLE, DWORD64, PIMAGEHLP_MODULEW64 -); -DWORD WINAPI SymGetOptions( - void -); -BOOL WINAPI SymGetScope( - HANDLE, ULONG64, DWORD, PSYMBOL_INFO -); -BOOL WINAPI SymGetScopeW( - HANDLE, ULONG64, DWORD, PSYMBOL_INFOW -); -BOOL WINAPI SymGetSearchPath( - HANDLE hProcess, PSTR szSearchPath, DWORD SearchPathLength -); -BOOL WINAPI SymGetSearchPathW( - HANDLE hProcess, PWSTR szSearchPath, DWORD SearchPathLength -); -BOOL WINAPI SymGetSourceFile( - HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD -); -BOOL WINAPI SymGetSourceFileW( - HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD -); -BOOL WINAPI SymGetSourceFileFromToken( - HANDLE, PVOID, PCSTR, PSTR, DWORD -); -BOOL WINAPI SymGetSourceFileFromTokenW( - HANDLE, PVOID, PCWSTR, PWSTR, DWORD -); -BOOL WINAPI SymGetSourceFileToken( - HANDLE, ULONG64, PCSTR, PVOID*, DWORD* -); -BOOL WINAPI SymGetSourceFileTokenW( - HANDLE, ULONG64, PCWSTR, PVOID*, DWORD* -); -BOOL WINAPI SymGetSourceVarFromToken( - HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD -); -BOOL WINAPI SymGetSourceVarFromTokenW( - HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD -); -BOOL WINAPI SymGetSymFromAddr( - HANDLE hProcess, DWORD dwAddr, - PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol -); -BOOL WINAPI SymGetSymFromAddr64( - HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64 -); -BOOL WINAPI SymGetSymFromName( - HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL Symbol -); -BOOL WINAPI SymGetSymFromName64( - HANDLE, PCSTR, PIMAGEHLP_SYMBOL64 -); -BOOL WINAPI SymGetSymNext( - HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol -); -BOOL WINAPI SymGetSymNext64( - HANDLE, PIMAGEHLP_SYMBOL64 -); -BOOL WINAPI SymGetSymPrev( - HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol -); -BOOL WINAPI SymGetSymPrev64( - HANDLE, PIMAGEHLP_SYMBOL64 -); -BOOL WINAPI SymGetTypeFromName( - HANDLE, ULONG64, PCSTR, PSYMBOL_INFO -); -BOOL WINAPI SymGetTypeFromNameW( - HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW -); -BOOL WINAPI SymGetTypeInfo( - HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID -); -BOOL WINAPI SymGetTypeInfoEx( - HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS -); -BOOL WINAPI SymInitialize( - HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess -); -BOOL WINAPI SymInitializeW( - HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess -); -DWORD WINAPI SymLoadModule( - HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName, - DWORD BaseOfDll, DWORD SizeOfDll -); -DWORD64 WINAPI SymLoadModule64( - HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD -); -DWORD64 WINAPI SymLoadModuleEx( - HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD -); -DWORD64 WINAPI SymLoadModuleExW( - HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD -); -BOOL WINAPI SymMatchFileName( - PCSTR, PCSTR, PSTR*, PSTR* -); -BOOL WINAPI SymMatchFileNameW( - PCWSTR, PCWSTR, PWSTR*, PWSTR* -); -BOOL WINAPI SymMatchString( - PCSTR, PCSTR, BOOL -); -BOOL WINAPI SymMatchStringA( - PCSTR, PCSTR, BOOL -); -BOOL WINAPI SymMatchStringW( - PCWSTR, PCWSTR, BOOL -); -BOOL WINAPI SymRegisterCallback( - HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction, - PVOID UserContext -); -BOOL WINAPI SymRegisterCallback64( - HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64 -); -BOOL WINAPI SymRegisterCallbackW64( - HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64 -); -BOOL WINAPI SymRegisterFunctionEntryCallback( - HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID -); -BOOL WINAPI SymRegisterFunctionEntryCallback64( - HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64 -); -BOOL WINAPI SymSearch( - HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, - PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD -); -BOOL WINAPI SymSearchW( - HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, - PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD -); -DWORD WINAPI SymSetContext( - HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, - PIMAGEHLP_CONTEXT Context -); -PCHAR WINAPI SymSetHomeDirectory( - HANDLE, PCSTR -); -PWSTR WINAPI SymSetHomeDirectoryW( - HANDLE, PCWSTR -); -DWORD WINAPI SymSetOptions( - DWORD SymOptions -); -BOOL WINAPI SymSetParentWindow( - HWND -); -BOOL WINAPI SymSetSearchPath( - HANDLE hProcess, PCSTR szSearchPath -); -BOOL WINAPI SymSetSearchPathW( - HANDLE hProcess, PCWSTR szSearchPath -); -BOOL WINAPI SymUnDName( - PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength -); -BOOL WINAPI SymUnDName64( - PIMAGEHLP_SYMBOL64, PSTR, DWORD -); -BOOL WINAPI SymUnloadModule( - HANDLE hProcess, DWORD BaseOfDll -); -BOOL WINAPI TouchFileTimes( - HANDLE FileHandle, LPSYSTEMTIME lpSystemTime -); -DWORD WINAPI UnDecorateSymbolName( - PCSTR DecoratedName, PSTR UnDecoratedName, - DWORD UndecoratedLength, DWORD Flags -); -DWORD WINAPI UnDecorateSymbolNameW( - PCWSTR DecoratedName, PWSTR UnDecoratedName, - DWORD UndecoratedLength, DWORD Flags -); -BOOL WINAPI UnMapAndLoad( - PLOADED_IMAGE LoadedImage -); -BOOL WINAPI UpdateDebugInfoFile( - PCSTR ImageFileName, PCSTR SymbolPath, - PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders -); -BOOL WINAPI UpdateDebugInfoFileEx( - PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath, - PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum -); +BOOL IMAGEAPI BindImage(PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath); +BOOL IMAGEAPI BindImageEx(DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath, PIMAGEHLP_STATUS_ROUTINE StatusRoutine); +PIMAGE_NT_HEADERS IMAGEAPI CheckSumMappedFile(LPVOID BaseAddress, DWORD FileLength, LPDWORD HeaderSum, LPDWORD CheckSum); +BOOL IMAGEAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID); +BOOL IMAGEAPI EnumDirTreeW(HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID); +BOOL IMAGEAPI EnumerateLoadedModules(HANDLE hProcess, PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback, PVOID UserContext); +BOOL IMAGEAPI EnumerateLoadedModules64(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); +BOOL IMAGEAPI EnumerateLoadedModulesW64(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); +HANDLE IMAGEAPI FindDebugInfoFile(PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath); +HANDLE IMAGEAPI FindDebugInfoFileEx(PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI FindDebugInfoFileExW(PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID); +HANDLE IMAGEAPI FindExecutableImage(PCSTR, PCSTR, PSTR); +HANDLE IMAGEAPI FindExecutableImageEx(PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI FindExecutableImageExW(PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); +BOOL IMAGEAPI FindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, PSTR, PFINDFILEINPATHCALLBACK, PVOID); +BOOL IMAGEAPI GetImageConfigInformation(PLOADED_IMAGE LoadedImage, PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation); +DWORD IMAGEAPI GetImageUnusedHeaderBytes(PLOADED_IMAGE LoadedImage, LPDWORD SizeUnusedHeaderBytes); +DWORD IMAGEAPI GetTimestampForLoadedLibrary(HMODULE Module); +BOOL IMAGEAPI ImageAddCertificate(HANDLE FileHandle, LPWIN_CERTIFICATE Certificate, PDWORD Index); +PVOID IMAGEAPI ImageDirectoryEntryToData(PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size); +BOOL IMAGEAPI ImageEnumerateCertificates(HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount, PDWORD Indices, DWORD IndexCount); +BOOL IMAGEAPI ImageGetCertificateData(HANDLE FileHandle, DWORD CertificateIndex, LPWIN_CERTIFICATE Certificate, PDWORD RequiredLength); +BOOL IMAGEAPI ImageGetCertificateHeader(HANDLE FileHandle, DWORD CertificateIndex, LPWIN_CERTIFICATE Certificateheader); +BOOL IMAGEAPI ImageGetDigestStream(HANDLE FileHandle, DWORD DigestLevel, DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle); +PLOADED_IMAGE IMAGEAPI ImageLoad(PCSTR DllName, PCSTR DllPath); +PIMAGE_NT_HEADERS IMAGEAPI ImageNtHeader(PVOID Base); +BOOL IMAGEAPI ImageRemoveCertificate(HANDLE FileHandle, DWORD Index); +PIMAGE_SECTION_HEADER IMAGEAPI ImageRvaToSection(PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva); +PVOID IMAGEAPI ImageRvaToVa(PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva, PIMAGE_SECTION_HEADER *LastRvaSection); +BOOL IMAGEAPI ImageUnload(PLOADED_IMAGE LoadedImage); +LPAPI_VERSION IMAGEAPI ImagehlpApiVersion(void); +LPAPI_VERSION IMAGEAPI ImagehlpApiVersionEx(LPAPI_VERSION AppVersion); +BOOL IMAGEAPI MakeSureDirectoryPathExists(PCSTR DirPath); +BOOL IMAGEAPI MapAndLoad(PCSTR ImageName, PCSTR DllPath, PLOADED_IMAGE LoadedImage, BOOL DotDll, BOOL ReadOnly); +DWORD IMAGEAPI MapFileAndCheckSumA(PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum); +DWORD IMAGEAPI MapFileAndCheckSumW(PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum); +BOOL IMAGEAPI ReBaseImage(PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase, BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, + ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize, ULONG_PTR *NewImageBase, ULONG TimeStamp); +BOOL IMAGEAPI ReBaseImage64(PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase, BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize, + ULONG *OldImageSize, ULONG64 *OldImageBase, ULONG *NewImageSize, ULONG64 *NewImageBase, ULONG TimeStamp); +BOOL IMAGEAPI RemovePrivateCvSymbolic(PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize); +BOOL IMAGEAPI SearchTreeForFile(PCSTR RootPath, PCSTR InputPathName, PSTR OutputPathBuffer); +BOOL IMAGEAPI SearchTreeForFileW(PCWSTR RootPath, PCWSTR InputPathName, PWSTR OutputPathBuffer); +BOOL IMAGEAPI SetImageConfigInformation(PLOADED_IMAGE LoadedImage, PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation); +BOOL IMAGEAPI SplitSymbols(PSTR ImageName, PCSTR SymbolsPath, PSTR SymbolFilePath, ULONG Flags); +BOOL IMAGEAPI StackWalk(DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME StackFrame, PVOID ContextRecord, + PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, + PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE TranslateAddress); +BOOL IMAGEAPI StackWalk64(DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, + PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, + PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); +BOOL IMAGEAPI SymAddSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD); +BOOL IMAGEAPI SymAddSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD); +BOOL IMAGEAPI SymCleanup(HANDLE hProcess); +BOOL IMAGEAPI SymDeleteSymbol(HANDLE, ULONG64, PCSTR, DWORD64, DWORD); +BOOL IMAGEAPI SymDeleteSymbolW(HANDLE, ULONG64, PCWSTR, DWORD64, DWORD); +BOOL IMAGEAPI SymEnumerateModules(HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback, PVOID UserContext); +BOOL IMAGEAPI SymEnumerateModules64(HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID); +BOOL IMAGEAPI SymEnumerateModulesW64(HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID); +BOOL IMAGEAPI SymEnumerateSymbols(HANDLE hProcess, DWORD BaseOfDll, PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext); +BOOL IMAGEAPI SymEnumerateSymbolsW(HANDLE hProcess, DWORD BaseOfDll, PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext); +BOOL IMAGEAPI SymEnumerateSymbols64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID); +BOOL IMAGEAPI SymEnumerateSymbolsW64(HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID); +BOOL IMAGEAPI SymEnumLines(HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumSourceFiles(HANDLE hProcess, ULONG64 ModBase, PCSTR Mask, PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext); +BOOL IMAGEAPI SymEnumSourceFilesW(HANDLE hProcess, ULONG64 ModBase, PCWSTR Mask, PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles, PVOID UserContext); +BOOL IMAGEAPI SymEnumSourceLines(HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSourceLinesW(HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumSymbols(HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask, PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext); +BOOL IMAGEAPI SymEnumSymbolsW(HANDLE hProcess, DWORD BaseOfDll, PCWSTR Mask, PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext); +BOOL IMAGEAPI SymEnumSymbolsForAddr(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumSymbolsForAddrW(HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +BOOL IMAGEAPI SymEnumTypes(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID); +BOOL IMAGEAPI SymEnumTypesW(HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID); +HANDLE IMAGEAPI SymFindExecutableImage(HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID); +HANDLE IMAGEAPI SymFindExecutableImageW(HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID); +BOOL IMAGEAPI SymFindFileInPath(HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD, PSTR, PFINDFILEINPATHCALLBACK, PVOID); +BOOL IMAGEAPI SymFindFileInPathW(HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD, PWSTR, PFINDFILEINPATHCALLBACKW, PVOID); +BOOL IMAGEAPI SymFromAddr(HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*); +BOOL IMAGEAPI SymFromAddrW(HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*); +BOOL IMAGEAPI SymFromIndex(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromIndexW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); +BOOL IMAGEAPI SymFromName(HANDLE, PCSTR, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromNameW(HANDLE, PCWSTR, PSYMBOL_INFOW); +BOOL IMAGEAPI SymFromToken(HANDLE, DWORD64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymFromTokenW(HANDLE, DWORD64, DWORD, PSYMBOL_INFOW); +PVOID IMAGEAPI SymFunctionTableAccess(HANDLE hProcess, DWORD AddrBase); +PVOID IMAGEAPI SymFunctionTableAccess64(HANDLE hProcess, DWORD64 AddrBase); +ULONG IMAGEAPI SymGetFileLineOffsets64(HANDLE, PCSTR, PCSTR, PDWORD64, ULONG); +PCHAR IMAGEAPI SymGetHomeDirectory(DWORD, PSTR, size_t); +PWSTR IMAGEAPI SymGetHomeDirectoryW(DWORD, PWSTR, size_t); +BOOL IMAGEAPI SymGetLineFromAddr(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineFromAddrW(HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW); +BOOL IMAGEAPI SymGetLineFromAddr64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineFromAddrW64(HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLineFromName(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineFromName64(HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineFromNameW64(HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLineNext(HANDLE, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLineNextW(HANDLE, PIMAGEHLP_LINEW); +BOOL IMAGEAPI SymGetLineNext64(HANDLE, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLineNextW64(HANDLE, PIMAGEHLP_LINEW64); +BOOL IMAGEAPI SymGetLinePrev(HANDLE, PIMAGEHLP_LINE); +BOOL IMAGEAPI SymGetLinePrevW(HANDLE, PIMAGEHLP_LINEW); +BOOL IMAGEAPI SymGetLinePrev64(HANDLE, PIMAGEHLP_LINE64); +BOOL IMAGEAPI SymGetLinePrevW64(HANDLE, PIMAGEHLP_LINEW64); +DWORD IMAGEAPI SymGetModuleBase(HANDLE hProcess, DWORD dwAddr); +BOOL IMAGEAPI SymGetModuleInfo(HANDLE hProcess, DWORD dwAddr, PIMAGEHLP_MODULE ModuleInfo); +BOOL IMAGEAPI SymGetModuleInfoW(HANDLE, DWORD, PIMAGEHLP_MODULEW); +BOOL IMAGEAPI SymGetModuleInfo64(HANDLE, DWORD64, PIMAGEHLP_MODULE64); +BOOL IMAGEAPI SymGetModuleInfoW64(HANDLE, DWORD64, PIMAGEHLP_MODULEW64); +DWORD IMAGEAPI SymGetOptions(void); +BOOL IMAGEAPI SymGetScope(HANDLE, ULONG64, DWORD, PSYMBOL_INFO); +BOOL IMAGEAPI SymGetScopeW(HANDLE, ULONG64, DWORD, PSYMBOL_INFOW); +BOOL IMAGEAPI SymGetSearchPath(HANDLE hProcess, PSTR szSearchPath, DWORD SearchPathLength); +BOOL IMAGEAPI SymGetSearchPathW(HANDLE hProcess, PWSTR szSearchPath, DWORD SearchPathLength); +BOOL IMAGEAPI SymGetSourceFile(HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileW(HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileFromToken(HANDLE, PVOID, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileFromTokenW(HANDLE, PVOID, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymGetSourceFileToken(HANDLE, ULONG64, PCSTR, PVOID*, DWORD*); +BOOL IMAGEAPI SymGetSourceFileTokenW(HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*); +BOOL IMAGEAPI SymGetSourceVarFromToken(HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD); +BOOL IMAGEAPI SymGetSourceVarFromTokenW(HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD); +BOOL IMAGEAPI SymGetSymFromAddr(HANDLE hProcess, DWORD dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol); +BOOL IMAGEAPI SymGetSymFromAddr64(HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymFromName(HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL Symbol); +BOOL IMAGEAPI SymGetSymFromName64(HANDLE, PCSTR, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymNext(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol); +BOOL IMAGEAPI SymGetSymNext64(HANDLE, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetSymPrev(HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol); +BOOL IMAGEAPI SymGetSymPrev64(HANDLE, PIMAGEHLP_SYMBOL64); +BOOL IMAGEAPI SymGetTypeFromName(HANDLE, ULONG64, PCSTR, PSYMBOL_INFO); +BOOL IMAGEAPI SymGetTypeFromNameW(HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW); +BOOL IMAGEAPI SymGetTypeInfo(HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID); +BOOL IMAGEAPI SymGetTypeInfoEx(HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS); +BOOL IMAGEAPI SymInitialize(HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess); +BOOL IMAGEAPI SymInitializeW(HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess); +DWORD IMAGEAPI SymLoadModule(HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName, DWORD BaseOfDll, DWORD SizeOfDll); +DWORD64 IMAGEAPI SymLoadModule64(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD); +DWORD64 IMAGEAPI SymLoadModuleEx(HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD); +DWORD64 IMAGEAPI SymLoadModuleExW(HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD); +BOOL IMAGEAPI SymMatchFileName(PCSTR, PCSTR, PSTR*, PSTR*); +BOOL IMAGEAPI SymMatchFileNameW(PCWSTR, PCWSTR, PWSTR*, PWSTR*); +BOOL IMAGEAPI SymMatchString(PCSTR, PCSTR, BOOL); +BOOL IMAGEAPI SymMatchStringA(PCSTR, PCSTR, BOOL); +BOOL IMAGEAPI SymMatchStringW(PCWSTR, PCWSTR, BOOL); +BOOL IMAGEAPI SymRegisterCallback(HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction, PVOID UserContext); +BOOL IMAGEAPI SymRegisterCallback64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymRegisterCallbackW64(HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymRegisterFunctionEntryCallback(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID); +BOOL IMAGEAPI SymRegisterFunctionEntryCallback64(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64); +BOOL IMAGEAPI SymSearch(HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD); +BOOL IMAGEAPI SymSearchW(HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD); +DWORD IMAGEAPI SymSetContext(HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame, PIMAGEHLP_CONTEXT Context); +PCHAR IMAGEAPI SymSetHomeDirectory(HANDLE, PCSTR); +PWSTR IMAGEAPI SymSetHomeDirectoryW(HANDLE, PCWSTR); +DWORD IMAGEAPI SymSetOptions(DWORD SymOptions); +BOOL IMAGEAPI SymSetParentWindow(HWND); +BOOL IMAGEAPI SymSetSearchPath(HANDLE hProcess, PCSTR szSearchPath); +BOOL IMAGEAPI SymSetSearchPathW(HANDLE hProcess, PCWSTR szSearchPath); +BOOL IMAGEAPI SymUnDName(PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength); +BOOL IMAGEAPI SymUnDName64(PIMAGEHLP_SYMBOL64, PSTR, DWORD); +BOOL IMAGEAPI SymUnloadModule(HANDLE hProcess, DWORD BaseOfDll); +BOOL IMAGEAPI TouchFileTimes(HANDLE FileHandle, LPSYSTEMTIME lpSystemTime); +DWORD IMAGEAPI UnDecorateSymbolName(PCSTR DecoratedName, PSTR UnDecoratedName, DWORD UndecoratedLength, DWORD Flags); +DWORD IMAGEAPI UnDecorateSymbolNameW(PCWSTR DecoratedName, PWSTR UnDecoratedName, DWORD UndecoratedLength, DWORD Flags); +BOOL IMAGEAPI UnMapAndLoad(PLOADED_IMAGE LoadedImage); +BOOL IMAGEAPI UpdateDebugInfoFile(PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders); +BOOL IMAGEAPI UpdateDebugInfoFileEx(PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum); #ifdef __cplusplus } /* extern "C" */