[1166] | 1 | /**
|
---|
| 2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
| 3 | * This file is part of the mingw-w64 runtime package.
|
---|
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
| 5 | */
|
---|
| 6 | #pragma once
|
---|
| 7 |
|
---|
| 8 | #ifdef __cplusplus
|
---|
| 9 | extern "C" {
|
---|
| 10 | #endif
|
---|
| 11 |
|
---|
| 12 | typedef WINBOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(HANDLE FileHandle,PCSTR FileName,PVOID CallerData);
|
---|
| 13 | typedef WINBOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACKW)(HANDLE FileHandle,PCWSTR FileName,PVOID CallerData);
|
---|
| 14 | typedef WINBOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(PCSTR filename,PVOID context);
|
---|
| 15 | typedef WINBOOL (CALLBACK *PFINDFILEINPATHCALLBACKW)(PCWSTR filename,PVOID context);
|
---|
| 16 | typedef WINBOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(HANDLE FileHandle,PCSTR FileName,PVOID CallerData);
|
---|
| 17 | typedef WINBOOL (CALLBACK *PFIND_EXE_FILE_CALLBACKW)(HANDLE FileHandle,PCWSTR FileName,PVOID CallerData);
|
---|
| 18 |
|
---|
| 19 | typedef WINBOOL (WINAPI *PSYMBOLSERVERPROC)(LPCSTR,LPCSTR,PVOID,DWORD,DWORD,LPSTR);
|
---|
| 20 | typedef WINBOOL (WINAPI *PSYMBOLSERVEROPENPROC)(VOID);
|
---|
| 21 | typedef WINBOOL (WINAPI *PSYMBOLSERVERCLOSEPROC)(VOID);
|
---|
| 22 | typedef WINBOOL (WINAPI *PSYMBOLSERVERSETOPTIONSPROC)(UINT_PTR,ULONG64);
|
---|
| 23 | typedef WINBOOL (CALLBACK WINAPI *PSYMBOLSERVERCALLBACKPROC)(UINT_PTR action,ULONG64 data,ULONG64 context);
|
---|
| 24 | typedef UINT_PTR (WINAPI *PSYMBOLSERVERGETOPTIONSPROC)();
|
---|
| 25 | typedef WINBOOL (WINAPI *PSYMBOLSERVERPINGPROC)(LPCSTR);
|
---|
| 26 |
|
---|
| 27 | HANDLE IMAGEAPI FindDebugInfoFile(PCSTR FileName,PCSTR SymbolPath,PSTR DebugFilePath);
|
---|
| 28 | HANDLE IMAGEAPI FindDebugInfoFileEx(PCSTR FileName,PCSTR SymbolPath,PSTR DebugFilePath,PFIND_DEBUG_FILE_CALLBACK Callback,PVOID CallerData);
|
---|
| 29 | HANDLE IMAGEAPI FindDebugInfoFileExW(PCWSTR FileName,PCWSTR SymbolPath,PWSTR DebugFilePath,PFIND_DEBUG_FILE_CALLBACKW Callback,PVOID CallerData);
|
---|
| 30 | WINBOOL IMAGEAPI SymFindFileInPath(HANDLE hprocess,PCSTR SearchPath,PCSTR FileName,PVOID id,DWORD two,DWORD three,DWORD flags,LPSTR FoundFile,PFINDFILEINPATHCALLBACK callback,PVOID context);
|
---|
| 31 | WINBOOL IMAGEAPI SymFindFileInPathW(HANDLE hprocess,PCWSTR SearchPath,PCWSTR FileName,PVOID id,DWORD two,DWORD three,DWORD flags,LPSTR FoundFile,PFINDFILEINPATHCALLBACKW callback,PVOID context);
|
---|
| 32 | HANDLE IMAGEAPI FindExecutableImage(PCSTR FileName,PCSTR SymbolPath,PSTR ImageFilePath);
|
---|
| 33 | HANDLE IMAGEAPI FindExecutableImageEx(PCSTR FileName,PCSTR SymbolPath,PSTR ImageFilePath,PFIND_EXE_FILE_CALLBACK Callback,PVOID CallerData);
|
---|
| 34 | HANDLE IMAGEAPI FindExecutableImageExW(PCWSTR FileName,PCWSTR SymbolPath,PWSTR ImageFilePath,PFIND_EXE_FILE_CALLBACKW Callback,PVOID CallerData);
|
---|
| 35 | PIMAGE_NT_HEADERS IMAGEAPI ImageNtHeader(PVOID Base);
|
---|
| 36 | PVOID IMAGEAPI ImageDirectoryEntryToDataEx(PVOID Base,BOOLEAN MappedAsImage,USHORT DirectoryEntry,PULONG Size,PIMAGE_SECTION_HEADER *FoundHeader);
|
---|
| 37 | PVOID IMAGEAPI ImageDirectoryEntryToData(PVOID Base,BOOLEAN MappedAsImage,USHORT DirectoryEntry,PULONG Size);
|
---|
| 38 | PIMAGE_SECTION_HEADER IMAGEAPI ImageRvaToSection(PIMAGE_NT_HEADERS NtHeaders,PVOID Base,ULONG Rva);
|
---|
| 39 | PVOID IMAGEAPI ImageRvaToVa(PIMAGE_NT_HEADERS NtHeaders,PVOID Base,ULONG Rva,PIMAGE_SECTION_HEADER *LastRvaSection);
|
---|
| 40 |
|
---|
| 41 | #define SSRVOPT_CALLBACK 0x0001
|
---|
| 42 | #define SSRVOPT_DWORD 0x0002
|
---|
| 43 | #define SSRVOPT_DWORDPTR 0x0004
|
---|
| 44 | #define SSRVOPT_GUIDPTR 0x0008
|
---|
| 45 | #define SSRVOPT_OLDGUIDPTR 0x0010
|
---|
| 46 | #define SSRVOPT_UNATTENDED 0x0020
|
---|
| 47 | #define SSRVOPT_NOCOPY 0x0040
|
---|
| 48 | #define SSRVOPT_PARENTWIN 0x0080
|
---|
| 49 | #define SSRVOPT_PARAMTYPE 0x0100
|
---|
| 50 | #define SSRVOPT_SECURE 0x0200
|
---|
| 51 | #define SSRVOPT_TRACE 0x0400
|
---|
| 52 | #define SSRVOPT_SETCONTEXT 0x0800
|
---|
| 53 | #define SSRVOPT_PROXY 0x1000
|
---|
| 54 | #define SSRVOPT_DOWNSTREAM_STORE 0x2000
|
---|
| 55 | #define SSRVOPT_RESET ((ULONG_PTR)-1)
|
---|
| 56 |
|
---|
| 57 | #define SSRVACTION_TRACE 1
|
---|
| 58 | #define SSRVACTION_QUERYCANCEL 2
|
---|
| 59 | #define SSRVACTION_EVENT 3
|
---|
| 60 |
|
---|
| 61 | #ifndef _WIN64
|
---|
| 62 | typedef struct _IMAGE_DEBUG_INFORMATION {
|
---|
| 63 | LIST_ENTRY List;
|
---|
| 64 | DWORD ReservedSize;
|
---|
| 65 | PVOID ReservedMappedBase;
|
---|
| 66 | USHORT ReservedMachine;
|
---|
| 67 | USHORT ReservedCharacteristics;
|
---|
| 68 | DWORD ReservedCheckSum;
|
---|
| 69 | DWORD ImageBase;
|
---|
| 70 | DWORD SizeOfImage;
|
---|
| 71 | DWORD ReservedNumberOfSections;
|
---|
| 72 | PIMAGE_SECTION_HEADER ReservedSections;
|
---|
| 73 | DWORD ReservedExportedNamesSize;
|
---|
| 74 | PSTR ReservedExportedNames;
|
---|
| 75 | DWORD ReservedNumberOfFunctionTableEntries;
|
---|
| 76 | PIMAGE_FUNCTION_ENTRY ReservedFunctionTableEntries;
|
---|
| 77 | DWORD ReservedLowestFunctionStartingAddress;
|
---|
| 78 | DWORD ReservedHighestFunctionEndingAddress;
|
---|
| 79 | DWORD ReservedNumberOfFpoTableEntries;
|
---|
| 80 | PFPO_DATA ReservedFpoTableEntries;
|
---|
| 81 | DWORD SizeOfCoffSymbols;
|
---|
| 82 | PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
|
---|
| 83 | DWORD ReservedSizeOfCodeViewSymbols;
|
---|
| 84 | PVOID ReservedCodeViewSymbols;
|
---|
| 85 | PSTR ImageFilePath;
|
---|
| 86 | PSTR ImageFileName;
|
---|
| 87 | PSTR ReservedDebugFilePath;
|
---|
| 88 | DWORD ReservedTimeDateStamp;
|
---|
| 89 | WINBOOL ReservedRomImage;
|
---|
| 90 | PIMAGE_DEBUG_DIRECTORY ReservedDebugDirectory;
|
---|
| 91 | DWORD ReservedNumberOfDebugDirectories;
|
---|
| 92 | DWORD ReservedOriginalFunctionTableBaseAddress;
|
---|
| 93 | DWORD Reserved[2];
|
---|
| 94 | } IMAGE_DEBUG_INFORMATION,*PIMAGE_DEBUG_INFORMATION;
|
---|
| 95 |
|
---|
| 96 | PIMAGE_DEBUG_INFORMATION IMAGEAPI MapDebugInformation(HANDLE FileHandle,PSTR FileName,PSTR SymbolPath,DWORD ImageBase);
|
---|
| 97 | WINBOOL IMAGEAPI UnmapDebugInformation(PIMAGE_DEBUG_INFORMATION DebugInfo);
|
---|
| 98 | #endif
|
---|
| 99 |
|
---|
| 100 | typedef WINBOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(LPCSTR FilePath,PVOID CallerData);
|
---|
| 101 |
|
---|
| 102 | WINBOOL IMAGEAPI SearchTreeForFile(PSTR RootPath,PSTR InputPathName,PSTR OutputPathBuffer);
|
---|
| 103 | WINBOOL IMAGEAPI SearchTreeForFileW(PWSTR RootPath,PWSTR InputPathName,PWSTR OutputPathBuffer);
|
---|
| 104 | WINBOOL IMAGEAPI EnumDirTree(HANDLE hProcess,PSTR RootPath,PSTR InputPathName,PSTR OutputPathBuffer,PENUMDIRTREE_CALLBACK Callback,PVOID CallbackData);
|
---|
| 105 | WINBOOL IMAGEAPI MakeSureDirectoryPathExists(PCSTR DirPath);
|
---|
| 106 |
|
---|
| 107 | #define UNDNAME_COMPLETE (0x0000)
|
---|
| 108 | #define UNDNAME_NO_LEADING_UNDERSCORES (0x0001)
|
---|
| 109 | #define UNDNAME_NO_MS_KEYWORDS (0x0002)
|
---|
| 110 | #define UNDNAME_NO_FUNCTION_RETURNS (0x0004)
|
---|
| 111 | #define UNDNAME_NO_ALLOCATION_MODEL (0x0008)
|
---|
| 112 | #define UNDNAME_NO_ALLOCATION_LANGUAGE (0x0010)
|
---|
| 113 | #define UNDNAME_NO_MS_THISTYPE (0x0020)
|
---|
| 114 | #define UNDNAME_NO_CV_THISTYPE (0x0040)
|
---|
| 115 | #define UNDNAME_NO_THISTYPE (0x0060)
|
---|
| 116 | #define UNDNAME_NO_ACCESS_SPECIFIERS (0x0080)
|
---|
| 117 | #define UNDNAME_NO_THROW_SIGNATURES (0x0100)
|
---|
| 118 | #define UNDNAME_NO_MEMBER_TYPE (0x0200)
|
---|
| 119 | #define UNDNAME_NO_RETURN_UDT_MODEL (0x0400)
|
---|
| 120 | #define UNDNAME_32_BIT_DECODE (0x0800)
|
---|
| 121 | #define UNDNAME_NAME_ONLY (0x1000)
|
---|
| 122 | #define UNDNAME_NO_ARGUMENTS (0x2000)
|
---|
| 123 | #define UNDNAME_NO_SPECIAL_SYMS (0x4000)
|
---|
| 124 |
|
---|
| 125 | #define UNDNAME_NO_ARGUMENTS (0x2000)
|
---|
| 126 | #define UNDNAME_NO_SPECIAL_SYMS (0x4000)
|
---|
| 127 |
|
---|
| 128 | DWORD IMAGEAPI WINAPI UnDecorateSymbolName(PCSTR DecoratedName,PSTR UnDecoratedName,DWORD UndecoratedLength,DWORD Flags);
|
---|
| 129 | DWORD IMAGEAPI WINAPI UnDecorateSymbolNameW(PCWSTR DecoratedName,PWSTR UnDecoratedName,DWORD UndecoratedLength,DWORD Flags);
|
---|
| 130 |
|
---|
| 131 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 132 | #define UnDecorateSymbolName UnDecorateSymbolNameW
|
---|
| 133 | #endif
|
---|
| 134 |
|
---|
| 135 | #define DBHHEADER_DEBUGDIRS 0x1
|
---|
| 136 | #define DBHHEADER_CVMISC 0x2
|
---|
| 137 |
|
---|
| 138 | typedef struct _MODLOAD_CVMISC {
|
---|
| 139 | DWORD oCV;
|
---|
| 140 | size_t cCV;
|
---|
| 141 | DWORD oMisc;
|
---|
| 142 | size_t cMisc;
|
---|
| 143 | DWORD dtImage;
|
---|
| 144 | DWORD cImage;
|
---|
| 145 | } MODLOAD_CVMISC, *PMODLOAD_CVMISC;
|
---|
| 146 |
|
---|
| 147 | typedef enum {
|
---|
| 148 | AddrMode1616,
|
---|
| 149 | AddrMode1632,
|
---|
| 150 | AddrModeReal,
|
---|
| 151 | AddrModeFlat
|
---|
| 152 | } ADDRESS_MODE;
|
---|
| 153 |
|
---|
| 154 | typedef struct _tagADDRESS64 {
|
---|
| 155 | DWORD64 Offset;
|
---|
| 156 | WORD Segment;
|
---|
| 157 | ADDRESS_MODE Mode;
|
---|
| 158 | } ADDRESS64,*LPADDRESS64;
|
---|
| 159 |
|
---|
| 160 | #ifdef _IMAGEHLP64
|
---|
| 161 | #define ADDRESS ADDRESS64
|
---|
| 162 | #define LPADDRESS LPADDRESS64
|
---|
| 163 | #else
|
---|
| 164 | typedef struct _tagADDRESS {
|
---|
| 165 | DWORD Offset;
|
---|
| 166 | WORD Segment;
|
---|
| 167 | ADDRESS_MODE Mode;
|
---|
| 168 | } ADDRESS,*LPADDRESS;
|
---|
| 169 |
|
---|
| 170 | static __inline void Address32To64(LPADDRESS a32,LPADDRESS64 a64) {
|
---|
| 171 | a64->Offset = (ULONG64)(LONG64)(LONG)a32->Offset;
|
---|
| 172 | a64->Segment = a32->Segment;
|
---|
| 173 | a64->Mode = a32->Mode;
|
---|
| 174 | }
|
---|
| 175 |
|
---|
| 176 | static __inline void Address64To32(LPADDRESS64 a64,LPADDRESS a32) {
|
---|
| 177 | a32->Offset = (ULONG)a64->Offset;
|
---|
| 178 | a32->Segment = a64->Segment;
|
---|
| 179 | a32->Mode = a64->Mode;
|
---|
| 180 | }
|
---|
| 181 | #endif
|
---|
| 182 |
|
---|
| 183 | typedef struct _KDHELP64 {
|
---|
| 184 | DWORD64 Thread;
|
---|
| 185 | DWORD ThCallbackStack;
|
---|
| 186 | DWORD ThCallbackBStore;
|
---|
| 187 | DWORD NextCallback;
|
---|
| 188 | DWORD FramePointer;
|
---|
| 189 | DWORD64 KiCallUserMode;
|
---|
| 190 | DWORD64 KeUserCallbackDispatcher;
|
---|
| 191 | DWORD64 SystemRangeStart;
|
---|
| 192 | DWORD64 KiUserExceptionDispatcher;
|
---|
| 193 | DWORD64 StackBase;
|
---|
| 194 | DWORD64 StackLimit;
|
---|
| 195 | DWORD BuildVersion;
|
---|
| 196 | DWORD RetpolineStubFunctionTableSize;
|
---|
| 197 | DWORD64 RetpolineStubFunctionTable;
|
---|
| 198 | DWORD RetpolineStubOffset;
|
---|
| 199 | DWORD RetpolineStubSize;
|
---|
| 200 | DWORD64 Reserved0[2];
|
---|
| 201 | } KDHELP64,*PKDHELP64;
|
---|
| 202 |
|
---|
| 203 | #ifdef _IMAGEHLP64
|
---|
| 204 | #define KDHELP KDHELP64
|
---|
| 205 | #define PKDHELP PKDHELP64
|
---|
| 206 | #else
|
---|
| 207 | typedef struct _KDHELP {
|
---|
| 208 | DWORD Thread;
|
---|
| 209 | DWORD ThCallbackStack;
|
---|
| 210 | DWORD NextCallback;
|
---|
| 211 | DWORD FramePointer;
|
---|
| 212 | DWORD KiCallUserMode;
|
---|
| 213 | DWORD KeUserCallbackDispatcher;
|
---|
| 214 | DWORD SystemRangeStart;
|
---|
| 215 | DWORD ThCallbackBStore;
|
---|
| 216 | DWORD KiUserExceptionDispatcher;
|
---|
| 217 | DWORD StackBase;
|
---|
| 218 | DWORD StackLimit;
|
---|
| 219 | DWORD Reserved[5];
|
---|
| 220 | } KDHELP,*PKDHELP;
|
---|
| 221 |
|
---|
| 222 | static __inline void KdHelp32To64(PKDHELP p32,PKDHELP64 p64) {
|
---|
| 223 | p64->Thread = p32->Thread;
|
---|
| 224 | p64->ThCallbackStack = p32->ThCallbackStack;
|
---|
| 225 | p64->NextCallback = p32->NextCallback;
|
---|
| 226 | p64->FramePointer = p32->FramePointer;
|
---|
| 227 | p64->KiCallUserMode = p32->KiCallUserMode;
|
---|
| 228 | p64->KeUserCallbackDispatcher = p32->KeUserCallbackDispatcher;
|
---|
| 229 | p64->SystemRangeStart = p32->SystemRangeStart;
|
---|
| 230 | p64->KiUserExceptionDispatcher = p32->KiUserExceptionDispatcher;
|
---|
| 231 | p64->StackBase = p32->StackBase;
|
---|
| 232 | p64->StackLimit = p32->StackLimit;
|
---|
| 233 | }
|
---|
| 234 | #endif
|
---|
| 235 |
|
---|
| 236 | typedef struct _tagSTACKFRAME64 {
|
---|
| 237 | ADDRESS64 AddrPC;
|
---|
| 238 | ADDRESS64 AddrReturn;
|
---|
| 239 | ADDRESS64 AddrFrame;
|
---|
| 240 | ADDRESS64 AddrStack;
|
---|
| 241 | ADDRESS64 AddrBStore;
|
---|
| 242 | PVOID FuncTableEntry;
|
---|
| 243 | DWORD64 Params[4];
|
---|
| 244 | WINBOOL Far;
|
---|
| 245 | WINBOOL Virtual;
|
---|
| 246 | DWORD64 Reserved[3];
|
---|
| 247 | KDHELP64 KdHelp;
|
---|
| 248 | } STACKFRAME64,*LPSTACKFRAME64;
|
---|
| 249 |
|
---|
| 250 | #define INLINE_FRAME_CONTEXT_INIT 0
|
---|
| 251 | #define INLINE_FRAME_CONTEXT_IGNORE 0xFFFFFFFF
|
---|
| 252 |
|
---|
| 253 | typedef struct _tagSTACKFRAME_EX {
|
---|
| 254 | ADDRESS64 AddrPC;
|
---|
| 255 | ADDRESS64 AddrReturn;
|
---|
| 256 | ADDRESS64 AddrFrame;
|
---|
| 257 | ADDRESS64 AddrStack;
|
---|
| 258 | ADDRESS64 AddrBStore;
|
---|
| 259 | PVOID FuncTableEntry;
|
---|
| 260 | DWORD64 Params[4];
|
---|
| 261 | WINBOOL Far;
|
---|
| 262 | WINBOOL Virtual;
|
---|
| 263 | DWORD64 Reserved[3];
|
---|
| 264 | KDHELP64 KdHelp;
|
---|
| 265 | DWORD StackFrameSize;
|
---|
| 266 | DWORD InlineFrameContext;
|
---|
| 267 | } STACKFRAME_EX,*LPSTACKFRAME_EX;
|
---|
| 268 |
|
---|
| 269 | #ifdef _IMAGEHLP64
|
---|
| 270 | #define STACKFRAME STACKFRAME64
|
---|
| 271 | #define LPSTACKFRAME LPSTACKFRAME64
|
---|
| 272 | #else
|
---|
| 273 | typedef struct _tagSTACKFRAME {
|
---|
| 274 | ADDRESS AddrPC;
|
---|
| 275 | ADDRESS AddrReturn;
|
---|
| 276 | ADDRESS AddrFrame;
|
---|
| 277 | ADDRESS AddrStack;
|
---|
| 278 | PVOID FuncTableEntry;
|
---|
| 279 | DWORD Params[4];
|
---|
| 280 | WINBOOL Far;
|
---|
| 281 | WINBOOL Virtual;
|
---|
| 282 | DWORD Reserved[3];
|
---|
| 283 | KDHELP KdHelp;
|
---|
| 284 | ADDRESS AddrBStore;
|
---|
| 285 | } STACKFRAME,*LPSTACKFRAME;
|
---|
| 286 | #endif
|
---|
| 287 |
|
---|
| 288 | typedef WINBOOL (WINAPI *PREAD_PROCESS_MEMORY_ROUTINE64)(HANDLE hProcess,DWORD64 qwBaseAddress,PVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesRead);
|
---|
| 289 | typedef PVOID (WINAPI *PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE hProcess,DWORD64 AddrBase);
|
---|
| 290 | typedef DWORD64 (WINAPI *PGET_MODULE_BASE_ROUTINE64)(HANDLE hProcess,DWORD64 Address);
|
---|
| 291 | typedef DWORD64 (WINAPI *PTRANSLATE_ADDRESS_ROUTINE64)(HANDLE hProcess,HANDLE hThread,LPADDRESS64 lpaddr);
|
---|
| 292 |
|
---|
| 293 | WINBOOL 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
|
---|
| 294 | GetModuleBaseRoutine,PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress);
|
---|
| 295 |
|
---|
| 296 | #ifdef _IMAGEHLP64
|
---|
| 297 | #define PREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64
|
---|
| 298 | #define PFUNCTION_TABLE_ACCESS_ROUTINE PFUNCTION_TABLE_ACCESS_ROUTINE64
|
---|
| 299 | #define PGET_MODULE_BASE_ROUTINE PGET_MODULE_BASE_ROUTINE64
|
---|
| 300 | #define PTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE64
|
---|
| 301 | #define StackWalk StackWalk64
|
---|
| 302 | #else
|
---|
| 303 | typedef WINBOOL (WINAPI *PREAD_PROCESS_MEMORY_ROUTINE)(HANDLE hProcess,DWORD lpBaseAddress,PVOID lpBuffer,DWORD nSize,PDWORD lpNumberOfBytesRead);
|
---|
| 304 | typedef PVOID (WINAPI *PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE hProcess,DWORD AddrBase);
|
---|
| 305 | typedef DWORD (WINAPI *PGET_MODULE_BASE_ROUTINE)(HANDLE hProcess,DWORD Address);
|
---|
| 306 | typedef DWORD (WINAPI *PTRANSLATE_ADDRESS_ROUTINE)(HANDLE hProcess,HANDLE hThread,LPADDRESS lpaddr);
|
---|
| 307 |
|
---|
| 308 | WINBOOL 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
|
---|
| 309 | GetModuleBaseRoutine,PTRANSLATE_ADDRESS_ROUTINE TranslateAddress);
|
---|
| 310 | #endif
|
---|
| 311 |
|
---|
| 312 | #define API_VERSION_NUMBER 11
|
---|
| 313 |
|
---|
| 314 | typedef struct API_VERSION {
|
---|
| 315 | USHORT MajorVersion;
|
---|
| 316 | USHORT MinorVersion;
|
---|
| 317 | USHORT Revision;
|
---|
| 318 | USHORT Reserved;
|
---|
| 319 | } API_VERSION,*LPAPI_VERSION;
|
---|
| 320 |
|
---|
| 321 | LPAPI_VERSION IMAGEAPI ImagehlpApiVersion(VOID);
|
---|
| 322 | LPAPI_VERSION IMAGEAPI ImagehlpApiVersionEx(LPAPI_VERSION AppVersion);
|
---|
| 323 | DWORD IMAGEAPI GetTimestampForLoadedLibrary(HMODULE Module);
|
---|
| 324 |
|
---|
| 325 | typedef WINBOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(PCSTR ModuleName,DWORD64 BaseOfDll,PVOID UserContext);
|
---|
| 326 | typedef WINBOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(PCWSTR ModuleName,DWORD64 BaseOfDll,PVOID UserContext);
|
---|
| 327 | typedef WINBOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(PCSTR SymbolName,DWORD64 SymbolAddress,ULONG SymbolSize,PVOID UserContext);
|
---|
| 328 | typedef WINBOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(PCWSTR SymbolName,DWORD64 SymbolAddress,ULONG SymbolSize,PVOID UserContext);
|
---|
| 329 | typedef WINBOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(PCSTR ModuleName,DWORD64 ModuleBase,ULONG ModuleSize,PVOID UserContext);
|
---|
| 330 | typedef WINBOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(PCWSTR ModuleName,DWORD64 ModuleBase,ULONG ModuleSize,PVOID UserContext);
|
---|
| 331 | typedef WINBOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK64)(HANDLE hProcess,ULONG ActionCode,ULONG64 CallbackData,ULONG64 UserContext);
|
---|
| 332 | typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(HANDLE hProcess,DWORD AddrBase,PVOID UserContext);
|
---|
| 333 | typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(HANDLE hProcess,ULONG64 AddrBase,ULONG64 UserContext);
|
---|
| 334 |
|
---|
| 335 | #ifdef _IMAGEHLP64
|
---|
| 336 | #define PSYM_ENUMMODULES_CALLBACK PSYM_ENUMMODULES_CALLBACK64
|
---|
| 337 | #define PSYM_ENUMSYMBOLS_CALLBACK PSYM_ENUMSYMBOLS_CALLBACK64
|
---|
| 338 | #define PSYM_ENUMSYMBOLS_CALLBACKW PSYM_ENUMSYMBOLS_CALLBACK64W
|
---|
| 339 | #define PENUMLOADED_MODULES_CALLBACK PENUMLOADED_MODULES_CALLBACK64
|
---|
| 340 | #define PSYMBOL_REGISTERED_CALLBACK PSYMBOL_REGISTERED_CALLBACK64
|
---|
| 341 | #define PSYMBOL_FUNCENTRY_CALLBACK PSYMBOL_FUNCENTRY_CALLBACK64
|
---|
| 342 | #else
|
---|
| 343 | typedef WINBOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(PCSTR ModuleName,ULONG BaseOfDll,PVOID UserContext);
|
---|
| 344 | typedef WINBOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(PCSTR SymbolName,ULONG SymbolAddress,ULONG SymbolSize,PVOID UserContext);
|
---|
| 345 | typedef WINBOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(PCWSTR SymbolName,ULONG SymbolAddress,ULONG SymbolSize,PVOID UserContext);
|
---|
| 346 | typedef WINBOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(PCSTR ModuleName,ULONG ModuleBase,ULONG ModuleSize,PVOID UserContext);
|
---|
| 347 | typedef WINBOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(HANDLE hProcess,ULONG ActionCode,PVOID CallbackData,PVOID UserContext);
|
---|
| 348 | #endif
|
---|
| 349 |
|
---|
| 350 | #define SYMFLAG_VALUEPRESENT 0x00000001
|
---|
| 351 | #define SYMFLAG_REGISTER 0x00000008
|
---|
| 352 | #define SYMFLAG_REGREL 0x00000010
|
---|
| 353 | #define SYMFLAG_FRAMEREL 0x00000020
|
---|
| 354 | #define SYMFLAG_PARAMETER 0x00000040
|
---|
| 355 | #define SYMFLAG_LOCAL 0x00000080
|
---|
| 356 | #define SYMFLAG_CONSTANT 0x00000100
|
---|
| 357 | #define SYMFLAG_EXPORT 0x00000200
|
---|
| 358 | #define SYMFLAG_FORWARDER 0x00000400
|
---|
| 359 | #define SYMFLAG_FUNCTION 0x00000800
|
---|
| 360 | #define SYMFLAG_VIRTUAL 0x00001000
|
---|
| 361 | #define SYMFLAG_THUNK 0x00002000
|
---|
| 362 | #define SYMFLAG_TLSREL 0x00004000
|
---|
| 363 | #define SYMFLAG_SLOT 0x00008000
|
---|
| 364 | #define SYMFLAG_ILREL 0x00010000
|
---|
| 365 | #define SYMFLAG_METADATA 0x00020000
|
---|
| 366 | #define SYMFLAG_CLR_TOKEN 0x00040000
|
---|
| 367 | #define SYMFLAG_NULL 0x00080000
|
---|
| 368 | #define SYMFLAG_FUNC_NO_RETURN 0x00100000
|
---|
| 369 | #define SYMFLAG_SYNTHETIC_ZEROBASE 0x00200000
|
---|
| 370 | #define SYMFLAG_PUBLIC_CODE 0x00400000
|
---|
| 371 | #define SYMFLAG_REGREL_ALIASINDIR 0x00800000
|
---|
| 372 | #define SYMFLAG_FIXUP_ARM64X 0x01000000
|
---|
| 373 | #define SYMFLAG_GLOBAL 0x02000000
|
---|
| 374 | #define SYMFLAG_RESET 0x80000000
|
---|
| 375 |
|
---|
| 376 | typedef enum {
|
---|
| 377 | SymNone = 0,
|
---|
| 378 | SymCoff,
|
---|
| 379 | SymCv,
|
---|
| 380 | SymPdb,
|
---|
| 381 | SymExport,
|
---|
| 382 | SymDeferred,
|
---|
| 383 | SymSym,
|
---|
| 384 | SymDia,
|
---|
| 385 | SymVirtual,
|
---|
| 386 | NumSymTypes
|
---|
| 387 | } SYM_TYPE;
|
---|
| 388 |
|
---|
| 389 | typedef struct _IMAGEHLP_SYMBOL64 {
|
---|
| 390 | DWORD SizeOfStruct;
|
---|
| 391 | DWORD64 Address;
|
---|
| 392 | DWORD Size;
|
---|
| 393 | DWORD Flags;
|
---|
| 394 | DWORD MaxNameLength;
|
---|
| 395 | CHAR Name[1];
|
---|
| 396 | } IMAGEHLP_SYMBOL64,*PIMAGEHLP_SYMBOL64;
|
---|
| 397 |
|
---|
| 398 | typedef struct _IMAGEHLP_SYMBOL64_PACKAGE {
|
---|
| 399 | IMAGEHLP_SYMBOL64 sym;
|
---|
| 400 | CHAR name[MAX_SYM_NAME + 1];
|
---|
| 401 | } IMAGEHLP_SYMBOL64_PACKAGE,*PIMAGEHLP_SYMBOL64_PACKAGE;
|
---|
| 402 |
|
---|
| 403 | #ifdef _IMAGEHLP64
|
---|
| 404 |
|
---|
| 405 | #define IMAGEHLP_SYMBOL IMAGEHLP_SYMBOL64
|
---|
| 406 | #define PIMAGEHLP_SYMBOL PIMAGEHLP_SYMBOL64
|
---|
| 407 | #define IMAGEHLP_SYMBOL_PACKAGE IMAGEHLP_SYMBOL64_PACKAGE
|
---|
| 408 | #define PIMAGEHLP_SYMBOL_PACKAGE PIMAGEHLP_SYMBOL64_PACKAGE
|
---|
| 409 | #else
|
---|
| 410 |
|
---|
| 411 | typedef struct _IMAGEHLP_SYMBOL {
|
---|
| 412 | DWORD SizeOfStruct;
|
---|
| 413 | DWORD Address;
|
---|
| 414 | DWORD Size;
|
---|
| 415 | DWORD Flags;
|
---|
| 416 | DWORD MaxNameLength;
|
---|
| 417 | CHAR Name[1];
|
---|
| 418 | } IMAGEHLP_SYMBOL,*PIMAGEHLP_SYMBOL;
|
---|
| 419 |
|
---|
| 420 | typedef struct _IMAGEHLP_SYMBOL_PACKAGE {
|
---|
| 421 | IMAGEHLP_SYMBOL sym;
|
---|
| 422 | CHAR name[MAX_SYM_NAME + 1];
|
---|
| 423 | } IMAGEHLP_SYMBOL_PACKAGE,*PIMAGEHLP_SYMBOL_PACKAGE;
|
---|
| 424 | #endif
|
---|
| 425 |
|
---|
| 426 | typedef struct _IMAGEHLP_MODULE64 {
|
---|
| 427 | DWORD SizeOfStruct;
|
---|
| 428 | DWORD64 BaseOfImage;
|
---|
| 429 | DWORD ImageSize;
|
---|
| 430 | DWORD TimeDateStamp;
|
---|
| 431 | DWORD CheckSum;
|
---|
| 432 | DWORD NumSyms;
|
---|
| 433 | SYM_TYPE SymType;
|
---|
| 434 | CHAR ModuleName[32];
|
---|
| 435 | CHAR ImageName[256];
|
---|
| 436 | CHAR LoadedImageName[256];
|
---|
| 437 | CHAR LoadedPdbName[256];
|
---|
| 438 | DWORD CVSig;
|
---|
| 439 | CHAR CVData[MAX_PATH*3];
|
---|
| 440 | DWORD PdbSig;
|
---|
| 441 | GUID PdbSig70;
|
---|
| 442 | DWORD PdbAge;
|
---|
| 443 | WINBOOL PdbUnmatched;
|
---|
| 444 | WINBOOL DbgUnmatched;
|
---|
| 445 | WINBOOL LineNumbers;
|
---|
| 446 | WINBOOL GlobalSymbols;
|
---|
| 447 | WINBOOL TypeInfo;
|
---|
| 448 | WINBOOL SourceIndexed;
|
---|
| 449 | WINBOOL Publics;
|
---|
| 450 | DWORD MachineType;
|
---|
| 451 | DWORD Reserved;
|
---|
| 452 | } IMAGEHLP_MODULE64,*PIMAGEHLP_MODULE64;
|
---|
| 453 |
|
---|
| 454 | typedef struct _IMAGEHLP_MODULE64_EX {
|
---|
| 455 | IMAGEHLP_MODULE64 Module;
|
---|
| 456 | DWORD RegionFlags;
|
---|
| 457 | } IMAGEHLP_MODULE64_EX,*PIMAGEHLP_MODULE64_EX;
|
---|
| 458 |
|
---|
| 459 | typedef struct _IMAGEHLP_MODULE64W {
|
---|
| 460 | DWORD SizeOfStruct;
|
---|
| 461 | DWORD64 BaseOfImage;
|
---|
| 462 | DWORD ImageSize;
|
---|
| 463 | DWORD TimeDateStamp;
|
---|
| 464 | DWORD CheckSum;
|
---|
| 465 | DWORD NumSyms;
|
---|
| 466 | SYM_TYPE SymType;
|
---|
| 467 | WCHAR ModuleName[32];
|
---|
| 468 | WCHAR ImageName[256];
|
---|
| 469 | WCHAR LoadedImageName[256];
|
---|
| 470 | WCHAR LoadedPdbName[256];
|
---|
| 471 | DWORD CVSig;
|
---|
| 472 | WCHAR CVData[MAX_PATH*3];
|
---|
| 473 | DWORD PdbSig;
|
---|
| 474 | GUID PdbSig70;
|
---|
| 475 | DWORD PdbAge;
|
---|
| 476 | WINBOOL PdbUnmatched;
|
---|
| 477 | WINBOOL DbgUnmatched;
|
---|
| 478 | WINBOOL LineNumbers;
|
---|
| 479 | WINBOOL GlobalSymbols;
|
---|
| 480 | WINBOOL TypeInfo;
|
---|
| 481 | WINBOOL SourceIndexed;
|
---|
| 482 | WINBOOL Publics;
|
---|
| 483 | DWORD MachineType;
|
---|
| 484 | DWORD Reserved;
|
---|
| 485 | } IMAGEHLP_MODULEW64,*PIMAGEHLP_MODULEW64;
|
---|
| 486 |
|
---|
| 487 | typedef struct _IMAGEHLP_MODULEW64_EX {
|
---|
| 488 | IMAGEHLP_MODULEW64 Module;
|
---|
| 489 | DWORD RegionFlags;
|
---|
| 490 | } IMAGEHLP_MODULEW64_EX,*PIMAGEHLP_MODULEW64_EX;
|
---|
| 491 |
|
---|
| 492 | #ifdef _IMAGEHLP64
|
---|
| 493 | #define IMAGEHLP_MODULE IMAGEHLP_MODULE64
|
---|
| 494 | #define PIMAGEHLP_MODULE PIMAGEHLP_MODULE64
|
---|
| 495 | #define IMAGEHLP_MODULEW IMAGEHLP_MODULEW64
|
---|
| 496 | #define PIMAGEHLP_MODULEW PIMAGEHLP_MODULEW64
|
---|
| 497 | #else
|
---|
| 498 | typedef struct _IMAGEHLP_MODULE {
|
---|
| 499 | DWORD SizeOfStruct;
|
---|
| 500 | DWORD BaseOfImage;
|
---|
| 501 | DWORD ImageSize;
|
---|
| 502 | DWORD TimeDateStamp;
|
---|
| 503 | DWORD CheckSum;
|
---|
| 504 | DWORD NumSyms;
|
---|
| 505 | SYM_TYPE SymType;
|
---|
| 506 | CHAR ModuleName[32];
|
---|
| 507 | CHAR ImageName[256];
|
---|
| 508 | CHAR LoadedImageName[256];
|
---|
| 509 | } IMAGEHLP_MODULE,*PIMAGEHLP_MODULE;
|
---|
| 510 |
|
---|
| 511 | typedef struct _IMAGEHLP_MODULEW {
|
---|
| 512 | DWORD SizeOfStruct;
|
---|
| 513 | DWORD BaseOfImage;
|
---|
| 514 | DWORD ImageSize;
|
---|
| 515 | DWORD TimeDateStamp;
|
---|
| 516 | DWORD CheckSum;
|
---|
| 517 | DWORD NumSyms;
|
---|
| 518 | SYM_TYPE SymType;
|
---|
| 519 | WCHAR ModuleName[32];
|
---|
| 520 | WCHAR ImageName[256];
|
---|
| 521 | WCHAR LoadedImageName[256];
|
---|
| 522 | } IMAGEHLP_MODULEW,*PIMAGEHLP_MODULEW;
|
---|
| 523 | #endif
|
---|
| 524 |
|
---|
| 525 | typedef struct _IMAGEHLP_LINE64 {
|
---|
| 526 | DWORD SizeOfStruct;
|
---|
| 527 | PVOID Key;
|
---|
| 528 | DWORD LineNumber;
|
---|
| 529 | PCHAR FileName;
|
---|
| 530 | DWORD64 Address;
|
---|
| 531 | } IMAGEHLP_LINE64,*PIMAGEHLP_LINE64;
|
---|
| 532 |
|
---|
| 533 | typedef struct _IMAGEHLP_LINEW64 {
|
---|
| 534 | DWORD SizeOfStruct;
|
---|
| 535 | PVOID Key;
|
---|
| 536 | DWORD LineNumber;
|
---|
| 537 | PWSTR FileName;
|
---|
| 538 | DWORD64 Address;
|
---|
| 539 | } IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64;
|
---|
| 540 |
|
---|
| 541 | #ifdef _IMAGEHLP64
|
---|
| 542 | #define IMAGEHLP_LINE IMAGEHLP_LINE64
|
---|
| 543 | #define PIMAGEHLP_LINE PIMAGEHLP_LINE64
|
---|
| 544 | #else
|
---|
| 545 | typedef struct _IMAGEHLP_LINE {
|
---|
| 546 | DWORD SizeOfStruct;
|
---|
| 547 | PVOID Key;
|
---|
| 548 | DWORD LineNumber;
|
---|
| 549 | PCHAR FileName;
|
---|
| 550 | DWORD Address;
|
---|
| 551 | } IMAGEHLP_LINE,*PIMAGEHLP_LINE;
|
---|
| 552 | #endif
|
---|
| 553 |
|
---|
| 554 | typedef struct _SOURCEFILE {
|
---|
| 555 | DWORD64 ModBase;
|
---|
| 556 | PCHAR FileName;
|
---|
| 557 | } SOURCEFILE,*PSOURCEFILE;
|
---|
| 558 |
|
---|
| 559 | typedef struct _SOURCEFILEW {
|
---|
| 560 | DWORD64 ModBase;
|
---|
| 561 | PWCHAR FileName;
|
---|
| 562 | } SOURCEFILEW,*PSOURCEFILEW;
|
---|
| 563 |
|
---|
| 564 | #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
|
---|
| 565 | #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
|
---|
| 566 | #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
|
---|
| 567 | #define CBA_SYMBOLS_UNLOADED 0x00000004
|
---|
| 568 | #define CBA_DUPLICATE_SYMBOL 0x00000005
|
---|
| 569 | #define CBA_READ_MEMORY 0x00000006
|
---|
| 570 | #define CBA_DEFERRED_SYMBOL_LOAD_CANCEL 0x00000007
|
---|
| 571 | #define CBA_SET_OPTIONS 0x00000008
|
---|
| 572 | #define CBA_EVENT 0x00000010
|
---|
| 573 | #define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL 0x00000020
|
---|
| 574 | #define CBA_DEBUG_INFO 0x10000000
|
---|
| 575 | #define CBA_SRCSRV_INFO 0x20000000
|
---|
| 576 | #define CBA_SRCSRV_EVENT 0x40000000
|
---|
| 577 |
|
---|
| 578 | typedef struct _IMAGEHLP_CBA_READ_MEMORY {
|
---|
| 579 | DWORD64 addr;
|
---|
| 580 | PVOID buf;
|
---|
| 581 | DWORD bytes;
|
---|
| 582 | DWORD *bytesread;
|
---|
| 583 | } IMAGEHLP_CBA_READ_MEMORY,*PIMAGEHLP_CBA_READ_MEMORY;
|
---|
| 584 |
|
---|
| 585 | enum {
|
---|
| 586 | sevInfo = 0,
|
---|
| 587 | sevProblem,
|
---|
| 588 | sevAttn,
|
---|
| 589 | sevFatal,
|
---|
| 590 | sevMax
|
---|
| 591 | };
|
---|
| 592 |
|
---|
| 593 | typedef struct _IMAGEHLP_CBA_EVENT {
|
---|
| 594 | DWORD severity;
|
---|
| 595 | DWORD code;
|
---|
| 596 | PCHAR desc;
|
---|
| 597 | PVOID object;
|
---|
| 598 | } IMAGEHLP_CBA_EVENT,*PIMAGEHLP_CBA_EVENT;
|
---|
| 599 |
|
---|
| 600 | typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD64 {
|
---|
| 601 | DWORD SizeOfStruct;
|
---|
| 602 | DWORD64 BaseOfImage;
|
---|
| 603 | DWORD CheckSum;
|
---|
| 604 | DWORD TimeDateStamp;
|
---|
| 605 | CHAR FileName[MAX_PATH];
|
---|
| 606 | BOOLEAN Reparse;
|
---|
| 607 | HANDLE hFile;
|
---|
| 608 | DWORD Flags;
|
---|
| 609 | } IMAGEHLP_DEFERRED_SYMBOL_LOAD64,*PIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
|
---|
| 610 |
|
---|
| 611 | #define DSLFLAG_MISMATCHED_PDB 0x1
|
---|
| 612 | #define DSLFLAG_MISMATCHED_DBG 0x2
|
---|
| 613 |
|
---|
| 614 | #ifdef _IMAGEHLP64
|
---|
| 615 | #define IMAGEHLP_DEFERRED_SYMBOL_LOAD IMAGEHLP_DEFERRED_SYMBOL_LOAD64
|
---|
| 616 | #define PIMAGEHLP_DEFERRED_SYMBOL_LOAD PIMAGEHLP_DEFERRED_SYMBOL_LOAD64
|
---|
| 617 | #else
|
---|
| 618 | typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
|
---|
| 619 | DWORD SizeOfStruct;
|
---|
| 620 | DWORD BaseOfImage;
|
---|
| 621 | DWORD CheckSum;
|
---|
| 622 | DWORD TimeDateStamp;
|
---|
| 623 | CHAR FileName[MAX_PATH];
|
---|
| 624 | BOOLEAN Reparse;
|
---|
| 625 | HANDLE hFile;
|
---|
| 626 | } IMAGEHLP_DEFERRED_SYMBOL_LOAD,*PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
|
---|
| 627 | #endif
|
---|
| 628 |
|
---|
| 629 | typedef struct _IMAGEHLP_DUPLICATE_SYMBOL64 {
|
---|
| 630 | DWORD SizeOfStruct;
|
---|
| 631 | DWORD NumberOfDups;
|
---|
| 632 | PIMAGEHLP_SYMBOL64 Symbol;
|
---|
| 633 | DWORD SelectedSymbol;
|
---|
| 634 | } IMAGEHLP_DUPLICATE_SYMBOL64,*PIMAGEHLP_DUPLICATE_SYMBOL64;
|
---|
| 635 |
|
---|
| 636 | #ifdef _IMAGEHLP64
|
---|
| 637 | #define IMAGEHLP_DUPLICATE_SYMBOL IMAGEHLP_DUPLICATE_SYMBOL64
|
---|
| 638 | #define PIMAGEHLP_DUPLICATE_SYMBOL PIMAGEHLP_DUPLICATE_SYMBOL64
|
---|
| 639 | #else
|
---|
| 640 | typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
|
---|
| 641 | DWORD SizeOfStruct;
|
---|
| 642 | DWORD NumberOfDups;
|
---|
| 643 | PIMAGEHLP_SYMBOL Symbol;
|
---|
| 644 | DWORD SelectedSymbol;
|
---|
| 645 | } IMAGEHLP_DUPLICATE_SYMBOL,*PIMAGEHLP_DUPLICATE_SYMBOL;
|
---|
| 646 | #endif
|
---|
| 647 |
|
---|
| 648 | typedef struct _SYMSRV_INDEX_INFO {
|
---|
| 649 | DWORD sizeofstruct;
|
---|
| 650 | CHAR file[MAX_PATH +1];
|
---|
| 651 | WINBOOL stripped;
|
---|
| 652 | DWORD timestamp;
|
---|
| 653 | DWORD size;
|
---|
| 654 | CHAR dbgfile[MAX_PATH +1];
|
---|
| 655 | CHAR pdbfile[MAX_PATH + 1];
|
---|
| 656 | GUID guid;
|
---|
| 657 | DWORD sig;
|
---|
| 658 | DWORD age;
|
---|
| 659 | } SYMSRV_INDEX_INFO, *PSYMSRV_INDEX_INFO;
|
---|
| 660 |
|
---|
| 661 | typedef struct _SYMSRV_INDEX_INFOW {
|
---|
| 662 | DWORD sizeofstruct;
|
---|
| 663 | WCHAR file[MAX_PATH +1];
|
---|
| 664 | WINBOOL stripped;
|
---|
| 665 | DWORD timestamp;
|
---|
| 666 | DWORD size;
|
---|
| 667 | WCHAR dbgfile[MAX_PATH +1];
|
---|
| 668 | WCHAR pdbfile[MAX_PATH + 1];
|
---|
| 669 | GUID guid;
|
---|
| 670 | DWORD sig;
|
---|
| 671 | DWORD age;
|
---|
| 672 | } SYMSRV_INDEX_INFOW, *PSYMSRV_INDEX_INFOW;
|
---|
| 673 |
|
---|
| 674 | WINBOOL IMAGEAPI SymSetParentWindow(HWND hwnd);
|
---|
| 675 | PCHAR IMAGEAPI SymSetHomeDirectory(HANDLE hProcess,PCSTR dir);
|
---|
| 676 | PCHAR IMAGEAPI SymSetHomeDirectoryW(HANDLE hProcess,PCWSTR dir);
|
---|
| 677 | PCHAR IMAGEAPI SymGetHomeDirectory(DWORD type,PSTR dir,size_t size);
|
---|
| 678 | PWCHAR IMAGEAPI SymGetHomeDirectoryW(DWORD type,PWSTR dir,size_t size);
|
---|
| 679 |
|
---|
| 680 | #define hdBase 0
|
---|
| 681 | #define hdSym 1
|
---|
| 682 | #define hdSrc 2
|
---|
| 683 | #define hdMax 3
|
---|
| 684 |
|
---|
| 685 | #define SYMOPT_CASE_INSENSITIVE 0x00000001
|
---|
| 686 | #define SYMOPT_UNDNAME 0x00000002
|
---|
| 687 | #define SYMOPT_DEFERRED_LOADS 0x00000004
|
---|
| 688 | #define SYMOPT_NO_CPP 0x00000008
|
---|
| 689 | #define SYMOPT_LOAD_LINES 0x00000010
|
---|
| 690 | #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
|
---|
| 691 | #define SYMOPT_LOAD_ANYTHING 0x00000040
|
---|
| 692 | #define SYMOPT_IGNORE_CVREC 0x00000080
|
---|
| 693 | #define SYMOPT_NO_UNQUALIFIED_LOADS 0x00000100
|
---|
| 694 | #define SYMOPT_FAIL_CRITICAL_ERRORS 0x00000200
|
---|
| 695 | #define SYMOPT_EXACT_SYMBOLS 0x00000400
|
---|
| 696 | #define SYMOPT_ALLOW_ABSOLUTE_SYMBOLS 0x00000800
|
---|
| 697 | #define SYMOPT_IGNORE_NT_SYMPATH 0x00001000
|
---|
| 698 | #define SYMOPT_INCLUDE_32BIT_MODULES 0x00002000
|
---|
| 699 | #define SYMOPT_PUBLICS_ONLY 0x00004000
|
---|
| 700 | #define SYMOPT_NO_PUBLICS 0x00008000
|
---|
| 701 | #define SYMOPT_AUTO_PUBLICS 0x00010000
|
---|
| 702 | #define SYMOPT_NO_IMAGE_SEARCH 0x00020000
|
---|
| 703 | #define SYMOPT_SECURE 0x00040000
|
---|
| 704 | #define SYMOPT_NO_PROMPTS 0x00080000
|
---|
| 705 | #define SYMOPT_ALLOW_ZERO_ADDRESS 0x01000000
|
---|
| 706 | #define SYMOPT_DISABLE_SYMSRV_AUTODETECT 0x02000000
|
---|
| 707 | #define SYMOPT_FAVOR_COMPRESSED 0x00800000
|
---|
| 708 | #define SYMOPT_FLAT_DIRECTORY 0x00400000
|
---|
| 709 | #define SYMOPT_IGNORE_IMAGEDIR 0x00200000
|
---|
| 710 | #define SYMOPT_OVERWRITE 0x00100000
|
---|
| 711 |
|
---|
| 712 | #define SYMOPT_DEBUG 0x80000000
|
---|
| 713 |
|
---|
| 714 | DWORD IMAGEAPI SymSetOptions(DWORD SymOptions);
|
---|
| 715 | DWORD IMAGEAPI SymGetOptions(VOID);
|
---|
| 716 | WINBOOL IMAGEAPI SymCleanup(HANDLE hProcess);
|
---|
| 717 | WINBOOL IMAGEAPI SymMatchString(PCSTR string,PCSTR expression,WINBOOL fCase);
|
---|
| 718 | WINBOOL IMAGEAPI SymMatchStringW(PCWSTR string,PCWSTR expression,WINBOOL fCase);
|
---|
| 719 |
|
---|
| 720 | typedef WINBOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(PSOURCEFILE pSourceFile,PVOID UserContext);
|
---|
| 721 | typedef WINBOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(PSOURCEFILEW pSourceFile,PVOID UserContext);
|
---|
| 722 | #define PSYM_ENUMSOURCFILES_CALLBACK PSYM_ENUMSOURCEFILES_CALLBACK
|
---|
| 723 |
|
---|
| 724 | WINBOOL IMAGEAPI SymEnumSourceFiles(HANDLE hProcess,ULONG64 ModBase,PCSTR Mask,PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles,PVOID UserContext);
|
---|
| 725 | WINBOOL IMAGEAPI SymEnumSourceFilesW(HANDLE hProcess,ULONG64 ModBase,PCWSTR Mask,PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles,PVOID UserContext);
|
---|
| 726 | WINBOOL IMAGEAPI SymEnumerateModules64(HANDLE hProcess,PSYM_ENUMMODULES_CALLBACK64 EnumModulesCallback,PVOID UserContext);
|
---|
| 727 | WINBOOL IMAGEAPI SymEnumerateModulesW64(HANDLE hProcess,PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback,PVOID UserContext);
|
---|
| 728 |
|
---|
| 729 | #ifdef _IMAGEHLP64
|
---|
| 730 | #define SymEnumerateModules SymEnumerateModules64
|
---|
| 731 | #else
|
---|
| 732 | WINBOOL IMAGEAPI SymEnumerateModules(HANDLE hProcess,PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,PVOID UserContext);
|
---|
| 733 | #endif
|
---|
| 734 |
|
---|
| 735 | WINBOOL IMAGEAPI SymEnumerateSymbols64(HANDLE hProcess,DWORD64 BaseOfDll,PSYM_ENUMSYMBOLS_CALLBACK64 EnumSymbolsCallback,PVOID UserContext);
|
---|
| 736 | WINBOOL IMAGEAPI SymEnumerateSymbolsW64(HANDLE hProcess,DWORD64 BaseOfDll,PSYM_ENUMSYMBOLS_CALLBACK64W EnumSymbolsCallback,PVOID UserContext);
|
---|
| 737 |
|
---|
| 738 | #ifdef _IMAGEHLP64
|
---|
| 739 | #define SymEnumerateSymbols SymEnumerateSymbols64
|
---|
| 740 | #define SymEnumerateSymbolsW SymEnumerateSymbolsW64
|
---|
| 741 | #else
|
---|
| 742 | WINBOOL IMAGEAPI SymEnumerateSymbols(HANDLE hProcess,DWORD BaseOfDll,PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
|
---|
| 743 | WINBOOL IMAGEAPI SymEnumerateSymbolsW(HANDLE hProcess,DWORD BaseOfDll,PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback,PVOID UserContext);
|
---|
| 744 | #endif
|
---|
| 745 |
|
---|
| 746 | WINBOOL IMAGEAPI EnumerateLoadedModules64(HANDLE hProcess,PENUMLOADED_MODULES_CALLBACK64 EnumLoadedModulesCallback,PVOID UserContext);
|
---|
| 747 | WINBOOL IMAGEAPI EnumerateLoadedModulesW64(HANDLE hProcess,PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback,PVOID UserContext);
|
---|
| 748 |
|
---|
| 749 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 750 | #define EnumerateLoadedModules64 EnumerateLoadedModulesW64
|
---|
| 751 | #endif
|
---|
| 752 |
|
---|
| 753 | #ifdef _IMAGEHLP64
|
---|
| 754 | #define EnumerateLoadedModules EnumerateLoadedModules64
|
---|
| 755 | #else
|
---|
| 756 | WINBOOL IMAGEAPI EnumerateLoadedModules(HANDLE hProcess,PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,PVOID UserContext);
|
---|
| 757 | #endif
|
---|
| 758 |
|
---|
| 759 | PVOID IMAGEAPI SymFunctionTableAccess64(HANDLE hProcess,DWORD64 AddrBase);
|
---|
| 760 |
|
---|
| 761 | #ifdef _IMAGEHLP64
|
---|
| 762 | #define SymFunctionTableAccess SymFunctionTableAccess64
|
---|
| 763 | #else
|
---|
| 764 | PVOID IMAGEAPI SymFunctionTableAccess(HANDLE hProcess,DWORD AddrBase);
|
---|
| 765 | #endif
|
---|
| 766 |
|
---|
| 767 | WINBOOL IMAGEAPI SymGetModuleInfo64(HANDLE hProcess,DWORD64 qwAddr,PIMAGEHLP_MODULE64 ModuleInfo);
|
---|
| 768 | WINBOOL IMAGEAPI SymGetModuleInfoW64(HANDLE hProcess,DWORD64 qwAddr,PIMAGEHLP_MODULEW64 ModuleInfo);
|
---|
| 769 |
|
---|
| 770 | #ifdef _IMAGEHLP64
|
---|
| 771 | #define SymGetModuleInfo SymGetModuleInfo64
|
---|
| 772 | #define SymGetModuleInfoW SymGetModuleInfoW64
|
---|
| 773 | #else
|
---|
| 774 | WINBOOL IMAGEAPI SymGetModuleInfo(HANDLE hProcess,DWORD dwAddr,PIMAGEHLP_MODULE ModuleInfo);
|
---|
| 775 | WINBOOL IMAGEAPI SymGetModuleInfoW(HANDLE hProcess,DWORD dwAddr,PIMAGEHLP_MODULEW ModuleInfo);
|
---|
| 776 | #endif
|
---|
| 777 |
|
---|
| 778 | DWORD64 IMAGEAPI SymGetModuleBase64(HANDLE hProcess,DWORD64 qwAddr);
|
---|
| 779 |
|
---|
| 780 | #ifdef _IMAGEHLP64
|
---|
| 781 | #define SymGetModuleBase SymGetModuleBase64
|
---|
| 782 | #else
|
---|
| 783 | DWORD IMAGEAPI SymGetModuleBase(HANDLE hProcess,DWORD dwAddr);
|
---|
| 784 | #endif
|
---|
| 785 |
|
---|
| 786 | WINBOOL IMAGEAPI SymGetSymNext64(HANDLE hProcess,PIMAGEHLP_SYMBOL64 Symbol);
|
---|
| 787 |
|
---|
| 788 | #ifdef _IMAGEHLP64
|
---|
| 789 | #define SymGetSymNext SymGetSymNext64
|
---|
| 790 | #else
|
---|
| 791 | WINBOOL IMAGEAPI SymGetSymNext(HANDLE hProcess,PIMAGEHLP_SYMBOL Symbol);
|
---|
| 792 | #endif
|
---|
| 793 |
|
---|
| 794 | WINBOOL IMAGEAPI SymGetSymPrev64(HANDLE hProcess,PIMAGEHLP_SYMBOL64 Symbol);
|
---|
| 795 |
|
---|
| 796 | #ifdef _IMAGEHLP64
|
---|
| 797 | #define SymGetSymPrev SymGetSymPrev64
|
---|
| 798 | #else
|
---|
| 799 | WINBOOL IMAGEAPI SymGetSymPrev(HANDLE hProcess,PIMAGEHLP_SYMBOL Symbol);
|
---|
| 800 | #endif
|
---|
| 801 |
|
---|
| 802 | typedef struct _SRCCODEINFO {
|
---|
| 803 | DWORD SizeOfStruct;
|
---|
| 804 | PVOID Key;
|
---|
| 805 | DWORD64 ModBase;
|
---|
| 806 | CHAR Obj[MAX_PATH + 1];
|
---|
| 807 | CHAR FileName[MAX_PATH + 1];
|
---|
| 808 | DWORD LineNumber;
|
---|
| 809 | DWORD64 Address;
|
---|
| 810 | } SRCCODEINFO,*PSRCCODEINFO;
|
---|
| 811 |
|
---|
| 812 | typedef struct _SRCCODEINFOW {
|
---|
| 813 | DWORD SizeOfStruct;
|
---|
| 814 | PVOID Key;
|
---|
| 815 | DWORD64 ModBase;
|
---|
| 816 | WCHAR Obj[MAX_PATH + 1];
|
---|
| 817 | WCHAR FileName[MAX_PATH + 1];
|
---|
| 818 | DWORD LineNumber;
|
---|
| 819 | DWORD64 Address;
|
---|
| 820 | } SRCCODEINFOW,*PSRCCODEINFOW;
|
---|
| 821 |
|
---|
| 822 | typedef WINBOOL (CALLBACK *PSYM_ENUMLINES_CALLBACK)(PSRCCODEINFO LineInfo,PVOID UserContext);
|
---|
| 823 | typedef WINBOOL (CALLBACK *PSYM_ENUMLINES_CALLBACKW)(PSRCCODEINFOW LineInfo,PVOID UserContext);
|
---|
| 824 |
|
---|
| 825 | WINBOOL IMAGEAPI SymEnumLines(HANDLE hProcess,ULONG64 Base,PCSTR Obj,PCSTR File,PSYM_ENUMLINES_CALLBACK EnumLinesCallback,PVOID UserContext);
|
---|
| 826 | WINBOOL IMAGEAPI SymEnumLinesW(HANDLE hProcess,ULONG64 Base,PCWSTR Obj,PCSTR File,PSYM_ENUMLINES_CALLBACKW EnumLinesCallback,PVOID UserContext);
|
---|
| 827 | WINBOOL IMAGEAPI SymGetLineFromAddr64(HANDLE hProcess,DWORD64 qwAddr,PDWORD pdwDisplacement,PIMAGEHLP_LINE64 Line64);
|
---|
| 828 | WINBOOL IMAGEAPI SymGetLineFromAddrW64(HANDLE hProcess,DWORD64 qwAddr,PDWORD pdwDisplacement,PIMAGEHLP_LINEW64 Line64);
|
---|
| 829 |
|
---|
| 830 | #ifdef _IMAGEHLP64
|
---|
| 831 | #define SymGetLineFromAddr SymGetLineFromAddr64
|
---|
| 832 | #else
|
---|
| 833 | WINBOOL IMAGEAPI SymGetLineFromAddr(HANDLE hProcess,DWORD dwAddr,PDWORD pdwDisplacement,PIMAGEHLP_LINE Line);
|
---|
| 834 | #endif
|
---|
| 835 |
|
---|
| 836 | WINBOOL IMAGEAPI SymGetLineFromName64(HANDLE hProcess,PCSTR ModuleName,PCSTR FileName,DWORD dwLineNumber,PLONG plDisplacement,PIMAGEHLP_LINE64 Line);
|
---|
| 837 | WINBOOL IMAGEAPI SymGetLineFromNameW64(HANDLE hProcess,PCWSTR ModuleName,PCWSTR FileName,DWORD dwLineNumber,PLONG plDisplacement,PIMAGEHLP_LINEW64 Line);
|
---|
| 838 |
|
---|
| 839 | #ifdef _IMAGEHLP64
|
---|
| 840 | #define SymGetLineFromName SymGetLineFromName64
|
---|
| 841 | #else
|
---|
| 842 | WINBOOL IMAGEAPI SymGetLineFromName(HANDLE hProcess,PCSTR ModuleName,PCSTR FileName,DWORD dwLineNumber,PLONG plDisplacement,PIMAGEHLP_LINE Line);
|
---|
| 843 | #endif
|
---|
| 844 |
|
---|
| 845 | WINBOOL IMAGEAPI SymGetLineNext64(HANDLE hProcess,PIMAGEHLP_LINE64 Line);
|
---|
| 846 | WINBOOL IMAGEAPI SymGetLineNextW64(HANDLE hProcess,PIMAGEHLP_LINEW64 Line);
|
---|
| 847 |
|
---|
| 848 | #ifdef _IMAGEHLP64
|
---|
| 849 | #define SymGetLineNext SymGetLineNext64
|
---|
| 850 | #else
|
---|
| 851 | WINBOOL IMAGEAPI SymGetLineNext(HANDLE hProcess,PIMAGEHLP_LINE Line);
|
---|
| 852 | #endif
|
---|
| 853 |
|
---|
| 854 | WINBOOL IMAGEAPI SymGetLinePrev64(HANDLE hProcess,PIMAGEHLP_LINE64 Line);
|
---|
| 855 | WINBOOL IMAGEAPI SymGetLinePrevW64(HANDLE hProcess,PIMAGEHLP_LINEW64 Line);
|
---|
| 856 |
|
---|
| 857 | #ifdef _IMAGEHLP64
|
---|
| 858 | #define SymGetLinePrev SymGetLinePrev64
|
---|
| 859 | #else
|
---|
| 860 | WINBOOL IMAGEAPI SymGetLinePrev(HANDLE hProcess,PIMAGEHLP_LINE Line);
|
---|
| 861 | #endif
|
---|
| 862 |
|
---|
| 863 | WINBOOL IMAGEAPI SymMatchFileName(PCSTR FileName,PCSTR Match,PSTR *FileNameStop,PSTR *MatchStop);
|
---|
| 864 | WINBOOL IMAGEAPI SymMatchFileNameW(PCWSTR FileName,PCWSTR Match,PWSTR *FileNameStop,PWSTR *MatchStop);
|
---|
| 865 | WINBOOL IMAGEAPI SymInitialize(HANDLE hProcess,PCSTR UserSearchPath,WINBOOL fInvadeProcess);
|
---|
| 866 | WINBOOL IMAGEAPI SymInitializeW(HANDLE hProcess,PCWSTR UserSearchPath,WINBOOL fInvadeProcess);
|
---|
| 867 | WINBOOL IMAGEAPI SymGetSearchPath(HANDLE hProcess,PSTR SearchPath,DWORD SearchPathLength);
|
---|
| 868 | WINBOOL IMAGEAPI SymGetSearchPathW(HANDLE hProcess,PWSTR SearchPath,DWORD SearchPathLength);
|
---|
| 869 | WINBOOL IMAGEAPI SymSetSearchPath(HANDLE hProcess,PCSTR SearchPath);
|
---|
| 870 | WINBOOL IMAGEAPI SymSetSearchPathW(HANDLE hProcess,PCWSTR SearchPath);
|
---|
| 871 | DWORD64 IMAGEAPI SymLoadModule64(HANDLE hProcess,HANDLE hFile,PCSTR ImageName,PCSTR ModuleName,DWORD64 BaseOfDll,DWORD SizeOfDll);
|
---|
| 872 |
|
---|
| 873 | #define SLMFLAG_VIRTUAL 0x1
|
---|
| 874 |
|
---|
| 875 | DWORD64 IMAGEAPI SymLoadModuleEx(HANDLE hProcess,HANDLE hFile,PCSTR ImageName,PCSTR ModuleName,DWORD64 BaseOfDll,DWORD DllSize,PMODLOAD_DATA Data,DWORD Flags);
|
---|
| 876 | DWORD64 IMAGEAPI SymLoadModuleExW(HANDLE hProcess,HANDLE hFile,PCWSTR ImageName,PCWSTR ModuleName,DWORD64 BaseOfDll,DWORD DllSize,PMODLOAD_DATA Data,DWORD Flags);
|
---|
| 877 |
|
---|
| 878 | #ifdef _IMAGEHLP64
|
---|
| 879 | #define SymLoadModule SymLoadModule64
|
---|
| 880 | #else
|
---|
| 881 | DWORD IMAGEAPI SymLoadModule(HANDLE hProcess,HANDLE hFile,PCSTR ImageName,PCSTR ModuleName,DWORD BaseOfDll,DWORD SizeOfDll);
|
---|
| 882 | #endif
|
---|
| 883 |
|
---|
| 884 | WINBOOL IMAGEAPI SymUnloadModule64(HANDLE hProcess,DWORD64 BaseOfDll);
|
---|
| 885 |
|
---|
| 886 | #ifdef _IMAGEHLP64
|
---|
| 887 | #define SymUnloadModule SymUnloadModule64
|
---|
| 888 | #else
|
---|
| 889 | WINBOOL IMAGEAPI SymUnloadModule(HANDLE hProcess,DWORD BaseOfDll);
|
---|
| 890 | #endif
|
---|
| 891 |
|
---|
| 892 | WINBOOL IMAGEAPI SymUnDName64(PIMAGEHLP_SYMBOL64 sym,PSTR UnDecName,DWORD UnDecNameLength);
|
---|
| 893 |
|
---|
| 894 | #ifdef _IMAGEHLP64
|
---|
| 895 | #define SymUnDName SymUnDName64
|
---|
| 896 | #else
|
---|
| 897 | WINBOOL IMAGEAPI SymUnDName(PIMAGEHLP_SYMBOL sym,PSTR UnDecName,DWORD UnDecNameLength);
|
---|
| 898 | #endif
|
---|
| 899 |
|
---|
| 900 | WINBOOL IMAGEAPI SymRegisterCallback64(HANDLE hProcess,PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction,ULONG64 UserContext);
|
---|
| 901 | WINBOOL IMAGEAPI SymRegisterCallback64W(HANDLE hProcess,PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction,ULONG64 UserContext);
|
---|
| 902 |
|
---|
| 903 | WINBOOL IMAGEAPI SymRegisterFunctionEntryCallback64(HANDLE hProcess,PSYMBOL_FUNCENTRY_CALLBACK64 CallbackFunction,ULONG64 UserContext);
|
---|
| 904 |
|
---|
| 905 | #ifdef _IMAGEHLP64
|
---|
| 906 | #define SymRegisterCallback SymRegisterCallback64
|
---|
| 907 | #define SymRegisterFunctionEntryCallback SymRegisterFunctionEntryCallback64
|
---|
| 908 | #else
|
---|
| 909 | WINBOOL IMAGEAPI SymRegisterCallback(HANDLE hProcess,PSYMBOL_REGISTERED_CALLBACK CallbackFunction,PVOID UserContext);
|
---|
| 910 | WINBOOL IMAGEAPI SymRegisterFunctionEntryCallback(HANDLE hProcess,PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,PVOID UserContext);
|
---|
| 911 | #endif
|
---|
| 912 |
|
---|
| 913 | typedef struct _IMAGEHLP_SYMBOL_SRC {
|
---|
| 914 | DWORD sizeofstruct;
|
---|
| 915 | DWORD type;
|
---|
| 916 | char file[MAX_PATH];
|
---|
| 917 | } IMAGEHLP_SYMBOL_SRC,*PIMAGEHLP_SYMBOL_SRC;
|
---|
| 918 |
|
---|
| 919 | typedef struct _MODULE_TYPE_INFO {
|
---|
| 920 | USHORT dataLength;
|
---|
| 921 | USHORT leaf;
|
---|
| 922 | BYTE data[1];
|
---|
| 923 | } MODULE_TYPE_INFO,*PMODULE_TYPE_INFO;
|
---|
| 924 |
|
---|
| 925 | typedef struct _SYMBOL_INFO {
|
---|
| 926 | ULONG SizeOfStruct;
|
---|
| 927 | ULONG TypeIndex;
|
---|
| 928 | ULONG64 Reserved[2];
|
---|
| 929 | ULONG info;
|
---|
| 930 | ULONG Size;
|
---|
| 931 | ULONG64 ModBase;
|
---|
| 932 | ULONG Flags;
|
---|
| 933 | ULONG64 Value;
|
---|
| 934 | ULONG64 Address;
|
---|
| 935 | ULONG Register;
|
---|
| 936 | ULONG Scope;
|
---|
| 937 | ULONG Tag;
|
---|
| 938 | ULONG NameLen;
|
---|
| 939 | ULONG MaxNameLen;
|
---|
| 940 | CHAR Name[1];
|
---|
| 941 | } SYMBOL_INFO,*PSYMBOL_INFO;
|
---|
| 942 |
|
---|
| 943 | typedef struct _SYMBOL_INFOW {
|
---|
| 944 | ULONG SizeOfStruct;
|
---|
| 945 | ULONG TypeIndex;
|
---|
| 946 | ULONG64 Reserved[2];
|
---|
| 947 | ULONG info;
|
---|
| 948 | ULONG Size;
|
---|
| 949 | ULONG64 ModBase;
|
---|
| 950 | ULONG Flags;
|
---|
| 951 | ULONG64 Value;
|
---|
| 952 | ULONG64 Address;
|
---|
| 953 | ULONG Register;
|
---|
| 954 | ULONG Scope;
|
---|
| 955 | ULONG Tag;
|
---|
| 956 | ULONG NameLen;
|
---|
| 957 | ULONG MaxNameLen;
|
---|
| 958 | WCHAR Name[1];
|
---|
| 959 | } SYMBOL_INFOW,*PSYMBOL_INFOW;
|
---|
| 960 |
|
---|
| 961 | #define SYMFLAG_CLR_TOKEN 0x00040000
|
---|
| 962 | #define SYMFLAG_CONSTANT 0x00000100
|
---|
| 963 | #define SYMFLAG_EXPORT 0x00000200
|
---|
| 964 | #define SYMFLAG_FORWARDER 0x00000400
|
---|
| 965 | #define SYMFLAG_FRAMEREL 0x00000020
|
---|
| 966 | #define SYMFLAG_FUNCTION 0x00000800
|
---|
| 967 | #define SYMFLAG_ILREL 0x00010000
|
---|
| 968 | #define SYMFLAG_LOCAL 0x00000080
|
---|
| 969 | #define SYMFLAG_METADATA 0x00020000
|
---|
| 970 | #define SYMFLAG_PARAMETER 0x00000040
|
---|
| 971 | #define SYMFLAG_REGISTER 0x00000008
|
---|
| 972 | #define SYMFLAG_REGREL 0x00000010
|
---|
| 973 | #define SYMFLAG_SLOT 0x00008000
|
---|
| 974 | #define SYMFLAG_THUNK 0x00002000
|
---|
| 975 | #define SYMFLAG_TLSREL 0x00004000
|
---|
| 976 | #define SYMFLAG_VALUEPRESENT 0x00000001
|
---|
| 977 | #define SYMFLAG_VIRTUAL 0x00001000
|
---|
| 978 |
|
---|
| 979 | typedef struct _SYMBOL_INFO_PACKAGE {
|
---|
| 980 | SYMBOL_INFO si;
|
---|
| 981 | CHAR name[MAX_SYM_NAME + 1];
|
---|
| 982 | } SYMBOL_INFO_PACKAGE,*PSYMBOL_INFO_PACKAGE;
|
---|
| 983 |
|
---|
| 984 | typedef struct _IMAGEHLP_STACK_FRAME {
|
---|
| 985 | ULONG64 InstructionOffset;
|
---|
| 986 | ULONG64 ReturnOffset;
|
---|
| 987 | ULONG64 FrameOffset;
|
---|
| 988 | ULONG64 StackOffset;
|
---|
| 989 | ULONG64 BackingStoreOffset;
|
---|
| 990 | ULONG64 FuncTableEntry;
|
---|
| 991 | ULONG64 Params[4];
|
---|
| 992 | ULONG64 Reserved[5];
|
---|
| 993 | WINBOOL Virtual;
|
---|
| 994 | ULONG Reserved2;
|
---|
| 995 | } IMAGEHLP_STACK_FRAME,*PIMAGEHLP_STACK_FRAME;
|
---|
| 996 |
|
---|
| 997 | typedef VOID IMAGEHLP_CONTEXT,*PIMAGEHLP_CONTEXT;
|
---|
| 998 |
|
---|
| 999 | WINBOOL IMAGEAPI SymSetContext(HANDLE hProcess,PIMAGEHLP_STACK_FRAME StackFrame,PIMAGEHLP_CONTEXT Context);
|
---|
| 1000 | WINBOOL IMAGEAPI SymFromAddr(HANDLE hProcess,DWORD64 Address,PDWORD64 Displacement,PSYMBOL_INFO Symbol);
|
---|
| 1001 | WINBOOL IMAGEAPI SymFromAddrW(HANDLE hProcess,DWORD64 Address,PDWORD64 Displacement,PSYMBOL_INFOW Symbol);
|
---|
| 1002 | WINBOOL IMAGEAPI SymFromToken(HANDLE hProcess,DWORD64 Base,DWORD Token,PSYMBOL_INFO Symbol);
|
---|
| 1003 | WINBOOL IMAGEAPI SymFromTokenW(HANDLE hProcess,DWORD64 Base,DWORD Token,PSYMBOL_INFOW Symbol);
|
---|
| 1004 | WINBOOL IMAGEAPI SymFromName(HANDLE hProcess,PCSTR Name,PSYMBOL_INFO Symbol);
|
---|
| 1005 | WINBOOL IMAGEAPI SymFromNameW(HANDLE hProcess,PCWSTR Name,PSYMBOL_INFOW Symbol);
|
---|
| 1006 |
|
---|
| 1007 | typedef WINBOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO pSymInfo,ULONG SymbolSize,PVOID UserContext);
|
---|
| 1008 | typedef WINBOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(PSYMBOL_INFOW pSymInfo,ULONG SymbolSize,PVOID UserContext);
|
---|
| 1009 |
|
---|
| 1010 | WINBOOL IMAGEAPI SymEnumSymbols(HANDLE hProcess,ULONG64 BaseOfDll,PCSTR Mask,PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1011 | WINBOOL IMAGEAPI SymEnumSymbolsW(HANDLE hProcess,ULONG64 BaseOfDll,PCWSTR Mask,PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1012 | WINBOOL IMAGEAPI SymEnumSymbolsForAddr(HANDLE hProcess,DWORD64 Address,PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1013 | WINBOOL IMAGEAPI SymEnumSymbolsForAddrW(HANDLE hProcess,DWORD64 Address,PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1014 |
|
---|
| 1015 | #define SYMENUMFLAG_FULLSRCH 1
|
---|
| 1016 | #define SYMENUMFLAG_SPEEDSRCH 2
|
---|
| 1017 |
|
---|
| 1018 | typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO {
|
---|
| 1019 | TI_GET_SYMTAG,
|
---|
| 1020 | TI_GET_SYMNAME,
|
---|
| 1021 | TI_GET_LENGTH,
|
---|
| 1022 | TI_GET_TYPE,
|
---|
| 1023 | TI_GET_TYPEID,
|
---|
| 1024 | TI_GET_BASETYPE,
|
---|
| 1025 | TI_GET_ARRAYINDEXTYPEID,
|
---|
| 1026 | TI_FINDCHILDREN,
|
---|
| 1027 | TI_GET_DATAKIND,
|
---|
| 1028 | TI_GET_ADDRESSOFFSET,
|
---|
| 1029 | TI_GET_OFFSET,
|
---|
| 1030 | TI_GET_VALUE,
|
---|
| 1031 | TI_GET_COUNT,
|
---|
| 1032 | TI_GET_CHILDRENCOUNT,
|
---|
| 1033 | TI_GET_BITPOSITION,
|
---|
| 1034 | TI_GET_VIRTUALBASECLASS,
|
---|
| 1035 | TI_GET_VIRTUALTABLESHAPEID,
|
---|
| 1036 | TI_GET_VIRTUALBASEPOINTEROFFSET,
|
---|
| 1037 | TI_GET_CLASSPARENTID,
|
---|
| 1038 | TI_GET_NESTED,
|
---|
| 1039 | TI_GET_SYMINDEX,
|
---|
| 1040 | TI_GET_LEXICALPARENT,
|
---|
| 1041 | TI_GET_ADDRESS,
|
---|
| 1042 | TI_GET_THISADJUST,
|
---|
| 1043 | TI_GET_UDTKIND,
|
---|
| 1044 | TI_IS_EQUIV_TO,
|
---|
| 1045 | TI_GET_CALLING_CONVENTION
|
---|
| 1046 | } IMAGEHLP_SYMBOL_TYPE_INFO;
|
---|
| 1047 |
|
---|
| 1048 | typedef struct _TI_FINDCHILDREN_PARAMS {
|
---|
| 1049 | ULONG Count;
|
---|
| 1050 | ULONG Start;
|
---|
| 1051 | ULONG ChildId[1];
|
---|
| 1052 | } TI_FINDCHILDREN_PARAMS;
|
---|
| 1053 |
|
---|
| 1054 | WINBOOL IMAGEAPI SymGetTypeInfo(HANDLE hProcess,DWORD64 ModBase,ULONG TypeId,IMAGEHLP_SYMBOL_TYPE_INFO GetType,PVOID pInfo);
|
---|
| 1055 | WINBOOL IMAGEAPI SymEnumTypes(HANDLE hProcess,ULONG64 BaseOfDll,PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1056 | WINBOOL IMAGEAPI SymEnumTypesW(HANDLE hProcess,ULONG64 BaseOfDll,PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1057 | WINBOOL IMAGEAPI SymGetTypeFromName(HANDLE hProcess,ULONG64 BaseOfDll,PCSTR Name,PSYMBOL_INFO Symbol);
|
---|
| 1058 | WINBOOL IMAGEAPI SymGetTypeFromNameW(HANDLE hProcess,ULONG64 BaseOfDll,PCWSTR Name,PSYMBOL_INFOW Symbol);
|
---|
| 1059 | WINBOOL IMAGEAPI SymAddSymbol(HANDLE hProcess,ULONG64 BaseOfDll,PCSTR Name,DWORD64 Address,DWORD Size,DWORD Flags);
|
---|
| 1060 | WINBOOL IMAGEAPI SymAddSymbolW(HANDLE hProcess,ULONG64 BaseOfDll,PCWSTR Name,DWORD64 Address,DWORD Size,DWORD Flags);
|
---|
| 1061 | WINBOOL IMAGEAPI SymDeleteSymbol(HANDLE hProcess,ULONG64 BaseOfDll,PCSTR Name,DWORD64 Address,DWORD Flags);
|
---|
| 1062 | WINBOOL IMAGEAPI SymDeleteSymbolW(HANDLE hProcess,ULONG64 BaseOfDll,PCWSTR Name,DWORD64 Address,DWORD Flags);
|
---|
| 1063 |
|
---|
| 1064 | typedef WINBOOL (WINAPI *PDBGHELP_CREATE_USER_DUMP_CALLBACK)(DWORD DataType,PVOID *Data,LPDWORD DataLength,PVOID UserData);
|
---|
| 1065 |
|
---|
| 1066 | WINBOOL WINAPI DbgHelpCreateUserDump(LPCSTR FileName,PDBGHELP_CREATE_USER_DUMP_CALLBACK Callback,PVOID UserData);
|
---|
| 1067 | WINBOOL WINAPI DbgHelpCreateUserDumpW(LPCWSTR FileName,PDBGHELP_CREATE_USER_DUMP_CALLBACK Callback,PVOID UserData);
|
---|
| 1068 | WINBOOL IMAGEAPI SymGetSymFromAddr64(HANDLE hProcess,DWORD64 qwAddr,PDWORD64 pdwDisplacement,PIMAGEHLP_SYMBOL64 Symbol);
|
---|
| 1069 |
|
---|
| 1070 | #ifdef _IMAGEHLP64
|
---|
| 1071 | #define SymGetSymFromAddr SymGetSymFromAddr64
|
---|
| 1072 | #else
|
---|
| 1073 | WINBOOL IMAGEAPI SymGetSymFromAddr(HANDLE hProcess,DWORD dwAddr,PDWORD pdwDisplacement,PIMAGEHLP_SYMBOL Symbol);
|
---|
| 1074 | #endif
|
---|
| 1075 |
|
---|
| 1076 | WINBOOL IMAGEAPI SymGetSymFromName64(HANDLE hProcess,PCSTR Name,PIMAGEHLP_SYMBOL64 Symbol);
|
---|
| 1077 |
|
---|
| 1078 | #ifdef _IMAGEHLP64
|
---|
| 1079 | #define SymGetSymFromName SymGetSymFromName64
|
---|
| 1080 | #else
|
---|
| 1081 | WINBOOL IMAGEAPI SymGetSymFromName(HANDLE hProcess,PCSTR Name,PIMAGEHLP_SYMBOL Symbol);
|
---|
| 1082 | #endif
|
---|
| 1083 |
|
---|
| 1084 | DBHLP_DEPRECIATED WINBOOL IMAGEAPI FindFileInPath(HANDLE hprocess,PCSTR SearchPath,PCSTR FileName,PVOID id,DWORD two,DWORD three,DWORD flags,PSTR FilePath);
|
---|
| 1085 | DBHLP_DEPRECIATED WINBOOL IMAGEAPI FindFileInSearchPath(HANDLE hprocess,PCSTR SearchPath,PCSTR FileName,DWORD one,DWORD two,DWORD three,PSTR FilePath);
|
---|
| 1086 | DBHLP_DEPRECIATED WINBOOL IMAGEAPI SymEnumSym(HANDLE hProcess,ULONG64 BaseOfDll,PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,PVOID UserContext);
|
---|
| 1087 |
|
---|
| 1088 | #ifdef __cplusplus
|
---|
| 1089 | }
|
---|
| 1090 | #endif
|
---|
| 1091 |
|
---|
| 1092 | #define SYMF_OMAP_GENERATED 0x00000001
|
---|
| 1093 | #define SYMF_OMAP_MODIFIED 0x00000002
|
---|
| 1094 | #define SYMF_REGISTER 0x00000008
|
---|
| 1095 | #define SYMF_REGREL 0x00000010
|
---|
| 1096 | #define SYMF_FRAMEREL 0x00000020
|
---|
| 1097 | #define SYMF_PARAMETER 0x00000040
|
---|
| 1098 | #define SYMF_LOCAL 0x00000080
|
---|
| 1099 | #define SYMF_CONSTANT 0x00000100
|
---|
| 1100 | #define SYMF_EXPORT 0x00000200
|
---|
| 1101 | #define SYMF_FORWARDER 0x00000400
|
---|
| 1102 | #define SYMF_FUNCTION 0x00000800
|
---|
| 1103 | #define SYMF_VIRTUAL 0x00001000
|
---|
| 1104 | #define SYMF_THUNK 0x00002000
|
---|
| 1105 | #define SYMF_TLSREL 0x00004000
|
---|
| 1106 |
|
---|
| 1107 | #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
|
---|
| 1108 | #define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
|
---|
| 1109 | #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
|
---|
| 1110 | #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL
|
---|
| 1111 | #define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER
|
---|
| 1112 | #define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL
|
---|
| 1113 | #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT
|
---|
| 1114 | #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION
|
---|
| 1115 | #define IMAGEHLP_SYMBOL_VIRTUAL SYMF_VIRTUAL
|
---|
| 1116 | #define IMAGEHLP_SYMBOL_THUNK SYMF_THUNK
|
---|
| 1117 | #define IMAGEHLP_SYMBOL_INFO_TLSRELATIVE SYMF_TLSREL
|
---|
| 1118 |
|
---|
| 1119 | #include <pshpack4.h>
|
---|
| 1120 |
|
---|
| 1121 | #define MINIDUMP_SIGNATURE ('PMDM')
|
---|
| 1122 | #define MINIDUMP_VERSION (42899)
|
---|
| 1123 | typedef DWORD RVA;
|
---|
| 1124 | typedef ULONG64 RVA64;
|
---|
| 1125 |
|
---|
| 1126 | typedef struct _MINIDUMP_LOCATION_DESCRIPTOR {
|
---|
| 1127 | ULONG32 DataSize;
|
---|
| 1128 | RVA Rva;
|
---|
| 1129 | } MINIDUMP_LOCATION_DESCRIPTOR;
|
---|
| 1130 |
|
---|
| 1131 | typedef struct _MINIDUMP_LOCATION_DESCRIPTOR64 {
|
---|
| 1132 | ULONG64 DataSize;
|
---|
| 1133 | RVA64 Rva;
|
---|
| 1134 | } MINIDUMP_LOCATION_DESCRIPTOR64;
|
---|
| 1135 |
|
---|
| 1136 | typedef struct _MINIDUMP_MEMORY_DESCRIPTOR {
|
---|
| 1137 | ULONG64 StartOfMemoryRange;
|
---|
| 1138 | MINIDUMP_LOCATION_DESCRIPTOR Memory;
|
---|
| 1139 | } MINIDUMP_MEMORY_DESCRIPTOR,*PMINIDUMP_MEMORY_DESCRIPTOR;
|
---|
| 1140 |
|
---|
| 1141 | typedef struct _MINIDUMP_MEMORY_DESCRIPTOR64 {
|
---|
| 1142 | ULONG64 StartOfMemoryRange;
|
---|
| 1143 | ULONG64 DataSize;
|
---|
| 1144 | } MINIDUMP_MEMORY_DESCRIPTOR64,*PMINIDUMP_MEMORY_DESCRIPTOR64;
|
---|
| 1145 |
|
---|
| 1146 | typedef struct _MINIDUMP_HEADER {
|
---|
| 1147 | ULONG32 Signature;
|
---|
| 1148 | ULONG32 Version;
|
---|
| 1149 | ULONG32 NumberOfStreams;
|
---|
| 1150 | RVA StreamDirectoryRva;
|
---|
| 1151 | ULONG32 CheckSum;
|
---|
| 1152 | __C89_NAMELESS union {
|
---|
| 1153 | ULONG32 Reserved;
|
---|
| 1154 | ULONG32 TimeDateStamp;
|
---|
| 1155 | };
|
---|
| 1156 | ULONG64 Flags;
|
---|
| 1157 | } MINIDUMP_HEADER,*PMINIDUMP_HEADER;
|
---|
| 1158 |
|
---|
| 1159 | typedef struct _MINIDUMP_DIRECTORY {
|
---|
| 1160 | ULONG32 StreamType;
|
---|
| 1161 | MINIDUMP_LOCATION_DESCRIPTOR Location;
|
---|
| 1162 | } MINIDUMP_DIRECTORY,*PMINIDUMP_DIRECTORY;
|
---|
| 1163 |
|
---|
| 1164 | typedef struct _MINIDUMP_STRING {
|
---|
| 1165 | ULONG32 Length;
|
---|
| 1166 | WCHAR Buffer[0];
|
---|
| 1167 | } MINIDUMP_STRING,*PMINIDUMP_STRING;
|
---|
| 1168 |
|
---|
| 1169 | typedef enum _MINIDUMP_STREAM_TYPE {
|
---|
| 1170 | UnusedStream = 0,
|
---|
| 1171 | ReservedStream0 = 1,
|
---|
| 1172 | ReservedStream1 = 2,
|
---|
| 1173 | ThreadListStream = 3,
|
---|
| 1174 | ModuleListStream = 4,
|
---|
| 1175 | MemoryListStream = 5,
|
---|
| 1176 | ExceptionStream = 6,
|
---|
| 1177 | SystemInfoStream = 7,
|
---|
| 1178 | ThreadExListStream = 8,
|
---|
| 1179 | Memory64ListStream = 9,
|
---|
| 1180 | CommentStreamA = 10,
|
---|
| 1181 | CommentStreamW = 11,
|
---|
| 1182 | HandleDataStream = 12,
|
---|
| 1183 | FunctionTableStream = 13,
|
---|
| 1184 | UnloadedModuleListStream = 14,
|
---|
| 1185 | MiscInfoStream = 15,
|
---|
| 1186 | MemoryInfoListStream = 16,
|
---|
| 1187 | ThreadInfoListStream = 17,
|
---|
| 1188 | HandleOperationListStream = 18,
|
---|
| 1189 | TokenStream = 19,
|
---|
| 1190 | JavaScriptDataStream = 20,
|
---|
| 1191 | SystemMemoryInfoStream = 21,
|
---|
| 1192 | ProcessVmCountersStream = 22,
|
---|
| 1193 | IptTraceStream = 23,
|
---|
| 1194 | ThreadNamesStream = 24,
|
---|
| 1195 | ceStreamNull = 0x8000,
|
---|
| 1196 | ceStreamSystemInfo = 0x8001,
|
---|
| 1197 | ceStreamException = 0x8002,
|
---|
| 1198 | ceStreamModuleList = 0x8003,
|
---|
| 1199 | ceStreamProcessList = 0x8004,
|
---|
| 1200 | ceStreamThreadList = 0x8005,
|
---|
| 1201 | ceStreamThreadContextList = 0x8006,
|
---|
| 1202 | ceStreamThreadCallStackList = 0x8007,
|
---|
| 1203 | ceStreamMemoryVirtualList = 0x8008,
|
---|
| 1204 | ceStreamMemoryPhysicalList = 0x8009,
|
---|
| 1205 | ceStreamBucketParameters = 0x800a,
|
---|
| 1206 | ceStreamProcessModuleMap = 0x800b,
|
---|
| 1207 | ceStreamDiagnosisList = 0x800c,
|
---|
| 1208 | LastReservedStream = 0xffff
|
---|
| 1209 | } MINIDUMP_STREAM_TYPE;
|
---|
| 1210 |
|
---|
| 1211 | typedef union _CPU_INFORMATION {
|
---|
| 1212 | struct {
|
---|
| 1213 | ULONG32 VendorId[3];
|
---|
| 1214 | ULONG32 VersionInformation;
|
---|
| 1215 | ULONG32 FeatureInformation;
|
---|
| 1216 | ULONG32 AMDExtendedCpuFeatures;
|
---|
| 1217 | } X86CpuInfo;
|
---|
| 1218 | struct {
|
---|
| 1219 | ULONG64 ProcessorFeatures[2];
|
---|
| 1220 | } OtherCpuInfo;
|
---|
| 1221 | } CPU_INFORMATION,*PCPU_INFORMATION;
|
---|
| 1222 |
|
---|
| 1223 | typedef struct _MINIDUMP_SYSTEM_INFO {
|
---|
| 1224 | USHORT ProcessorArchitecture;
|
---|
| 1225 | USHORT ProcessorLevel;
|
---|
| 1226 | USHORT ProcessorRevision;
|
---|
| 1227 | __C89_NAMELESS union {
|
---|
| 1228 | USHORT Reserved0;
|
---|
| 1229 | __C89_NAMELESS struct {
|
---|
| 1230 | UCHAR NumberOfProcessors;
|
---|
| 1231 | UCHAR ProductType;
|
---|
| 1232 | };
|
---|
| 1233 | };
|
---|
| 1234 | ULONG32 MajorVersion;
|
---|
| 1235 | ULONG32 MinorVersion;
|
---|
| 1236 | ULONG32 BuildNumber;
|
---|
| 1237 | ULONG32 PlatformId;
|
---|
| 1238 | RVA CSDVersionRva;
|
---|
| 1239 | __C89_NAMELESS union {
|
---|
| 1240 | ULONG32 Reserved1;
|
---|
| 1241 | __C89_NAMELESS struct {
|
---|
| 1242 | USHORT SuiteMask;
|
---|
| 1243 | USHORT Reserved2;
|
---|
| 1244 | };
|
---|
| 1245 | };
|
---|
| 1246 | CPU_INFORMATION Cpu;
|
---|
| 1247 | } MINIDUMP_SYSTEM_INFO,*PMINIDUMP_SYSTEM_INFO;
|
---|
| 1248 |
|
---|
| 1249 | C_ASSERT(sizeof(((PPROCESS_INFORMATION)0)->dwThreadId)==4);
|
---|
| 1250 |
|
---|
| 1251 | typedef struct _MINIDUMP_THREAD {
|
---|
| 1252 | ULONG32 ThreadId;
|
---|
| 1253 | ULONG32 SuspendCount;
|
---|
| 1254 | ULONG32 PriorityClass;
|
---|
| 1255 | ULONG32 Priority;
|
---|
| 1256 | ULONG64 Teb;
|
---|
| 1257 | MINIDUMP_MEMORY_DESCRIPTOR Stack;
|
---|
| 1258 | MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
|
---|
| 1259 | } MINIDUMP_THREAD,*PMINIDUMP_THREAD;
|
---|
| 1260 |
|
---|
| 1261 | typedef struct _MINIDUMP_THREAD_LIST {
|
---|
| 1262 | ULONG32 NumberOfThreads;
|
---|
| 1263 | MINIDUMP_THREAD Threads[0];
|
---|
| 1264 | } MINIDUMP_THREAD_LIST,*PMINIDUMP_THREAD_LIST;
|
---|
| 1265 |
|
---|
| 1266 | typedef struct _MINIDUMP_THREAD_EX {
|
---|
| 1267 | ULONG32 ThreadId;
|
---|
| 1268 | ULONG32 SuspendCount;
|
---|
| 1269 | ULONG32 PriorityClass;
|
---|
| 1270 | ULONG32 Priority;
|
---|
| 1271 | ULONG64 Teb;
|
---|
| 1272 | MINIDUMP_MEMORY_DESCRIPTOR Stack;
|
---|
| 1273 | MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
|
---|
| 1274 | MINIDUMP_MEMORY_DESCRIPTOR BackingStore;
|
---|
| 1275 | } MINIDUMP_THREAD_EX,*PMINIDUMP_THREAD_EX;
|
---|
| 1276 |
|
---|
| 1277 | typedef struct _MINIDUMP_THREAD_EX_LIST {
|
---|
| 1278 | ULONG32 NumberOfThreads;
|
---|
| 1279 | MINIDUMP_THREAD_EX Threads[0];
|
---|
| 1280 | } MINIDUMP_THREAD_EX_LIST,*PMINIDUMP_THREAD_EX_LIST;
|
---|
| 1281 |
|
---|
| 1282 | typedef struct _MINIDUMP_EXCEPTION {
|
---|
| 1283 | ULONG32 ExceptionCode;
|
---|
| 1284 | ULONG32 ExceptionFlags;
|
---|
| 1285 | ULONG64 ExceptionRecord;
|
---|
| 1286 | ULONG64 ExceptionAddress;
|
---|
| 1287 | ULONG32 NumberParameters;
|
---|
| 1288 | ULONG32 __unusedAlignment;
|
---|
| 1289 | ULONG64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
|
---|
| 1290 | } MINIDUMP_EXCEPTION,*PMINIDUMP_EXCEPTION;
|
---|
| 1291 |
|
---|
| 1292 | typedef struct MINIDUMP_EXCEPTION_STREAM {
|
---|
| 1293 | ULONG32 ThreadId;
|
---|
| 1294 | ULONG32 __alignment;
|
---|
| 1295 | MINIDUMP_EXCEPTION ExceptionRecord;
|
---|
| 1296 | MINIDUMP_LOCATION_DESCRIPTOR ThreadContext;
|
---|
| 1297 | } MINIDUMP_EXCEPTION_STREAM,*PMINIDUMP_EXCEPTION_STREAM;
|
---|
| 1298 |
|
---|
| 1299 | typedef struct _MINIDUMP_MODULE {
|
---|
| 1300 | ULONG64 BaseOfImage;
|
---|
| 1301 | ULONG32 SizeOfImage;
|
---|
| 1302 | ULONG32 CheckSum;
|
---|
| 1303 | ULONG32 TimeDateStamp;
|
---|
| 1304 | RVA ModuleNameRva;
|
---|
| 1305 | VS_FIXEDFILEINFO VersionInfo;
|
---|
| 1306 | MINIDUMP_LOCATION_DESCRIPTOR CvRecord;
|
---|
| 1307 | MINIDUMP_LOCATION_DESCRIPTOR MiscRecord;
|
---|
| 1308 | ULONG64 Reserved0;
|
---|
| 1309 | ULONG64 Reserved1;
|
---|
| 1310 | } MINIDUMP_MODULE,*PMINIDUMP_MODULE;
|
---|
| 1311 |
|
---|
| 1312 | typedef struct _MINIDUMP_MODULE_LIST {
|
---|
| 1313 | ULONG32 NumberOfModules;
|
---|
| 1314 | MINIDUMP_MODULE Modules[0];
|
---|
| 1315 | } MINIDUMP_MODULE_LIST,*PMINIDUMP_MODULE_LIST;
|
---|
| 1316 |
|
---|
| 1317 | typedef struct _MINIDUMP_MEMORY_LIST {
|
---|
| 1318 | ULONG32 NumberOfMemoryRanges;
|
---|
| 1319 | MINIDUMP_MEMORY_DESCRIPTOR MemoryRanges[0];
|
---|
| 1320 | } MINIDUMP_MEMORY_LIST,*PMINIDUMP_MEMORY_LIST;
|
---|
| 1321 |
|
---|
| 1322 | typedef struct _MINIDUMP_MEMORY64_LIST {
|
---|
| 1323 | ULONG64 NumberOfMemoryRanges;
|
---|
| 1324 | RVA64 BaseRva;
|
---|
| 1325 | MINIDUMP_MEMORY_DESCRIPTOR64 MemoryRanges[0];
|
---|
| 1326 | } MINIDUMP_MEMORY64_LIST,*PMINIDUMP_MEMORY64_LIST;
|
---|
| 1327 |
|
---|
| 1328 | typedef struct _MINIDUMP_EXCEPTION_INFORMATION {
|
---|
| 1329 | DWORD ThreadId;
|
---|
| 1330 | PEXCEPTION_POINTERS ExceptionPointers;
|
---|
| 1331 | WINBOOL ClientPointers;
|
---|
| 1332 | } MINIDUMP_EXCEPTION_INFORMATION,*PMINIDUMP_EXCEPTION_INFORMATION;
|
---|
| 1333 |
|
---|
| 1334 | typedef struct _MINIDUMP_EXCEPTION_INFORMATION64 {
|
---|
| 1335 | DWORD ThreadId;
|
---|
| 1336 | ULONG64 ExceptionRecord;
|
---|
| 1337 | ULONG64 ContextRecord;
|
---|
| 1338 | WINBOOL ClientPointers;
|
---|
| 1339 | } MINIDUMP_EXCEPTION_INFORMATION64,*PMINIDUMP_EXCEPTION_INFORMATION64;
|
---|
| 1340 |
|
---|
| 1341 | typedef enum _MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE {
|
---|
| 1342 | MiniHandleObjectInformationNone,
|
---|
| 1343 | MiniThreadInformation1,
|
---|
| 1344 | MiniMutantInformation1,
|
---|
| 1345 | MiniMutantInformation2,
|
---|
| 1346 | MiniProcessInformation1,
|
---|
| 1347 | MiniProcessInformation2,
|
---|
| 1348 | MiniEventInformation1,
|
---|
| 1349 | MiniSectionInformation1,
|
---|
| 1350 | MiniSemaphoreInformation1,
|
---|
| 1351 | MiniHandleObjectInformationTypeMax
|
---|
| 1352 | } MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE;
|
---|
| 1353 |
|
---|
| 1354 | typedef struct _MINIDUMP_HANDLE_OBJECT_INFORMATION {
|
---|
| 1355 | RVA NextInfoRva;
|
---|
| 1356 | ULONG32 InfoType;
|
---|
| 1357 | ULONG32 SizeOfInfo;
|
---|
| 1358 | } MINIDUMP_HANDLE_OBJECT_INFORMATION;
|
---|
| 1359 |
|
---|
| 1360 | typedef struct _MINIDUMP_HANDLE_DESCRIPTOR {
|
---|
| 1361 | ULONG64 Handle;
|
---|
| 1362 | RVA TypeNameRva;
|
---|
| 1363 | RVA ObjectNameRva;
|
---|
| 1364 | ULONG32 Attributes;
|
---|
| 1365 | ULONG32 GrantedAccess;
|
---|
| 1366 | ULONG32 HandleCount;
|
---|
| 1367 | ULONG32 PointerCount;
|
---|
| 1368 | } MINIDUMP_HANDLE_DESCRIPTOR,*PMINIDUMP_HANDLE_DESCRIPTOR;
|
---|
| 1369 |
|
---|
| 1370 | typedef struct _MINIDUMP_HANDLE_DATA_STREAM {
|
---|
| 1371 | ULONG32 SizeOfHeader;
|
---|
| 1372 | ULONG32 SizeOfDescriptor;
|
---|
| 1373 | ULONG32 NumberOfDescriptors;
|
---|
| 1374 | ULONG32 Reserved;
|
---|
| 1375 | } MINIDUMP_HANDLE_DATA_STREAM,*PMINIDUMP_HANDLE_DATA_STREAM;
|
---|
| 1376 |
|
---|
| 1377 | typedef struct _MINIDUMP_FUNCTION_TABLE_DESCRIPTOR {
|
---|
| 1378 | ULONG64 MinimumAddress;
|
---|
| 1379 | ULONG64 MaximumAddress;
|
---|
| 1380 | ULONG64 BaseAddress;
|
---|
| 1381 | ULONG32 EntryCount;
|
---|
| 1382 | ULONG32 SizeOfAlignPad;
|
---|
| 1383 | } MINIDUMP_FUNCTION_TABLE_DESCRIPTOR,*PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
|
---|
| 1384 |
|
---|
| 1385 | typedef struct _MINIDUMP_FUNCTION_TABLE_STREAM {
|
---|
| 1386 | ULONG32 SizeOfHeader;
|
---|
| 1387 | ULONG32 SizeOfDescriptor;
|
---|
| 1388 | ULONG32 SizeOfNativeDescriptor;
|
---|
| 1389 | ULONG32 SizeOfFunctionEntry;
|
---|
| 1390 | ULONG32 NumberOfDescriptors;
|
---|
| 1391 | ULONG32 SizeOfAlignPad;
|
---|
| 1392 | } MINIDUMP_FUNCTION_TABLE_STREAM,*PMINIDUMP_FUNCTION_TABLE_STREAM;
|
---|
| 1393 |
|
---|
| 1394 | typedef struct _MINIDUMP_UNLOADED_MODULE {
|
---|
| 1395 | ULONG64 BaseOfImage;
|
---|
| 1396 | ULONG32 SizeOfImage;
|
---|
| 1397 | ULONG32 CheckSum;
|
---|
| 1398 | ULONG32 TimeDateStamp;
|
---|
| 1399 | RVA ModuleNameRva;
|
---|
| 1400 | } MINIDUMP_UNLOADED_MODULE,*PMINIDUMP_UNLOADED_MODULE;
|
---|
| 1401 |
|
---|
| 1402 | typedef struct _MINIDUMP_UNLOADED_MODULE_LIST {
|
---|
| 1403 | ULONG32 SizeOfHeader;
|
---|
| 1404 | ULONG32 SizeOfEntry;
|
---|
| 1405 | ULONG32 NumberOfEntries;
|
---|
| 1406 | } MINIDUMP_UNLOADED_MODULE_LIST,*PMINIDUMP_UNLOADED_MODULE_LIST;
|
---|
| 1407 |
|
---|
| 1408 | #define MINIDUMP_MISC1_PROCESS_ID 0x00000001
|
---|
| 1409 | #define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
|
---|
| 1410 | #define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004
|
---|
| 1411 |
|
---|
| 1412 | typedef struct _MINIDUMP_MISC_INFO {
|
---|
| 1413 | ULONG32 SizeOfInfo;
|
---|
| 1414 | ULONG32 Flags1;
|
---|
| 1415 | ULONG32 ProcessId;
|
---|
| 1416 | ULONG32 ProcessCreateTime;
|
---|
| 1417 | ULONG32 ProcessUserTime;
|
---|
| 1418 | ULONG32 ProcessKernelTime;
|
---|
| 1419 | } MINIDUMP_MISC_INFO,*PMINIDUMP_MISC_INFO;
|
---|
| 1420 |
|
---|
| 1421 | typedef struct _MINIDUMP_USER_RECORD {
|
---|
| 1422 | ULONG32 Type;
|
---|
| 1423 | MINIDUMP_LOCATION_DESCRIPTOR Memory;
|
---|
| 1424 | } MINIDUMP_USER_RECORD,*PMINIDUMP_USER_RECORD;
|
---|
| 1425 |
|
---|
| 1426 | typedef struct _MINIDUMP_USER_STREAM {
|
---|
| 1427 | ULONG32 Type;
|
---|
| 1428 | ULONG BufferSize;
|
---|
| 1429 | PVOID Buffer;
|
---|
| 1430 | } MINIDUMP_USER_STREAM,*PMINIDUMP_USER_STREAM;
|
---|
| 1431 |
|
---|
| 1432 | typedef struct _MINIDUMP_USER_STREAM_INFORMATION {
|
---|
| 1433 | ULONG UserStreamCount;
|
---|
| 1434 | PMINIDUMP_USER_STREAM UserStreamArray;
|
---|
| 1435 | } MINIDUMP_USER_STREAM_INFORMATION,*PMINIDUMP_USER_STREAM_INFORMATION;
|
---|
| 1436 |
|
---|
| 1437 | typedef enum _MINIDUMP_CALLBACK_TYPE {
|
---|
| 1438 | ModuleCallback,
|
---|
| 1439 | ThreadCallback,
|
---|
| 1440 | ThreadExCallback,
|
---|
| 1441 | IncludeThreadCallback,
|
---|
| 1442 | IncludeModuleCallback,
|
---|
| 1443 | MemoryCallback,
|
---|
| 1444 | CancelCallback,
|
---|
| 1445 | WriteKernelMinidumpCallback,
|
---|
| 1446 | KernelMinidumpStatusCallback,
|
---|
| 1447 | RemoveMemoryCallback,
|
---|
| 1448 | IncludeVmRegionCallback,
|
---|
| 1449 | IoStartCallback,
|
---|
| 1450 | IoWriteAllCallback,
|
---|
| 1451 | IoFinishCallback,
|
---|
| 1452 | ReadMemoryFailureCallback,
|
---|
| 1453 | SecondaryFlagsCallback,
|
---|
| 1454 | IsProcessSnapshotCallback,
|
---|
| 1455 | VmStartCallback,
|
---|
| 1456 | VmQueryCallback,
|
---|
| 1457 | VmPreReadCallback,
|
---|
| 1458 | VmPostReadCallback
|
---|
| 1459 | } MINIDUMP_CALLBACK_TYPE;
|
---|
| 1460 |
|
---|
| 1461 | typedef struct _MINIDUMP_THREAD_CALLBACK {
|
---|
| 1462 | ULONG ThreadId;
|
---|
| 1463 | HANDLE ThreadHandle;
|
---|
| 1464 | #if defined(__aarch64__)
|
---|
| 1465 | ULONG Pad;
|
---|
| 1466 | #endif
|
---|
| 1467 | CONTEXT Context;
|
---|
| 1468 | ULONG SizeOfContext;
|
---|
| 1469 | ULONG64 StackBase;
|
---|
| 1470 | ULONG64 StackEnd;
|
---|
| 1471 | } MINIDUMP_THREAD_CALLBACK,*PMINIDUMP_THREAD_CALLBACK;
|
---|
| 1472 |
|
---|
| 1473 | typedef struct _MINIDUMP_THREAD_EX_CALLBACK {
|
---|
| 1474 | ULONG ThreadId;
|
---|
| 1475 | HANDLE ThreadHandle;
|
---|
| 1476 | #if defined(__aarch64__)
|
---|
| 1477 | ULONG Pad;
|
---|
| 1478 | #endif
|
---|
| 1479 | CONTEXT Context;
|
---|
| 1480 | ULONG SizeOfContext;
|
---|
| 1481 | ULONG64 StackBase;
|
---|
| 1482 | ULONG64 StackEnd;
|
---|
| 1483 | ULONG64 BackingStoreBase;
|
---|
| 1484 | ULONG64 BackingStoreEnd;
|
---|
| 1485 | } MINIDUMP_THREAD_EX_CALLBACK,*PMINIDUMP_THREAD_EX_CALLBACK;
|
---|
| 1486 |
|
---|
| 1487 | typedef struct _MINIDUMP_INCLUDE_THREAD_CALLBACK {
|
---|
| 1488 | ULONG ThreadId;
|
---|
| 1489 | } MINIDUMP_INCLUDE_THREAD_CALLBACK,*PMINIDUMP_INCLUDE_THREAD_CALLBACK;
|
---|
| 1490 |
|
---|
| 1491 | typedef enum _THREAD_WRITE_FLAGS {
|
---|
| 1492 | ThreadWriteThread = 0x0001,
|
---|
| 1493 | ThreadWriteStack = 0x0002,
|
---|
| 1494 | ThreadWriteContext = 0x0004,
|
---|
| 1495 | ThreadWriteBackingStore = 0x0008,
|
---|
| 1496 | ThreadWriteInstructionWindow = 0x0010,
|
---|
| 1497 | ThreadWriteThreadData = 0x0020,
|
---|
| 1498 | ThreadWriteThreadInfo = 0x0040
|
---|
| 1499 | } THREAD_WRITE_FLAGS;
|
---|
| 1500 |
|
---|
| 1501 | typedef struct _MINIDUMP_MODULE_CALLBACK {
|
---|
| 1502 | PWCHAR FullPath;
|
---|
| 1503 | ULONG64 BaseOfImage;
|
---|
| 1504 | ULONG SizeOfImage;
|
---|
| 1505 | ULONG CheckSum;
|
---|
| 1506 | ULONG TimeDateStamp;
|
---|
| 1507 | VS_FIXEDFILEINFO VersionInfo;
|
---|
| 1508 | PVOID CvRecord;
|
---|
| 1509 | ULONG SizeOfCvRecord;
|
---|
| 1510 | PVOID MiscRecord;
|
---|
| 1511 | ULONG SizeOfMiscRecord;
|
---|
| 1512 | } MINIDUMP_MODULE_CALLBACK,*PMINIDUMP_MODULE_CALLBACK;
|
---|
| 1513 |
|
---|
| 1514 | typedef struct _MINIDUMP_INCLUDE_MODULE_CALLBACK {
|
---|
| 1515 | ULONG64 BaseOfImage;
|
---|
| 1516 | } MINIDUMP_INCLUDE_MODULE_CALLBACK,*PMINIDUMP_INCLUDE_MODULE_CALLBACK;
|
---|
| 1517 |
|
---|
| 1518 | typedef enum _MODULE_WRITE_FLAGS {
|
---|
| 1519 | ModuleWriteModule = 0x0001,
|
---|
| 1520 | ModuleWriteDataSeg = 0x0002,
|
---|
| 1521 | ModuleWriteMiscRecord = 0x0004,
|
---|
| 1522 | ModuleWriteCvRecord = 0x0008,
|
---|
| 1523 | ModuleReferencedByMemory = 0x0010,
|
---|
| 1524 | ModuleWriteTlsData = 0x0020,
|
---|
| 1525 | ModuleWriteCodeSegs = 0x0040
|
---|
| 1526 | } MODULE_WRITE_FLAGS;
|
---|
| 1527 |
|
---|
| 1528 | typedef enum _MINIDUMP_SECONDARY_FLAGS {
|
---|
| 1529 | MiniSecondaryWithoutPowerInfo = 0x00000001
|
---|
| 1530 | } MINIDUMP_SECONDARY_FLAGS;
|
---|
| 1531 |
|
---|
| 1532 | typedef struct _MINIDUMP_CALLBACK_INPUT {
|
---|
| 1533 | ULONG ProcessId;
|
---|
| 1534 | HANDLE ProcessHandle;
|
---|
| 1535 | ULONG CallbackType;
|
---|
| 1536 | __C89_NAMELESS union {
|
---|
| 1537 | MINIDUMP_THREAD_CALLBACK Thread;
|
---|
| 1538 | MINIDUMP_THREAD_EX_CALLBACK ThreadEx;
|
---|
| 1539 | MINIDUMP_MODULE_CALLBACK Module;
|
---|
| 1540 | MINIDUMP_INCLUDE_THREAD_CALLBACK IncludeThread;
|
---|
| 1541 | MINIDUMP_INCLUDE_MODULE_CALLBACK IncludeModule;
|
---|
| 1542 | };
|
---|
| 1543 | } MINIDUMP_CALLBACK_INPUT,*PMINIDUMP_CALLBACK_INPUT;
|
---|
| 1544 |
|
---|
| 1545 | typedef struct _MINIDUMP_MEMORY_INFO {
|
---|
| 1546 | ULONG64 BaseAddress;
|
---|
| 1547 | ULONG64 AllocationBase;
|
---|
| 1548 | ULONG32 AllocationProtect;
|
---|
| 1549 | ULONG32 __alignment1;
|
---|
| 1550 | ULONG64 RegionSize;
|
---|
| 1551 | ULONG32 State;
|
---|
| 1552 | ULONG32 Protect;
|
---|
| 1553 | ULONG32 Type;
|
---|
| 1554 | ULONG32 __alignment2;
|
---|
| 1555 | } MINIDUMP_MEMORY_INFO, *PMINIDUMP_MEMORY_INFO;
|
---|
| 1556 |
|
---|
| 1557 | typedef struct _MINIDUMP_MISC_INFO_2 {
|
---|
| 1558 | ULONG32 SizeOfInfo;
|
---|
| 1559 | ULONG32 Flags1;
|
---|
| 1560 | ULONG32 ProcessId;
|
---|
| 1561 | ULONG32 ProcessCreateTime;
|
---|
| 1562 | ULONG32 ProcessUserTime;
|
---|
| 1563 | ULONG32 ProcessKernelTime;
|
---|
| 1564 | ULONG32 ProcessorMaxMhz;
|
---|
| 1565 | ULONG32 ProcessorCurrentMhz;
|
---|
| 1566 | ULONG32 ProcessorMhzLimit;
|
---|
| 1567 | ULONG32 ProcessorMaxIdleState;
|
---|
| 1568 | ULONG32 ProcessorCurrentIdleState;
|
---|
| 1569 | } MINIDUMP_MISC_INFO_2, *PMINIDUMP_MISC_INFO_2;
|
---|
| 1570 |
|
---|
| 1571 | typedef struct _MINIDUMP_MEMORY_INFO_LIST {
|
---|
| 1572 | ULONG SizeOfHeader;
|
---|
| 1573 | ULONG SizeOfEntry;
|
---|
| 1574 | ULONG64 NumberOfEntries;
|
---|
| 1575 | } MINIDUMP_MEMORY_INFO_LIST, *PMINIDUMP_MEMORY_INFO_LIST;
|
---|
| 1576 |
|
---|
| 1577 | typedef struct _MINIDUMP_CALLBACK_OUTPUT {
|
---|
| 1578 | __C89_NAMELESS union {
|
---|
| 1579 | ULONG ModuleWriteFlags;
|
---|
| 1580 | ULONG ThreadWriteFlags;
|
---|
| 1581 | ULONG SecondaryFlags;
|
---|
| 1582 | __C89_NAMELESS struct {
|
---|
| 1583 | ULONG64 MemoryBase;
|
---|
| 1584 | ULONG MemorySize;
|
---|
| 1585 | };
|
---|
| 1586 | __C89_NAMELESS struct {
|
---|
| 1587 | WINBOOL CheckCancel;
|
---|
| 1588 | WINBOOL Cancel;
|
---|
| 1589 | };
|
---|
| 1590 | HANDLE Handle;
|
---|
| 1591 | };
|
---|
| 1592 | __C89_NAMELESS struct {
|
---|
| 1593 | MINIDUMP_MEMORY_INFO VmRegion;
|
---|
| 1594 | WINBOOL Continue;
|
---|
| 1595 | };
|
---|
| 1596 | HRESULT Status;
|
---|
| 1597 | } MINIDUMP_CALLBACK_OUTPUT, *PMINIDUMP_CALLBACK_OUTPUT;
|
---|
| 1598 |
|
---|
| 1599 | typedef enum _MINIDUMP_TYPE {
|
---|
| 1600 | MiniDumpNormal = 0x00000000,
|
---|
| 1601 | MiniDumpWithDataSegs = 0x00000001,
|
---|
| 1602 | MiniDumpWithFullMemory = 0x00000002,
|
---|
| 1603 | MiniDumpWithHandleData = 0x00000004,
|
---|
| 1604 | MiniDumpFilterMemory = 0x00000008,
|
---|
| 1605 | MiniDumpScanMemory = 0x00000010,
|
---|
| 1606 | MiniDumpWithUnloadedModules = 0x00000020,
|
---|
| 1607 | MiniDumpWithIndirectlyReferencedMemory = 0x00000040,
|
---|
| 1608 | MiniDumpFilterModulePaths = 0x00000080,
|
---|
| 1609 | MiniDumpWithProcessThreadData = 0x00000100,
|
---|
| 1610 | MiniDumpWithPrivateReadWriteMemory = 0x00000200,
|
---|
| 1611 | MiniDumpWithoutOptionalData = 0x00000400,
|
---|
| 1612 | MiniDumpWithFullMemoryInfo = 0x00000800,
|
---|
| 1613 | MiniDumpWithThreadInfo = 0x00001000,
|
---|
| 1614 | MiniDumpWithCodeSegs = 0x00002000,
|
---|
| 1615 | MiniDumpWithoutAuxiliaryState = 0x00004000,
|
---|
| 1616 | MiniDumpWithFullAuxiliaryState = 0x00008000,
|
---|
| 1617 | MiniDumpWithPrivateWriteCopyMemory = 0x00010000,
|
---|
| 1618 | MiniDumpIgnoreInaccessibleMemory = 0x00020000,
|
---|
| 1619 | MiniDumpWithTokenInformation = 0x00040000,
|
---|
| 1620 | MiniDumpWithModuleHeaders = 0x00080000,
|
---|
| 1621 | MiniDumpFilterTriage = 0x00100000,
|
---|
| 1622 | MiniDumpWithAvxXStateContext = 0x00200000,
|
---|
| 1623 | MiniDumpWithIptTrace = 0x00400000,
|
---|
| 1624 | MiniDumpScanInaccessiblePartialPages = 0x00800000,
|
---|
| 1625 | MiniDumpValidTypeFlags = 0x00ffffff
|
---|
| 1626 | } MINIDUMP_TYPE;
|
---|
| 1627 |
|
---|
| 1628 | #define MINIDUMP_THREAD_INFO_ERROR_THREAD 0x00000001
|
---|
| 1629 | #define MINIDUMP_THREAD_INFO_WRITING_THREAD 0x00000002
|
---|
| 1630 | #define MINIDUMP_THREAD_INFO_EXITED_THREAD 0x00000004
|
---|
| 1631 | #define MINIDUMP_THREAD_INFO_INVALID_INFO 0x00000008
|
---|
| 1632 | #define MINIDUMP_THREAD_INFO_INVALID_CONTEXT 0x00000010
|
---|
| 1633 | #define MINIDUMP_THREAD_INFO_INVALID_TEB 0x00000020
|
---|
| 1634 |
|
---|
| 1635 | typedef struct _MINIDUMP_THREAD_INFO {
|
---|
| 1636 | ULONG32 ThreadId;
|
---|
| 1637 | ULONG32 DumpFlags;
|
---|
| 1638 | ULONG32 DumpError;
|
---|
| 1639 | ULONG32 ExitStatus;
|
---|
| 1640 | ULONG64 CreateTime;
|
---|
| 1641 | ULONG64 ExitTime;
|
---|
| 1642 | ULONG64 KernelTime;
|
---|
| 1643 | ULONG64 UserTime;
|
---|
| 1644 | ULONG64 StartAddress;
|
---|
| 1645 | ULONG64 Affinity;
|
---|
| 1646 | } MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO;
|
---|
| 1647 |
|
---|
| 1648 | typedef struct _MINIDUMP_THREAD_INFO_LIST {
|
---|
| 1649 | ULONG SizeOfHeader;
|
---|
| 1650 | ULONG SizeOfEntry;
|
---|
| 1651 | ULONG NumberOfEntries;
|
---|
| 1652 | } MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST;
|
---|
| 1653 |
|
---|
| 1654 | typedef struct _MINIDUMP_HANDLE_OPERATION_LIST {
|
---|
| 1655 | ULONG32 SizeOfHeader;
|
---|
| 1656 | ULONG32 SizeOfEntry;
|
---|
| 1657 | ULONG32 NumberOfEntries;
|
---|
| 1658 | ULONG32 Reserved;
|
---|
| 1659 | } MINIDUMP_HANDLE_OPERATION_LIST, *PMINIDUMP_HANDLE_OPERATION_LIST;
|
---|
| 1660 |
|
---|
| 1661 | #ifdef __cplusplus
|
---|
| 1662 | extern "C" {
|
---|
| 1663 | #endif
|
---|
| 1664 |
|
---|
| 1665 | typedef WINBOOL (WINAPI *MINIDUMP_CALLBACK_ROUTINE)(PVOID CallbackParam,CONST PMINIDUMP_CALLBACK_INPUT CallbackInput,PMINIDUMP_CALLBACK_OUTPUT CallbackOutput);
|
---|
| 1666 |
|
---|
| 1667 | typedef struct _MINIDUMP_CALLBACK_INFORMATION {
|
---|
| 1668 | MINIDUMP_CALLBACK_ROUTINE CallbackRoutine;
|
---|
| 1669 | PVOID CallbackParam;
|
---|
| 1670 | } MINIDUMP_CALLBACK_INFORMATION,*PMINIDUMP_CALLBACK_INFORMATION;
|
---|
| 1671 |
|
---|
| 1672 | #define RVA_TO_ADDR(Mapping,Rva) ((PVOID)(((ULONG_PTR) (Mapping)) + (Rva)))
|
---|
| 1673 |
|
---|
| 1674 | WINBOOL WINAPI MiniDumpWriteDump(HANDLE hProcess,DWORD ProcessId,HANDLE hFile,MINIDUMP_TYPE DumpType,CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
|
---|
| 1675 | WINBOOL WINAPI MiniDumpReadDumpStream(PVOID BaseOfDump,ULONG StreamNumber,PMINIDUMP_DIRECTORY *Dir,PVOID *StreamPointer,ULONG *StreamSize);
|
---|
| 1676 |
|
---|
| 1677 | WINBOOL WINAPI EnumerateLoadedModulesEx(
|
---|
| 1678 | HANDLE hProcess,
|
---|
| 1679 | PENUMLOADED_MODULES_CALLBACK64 EnumLoadedModulesCallback,
|
---|
| 1680 | PVOID UserContext
|
---|
| 1681 | );
|
---|
| 1682 |
|
---|
| 1683 | WINBOOL WINAPI EnumerateLoadedModulesExW(
|
---|
| 1684 | HANDLE hProcess,
|
---|
| 1685 | PENUMLOADED_MODULES_CALLBACKW64 EnumLoadedModulesCallback,
|
---|
| 1686 | PVOID UserContext
|
---|
| 1687 | );
|
---|
| 1688 |
|
---|
| 1689 | WINBOOL WINAPI SymAddSourceStream(
|
---|
| 1690 | HANDLE hProcess,
|
---|
| 1691 | ULONG64 Base,
|
---|
| 1692 | PCSTR StreamFile,
|
---|
| 1693 | PBYTE Buffer,
|
---|
| 1694 | size_t Size
|
---|
| 1695 | );
|
---|
| 1696 |
|
---|
| 1697 | WINBOOL WINAPI SymAddSourceStreamW(
|
---|
| 1698 | HANDLE hProcess,
|
---|
| 1699 | ULONG64 Base,
|
---|
| 1700 | PCWSTR StreamFile,
|
---|
| 1701 | PBYTE Buffer,
|
---|
| 1702 | size_t Size
|
---|
| 1703 | );
|
---|
| 1704 |
|
---|
| 1705 | WINBOOL WINAPI SymEnumSourceLines(
|
---|
| 1706 | HANDLE hProcess,
|
---|
| 1707 | ULONG64 Base,
|
---|
| 1708 | PCSTR Obj,
|
---|
| 1709 | PCSTR File,
|
---|
| 1710 | DWORD Line,
|
---|
| 1711 | DWORD Flags,
|
---|
| 1712 | PSYM_ENUMLINES_CALLBACK EnumLinesCallback,
|
---|
| 1713 | PVOID UserContext
|
---|
| 1714 | );
|
---|
| 1715 |
|
---|
| 1716 | WINBOOL WINAPI SymEnumSourceLinesW(
|
---|
| 1717 | HANDLE hProcess,
|
---|
| 1718 | ULONG64 Base,
|
---|
| 1719 | PCWSTR Obj,
|
---|
| 1720 | PCWSTR File,
|
---|
| 1721 | DWORD Line,
|
---|
| 1722 | DWORD Flags,
|
---|
| 1723 | PSYM_ENUMLINES_CALLBACKW EnumLinesCallback,
|
---|
| 1724 | PVOID UserContext
|
---|
| 1725 | );
|
---|
| 1726 |
|
---|
| 1727 | WINBOOL WINAPI SymEnumTypesByName(
|
---|
| 1728 | HANDLE hProcess,
|
---|
| 1729 | ULONG64 BaseOfDll,
|
---|
| 1730 | PCSTR mask,
|
---|
| 1731 | PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
|
---|
| 1732 | PVOID UserContext
|
---|
| 1733 | );
|
---|
| 1734 |
|
---|
| 1735 | WINBOOL WINAPI SymEnumTypesByNameW(
|
---|
| 1736 | HANDLE hProcess,
|
---|
| 1737 | ULONG64 BaseOfDll,
|
---|
| 1738 | PCSTR mask,
|
---|
| 1739 | PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
|
---|
| 1740 | PVOID UserContext
|
---|
| 1741 | );
|
---|
| 1742 |
|
---|
| 1743 | HANDLE WINAPI SymFindDebugInfoFile(
|
---|
| 1744 | HANDLE hProcess,
|
---|
| 1745 | PCSTR FileName,
|
---|
| 1746 | PSTR DebugFilePath,
|
---|
| 1747 | PFIND_DEBUG_FILE_CALLBACK Callback,
|
---|
| 1748 | PVOID CallerData
|
---|
| 1749 | );
|
---|
| 1750 |
|
---|
| 1751 | HANDLE WINAPI SymFindDebugInfoFileW(
|
---|
| 1752 | HANDLE hProcess,
|
---|
| 1753 | PCWSTR FileName,
|
---|
| 1754 | PWSTR DebugFilePath,
|
---|
| 1755 | PFIND_DEBUG_FILE_CALLBACKW Callback,
|
---|
| 1756 | PVOID CallerData
|
---|
| 1757 | );
|
---|
| 1758 |
|
---|
| 1759 | HANDLE WINAPI SymFindExecutableImage(
|
---|
| 1760 | HANDLE hProcess,
|
---|
| 1761 | PCSTR FileName,
|
---|
| 1762 | PSTR ImageFilePath,
|
---|
| 1763 | PFIND_EXE_FILE_CALLBACK Callback,
|
---|
| 1764 | PVOID CallerData
|
---|
| 1765 | );
|
---|
| 1766 |
|
---|
| 1767 | HANDLE WINAPI SymFindExecutableImageW(
|
---|
| 1768 | HANDLE hProcess,
|
---|
| 1769 | PCWSTR FileName,
|
---|
| 1770 | PWSTR ImageFilePath,
|
---|
| 1771 | PFIND_EXE_FILE_CALLBACKW Callback,
|
---|
| 1772 | PVOID CallerData
|
---|
| 1773 | );
|
---|
| 1774 |
|
---|
| 1775 | WINBOOL WINAPI SymFromIndex(
|
---|
| 1776 | HANDLE hProcess,
|
---|
| 1777 | ULONG64 BaseOfDll,
|
---|
| 1778 | DWORD Index,
|
---|
| 1779 | PSYMBOL_INFO Symbol
|
---|
| 1780 | );
|
---|
| 1781 |
|
---|
| 1782 | WINBOOL WINAPI SymFromIndexW(
|
---|
| 1783 | HANDLE hProcess,
|
---|
| 1784 | ULONG64 BaseOfDll,
|
---|
| 1785 | DWORD Index,
|
---|
| 1786 | PSYMBOL_INFOW Symbol
|
---|
| 1787 | );
|
---|
| 1788 |
|
---|
| 1789 | WINBOOL WINAPI SymGetScope(
|
---|
| 1790 | HANDLE hProcess,
|
---|
| 1791 | ULONG64 BaseOfDll,
|
---|
| 1792 | DWORD Index,
|
---|
| 1793 | PSYMBOL_INFO Symbol
|
---|
| 1794 | );
|
---|
| 1795 |
|
---|
| 1796 | WINBOOL WINAPI SymGetScopeW(
|
---|
| 1797 | HANDLE hProcess,
|
---|
| 1798 | ULONG64 BaseOfDll,
|
---|
| 1799 | DWORD Index,
|
---|
| 1800 | PSYMBOL_INFOW Symbol
|
---|
| 1801 | );
|
---|
| 1802 |
|
---|
| 1803 | WINBOOL WINAPI SymGetSourceFileFromToken(
|
---|
| 1804 | HANDLE hProcess,
|
---|
| 1805 | PVOID Token,
|
---|
| 1806 | PCSTR Params,
|
---|
| 1807 | PSTR FilePath,
|
---|
| 1808 | DWORD Size
|
---|
| 1809 | );
|
---|
| 1810 |
|
---|
| 1811 | WINBOOL WINAPI SymGetSourceFileFromTokenW(
|
---|
| 1812 | HANDLE hProcess,
|
---|
| 1813 | PVOID Token,
|
---|
| 1814 | PCWSTR Params,
|
---|
| 1815 | PWSTR FilePath,
|
---|
| 1816 | DWORD Size
|
---|
| 1817 | );
|
---|
| 1818 |
|
---|
| 1819 | WINBOOL WINAPI SymGetSourceFileToken(
|
---|
| 1820 | HANDLE hProcess,
|
---|
| 1821 | ULONG64 Base,
|
---|
| 1822 | PCSTR FileSpec,
|
---|
| 1823 | PVOID *Token,
|
---|
| 1824 | DWORD *Size
|
---|
| 1825 | );
|
---|
| 1826 |
|
---|
| 1827 | WINBOOL WINAPI SymGetSourceFileTokenW(
|
---|
| 1828 | HANDLE hProcess,
|
---|
| 1829 | ULONG64 Base,
|
---|
| 1830 | PCWSTR FileSpec,
|
---|
| 1831 | PVOID *Token,
|
---|
| 1832 | DWORD *Size
|
---|
| 1833 | );
|
---|
| 1834 |
|
---|
| 1835 | WINBOOL WINAPI SymGetSourceFile(
|
---|
| 1836 | HANDLE hProcess,
|
---|
| 1837 | ULONG64 Base,
|
---|
| 1838 | PCSTR Params,
|
---|
| 1839 | PCSTR FileSpec,
|
---|
| 1840 | PSTR FilePath,
|
---|
| 1841 | DWORD Size
|
---|
| 1842 | );
|
---|
| 1843 |
|
---|
| 1844 | WINBOOL WINAPI SymGetSourceFileW(
|
---|
| 1845 | HANDLE hProcess,
|
---|
| 1846 | ULONG64 Base,
|
---|
| 1847 | PCWSTR Params,
|
---|
| 1848 | PCWSTR FileSpec,
|
---|
| 1849 | PWSTR FilePath,
|
---|
| 1850 | DWORD Size
|
---|
| 1851 | );
|
---|
| 1852 |
|
---|
| 1853 | WINBOOL WINAPI SymGetSourceVarFromToken(
|
---|
| 1854 | HANDLE hProcess,
|
---|
| 1855 | PVOID Token,
|
---|
| 1856 | PCSTR Params,
|
---|
| 1857 | PCSTR VarName,
|
---|
| 1858 | PSTR Value,
|
---|
| 1859 | DWORD Size
|
---|
| 1860 | );
|
---|
| 1861 |
|
---|
| 1862 | WINBOOL WINAPI SymGetSourceVarFromTokenW(
|
---|
| 1863 | HANDLE hProcess,
|
---|
| 1864 | PVOID Token,
|
---|
| 1865 | PCWSTR Params,
|
---|
| 1866 | PCWSTR VarName,
|
---|
| 1867 | PWSTR Value,
|
---|
| 1868 | DWORD Size
|
---|
| 1869 | );
|
---|
| 1870 |
|
---|
| 1871 | WINBOOL WINAPI SymGetSymbolFile(
|
---|
| 1872 | HANDLE hProcess,
|
---|
| 1873 | PCSTR SymPath,
|
---|
| 1874 | PCSTR ImageFile,
|
---|
| 1875 | DWORD Type,
|
---|
| 1876 | PSTR SymbolFile,
|
---|
| 1877 | size_t cSymbolFile,
|
---|
| 1878 | PSTR DbgFile,
|
---|
| 1879 | size_t cDbgFile
|
---|
| 1880 | );
|
---|
| 1881 |
|
---|
| 1882 | WINBOOL WINAPI SymGetSymbolFileW(
|
---|
| 1883 | HANDLE hProcess,
|
---|
| 1884 | PCWSTR SymPath,
|
---|
| 1885 | PCWSTR ImageFile,
|
---|
| 1886 | DWORD Type,
|
---|
| 1887 | PWSTR SymbolFile,
|
---|
| 1888 | size_t cSymbolFile,
|
---|
| 1889 | PWSTR DbgFile,
|
---|
| 1890 | size_t cDbgFile
|
---|
| 1891 | );
|
---|
| 1892 |
|
---|
| 1893 | WINBOOL WINAPI SymNext(
|
---|
| 1894 | HANDLE hProcess,
|
---|
| 1895 | PSYMBOL_INFO Symbol
|
---|
| 1896 | );
|
---|
| 1897 |
|
---|
| 1898 | WINBOOL WINAPI SymNextW(
|
---|
| 1899 | HANDLE hProcess,
|
---|
| 1900 | PSYMBOL_INFOW Symbol
|
---|
| 1901 | );
|
---|
| 1902 |
|
---|
| 1903 | WINBOOL WINAPI SymPrev(
|
---|
| 1904 | HANDLE hProcess,
|
---|
| 1905 | PSYMBOL_INFO Symbol
|
---|
| 1906 | );
|
---|
| 1907 |
|
---|
| 1908 | WINBOOL WINAPI SymPrevW(
|
---|
| 1909 | HANDLE hProcess,
|
---|
| 1910 | PSYMBOL_INFOW Symbol
|
---|
| 1911 | );
|
---|
| 1912 |
|
---|
| 1913 | WINBOOL WINAPI SymRefreshModuleList(
|
---|
| 1914 | HANDLE hProcess
|
---|
| 1915 | );
|
---|
| 1916 |
|
---|
| 1917 | #define SYMSEARCH_MASKOBJS 0x01
|
---|
| 1918 | #define SYMSEARCH_RECURSE 0x02
|
---|
| 1919 | #define SYMSEARCH_GLOBALSONLY 0x04
|
---|
| 1920 | #define SYMSEARCH_ALLITEMS 0x08
|
---|
| 1921 |
|
---|
| 1922 | WINBOOL WINAPI SymSearch(
|
---|
| 1923 | HANDLE hProcess,
|
---|
| 1924 | ULONG64 BaseOfDll,
|
---|
| 1925 | DWORD Index,
|
---|
| 1926 | DWORD SymTag,
|
---|
| 1927 | PCSTR Mask,
|
---|
| 1928 | DWORD64 Address,
|
---|
| 1929 | PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
|
---|
| 1930 | PVOID UserContext,
|
---|
| 1931 | DWORD Options
|
---|
| 1932 | );
|
---|
| 1933 |
|
---|
| 1934 | WINBOOL WINAPI SymSearchW(
|
---|
| 1935 | HANDLE hProcess,
|
---|
| 1936 | ULONG64 BaseOfDll,
|
---|
| 1937 | DWORD Index,
|
---|
| 1938 | DWORD SymTag,
|
---|
| 1939 | PCWSTR Mask,
|
---|
| 1940 | DWORD64 Address,
|
---|
| 1941 | PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback,
|
---|
| 1942 | PVOID UserContext,
|
---|
| 1943 | DWORD Options
|
---|
| 1944 | );
|
---|
| 1945 |
|
---|
| 1946 | WINBOOL WINAPI SymSrvGetFileIndexString(
|
---|
| 1947 | HANDLE hProcess,
|
---|
| 1948 | PCSTR SrvPath,
|
---|
| 1949 | PCSTR File,
|
---|
| 1950 | PSTR Index,
|
---|
| 1951 | size_t Size,
|
---|
| 1952 | DWORD Flags
|
---|
| 1953 | );
|
---|
| 1954 |
|
---|
| 1955 | WINBOOL WINAPI SymSrvGetFileIndexStringW(
|
---|
| 1956 | HANDLE hProcess,
|
---|
| 1957 | PCWSTR SrvPath,
|
---|
| 1958 | PCWSTR File,
|
---|
| 1959 | PWSTR Index,
|
---|
| 1960 | size_t Size,
|
---|
| 1961 | DWORD Flags
|
---|
| 1962 | );
|
---|
| 1963 |
|
---|
| 1964 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 1965 | #define SymSrvGetFileIndexString SymSrvGetFileIndexStringW
|
---|
| 1966 | #endif
|
---|
| 1967 |
|
---|
| 1968 | WINBOOL WINAPI SymSrvGetFileIndexInfo(
|
---|
| 1969 | PCSTR File,
|
---|
| 1970 | PSYMSRV_INDEX_INFO Info,
|
---|
| 1971 | DWORD Flags
|
---|
| 1972 | );
|
---|
| 1973 |
|
---|
| 1974 | WINBOOL WINAPI SymSrvGetFileIndexInfoW(
|
---|
| 1975 | PCWSTR File,
|
---|
| 1976 | PSYMSRV_INDEX_INFOW Info,
|
---|
| 1977 | DWORD Flags
|
---|
| 1978 | );
|
---|
| 1979 |
|
---|
| 1980 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 1981 | #define SymSrvGetFileIndexInfo SymSrvGetFileIndexInfoW
|
---|
| 1982 | #endif
|
---|
| 1983 |
|
---|
| 1984 | WINBOOL WINAPI SymSrvGetFileIndexes(
|
---|
| 1985 | PCTSTR File,
|
---|
| 1986 | GUID *Id,
|
---|
| 1987 | DWORD *Val1,
|
---|
| 1988 | DWORD *Val2,
|
---|
| 1989 | DWORD Flags
|
---|
| 1990 | );
|
---|
| 1991 |
|
---|
| 1992 | WINBOOL WINAPI SymSrvGetFileIndexesW(
|
---|
| 1993 | PCWSTR File,
|
---|
| 1994 | GUID *Id,
|
---|
| 1995 | DWORD *Val1,
|
---|
| 1996 | DWORD *Val2,
|
---|
| 1997 | DWORD Flags
|
---|
| 1998 | );
|
---|
| 1999 |
|
---|
| 2000 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2001 | #define SymSrvGetFileIndexes SymSrvGetFileIndexesW
|
---|
| 2002 | #endif
|
---|
| 2003 |
|
---|
| 2004 | PCSTR WINAPI SymSrvGetSupplement(
|
---|
| 2005 | HANDLE hProcess,
|
---|
| 2006 | PCSTR SymPath,
|
---|
| 2007 | PCSTR Node,
|
---|
| 2008 | PCSTR File
|
---|
| 2009 | );
|
---|
| 2010 |
|
---|
| 2011 | PCWSTR WINAPI SymSrvGetSupplementW(
|
---|
| 2012 | HANDLE hProcess,
|
---|
| 2013 | PCWSTR SymPath,
|
---|
| 2014 | PCWSTR Node,
|
---|
| 2015 | PCWSTR File
|
---|
| 2016 | );
|
---|
| 2017 |
|
---|
| 2018 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2019 | #define SymSrvGetSupplement SymSrvGetSupplementW
|
---|
| 2020 | #endif
|
---|
| 2021 |
|
---|
| 2022 | WINBOOL WINAPI SymSrvIsStore(
|
---|
| 2023 | HANDLE hProcess,
|
---|
| 2024 | PCSTR path
|
---|
| 2025 | );
|
---|
| 2026 |
|
---|
| 2027 | WINBOOL WINAPI SymSrvIsStoreW(
|
---|
| 2028 | HANDLE hProcess,
|
---|
| 2029 | PCWSTR path
|
---|
| 2030 | );
|
---|
| 2031 |
|
---|
| 2032 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2033 | #define SymSrvIsStore SymSrvIsStoreW
|
---|
| 2034 | #endif
|
---|
| 2035 |
|
---|
| 2036 | PCSTR WINAPI SymSrvStoreFile(
|
---|
| 2037 | HANDLE hProcess,
|
---|
| 2038 | PCSTR SrvPath,
|
---|
| 2039 | PCSTR File,
|
---|
| 2040 | DWORD Flags
|
---|
| 2041 | );
|
---|
| 2042 |
|
---|
| 2043 | PCWSTR WINAPI SymSrvStoreFileW(
|
---|
| 2044 | HANDLE hProcess,
|
---|
| 2045 | PCWSTR SrvPath,
|
---|
| 2046 | PCWSTR File,
|
---|
| 2047 | DWORD Flags
|
---|
| 2048 | );
|
---|
| 2049 |
|
---|
| 2050 | #define SYMSTOREOPT_COMPRESS 0x01
|
---|
| 2051 | #define SYMSTOREOPT_OVERWRITE 0x02
|
---|
| 2052 | #define SYMSTOREOPT_RETURNINDEX 0x04
|
---|
| 2053 | #define SYMSTOREOPT_POINTER 0x08
|
---|
| 2054 | #define SYMSTOREOPT_PASS_IF_EXISTS 0x40
|
---|
| 2055 |
|
---|
| 2056 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2057 | #define SymSrvStoreFile SymSrvStoreFileW
|
---|
| 2058 | #endif
|
---|
| 2059 |
|
---|
| 2060 | PCSTR WINAPI SymSrvStoreSupplement(
|
---|
| 2061 | HANDLE hProcess,
|
---|
| 2062 | const PCTSTR SymPath,
|
---|
| 2063 | PCSTR Node,
|
---|
| 2064 | PCSTR File,
|
---|
| 2065 | DWORD Flags
|
---|
| 2066 | );
|
---|
| 2067 |
|
---|
| 2068 | PCWSTR WINAPI SymSrvStoreSupplementW(
|
---|
| 2069 | HANDLE hProcess,
|
---|
| 2070 | const PCWSTR SymPath,
|
---|
| 2071 | PCWSTR Node,
|
---|
| 2072 | PCWSTR File,
|
---|
| 2073 | DWORD Flags
|
---|
| 2074 | );
|
---|
| 2075 |
|
---|
| 2076 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2077 | #define SymSrvStoreSupplement SymSrvStoreSupplementW
|
---|
| 2078 | #endif
|
---|
| 2079 |
|
---|
| 2080 | PCSTR WINAPI SymSrvDeltaName(
|
---|
| 2081 | HANDLE hProcess,
|
---|
| 2082 | PCSTR SymPath,
|
---|
| 2083 | PCSTR Type,
|
---|
| 2084 | PCSTR File1,
|
---|
| 2085 | PCSTR File2
|
---|
| 2086 | );
|
---|
| 2087 |
|
---|
| 2088 | PCWSTR WINAPI SymSrvDeltaNameW(
|
---|
| 2089 | HANDLE hProcess,
|
---|
| 2090 | PCWSTR SymPath,
|
---|
| 2091 | PCWSTR Type,
|
---|
| 2092 | PCWSTR File1,
|
---|
| 2093 | PCWSTR File2
|
---|
| 2094 | );
|
---|
| 2095 |
|
---|
| 2096 | #ifdef DBGHELP_TRANSLATE_TCHAR
|
---|
| 2097 | #define SymSrvDeltaName SymSrvDeltaNameW
|
---|
| 2098 | #endif
|
---|
| 2099 |
|
---|
| 2100 | #include <poppack.h>
|
---|
| 2101 |
|
---|
| 2102 | #ifdef __cplusplus
|
---|
| 2103 | }
|
---|
| 2104 | #endif
|
---|
| 2105 |
|
---|