msxml3/tests: Add test saving XML with non-english characters.
[wine.git] / include / imagehlp.h
blob0d146d7a16629f5a1ef529e1707e578491550d63
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>
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* defined(__cplusplus) */
30 #define IMAGEAPI WINAPI
31 #define DBHLPAPI IMAGEAPI
33 #define API_VERSION_NUMBER 7 /* 7 is the default */
35 /***********************************************************************
36 * Types
39 typedef PVOID DIGEST_HANDLE;
41 /***********************************************************************
42 * Enums/Defines
45 typedef enum _IMAGEHLP_STATUS_REASON {
46 BindOutOfMemory,
47 BindRvaToVaFailed,
48 BindNoRoomInImage,
49 BindImportModuleFailed,
50 BindImportProcedureFailed,
51 BindImportModule,
52 BindImportProcedure,
53 BindForwarder,
54 BindForwarderNOT,
55 BindImageModified,
56 BindExpandFileHeaders,
57 BindImageComplete,
58 BindMismatchedSymbols,
59 BindSymbolsNotUpdated
60 } IMAGEHLP_STATUS_REASON;
62 #define BIND_NO_BOUND_IMPORTS 0x00000001
63 #define BIND_NO_UPDATE 0x00000002
64 #define BIND_ALL_IMAGES 0x00000004
65 #define BIND_CACHE_IMPORT_DLLS 0x00000008
67 #define CERT_PE_IMAGE_DIGEST_DEBUG_INFO 0x01
68 #define CERT_PE_IMAGE_DIGEST_RESOURCES 0x02
69 #define CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO 0x04
70 #define CERT_PE_IMAGE_DIGEST_NON_PE_INFO 0x08
72 #define CERT_SECTION_TYPE_ANY 0xFF
74 #define SPLITSYM_REMOVE_PRIVATE 0x00000001
75 #define SPLITSYM_EXTRACT_ALL 0x00000002
76 #define SPLITSYM_SYMBOLPATH_IS_SRC 0x00000004
78 #define FRAME_FPO 0
79 #define FRAME_TRAP 1
80 #define FRAME_TSS 2
81 #define FRAME_NONFPO 3
83 #define CHECKSUM_SUCCESS 0
84 #define CHECKSUM_OPEN_FAILURE 1
85 #define CHECKSUM_MAP_FAILURE 2
86 #define CHECKSUM_MAPVIEW_FAILURE 3
87 #define CHECKSUM_UNICODE_FAILURE 4
89 typedef enum _ADDRESS_MODE {
90 AddrMode1616,
91 AddrMode1632,
92 AddrModeReal,
93 AddrModeFlat
94 } ADDRESS_MODE;
96 #define SYMOPT_CASE_INSENSITIVE 0x00000001
97 #define SYMOPT_UNDNAME 0x00000002
98 #define SYMOPT_DEFERRED_LOADS 0x00000004
99 #define SYMOPT_NO_CPP 0x00000008
100 #define SYMOPT_LOAD_LINES 0x00000010
101 #define SYMOPT_OMAP_FIND_NEAREST 0x00000020
103 #define SYMF_OMAP_GENERATED 0x00000001
104 #define SYMF_OMAP_MODIFIED 0x00000002
105 /* 0x00000004 has been obsoleted */
106 #define SYMF_REGISTER 0x00000008
107 #define SYMF_REGREL 0x00000010
108 #define SYMF_FRAMEREL 0x00000020
109 #define SYMF_PARAMETER 0x00000040
110 #define SYMF_LOCAL 0x00000080
111 #define SYMF_CONSTANT 0x00000100
112 #define SYMF_EXPORT 0x00000200
113 #define SYMF_FORWARDER 0x00000400
114 #define SYMF_FUNCTION 0x00000800
116 typedef enum {
117 SymNone,
118 SymCoff,
119 SymCv,
120 SymPdb,
121 SymExport,
122 SymDeferred,
123 SymSym,
124 SymDia,
125 SymVirtual,
126 NumSymTypes
127 } SYM_TYPE;
129 #define UNDNAME_COMPLETE 0x0000
130 #define UNDNAME_NO_LEADING_UNDERSCORES 0x0001
131 #define UNDNAME_NO_MS_KEYWORDS 0x0002
132 #define UNDNAME_NO_FUNCTION_RETURNS 0x0004
133 #define UNDNAME_NO_ALLOCATION_MODEL 0x0008
134 #define UNDNAME_NO_ALLOCATION_LANGUAGE 0x0010
135 #define UNDNAME_NO_MS_THISTYPE 0x0020
136 #define UNDNAME_NO_CV_THISTYPE 0x0040
137 #define UNDNAME_NO_THISTYPE 0x0060
138 #define UNDNAME_NO_ACCESS_SPECIFIERS 0x0080
139 #define UNDNAME_NO_THROW_SIGNATURES 0x0100
140 #define UNDNAME_NO_MEMBER_TYPE 0x0200
141 #define UNDNAME_NO_RETURN_UDT_MODEL 0x0400
142 #define UNDNAME_32_BIT_DECODE 0x0800
143 #define UNDNAME_NAME_ONLY 0x1000
144 #define UNDNAME_NO_ARGUMENTS 0x2000
145 #define UNDNAME_NO_SPECIAL_SYMS 0x4000
147 #define CBA_DEFERRED_SYMBOL_LOAD_START 0x00000001
148 #define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE 0x00000002
149 #define CBA_DEFERRED_SYMBOL_LOAD_FAILURE 0x00000003
150 #define CBA_SYMBOLS_UNLOADED 0x00000004
151 #define CBA_DUPLICATE_SYMBOL 0x00000005
153 /***********************************************************************
154 * Structures
157 typedef struct _LOADED_IMAGE
159 PSTR ModuleName;
160 HANDLE hFile;
161 PUCHAR MappedAddress;
162 PIMAGE_NT_HEADERS FileHeader;
163 PIMAGE_SECTION_HEADER LastRvaSection;
164 ULONG NumberOfSections;
165 PIMAGE_SECTION_HEADER Sections;
166 ULONG Characteristics;
167 BOOLEAN fSystemImage;
168 BOOLEAN fDOSImage;
169 BOOLEAN fReadOnly;
170 UCHAR Version;
171 LIST_ENTRY Links;
172 ULONG SizeOfImage;
173 } LOADED_IMAGE, *PLOADED_IMAGE;
175 typedef struct _API_VERSION {
176 USHORT MajorVersion;
177 USHORT MinorVersion;
178 USHORT Revision;
179 USHORT Reserved;
180 } API_VERSION, *LPAPI_VERSION;
182 #ifndef _WIN64
183 typedef struct _IMAGE_DEBUG_INFORMATION {
184 LIST_ENTRY List;
185 DWORD Size;
186 PVOID MappedBase;
187 USHORT Machine;
188 USHORT Characteristics;
189 DWORD CheckSum;
190 DWORD ImageBase;
191 DWORD SizeOfImage;
193 DWORD NumberOfSections;
194 PIMAGE_SECTION_HEADER Sections;
196 DWORD ExportedNamesSize;
197 PSTR ExportedNames;
199 DWORD NumberOfFunctionTableEntries;
200 PIMAGE_FUNCTION_ENTRY FunctionTableEntries;
201 DWORD LowestFunctionStartingAddress;
202 DWORD HighestFunctionEndingAddress;
204 DWORD NumberOfFpoTableEntries;
205 PFPO_DATA FpoTableEntries;
207 DWORD SizeOfCoffSymbols;
208 PIMAGE_COFF_SYMBOLS_HEADER CoffSymbols;
210 DWORD SizeOfCodeViewSymbols;
211 PVOID CodeViewSymbols;
213 PSTR ImageFilePath;
214 PSTR ImageFileName;
215 PSTR DebugFilePath;
217 DWORD TimeDateStamp;
219 BOOL RomImage;
220 PIMAGE_DEBUG_DIRECTORY DebugDirectory;
221 DWORD NumberOfDebugDirectories;
223 DWORD Reserved[3];
224 } IMAGE_DEBUG_INFORMATION, *PIMAGE_DEBUG_INFORMATION;
226 PIMAGE_DEBUG_INFORMATION WINAPI MapDebugInformation(
227 HANDLE FileHandle, PCSTR FileName,
228 PCSTR SymbolPath, ULONG ImageBase
230 BOOL WINAPI UnmapDebugInformation(
231 PIMAGE_DEBUG_INFORMATION DebugInfo
233 #endif
235 typedef struct _ADDRESS {
236 DWORD Offset;
237 WORD Segment;
238 ADDRESS_MODE Mode;
239 } ADDRESS, *LPADDRESS;
241 typedef struct _ADDRESS64 {
242 DWORD64 Offset;
243 WORD Segment;
244 ADDRESS_MODE Mode;
245 } ADDRESS64, *LPADDRESS64;
247 typedef struct _KDHELP {
248 DWORD Thread;
249 DWORD ThCallbackStack;
250 DWORD NextCallback;
251 DWORD FramePointer;
252 DWORD KiCallUserMode;
253 DWORD KeUserCallbackDispatcher;
254 DWORD SystemRangeStart;
255 } KDHELP, *PKDHELP;
257 typedef struct _KDHELP64 {
258 DWORD64 Thread;
259 DWORD ThCallbackStack;
260 DWORD ThCallbackBStore;
261 DWORD NextCallback;
262 DWORD FramePointer;
263 DWORD64 KiCallUserMode;
264 DWORD64 KeUserCallbackDispatcher;
265 DWORD64 SystemRangeStart;
266 DWORD64 Reserved[8];
267 } KDHELP64, *PKDHELP64;
269 typedef struct _STACKFRAME {
270 ADDRESS AddrPC;
271 ADDRESS AddrReturn;
272 ADDRESS AddrFrame;
273 ADDRESS AddrStack;
274 PVOID FuncTableEntry;
275 DWORD Params[4];
276 BOOL Far;
277 BOOL Virtual;
278 DWORD Reserved[3];
279 KDHELP KdHelp;
280 } STACKFRAME, *LPSTACKFRAME;
282 typedef struct _STACKFRAME64 {
283 ADDRESS64 AddrPC;
284 ADDRESS64 AddrReturn;
285 ADDRESS64 AddrFrame;
286 ADDRESS64 AddrStack;
287 ADDRESS64 AddrBStore;
288 PVOID FuncTableEntry;
289 DWORD64 Params[4];
290 BOOL Far;
291 BOOL Virtual;
292 DWORD64 Reserved[3];
293 KDHELP64 KdHelp;
294 } STACKFRAME64, *LPSTACKFRAME64;
296 typedef struct _SOURCEFILE {
297 DWORD64 ModBase;
298 PCHAR FileName;
299 } SOURCEFILE, *PSOURCEFILE;
301 typedef struct _SOURCEFILEW
303 DWORD64 ModBase;
304 PWSTR FileName;
305 } SOURCEFILEW, *PSOURCEFILEW;
307 typedef struct _IMAGEHLP_STACK_FRAME
309 DWORD InstructionOffset;
310 DWORD ReturnOffset;
311 DWORD FrameOffset;
312 DWORD StackOffset;
313 DWORD BackingStoreOffset;
314 DWORD FuncTableEntry;
315 DWORD Params[4];
316 DWORD Reserved[5];
317 DWORD Virtual;
318 DWORD Reserved2;
319 } IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
321 typedef VOID IMAGEHLP_CONTEXT, *PIMAGEHLP_CONTEXT;
323 typedef struct _IMAGEHLP_SYMBOL {
324 DWORD SizeOfStruct;
325 DWORD Address;
326 DWORD Size;
327 DWORD Flags;
328 DWORD MaxNameLength;
329 CHAR Name[ANYSIZE_ARRAY];
330 } IMAGEHLP_SYMBOL, *PIMAGEHLP_SYMBOL;
332 typedef struct _IMAGEHLP_SYMBOLW {
333 DWORD SizeOfStruct;
334 DWORD Address;
335 DWORD Size;
336 DWORD Flags;
337 DWORD MaxNameLength;
338 WCHAR Name[ANYSIZE_ARRAY];
339 } IMAGEHLP_SYMBOLW, *PIMAGEHLP_SYMBOLW;
341 typedef struct _IMAGEHLP_SYMBOL64
343 DWORD SizeOfStruct;
344 DWORD64 Address;
345 DWORD Size;
346 DWORD Flags;
347 DWORD MaxNameLength;
348 CHAR Name[1];
349 } IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64;
351 typedef struct _IMAGEHLP_SYMBOLW64
353 DWORD SizeOfStruct;
354 DWORD64 Address;
355 DWORD Size;
356 DWORD Flags;
357 DWORD MaxNameLength;
358 WCHAR Name[1];
359 } IMAGEHLP_SYMBOLW64, *PIMAGEHLP_SYMBOLW64;
361 typedef struct _IMAGEHLP_MODULE {
362 DWORD SizeOfStruct;
363 DWORD BaseOfImage;
364 DWORD ImageSize;
365 DWORD TimeDateStamp;
366 DWORD CheckSum;
367 DWORD NumSyms;
368 SYM_TYPE SymType;
369 CHAR ModuleName[32];
370 CHAR ImageName[256];
371 CHAR LoadedImageName[256];
372 } IMAGEHLP_MODULE, *PIMAGEHLP_MODULE;
374 typedef struct _IMAGEHLP_MODULEW {
375 DWORD SizeOfStruct;
376 DWORD BaseOfImage;
377 DWORD ImageSize;
378 DWORD TimeDateStamp;
379 DWORD CheckSum;
380 DWORD NumSyms;
381 SYM_TYPE SymType;
382 WCHAR ModuleName[32];
383 WCHAR ImageName[256];
384 WCHAR LoadedImageName[256];
385 } IMAGEHLP_MODULEW, *PIMAGEHLP_MODULEW;
387 typedef struct _IMAGEHLP_MODULE64
389 DWORD SizeOfStruct;
390 DWORD64 BaseOfImage;
391 DWORD ImageSize;
392 DWORD TimeDateStamp;
393 DWORD CheckSum;
394 DWORD NumSyms;
395 SYM_TYPE SymType;
396 CHAR ModuleName[32];
397 CHAR ImageName[256];
398 CHAR LoadedImageName[256];
399 CHAR LoadedPdbName[256];
400 DWORD CVSig;
401 CHAR CVData[MAX_PATH*3];
402 DWORD PdbSig;
403 GUID PdbSig70;
404 DWORD PdbAge;
405 BOOL PdbUnmatched;
406 BOOL DbgUnmatched;
407 BOOL LineNumbers;
408 BOOL GlobalSymbols;
409 BOOL TypeInfo;
410 BOOL SourceIndexed;
411 BOOL Publics;
412 DWORD MachineType;
413 DWORD Reserved;
414 } IMAGEHLP_MODULE64, *PIMAGEHLP_MODULE64;
416 typedef struct _IMAGEHLP_MODULEW64
418 DWORD SizeOfStruct;
419 DWORD64 BaseOfImage;
420 DWORD ImageSize;
421 DWORD TimeDateStamp;
422 DWORD CheckSum;
423 DWORD NumSyms;
424 SYM_TYPE SymType;
425 WCHAR ModuleName[32];
426 WCHAR ImageName[256];
427 WCHAR LoadedImageName[256];
428 WCHAR LoadedPdbName[256];
429 DWORD CVSig;
430 WCHAR CVData[MAX_PATH*3];
431 DWORD PdbSig;
432 GUID PdbSig70;
433 DWORD PdbAge;
434 BOOL PdbUnmatched;
435 BOOL DbgUnmatched;
436 BOOL LineNumbers;
437 BOOL GlobalSymbols;
438 BOOL TypeInfo;
439 BOOL SourceIndexed;
440 BOOL Publics;
441 DWORD MachineType;
442 DWORD Reserved;
443 } IMAGEHLP_MODULEW64, *PIMAGEHLP_MODULEW64;
445 typedef struct _IMAGEHLP_LINE {
446 DWORD SizeOfStruct;
447 PVOID Key;
448 DWORD LineNumber;
449 PCHAR FileName;
450 DWORD Address;
451 } IMAGEHLP_LINE, *PIMAGEHLP_LINE;
453 typedef struct _IMAGEHLP_LINEW {
454 DWORD SizeOfStruct;
455 PVOID Key;
456 DWORD LineNumber;
457 PWSTR FileName;
458 DWORD Address;
459 } IMAGEHLP_LINEW, *PIMAGEHLP_LINEW;
461 typedef struct _IMAGEHLP_LINE64 {
462 DWORD SizeOfStruct;
463 PVOID Key;
464 DWORD LineNumber;
465 PCHAR FileName;
466 DWORD64 Address;
467 } IMAGEHLP_LINE64, *PIMAGEHLP_LINE64;
469 typedef struct _IMAGEHLP_LINEW64 {
470 DWORD SizeOfStruct;
471 PVOID Key;
472 DWORD LineNumber;
473 PWSTR FileName;
474 DWORD64 Address;
475 } IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64;
477 typedef struct _IMAGEHLP_DEFERRED_SYMBOL_LOAD {
478 DWORD SizeOfStruct;
479 DWORD BaseOfImage;
480 DWORD CheckSum;
481 DWORD TimeDateStamp;
482 CHAR FileName[MAX_PATH];
483 BOOLEAN Reparse;
484 } IMAGEHLP_DEFERRED_SYMBOL_LOAD, *PIMAGEHLP_DEFERRED_SYMBOL_LOAD;
486 typedef struct _IMAGEHLP_DUPLICATE_SYMBOL {
487 DWORD SizeOfStruct;
488 DWORD NumberOfDups;
489 PIMAGEHLP_SYMBOL Symbol;
490 ULONG SelectedSymbol;
491 } IMAGEHLP_DUPLICATE_SYMBOL, *PIMAGEHLP_DUPLICATE_SYMBOL;
493 typedef enum _IMAGEHLP_SYMBOL_TYPE_INFO
495 TI_GET_SYMTAG,
496 TI_GET_SYMNAME,
497 TI_GET_LENGTH,
498 TI_GET_TYPE,
499 TI_GET_TYPEID,
500 TI_GET_BASETYPE,
501 TI_GET_ARRAYINDEXTYPEID,
502 TI_FINDCHILDREN,
503 TI_GET_DATAKIND,
504 TI_GET_ADDRESSOFFSET,
505 TI_GET_OFFSET,
506 TI_GET_VALUE,
507 TI_GET_COUNT,
508 TI_GET_CHILDRENCOUNT,
509 TI_GET_BITPOSITION,
510 TI_GET_VIRTUALBASECLASS,
511 TI_GET_VIRTUALTABLESHAPEID,
512 TI_GET_VIRTUALBASEPOINTEROFFSET,
513 TI_GET_CLASSPARENTID,
514 TI_GET_NESTED,
515 TI_GET_SYMINDEX,
516 TI_GET_LEXICALPARENT,
517 TI_GET_ADDRESS,
518 TI_GET_THISADJUST,
519 TI_GET_UDTKIND,
520 TI_IS_EQUIV_TO,
521 TI_GET_CALLING_CONVENTION,
522 } IMAGEHLP_SYMBOL_TYPE_INFO;
524 #define IMAGEHLP_GET_TYPE_INFO_UNCACHED 0x00000001
525 #define IMAGEHLP_GET_TYPE_INFO_CHILDREN 0x00000002
526 typedef struct _IMAGEHLP_GET_TYPE_INFO_PARAMS
528 ULONG SizeOfStruct;
529 ULONG Flags;
530 ULONG NumIds;
531 PULONG TypeIds;
532 ULONG64 TagFilter;
533 ULONG NumReqs;
534 IMAGEHLP_SYMBOL_TYPE_INFO* ReqKinds;
535 PULONG_PTR ReqOffsets;
536 PULONG ReqSizes;
537 ULONG_PTR ReqStride;
538 ULONG_PTR BufferSize;
539 PVOID Buffer;
540 ULONG EntriesMatched;
541 ULONG EntriesFilled;
542 ULONG64 TagsFound;
543 ULONG64 AllReqsValid;
544 ULONG NumReqsValid;
545 PULONG64 ReqsValid;
546 } IMAGEHLP_GET_TYPE_INFO_PARAMS, *PIMAGEHLP_GET_TYPE_INFO_PARAMS;
548 #define IMAGEHLP_SYMBOL_INFO_VALUEPRESENT 1
549 #define IMAGEHLP_SYMBOL_INFO_REGISTER SYMF_REGISTER
550 #define IMAGEHLP_SYMBOL_INFO_REGRELATIVE SYMF_REGREL
551 #define IMAGEHLP_SYMBOL_INFO_FRAMERELATIVE SYMF_FRAMEREL
552 #define IMAGEHLP_SYMBOL_INFO_PARAMETER SYMF_PARAMETER
553 #define IMAGEHLP_SYMBOL_INFO_LOCAL SYMF_LOCAL
554 #define IMAGEHLP_SYMBOL_INFO_CONSTANT SYMF_CONSTANT
555 #define IMAGEHLP_SYMBOL_FUNCTION SYMF_FUNCTION
557 #define MAX_SYM_NAME 2000
559 typedef struct _SYMBOL_INFO {
560 ULONG SizeOfStruct;
561 ULONG TypeIndex;
562 ULONG64 Reserved[2];
563 ULONG info;
564 ULONG Size;
565 ULONG64 ModBase;
566 ULONG Flags;
567 ULONG64 Value;
568 ULONG64 Address;
569 ULONG Register;
570 ULONG Scope;
571 ULONG Tag;
572 ULONG NameLen;
573 ULONG MaxNameLen;
574 CHAR Name[1];
575 } SYMBOL_INFO, *PSYMBOL_INFO;
577 typedef struct _SYMBOL_INFOW
579 ULONG SizeOfStruct;
580 ULONG TypeIndex;
581 ULONG64 Reserved[2];
582 ULONG Index;
583 ULONG Size;
584 ULONG64 ModBase;
585 ULONG Flags;
586 ULONG64 Value;
587 ULONG64 Address;
588 ULONG Register;
589 ULONG Scope;
590 ULONG Tag;
591 ULONG NameLen;
592 ULONG MaxNameLen;
593 WCHAR Name[1];
594 } SYMBOL_INFOW, *PSYMBOL_INFOW;
596 typedef struct _SYMBOL_INFO_PACKAGE
598 SYMBOL_INFO si;
599 CHAR name[MAX_SYM_NAME+1];
600 } SYMBOL_INFO_PACKAGE, *PSYMBOL_INFO_PACKAGE;
602 typedef struct _SYMBOL_INFO_PACKAGEW
604 SYMBOL_INFOW si;
605 WCHAR name[MAX_SYM_NAME+1];
606 } SYMBOL_INFO_PACKAGEW, *PSYMBOL_INFO_PACKAGEW;
608 #define DBHHEADER_DEBUGDIRS 0x1
609 typedef struct _MODLOAD_DATA
611 DWORD ssize;
612 DWORD ssig;
613 PVOID data;
614 DWORD size;
615 DWORD flags;
616 } MODLOAD_DATA, *PMODLOAD_DATA;
618 typedef struct _SRCCODEINFO
620 DWORD SizeOfStruct;
621 PVOID Key;
622 DWORD64 ModBase;
623 CHAR Obj[MAX_PATH+1];
624 CHAR FileName[MAX_PATH+1];
625 DWORD LineNumber;
626 DWORD64 Address;
627 } SRCCODEINFO, *PSRCCODEINFO;
629 typedef struct _SRCCODEINFOW
631 DWORD SizeOfStruct;
632 PVOID Key;
633 DWORD64 ModBase;
634 WCHAR Obj[MAX_PATH+1];
635 WCHAR FileName[MAX_PATH+1];
636 DWORD LineNumber;
637 DWORD64 Address;
638 } SRCCODEINFOW, *PSRCCODEINFOW;
640 /***********************************************************************
641 * Callbacks
644 typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(
645 PCSTR, PVOID
647 typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(
648 PCWSTR, PVOID
651 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK)(
652 PCSTR ModuleName, ULONG ModuleBase, ULONG ModuleSize,
653 PVOID UserContext
655 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACK64)(
656 PCSTR, DWORD64, ULONG, PVOID
658 typedef BOOL (CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(
659 PCWSTR, DWORD64, ULONG, PVOID
662 typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACK)(
663 HANDLE, PCSTR, PVOID
665 typedef BOOL (CALLBACK *PFIND_DEBUG_FILE_CALLBACKW)(
666 HANDLE, PCWSTR, PVOID
669 typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACK)(
670 HANDLE, PCSTR, PVOID
672 typedef BOOL (CALLBACK *PFIND_EXE_FILE_CALLBACKW)(
673 HANDLE, PCWSTR, PVOID
676 typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACK)(
677 PCSTR, PVOID
679 typedef BOOL (CALLBACK *PFINDFILEINPATHCALLBACKW)(
680 PCWSTR, PVOID
683 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE)(
684 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
685 ULONG_PTR Va, ULONG_PTR Parameter
687 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE32)(
688 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
689 ULONG Va, ULONG_PTR Parameter
691 typedef BOOL (CALLBACK *PIMAGEHLP_STATUS_ROUTINE64)(
692 IMAGEHLP_STATUS_REASON Reason, PCSTR ImageName, PCSTR DllName,
693 ULONG64 Va, ULONG_PTR Parameter
696 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(
697 PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext
699 typedef BOOL (CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(
700 PSYMBOL_INFOW pSymInfo, ULONG SymbolSize, PVOID UserContext
703 typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACK)(
704 PSRCCODEINFO, PVOID
706 typedef BOOL (CALLBACK* PSYM_ENUMLINES_CALLBACKW)(
707 PSRCCODEINFOW, PVOID
710 typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACK)(
711 PSOURCEFILE pSourceFile, PVOID UserContext
713 typedef BOOL (CALLBACK *PSYM_ENUMSOURCEFILES_CALLBACKW)(
714 PSOURCEFILEW pSourceFile, PVOID UserContext
717 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK)(
718 PCSTR ModuleName, ULONG BaseOfDll, PVOID UserContext
720 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACK64)(
721 PCSTR, DWORD64, PVOID
723 typedef BOOL (CALLBACK *PSYM_ENUMMODULES_CALLBACKW64)(
724 PCWSTR, DWORD64, PVOID
727 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK)(
728 PCSTR, ULONG, ULONG, PVOID
730 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACKW)(
731 PCWSTR, ULONG, ULONG, PVOID
733 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64)(
734 PCSTR, DWORD64, ULONG, PVOID
736 typedef BOOL (CALLBACK *PSYM_ENUMSYMBOLS_CALLBACK64W)(
737 PCWSTR, DWORD64, ULONG, PVOID
740 typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
741 HANDLE, DWORD, PVOID
743 typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK64)(
744 HANDLE, ULONG64, ULONG64
747 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
748 HANDLE hProcess, ULONG ActionCode, PVOID CallbackData,
749 PVOID UserContext
751 typedef BOOL (CALLBACK *PSYMBOL_REGISTERED_CALLBACK64)(
752 HANDLE, ULONG, ULONG64, ULONG64
755 typedef BOOL (CALLBACK *DIGEST_FUNCTION)(
756 DIGEST_HANDLE refdata, PBYTE pData, DWORD dwLength
759 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE)(
760 HANDLE hProcess, DWORD lpBaseAddress, PVOID lpBuffer,
761 DWORD nSize, PDWORD lpNumberOfBytesRead
764 typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64)(
765 HANDLE hProcess, DWORD64 lpBaseAddress, PVOID lpBuffer,
766 DWORD nSize, LPDWORD lpNumberOfBytesRead
769 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(
770 HANDLE hProcess, DWORD AddrBase
773 typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(
774 HANDLE hProcess, DWORD64 AddrBase
777 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE)(
778 HANDLE hProcess, DWORD ReturnAddress);
780 typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(
781 HANDLE hProcess, DWORD64 ReturnAddress);
783 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE)(
784 HANDLE hProcess, HANDLE hThread, LPADDRESS lpaddr
787 typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(
788 HANDLE hProcess, HANDLE hThread, LPADDRESS64 lpaddr
792 /***********************************************************************
793 * Functions
796 BOOL WINAPI BindImage(
797 PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath
799 BOOL WINAPI BindImageEx(
800 DWORD Flags, PCSTR ImageName, PCSTR DllPath, PCSTR SymbolPath,
801 PIMAGEHLP_STATUS_ROUTINE StatusRoutine
803 PIMAGE_NT_HEADERS WINAPI CheckSumMappedFile(
804 LPVOID BaseAddress, DWORD FileLength,
805 LPDWORD HeaderSum, LPDWORD CheckSum
807 BOOL WINAPI EnumDirTree(
808 HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, PVOID
810 BOOL WINAPI EnumDirTreeW(
811 HANDLE, PCWSTR, PCWSTR, PWSTR, PENUMDIRTREE_CALLBACKW, PVOID
813 BOOL WINAPI EnumerateLoadedModules(
814 HANDLE hProcess,
815 PENUMLOADED_MODULES_CALLBACK EnumLoadedModulesCallback,
816 PVOID UserContext
818 BOOL WINAPI EnumerateLoadedModules64(
819 HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID
821 BOOL WINAPI EnumerateLoadedModulesW64(
822 HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID
824 HANDLE WINAPI FindDebugInfoFile(
825 PCSTR FileName, PCSTR SymbolPath, PSTR DebugFilePath
827 HANDLE WINAPI FindDebugInfoFileEx(
828 PCSTR, PCSTR, PSTR, PFIND_DEBUG_FILE_CALLBACK, PVOID
830 HANDLE WINAPI FindDebugInfoFileExW(
831 PCWSTR, PCWSTR, PWSTR, PFIND_DEBUG_FILE_CALLBACKW, PVOID
833 HANDLE WINAPI FindExecutableImage(
834 PCSTR, PCSTR, PSTR
836 HANDLE WINAPI FindExecutableImageEx(
837 PCSTR, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
839 HANDLE WINAPI FindExecutableImageExW(
840 PCWSTR, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
842 BOOL WINAPI FindFileInPath(
843 HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
844 PSTR, PFINDFILEINPATHCALLBACK, PVOID
846 BOOL WINAPI GetImageConfigInformation(
847 PLOADED_IMAGE LoadedImage,
848 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
850 DWORD WINAPI GetImageUnusedHeaderBytes(
851 PLOADED_IMAGE LoadedImage,
852 LPDWORD SizeUnusedHeaderBytes
854 DWORD WINAPI GetTimestampForLoadedLibrary(
855 HMODULE Module
857 BOOL WINAPI ImageAddCertificate(
858 HANDLE FileHandle, LPWIN_CERTIFICATE Certificate, PDWORD Index
860 PVOID WINAPI ImageDirectoryEntryToData(
861 PVOID Base, BOOLEAN MappedAsImage, USHORT DirectoryEntry, PULONG Size
863 BOOL WINAPI ImageEnumerateCertificates(
864 HANDLE FileHandle, WORD TypeFilter, PDWORD CertificateCount,
865 PDWORD Indices, DWORD IndexCount
867 BOOL WINAPI ImageGetCertificateData(
868 HANDLE FileHandle, DWORD CertificateIndex,
869 LPWIN_CERTIFICATE Certificate, PDWORD RequiredLength
871 BOOL WINAPI ImageGetCertificateHeader(
872 HANDLE FileHandle, DWORD CertificateIndex,
873 LPWIN_CERTIFICATE Certificateheader
875 BOOL WINAPI ImageGetDigestStream(
876 HANDLE FileHandle, DWORD DigestLevel,
877 DIGEST_FUNCTION DigestFunction, DIGEST_HANDLE DigestHandle
879 PLOADED_IMAGE WINAPI ImageLoad(
880 PCSTR DllName, PCSTR DllPath
882 PIMAGE_NT_HEADERS WINAPI ImageNtHeader(
883 PVOID Base
885 BOOL WINAPI ImageRemoveCertificate(
886 HANDLE FileHandle, DWORD Index
888 PIMAGE_SECTION_HEADER WINAPI ImageRvaToSection(
889 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva
891 PVOID WINAPI ImageRvaToVa(
892 PIMAGE_NT_HEADERS NtHeaders, PVOID Base, ULONG Rva,
893 PIMAGE_SECTION_HEADER *LastRvaSection
895 BOOL WINAPI ImageUnload(
896 PLOADED_IMAGE LoadedImage
898 LPAPI_VERSION WINAPI ImagehlpApiVersion(
899 void
901 LPAPI_VERSION WINAPI ImagehlpApiVersionEx(
902 LPAPI_VERSION AppVersion
904 BOOL WINAPI MakeSureDirectoryPathExists(
905 PCSTR DirPath
907 BOOL WINAPI MapAndLoad(
908 PCSTR ImageName, PCSTR DllPath, PLOADED_IMAGE LoadedImage,
909 BOOL DotDll, BOOL ReadOnly
911 DWORD WINAPI MapFileAndCheckSumA(
912 PCSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
914 DWORD WINAPI MapFileAndCheckSumW(
915 PCWSTR Filename, PDWORD HeaderSum, PDWORD CheckSum
917 BOOL WINAPI ReBaseImage(
918 PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
919 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
920 ULONG *OldImageSize, ULONG_PTR *OldImageBase, ULONG *NewImageSize,
921 ULONG_PTR *NewImageBase, ULONG TimeStamp
923 BOOL WINAPI ReBaseImage64(
924 PCSTR CurrentImageName, PCSTR SymbolPath, BOOL fReBase,
925 BOOL fRebaseSysfileOk, BOOL fGoingDown, ULONG CheckImageSize,
926 ULONG *OldImageSize, ULONG64 *OldImageBase, ULONG *NewImageSize,
927 ULONG64 *NewImageBase, ULONG TimeStamp
929 BOOL WINAPI RemovePrivateCvSymbolic(
930 PCHAR DebugData, PCHAR *NewDebugData, ULONG *NewDebugSize
932 BOOL WINAPI SearchTreeForFile(
933 PCSTR RootPath, PCSTR InputPathName, PSTR OutputPathBuffer
935 BOOL WINAPI SearchTreeForFileW(
936 PCWSTR RootPath, PCWSTR InputPathName, PWSTR OutputPathBuffer
938 BOOL WINAPI SetImageConfigInformation(
939 PLOADED_IMAGE LoadedImage,
940 PIMAGE_LOAD_CONFIG_DIRECTORY ImageConfigInformation
942 BOOL WINAPI SplitSymbols(
943 PSTR ImageName, PCSTR SymbolsPath,
944 PSTR SymbolFilePath, ULONG Flags
946 BOOL WINAPI StackWalk(
947 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
948 LPSTACKFRAME StackFrame, PVOID ContextRecord,
949 PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine,
950 PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine,
951 PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine,
952 PTRANSLATE_ADDRESS_ROUTINE TranslateAddress
954 BOOL WINAPI StackWalk64(
955 DWORD MachineType, HANDLE hProcess, HANDLE hThread,
956 LPSTACKFRAME64 StackFrame, PVOID ContextRecord,
957 PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine,
958 PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine,
959 PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine,
960 PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress
962 BOOL WINAPI SymAddSymbol(
963 HANDLE, ULONG64, PCSTR, DWORD64, DWORD, DWORD
965 BOOL WINAPI SymAddSymbolW(
966 HANDLE, ULONG64, PCWSTR, DWORD64, DWORD, DWORD
968 BOOL WINAPI SymCleanup(
969 HANDLE hProcess
971 BOOL WINAPI SymDeleteSymbol(
972 HANDLE, ULONG64, PCSTR, DWORD64, DWORD
974 BOOL WINAPI SymDeleteSymbolW(
975 HANDLE, ULONG64, PCWSTR, DWORD64, DWORD
977 BOOL WINAPI SymEnumerateModules(
978 HANDLE hProcess, PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
979 PVOID UserContext
981 BOOL WINAPI SymEnumerateModules64(
982 HANDLE, PSYM_ENUMMODULES_CALLBACK64, PVOID
984 BOOL WINAPI SymEnumerateModulesW64(
985 HANDLE, PSYM_ENUMMODULES_CALLBACKW64, PVOID
987 BOOL WINAPI SymEnumerateSymbols(
988 HANDLE hProcess, DWORD BaseOfDll,
989 PSYM_ENUMSYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
991 BOOL WINAPI SymEnumerateSymbolsW(
992 HANDLE hProcess, DWORD BaseOfDll,
993 PSYM_ENUMSYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
995 BOOL WINAPI SymEnumerateSymbols64(
996 HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64, PVOID
998 BOOL WINAPI SymEnumerateSymbolsW64(
999 HANDLE, ULONG64, PSYM_ENUMSYMBOLS_CALLBACK64W, PVOID
1001 BOOL WINAPI SymEnumLines(
1002 HANDLE, ULONG64, PCSTR, PCSTR, PSYM_ENUMLINES_CALLBACK, PVOID
1004 BOOL WINAPI SymEnumLinesW(
1005 HANDLE, ULONG64, PCWSTR, PCWSTR, PSYM_ENUMLINES_CALLBACKW, PVOID
1007 BOOL WINAPI SymEnumSourceFiles(
1008 HANDLE hProcess, ULONG64 ModBase, PCSTR Mask,
1009 PSYM_ENUMSOURCEFILES_CALLBACK cbSrcFiles, PVOID UserContext
1011 BOOL WINAPI SymEnumSourceFilesW(
1012 HANDLE hProcess, ULONG64 ModBase, PCWSTR Mask,
1013 PSYM_ENUMSOURCEFILES_CALLBACKW cbSrcFiles, PVOID UserContext
1015 BOOL WINAPI SymEnumSourceLines(
1016 HANDLE, ULONG64, PCSTR, PCSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACK, PVOID
1018 BOOL WINAPI SymEnumSourceLinesW(
1019 HANDLE, ULONG64, PCWSTR, PCWSTR, DWORD, DWORD, PSYM_ENUMLINES_CALLBACKW, PVOID
1021 BOOL WINAPI SymEnumSymbols(
1022 HANDLE hProcess, DWORD BaseOfDll, PCSTR Mask,
1023 PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext
1025 BOOL WINAPI SymEnumSymbolsW(
1026 HANDLE hProcess, DWORD BaseOfDll, PCWSTR Mask,
1027 PSYM_ENUMERATESYMBOLS_CALLBACKW EnumSymbolsCallback, PVOID UserContext
1029 BOOL WINAPI SymEnumSymbolsForAddr(
1030 HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
1032 BOOL WINAPI SymEnumSymbolsForAddrW(
1033 HANDLE, DWORD64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
1035 BOOL WINAPI SymEnumTypes(
1036 HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID
1038 BOOL WINAPI SymEnumTypesW(
1039 HANDLE, ULONG64, PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID
1041 HANDLE WINAPI SymFindExecutableImage(
1042 HANDLE, PCSTR, PSTR, PFIND_EXE_FILE_CALLBACK, PVOID
1044 HANDLE WINAPI SymFindExecutableImageW(
1045 HANDLE, PCWSTR, PWSTR, PFIND_EXE_FILE_CALLBACKW, PVOID
1047 BOOL WINAPI SymFindFileInPath(
1048 HANDLE, PCSTR, PCSTR, PVOID, DWORD, DWORD, DWORD,
1049 PSTR, PFINDFILEINPATHCALLBACK, PVOID
1051 BOOL WINAPI SymFindFileInPathW(
1052 HANDLE, PCWSTR, PCWSTR, PVOID, DWORD, DWORD, DWORD,
1053 PWSTR, PFINDFILEINPATHCALLBACKW, PVOID
1055 BOOL WINAPI SymFromAddr(
1056 HANDLE, DWORD64, DWORD64*, SYMBOL_INFO*
1058 BOOL WINAPI SymFromAddrW(
1059 HANDLE, DWORD64, DWORD64*, SYMBOL_INFOW*
1061 BOOL WINAPI SymFromIndex(
1062 HANDLE, ULONG64, DWORD, PSYMBOL_INFO
1064 BOOL WINAPI SymFromIndexW(
1065 HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
1067 BOOL WINAPI SymFromName(
1068 HANDLE, PCSTR, PSYMBOL_INFO
1070 BOOL WINAPI SymFromNameW(
1071 HANDLE, PCWSTR, PSYMBOL_INFOW
1073 BOOL WINAPI SymFromToken(
1074 HANDLE, DWORD64, DWORD, PSYMBOL_INFO
1076 BOOL WINAPI SymFromTokenW(
1077 HANDLE, DWORD64, DWORD, PSYMBOL_INFOW
1079 PVOID WINAPI SymFunctionTableAccess(
1080 HANDLE hProcess, DWORD AddrBase
1082 PVOID WINAPI SymFunctionTableAccess64(
1083 HANDLE hProcess, DWORD64 AddrBase
1085 ULONG WINAPI SymGetFileLineOffsets64(
1086 HANDLE, PCSTR, PCSTR, PDWORD64, ULONG
1088 PCHAR WINAPI SymGetHomeDirectory(
1089 DWORD, PSTR, size_t
1091 PWSTR WINAPI SymGetHomeDirectoryW(
1092 DWORD, PWSTR, size_t
1094 BOOL WINAPI SymGetLineFromAddr(
1095 HANDLE, DWORD, PDWORD, PIMAGEHLP_LINE
1097 BOOL WINAPI SymGetLineFromAddrW(
1098 HANDLE, DWORD, PDWORD, PIMAGEHLP_LINEW
1100 BOOL WINAPI SymGetLineFromAddr64(
1101 HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINE64
1103 BOOL WINAPI SymGetLineFromAddrW64(
1104 HANDLE, DWORD64, PDWORD, PIMAGEHLP_LINEW64
1106 BOOL WINAPI SymGetLineFromName(
1107 HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE
1109 BOOL WINAPI SymGetLineFromName64(
1110 HANDLE, PCSTR, PCSTR, DWORD, PLONG, PIMAGEHLP_LINE64
1112 BOOL WINAPI SymGetLineFromNameW64(
1113 HANDLE, PCWSTR, PCWSTR, DWORD, PLONG, PIMAGEHLP_LINEW64
1115 BOOL WINAPI SymGetLineNext(
1116 HANDLE, PIMAGEHLP_LINE
1118 BOOL WINAPI SymGetLineNextW(
1119 HANDLE, PIMAGEHLP_LINEW
1121 BOOL WINAPI SymGetLineNext64(
1122 HANDLE, PIMAGEHLP_LINE64
1124 BOOL WINAPI SymGetLineNextW64(
1125 HANDLE, PIMAGEHLP_LINEW64
1127 BOOL WINAPI SymGetLinePrev(
1128 HANDLE, PIMAGEHLP_LINE
1130 BOOL WINAPI SymGetLinePrevW(
1131 HANDLE, PIMAGEHLP_LINEW
1133 BOOL WINAPI SymGetLinePrev64(
1134 HANDLE, PIMAGEHLP_LINE64
1136 BOOL WINAPI SymGetLinePrevW64(
1137 HANDLE, PIMAGEHLP_LINEW64
1139 DWORD WINAPI SymGetModuleBase(
1140 HANDLE hProcess, DWORD dwAddr
1142 BOOL WINAPI SymGetModuleInfo(
1143 HANDLE hProcess, DWORD dwAddr,
1144 PIMAGEHLP_MODULE ModuleInfo
1146 BOOL WINAPI SymGetModuleInfoW(
1147 HANDLE, DWORD, PIMAGEHLP_MODULEW
1149 BOOL WINAPI SymGetModuleInfo64(
1150 HANDLE, DWORD64, PIMAGEHLP_MODULE64
1152 BOOL WINAPI SymGetModuleInfoW64(
1153 HANDLE, DWORD64, PIMAGEHLP_MODULEW64
1155 DWORD WINAPI SymGetOptions(
1156 void
1158 BOOL WINAPI SymGetScope(
1159 HANDLE, ULONG64, DWORD, PSYMBOL_INFO
1161 BOOL WINAPI SymGetScopeW(
1162 HANDLE, ULONG64, DWORD, PSYMBOL_INFOW
1164 BOOL WINAPI SymGetSearchPath(
1165 HANDLE hProcess, PSTR szSearchPath, DWORD SearchPathLength
1167 BOOL WINAPI SymGetSearchPathW(
1168 HANDLE hProcess, PWSTR szSearchPath, DWORD SearchPathLength
1170 BOOL WINAPI SymGetSourceFile(
1171 HANDLE, ULONG64, PCSTR, PCSTR, PSTR, DWORD
1173 BOOL WINAPI SymGetSourceFileW(
1174 HANDLE, ULONG64, PCWSTR, PCWSTR, PWSTR, DWORD
1176 BOOL WINAPI SymGetSourceFileFromToken(
1177 HANDLE, PVOID, PCSTR, PSTR, DWORD
1179 BOOL WINAPI SymGetSourceFileFromTokenW(
1180 HANDLE, PVOID, PCWSTR, PWSTR, DWORD
1182 BOOL WINAPI SymGetSourceFileToken(
1183 HANDLE, ULONG64, PCSTR, PVOID*, DWORD*
1185 BOOL WINAPI SymGetSourceFileTokenW(
1186 HANDLE, ULONG64, PCWSTR, PVOID*, DWORD*
1188 BOOL WINAPI SymGetSourceVarFromToken(
1189 HANDLE, PVOID, PCSTR, PCSTR, PSTR, DWORD
1191 BOOL WINAPI SymGetSourceVarFromTokenW(
1192 HANDLE, PVOID, PCWSTR, PCWSTR, PWSTR, DWORD
1194 BOOL WINAPI SymGetSymFromAddr(
1195 HANDLE hProcess, DWORD dwAddr,
1196 PDWORD pdwDisplacement, PIMAGEHLP_SYMBOL Symbol
1198 BOOL WINAPI SymGetSymFromAddr64(
1199 HANDLE, DWORD64, PDWORD64, PIMAGEHLP_SYMBOL64
1201 BOOL WINAPI SymGetSymFromName(
1202 HANDLE hProcess, PCSTR Name, PIMAGEHLP_SYMBOL Symbol
1204 BOOL WINAPI SymGetSymFromName64(
1205 HANDLE, PCSTR, PIMAGEHLP_SYMBOL64
1207 BOOL WINAPI SymGetSymNext(
1208 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
1210 BOOL WINAPI SymGetSymNext64(
1211 HANDLE, PIMAGEHLP_SYMBOL64
1213 BOOL WINAPI SymGetSymPrev(
1214 HANDLE hProcess, PIMAGEHLP_SYMBOL Symbol
1216 BOOL WINAPI SymGetSymPrev64(
1217 HANDLE, PIMAGEHLP_SYMBOL64
1219 BOOL WINAPI SymGetTypeFromName(
1220 HANDLE, ULONG64, PCSTR, PSYMBOL_INFO
1222 BOOL WINAPI SymGetTypeFromNameW(
1223 HANDLE, ULONG64, PCWSTR, PSYMBOL_INFOW
1225 BOOL WINAPI SymGetTypeInfo(
1226 HANDLE, DWORD64, ULONG, IMAGEHLP_SYMBOL_TYPE_INFO, PVOID
1228 BOOL WINAPI SymGetTypeInfoEx(
1229 HANDLE, DWORD64, PIMAGEHLP_GET_TYPE_INFO_PARAMS
1231 BOOL WINAPI SymInitialize(
1232 HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess
1234 BOOL WINAPI SymInitializeW(
1235 HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess
1237 DWORD WINAPI SymLoadModule(
1238 HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName,
1239 DWORD BaseOfDll, DWORD SizeOfDll
1241 DWORD64 WINAPI SymLoadModule64(
1242 HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD
1244 DWORD64 WINAPI SymLoadModuleEx(
1245 HANDLE, HANDLE, PCSTR, PCSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
1247 DWORD64 WINAPI SymLoadModuleExW(
1248 HANDLE, HANDLE, PCWSTR, PCWSTR, DWORD64, DWORD, PMODLOAD_DATA, DWORD
1250 BOOL WINAPI SymMatchFileName(
1251 PCSTR, PCSTR, PSTR*, PSTR*
1253 BOOL WINAPI SymMatchFileNameW(
1254 PCWSTR, PCWSTR, PWSTR*, PWSTR*
1256 BOOL WINAPI SymMatchString(
1257 PCSTR, PCSTR, BOOL
1259 BOOL WINAPI SymMatchStringA(
1260 PCSTR, PCSTR, BOOL
1262 BOOL WINAPI SymMatchStringW(
1263 PCWSTR, PCWSTR, BOOL
1265 BOOL WINAPI SymRegisterCallback(
1266 HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK CallbackFunction,
1267 PVOID UserContext
1269 BOOL WINAPI SymRegisterCallback64(
1270 HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
1272 BOOL WINAPI SymRegisterCallbackW64(
1273 HANDLE, PSYMBOL_REGISTERED_CALLBACK64, ULONG64
1275 BOOL WINAPI SymRegisterFunctionEntryCallback(
1276 HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID
1278 BOOL WINAPI SymRegisterFunctionEntryCallback64(
1279 HANDLE, PSYMBOL_FUNCENTRY_CALLBACK64, ULONG64
1281 BOOL WINAPI SymSearch(
1282 HANDLE, ULONG64, DWORD, DWORD, PCSTR, DWORD64,
1283 PSYM_ENUMERATESYMBOLS_CALLBACK, PVOID, DWORD
1285 BOOL WINAPI SymSearchW(
1286 HANDLE, ULONG64, DWORD, DWORD, PCWSTR, DWORD64,
1287 PSYM_ENUMERATESYMBOLS_CALLBACKW, PVOID, DWORD
1289 DWORD WINAPI SymSetContext(
1290 HANDLE hProcess, PIMAGEHLP_STACK_FRAME StackFrame,
1291 PIMAGEHLP_CONTEXT Context
1293 PCHAR WINAPI SymSetHomeDirectory(
1294 HANDLE, PCSTR
1296 PWSTR WINAPI SymSetHomeDirectoryW(
1297 HANDLE, PCWSTR
1299 DWORD WINAPI SymSetOptions(
1300 DWORD SymOptions
1302 BOOL WINAPI SymSetParentWindow(
1303 HWND
1305 BOOL WINAPI SymSetSearchPath(
1306 HANDLE hProcess, PCSTR szSearchPath
1308 BOOL WINAPI SymSetSearchPathW(
1309 HANDLE hProcess, PCWSTR szSearchPath
1311 BOOL WINAPI SymUnDName(
1312 PIMAGEHLP_SYMBOL sym, PSTR UnDecName, DWORD UnDecNameLength
1314 BOOL WINAPI SymUnDName64(
1315 PIMAGEHLP_SYMBOL64, PSTR, DWORD
1317 BOOL WINAPI SymUnloadModule(
1318 HANDLE hProcess, DWORD BaseOfDll
1320 BOOL WINAPI TouchFileTimes(
1321 HANDLE FileHandle, LPSYSTEMTIME lpSystemTime
1323 DWORD WINAPI UnDecorateSymbolName(
1324 PCSTR DecoratedName, PSTR UnDecoratedName,
1325 DWORD UndecoratedLength, DWORD Flags
1327 DWORD WINAPI UnDecorateSymbolNameW(
1328 PCWSTR DecoratedName, PWSTR UnDecoratedName,
1329 DWORD UndecoratedLength, DWORD Flags
1331 BOOL WINAPI UnMapAndLoad(
1332 PLOADED_IMAGE LoadedImage
1334 BOOL WINAPI UpdateDebugInfoFile(
1335 PCSTR ImageFileName, PCSTR SymbolPath,
1336 PSTR DebugFilePath, PIMAGE_NT_HEADERS32 NtHeaders
1338 BOOL WINAPI UpdateDebugInfoFileEx(
1339 PCSTR ImageFileName, PCSTR SymbolPath, PSTR DebugFilePath,
1340 PIMAGE_NT_HEADERS32 NtHeaders, DWORD OldChecksum
1343 #ifdef __cplusplus
1344 } /* extern "C" */
1345 #endif /* defined(__cplusplus) */
1347 #endif /* __WINE_IMAGEHLP_H */