dmime: Remove DECLSPEC_HIDDEN usage.
[wine.git] / include / imagehlp.h
blob87f16c3ede3ff7a64eab283abf187d207f4a9f21
1 /*
2 * Declarations for IMAGEHLP
4 * Copyright (C) 1998 Patrik Stridvall
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_IMAGEHLP_H
22 #define __WINE_IMAGEHLP_H
24 #include <wintrust.h>
25 #include <minidumpapiset.h>
27 #ifdef __cplusplus
28 extern "C" {
29 #endif /* defined(__cplusplus) */
31 #define IMAGEAPI WINAPI
32 #define DBHLPAPI IMAGEAPI
34 #define API_VERSION_NUMBER 7 /* 7 is the default */
36 /***********************************************************************
37 * Types
40 typedef PVOID DIGEST_HANDLE;
42 /***********************************************************************
43 * Enums/Defines
46 typedef enum _IMAGEHLP_STATUS_REASON {
47 BindOutOfMemory,
48 BindRvaToVaFailed,
49 BindNoRoomInImage,
50 BindImportModuleFailed,
51 BindImportProcedureFailed,
52 BindImportModule,
53 BindImportProcedure,
54 BindForwarder,
55 BindForwarderNOT,
56 BindImageModified,
57 BindExpandFileHeaders,
58 BindImageComplete,
59 BindMismatchedSymbols,
60 BindSymbolsNotUpdated
61 } IMAGEHLP_STATUS_REASON;
63 #define BIND_NO_BOUND_IMPORTS 0x00000001
64 #define BIND_NO_UPDATE 0x00000002
65 #define BIND_ALL_IMAGES 0x00000004
66 #define BIND_CACHE_IMPORT_DLLS 0x00000008
68 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
69 #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
70 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
71 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
73 #define CERT_SECTION_TYPE_ANY 0xFF
75 #define SPLITSYM_REMOVE_PRIVATE 0x00000001
76 #define SPLITSYM_EXTRACT_ALL 0x00000002
77 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
79 #define FRAME_FPO 0
80 #define FRAME_TRAP 1
81 #define FRAME_TSS 2
82 #define FRAME_NONFPO 3
84 #define CHECKSUM_SUCCESS 0
85 #define CHECKSUM_OPEN_FAILURE 1
86 #define CHECKSUM_MAP_FAILURE 2
87 #define CHECKSUM_MAPVIEW_FAILURE 3
88 #define CHECKSUM_UNICODE_FAILURE 4
90 typedef enum _ADDRESS_MODE {
91 AddrMode1616,
92 AddrMode1632,
93 AddrModeReal,
94 AddrModeFlat
95 } ADDRESS_MODE;
97 #define SYMOPT_CASE_INSENSITIVE 0x00000001
98 #define SYMOPT_UNDNAME 0x00000002
99 #define SYMOPT_DEFERRED_LOADS 0x00000004
100 #define SYMOPT_NO_CPP 0x00000008
101 #define SYMOPT_LOAD_LINES 0x00000010
102 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
104 #define SYMF_OMAP_GENERATED 0x00000001
105 #define SYMF_OMAP_MODIFIED 0x00000002
106 /* 0x00000004 has been obsoleted */
107 #define SYMF_REGISTER 0x00000008
108 #define SYMF_REGREL 0x00000010
109 #define SYMF_FRAMEREL 0x00000020
110 #define SYMF_PARAMETER 0x00000040
111 #define SYMF_LOCAL 0x00000080
112 #define SYMF_CONSTANT 0x00000100
113 #define SYMF_EXPORT 0x00000200
114 #define SYMF_FORWARDER 0x00000400
115 #define SYMF_FUNCTION 0x00000800
117 typedef enum {
118 SymNone,
119 SymCoff,
120 SymCv,
121 SymPdb,
122 SymExport,
123 SymDeferred,
124 SymSym,
125 SymDia,
126 SymVirtual,
127 NumSymTypes
128 } SYM_TYPE;
130 #define UNDNAME_COMPLETE 0x0000
131 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
132 #define UNDNAME_NO_MS_KEYWORDS 0x0002
133 #define UNDNAME_NO_FUNCTION_RETURNS 0x0004
134 #define UNDNAME_NO_ALLOCATION_MODEL 0x0008
135 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
136 #define UNDNAME_NO_MS_THISTYPE 0x0020
137 #define UNDNAME_NO_CV_THISTYPE 0x0040
138 #define UNDNAME_NO_THISTYPE 0x0060
139 #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080
140 #define UNDNAME_NO_THROW_SIGNATURES 0x0100
141 #define UNDNAME_NO_MEMBER_TYPE 0x0200
142 #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400
143 #define UNDNAME_32_BIT_DECODE 0x0800
144 #define UNDNAME_NAME_ONLY 0x1000
145 #define UNDNAME_NO_ARGUMENTS 0x2000
146 #define UNDNAME_NO_SPECIAL_SYMS 0x4000
148 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
149 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
150 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
151 #define CBA_SYMBOLS_UNLOADED 0x00000004
152 #define CBA_DUPLICATE_SYMBOL 0x00000005
154 /***********************************************************************
155 * Structures
158 typedef struct _LOADED_IMAGE
160 PSTR ModuleName;
161 HANDLE hFile;
162 PUCHAR MappedAddress;
163 PIMAGE_NT_HEADERS FileHeader;
164 PIMAGE_SECTION_HEADER LastRvaSection;
165 ULONG NumberOfSections;
166 PIMAGE_SECTION_HEADER Sections;
167 ULONG Characteristics;
168 BOOLEAN fSystemImage;
169 BOOLEAN fDOSImage;
170 BOOLEAN fReadOnly;
171 UCHAR Version;
172 LIST_ENTRY Links;
173 ULONG SizeOfImage;
174 } LOADED_IMAGE, *PLOADED_IMAGE;
176 typedef struct _API_VERSION {
177 USHORT MajorVersion;
178 USHORT MinorVersion;
179 USHORT Revision;
180 USHORT Reserved;
181 } API_VERSION, *LPAPI_VERSION;
183 #ifndef _WIN64
184 typedef struct _IMAGE_DEBUG_INFORMATION {
185 LIST_ENTRY List;
186 DWORD Size;
187 PVOID MappedBase;
188 USHORT Machine;
189 USHORT Characteristics;
190 DWORD CheckSum;
191 DWORD ImageBase;
192 DWORD SizeOfImage;
194 DWORD NumberOfSections;
195 PIMAGE_SECTION_HEADER Sections;
197 DWORD ExportedNamesSize;
198 PSTR ExportedNames;
200 DWORD NumberOfFunctionTableEntries;
201 PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
202 DWORD LowestFunctionStartingAddress;
203 DWORD HighestFunctionEndingAddress;
205 DWORD NumberOfFpoTableEntries;
206 PFPO_DATA FpoTableEntries;
208 DWORD SizeOfCoffSymbols;
209 PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
211 DWORD SizeOfCodeViewSymbols;
212 PVOID CodeViewSymbols;
214 PSTR ImageFilePath;
215 PSTR ImageFileName;
216 PSTR DebugFilePath;
218 DWORD TimeDateStamp;
220 BOOL RomImage;
221 PIMAGE_DEBUG_DIRECTORY DebugDirectory;
222 DWORD NumberOfDebugDirectories;
224 DWORD Reserved[3];
225 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
227 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
228 HANDLE FileHandle, PCSTR FileName,
229 PCSTR SymbolPath, ULONG ImageBase
231 BOOL WINAPI UnmapDebugInformation(
232 PIMAGE_DEBUG_INFORMATION DebugInfo
234 #endif
236 typedef struct _ADDRESS {
237 DWORD Offset;
238 WORD Segment;
239 ADDRESS_MODE Mode;
240 } ADDRESS, *LPADDRESS;
242 typedef struct _ADDRESS64 {
243 DWORD64 Offset;
244 WORD Segment;
245 ADDRESS_MODE Mode;
246 } ADDRESS64, *LPADDRESS64;
248 typedef struct _KDHELP {
249 DWORD Thread;
250 DWORD ThCallbackStack;
251 DWORD NextCallback;
252 DWORD FramePointer;
253 DWORD KiCallUserMode;
254 DWORD KeUserCallbackDispatcher;
255 DWORD SystemRangeStart;
256 } KDHELP, *PKDHELP;
258 typedef struct _KDHELP64 {
259 DWORD64 Thread;
260 DWORD ThCallbackStack;
261 DWORD ThCallbackBStore;
262 DWORD NextCallback;
263 DWORD FramePointer;
264 DWORD64 KiCallUserMode;
265 DWORD64 KeUserCallbackDispatcher;
266 DWORD64 SystemRangeStart;
267 DWORD64 Reserved[8];
268 } KDHELP64, *PKDHELP64;
270 typedef struct _STACKFRAME {
271 ADDRESS AddrPC;
272 ADDRESS AddrReturn;
273 ADDRESS AddrFrame;
274 ADDRESS AddrStack;
275 PVOID FuncTableEntry;
276 DWORD Params[4];
277 BOOL Far;
278 BOOL Virtual;
279 DWORD Reserved[3];
280 KDHELP KdHelp;
281 } STACKFRAME, *LPSTACKFRAME;
283 typedef struct _STACKFRAME64 {
284 ADDRESS64 AddrPC;
285 ADDRESS64 AddrReturn;
286 ADDRESS64 AddrFrame;
287 ADDRESS64 AddrStack;
288 ADDRESS64 AddrBStore;
289 PVOID FuncTableEntry;
290 DWORD64 Params[4];
291 BOOL Far;
292 BOOL Virtual;
293 DWORD64 Reserved[3];
294 KDHELP64 KdHelp;
295 } STACKFRAME64, *LPSTACKFRAME64;
297 typedef struct _SOURCEFILE {
298 DWORD64 ModBase;
299 PCHAR FileName;
300 } SOURCEFILE, *PSOURCEFILE;
302 typedef struct _SOURCEFILEW
304 DWORD64 ModBase;
305 PWSTR FileName;
306 } SOURCEFILEW, *PSOURCEFILEW;
308 typedef struct _IMAGEHLP_STACK_FRAME
310 DWORD InstructionOffset;
311 DWORD ReturnOffset;
312 DWORD FrameOffset;
313 DWORD StackOffset;
314 DWORD BackingStoreOffset;
315 DWORD FuncTableEntry;
316 DWORD Params[4];
317 DWORD Reserved[5];
318 DWORD Virtual;
319 DWORD Reserved2;
320 } IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
322 typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
324 typedef struct _IMAGEHLP_SYMBOL {
325 DWORD SizeOfStruct;
326 DWORD Address;
327 DWORD Size;
328 DWORD Flags;
329 DWORD MaxNameLength;
330 CHAR Name[ANYSIZE_ARRAY];
331 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
333 typedef struct _IMAGEHLP_SYMBOLW {
334 DWORD SizeOfStruct;
335 DWORD Address;
336 DWORD Size;
337 DWORD Flags;
338 DWORD MaxNameLength;
339 WCHAR Name[ANYSIZE_ARRAY];
340 } IMAGEHLP_SYMBOLW, *PIMAGEHLP_SYMBOLW;
342 typedef struct _IMAGEHLP_SYMBOL64
344 DWORD SizeOfStruct;
345 DWORD64 Address;
346 DWORD Size;
347 DWORD Flags;
348 DWORD MaxNameLength;
349 CHAR Name[1];
350 } IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64;
352 typedef struct _IMAGEHLP_SYMBOLW64
354 DWORD SizeOfStruct;
355 DWORD64 Address;
356 DWORD Size;
357 DWORD Flags;
358 DWORD MaxNameLength;
359 WCHAR Name[1];
360 } IMAGEHLP_SYMBOLW64, *PIMAGEHLP_SYMBOLW64;
362 typedef struct _IMAGEHLP_MODULE {
363 DWORD SizeOfStruct;
364 DWORD BaseOfImage;
365 DWORD ImageSize;
366 DWORD TimeDateStamp;
367 DWORD CheckSum;
368 DWORD NumSyms;
369 SYM_TYPE SymType;
370 CHAR ModuleName[32];
371 CHAR ImageName[256];
372 CHAR LoadedImageName[256];
373 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
375 typedef struct _IMAGEHLP_MODULEW {
376 DWORD SizeOfStruct;
377 DWORD BaseOfImage;
378 DWORD ImageSize;
379 DWORD TimeDateStamp;
380 DWORD CheckSum;
381 DWORD NumSyms;
382 SYM_TYPE SymType;
383 WCHAR ModuleName[32];
384 WCHAR ImageName[256];
385 WCHAR LoadedImageName[256];
386 } IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW;
388 typedef struct _IMAGEHLP_MODULE64
390 DWORD SizeOfStruct;
391 DWORD64 BaseOfImage;
392 DWORD ImageSize;
393 DWORD TimeDateStamp;
394 DWORD CheckSum;
395 DWORD NumSyms;
396 SYM_TYPE SymType;
397 CHAR ModuleName[32];
398 CHAR ImageName[256];
399 CHAR LoadedImageName[256];
400 CHAR LoadedPdbName[256];
401 DWORD CVSig;
402 CHAR CVData[MAX_PATH*3];
403 DWORD PdbSig;
404 GUID PdbSig70;
405 DWORD PdbAge;
406 BOOL PdbUnmatched;
407 BOOL DbgUnmatched;
408 BOOL LineNumbers;
409 BOOL GlobalSymbols;
410 BOOL TypeInfo;
411 BOOL SourceIndexed;
412 BOOL Publics;
413 DWORD MachineType;
414 DWORD Reserved;
415 } IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64;
417 typedef struct _IMAGEHLP_MODULEW64
419 DWORD SizeOfStruct;
420 DWORD64 BaseOfImage;
421 DWORD ImageSize;
422 DWORD TimeDateStamp;
423 DWORD CheckSum;
424 DWORD NumSyms;
425 SYM_TYPE SymType;
426 WCHAR ModuleName[32];
427 WCHAR ImageName[256];
428 WCHAR LoadedImageName[256];
429 WCHAR LoadedPdbName[256];
430 DWORD CVSig;
431 WCHAR CVData[MAX_PATH*3];
432 DWORD PdbSig;
433 GUID PdbSig70;
434 DWORD PdbAge;
435 BOOL PdbUnmatched;
436 BOOL DbgUnmatched;
437 BOOL LineNumbers;
438 BOOL GlobalSymbols;
439 BOOL TypeInfo;
440 BOOL SourceIndexed;
441 BOOL Publics;
442 DWORD MachineType;
443 DWORD Reserved;
444 } IMAGEHLP_MODULEW64, *PIMAGEHLP_MODULEW64;
446 typedef struct _IMAGEHLP_LINE {
447 DWORD SizeOfStruct;
448 PVOID Key;
449 DWORD LineNumber;
450 PCHAR FileName;
451 DWORD Address;
452 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
454 typedef struct _IMAGEHLP_LINEW {
455 DWORD SizeOfStruct;
456 PVOID Key;
457 DWORD LineNumber;
458 PWSTR FileName;
459 DWORD Address;
460 } IMAGEHLP_LINEW, *PIMAGEHLP_LINEW;
462 typedef struct _IMAGEHLP_LINE64 {
463 DWORD SizeOfStruct;
464 PVOID Key;
465 DWORD LineNumber;
466 PCHAR FileName;
467 DWORD64 Address;
468 } IMAGEHLP_LINE64, *PIMAGEHLP_LINE64;
470 typedef struct _IMAGEHLP_LINEW64 {
471 DWORD SizeOfStruct;
472 PVOID Key;
473 DWORD LineNumber;
474 PWSTR FileName;
475 DWORD64 Address;
476 } IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64;
478 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
479 DWORD SizeOfStruct;
480 DWORD BaseOfImage;
481 DWORD CheckSum;
482 DWORD TimeDateStamp;
483 CHAR FileName[MAX_PATH];
484 BOOLEAN Reparse;
485 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
487 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
488 DWORD SizeOfStruct;
489 DWORD NumberOfDups;
490 PIMAGEHLP_SYMBOL Symbol;
491 ULONG SelectedSymbol;
492 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
494 typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO
496 TI_GET_SYMTAG,
497 TI_GET_SYMNAME,
498 TI_GET_LENGTH,
499 TI_GET_TYPE,
500 TI_GET_TYPEID,
501 TI_GET_BASETYPE,
502 TI_GET_ARRAYINDEXTYPEID,
503 TI_FINDCHILDREN,
504 TI_GET_DATAKIND,
505 TI_GET_ADDRESSOFFSET,
506 TI_GET_OFFSET,
507 TI_GET_VALUE,
508 TI_GET_COUNT,
509 TI_GET_CHILDRENCOUNT,
510 TI_GET_BITPOSITION,
511 TI_GET_VIRTUALBASECLASS,
512 TI_GET_VIRTUALTABLESHAPEID,
513 TI_GET_VIRTUALBASEPOINTEROFFSET,
514 TI_GET_CLASSPARENTID,
515 TI_GET_NESTED,
516 TI_GET_SYMINDEX,
517 TI_GET_LEXICALPARENT,
518 TI_GET_ADDRESS,
519 TI_GET_THISADJUST,
520 TI_GET_UDTKIND,
521 TI_IS_EQUIV_TO,
522 TI_GET_CALLING_CONVENTION,
523 } IMAGEHLP_SYMBOL_TYPE_INFO;
525 #define IMAGEHLP_GET_TYPE_INFO_UNCACHED 0x00000001
526 #define IMAGEHLP_GET_TYPE_INFO_CHILDREN 0x00000002
527 typedef struct _IMAGEHLP_GET_TYPE_INFO_PARAMS
529 ULONG SizeOfStruct;
530 ULONG Flags;
531 ULONG NumIds;
532 PULONG TypeIds;
533 ULONG64 TagFilter;
534 ULONG NumReqs;
535 IMAGEHLP_SYMBOL_TYPE_INFO* ReqKinds;
536 PULONG_PTR ReqOffsets;
537 PULONG ReqSizes;
538 ULONG_PTR ReqStride;
539 ULONG_PTR BufferSize;
540 PVOID Buffer;
541 ULONG EntriesMatched;
542 ULONG EntriesFilled;
543 ULONG64 TagsFound;
544 ULONG64 AllReqsValid;
545 ULONG NumReqsValid;
546 PULONG64 ReqsValid;
547 } IMAGEHLP_GET_TYPE_INFO_PARAMS, *PIMAGEHLP_GET_TYPE_INFO_PARAMS;
549 #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
550 #define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
551 #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
552 #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL
553 #define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER
554 #define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL
555 #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT
556 #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION
558 #define MAX_SYM_NAME 2000
560 typedef struct _SYMBOL_INFO {
561 ULONG SizeOfStruct;
562 ULONG TypeIndex;
563 ULONG64 Reserved[2];
564 ULONG info;
565 ULONG Size;
566 ULONG64 ModBase;
567 ULONG Flags;
568 ULONG64 Value;
569 ULONG64 Address;
570 ULONG Register;
571 ULONG Scope;
572 ULONG Tag;
573 ULONG NameLen;
574 ULONG MaxNameLen;
575 CHAR Name[1];
576 } SYMBOL_INFO, *PSYMBOL_INFO;
578 typedef struct _SYMBOL_INFOW
580 ULONG SizeOfStruct;
581 ULONG TypeIndex;
582 ULONG64 Reserved[2];
583 ULONG Index;
584 ULONG Size;
585 ULONG64 ModBase;
586 ULONG Flags;
587 ULONG64 Value;
588 ULONG64 Address;
589 ULONG Register;
590 ULONG Scope;
591 ULONG Tag;
592 ULONG NameLen;
593 ULONG MaxNameLen;
594 WCHAR Name[1];
595 } SYMBOL_INFOW, *PSYMBOL_INFOW;
597 typedef struct _SYMBOL_INFO_PACKAGE
599 SYMBOL_INFO si;
600 CHAR name[MAX_SYM_NAME+1];
601 } SYMBOL_INFO_PACKAGE, *PSYMBOL_INFO_PACKAGE;
603 typedef struct _SYMBOL_INFO_PACKAGEW
605 SYMBOL_INFOW si;
606 WCHAR name[MAX_SYM_NAME+1];
607 } SYMBOL_INFO_PACKAGEW, *PSYMBOL_INFO_PACKAGEW;
609 #define DBHHEADER_DEBUGDIRS 0x1
610 typedef struct _MODLOAD_DATA
612 DWORD ssize;
613 DWORD ssig;
614 PVOID data;
615 DWORD size;
616 DWORD flags;
617 } MODLOAD_DATA, *PMODLOAD_DATA;
619 typedef struct _SRCCODEINFO
621 DWORD SizeOfStruct;
622 PVOID Key;
623 DWORD64 ModBase;
624 CHAR Obj[MAX_PATH+1];
625 CHAR FileName[MAX_PATH+1];
626 DWORD LineNumber;
627 DWORD64 Address;
628 } SRCCODEINFO, *PSRCCODEINFO;
630 typedef struct _SRCCODEINFOW
632 DWORD SizeOfStruct;
633 PVOID Key;
634 DWORD64 ModBase;
635 WCHAR Obj[MAX_PATH+1];
636 WCHAR FileName[MAX_PATH+1];
637 DWORD LineNumber;
638 DWORD64 Address;
639 } SRCCODEINFOW, *PSRCCODEINFOW;
641 /***********************************************************************
642 * Callbacks
645 typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(
646 PCSTR, PVOID
648 typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(
649 PCWSTR, PVOID
652 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
653 PCSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
654 PVOID UserContext
656 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(
657 PCSTR, DWORD64, ULONG, PVOID
659 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(
660 PCWSTR, DWORD64, ULONG, PVOID
663 typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(
664 HANDLE, PCSTR, PVOID
666 typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACKW)(
667 HANDLE, PCWSTR, PVOID
670 typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(
671 HANDLE, PCSTR, PVOID
673 typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACKW)(
674 HANDLE, PCWSTR, PVOID
677 typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(
678 PCSTR, PVOID
680 typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACKW)(
681 PCWSTR, PVOID
684 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
685 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
686 ULONG_PTR Va, ULONG_PTR Parameter
688 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE32)(
689 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
690 ULONG Va, ULONG_PTR Parameter
692 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE64)(
693 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
694 ULONG64 Va, ULONG_PTR Parameter
697 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
698 PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext
700 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(
701 PSYMBOL_INFOW pSymInfo, ULONG SymbolSize, PVOID UserContext
704 typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACK)(
705 PSRCCODEINFO, PVOID
707 typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACKW)(
708 PSRCCODEINFOW, PVOID
711 typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(
712 PSOURCEFILE pSourceFile, PVOID UserContext
714 typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(
715 PSOURCEFILEW pSourceFile, PVOID UserContext
718 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
719 PCSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
721 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(
722 PCSTR, DWORD64, PVOID
724 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(
725 PCWSTR, DWORD64, PVOID
728 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
729 PCSTR, ULONG, ULONG, PVOID
731 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(
732 PCWSTR, ULONG, ULONG, PVOID
734 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(
735 PCSTR, DWORD64, ULONG, PVOID
737 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(
738 PCWSTR, DWORD64, ULONG, PVOID
741 typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
742 HANDLE, DWORD, PVOID
744 typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(
745 HANDLE, ULONG64, ULONG64
748 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
749 HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
750 PVOID UserContext
752 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK64)(
753 HANDLE, ULONG, ULONG64, ULONG64
756 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
757 DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
760 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
761 HANDLE hProcess, DWORD lpBaseAddress, PVOID lpBuffer,
762 DWORD nSize, PDWORD lpNumberOfBytesRead
765 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)(
766 HANDLE hProcess, DWORD64 lpBaseAddress, PVOID lpBuffer,
767 DWORD nSize, LPDWORD lpNumberOfBytesRead
770 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
771 HANDLE hProcess, DWORD AddrBase
774 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(
775 HANDLE hProcess, DWORD64 AddrBase
778 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
779 HANDLE hProcess, DWORD ReturnAddress);
781 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(
782 HANDLE hProcess, DWORD64 ReturnAddress);
784 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
785 HANDLE hProcess, HANDLE hThread, LPADDRESS lpaddr
788 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(
789 HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr
793 /***********************************************************************
794 * Functions
797 BOOL WINAPI BindImage(
798 PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath
800 BOOL WINAPI BindImageEx(
801 DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath,
802 PIMAGEHLP_STATUS_ROUTINE StatusRoutine
804 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
805 LPVOID BaseAddress, DWORD FileLength,
806 LPDWORD HeaderSum, LPDWORD CheckSum
808 BOOL WINAPI EnumDirTree(
809 HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID
811 BOOL WINAPI EnumDirTreeW(
812 HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID
814 BOOL WINAPI EnumerateLoadedModules(
815 HANDLE hProcess,
816 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
817 PVOID UserContext
819 BOOL WINAPI EnumerateLoadedModules64(
820 HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID
822 BOOL WINAPI EnumerateLoadedModulesW64(
823 HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID
825 HANDLE WINAPI FindDebugInfoFile(
826 PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath
828 HANDLE WINAPI FindDebugInfoFileEx(
829 PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID
831 HANDLE WINAPI FindDebugInfoFileExW(
832 PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID
834 HANDLE WINAPI FindExecutableImage(
835 PCSTR, PCSTR, PSTR
837 HANDLE WINAPI FindExecutableImageEx(
838 PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
840 HANDLE WINAPI FindExecutableImageExW(
841 PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
843 BOOL WINAPI FindFileInPath(
844 HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
845 PSTR, PFINDFILEINPATHCALLBACK, PVOID
847 BOOL WINAPI GetImageConfigInformation(
848 PLOADED_IMAGE LoadedImage,
849 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
851 DWORD WINAPI GetImageUnusedHeaderBytes(
852 PLOADED_IMAGE LoadedImage,
853 LPDWORD SizeUnusedHeaderBytes
855 DWORD WINAPI GetTimestampForLoadedLibrary(
856 HMODULE Module
858 BOOL WINAPI ImageAddCertificate(
859 HANDLE FileHandle, LPWIN_CERTIFICATE Certificate, PDWORD Index
861 PVOID WINAPI ImageDirectoryEntryToData(
862 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
864 BOOL WINAPI ImageEnumerateCertificates(
865 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
866 PDWORD Indices, DWORD IndexCount
868 BOOL WINAPI ImageGetCertificateData(
869 HANDLE FileHandle, DWORD CertificateIndex,
870 LPWIN_CERTIFICATE Certificate, PDWORD RequiredLength
872 BOOL WINAPI ImageGetCertificateHeader(
873 HANDLE FileHandle, DWORD CertificateIndex,
874 LPWIN_CERTIFICATE Certificateheader
876 BOOL WINAPI ImageGetDigestStream(
877 HANDLE FileHandle, DWORD DigestLevel,
878 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
880 PLOADED_IMAGE WINAPI ImageLoad(
881 PCSTR DllName, PCSTR DllPath
883 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
884 PVOID Base
886 BOOL WINAPI ImageRemoveCertificate(
887 HANDLE FileHandle, DWORD Index
889 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
890 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
892 PVOID WINAPI ImageRvaToVa(
893 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
894 PIMAGE_SECTION_HEADER *LastRvaSection
896 BOOL WINAPI ImageUnload(
897 PLOADED_IMAGE LoadedImage
899 LPAPI_VERSION WINAPI ImagehlpApiVersion(
900 void
902 LPAPI_VERSION WINAPI ImagehlpApiVersionEx(
903 LPAPI_VERSION AppVersion
905 BOOL WINAPI MakeSureDirectoryPathExists(
906 PCSTR DirPath
908 BOOL WINAPI MapAndLoad(
909 PCSTR ImageName, PCSTR DllPath, PLOADED_IMAGE LoadedImage,
910 BOOL DotDll, BOOL ReadOnly
912 DWORD WINAPI MapFileAndCheckSumA(
913 PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
915 DWORD WINAPI MapFileAndCheckSumW(
916 PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
918 BOOL WINAPI ReBaseImage(
919 PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
920 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
921 ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize,
922 ULONG_PTR *NewImageBase, ULONG TimeStamp
924 BOOL WINAPI ReBaseImage64(
925 PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
926 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
927 ULONG *OldImageSize, ULONG64 *OldImageBase, ULONG *NewImageSize,
928 ULONG64 *NewImageBase, ULONG TimeStamp
930 BOOL WINAPI RemovePrivateCvSymbolic(
931 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
933 BOOL WINAPI SearchTreeForFile(
934 PCSTR RootPath, PCSTR InputPathName, PSTR OutputPathBuffer
936 BOOL WINAPI SearchTreeForFileW(
937 PCWSTR RootPath, PCWSTR InputPathName, PWSTR OutputPathBuffer
939 BOOL WINAPI SetImageConfigInformation(
940 PLOADED_IMAGE LoadedImage,
941 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
943 BOOL WINAPI SplitSymbols(
944 PSTR ImageName, PCSTR SymbolsPath,
945 PSTR SymbolFilePath, ULONG Flags
947 BOOL WINAPI StackWalk(
948 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
949 LPSTACKFRAME StackFrame, PVOID ContextRecord,
950 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
951 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
952 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
953 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
955 BOOL WINAPI StackWalk64(
956 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
957 LPSTACKFRAME64 StackFrame, PVOID ContextRecord,
958 PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
959 PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
960 PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
961 PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
963 BOOL WINAPI SymAddSymbol(
964 HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD
966 BOOL WINAPI SymAddSymbolW(
967 HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD
969 BOOL WINAPI SymCleanup(
970 HANDLE hProcess
972 BOOL WINAPI SymDeleteSymbol(
973 HANDLE, ULONG64, PCSTR, DWORD64, DWORD
975 BOOL WINAPI SymDeleteSymbolW(
976 HANDLE, ULONG64, PCWSTR, DWORD64, DWORD
978 BOOL WINAPI SymEnumerateModules(
979 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
980 PVOID UserContext
982 BOOL WINAPI SymEnumerateModules64(
983 HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID
985 BOOL WINAPI SymEnumerateModulesW64(
986 HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID
988 BOOL WINAPI SymEnumerateSymbols(
989 HANDLE hProcess, DWORD BaseOfDll,
990 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
992 BOOL WINAPI SymEnumerateSymbolsW(
993 HANDLE hProcess, DWORD BaseOfDll,
994 PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
996 BOOL WINAPI SymEnumerateSymbols64(
997 HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID
999 BOOL WINAPI SymEnumerateSymbolsW64(
1000 HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID
1002 BOOL WINAPI SymEnumLines(
1003 HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID
1005 BOOL WINAPI SymEnumLinesW(
1006 HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID
1008 BOOL WINAPI SymEnumSourceFiles(
1009 HANDLE hProcess, ULONG64 ModBase, PCSTR Mask,
1010 PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext
1012 BOOL WINAPI SymEnumSourceFilesW(
1013 HANDLE hProcess, ULONG64 ModBase, PCWSTR Mask,
1014 PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles, PVOID UserContext
1016 BOOL WINAPI SymEnumSourceLines(
1017 HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID
1019 BOOL WINAPI SymEnumSourceLinesW(
1020 HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID
1022 BOOL WINAPI SymEnumSymbols(
1023 HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask,
1024 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
1026 BOOL WINAPI SymEnumSymbolsW(
1027 HANDLE hProcess, DWORD BaseOfDll, PCWSTR Mask,
1028 PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
1030 BOOL WINAPI SymEnumSymbolsForAddr(
1031 HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
1033 BOOL WINAPI SymEnumSymbolsForAddrW(
1034 HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
1036 BOOL WINAPI SymEnumTypes(
1037 HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
1039 BOOL WINAPI SymEnumTypesW(
1040 HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
1042 HANDLE WINAPI SymFindExecutableImage(
1043 HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
1045 HANDLE WINAPI SymFindExecutableImageW(
1046 HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
1048 BOOL WINAPI SymFindFileInPath(
1049 HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
1050 PSTR, PFINDFILEINPATHCALLBACK, PVOID
1052 BOOL WINAPI SymFindFileInPathW(
1053 HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD,
1054 PWSTR, PFINDFILEINPATHCALLBACKW, PVOID
1056 BOOL WINAPI SymFromAddr(
1057 HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*
1059 BOOL WINAPI SymFromAddrW(
1060 HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*
1062 BOOL WINAPI SymFromIndex(
1063 HANDLE, ULONG64, DWORD, PSYMBOL_INFO
1065 BOOL WINAPI SymFromIndexW(
1066 HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
1068 BOOL WINAPI SymFromName(
1069 HANDLE, PCSTR, PSYMBOL_INFO
1071 BOOL WINAPI SymFromNameW(
1072 HANDLE, PCWSTR, PSYMBOL_INFOW
1074 BOOL WINAPI SymFromToken(
1075 HANDLE, DWORD64, DWORD, PSYMBOL_INFO
1077 BOOL WINAPI SymFromTokenW(
1078 HANDLE, DWORD64, DWORD, PSYMBOL_INFOW
1080 PVOID WINAPI SymFunctionTableAccess(
1081 HANDLE hProcess, DWORD AddrBase
1083 PVOID WINAPI SymFunctionTableAccess64(
1084 HANDLE hProcess, DWORD64 AddrBase
1086 ULONG WINAPI SymGetFileLineOffsets64(
1087 HANDLE, PCSTR, PCSTR, PDWORD64, ULONG
1089 PCHAR WINAPI SymGetHomeDirectory(
1090 DWORD, PSTR, size_t
1092 PWSTR WINAPI SymGetHomeDirectoryW(
1093 DWORD, PWSTR, size_t
1095 BOOL WINAPI SymGetLineFromAddr(
1096 HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE
1098 BOOL WINAPI SymGetLineFromAddrW(
1099 HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW
1101 BOOL WINAPI SymGetLineFromAddr64(
1102 HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64
1104 BOOL WINAPI SymGetLineFromAddrW64(
1105 HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64
1107 BOOL WINAPI SymGetLineFromName(
1108 HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE
1110 BOOL WINAPI SymGetLineFromName64(
1111 HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64
1113 BOOL WINAPI SymGetLineFromNameW64(
1114 HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64
1116 BOOL WINAPI SymGetLineNext(
1117 HANDLE, PIMAGEHLP_LINE
1119 BOOL WINAPI SymGetLineNextW(
1120 HANDLE, PIMAGEHLP_LINEW
1122 BOOL WINAPI SymGetLineNext64(
1123 HANDLE, PIMAGEHLP_LINE64
1125 BOOL WINAPI SymGetLineNextW64(
1126 HANDLE, PIMAGEHLP_LINEW64
1128 BOOL WINAPI SymGetLinePrev(
1129 HANDLE, PIMAGEHLP_LINE
1131 BOOL WINAPI SymGetLinePrevW(
1132 HANDLE, PIMAGEHLP_LINEW
1134 BOOL WINAPI SymGetLinePrev64(
1135 HANDLE, PIMAGEHLP_LINE64
1137 BOOL WINAPI SymGetLinePrevW64(
1138 HANDLE, PIMAGEHLP_LINEW64
1140 DWORD WINAPI SymGetModuleBase(
1141 HANDLE hProcess, DWORD dwAddr
1143 BOOL WINAPI SymGetModuleInfo(
1144 HANDLE hProcess, DWORD dwAddr,
1145 PIMAGEHLP_MODULE ModuleInfo
1147 BOOL WINAPI SymGetModuleInfoW(
1148 HANDLE, DWORD, PIMAGEHLP_MODULEW
1150 BOOL WINAPI SymGetModuleInfo64(
1151 HANDLE, DWORD64, PIMAGEHLP_MODULE64
1153 BOOL WINAPI SymGetModuleInfoW64(
1154 HANDLE, DWORD64, PIMAGEHLP_MODULEW64
1156 DWORD WINAPI SymGetOptions(
1157 void
1159 BOOL WINAPI SymGetScope(
1160 HANDLE, ULONG64, DWORD, PSYMBOL_INFO
1162 BOOL WINAPI SymGetScopeW(
1163 HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
1165 BOOL WINAPI SymGetSearchPath(
1166 HANDLE hProcess, PSTR szSearchPath, DWORD SearchPathLength
1168 BOOL WINAPI SymGetSearchPathW(
1169 HANDLE hProcess, PWSTR szSearchPath, DWORD SearchPathLength
1171 BOOL WINAPI SymGetSourceFile(
1172 HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD
1174 BOOL WINAPI SymGetSourceFileW(
1175 HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD
1177 BOOL WINAPI SymGetSourceFileFromToken(
1178 HANDLE, PVOID, PCSTR, PSTR, DWORD
1180 BOOL WINAPI SymGetSourceFileFromTokenW(
1181 HANDLE, PVOID, PCWSTR, PWSTR, DWORD
1183 BOOL WINAPI SymGetSourceFileToken(
1184 HANDLE, ULONG64, PCSTR, PVOID*, DWORD*
1186 BOOL WINAPI SymGetSourceFileTokenW(
1187 HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*
1189 BOOL WINAPI SymGetSourceVarFromToken(
1190 HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD
1192 BOOL WINAPI SymGetSourceVarFromTokenW(
1193 HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD
1195 BOOL WINAPI SymGetSymFromAddr(
1196 HANDLE hProcess, DWORD dwAddr,
1197 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
1199 BOOL WINAPI SymGetSymFromAddr64(
1200 HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64
1202 BOOL WINAPI SymGetSymFromName(
1203 HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL Symbol
1205 BOOL WINAPI SymGetSymFromName64(
1206 HANDLE, PCSTR, PIMAGEHLP_SYMBOL64
1208 BOOL WINAPI SymGetSymNext(
1209 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
1211 BOOL WINAPI SymGetSymNext64(
1212 HANDLE, PIMAGEHLP_SYMBOL64
1214 BOOL WINAPI SymGetSymPrev(
1215 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
1217 BOOL WINAPI SymGetSymPrev64(
1218 HANDLE, PIMAGEHLP_SYMBOL64
1220 BOOL WINAPI SymGetTypeFromName(
1221 HANDLE, ULONG64, PCSTR, PSYMBOL_INFO
1223 BOOL WINAPI SymGetTypeFromNameW(
1224 HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW
1226 BOOL WINAPI SymGetTypeInfo(
1227 HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID
1229 BOOL WINAPI SymGetTypeInfoEx(
1230 HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS
1232 BOOL WINAPI SymInitialize(
1233 HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess
1235 BOOL WINAPI SymInitializeW(
1236 HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess
1238 DWORD WINAPI SymLoadModule(
1239 HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName,
1240 DWORD BaseOfDll, DWORD SizeOfDll
1242 DWORD64 WINAPI SymLoadModule64(
1243 HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD
1245 DWORD64 WINAPI SymLoadModuleEx(
1246 HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
1248 DWORD64 WINAPI SymLoadModuleExW(
1249 HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
1251 BOOL WINAPI SymMatchFileName(
1252 PCSTR, PCSTR, PSTR*, PSTR*
1254 BOOL WINAPI SymMatchFileNameW(
1255 PCWSTR, PCWSTR, PWSTR*, PWSTR*
1257 BOOL WINAPI SymMatchString(
1258 PCSTR, PCSTR, BOOL
1260 BOOL WINAPI SymMatchStringA(
1261 PCSTR, PCSTR, BOOL
1263 BOOL WINAPI SymMatchStringW(
1264 PCWSTR, PCWSTR, BOOL
1266 BOOL WINAPI SymRegisterCallback(
1267 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
1268 PVOID UserContext
1270 BOOL WINAPI SymRegisterCallback64(
1271 HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
1273 BOOL WINAPI SymRegisterCallbackW64(
1274 HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
1276 BOOL WINAPI SymRegisterFunctionEntryCallback(
1277 HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID
1279 BOOL WINAPI SymRegisterFunctionEntryCallback64(
1280 HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64
1282 BOOL WINAPI SymSearch(
1283 HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64,
1284 PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD
1286 BOOL WINAPI SymSearchW(
1287 HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64,
1288 PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD
1290 DWORD WINAPI SymSetContext(
1291 HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
1292 PIMAGEHLP_CONTEXT Context
1294 PCHAR WINAPI SymSetHomeDirectory(
1295 HANDLE, PCSTR
1297 PWSTR WINAPI SymSetHomeDirectoryW(
1298 HANDLE, PCWSTR
1300 DWORD WINAPI SymSetOptions(
1301 DWORD SymOptions
1303 BOOL WINAPI SymSetParentWindow(
1304 HWND
1306 BOOL WINAPI SymSetSearchPath(
1307 HANDLE hProcess, PCSTR szSearchPath
1309 BOOL WINAPI SymSetSearchPathW(
1310 HANDLE hProcess, PCWSTR szSearchPath
1312 BOOL WINAPI SymUnDName(
1313 PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength
1315 BOOL WINAPI SymUnDName64(
1316 PIMAGEHLP_SYMBOL64, PSTR, DWORD
1318 BOOL WINAPI SymUnloadModule(
1319 HANDLE hProcess, DWORD BaseOfDll
1321 BOOL WINAPI TouchFileTimes(
1322 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
1324 DWORD WINAPI UnDecorateSymbolName(
1325 PCSTR DecoratedName, PSTR UnDecoratedName,
1326 DWORD UndecoratedLength, DWORD Flags
1328 DWORD WINAPI UnDecorateSymbolNameW(
1329 PCWSTR DecoratedName, PWSTR UnDecoratedName,
1330 DWORD UndecoratedLength, DWORD Flags
1332 BOOL WINAPI UnMapAndLoad(
1333 PLOADED_IMAGE LoadedImage
1335 BOOL WINAPI UpdateDebugInfoFile(
1336 PCSTR ImageFileName, PCSTR SymbolPath,
1337 PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders
1339 BOOL WINAPI UpdateDebugInfoFileEx(
1340 PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath,
1341 PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum
1344 #ifdef __cplusplus
1345 } /* extern "C" */
1346 #endif /* defined(__cplusplus) */
1348 #endif /* __WINE_IMAGEHLP_H */