Hex Artifact Content

Not logged in

Artifact ae72c8193c7063aca3b17502d7f1bfe78fb4c748:


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: 53 49 5a 45 5f 54 20 64 77 53 69 7a 65 3b 0a 09  SIZE_T dwSize;..
04a0: 44 57 4f 52 44 20 74 68 33 32 50 72 6f 63 65 73  DWORD th32Proces
04b0: 73 49 44 3b 0a 09 55 4c 4f 4e 47 5f 50 54 52 20  sID;..ULONG_PTR 
04c0: 74 68 33 32 48 65 61 70 49 44 3b 0a 09 44 57 4f  th32HeapID;..DWO
04d0: 52 44 20 64 77 46 6c 61 67 73 3b 0a 7d 20 0a 61  RD dwFlags;.} .a
04e0: 6c 69 61 73 20 48 45 41 50 4c 49 53 54 33 32 2a  lias HEAPLIST32*
04f0: 20 50 48 45 41 50 4c 49 53 54 33 32 3b 0a 61 6c   PHEAPLIST32;.al
0500: 69 61 73 20 48 45 41 50 4c 49 53 54 33 32 2a 20  ias HEAPLIST32* 
0510: 4c 50 48 45 41 50 4c 49 53 54 33 32 3b 0a 0a 73  LPHEAPLIST32;..s
0520: 74 72 75 63 74 20 48 45 41 50 45 4e 54 52 59 33  truct HEAPENTRY3
0530: 32 20 7b 0a 09 53 49 5a 45 5f 54 20 64 77 53 69  2 {..SIZE_T dwSi
0540: 7a 65 3b 0a 09 48 41 4e 44 4c 45 20 68 48 61 6e  ze;..HANDLE hHan
0550: 64 6c 65 3b 0a 09 55 4c 4f 4e 47 5f 50 54 52 20  dle;..ULONG_PTR 
0560: 64 77 41 64 64 72 65 73 73 3b 0a 09 53 49 5a 45  dwAddress;..SIZE
0570: 5f 54 20 64 77 42 6c 6f 63 6b 53 69 7a 65 3b 0a  _T dwBlockSize;.
0580: 09 44 57 4f 52 44 20 64 77 46 6c 61 67 73 3b 0a  .DWORD dwFlags;.
0590: 09 44 57 4f 52 44 20 64 77 4c 6f 63 6b 43 6f 75  .DWORD dwLockCou
05a0: 6e 74 3b 0a 09 44 57 4f 52 44 20 64 77 52 65 73  nt;..DWORD dwRes
05b0: 76 64 3b 0a 09 44 57 4f 52 44 20 74 68 33 32 50  vd;..DWORD th32P
05c0: 72 6f 63 65 73 73 49 44 3b 0a 09 55 4c 4f 4e 47  rocessID;..ULONG
05d0: 5f 50 54 52 20 74 68 33 32 48 65 61 70 49 44 3b  _PTR th32HeapID;
05e0: 0a 7d 0a 61 6c 69 61 73 20 48 45 41 50 45 4e 54  .}.alias HEAPENT
05f0: 52 59 33 32 2a 20 50 48 45 41 50 45 4e 54 52 59  RY32* PHEAPENTRY
0600: 33 32 3b 0a 61 6c 69 61 73 20 48 45 41 50 45 4e  32;.alias HEAPEN
0610: 54 52 59 33 32 2a 20 4c 50 48 45 41 50 45 4e 54  TRY32* LPHEAPENT
0620: 52 59 33 32 3b 0a 0a 73 74 72 75 63 74 20 50 52  RY32;..struct PR
0630: 4f 43 45 53 53 45 4e 54 52 59 33 32 57 20 7b 0a  OCESSENTRY32W {.
0640: 09 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0a 09  .DWORD dwSize;..
0650: 44 57 4f 52 44 20 63 6e 74 55 73 61 67 65 3b 0a  DWORD cntUsage;.
0660: 09 44 57 4f 52 44 20 74 68 33 32 50 72 6f 63 65  .DWORD th32Proce
0670: 73 73 49 44 3b 0a 09 55 4c 4f 4e 47 5f 50 54 52  ssID;..ULONG_PTR
0680: 20 74 68 33 32 44 65 66 61 75 6c 74 48 65 61 70   th32DefaultHeap
0690: 49 44 3b 0a 09 44 57 4f 52 44 20 74 68 33 32 4d  ID;..DWORD th32M
06a0: 6f 64 75 6c 65 49 44 3b 0a 09 44 57 4f 52 44 20  oduleID;..DWORD 
06b0: 63 6e 74 54 68 72 65 61 64 73 3b 0a 09 44 57 4f  cntThreads;..DWO
06c0: 52 44 20 74 68 33 32 50 61 72 65 6e 74 50 72 6f  RD th32ParentPro
06d0: 63 65 73 73 49 44 3b 0a 09 4c 4f 4e 47 20 70 63  cessID;..LONG pc
06e0: 50 72 69 43 6c 61 73 73 42 61 73 65 3b 0a 09 44  PriClassBase;..D
06f0: 57 4f 52 44 20 64 77 46 6c 61 67 73 3b 0a 09 57  WORD dwFlags;..W
0700: 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20 73  CHAR[MAX_PATH] s
0710: 7a 45 78 65 46 69 6c 65 3b 0a 7d 0a 61 6c 69 61  zExeFile;.}.alia
0720: 73 20 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32  s PROCESSENTRY32
0730: 57 2a 20 50 50 52 4f 43 45 53 53 45 4e 54 52 59  W* PPROCESSENTRY
0740: 33 32 57 3b 0a 61 6c 69 61 73 20 50 52 4f 43 45  32W;.alias PROCE
0750: 53 53 45 4e 54 52 59 33 32 57 2a 20 4c 50 50 52  SSENTRY32W* LPPR
0760: 4f 43 45 53 53 45 4e 54 52 59 33 32 57 3b 0a 0a  OCESSENTRY32W;..
0770: 73 74 72 75 63 74 20 54 48 52 45 41 44 45 4e 54  struct THREADENT
0780: 52 59 33 32 20 7b 0a 09 44 57 4f 52 44 20 64 77  RY32 {..DWORD dw
0790: 53 69 7a 65 3b 0a 09 44 57 4f 52 44 20 63 6e 74  Size;..DWORD cnt
07a0: 55 73 61 67 65 3b 0a 09 44 57 4f 52 44 20 74 68  Usage;..DWORD th
07b0: 33 32 54 68 72 65 61 64 49 44 3b 0a 09 44 57 4f  32ThreadID;..DWO
07c0: 52 44 20 74 68 33 32 4f 77 6e 65 72 50 72 6f 63  RD th32OwnerProc
07d0: 65 73 73 49 44 3b 0a 09 4c 4f 4e 47 20 74 70 42  essID;..LONG tpB
07e0: 61 73 65 50 72 69 3b 0a 09 4c 4f 4e 47 20 74 70  asePri;..LONG tp
07f0: 44 65 6c 74 61 50 72 69 3b 0a 09 44 57 4f 52 44  DeltaPri;..DWORD
0800: 20 64 77 46 6c 61 67 73 3b 0a 7d 0a 61 6c 69 61   dwFlags;.}.alia
0810: 73 20 54 48 52 45 41 44 45 4e 54 52 59 33 32 2a  s THREADENTRY32*
0820: 20 50 54 48 52 45 41 44 45 4e 54 52 59 33 32 3b   PTHREADENTRY32;
0830: 0a 61 6c 69 61 73 20 54 48 52 45 41 44 45 4e 54  .alias THREADENT
0840: 52 59 33 32 2a 20 4c 50 54 48 52 45 41 44 45 4e  RY32* LPTHREADEN
0850: 54 52 59 33 32 3b 0a 0a 73 74 72 75 63 74 20 4d  TRY32;..struct M
0860: 4f 44 55 4c 45 45 4e 54 52 59 33 32 57 20 7b 0a  ODULEENTRY32W {.
0870: 09 44 57 4f 52 44 20 64 77 53 69 7a 65 3b 0a 09  .DWORD dwSize;..
0880: 44 57 4f 52 44 20 74 68 33 32 4d 6f 64 75 6c 65  DWORD th32Module
0890: 49 44 3b 0a 09 44 57 4f 52 44 20 74 68 33 32 50  ID;..DWORD th32P
08a0: 72 6f 63 65 73 73 49 44 3b 0a 09 44 57 4f 52 44  rocessID;..DWORD
08b0: 20 47 6c 62 6c 63 6e 74 55 73 61 67 65 3b 0a 09   GlblcntUsage;..
08c0: 44 57 4f 52 44 20 50 72 6f 63 63 6e 74 55 73 61  DWORD ProccntUsa
08d0: 67 65 3b 0a 09 42 59 54 45 20 2a 6d 6f 64 42 61  ge;..BYTE *modBa
08e0: 73 65 41 64 64 72 3b 0a 09 44 57 4f 52 44 20 6d  seAddr;..DWORD m
08f0: 6f 64 42 61 73 65 53 69 7a 65 3b 0a 09 48 4d 4f  odBaseSize;..HMO
0900: 44 55 4c 45 20 68 4d 6f 64 75 6c 65 3b 20 0a 09  DULE hModule; ..
0910: 57 43 48 41 52 5b 4d 41 58 5f 4d 4f 44 55 4c 45  WCHAR[MAX_MODULE
0920: 5f 4e 41 4d 45 33 32 20 2b 20 31 5d 20 73 7a 4d  _NAME32 + 1] szM
0930: 6f 64 75 6c 65 3b 0a 09 57 43 48 41 52 5b 4d 41  odule;..WCHAR[MA
0940: 58 5f 50 41 54 48 5d 20 73 7a 45 78 65 50 61 74  X_PATH] szExePat
0950: 68 3b 0a 7d 0a 61 6c 69 61 73 20 4d 4f 44 55 4c  h;.}.alias MODUL
0960: 45 45 4e 54 52 59 33 32 57 2a 20 50 4d 4f 44 55  EENTRY32W* PMODU
0970: 4c 45 45 4e 54 52 59 33 32 57 3b 0a 61 6c 69 61  LEENTRY32W;.alia
0980: 73 20 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 57  s MODULEENTRY32W
0990: 2a 20 4c 50 4d 4f 44 55 4c 45 45 4e 54 52 59 33  * LPMODULEENTRY3
09a0: 32 57 3b 0a 0a 76 65 72 73 69 6f 6e 28 55 6e 69  2W;..version(Uni
09b0: 63 6f 64 65 29 20 7b 0a 09 61 6c 69 61 73 20 50  code) {..alias P
09c0: 52 4f 43 45 53 53 45 4e 54 52 59 33 32 57 20 50  ROCESSENTRY32W P
09d0: 52 4f 43 45 53 53 45 4e 54 52 59 33 32 3b 0a 09  ROCESSENTRY32;..
09e0: 61 6c 69 61 73 20 50 50 52 4f 43 45 53 53 45 4e  alias PPROCESSEN
09f0: 54 52 59 33 32 57 20 50 50 52 4f 43 45 53 53 45  TRY32W PPROCESSE
0a00: 4e 54 52 59 33 32 3b 0a 09 61 6c 69 61 73 20 4c  NTRY32;..alias L
0a10: 50 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32 57  PPROCESSENTRY32W
0a20: 20 4c 50 50 52 4f 43 45 53 53 45 4e 54 52 59 33   LPPROCESSENTRY3
0a30: 32 3b 0a 0a 09 61 6c 69 61 73 20 4d 4f 44 55 4c  2;...alias MODUL
0a40: 45 45 4e 54 52 59 33 32 57 20 4d 4f 44 55 4c 45  EENTRY32W MODULE
0a50: 45 4e 54 52 59 33 32 3b 0a 09 61 6c 69 61 73 20  ENTRY32;..alias 
0a60: 50 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 57 20  PMODULEENTRY32W 
0a70: 50 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 3b 0a  PMODULEENTRY32;.
0a80: 09 61 6c 69 61 73 20 4c 50 4d 4f 44 55 4c 45 45  .alias LPMODULEE
0a90: 4e 54 52 59 33 32 57 20 4c 50 4d 4f 44 55 4c 45  NTRY32W LPMODULE
0aa0: 45 4e 54 52 59 33 32 3b 0a 7d 20 65 6c 73 65 20  ENTRY32;.} else 
0ab0: 7b 0a 09 73 74 72 75 63 74 20 50 52 4f 43 45 53  {..struct PROCES
0ac0: 53 45 4e 54 52 59 33 32 20 7b 0a 09 09 44 57 4f  SENTRY32 {...DWO
0ad0: 52 44 20 64 77 53 69 7a 65 3b 0a 09 09 44 57 4f  RD dwSize;...DWO
0ae0: 52 44 20 63 6e 74 55 73 61 67 65 3b 0a 09 09 44  RD cntUsage;...D
0af0: 57 4f 52 44 20 74 68 33 32 50 72 6f 63 65 73 73  WORD th32Process
0b00: 49 44 3b 0a 09 09 55 4c 4f 4e 47 5f 50 54 52 20  ID;...ULONG_PTR 
0b10: 74 68 33 32 44 65 66 61 75 6c 74 48 65 61 70 49  th32DefaultHeapI
0b20: 44 3b 0a 09 09 44 57 4f 52 44 20 74 68 33 32 4d  D;...DWORD th32M
0b30: 6f 64 75 6c 65 49 44 3b 0a 09 09 44 57 4f 52 44  oduleID;...DWORD
0b40: 20 63 6e 74 54 68 72 65 61 64 73 3b 0a 09 09 44   cntThreads;...D
0b50: 57 4f 52 44 20 74 68 33 32 50 61 72 65 6e 74 50  WORD th32ParentP
0b60: 72 6f 63 65 73 73 49 44 3b 0a 09 09 4c 4f 4e 47  rocessID;...LONG
0b70: 20 70 63 50 72 69 43 6c 61 73 73 42 61 73 65 3b   pcPriClassBase;
0b80: 0a 09 09 44 57 4f 52 44 20 64 77 46 6c 61 67 73  ...DWORD dwFlags
0b90: 3b 0a 09 09 43 48 41 52 5b 4d 41 58 5f 50 41 54  ;...CHAR[MAX_PAT
0ba0: 48 5d 20 73 7a 45 78 65 46 69 6c 65 3b 0a 09 7d  H] szExeFile;..}
0bb0: 0a 09 61 6c 69 61 73 20 50 52 4f 43 45 53 53 45  ..alias PROCESSE
0bc0: 4e 54 52 59 33 32 2a 20 50 50 52 4f 43 45 53 53  NTRY32* PPROCESS
0bd0: 45 4e 54 52 59 33 32 3b 0a 09 61 6c 69 61 73 20  ENTRY32;..alias 
0be0: 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32 2a 20  PROCESSENTRY32* 
0bf0: 4c 50 50 52 4f 43 45 53 53 45 4e 54 52 59 33 32  LPPROCESSENTRY32
0c00: 3b 0a 0a 09 73 74 72 75 63 74 20 4d 4f 44 55 4c  ;...struct MODUL
0c10: 45 45 4e 54 52 59 33 32 20 7b 0a 09 09 44 57 4f  EENTRY32 {...DWO
0c20: 52 44 20 64 77 53 69 7a 65 3b 0a 09 09 44 57 4f  RD dwSize;...DWO
0c30: 52 44 20 74 68 33 32 4d 6f 64 75 6c 65 49 44 3b  RD th32ModuleID;
0c40: 0a 09 09 44 57 4f 52 44 20 74 68 33 32 50 72 6f  ...DWORD th32Pro
0c50: 63 65 73 73 49 44 3b 0a 09 09 44 57 4f 52 44 20  cessID;...DWORD 
0c60: 47 6c 62 6c 63 6e 74 55 73 61 67 65 3b 0a 09 09  GlblcntUsage;...
0c70: 44 57 4f 52 44 20 50 72 6f 63 63 6e 74 55 73 61  DWORD ProccntUsa
0c80: 67 65 3b 0a 09 09 42 59 54 45 20 2a 6d 6f 64 42  ge;...BYTE *modB
0c90: 61 73 65 41 64 64 72 3b 0a 09 09 44 57 4f 52 44  aseAddr;...DWORD
0ca0: 20 6d 6f 64 42 61 73 65 53 69 7a 65 3b 0a 09 09   modBaseSize;...
0cb0: 48 4d 4f 44 55 4c 45 20 68 4d 6f 64 75 6c 65 3b  HMODULE hModule;
0cc0: 0a 09 09 63 68 61 72 5b 4d 41 58 5f 4d 4f 44 55  ...char[MAX_MODU
0cd0: 4c 45 5f 4e 41 4d 45 33 32 20 2b 20 31 5d 20 73  LE_NAME32 + 1] s
0ce0: 7a 4d 6f 64 75 6c 65 3b 0a 09 09 63 68 61 72 5b  zModule;...char[
0cf0: 4d 41 58 5f 50 41 54 48 5d 20 73 7a 45 78 65 50  MAX_PATH] szExeP
0d00: 61 74 68 3b 0a 09 7d 0a 09 61 6c 69 61 73 20 4d  ath;..}..alias M
0d10: 4f 44 55 4c 45 45 4e 54 52 59 33 32 2a 20 50 4d  ODULEENTRY32* PM
0d20: 4f 44 55 4c 45 45 4e 54 52 59 33 32 3b 0a 09 61  ODULEENTRY32;..a
0d30: 6c 69 61 73 20 4d 4f 44 55 4c 45 45 4e 54 52 59  lias MODULEENTRY
0d40: 33 32 2a 20 4c 50 4d 4f 44 55 4c 45 45 4e 54 52  32* LPMODULEENTR
0d50: 59 33 32 3b 0a 7d 0a 0a 0a 65 78 74 65 72 6e 28  Y32;.}...extern(
0d60: 57 69 6e 64 6f 77 73 29 20 7b 0a 09 42 4f 4f 4c  Windows) {..BOOL
0d70: 20 48 65 61 70 33 32 46 69 72 73 74 28 4c 50 48   Heap32First(LPH
0d80: 45 41 50 45 4e 54 52 59 33 32 2c 44 57 4f 52 44  EAPENTRY32,DWORD
0d90: 2c 44 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20 48  ,DWORD);..BOOL H
0da0: 65 61 70 33 32 4c 69 73 74 46 69 72 73 74 28 48  eap32ListFirst(H
0db0: 41 4e 44 4c 45 2c 4c 50 48 45 41 50 4c 49 53 54  ANDLE,LPHEAPLIST
0dc0: 33 32 29 3b 0a 09 42 4f 4f 4c 20 48 65 61 70 33  32);..BOOL Heap3
0dd0: 32 4c 69 73 74 4e 65 78 74 28 48 41 4e 44 4c 45  2ListNext(HANDLE
0de0: 2c 4c 50 48 45 41 50 4c 49 53 54 33 32 29 3b 0a  ,LPHEAPLIST32);.
0df0: 09 42 4f 4f 4c 20 48 65 61 70 33 32 4e 65 78 74  .BOOL Heap32Next
0e00: 28 4c 50 48 45 41 50 45 4e 54 52 59 33 32 29 3b  (LPHEAPENTRY32);
0e10: 0a 09 42 4f 4f 4c 20 54 68 72 65 61 64 33 32 46  ..BOOL Thread32F
0e20: 69 72 73 74 28 48 41 4e 44 4c 45 2c 4c 50 54 48  irst(HANDLE,LPTH
0e30: 52 45 41 44 45 4e 54 52 59 33 32 29 3b 0a 09 42  READENTRY32);..B
0e40: 4f 4f 4c 20 54 68 72 65 61 64 33 32 4e 65 78 74  OOL Thread32Next
0e50: 28 48 41 4e 44 4c 45 2c 4c 50 54 48 52 45 41 44  (HANDLE,LPTHREAD
0e60: 45 4e 54 52 59 33 32 29 3b 0a 09 42 4f 4f 4c 20  ENTRY32);..BOOL 
0e70: 54 6f 6f 6c 68 65 6c 70 33 32 52 65 61 64 50 72  Toolhelp32ReadPr
0e80: 6f 63 65 73 73 4d 65 6d 6f 72 79 28 44 57 4f 52  ocessMemory(DWOR
0e90: 44 2c 4c 50 43 56 4f 49 44 2c 4c 50 56 4f 49 44  D,LPCVOID,LPVOID
0ea0: 2c 44 57 4f 52 44 2c 4c 50 44 57 4f 52 44 29 3b  ,DWORD,LPDWORD);
0eb0: 0a 09 48 41 4e 44 4c 45 20 43 72 65 61 74 65 54  ..HANDLE CreateT
0ec0: 6f 6f 6c 68 65 6c 70 33 32 53 6e 61 70 73 68 6f  oolhelp32Snapsho
0ed0: 74 28 44 57 4f 52 44 2c 44 57 4f 52 44 29 3b 0a  t(DWORD,DWORD);.
0ee0: 09 42 4f 4f 4c 20 4d 6f 64 75 6c 65 33 32 46 69  .BOOL Module32Fi
0ef0: 72 73 74 57 28 48 41 4e 44 4c 45 2c 4c 50 4d 4f  rstW(HANDLE,LPMO
0f00: 44 55 4c 45 45 4e 54 52 59 33 32 57 29 3b 0a 09  DULEENTRY32W);..
0f10: 42 4f 4f 4c 20 4d 6f 64 75 6c 65 33 32 4e 65 78  BOOL Module32Nex
0f20: 74 57 28 48 41 4e 44 4c 45 2c 4c 50 4d 4f 44 55  tW(HANDLE,LPMODU
0f30: 4c 45 45 4e 54 52 59 33 32 57 29 3b 0a 09 42 4f  LEENTRY32W);..BO
0f40: 4f 4c 20 50 72 6f 63 65 73 73 33 32 46 69 72 73  OL Process32Firs
0f50: 74 57 28 48 41 4e 44 4c 45 2c 4c 50 50 52 4f 43  tW(HANDLE,LPPROC
0f60: 45 53 53 45 4e 54 52 59 33 32 57 29 3b 0a 09 42  ESSENTRY32W);..B
0f70: 4f 4f 4c 20 50 72 6f 63 65 73 73 33 32 4e 65 78  OOL Process32Nex
0f80: 74 57 28 48 41 4e 44 4c 45 2c 4c 50 50 52 4f 43  tW(HANDLE,LPPROC
0f90: 45 53 53 45 4e 54 52 59 33 32 57 29 3b 0a 7d 0a  ESSENTRY32W);.}.
0fa0: 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65  .version(Unicode
0fb0: 29 20 7b 0a 09 61 6c 69 61 73 20 4d 6f 64 75 6c  ) {..alias Modul
0fc0: 65 33 32 46 69 72 73 74 57 20 4d 6f 64 75 6c 65  e32FirstW Module
0fd0: 33 32 46 69 72 73 74 3b 0a 09 61 6c 69 61 73 20  32First;..alias 
0fe0: 4d 6f 64 75 6c 65 33 32 4e 65 78 74 57 20 4d 6f  Module32NextW Mo
0ff0: 64 75 6c 65 33 32 4e 65 78 74 3b 0a 09 61 6c 69  dule32Next;..ali
1000: 61 73 20 50 72 6f 63 65 73 73 33 32 46 69 72 73  as Process32Firs
1010: 74 57 20 50 72 6f 63 65 73 73 33 32 46 69 72 73  tW Process32Firs
1020: 74 3b 0a 09 61 6c 69 61 73 20 50 72 6f 63 65 73  t;..alias Proces
1030: 73 33 32 4e 65 78 74 57 20 50 72 6f 63 65 73 73  s32NextW Process
1040: 33 32 4e 65 78 74 3b 0a 7d 20 65 6c 73 65 20 7b  32Next;.} else {
1050: 0a 09 65 78 74 65 72 6e 28 57 69 6e 64 6f 77 73  ..extern(Windows
1060: 29 20 7b 0a 09 09 42 4f 4f 4c 20 4d 6f 64 75 6c  ) {...BOOL Modul
1070: 65 33 32 46 69 72 73 74 28 48 41 4e 44 4c 45 2c  e32First(HANDLE,
1080: 4c 50 4d 4f 44 55 4c 45 45 4e 54 52 59 33 32 29  LPMODULEENTRY32)
1090: 3b 0a 09 09 42 4f 4f 4c 20 4d 6f 64 75 6c 65 33  ;...BOOL Module3
10a0: 32 4e 65 78 74 28 48 41 4e 44 4c 45 2c 4c 50 4d  2Next(HANDLE,LPM
10b0: 4f 44 55 4c 45 45 4e 54 52 59 33 32 29 3b 0a 09  ODULEENTRY32);..
10c0: 09 42 4f 4f 4c 20 50 72 6f 63 65 73 73 33 32 46  .BOOL Process32F
10d0: 69 72 73 74 28 48 41 4e 44 4c 45 2c 4c 50 50 52  irst(HANDLE,LPPR
10e0: 4f 43 45 53 53 45 4e 54 52 59 33 32 29 3b 0a 09  OCESSENTRY32);..
10f0: 09 42 4f 4f 4c 20 50 72 6f 63 65 73 73 33 32 4e  .BOOL Process32N
1100: 65 78 74 28 48 41 4e 44 4c 45 2c 4c 50 50 52 4f  ext(HANDLE,LPPRO
1110: 43 45 53 53 45 4e 54 52 59 33 32 29 3b 0a 09 7d  CESSENTRY32);..}
1120: 0a 7d 0a                                         .}.