Hex Artifact Content

Not logged in

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);..}.}.