Artifact 57d6b78740d2c6bb5d4b576ed466f82ade0da7c3:
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 0a 2a 20 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 74 6c 68 65 6c 70 tlhelp
0070: 33 32 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 32.d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 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 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 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: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 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 20 20
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63 aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20 domain
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a \***************
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2f 0a 6d 6f 64 75 6c 65 ********/.module
02a0: 20 77 69 6e 33 32 2e 74 6c 68 65 6c 70 33 32 3b win32.tlhelp32;
02b0: 0a 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 ..private import
02c0: 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0a 0a win32.windef;..
02d0: 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 0a 09 48 enum : uint {..H
02e0: 46 33 32 5f 44 45 46 41 55 4c 54 20 3d 20 31 2c F32_DEFAULT = 1,
02f0: 0a 09 48 46 33 32 5f 53 48 41 52 45 44 0a 7d 0a ..HF32_SHARED.}.
0300: 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b 0a 09 .enum : uint {..
0310: 4c 46 33 32 5f 46 49 58 45 44 20 20 20 20 3d 20 LF32_FIXED =
0320: 30 78 31 2c 0a 09 4c 46 33 32 5f 46 52 45 45 20 0x1,..LF32_FREE
0330: 20 20 20 20 3d 20 30 78 32 2c 0a 09 4c 46 33 32 = 0x2,..LF32
0340: 5f 4d 4f 56 45 41 42 4c 45 20 3d 20 30 78 34 0a _MOVEABLE = 0x4.
0350: 7d 0a 0a 63 6f 6e 73 74 20 4d 41 58 5f 4d 4f 44 }..const MAX_MOD
0360: 55 4c 45 5f 4e 41 4d 45 33 32 20 3d 20 32 35 35 ULE_NAME32 = 255
0370: 3b 0a 0a 65 6e 75 6d 20 3a 20 75 69 6e 74 20 7b ;..enum : uint {
0380: 0a 09 54 48 33 32 43 53 5f 53 4e 41 50 48 45 41 ..TH32CS_SNAPHEA
0390: 50 4c 49 53 54 20 3d 20 30 78 31 2c 0a 09 54 48 PLIST = 0x1,..TH
03a0: 33 32 43 53 5f 53 4e 41 50 50 52 4f 43 45 53 53 32CS_SNAPPROCESS
03b0: 20 20 3d 20 30 78 32 2c 0a 09 54 48 33 32 43 53 = 0x2,..TH32CS
03c0: 5f 53 4e 41 50 54 48 52 45 41 44 20 20 20 3d 20 _SNAPTHREAD =
03d0: 30 78 34 2c 0a 09 54 48 33 32 43 53 5f 53 4e 41 0x4,..TH32CS_SNA
03e0: 50 4d 4f 44 55 4c 45 20 20 20 3d 20 30 78 38 2c PMODULE = 0x8,
03f0: 0a 09 54 48 33 32 43 53 5f 53 4e 41 50 41 4c 4c ..TH32CS_SNAPALL
0400: 20 20 20 20 20 20 3d 20 28 54 48 33 32 43 53 5f = (TH32CS_
0410: 53 4e 41 50 48 45 41 50 4c 49 53 54 7c 54 48 33 SNAPHEAPLIST|TH3
0420: 32 43 53 5f 53 4e 41 50 50 52 4f 43 45 53 53 7c 2CS_SNAPPROCESS|
0430: 54 48 33 32 43 53 5f 53 4e 41 50 54 48 52 45 41 TH32CS_SNAPTHREA
0440: 44 7c 54 48 33 32 43 53 5f 53 4e 41 50 4d 4f 44 D|TH32CS_SNAPMOD
0450: 55 4c 45 29 2c 0a 09 54 48 33 32 43 53 5f 49 4e ULE),..TH32CS_IN
0460: 48 45 52 49 54 20 20 20 20 20 20 3d 20 30 78 38 HERIT = 0x8
0470: 30 30 30 30 30 30 30 0a 7d 0a 0a 73 74 72 75 63 0000000.}..struc
0480: 74 20 48 45 41 50 4c 49 53 54 33 32 20 7b 0a 09 t HEAPLIST32 {..
0490: 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0a 09 44 DWORD dwSize;..D
04a0: 57 4f 52 44 20 74 68 33 32 50 72 6f 63 65 73 73 WORD th32Process
04b0: 49 44 3b 0a 09 44 57 4f 52 44 20 74 68 33 32 48 ID;..DWORD th32H
04c0: 65 61 70 49 44 3b 0a 09 44 57 4f 52 44 20 64 77 eapID;..DWORD dw
04d0: 46 6c 61 67 73 3b 0a 7d 20 0a 61 6c 69 61 73 20 Flags;.} .alias
04e0: 48 45 41 50 4c 49 53 54 33 32 2a 20 50 48 45 41 HEAPLIST32* PHEA
04f0: 50 4c 49 53 54 33 32 3b 0a 61 6c 69 61 73 20 48 PLIST32;.alias H
0500: 45 41 50 4c 49 53 54 33 32 2a 20 4c 50 48 45 41 EAPLIST32* LPHEA
0510: 50 4c 49 53 54 33 32 3b 0a 0a 73 74 72 75 63 74 PLIST32;..struct
0520: 20 48 45 41 50 45 4e 54 52 59 33 32 20 7b 0a 09 HEAPENTRY32 {..
0530: 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0a 09 48 DWORD dwSize;..H
0540: 41 4e 44 4c 45 20 68 48 61 6e 64 6c 65 3b 0a 09 ANDLE hHandle;..
0550: 44 57 4f 52 44 20 64 77 41 64 64 72 65 73 73 3b DWORD dwAddress;
0560: 0a 09 44 57 4f 52 44 20 64 77 42 6c 6f 63 6b 53 ..DWORD dwBlockS
0570: 69 7a 65 3b 0a 09 44 57 4f 52 44 20 64 77 46 6c ize;..DWORD dwFl
0580: 61 67 73 3b 0a 09 44 57 4f 52 44 20 64 77 4c 6f ags;..DWORD dwLo
0590: 63 6b 43 6f 75 6e 74 3b 0a 09 44 57 4f 52 44 20 ckCount;..DWORD
05a0: 64 77 52 65 73 76 64 3b 0a 09 44 57 4f 52 44 20 dwResvd;..DWORD
05b0: 74 68 33 32 50 72 6f 63 65 73 73 49 44 3b 0a 09 th32ProcessID;..
05c0: 44 57 4f 52 44 20 74 68 33 32 48 65 61 70 49 44 DWORD th32HeapID
05d0: 3b 0a 7d 0a 61 6c 69 61 73 20 48 45 41 50 45 4e ;.}.alias HEAPEN
05e0: 54 52 59 33 32 2a 20 50 48 45 41 50 45 4e 54 52 TRY32* PHEAPENTR
05f0: 59 33 32 3b 0a 61 6c 69 61 73 20 48 45 41 50 45 Y32;.alias HEAPE
0600: 4e 54 52 59 33 32 2a 20 4c 50 48 45 41 50 45 4e NTRY32* LPHEAPEN
0610: 54 52 59 33 32 3b 0a 0a 73 74 72 75 63 74 20 50 TRY32;..struct P
0620: 52 4f 43 45 53 53 45 4e 54 52 59 33 32 57 20 7b ROCESSENTRY32W {
0630: 0a 09 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0a ..DWORD dwSize;.
0640: 09 44 57 4f 52 44 20 63 6e 74 55 73 61 67 65 3b .DWORD cntUsage;
0650: 0a 09 44 57 4f 52 44 20 74 68 33 32 50 72 6f 63 ..DWORD th32Proc
0660: 65 73 73 49 44 3b 0a 09 44 57 4f 52 44 20 74 68 essID;..DWORD th
0670: 33 32 44 65 66 61 75 6c 74 48 65 61 70 49 44 3b 32DefaultHeapID;
0680: 0a 09 44 57 4f 52 44 20 74 68 33 32 4d 6f 64 75 ..DWORD th32Modu
0690: 6c 65 49 44 3b 0a 09 44 57 4f 52 44 20 63 6e 74 leID;..DWORD cnt
06a0: 54 68 72 65 61 64 73 3b 0a 09 44 57 4f 52 44 20 Threads;..DWORD
06b0: 74 68 33 32 50 61 72 65 6e 74 50 72 6f 63 65 73 th32ParentProces
06c0: 73 49 44 3b 0a 09 4c 4f 4e 47 20 70 63 50 72 69 sID;..LONG pcPri
06d0: 43 6c 61 73 73 42 61 73 65 3b 0a 09 44 57 4f 52 ClassBase;..DWOR
06e0: 44 20 64 77 46 6c 61 67 73 3b 0a 09 57 43 48 41 D dwFlags;..WCHA
06f0: 52 20 73 7a 45 78 65 46 69 6c 65 5b 4d 41 58 5f R szExeFile[MAX_
0700: 50 41 54 48 5d 3b 0a 7d 0a 61 6c 69 61 73 20 50 PATH];.}.alias P
0710: 52 4f 43 45 53 53 45 4e 54 52 59 33 32 57 2a 20 ROCESSENTRY32W*
0720: 50 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32 57 PPROCESSENTRY32W
0730: 3b 0a 61 6c 69 61 73 20 50 52 4f 43 45 53 53 45 ;.alias PROCESSE
0740: 4e 54 52 59 33 32 57 2a 20 4c 50 50 52 4f 43 45 NTRY32W* LPPROCE
0750: 53 53 45 4e 54 52 59 33 32 57 3b 0a 0a 73 74 72 SSENTRY32W;..str
0760: 75 63 74 20 54 48 52 45 41 44 45 4e 54 52 59 33 uct THREADENTRY3
0770: 32 20 7b 0a 09 44 57 4f 52 44 20 64 77 53 69 7a 2 {..DWORD dwSiz
0780: 65 3b 0a 09 44 57 4f 52 44 20 63 6e 74 55 73 61 e;..DWORD cntUsa
0790: 67 65 3b 0a 09 44 57 4f 52 44 20 74 68 33 32 54 ge;..DWORD th32T
07a0: 68 72 65 61 64 49 44 3b 0a 09 44 57 4f 52 44 20 hreadID;..DWORD
07b0: 74 68 33 32 4f 77 6e 65 72 50 72 6f 63 65 73 73 th32OwnerProcess
07c0: 49 44 3b 0a 09 4c 4f 4e 47 20 74 70 42 61 73 65 ID;..LONG tpBase
07d0: 50 72 69 3b 0a 09 4c 4f 4e 47 20 74 70 44 65 6c Pri;..LONG tpDel
07e0: 74 61 50 72 69 3b 0a 09 44 57 4f 52 44 20 64 77 taPri;..DWORD dw
07f0: 46 6c 61 67 73 3b 0a 7d 0a 61 6c 69 61 73 20 54 Flags;.}.alias T
0800: 48 52 45 41 44 45 4e 54 52 59 33 32 2a 20 50 54 HREADENTRY32* PT
0810: 48 52 45 41 44 45 4e 54 52 59 33 32 3b 0a 61 6c HREADENTRY32;.al
0820: 69 61 73 20 54 48 52 45 41 44 45 4e 54 52 59 33 ias THREADENTRY3
0830: 32 2a 20 4c 50 54 48 52 45 41 44 45 4e 54 52 59 2* LPTHREADENTRY
0840: 33 32 3b 0a 0a 73 74 72 75 63 74 20 4d 4f 44 55 32;..struct MODU
0850: 4c 45 45 4e 54 52 59 33 32 57 20 7b 0a 09 44 57 LEENTRY32W {..DW
0860: 4f 52 44 20 64 77 53 69 7a 65 3b 0a 09 44 57 4f ORD dwSize;..DWO
0870: 52 44 20 74 68 33 32 4d 6f 64 75 6c 65 49 44 3b RD th32ModuleID;
0880: 0a 09 44 57 4f 52 44 20 74 68 33 32 50 72 6f 63 ..DWORD th32Proc
0890: 65 73 73 49 44 3b 0a 09 44 57 4f 52 44 20 47 6c essID;..DWORD Gl
08a0: 62 6c 63 6e 74 55 73 61 67 65 3b 0a 09 44 57 4f blcntUsage;..DWO
08b0: 52 44 20 50 72 6f 63 63 6e 74 55 73 61 67 65 3b RD ProccntUsage;
08c0: 0a 09 42 59 54 45 20 2a 6d 6f 64 42 61 73 65 41 ..BYTE *modBaseA
08d0: 64 64 72 3b 0a 09 44 57 4f 52 44 20 6d 6f 64 42 ddr;..DWORD modB
08e0: 61 73 65 53 69 7a 65 3b 0a 09 48 4d 4f 44 55 4c aseSize;..HMODUL
08f0: 45 20 68 4d 6f 64 75 6c 65 3b 20 0a 09 57 43 48 E hModule; ..WCH
0900: 41 52 20 73 7a 4d 6f 64 75 6c 65 5b 4d 41 58 5f AR szModule[MAX_
0910: 4d 4f 44 55 4c 45 5f 4e 41 4d 45 33 32 20 2b 20 MODULE_NAME32 +
0920: 31 5d 3b 0a 09 57 43 48 41 52 20 73 7a 45 78 65 1];..WCHAR szExe
0930: 50 61 74 68 5b 4d 41 58 5f 50 41 54 48 5d 3b 0a Path[MAX_PATH];.
0940: 7d 0a 61 6c 69 61 73 20 4d 4f 44 55 4c 45 45 4e }.alias MODULEEN
0950: 54 52 59 33 32 57 2a 20 50 4d 4f 44 55 4c 45 45 TRY32W* PMODULEE
0960: 4e 54 52 59 33 32 57 3b 0a 61 6c 69 61 73 20 4d NTRY32W;.alias M
0970: 4f 44 55 4c 45 45 4e 54 52 59 33 32 57 2a 20 4c ODULEENTRY32W* L
0980: 50 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 57 3b PMODULEENTRY32W;
0990: 0a 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 ..version(Unicod
09a0: 65 29 20 7b 0a 09 61 6c 69 61 73 20 50 52 4f 43 e) {..alias PROC
09b0: 45 53 53 45 4e 54 52 59 33 32 57 20 50 52 4f 43 ESSENTRY32W PROC
09c0: 45 53 53 45 4e 54 52 59 33 32 3b 0a 09 61 6c 69 ESSENTRY32;..ali
09d0: 61 73 20 50 50 52 4f 43 45 53 53 45 4e 54 52 59 as PPROCESSENTRY
09e0: 33 32 57 20 50 50 52 4f 43 45 53 53 45 4e 54 52 32W PPROCESSENTR
09f0: 59 33 32 3b 0a 09 61 6c 69 61 73 20 4c 50 50 52 Y32;..alias LPPR
0a00: 4f 43 45 53 53 45 4e 54 52 59 33 32 57 20 4c 50 OCESSENTRY32W LP
0a10: 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32 3b 0a PROCESSENTRY32;.
0a20: 0a 09 61 6c 69 61 73 20 4d 4f 44 55 4c 45 45 4e ..alias MODULEEN
0a30: 54 52 59 33 32 57 20 4d 4f 44 55 4c 45 45 4e 54 TRY32W MODULEENT
0a40: 52 59 33 32 3b 0a 09 61 6c 69 61 73 20 50 4d 4f RY32;..alias PMO
0a50: 44 55 4c 45 45 4e 54 52 59 33 32 57 20 50 4d 4f DULEENTRY32W PMO
0a60: 44 55 4c 45 45 4e 54 52 59 33 32 3b 0a 09 61 6c DULEENTRY32;..al
0a70: 69 61 73 20 4c 50 4d 4f 44 55 4c 45 45 4e 54 52 ias LPMODULEENTR
0a80: 59 33 32 57 20 4c 50 4d 4f 44 55 4c 45 45 4e 54 Y32W LPMODULEENT
0a90: 52 59 33 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 RY32;.} else {..
0aa0: 73 74 72 75 63 74 20 50 52 4f 43 45 53 53 45 4e struct PROCESSEN
0ab0: 54 52 59 33 32 20 7b 0a 09 09 44 57 4f 52 44 20 TRY32 {...DWORD
0ac0: 64 77 53 69 7a 65 3b 0a 09 09 44 57 4f 52 44 20 dwSize;...DWORD
0ad0: 63 6e 74 55 73 61 67 65 3b 0a 09 09 44 57 4f 52 cntUsage;...DWOR
0ae0: 44 20 74 68 33 32 50 72 6f 63 65 73 73 49 44 3b D th32ProcessID;
0af0: 0a 09 09 44 57 4f 52 44 20 74 68 33 32 44 65 66 ...DWORD th32Def
0b00: 61 75 6c 74 48 65 61 70 49 44 3b 0a 09 09 44 57 aultHeapID;...DW
0b10: 4f 52 44 20 74 68 33 32 4d 6f 64 75 6c 65 49 44 ORD th32ModuleID
0b20: 3b 0a 09 09 44 57 4f 52 44 20 63 6e 74 54 68 72 ;...DWORD cntThr
0b30: 65 61 64 73 3b 0a 09 09 44 57 4f 52 44 20 74 68 eads;...DWORD th
0b40: 33 32 50 61 72 65 6e 74 50 72 6f 63 65 73 73 49 32ParentProcessI
0b50: 44 3b 0a 09 09 4c 4f 4e 47 20 70 63 50 72 69 43 D;...LONG pcPriC
0b60: 6c 61 73 73 42 61 73 65 3b 0a 09 09 44 57 4f 52 lassBase;...DWOR
0b70: 44 20 64 77 46 6c 61 67 73 3b 0a 09 09 43 48 41 D dwFlags;...CHA
0b80: 52 20 20 73 7a 45 78 65 46 69 6c 65 5b 4d 41 58 R szExeFile[MAX
0b90: 5f 50 41 54 48 5d 3b 0a 09 7d 0a 09 61 6c 69 61 _PATH];..}..alia
0ba0: 73 20 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32 s PROCESSENTRY32
0bb0: 2a 20 50 50 52 4f 43 45 53 53 45 4e 54 52 59 33 * PPROCESSENTRY3
0bc0: 32 3b 0a 09 61 6c 69 61 73 20 50 52 4f 43 45 53 2;..alias PROCES
0bd0: 53 45 4e 54 52 59 33 32 2a 20 4c 50 50 52 4f 43 SENTRY32* LPPROC
0be0: 45 53 53 45 4e 54 52 59 33 32 3b 0a 0a 09 73 74 ESSENTRY32;...st
0bf0: 72 75 63 74 20 4d 4f 44 55 4c 45 45 4e 54 52 59 ruct MODULEENTRY
0c00: 33 32 20 7b 0a 09 09 44 57 4f 52 44 20 64 77 53 32 {...DWORD dwS
0c10: 69 7a 65 3b 0a 09 09 44 57 4f 52 44 20 74 68 33 ize;...DWORD th3
0c20: 32 4d 6f 64 75 6c 65 49 44 3b 0a 09 09 44 57 4f 2ModuleID;...DWO
0c30: 52 44 20 74 68 33 32 50 72 6f 63 65 73 73 49 44 RD th32ProcessID
0c40: 3b 0a 09 09 44 57 4f 52 44 20 47 6c 62 6c 63 6e ;...DWORD Glblcn
0c50: 74 55 73 61 67 65 3b 0a 09 09 44 57 4f 52 44 20 tUsage;...DWORD
0c60: 50 72 6f 63 63 6e 74 55 73 61 67 65 3b 0a 09 09 ProccntUsage;...
0c70: 42 59 54 45 20 2a 6d 6f 64 42 61 73 65 41 64 64 BYTE *modBaseAdd
0c80: 72 3b 0a 09 09 44 57 4f 52 44 20 6d 6f 64 42 61 r;...DWORD modBa
0c90: 73 65 53 69 7a 65 3b 0a 09 09 48 4d 4f 44 55 4c seSize;...HMODUL
0ca0: 45 20 68 4d 6f 64 75 6c 65 3b 0a 09 09 63 68 61 E hModule;...cha
0cb0: 72 20 73 7a 4d 6f 64 75 6c 65 5b 4d 41 58 5f 4d r szModule[MAX_M
0cc0: 4f 44 55 4c 45 5f 4e 41 4d 45 33 32 20 2b 20 31 ODULE_NAME32 + 1
0cd0: 5d 3b 0a 09 09 63 68 61 72 20 73 7a 45 78 65 50 ];...char szExeP
0ce0: 61 74 68 5b 4d 41 58 5f 50 41 54 48 5d 3b 0a 09 ath[MAX_PATH];..
0cf0: 7d 0a 09 61 6c 69 61 73 20 4d 4f 44 55 4c 45 45 }..alias MODULEE
0d00: 4e 54 52 59 33 32 2a 20 50 4d 4f 44 55 4c 45 45 NTRY32* PMODULEE
0d10: 4e 54 52 59 33 32 3b 0a 09 61 6c 69 61 73 20 4d NTRY32;..alias M
0d20: 4f 44 55 4c 45 45 4e 54 52 59 33 32 2a 20 4c 50 ODULEENTRY32* LP
0d30: 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 3b 0a 7d MODULEENTRY32;.}
0d40: 0a 0a 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 ...extern(Window
0d50: 73 29 20 7b 0a 09 42 4f 4f 4c 20 48 65 61 70 33 s) {..BOOL Heap3
0d60: 32 46 69 72 73 74 28 4c 50 48 45 41 50 45 4e 54 2First(LPHEAPENT
0d70: 52 59 33 32 2c 44 57 4f 52 44 2c 44 57 4f 52 44 RY32,DWORD,DWORD
0d80: 29 3b 0a 09 42 4f 4f 4c 20 48 65 61 70 33 32 4c );..BOOL Heap32L
0d90: 69 73 74 46 69 72 73 74 28 48 41 4e 44 4c 45 2c istFirst(HANDLE,
0da0: 4c 50 48 45 41 50 4c 49 53 54 33 32 29 3b 0a 09 LPHEAPLIST32);..
0db0: 42 4f 4f 4c 20 48 65 61 70 33 32 4c 69 73 74 4e BOOL Heap32ListN
0dc0: 65 78 74 28 48 41 4e 44 4c 45 2c 4c 50 48 45 41 ext(HANDLE,LPHEA
0dd0: 50 4c 49 53 54 33 32 29 3b 0a 09 42 4f 4f 4c 20 PLIST32);..BOOL
0de0: 48 65 61 70 33 32 4e 65 78 74 28 4c 50 48 45 41 Heap32Next(LPHEA
0df0: 50 45 4e 54 52 59 33 32 29 3b 0a 09 42 4f 4f 4c PENTRY32);..BOOL
0e00: 20 54 68 72 65 61 64 33 32 46 69 72 73 74 28 48 Thread32First(H
0e10: 41 4e 44 4c 45 2c 4c 50 54 48 52 45 41 44 45 4e ANDLE,LPTHREADEN
0e20: 54 52 59 33 32 29 3b 0a 09 42 4f 4f 4c 20 54 68 TRY32);..BOOL Th
0e30: 72 65 61 64 33 32 4e 65 78 74 28 48 41 4e 44 4c read32Next(HANDL
0e40: 45 2c 4c 50 54 48 52 45 41 44 45 4e 54 52 59 33 E,LPTHREADENTRY3
0e50: 32 29 3b 0a 09 42 4f 4f 4c 20 54 6f 6f 6c 68 65 2);..BOOL Toolhe
0e60: 6c 70 33 32 52 65 61 64 50 72 6f 63 65 73 73 4d lp32ReadProcessM
0e70: 65 6d 6f 72 79 28 44 57 4f 52 44 2c 4c 50 43 56 emory(DWORD,LPCV
0e80: 4f 49 44 2c 4c 50 56 4f 49 44 2c 44 57 4f 52 44 OID,LPVOID,DWORD
0e90: 2c 4c 50 44 57 4f 52 44 29 3b 0a 09 48 41 4e 44 ,LPDWORD);..HAND
0ea0: 4c 45 20 43 72 65 61 74 65 54 6f 6f 6c 68 65 6c LE CreateToolhel
0eb0: 70 33 32 53 6e 61 70 73 68 6f 74 28 44 57 4f 52 p32Snapshot(DWOR
0ec0: 44 2c 44 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20 D,DWORD);..BOOL
0ed0: 4d 6f 64 75 6c 65 33 32 46 69 72 73 74 57 28 48 Module32FirstW(H
0ee0: 41 4e 44 4c 45 2c 4c 50 4d 4f 44 55 4c 45 45 4e ANDLE,LPMODULEEN
0ef0: 54 52 59 33 32 57 29 3b 0a 09 42 4f 4f 4c 20 4d TRY32W);..BOOL M
0f00: 6f 64 75 6c 65 33 32 4e 65 78 74 57 28 48 41 4e odule32NextW(HAN
0f10: 44 4c 45 2c 4c 50 4d 4f 44 55 4c 45 45 4e 54 52 DLE,LPMODULEENTR
0f20: 59 33 32 57 29 3b 0a 09 42 4f 4f 4c 20 50 72 6f Y32W);..BOOL Pro
0f30: 63 65 73 73 33 32 46 69 72 73 74 57 28 48 41 4e cess32FirstW(HAN
0f40: 44 4c 45 2c 4c 50 50 52 4f 43 45 53 53 45 4e 54 DLE,LPPROCESSENT
0f50: 52 59 33 32 57 29 3b 0a 09 42 4f 4f 4c 20 50 72 RY32W);..BOOL Pr
0f60: 6f 63 65 73 73 33 32 4e 65 78 74 57 28 48 41 4e ocess32NextW(HAN
0f70: 44 4c 45 2c 4c 50 50 52 4f 43 45 53 53 45 4e 54 DLE,LPPROCESSENT
0f80: 52 59 33 32 57 29 3b 0a 7d 0a 0a 76 65 72 73 69 RY32W);.}..versi
0f90: 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61 on(Unicode) {..a
0fa0: 6c 69 61 73 20 4d 6f 64 75 6c 65 33 32 46 69 72 lias Module32Fir
0fb0: 73 74 57 20 4d 6f 64 75 6c 65 33 32 46 69 72 73 stW Module32Firs
0fc0: 74 3b 0a 09 61 6c 69 61 73 20 4d 6f 64 75 6c 65 t;..alias Module
0fd0: 33 32 4e 65 78 74 57 20 4d 6f 64 75 6c 65 33 32 32NextW Module32
0fe0: 4e 65 78 74 3b 0a 09 61 6c 69 61 73 20 50 72 6f Next;..alias Pro
0ff0: 63 65 73 73 33 32 46 69 72 73 74 57 20 50 72 6f cess32FirstW Pro
1000: 63 65 73 73 33 32 46 69 72 73 74 3b 0a 09 61 6c cess32First;..al
1010: 69 61 73 20 50 72 6f 63 65 73 73 33 32 4e 65 78 ias Process32Nex
1020: 74 57 20 50 72 6f 63 65 73 73 33 32 4e 65 78 74 tW Process32Next
1030: 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 65 78 74 65 ;.} else {..exte
1040: 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0a 09 09 rn(Windows) {...
1050: 42 4f 4f 4c 20 4d 6f 64 75 6c 65 33 32 46 69 72 BOOL Module32Fir
1060: 73 74 28 48 41 4e 44 4c 45 2c 4c 50 4d 4f 44 55 st(HANDLE,LPMODU
1070: 4c 45 45 4e 54 52 59 33 32 29 3b 0a 09 09 42 4f LEENTRY32);...BO
1080: 4f 4c 20 4d 6f 64 75 6c 65 33 32 4e 65 78 74 28 OL Module32Next(
1090: 48 41 4e 44 4c 45 2c 4c 50 4d 4f 44 55 4c 45 45 HANDLE,LPMODULEE
10a0: 4e 54 52 59 33 32 29 3b 0a 09 09 42 4f 4f 4c 20 NTRY32);...BOOL
10b0: 50 72 6f 63 65 73 73 33 32 46 69 72 73 74 28 48 Process32First(H
10c0: 41 4e 44 4c 45 2c 4c 50 50 52 4f 43 45 53 53 45 ANDLE,LPPROCESSE
10d0: 4e 54 52 59 33 32 29 3b 0a 09 09 42 4f 4f 4c 20 NTRY32);...BOOL
10e0: 50 72 6f 63 65 73 73 33 32 4e 65 78 74 28 48 41 Process32Next(HA
10f0: 4e 44 4c 45 2c 4c 50 50 52 4f 43 45 53 53 45 4e NDLE,LPPROCESSEN
1100: 54 52 59 33 32 29 3b 0a 09 7d 0a 7d 0a TRY32);..}.}.