Artifact bbf16340c786af1a0d8012975dcd055ed9a23a70:
- File
src/win32/imagehlp.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..*
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0060: 20 20 20 20 20 20 20 20 20 20 20 69 6d 61 67 65 image
0070: 68 6c 70 2e 64 20 20 20 20 20 20 20 20 20 20 20 hlp.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..*
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .*
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..*
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..*
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..*
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 by
01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..*
0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ
0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo
02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 69 6d 61 67 65 dule win32.image
0300: 68 6c 70 3b 0d 0a 0d 0a 2f 2a 20 43 6f 6d 6d 65 hlp;..../* Comme
0310: 6e 74 20 66 72 6f 6d 20 4d 69 6e 47 57 0d 0a 09 nt from MinGW...
0320: 4e 4f 54 45 3a 20 54 68 69 73 20 73 74 72 69 63 NOTE: This stric
0330: 74 6c 79 20 64 6f 65 73 20 6e 6f 74 20 62 65 6c tly does not bel
0340: 6f 6e 67 20 69 6e 20 74 68 65 20 57 69 6e 33 32 ong in the Win32
0350: 20 41 50 49 20 73 69 6e 63 65 20 69 74 27 73 0d API since it's.
0360: 0a 09 72 65 61 6c 6c 79 20 70 61 72 74 20 6f 66 ..really part of
0370: 20 50 6c 61 74 66 6f 72 6d 20 53 44 4b 2e 20 48 Platform SDK. H
0380: 6f 77 65 76 65 72 2c 20 47 44 42 20 6e 65 65 64 owever, GDB need
0390: 73 20 69 74 20 61 6e 64 20 77 65 20 6d 69 67 68 s it and we migh
03a0: 74 0d 0a 09 61 73 20 77 65 6c 6c 20 70 72 6f 76 t...as well prov
03b0: 69 64 65 20 69 74 20 68 65 72 65 2e 0d 0a 2a 2f ide it here...*/
03c0: 0d 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f ....private impo
03d0: 72 74 20 77 69 6e 33 32 2e 77 69 6e 62 61 73 65 rt win32.winbase
03e0: 2c 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0d , win32.windef;.
03f0: 0a 0d 0a 2f 2f 20 46 49 58 4d 45 3a 20 63 68 65 ...// FIXME: che
0400: 63 6b 20 74 79 70 65 73 20 6f 66 20 63 6f 6e 73 ck types of cons
0410: 74 61 6e 74 73 0d 0a 0d 0a 63 6f 6e 73 74 20 41 tants....const A
0420: 50 49 5f 56 45 52 53 49 4f 4e 5f 4e 55 4d 42 45 PI_VERSION_NUMBE
0430: 52 20 3d 20 37 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 R = 7;....const
0440: 42 49 4e 44 5f 4e 4f 5f 42 4f 55 4e 44 5f 49 4d BIND_NO_BOUND_IM
0450: 50 4f 52 54 53 20 20 3d 20 31 3b 0d 0a 63 6f 6e PORTS = 1;..con
0460: 73 74 20 42 49 4e 44 5f 4e 4f 5f 55 50 44 41 54 st BIND_NO_UPDAT
0470: 45 20 20 20 20 20 20 20 20 20 3d 20 32 3b 0d 0a E = 2;..
0480: 63 6f 6e 73 74 20 42 49 4e 44 5f 41 4c 4c 5f 49 const BIND_ALL_I
0490: 4d 41 47 45 53 20 20 20 20 20 20 20 20 3d 20 34 MAGES = 4
04a0: 3b 0d 0a 63 6f 6e 73 74 20 42 49 4e 44 5f 43 41 ;..const BIND_CA
04b0: 43 48 45 5f 49 4d 50 4f 52 54 5f 44 4c 4c 53 20 CHE_IMPORT_DLLS
04c0: 3d 20 38 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a = 8;....enum {..
04d0: 09 43 42 41 5f 44 45 46 45 52 52 45 44 5f 53 59 .CBA_DEFERRED_SY
04e0: 4d 42 4f 4c 5f 4c 4f 41 44 5f 53 54 41 52 54 20 MBOL_LOAD_START
04f0: 3d 20 31 2c 0d 0a 09 43 42 41 5f 44 45 46 45 52 = 1,...CBA_DEFER
0500: 52 45 44 5f 53 59 4d 42 4f 4c 5f 4c 4f 41 44 5f RED_SYMBOL_LOAD_
0510: 43 4f 4d 50 4c 45 54 45 2c 0d 0a 09 43 42 41 5f COMPLETE,...CBA_
0520: 44 45 46 45 52 52 45 44 5f 53 59 4d 42 4f 4c 5f DEFERRED_SYMBOL_
0530: 4c 4f 41 44 5f 46 41 49 4c 55 52 45 2c 0d 0a 09 LOAD_FAILURE,...
0540: 43 42 41 5f 53 59 4d 42 4f 4c 53 5f 55 4e 4c 4f CBA_SYMBOLS_UNLO
0550: 41 44 45 44 2c 0d 0a 09 43 42 41 5f 44 55 50 4c ADED,...CBA_DUPL
0560: 49 43 41 54 45 5f 53 59 4d 42 4f 4c 0d 0a 7d 0d ICATE_SYMBOL..}.
0570: 0a 0d 0a 63 6f 6e 73 74 20 43 45 52 54 5f 50 45 ...const CERT_PE
0580: 5f 49 4d 41 47 45 5f 44 49 47 45 53 54 5f 44 45 _IMAGE_DIGEST_DE
0590: 42 55 47 5f 49 4e 46 4f 20 20 20 20 20 20 3d 20 BUG_INFO =
05a0: 31 3b 0d 0a 63 6f 6e 73 74 20 43 45 52 54 5f 50 1;..const CERT_P
05b0: 45 5f 49 4d 41 47 45 5f 44 49 47 45 53 54 5f 52 E_IMAGE_DIGEST_R
05c0: 45 53 4f 55 52 43 45 53 20 20 20 20 20 20 20 3d ESOURCES =
05d0: 20 32 3b 0d 0a 63 6f 6e 73 74 20 43 45 52 54 5f 2;..const CERT_
05e0: 50 45 5f 49 4d 41 47 45 5f 44 49 47 45 53 54 5f PE_IMAGE_DIGEST_
05f0: 41 4c 4c 5f 49 4d 50 4f 52 54 5f 49 4e 46 4f 20 ALL_IMPORT_INFO
0600: 3d 20 34 3b 0d 0a 63 6f 6e 73 74 20 43 45 52 54 = 4;..const CERT
0610: 5f 50 45 5f 49 4d 41 47 45 5f 44 49 47 45 53 54 _PE_IMAGE_DIGEST
0620: 5f 4e 4f 4e 5f 50 45 5f 49 4e 46 4f 20 20 20 20 _NON_PE_INFO
0630: 20 3d 20 38 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 43 = 8;....const C
0640: 45 52 54 5f 53 45 43 54 49 4f 4e 5f 54 59 50 45 ERT_SECTION_TYPE
0650: 5f 41 4e 59 20 3d 20 32 35 35 3b 0d 0a 0d 0a 65 _ANY = 255;....e
0660: 6e 75 6d 20 7b 0d 0a 09 43 48 45 43 4b 53 55 4d num {...CHECKSUM
0670: 5f 53 55 43 43 45 53 53 20 3d 20 30 2c 0d 0a 09 _SUCCESS = 0,...
0680: 43 48 45 43 4b 53 55 4d 5f 4f 50 45 4e 5f 46 41 CHECKSUM_OPEN_FA
0690: 49 4c 55 52 45 2c 0d 0a 09 43 48 45 43 4b 53 55 ILURE,...CHECKSU
06a0: 4d 5f 4d 41 50 5f 46 41 49 4c 55 52 45 2c 0d 0a M_MAP_FAILURE,..
06b0: 09 43 48 45 43 4b 53 55 4d 5f 4d 41 50 56 49 45 .CHECKSUM_MAPVIE
06c0: 57 5f 46 41 49 4c 55 52 45 2c 0d 0a 09 43 48 45 W_FAILURE,...CHE
06d0: 43 4b 53 55 4d 5f 55 4e 49 43 4f 44 45 5f 46 41 CKSUM_UNICODE_FA
06e0: 49 4c 55 52 45 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 ILURE..}....cons
06f0: 74 20 49 4d 41 47 45 5f 53 45 50 41 52 41 54 49 t IMAGE_SEPARATI
0700: 4f 4e 20 3d 20 36 35 35 33 36 3b 0d 0a 0d 0a 63 ON = 65536;....c
0710: 6f 6e 73 74 20 53 50 4c 49 54 53 59 4d 5f 52 45 onst SPLITSYM_RE
0720: 4d 4f 56 45 5f 50 52 49 56 41 54 45 20 20 20 20 MOVE_PRIVATE
0730: 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 53 50 4c 49 = 1;..const SPLI
0740: 54 53 59 4d 5f 45 58 54 52 41 43 54 5f 41 4c 4c TSYM_EXTRACT_ALL
0750: 20 20 20 20 20 20 20 3d 20 32 3b 0d 0a 63 6f 6e = 2;..con
0760: 73 74 20 53 50 4c 49 54 53 59 4d 5f 53 59 4d 42 st SPLITSYM_SYMB
0770: 4f 4c 50 41 54 48 5f 49 53 5f 53 52 43 20 3d 20 OLPATH_IS_SRC =
0780: 34 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 59 4d 46 4;....const SYMF
0790: 5f 4f 4d 41 50 5f 47 45 4e 45 52 41 54 45 44 20 _OMAP_GENERATED
07a0: 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 53 59 4d 46 = 1;..const SYMF
07b0: 5f 4f 4d 41 50 5f 4d 4f 44 49 46 49 45 44 20 20 _OMAP_MODIFIED
07c0: 3d 20 32 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 53 59 = 2;....const SY
07d0: 4d 4f 50 54 5f 43 41 53 45 5f 49 4e 53 45 4e 53 MOPT_CASE_INSENS
07e0: 49 54 49 56 45 20 20 3d 20 20 31 3b 0d 0a 63 6f ITIVE = 1;..co
07f0: 6e 73 74 20 53 59 4d 4f 50 54 5f 55 4e 44 4e 41 nst SYMOPT_UNDNA
0800: 4d 45 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 ME =
0810: 32 3b 0d 0a 63 6f 6e 73 74 20 53 59 4d 4f 50 54 2;..const SYMOPT
0820: 5f 44 45 46 45 52 52 45 44 5f 4c 4f 41 44 53 20 _DEFERRED_LOADS
0830: 20 20 20 3d 20 20 34 3b 0d 0a 63 6f 6e 73 74 20 = 4;..const
0840: 53 59 4d 4f 50 54 5f 4e 4f 5f 43 50 50 20 20 20 SYMOPT_NO_CPP
0850: 20 20 20 20 20 20 20 20 20 3d 20 20 38 3b 0d 0a = 8;..
0860: 63 6f 6e 73 74 20 53 59 4d 4f 50 54 5f 4c 4f 41 const SYMOPT_LOA
0870: 44 5f 4c 49 4e 45 53 20 20 20 20 20 20 20 20 3d D_LINES =
0880: 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 53 59 4d 4f 16;..const SYMO
0890: 50 54 5f 4f 4d 41 50 5f 46 49 4e 44 5f 4e 45 41 PT_OMAP_FIND_NEA
08a0: 52 45 53 54 20 3d 20 33 32 3b 0d 0a 0d 0a 63 6f REST = 32;....co
08b0: 6e 73 74 20 55 4e 44 4e 41 4d 45 5f 43 4f 4d 50 nst UNDNAME_COMP
08c0: 4c 45 54 45 20 20 20 20 20 20 20 20 20 20 20 20 LETE
08d0: 20 20 20 3d 20 20 20 20 20 30 3b 0d 0a 63 6f 6e = 0;..con
08e0: 73 74 20 55 4e 44 4e 41 4d 45 5f 4e 4f 5f 4c 45 st UNDNAME_NO_LE
08f0: 41 44 49 4e 47 5f 55 4e 44 45 52 53 43 4f 52 45 ADING_UNDERSCORE
0900: 53 20 3d 20 20 20 20 20 31 3b 0d 0a 63 6f 6e 73 S = 1;..cons
0910: 74 20 55 4e 44 4e 41 4d 45 5f 4e 4f 5f 4d 53 5f t UNDNAME_NO_MS_
0920: 4b 45 59 57 4f 52 44 53 20 20 20 20 20 20 20 20 KEYWORDS
0930: 20 3d 20 20 20 20 20 32 3b 0d 0a 63 6f 6e 73 74 = 2;..const
0940: 20 55 4e 44 4e 41 4d 45 5f 4e 4f 5f 46 55 4e 43 UNDNAME_NO_FUNC
0950: 54 49 4f 4e 5f 52 45 54 55 52 4e 53 20 20 20 20 TION_RETURNS
0960: 3d 20 20 20 20 20 34 3b 0d 0a 63 6f 6e 73 74 20 = 4;..const
0970: 55 4e 44 4e 41 4d 45 5f 4e 4f 5f 41 4c 4c 4f 43 UNDNAME_NO_ALLOC
0980: 41 54 49 4f 4e 5f 4d 4f 44 45 4c 20 20 20 20 3d ATION_MODEL =
0990: 20 20 20 20 20 38 3b 0d 0a 63 6f 6e 73 74 20 55 8;..const U
09a0: 4e 44 4e 41 4d 45 5f 4e 4f 5f 41 4c 4c 4f 43 41 NDNAME_NO_ALLOCA
09b0: 54 49 4f 4e 5f 4c 41 4e 47 55 41 47 45 20 3d 20 TION_LANGUAGE =
09c0: 20 20 20 31 36 3b 0d 0a 63 6f 6e 73 74 20 55 4e 16;..const UN
09d0: 44 4e 41 4d 45 5f 4e 4f 5f 4d 53 5f 54 48 49 53 DNAME_NO_MS_THIS
09e0: 54 59 50 45 20 20 20 20 20 20 20 20 20 3d 20 20 TYPE =
09f0: 20 20 33 32 3b 0d 0a 63 6f 6e 73 74 20 55 4e 44 32;..const UND
0a00: 4e 41 4d 45 5f 4e 4f 5f 43 56 5f 54 48 49 53 54 NAME_NO_CV_THIST
0a10: 59 50 45 20 20 20 20 20 20 20 20 20 3d 20 20 20 YPE =
0a20: 20 36 34 3b 0d 0a 63 6f 6e 73 74 20 55 4e 44 4e 64;..const UNDN
0a30: 41 4d 45 5f 4e 4f 5f 54 48 49 53 54 59 50 45 20 AME_NO_THISTYPE
0a40: 20 20 20 20 20 20 20 20 20 20 20 3d 20 20 20 20 =
0a50: 39 36 3b 0d 0a 63 6f 6e 73 74 20 55 4e 44 4e 41 96;..const UNDNA
0a60: 4d 45 5f 4e 4f 5f 41 43 43 45 53 53 5f 53 50 45 ME_NO_ACCESS_SPE
0a70: 43 49 46 49 45 52 53 20 20 20 3d 20 20 20 31 32 CIFIERS = 12
0a80: 38 3b 0d 0a 63 6f 6e 73 74 20 55 4e 44 4e 41 4d 8;..const UNDNAM
0a90: 45 5f 4e 4f 5f 54 48 52 4f 57 5f 53 49 47 4e 41 E_NO_THROW_SIGNA
0aa0: 54 55 52 45 53 20 20 20 20 3d 20 20 20 32 35 36 TURES = 256
0ab0: 3b 0d 0a 63 6f 6e 73 74 20 55 4e 44 4e 41 4d 45 ;..const UNDNAME
0ac0: 5f 4e 4f 5f 4d 45 4d 42 45 52 5f 54 59 50 45 20 _NO_MEMBER_TYPE
0ad0: 20 20 20 20 20 20 20 20 3d 20 20 20 35 31 32 3b = 512;
0ae0: 0d 0a 63 6f 6e 73 74 20 55 4e 44 4e 41 4d 45 5f ..const UNDNAME_
0af0: 4e 4f 5f 52 45 54 55 52 4e 5f 55 44 54 5f 4d 4f NO_RETURN_UDT_MO
0b00: 44 45 4c 20 20 20 20 3d 20 20 31 30 32 34 3b 0d DEL = 1024;.
0b10: 0a 63 6f 6e 73 74 20 55 4e 44 4e 41 4d 45 5f 33 .const UNDNAME_3
0b20: 32 5f 42 49 54 5f 44 45 43 4f 44 45 20 20 20 20 2_BIT_DECODE
0b30: 20 20 20 20 20 20 3d 20 20 32 30 34 38 3b 0d 0a = 2048;..
0b40: 63 6f 6e 73 74 20 55 4e 44 4e 41 4d 45 5f 4e 41 const UNDNAME_NA
0b50: 4d 45 5f 4f 4e 4c 59 20 20 20 20 20 20 20 20 20 ME_ONLY
0b60: 20 20 20 20 20 3d 20 20 34 30 39 36 3b 0d 0a 63 = 4096;..c
0b70: 6f 6e 73 74 20 55 4e 44 4e 41 4d 45 5f 4e 4f 5f onst UNDNAME_NO_
0b80: 41 52 47 55 4d 45 4e 54 53 20 20 20 20 20 20 20 ARGUMENTS
0b90: 20 20 20 20 3d 20 20 38 31 39 32 3b 0d 0a 63 6f = 8192;..co
0ba0: 6e 73 74 20 55 4e 44 4e 41 4d 45 5f 4e 4f 5f 53 nst UNDNAME_NO_S
0bb0: 50 45 43 49 41 4c 5f 53 59 4d 53 20 20 20 20 20 PECIAL_SYMS
0bc0: 20 20 20 3d 20 31 36 33 38 34 3b 0d 0a 0d 0a 65 = 16384;....e
0bd0: 6e 75 6d 20 49 4d 41 47 45 48 4c 50 5f 53 54 41 num IMAGEHLP_STA
0be0: 54 55 53 5f 52 45 41 53 4f 4e 20 7b 0d 0a 09 42 TUS_REASON {...B
0bf0: 69 6e 64 4f 75 74 4f 66 4d 65 6d 6f 72 79 2c 0d indOutOfMemory,.
0c00: 0a 09 42 69 6e 64 52 76 61 54 6f 56 61 46 61 69 ..BindRvaToVaFai
0c10: 6c 65 64 2c 0d 0a 09 42 69 6e 64 4e 6f 52 6f 6f led,...BindNoRoo
0c20: 6d 49 6e 49 6d 61 67 65 2c 0d 0a 09 42 69 6e 64 mInImage,...Bind
0c30: 49 6d 70 6f 72 74 4d 6f 64 75 6c 65 46 61 69 6c ImportModuleFail
0c40: 65 64 2c 0d 0a 09 42 69 6e 64 49 6d 70 6f 72 74 ed,...BindImport
0c50: 50 72 6f 63 65 64 75 72 65 46 61 69 6c 65 64 2c ProcedureFailed,
0c60: 0d 0a 09 42 69 6e 64 49 6d 70 6f 72 74 4d 6f 64 ...BindImportMod
0c70: 75 6c 65 2c 0d 0a 09 42 69 6e 64 49 6d 70 6f 72 ule,...BindImpor
0c80: 74 50 72 6f 63 65 64 75 72 65 2c 0d 0a 09 42 69 tProcedure,...Bi
0c90: 6e 64 46 6f 72 77 61 72 64 65 72 2c 0d 0a 09 42 ndForwarder,...B
0ca0: 69 6e 64 46 6f 72 77 61 72 64 65 72 4e 4f 54 2c indForwarderNOT,
0cb0: 0d 0a 09 42 69 6e 64 49 6d 61 67 65 4d 6f 64 69 ...BindImageModi
0cc0: 66 69 65 64 2c 0d 0a 09 42 69 6e 64 45 78 70 61 fied,...BindExpa
0cd0: 6e 64 46 69 6c 65 48 65 61 64 65 72 73 2c 0d 0a ndFileHeaders,..
0ce0: 09 42 69 6e 64 49 6d 61 67 65 43 6f 6d 70 6c 65 .BindImageComple
0cf0: 74 65 2c 0d 0a 09 42 69 6e 64 4d 69 73 6d 61 74 te,...BindMismat
0d00: 63 68 65 64 53 79 6d 62 6f 6c 73 2c 0d 0a 09 42 chedSymbols,...B
0d10: 69 6e 64 53 79 6d 62 6f 6c 73 4e 6f 74 55 70 64 indSymbolsNotUpd
0d20: 61 74 65 64 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 ated..}....struc
0d30: 74 20 4c 4f 41 44 45 44 5f 49 4d 41 47 45 20 7b t LOADED_IMAGE {
0d40: 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 ...LPSTR
0d50: 20 20 20 20 20 20 20 20 20 4d 6f 64 75 6c 65 4e ModuleN
0d60: 61 6d 65 3b 0d 0a 09 48 41 4e 44 4c 45 20 20 20 ame;...HANDLE
0d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 68 46 69 hFi
0d80: 6c 65 3b 0d 0a 09 50 55 43 48 41 52 20 20 20 20 le;...PUCHAR
0d90: 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 70 70 Mapp
0da0: 65 64 41 64 64 72 65 73 73 3b 0d 0a 09 50 49 4d edAddress;...PIM
0db0: 41 47 45 5f 4e 54 5f 48 45 41 44 45 52 53 20 20 AGE_NT_HEADERS
0dc0: 20 20 20 46 69 6c 65 48 65 61 64 65 72 3b 0d 0a FileHeader;..
0dd0: 09 50 49 4d 41 47 45 5f 53 45 43 54 49 4f 4e 5f .PIMAGE_SECTION_
0de0: 48 45 41 44 45 52 20 4c 61 73 74 52 76 61 53 65 HEADER LastRvaSe
0df0: 63 74 69 6f 6e 3b 0d 0a 09 55 4c 4f 4e 47 20 20 ction;...ULONG
0e00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e N
0e10: 75 6d 62 65 72 4f 66 53 65 63 74 69 6f 6e 73 3b umberOfSections;
0e20: 0d 0a 09 50 49 4d 41 47 45 5f 53 45 43 54 49 4f ...PIMAGE_SECTIO
0e30: 4e 5f 48 45 41 44 45 52 20 53 65 63 74 69 6f 6e N_HEADER Section
0e40: 73 3b 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 20 s;...ULONG
0e50: 20 20 20 20 20 20 20 20 20 20 20 43 68 61 72 61 Chara
0e60: 63 74 65 72 69 73 74 69 63 73 3b 0d 0a 09 42 4f cteristics;...BO
0e70: 4f 4c 45 41 4e 20 20 20 20 20 20 20 20 20 20 20 OLEAN
0e80: 20 20 20 20 66 53 79 73 74 65 6d 49 6d 61 67 65 fSystemImage
0e90: 3b 0d 0a 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 ;...BOOLEAN
0ea0: 20 20 20 20 20 20 20 20 20 20 66 44 4f 53 49 6d fDOSIm
0eb0: 61 67 65 3b 0d 0a 09 4c 49 53 54 5f 45 4e 54 52 age;...LIST_ENTR
0ec0: 59 20 20 20 20 20 20 20 20 20 20 20 20 4c 69 6e Y Lin
0ed0: 6b 73 3b 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 20 ks;...ULONG
0ee0: 20 20 20 20 20 20 20 20 20 20 20 20 53 69 7a 65 Size
0ef0: 4f 66 49 6d 61 67 65 3b 0d 0a 7d 0d 0a 61 6c 69 OfImage;..}..ali
0f00: 61 73 20 4c 4f 41 44 45 44 5f 49 4d 41 47 45 2a as LOADED_IMAGE*
0f10: 20 50 4c 4f 41 44 45 44 5f 49 4d 41 47 45 3b 0d PLOADED_IMAGE;.
0f20: 0a 0d 0a 73 74 72 75 63 74 20 49 4d 41 47 45 5f ...struct IMAGE_
0f30: 44 45 42 55 47 5f 49 4e 46 4f 52 4d 41 54 49 4f DEBUG_INFORMATIO
0f40: 4e 20 7b 0d 0a 09 4c 49 53 54 5f 45 4e 54 52 59 N {...LIST_ENTRY
0f50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f60: 20 4c 69 73 74 3b 0d 0a 09 44 57 4f 52 44 20 20 List;...DWORD
0f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f80: 20 20 20 20 53 69 7a 65 3b 0d 0a 09 50 56 4f 49 Size;...PVOI
0f90: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 D
0fa0: 20 20 20 20 20 20 20 4d 61 70 70 65 64 42 61 73 MappedBas
0fb0: 65 3b 0d 0a 09 55 53 48 4f 52 54 20 20 20 20 20 e;...USHORT
0fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0fd0: 4d 61 63 68 69 6e 65 3b 0d 0a 09 55 53 48 4f 52 Machine;...USHOR
0fe0: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 T
0ff0: 20 20 20 20 20 20 43 68 61 72 61 63 74 65 72 69 Characteri
1000: 73 74 69 63 73 3b 0d 0a 09 44 57 4f 52 44 20 20 stics;...DWORD
1010: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1020: 20 20 20 20 43 68 65 63 6b 53 75 6d 3b 0d 0a 09 CheckSum;...
1030: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 DWORD
1040: 20 20 20 20 20 20 20 20 20 20 20 49 6d 61 67 65 Image
1050: 42 61 73 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 Base;...DWORD
1060: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1070: 20 20 20 53 69 7a 65 4f 66 49 6d 61 67 65 3b 0d SizeOfImage;.
1080: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD
1090: 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 75 6d Num
10a0: 62 65 72 4f 66 53 65 63 74 69 6f 6e 73 3b 0d 0a berOfSections;..
10b0: 09 50 49 4d 41 47 45 5f 53 45 43 54 49 4f 4e 5f .PIMAGE_SECTION_
10c0: 48 45 41 44 45 52 20 20 20 20 20 20 53 65 63 74 HEADER Sect
10d0: 69 6f 6e 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 ions;...DWORD
10e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
10f0: 20 20 20 45 78 70 6f 72 74 65 64 4e 61 6d 65 73 ExportedNames
1100: 53 69 7a 65 3b 0d 0a 09 4c 50 53 54 52 20 20 20 Size;...LPSTR
1110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1120: 20 20 20 45 78 70 6f 72 74 65 64 4e 61 6d 65 73 ExportedNames
1130: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 ;...DWORD
1140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e N
1150: 75 6d 62 65 72 4f 66 46 75 6e 63 74 69 6f 6e 54 umberOfFunctionT
1160: 61 62 6c 65 45 6e 74 72 69 65 73 3b 0d 0a 09 50 ableEntries;...P
1170: 49 4d 41 47 45 5f 46 55 4e 43 54 49 4f 4e 5f 45 IMAGE_FUNCTION_E
1180: 4e 54 52 59 20 20 20 20 20 20 46 75 6e 63 74 69 NTRY Functi
1190: 6f 6e 54 61 62 6c 65 45 6e 74 72 69 65 73 3b 0d onTableEntries;.
11a0: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD
11b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 6f 77 Low
11c0: 65 73 74 46 75 6e 63 74 69 6f 6e 53 74 61 72 74 estFunctionStart
11d0: 69 6e 67 41 64 64 72 65 73 73 3b 0d 0a 09 44 57 ingAddress;...DW
11e0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 ORD
11f0: 20 20 20 20 20 20 20 20 20 48 69 67 68 65 73 74 Highest
1200: 46 75 6e 63 74 69 6f 6e 45 6e 64 69 6e 67 41 64 FunctionEndingAd
1210: 64 72 65 73 73 3b 0d 0a 09 44 57 4f 52 44 20 20 dress;...DWORD
1220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1230: 20 20 20 20 4e 75 6d 62 65 72 4f 66 46 70 6f 54 NumberOfFpoT
1240: 61 62 6c 65 45 6e 74 72 69 65 73 3b 0d 0a 09 50 ableEntries;...P
1250: 46 50 4f 5f 44 41 54 41 20 20 20 20 20 20 20 20 FPO_DATA
1260: 20 20 20 20 20 20 20 20 20 20 46 70 6f 54 61 62 FpoTab
1270: 6c 65 45 6e 74 72 69 65 73 3b 0d 0a 09 44 57 4f leEntries;...DWO
1280: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RD
1290: 20 20 20 20 20 20 20 20 53 69 7a 65 4f 66 43 6f SizeOfCo
12a0: 66 66 53 79 6d 62 6f 6c 73 3b 0d 0a 09 50 49 4d ffSymbols;...PIM
12b0: 41 47 45 5f 43 4f 46 46 5f 53 59 4d 42 4f 4c 53 AGE_COFF_SYMBOLS
12c0: 5f 48 45 41 44 45 52 20 43 6f 66 66 53 79 6d 62 _HEADER CoffSymb
12d0: 6f 6c 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 ols;...DWORD
12e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12f0: 20 20 53 69 7a 65 4f 66 43 6f 64 65 56 69 65 77 SizeOfCodeView
1300: 53 79 6d 62 6f 6c 73 3b 0d 0a 09 50 56 4f 49 44 Symbols;...PVOID
1310: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1320: 20 20 20 20 20 20 43 6f 64 65 56 69 65 77 53 79 CodeViewSy
1330: 6d 62 6f 6c 73 3b 0d 0a 09 4c 50 53 54 52 20 20 mbols;...LPSTR
1340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1350: 20 20 20 20 49 6d 61 67 65 46 69 6c 65 50 61 74 ImageFilePat
1360: 68 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 h;...LPSTR
1370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1380: 49 6d 61 67 65 46 69 6c 65 4e 61 6d 65 3b 0d 0a ImageFileName;..
1390: 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 20 20 .LPSTR
13a0: 20 20 20 20 20 20 20 20 20 20 20 20 44 65 62 75 Debu
13b0: 67 46 69 6c 65 50 61 74 68 3b 0d 0a 09 44 57 4f gFilePath;...DWO
13c0: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RD
13d0: 20 20 20 20 20 20 20 20 54 69 6d 65 44 61 74 65 TimeDate
13e0: 53 74 61 6d 70 3b 0d 0a 09 42 4f 4f 4c 20 20 20 Stamp;...BOOL
13f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1400: 20 20 20 20 52 6f 6d 49 6d 61 67 65 3b 0d 0a 09 RomImage;...
1410: 50 49 4d 41 47 45 5f 44 45 42 55 47 5f 44 49 52 PIMAGE_DEBUG_DIR
1420: 45 43 54 4f 52 59 20 20 20 20 20 44 65 62 75 67 ECTORY Debug
1430: 44 69 72 65 63 74 6f 72 79 3b 0d 0a 09 44 57 4f Directory;...DWO
1440: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RD
1450: 20 20 20 20 20 20 20 20 4e 75 6d 62 65 72 4f 66 NumberOf
1460: 44 65 62 75 67 44 69 72 65 63 74 6f 72 69 65 73 DebugDirectories
1470: 3b 0d 0a 09 44 57 4f 52 44 5b 33 5d 20 20 20 20 ;...DWORD[3]
1480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 R
1490: 65 73 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69 eserved;..}..ali
14a0: 61 73 20 49 4d 41 47 45 5f 44 45 42 55 47 5f 49 as IMAGE_DEBUG_I
14b0: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 49 4d 41 NFORMATION* PIMA
14c0: 47 45 5f 44 45 42 55 47 5f 49 4e 46 4f 52 4d 41 GE_DEBUG_INFORMA
14d0: 54 49 4f 4e 3b 0d 0a 0d 0a 65 6e 75 6d 20 41 44 TION;....enum AD
14e0: 44 52 45 53 53 5f 4d 4f 44 45 20 7b 0d 0a 09 41 DRESS_MODE {...A
14f0: 64 64 72 4d 6f 64 65 31 36 31 36 2c 0d 0a 09 41 ddrMode1616,...A
1500: 64 64 72 4d 6f 64 65 31 36 33 32 2c 0d 0a 09 41 ddrMode1632,...A
1510: 64 64 72 4d 6f 64 65 52 65 61 6c 2c 0d 0a 09 41 ddrModeReal,...A
1520: 64 64 72 4d 6f 64 65 46 6c 61 74 0d 0a 7d 0d 0a ddrModeFlat..}..
1530: 0d 0a 73 74 72 75 63 74 20 41 44 44 52 45 53 53 ..struct ADDRESS
1540: 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 {...DWORD
1550: 20 20 4f 66 66 73 65 74 3b 0d 0a 09 57 4f 52 44 Offset;...WORD
1560: 20 20 20 20 20 20 20 20 20 53 65 67 6d 65 6e 74 Segment
1570: 3b 0d 0a 09 41 44 44 52 45 53 53 5f 4d 4f 44 45 ;...ADDRESS_MODE
1580: 20 4d 6f 64 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 Mode;..}..alias
1590: 20 41 44 44 52 45 53 53 2a 20 4c 50 41 44 44 52 ADDRESS* LPADDR
15a0: 45 53 53 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4b ESS;....struct K
15b0: 44 48 45 4c 50 20 7b 0d 0a 09 44 57 4f 52 44 20 DHELP {...DWORD
15c0: 54 68 72 65 61 64 3b 0d 0a 09 44 57 4f 52 44 20 Thread;...DWORD
15d0: 54 68 43 61 6c 6c 62 61 63 6b 53 74 61 63 6b 3b ThCallbackStack;
15e0: 0d 0a 09 44 57 4f 52 44 20 4e 65 78 74 43 61 6c ...DWORD NextCal
15f0: 6c 62 61 63 6b 3b 0d 0a 09 44 57 4f 52 44 20 46 lback;...DWORD F
1600: 72 61 6d 65 50 6f 69 6e 74 65 72 3b 0d 0a 09 44 ramePointer;...D
1610: 57 4f 52 44 20 4b 69 43 61 6c 6c 55 73 65 72 4d WORD KiCallUserM
1620: 6f 64 65 3b 0d 0a 09 44 57 4f 52 44 20 4b 65 55 ode;...DWORD KeU
1630: 73 65 72 43 61 6c 6c 62 61 63 6b 44 69 73 70 61 serCallbackDispa
1640: 74 63 68 65 72 3b 0d 0a 09 44 57 4f 52 44 20 53 tcher;...DWORD S
1650: 79 73 74 65 6d 52 61 6e 67 65 53 74 61 72 74 3b ystemRangeStart;
1660: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 4b 44 48 45 4c ..}..alias KDHEL
1670: 50 2a 20 50 4b 44 48 45 4c 50 3b 0d 0a 0d 0a 73 P* PKDHELP;....s
1680: 74 72 75 63 74 20 53 54 41 43 4b 46 52 41 4d 45 truct STACKFRAME
1690: 20 7b 0d 0a 09 41 44 44 52 45 53 53 20 20 41 64 {...ADDRESS Ad
16a0: 64 72 50 43 3b 0d 0a 09 41 44 44 52 45 53 53 20 drPC;...ADDRESS
16b0: 20 41 64 64 72 52 65 74 75 72 6e 3b 0d 0a 09 41 AddrReturn;...A
16c0: 44 44 52 45 53 53 20 20 41 64 64 72 46 72 61 6d DDRESS AddrFram
16d0: 65 3b 0d 0a 09 41 44 44 52 45 53 53 20 20 41 64 e;...ADDRESS Ad
16e0: 64 72 53 74 61 63 6b 3b 0d 0a 09 4c 50 56 4f 49 drStack;...LPVOI
16f0: 44 20 20 20 46 75 6e 63 54 61 62 6c 65 45 6e 74 D FuncTableEnt
1700: 72 79 3b 0d 0a 09 44 57 4f 52 44 5b 34 5d 20 50 ry;...DWORD[4] P
1710: 61 72 61 6d 73 3b 0d 0a 09 42 4f 4f 4c 20 20 20 arams;...BOOL
1720: 20 20 46 61 72 3b 0d 0a 09 42 4f 4f 4c 20 20 20 Far;...BOOL
1730: 20 20 56 69 72 74 75 61 6c 3b 0d 0a 09 44 57 4f Virtual;...DWO
1740: 52 44 5b 33 5d 20 52 65 73 65 72 76 65 64 3b 0d RD[3] Reserved;.
1750: 0a 09 4b 44 48 45 4c 50 20 20 20 4b 64 48 65 6c ..KDHELP KdHel
1760: 70 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 53 54 41 p;..}..alias STA
1770: 43 4b 46 52 41 4d 45 2a 20 4c 50 53 54 41 43 4b CKFRAME* LPSTACK
1780: 46 52 41 4d 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 FRAME;....struct
1790: 20 41 50 49 5f 56 45 52 53 49 4f 4e 20 7b 0d 0a API_VERSION {..
17a0: 09 55 53 48 4f 52 54 20 4d 61 6a 6f 72 56 65 72 .USHORT MajorVer
17b0: 73 69 6f 6e 3b 0d 0a 09 55 53 48 4f 52 54 20 4d sion;...USHORT M
17c0: 69 6e 6f 72 56 65 72 73 69 6f 6e 3b 0d 0a 09 55 inorVersion;...U
17d0: 53 48 4f 52 54 20 52 65 76 69 73 69 6f 6e 3b 0d SHORT Revision;.
17e0: 0a 09 55 53 48 4f 52 54 20 52 65 73 65 72 76 65 ..USHORT Reserve
17f0: 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 41 50 49 d;..}..alias API
1800: 5f 56 45 52 53 49 4f 4e 2a 20 4c 50 41 50 49 5f _VERSION* LPAPI_
1810: 56 45 52 53 49 4f 4e 3b 0d 0a 0d 0a 65 6e 75 6d VERSION;....enum
1820: 20 53 59 4d 5f 54 59 50 45 20 7b 0d 0a 09 53 79 SYM_TYPE {...Sy
1830: 6d 4e 6f 6e 65 2c 0d 0a 09 53 79 6d 43 6f 66 66 mNone,...SymCoff
1840: 2c 0d 0a 09 53 79 6d 43 76 2c 0d 0a 09 53 79 6d ,...SymCv,...Sym
1850: 50 64 62 2c 0d 0a 09 53 79 6d 45 78 70 6f 72 74 Pdb,...SymExport
1860: 2c 0d 0a 09 53 79 6d 44 65 66 65 72 72 65 64 2c ,...SymDeferred,
1870: 0d 0a 09 53 79 6d 53 79 6d 0d 0a 7d 0d 0a 0d 0a ...SymSym..}....
1880: 73 74 72 75 63 74 20 49 4d 41 47 45 48 4c 50 5f struct IMAGEHLP_
1890: 53 59 4d 42 4f 4c 20 7b 0d 0a 09 44 57 4f 52 44 SYMBOL {...DWORD
18a0: 20 20 20 53 69 7a 65 4f 66 53 74 72 75 63 74 3b SizeOfStruct;
18b0: 0d 0a 09 44 57 4f 52 44 20 20 20 41 64 64 72 65 ...DWORD Addre
18c0: 73 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 53 69 ss;...DWORD Si
18d0: 7a 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 46 6c ze;...DWORD Fl
18e0: 61 67 73 3b 0d 0a 09 44 57 4f 52 44 20 20 20 4d ags;...DWORD M
18f0: 61 78 4e 61 6d 65 4c 65 6e 67 74 68 3b 0d 0a 09 axNameLength;...
1900: 43 48 41 52 5b 31 5d 20 4e 61 6d 65 3b 0d 0a 7d CHAR[1] Name;..}
1910: 0d 0a 61 6c 69 61 73 20 49 4d 41 47 45 48 4c 50 ..alias IMAGEHLP
1920: 5f 53 59 4d 42 4f 4c 2a 20 50 49 4d 41 47 45 48 _SYMBOL* PIMAGEH
1930: 4c 50 5f 53 59 4d 42 4f 4c 3b 0d 0a 0d 0a 73 74 LP_SYMBOL;....st
1940: 72 75 63 74 20 49 4d 41 47 45 48 4c 50 5f 4d 4f ruct IMAGEHLP_MO
1950: 44 55 4c 45 20 7b 0d 0a 09 44 57 4f 52 44 20 20 DULE {...DWORD
1960: 20 20 20 53 69 7a 65 4f 66 53 74 72 75 63 74 3b SizeOfStruct;
1970: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 42 61 73 ...DWORD Bas
1980: 65 4f 66 49 6d 61 67 65 3b 0d 0a 09 44 57 4f 52 eOfImage;...DWOR
1990: 44 20 20 20 20 20 49 6d 61 67 65 53 69 7a 65 3b D ImageSize;
19a0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 54 69 6d ...DWORD Tim
19b0: 65 44 61 74 65 53 74 61 6d 70 3b 0d 0a 09 44 57 eDateStamp;...DW
19c0: 4f 52 44 20 20 20 20 20 43 68 65 63 6b 53 75 6d ORD CheckSum
19d0: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 4e 75 ;...DWORD Nu
19e0: 6d 53 79 6d 73 3b 0d 0a 09 53 59 4d 5f 54 59 50 mSyms;...SYM_TYP
19f0: 45 20 20 53 79 6d 54 79 70 65 3b 0d 0a 09 43 48 E SymType;...CH
1a00: 41 52 5b 33 32 5d 20 20 4d 6f 64 75 6c 65 4e 61 AR[32] ModuleNa
1a10: 6d 65 3b 0d 0a 09 43 48 41 52 5b 32 35 36 5d 20 me;...CHAR[256]
1a20: 49 6d 61 67 65 4e 61 6d 65 3b 0d 0a 09 43 48 41 ImageName;...CHA
1a30: 52 5b 32 35 36 5d 20 4c 6f 61 64 65 64 49 6d 61 R[256] LoadedIma
1a40: 67 65 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 geName;..}..alia
1a50: 73 20 49 4d 41 47 45 48 4c 50 5f 4d 4f 44 55 4c s IMAGEHLP_MODUL
1a60: 45 2a 20 50 49 4d 41 47 45 48 4c 50 5f 4d 4f 44 E* PIMAGEHLP_MOD
1a70: 55 4c 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 ULE;....struct I
1a80: 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 20 7b 0d 0a MAGEHLP_LINE {..
1a90: 09 44 57 4f 52 44 20 53 69 7a 65 4f 66 53 74 72 .DWORD SizeOfStr
1aa0: 75 63 74 3b 0d 0a 09 44 57 4f 52 44 20 4b 65 79 uct;...DWORD Key
1ab0: 3b 0d 0a 09 44 57 4f 52 44 20 4c 69 6e 65 4e 75 ;...DWORD LineNu
1ac0: 6d 62 65 72 3b 0d 0a 09 50 43 48 41 52 20 46 69 mber;...PCHAR Fi
1ad0: 6c 65 4e 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 leName;...DWORD
1ae0: 41 64 64 72 65 73 73 3b 0d 0a 7d 0d 0a 61 6c 69 Address;..}..ali
1af0: 61 73 20 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 as IMAGEHLP_LINE
1b00: 2a 20 50 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 * PIMAGEHLP_LINE
1b10: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4d 41 47 ;....struct IMAG
1b20: 45 48 4c 50 5f 44 45 46 45 52 52 45 44 5f 53 59 EHLP_DEFERRED_SY
1b30: 4d 42 4f 4c 5f 4c 4f 41 44 20 7b 0d 0a 09 44 57 MBOL_LOAD {...DW
1b40: 4f 52 44 20 20 20 20 20 20 20 20 20 20 53 69 7a ORD Siz
1b50: 65 4f 66 53 74 72 75 63 74 3b 0d 0a 09 44 57 4f eOfStruct;...DWO
1b60: 52 44 20 20 20 20 20 20 20 20 20 20 42 61 73 65 RD Base
1b70: 4f 66 49 6d 61 67 65 3b 0d 0a 09 44 57 4f 52 44 OfImage;...DWORD
1b80: 20 20 20 20 20 20 20 20 20 20 43 68 65 63 6b 53 CheckS
1b90: 75 6d 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 um;...DWORD
1ba0: 20 20 20 20 20 54 69 6d 65 44 61 74 65 53 74 61 TimeDateSta
1bb0: 6d 70 3b 0d 0a 09 43 48 41 52 5b 4d 41 58 5f 50 mp;...CHAR[MAX_P
1bc0: 41 54 48 5d 20 46 69 6c 65 4e 61 6d 65 3b 0d 0a ATH] FileName;..
1bd0: 09 42 4f 4f 4c 45 41 4e 20 20 20 20 20 20 20 20 .BOOLEAN
1be0: 52 65 70 61 72 73 65 3b 0d 0a 7d 0d 0a 61 6c 69 Reparse;..}..ali
1bf0: 61 73 20 49 4d 41 47 45 48 4c 50 5f 44 45 46 45 as IMAGEHLP_DEFE
1c00: 52 52 45 44 5f 53 59 4d 42 4f 4c 5f 4c 4f 41 44 RRED_SYMBOL_LOAD
1c10: 2a 20 50 49 4d 41 47 45 48 4c 50 5f 44 45 46 45 * PIMAGEHLP_DEFE
1c20: 52 52 45 44 5f 53 59 4d 42 4f 4c 5f 4c 4f 41 44 RRED_SYMBOL_LOAD
1c30: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4d 41 47 ;....struct IMAG
1c40: 45 48 4c 50 5f 44 55 50 4c 49 43 41 54 45 5f 53 EHLP_DUPLICATE_S
1c50: 59 4d 42 4f 4c 20 7b 0d 0a 09 44 57 4f 52 44 20 YMBOL {...DWORD
1c60: 20 20 20 20 20 20 20 20 20 20 20 53 69 7a 65 4f SizeO
1c70: 66 53 74 72 75 63 74 3b 0d 0a 09 44 57 4f 52 44 fStruct;...DWORD
1c80: 20 20 20 20 20 20 20 20 20 20 20 20 4e 75 6d 62 Numb
1c90: 65 72 4f 66 44 75 70 73 3b 0d 0a 09 50 49 4d 41 erOfDups;...PIMA
1ca0: 47 45 48 4c 50 5f 53 59 4d 42 4f 4c 20 53 79 6d GEHLP_SYMBOL Sym
1cb0: 62 6f 6c 3b 0d 0a 09 55 4c 4f 4e 47 20 20 20 20 bol;...ULONG
1cc0: 20 20 20 20 20 20 20 20 53 65 6c 65 63 74 65 64 Selected
1cd0: 53 79 6d 62 6f 6c 3b 0d 0a 7d 0d 0a 61 6c 69 61 Symbol;..}..alia
1ce0: 73 20 49 4d 41 47 45 48 4c 50 5f 44 55 50 4c 49 s IMAGEHLP_DUPLI
1cf0: 43 41 54 45 5f 53 59 4d 42 4f 4c 2a 20 50 49 4d CATE_SYMBOL* PIM
1d00: 41 47 45 48 4c 50 5f 44 55 50 4c 49 43 41 54 45 AGEHLP_DUPLICATE
1d10: 5f 53 59 4d 42 4f 4c 3b 0d 0a 0d 0a 6d 69 78 69 _SYMBOL;....mixi
1d20: 6e 20 44 45 43 4c 41 52 45 5f 48 41 4e 44 4c 45 n DECLARE_HANDLE
1d30: 21 28 22 44 49 47 45 53 54 5f 48 41 4e 44 4c 45 !("DIGEST_HANDLE
1d40: 22 29 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 ");....extern (W
1d50: 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 61 6c 69 61 indows) {...alia
1d60: 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 s BOOL function(
1d70: 49 4d 41 47 45 48 4c 50 5f 53 54 41 54 55 53 5f IMAGEHLP_STATUS_
1d80: 52 45 41 53 4f 4e 2c 20 4c 50 53 54 52 2c 20 4c REASON, LPSTR, L
1d90: 50 53 54 52 2c 20 55 4c 4f 4e 47 2c 20 55 4c 4f PSTR, ULONG, ULO
1da0: 4e 47 29 0d 0a 09 20 20 50 49 4d 41 47 45 48 4c NG)... PIMAGEHL
1db0: 50 5f 53 54 41 54 55 53 5f 52 4f 55 54 49 4e 45 P_STATUS_ROUTINE
1dc0: 3b 0d 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 ;...alias BOOL f
1dd0: 75 6e 63 74 69 6f 6e 28 48 41 4e 44 4c 45 20 2c unction(HANDLE ,
1de0: 20 4c 50 43 56 4f 49 44 2c 20 4c 50 56 4f 49 44 LPCVOID, LPVOID
1df0: 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 , DWORD, LPDWORD
1e00: 29 0d 0a 09 20 20 50 52 45 41 44 5f 50 52 4f 43 )... PREAD_PROC
1e10: 45 53 53 5f 4d 45 4d 4f 52 59 5f 52 4f 55 54 49 ESS_MEMORY_ROUTI
1e20: 4e 45 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 56 4f NE;...alias LPVO
1e30: 49 44 20 66 75 6e 63 74 69 6f 6e 28 48 41 4e 44 ID function(HAND
1e40: 4c 45 2c 20 44 57 4f 52 44 29 20 50 46 55 4e 43 LE, DWORD) PFUNC
1e50: 54 49 4f 4e 5f 54 41 42 4c 45 5f 41 43 43 45 53 TION_TABLE_ACCES
1e60: 53 5f 52 4f 55 54 49 4e 45 3b 0d 0a 09 61 6c 69 S_ROUTINE;...ali
1e70: 61 73 20 44 57 4f 52 44 20 66 75 6e 63 74 69 6f as DWORD functio
1e80: 6e 28 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 29 n(HANDLE, DWORD)
1e90: 20 50 47 45 54 5f 4d 4f 44 55 4c 45 5f 42 41 53 PGET_MODULE_BAS
1ea0: 45 5f 52 4f 55 54 49 4e 45 3b 0d 0a 09 61 6c 69 E_ROUTINE;...ali
1eb0: 61 73 20 44 57 4f 52 44 20 66 75 6e 63 74 69 6f as DWORD functio
1ec0: 6e 28 48 41 4e 44 4c 45 2c 20 48 41 4e 44 4c 45 n(HANDLE, HANDLE
1ed0: 2c 20 4c 50 41 44 44 52 45 53 53 29 0d 0a 09 20 , LPADDRESS)...
1ee0: 20 50 54 52 41 4e 53 4c 41 54 45 5f 41 44 44 52 PTRANSLATE_ADDR
1ef0: 45 53 53 5f 52 4f 55 54 49 4e 45 3b 0d 0a 09 61 ESS_ROUTINE;...a
1f00: 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 lias BOOL functi
1f10: 6f 6e 28 4c 50 53 54 52 2c 20 55 4c 4f 4e 47 2c on(LPSTR, ULONG,
1f20: 20 50 56 4f 49 44 29 20 50 53 59 4d 5f 45 4e 55 PVOID) PSYM_ENU
1f30: 4d 4d 4f 44 55 4c 45 53 5f 43 41 4c 4c 42 41 43 MMODULES_CALLBAC
1f40: 4b 3b 0d 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 K;...alias BOOL
1f50: 66 75 6e 63 74 69 6f 6e 28 4c 50 53 54 52 2c 20 function(LPSTR,
1f60: 55 4c 4f 4e 47 2c 20 55 4c 4f 4e 47 2c 20 50 56 ULONG, ULONG, PV
1f70: 4f 49 44 29 20 50 53 59 4d 5f 45 4e 55 4d 53 59 OID) PSYM_ENUMSY
1f80: 4d 42 4f 4c 53 5f 43 41 4c 4c 42 41 43 4b 3b 0d MBOLS_CALLBACK;.
1f90: 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e ..alias BOOL fun
1fa0: 63 74 69 6f 6e 28 4c 50 53 54 52 2c 20 55 4c 4f ction(LPSTR, ULO
1fb0: 4e 47 2c 20 55 4c 4f 4e 47 2c 20 50 56 4f 49 44 NG, ULONG, PVOID
1fc0: 29 0d 0a 09 20 20 50 45 4e 55 4d 4c 4f 41 44 45 )... PENUMLOADE
1fd0: 44 5f 4d 4f 44 55 4c 45 53 5f 43 41 4c 4c 42 41 D_MODULES_CALLBA
1fe0: 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 42 4f 4f 4c CK;...alias BOOL
1ff0: 20 66 75 6e 63 74 69 6f 6e 28 48 41 4e 44 4c 45 function(HANDLE
2000: 2c 20 55 4c 4f 4e 47 2c 20 50 56 4f 49 44 2c 20 , ULONG, PVOID,
2010: 50 56 4f 49 44 29 0d 0a 09 20 20 50 53 59 4d 42 PVOID)... PSYMB
2020: 4f 4c 5f 52 45 47 49 53 54 45 52 45 44 5f 43 41 OL_REGISTERED_CA
2030: 4c 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 LLBACK;...alias
2040: 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 44 49 BOOL function(DI
2050: 47 45 53 54 5f 48 41 4e 44 4c 45 20 72 65 66 64 GEST_HANDLE refd
2060: 61 74 61 2c 20 50 42 59 54 45 20 70 44 61 74 61 ata, PBYTE pData
2070: 2c 20 44 57 4f 52 44 20 64 77 4c 65 6e 67 74 68 , DWORD dwLength
2080: 29 0d 0a 09 20 20 44 49 47 45 53 54 5f 46 55 4e )... DIGEST_FUN
2090: 43 54 49 4f 4e 3b 0d 0a 0d 0a 09 50 49 4d 41 47 CTION;.....PIMAG
20a0: 45 5f 4e 54 5f 48 45 41 44 45 52 53 20 43 68 65 E_NT_HEADERS Che
20b0: 63 6b 53 75 6d 4d 61 70 70 65 64 46 69 6c 65 28 ckSumMappedFile(
20c0: 4c 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 4c LPVOID, DWORD, L
20d0: 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 29 PDWORD, LPDWORD)
20e0: 3b 0d 0a 09 44 57 4f 52 44 20 4d 61 70 46 69 6c ;...DWORD MapFil
20f0: 65 41 6e 64 43 68 65 63 6b 53 75 6d 41 28 4c 50 eAndCheckSumA(LP
2100: 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 STR, LPDWORD, LP
2110: 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 DWORD);...DWORD
2120: 4d 61 70 46 69 6c 65 41 6e 64 43 68 65 63 6b 53 MapFileAndCheckS
2130: 75 6d 57 28 50 57 53 54 52 2c 20 4c 50 44 57 4f umW(PWSTR, LPDWO
2140: 52 44 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 RD, LPDWORD);...
2150: 42 4f 4f 4c 20 54 6f 75 63 68 46 69 6c 65 54 69 BOOL TouchFileTi
2160: 6d 65 73 28 48 41 4e 44 4c 45 2c 20 4c 50 53 59 mes(HANDLE, LPSY
2170: 53 54 45 4d 54 49 4d 45 29 3b 0d 0a 09 42 4f 4f STEMTIME);...BOO
2180: 4c 20 53 70 6c 69 74 53 79 6d 62 6f 6c 73 28 4c L SplitSymbols(L
2190: 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 4c 50 53 PSTR, LPSTR, LPS
21a0: 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 48 41 TR, DWORD);...HA
21b0: 4e 44 4c 45 20 46 69 6e 64 44 65 62 75 67 49 6e NDLE FindDebugIn
21c0: 66 6f 46 69 6c 65 28 4c 50 53 54 52 2c 20 4c 50 foFile(LPSTR, LP
21d0: 53 54 52 2c 20 4c 50 53 54 52 29 3b 0d 0a 09 48 STR, LPSTR);...H
21e0: 41 4e 44 4c 45 20 46 69 6e 64 45 78 65 63 75 74 ANDLE FindExecut
21f0: 61 62 6c 65 49 6d 61 67 65 28 4c 50 53 54 52 2c ableImage(LPSTR,
2200: 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 29 3b 0d LPSTR, LPSTR);.
2210: 0a 09 42 4f 4f 4c 20 55 70 64 61 74 65 44 65 62 ..BOOL UpdateDeb
2220: 75 67 49 6e 66 6f 46 69 6c 65 28 4c 50 53 54 52 ugInfoFile(LPSTR
2230: 2c 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 , LPSTR, LPSTR,
2240: 50 49 4d 41 47 45 5f 4e 54 5f 48 45 41 44 45 52 PIMAGE_NT_HEADER
2250: 53 29 3b 0d 0a 09 42 4f 4f 4c 20 55 70 64 61 74 S);...BOOL Updat
2260: 65 44 65 62 75 67 49 6e 66 6f 46 69 6c 65 45 78 eDebugInfoFileEx
2270: 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 4c (LPSTR, LPSTR, L
2280: 50 53 54 52 2c 20 50 49 4d 41 47 45 5f 4e 54 5f PSTR, PIMAGE_NT_
2290: 48 45 41 44 45 52 53 2c 20 44 57 4f 52 44 29 3b HEADERS, DWORD);
22a0: 0d 0a 09 42 4f 4f 4c 20 42 69 6e 64 49 6d 61 67 ...BOOL BindImag
22b0: 65 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 e(LPSTR, LPSTR,
22c0: 4c 50 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 42 LPSTR);...BOOL B
22d0: 69 6e 64 49 6d 61 67 65 45 78 28 44 57 4f 52 44 indImageEx(DWORD
22e0: 2c 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 , LPSTR, LPSTR,
22f0: 4c 50 53 54 52 2c 20 50 49 4d 41 47 45 48 4c 50 LPSTR, PIMAGEHLP
2300: 5f 53 54 41 54 55 53 5f 52 4f 55 54 49 4e 45 29 _STATUS_ROUTINE)
2310: 3b 0d 0a 09 42 4f 4f 4c 20 52 65 42 61 73 65 49 ;...BOOL ReBaseI
2320: 6d 61 67 65 28 4c 50 53 54 52 2c 20 4c 50 53 54 mage(LPSTR, LPST
2330: 52 2c 20 42 4f 4f 4c 2c 20 42 4f 4f 4c 2c 20 42 R, BOOL, BOOL, B
2340: 4f 4f 4c 2c 20 55 4c 4f 4e 47 2c 20 55 4c 4f 4e OOL, ULONG, ULON
2350: 47 2a 2c 20 55 4c 4f 4e 47 2a 2c 0d 0a 09 20 20 G*, ULONG*,...
2360: 55 4c 4f 4e 47 2a 2c 20 55 4c 4f 4e 47 2a 2c 20 ULONG*, ULONG*,
2370: 55 4c 4f 4e 47 29 3b 0d 0a 09 50 4c 4f 41 44 45 ULONG);...PLOADE
2380: 44 5f 49 4d 41 47 45 20 49 6d 61 67 65 4c 6f 61 D_IMAGE ImageLoa
2390: 64 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 29 3b d(LPSTR, LPSTR);
23a0: 0d 0a 09 42 4f 4f 4c 20 49 6d 61 67 65 55 6e 6c ...BOOL ImageUnl
23b0: 6f 61 64 28 50 4c 4f 41 44 45 44 5f 49 4d 41 47 oad(PLOADED_IMAG
23c0: 45 29 3b 0d 0a 09 50 49 4d 41 47 45 5f 4e 54 5f E);...PIMAGE_NT_
23d0: 48 45 41 44 45 52 53 20 49 6d 61 67 65 4e 74 48 HEADERS ImageNtH
23e0: 65 61 64 65 72 28 50 56 4f 49 44 29 3b 0d 0a 09 eader(PVOID);...
23f0: 50 56 4f 49 44 20 49 6d 61 67 65 44 69 72 65 63 PVOID ImageDirec
2400: 74 6f 72 79 45 6e 74 72 79 54 6f 44 61 74 61 28 toryEntryToData(
2410: 50 56 4f 49 44 2c 20 42 4f 4f 4c 45 41 4e 2c 20 PVOID, BOOLEAN,
2420: 55 53 48 4f 52 54 2c 20 50 55 4c 4f 4e 47 29 3b USHORT, PULONG);
2430: 0d 0a 09 50 49 4d 41 47 45 5f 53 45 43 54 49 4f ...PIMAGE_SECTIO
2440: 4e 5f 48 45 41 44 45 52 20 49 6d 61 67 65 52 76 N_HEADER ImageRv
2450: 61 54 6f 53 65 63 74 69 6f 6e 28 50 49 4d 41 47 aToSection(PIMAG
2460: 45 5f 4e 54 5f 48 45 41 44 45 52 53 2c 20 50 56 E_NT_HEADERS, PV
2470: 4f 49 44 2c 20 55 4c 4f 4e 47 29 3b 0d 0a 09 50 OID, ULONG);...P
2480: 56 4f 49 44 20 49 6d 61 67 65 52 76 61 54 6f 56 VOID ImageRvaToV
2490: 61 28 50 49 4d 41 47 45 5f 4e 54 5f 48 45 41 44 a(PIMAGE_NT_HEAD
24a0: 45 52 53 2c 20 50 56 4f 49 44 2c 20 55 4c 4f 4e ERS, PVOID, ULON
24b0: 47 2c 0d 0a 09 20 20 50 49 4d 41 47 45 5f 53 45 G,... PIMAGE_SE
24c0: 43 54 49 4f 4e 5f 48 45 41 44 45 52 2a 29 3b 0d CTION_HEADER*);.
24d0: 0a 09 42 4f 4f 4c 20 4d 61 70 41 6e 64 4c 6f 61 ..BOOL MapAndLoa
24e0: 64 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 d(LPSTR, LPSTR,
24f0: 50 4c 4f 41 44 45 44 5f 49 4d 41 47 45 2c 20 42 PLOADED_IMAGE, B
2500: 4f 4f 4c 2c 20 42 4f 4f 4c 29 3b 0d 0a 09 42 4f OOL, BOOL);...BO
2510: 4f 4c 20 47 65 74 49 6d 61 67 65 43 6f 6e 66 69 OL GetImageConfi
2520: 67 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 50 4c 4f gInformation(PLO
2530: 41 44 45 44 5f 49 4d 41 47 45 2c 0d 0a 09 20 20 ADED_IMAGE,...
2540: 50 49 4d 41 47 45 5f 4c 4f 41 44 5f 43 4f 4e 46 PIMAGE_LOAD_CONF
2550: 49 47 5f 44 49 52 45 43 54 4f 52 59 29 3b 0d 0a IG_DIRECTORY);..
2560: 09 44 57 4f 52 44 20 47 65 74 49 6d 61 67 65 55 .DWORD GetImageU
2570: 6e 75 73 65 64 48 65 61 64 65 72 42 79 74 65 73 nusedHeaderBytes
2580: 28 50 4c 4f 41 44 45 44 5f 49 4d 41 47 45 2c 20 (PLOADED_IMAGE,
2590: 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c LPDWORD);...BOOL
25a0: 20 53 65 74 49 6d 61 67 65 43 6f 6e 66 69 67 49 SetImageConfigI
25b0: 6e 66 6f 72 6d 61 74 69 6f 6e 28 50 4c 4f 41 44 nformation(PLOAD
25c0: 45 44 5f 49 4d 41 47 45 2c 0d 0a 09 20 20 50 49 ED_IMAGE,... PI
25d0: 4d 41 47 45 5f 4c 4f 41 44 5f 43 4f 4e 46 49 47 MAGE_LOAD_CONFIG
25e0: 5f 44 49 52 45 43 54 4f 52 59 29 3b 0d 0a 09 42 _DIRECTORY);...B
25f0: 4f 4f 4c 20 55 6e 4d 61 70 41 6e 64 4c 6f 61 64 OOL UnMapAndLoad
2600: 28 50 4c 4f 41 44 45 44 5f 49 4d 41 47 45 29 3b (PLOADED_IMAGE);
2610: 0d 0a 09 50 49 4d 41 47 45 5f 44 45 42 55 47 5f ...PIMAGE_DEBUG_
2620: 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 4d 61 70 44 INFORMATION MapD
2630: 65 62 75 67 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 ebugInformation(
2640: 48 41 4e 44 4c 45 2c 20 4c 50 53 54 52 2c 20 4c HANDLE, LPSTR, L
2650: 50 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 PSTR, DWORD);...
2660: 42 4f 4f 4c 20 55 6e 6d 61 70 44 65 62 75 67 49 BOOL UnmapDebugI
2670: 6e 66 6f 72 6d 61 74 69 6f 6e 28 50 49 4d 41 47 nformation(PIMAG
2680: 45 5f 44 45 42 55 47 5f 49 4e 46 4f 52 4d 41 54 E_DEBUG_INFORMAT
2690: 49 4f 4e 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 46 ION);...HANDLE F
26a0: 69 6e 64 45 78 65 63 75 74 61 62 6c 65 49 6d 61 indExecutableIma
26b0: 67 65 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c ge(LPSTR, LPSTR,
26c0: 20 4c 50 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 LPSTR);...BOOL
26d0: 53 65 61 72 63 68 54 72 65 65 46 6f 72 46 69 6c SearchTreeForFil
26e0: 65 28 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 e(LPSTR, LPSTR,
26f0: 4c 50 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 4d LPSTR);...BOOL M
2700: 61 6b 65 53 75 72 65 44 69 72 65 63 74 6f 72 79 akeSureDirectory
2710: 50 61 74 68 45 78 69 73 74 73 28 4c 50 43 53 54 PathExists(LPCST
2720: 52 29 3b 0d 0a 09 44 57 4f 52 44 20 55 6e 44 65 R);...DWORD UnDe
2730: 63 6f 72 61 74 65 53 79 6d 62 6f 6c 4e 61 6d 65 corateSymbolName
2740: 28 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c 20 (LPCSTR, LPSTR,
2750: 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a DWORD, DWORD);..
2760: 09 42 4f 4f 4c 20 53 74 61 63 6b 57 61 6c 6b 28 .BOOL StackWalk(
2770: 44 57 4f 52 44 2c 20 48 41 4e 44 4c 45 2c 20 48 DWORD, HANDLE, H
2780: 41 4e 44 4c 45 2c 20 4c 50 53 54 41 43 4b 46 52 ANDLE, LPSTACKFR
2790: 41 4d 45 2c 20 4c 50 56 4f 49 44 2c 0d 0a 09 20 AME, LPVOID,...
27a0: 20 50 52 45 41 44 5f 50 52 4f 43 45 53 53 5f 4d PREAD_PROCESS_M
27b0: 45 4d 4f 52 59 5f 52 4f 55 54 49 4e 45 2c 20 50 EMORY_ROUTINE, P
27c0: 46 55 4e 43 54 49 4f 4e 5f 54 41 42 4c 45 5f 41 FUNCTION_TABLE_A
27d0: 43 43 45 53 53 5f 52 4f 55 54 49 4e 45 2c 0d 0a CCESS_ROUTINE,..
27e0: 09 20 20 50 47 45 54 5f 4d 4f 44 55 4c 45 5f 42 . PGET_MODULE_B
27f0: 41 53 45 5f 52 4f 55 54 49 4e 45 2c 20 50 54 52 ASE_ROUTINE, PTR
2800: 41 4e 53 4c 41 54 45 5f 41 44 44 52 45 53 53 5f ANSLATE_ADDRESS_
2810: 52 4f 55 54 49 4e 45 29 3b 0d 0a 09 4c 50 41 50 ROUTINE);...LPAP
2820: 49 5f 56 45 52 53 49 4f 4e 20 49 6d 61 67 65 68 I_VERSION Imageh
2830: 6c 70 41 70 69 56 65 72 73 69 6f 6e 28 29 3b 0d lpApiVersion();.
2840: 0a 09 4c 50 41 50 49 5f 56 45 52 53 49 4f 4e 20 ..LPAPI_VERSION
2850: 49 6d 61 67 65 68 6c 70 41 70 69 56 65 72 73 69 ImagehlpApiVersi
2860: 6f 6e 45 78 28 4c 50 41 50 49 5f 56 45 52 53 49 onEx(LPAPI_VERSI
2870: 4f 4e 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74 ON);...DWORD Get
2880: 54 69 6d 65 73 74 61 6d 70 46 6f 72 4c 6f 61 64 TimestampForLoad
2890: 65 64 4c 69 62 72 61 72 79 28 48 4d 4f 44 55 4c edLibrary(HMODUL
28a0: 45 29 3b 0d 0a 09 42 4f 4f 4c 20 52 65 6d 6f 76 E);...BOOL Remov
28b0: 65 50 72 69 76 61 74 65 43 76 53 79 6d 62 6f 6c ePrivateCvSymbol
28c0: 69 63 28 50 43 48 41 52 2c 20 50 43 48 41 52 2a ic(PCHAR, PCHAR*
28d0: 2c 20 55 4c 4f 4e 47 2a 29 3b 0d 0a 09 56 4f 49 , ULONG*);...VOI
28e0: 44 20 52 65 6d 6f 76 65 52 65 6c 6f 63 61 74 69 D RemoveRelocati
28f0: 6f 6e 73 28 50 43 48 41 52 29 3b 0d 0a 09 44 57 ons(PCHAR);...DW
2900: 4f 52 44 20 53 79 6d 53 65 74 4f 70 74 69 6f 6e ORD SymSetOption
2910: 73 28 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 s(DWORD);...DWOR
2920: 44 20 53 79 6d 47 65 74 4f 70 74 69 6f 6e 73 28 D SymGetOptions(
2930: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 43 6c 65 );...BOOL SymCle
2940: 61 6e 75 70 28 48 41 4e 44 4c 45 29 3b 0d 0a 09 anup(HANDLE);...
2950: 42 4f 4f 4c 20 53 79 6d 45 6e 75 6d 65 72 61 74 BOOL SymEnumerat
2960: 65 4d 6f 64 75 6c 65 73 28 48 41 4e 44 4c 45 2c eModules(HANDLE,
2970: 20 50 53 59 4d 5f 45 4e 55 4d 4d 4f 44 55 4c 45 PSYM_ENUMMODULE
2980: 53 5f 43 41 4c 4c 42 41 43 4b 2c 20 50 56 4f 49 S_CALLBACK, PVOI
2990: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 45 6e D);...BOOL SymEn
29a0: 75 6d 65 72 61 74 65 53 79 6d 62 6f 6c 73 28 48 umerateSymbols(H
29b0: 41 4e 44 4c 45 2c 20 44 57 4f 52 44 2c 20 50 53 ANDLE, DWORD, PS
29c0: 59 4d 5f 45 4e 55 4d 53 59 4d 42 4f 4c 53 5f 43 YM_ENUMSYMBOLS_C
29d0: 41 4c 4c 42 41 43 4b 2c 20 50 56 4f 49 44 29 3b ALLBACK, PVOID);
29e0: 0d 0a 09 42 4f 4f 4c 20 45 6e 75 6d 65 72 61 74 ...BOOL Enumerat
29f0: 65 4c 6f 61 64 65 64 4d 6f 64 75 6c 65 73 28 48 eLoadedModules(H
2a00: 41 4e 44 4c 45 2c 20 50 45 4e 55 4d 4c 4f 41 44 ANDLE, PENUMLOAD
2a10: 45 44 5f 4d 4f 44 55 4c 45 53 5f 43 41 4c 4c 42 ED_MODULES_CALLB
2a20: 41 43 4b 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 4c ACK, PVOID);...L
2a30: 50 56 4f 49 44 20 53 79 6d 46 75 6e 63 74 69 6f PVOID SymFunctio
2a40: 6e 54 61 62 6c 65 41 63 63 65 73 73 28 48 41 4e nTableAccess(HAN
2a50: 44 4c 45 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 DLE, DWORD);...B
2a60: 4f 4f 4c 20 53 79 6d 47 65 74 4d 6f 64 75 6c 65 OOL SymGetModule
2a70: 49 6e 66 6f 28 48 41 4e 44 4c 45 2c 20 44 57 4f Info(HANDLE, DWO
2a80: 52 44 2c 20 50 49 4d 41 47 45 48 4c 50 5f 4d 4f RD, PIMAGEHLP_MO
2a90: 44 55 4c 45 29 3b 0d 0a 09 44 57 4f 52 44 20 53 DULE);...DWORD S
2aa0: 79 6d 47 65 74 4d 6f 64 75 6c 65 42 61 73 65 28 ymGetModuleBase(
2ab0: 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 29 3b 0d HANDLE, DWORD);.
2ac0: 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 53 79 6d ..BOOL SymGetSym
2ad0: 46 72 6f 6d 41 64 64 72 28 48 41 4e 44 4c 45 2c FromAddr(HANDLE,
2ae0: 20 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 DWORD, PDWORD,
2af0: 50 49 4d 41 47 45 48 4c 50 5f 53 59 4d 42 4f 4c PIMAGEHLP_SYMBOL
2b00: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 );...BOOL SymGet
2b10: 53 79 6d 46 72 6f 6d 4e 61 6d 65 28 48 41 4e 44 SymFromName(HAND
2b20: 4c 45 2c 20 4c 50 53 54 52 2c 20 50 49 4d 41 47 LE, LPSTR, PIMAG
2b30: 45 48 4c 50 5f 53 59 4d 42 4f 4c 29 3b 0d 0a 09 EHLP_SYMBOL);...
2b40: 42 4f 4f 4c 20 53 79 6d 47 65 74 53 79 6d 4e 65 BOOL SymGetSymNe
2b50: 78 74 28 48 41 4e 44 4c 45 2c 20 50 49 4d 41 47 xt(HANDLE, PIMAG
2b60: 45 48 4c 50 5f 53 59 4d 42 4f 4c 29 3b 0d 0a 09 EHLP_SYMBOL);...
2b70: 42 4f 4f 4c 20 53 79 6d 47 65 74 53 79 6d 50 72 BOOL SymGetSymPr
2b80: 65 76 28 48 41 4e 44 4c 45 2c 20 50 49 4d 41 47 ev(HANDLE, PIMAG
2b90: 45 48 4c 50 5f 53 59 4d 42 4f 4c 29 3b 0d 0a 09 EHLP_SYMBOL);...
2ba0: 42 4f 4f 4c 20 53 79 6d 47 65 74 4c 69 6e 65 46 BOOL SymGetLineF
2bb0: 72 6f 6d 41 64 64 72 28 48 41 4e 44 4c 45 2c 20 romAddr(HANDLE,
2bc0: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 DWORD, PDWORD, P
2bd0: 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 29 3b 0d IMAGEHLP_LINE);.
2be0: 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 4c 69 6e ..BOOL SymGetLin
2bf0: 65 46 72 6f 6d 4e 61 6d 65 28 48 41 4e 44 4c 45 eFromName(HANDLE
2c00: 2c 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20 , LPSTR, LPSTR,
2c10: 44 57 4f 52 44 2c 20 50 4c 4f 4e 47 2c 0d 0a 09 DWORD, PLONG,...
2c20: 20 20 50 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 PIMAGEHLP_LINE
2c30: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 );...BOOL SymGet
2c40: 4c 69 6e 65 4e 65 78 74 28 48 41 4e 44 4c 45 2c LineNext(HANDLE,
2c50: 20 50 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 29 PIMAGEHLP_LINE)
2c60: 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 4c ;...BOOL SymGetL
2c70: 69 6e 65 50 72 65 76 28 48 41 4e 44 4c 45 2c 20 inePrev(HANDLE,
2c80: 50 49 4d 41 47 45 48 4c 50 5f 4c 49 4e 45 29 3b PIMAGEHLP_LINE);
2c90: 0d 0a 09 42 4f 4f 4c 20 53 79 6d 4d 61 74 63 68 ...BOOL SymMatch
2ca0: 46 69 6c 65 4e 61 6d 65 28 4c 50 53 54 52 2c 20 FileName(LPSTR,
2cb0: 4c 50 53 54 52 2c 20 4c 50 53 54 52 2a 2c 20 4c LPSTR, LPSTR*, L
2cc0: 50 53 54 52 2a 29 3b 0d 0a 09 42 4f 4f 4c 20 53 PSTR*);...BOOL S
2cd0: 79 6d 49 6e 69 74 69 61 6c 69 7a 65 28 48 41 4e ymInitialize(HAN
2ce0: 44 4c 45 2c 20 4c 50 53 54 52 2c 20 42 4f 4f 4c DLE, LPSTR, BOOL
2cf0: 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 47 65 74 );...BOOL SymGet
2d00: 53 65 61 72 63 68 50 61 74 68 28 48 41 4e 44 4c SearchPath(HANDL
2d10: 45 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44 29 E, LPSTR, DWORD)
2d20: 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 53 65 74 53 ;...BOOL SymSetS
2d30: 65 61 72 63 68 50 61 74 68 28 48 41 4e 44 4c 45 earchPath(HANDLE
2d40: 2c 20 4c 50 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c , LPSTR);...BOOL
2d50: 20 53 79 6d 4c 6f 61 64 4d 6f 64 75 6c 65 28 48 SymLoadModule(H
2d60: 41 4e 44 4c 45 2c 20 48 41 4e 44 4c 45 2c 20 50 ANDLE, HANDLE, P
2d70: 53 54 52 2c 20 50 53 54 52 2c 20 44 57 4f 52 44 STR, PSTR, DWORD
2d80: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c , DWORD);...BOOL
2d90: 20 53 79 6d 55 6e 6c 6f 61 64 4d 6f 64 75 6c 65 SymUnloadModule
2da0: 28 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 29 3b (HANDLE, DWORD);
2db0: 0d 0a 09 42 4f 4f 4c 20 53 79 6d 55 6e 44 4e 61 ...BOOL SymUnDNa
2dc0: 6d 65 28 50 49 4d 41 47 45 48 4c 50 5f 53 59 4d me(PIMAGEHLP_SYM
2dd0: 42 4f 4c 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 BOL, LPSTR, DWOR
2de0: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 79 6d 52 65 D);...BOOL SymRe
2df0: 67 69 73 74 65 72 43 61 6c 6c 62 61 63 6b 28 48 gisterCallback(H
2e00: 41 4e 44 4c 45 2c 20 50 53 59 4d 42 4f 4c 5f 52 ANDLE, PSYMBOL_R
2e10: 45 47 49 53 54 45 52 45 44 5f 43 41 4c 4c 42 41 EGISTERED_CALLBA
2e20: 43 4b 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f CK, PVOID);...BO
2e30: 4f 4c 20 49 6d 61 67 65 47 65 74 44 69 67 65 73 OL ImageGetDiges
2e40: 74 53 74 72 65 61 6d 28 48 41 4e 44 4c 45 2c 20 tStream(HANDLE,
2e50: 44 57 4f 52 44 2c 20 44 49 47 45 53 54 5f 46 55 DWORD, DIGEST_FU
2e60: 4e 43 54 49 4f 4e 2c 20 44 49 47 45 53 54 5f 48 NCTION, DIGEST_H
2e70: 41 4e 44 4c 45 29 3b 0d 0a 09 42 4f 4f 4c 20 49 ANDLE);...BOOL I
2e80: 6d 61 67 65 41 64 64 43 65 72 74 69 66 69 63 61 mageAddCertifica
2e90: 74 65 28 48 41 4e 44 4c 45 2c 20 4c 50 57 49 4e te(HANDLE, LPWIN
2ea0: 5f 43 45 52 54 49 46 49 43 41 54 45 2c 20 50 44 _CERTIFICATE, PD
2eb0: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6d WORD);...BOOL Im
2ec0: 61 67 65 52 65 6d 6f 76 65 43 65 72 74 69 66 69 ageRemoveCertifi
2ed0: 63 61 74 65 28 48 41 4e 44 4c 45 2c 20 44 57 4f cate(HANDLE, DWO
2ee0: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6d 61 67 RD);...BOOL Imag
2ef0: 65 45 6e 75 6d 65 72 61 74 65 43 65 72 74 69 66 eEnumerateCertif
2f00: 69 63 61 74 65 73 28 48 41 4e 44 4c 45 2c 20 57 icates(HANDLE, W
2f10: 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 ORD, PDWORD, PDW
2f20: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 ORD, DWORD);...B
2f30: 4f 4f 4c 20 49 6d 61 67 65 47 65 74 43 65 72 74 OOL ImageGetCert
2f40: 69 66 69 63 61 74 65 44 61 74 61 28 48 41 4e 44 ificateData(HAND
2f50: 4c 45 2c 20 44 57 4f 52 44 2c 20 4c 50 57 49 4e LE, DWORD, LPWIN
2f60: 5f 43 45 52 54 49 46 49 43 41 54 45 2c 20 50 44 _CERTIFICATE, PD
2f70: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6d WORD);...BOOL Im
2f80: 61 67 65 47 65 74 43 65 72 74 69 66 69 63 61 74 ageGetCertificat
2f90: 65 48 65 61 64 65 72 28 48 41 4e 44 4c 45 2c 20 eHeader(HANDLE,
2fa0: 44 57 4f 52 44 2c 20 4c 50 57 49 4e 5f 43 45 52 DWORD, LPWIN_CER
2fb0: 54 49 46 49 43 41 54 45 29 3b 0d 0a 09 42 4f 4f TIFICATE);...BOO
2fc0: 4c 20 43 6f 70 79 50 64 62 28 43 48 41 52 2a 2c L CopyPdb(CHAR*,
2fd0: 20 43 48 41 52 2a 2c 20 42 4f 4f 4c 29 3b 0d 0a CHAR*, BOOL);..
2fe0: 09 42 4f 4f 4c 20 52 65 6d 6f 76 65 50 72 69 76 .BOOL RemovePriv
2ff0: 61 74 65 43 76 53 79 6d 62 6f 6c 69 63 45 78 28 ateCvSymbolicEx(
3000: 50 43 48 41 52 2c 20 55 4c 4f 4e 47 2c 20 50 43 PCHAR, ULONG, PC
3010: 48 41 52 2a 2c 20 55 4c 4f 4e 47 2a 29 3b 0d 0a HAR*, ULONG*);..
3020: 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e 20 28 55 6e }....version (Un
3030: 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 icode) {...alias
3040: 20 4d 61 70 46 69 6c 65 41 6e 64 43 68 65 63 6b MapFileAndCheck
3050: 53 75 6d 57 20 4d 61 70 46 69 6c 65 41 6e 64 43 SumW MapFileAndC
3060: 68 65 63 6b 53 75 6d 3b 0d 0a 7d 20 65 6c 73 65 heckSum;..} else
3070: 20 7b 0d 0a 09 61 6c 69 61 73 20 4d 61 70 46 69 {...alias MapFi
3080: 6c 65 41 6e 64 43 68 65 63 6b 53 75 6d 41 20 4d leAndCheckSumA M
3090: 61 70 46 69 6c 65 41 6e 64 43 68 65 63 6b 53 75 apFileAndCheckSu
30a0: 6d 3b 0d 0a 7d 0d 0a m;..}..