Hex Artifact Content

Not logged in

Artifact 0dd82e579fd2aa23aa251609687675e016db6c7e:


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 20 70 73 61 70              psap
0070: 69 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20  i.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 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 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 50 6c 61 63 65 64 20 69 6e 74 6f       Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20   public domain  
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 5c 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 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02a0: 2f 0d 0a 2f 2a 20 43 6f 6d 6d 65 6e 74 20 66 72  /../* Comment fr
02b0: 6f 6d 20 4d 69 6e 47 57 0d 0a 20 2a 20 20 20 50  om MinGW.. *   P
02c0: 72 6f 63 65 73 73 20 73 74 61 74 75 73 20 41 50  rocess status AP
02d0: 49 20 28 50 53 41 50 49 29 0d 0a 20 2a 20 20 20  I (PSAPI).. *   
02e0: 68 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64  http://windowssd
02f0: 6b 2e 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74  k.msdn.microsoft
0300: 2e 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36  .com/library/ms6
0310: 38 34 38 38 34 2e 61 73 70 78 0d 0a 20 2a 2f 0d  84884.aspx.. */.
0320: 0a 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e  ...module win32.
0330: 70 73 61 70 69 3b 0d 0a 0d 0a 70 72 69 76 61 74  psapi;....privat
0340: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77  e import win32.w
0350: 33 32 61 70 69 3b 0d 0a 70 72 69 76 61 74 65 20  32api;..private 
0360: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e  import win32.win
0370: 62 61 73 65 3b 0d 0a 70 72 69 76 61 74 65 20 69  base;..private i
0380: 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 64  mport win32.wind
0390: 65 66 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 4f  ef;....struct MO
03a0: 44 55 4c 45 49 4e 46 4f 20 7b 0d 0a 09 4c 50 56  DULEINFO {...LPV
03b0: 4f 49 44 20 6c 70 42 61 73 65 4f 66 44 6c 6c 3b  OID lpBaseOfDll;
03c0: 0d 0a 09 44 57 4f 52 44 20 53 69 7a 65 4f 66 49  ...DWORD SizeOfI
03d0: 6d 61 67 65 3b 0d 0a 09 4c 50 56 4f 49 44 20 45  mage;...LPVOID E
03e0: 6e 74 72 79 50 6f 69 6e 74 3b 0d 0a 7d 0d 0a 61  ntryPoint;..}..a
03f0: 6c 69 61 73 20 4d 4f 44 55 4c 45 49 4e 46 4f 2a  lias MODULEINFO*
0400: 20 4c 50 4d 4f 44 55 4c 45 49 4e 46 4f 3b 0d 0a   LPMODULEINFO;..
0410: 0d 0a 73 74 72 75 63 74 20 50 53 41 50 49 5f 57  ..struct PSAPI_W
0420: 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41 54  S_WATCH_INFORMAT
0430: 49 4f 4e 20 7b 0d 0a 09 4c 50 56 4f 49 44 20 46  ION {...LPVOID F
0440: 61 75 6c 74 69 6e 67 50 63 3b 0d 0a 09 4c 50 56  aultingPc;...LPV
0450: 4f 49 44 20 46 61 75 6c 74 69 6e 67 56 61 3b 0d  OID FaultingVa;.
0460: 0a 7d 0d 0a 61 6c 69 61 73 20 50 53 41 50 49 5f  .}..alias PSAPI_
0470: 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41  WS_WATCH_INFORMA
0480: 54 49 4f 4e 2a 20 50 50 53 41 50 49 5f 57 53 5f  TION* PPSAPI_WS_
0490: 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41 54 49 4f  WATCH_INFORMATIO
04a0: 4e 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 50 53 41  N;....struct PSA
04b0: 50 49 5f 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f  PI_WS_WATCH_INFO
04c0: 52 4d 41 54 49 4f 4e 5f 45 58 20 7b 0d 0a 09 50  RMATION_EX {...P
04d0: 53 41 50 49 5f 57 53 5f 57 41 54 43 48 5f 49 4e  SAPI_WS_WATCH_IN
04e0: 46 4f 52 4d 41 54 49 4f 4e 20 42 61 73 69 63 49  FORMATION BasicI
04f0: 6e 66 6f 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52  nfo;...ULONG_PTR
0500: 20 46 61 75 6c 74 69 6e 67 54 68 72 65 61 64 49   FaultingThreadI
0510: 64 3b 0d 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 46  d;...ULONG_PTR F
0520: 6c 61 67 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  lags;..}..alias 
0530: 50 53 41 50 49 5f 57 53 5f 57 41 54 43 48 5f 49  PSAPI_WS_WATCH_I
0540: 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 2a 20 50  NFORMATION_EX* P
0550: 50 53 41 50 49 5f 57 53 5f 57 41 54 43 48 5f 49  PSAPI_WS_WATCH_I
0560: 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 3b 0d 0a  NFORMATION_EX;..
0570: 0d 0a 73 74 72 75 63 74 20 50 52 4f 43 45 53 53  ..struct PROCESS
0580: 5f 4d 45 4d 4f 52 59 5f 43 4f 55 4e 54 45 52 53  _MEMORY_COUNTERS
0590: 20 7b 0d 0a 09 44 57 4f 52 44 20 63 62 3b 0d 0a   {...DWORD cb;..
05a0: 09 44 57 4f 52 44 20 50 61 67 65 46 61 75 6c 74  .DWORD PageFault
05b0: 43 6f 75 6e 74 3b 0d 0a 09 44 57 4f 52 44 20 50  Count;...DWORD P
05c0: 65 61 6b 57 6f 72 6b 69 6e 67 53 65 74 53 69 7a  eakWorkingSetSiz
05d0: 65 3b 0d 0a 09 44 57 4f 52 44 20 57 6f 72 6b 69  e;...DWORD Worki
05e0: 6e 67 53 65 74 53 69 7a 65 3b 0d 0a 09 44 57 4f  ngSetSize;...DWO
05f0: 52 44 20 51 75 6f 74 61 50 65 61 6b 50 61 67 65  RD QuotaPeakPage
0600: 64 50 6f 6f 6c 55 73 61 67 65 3b 0d 0a 09 44 57  dPoolUsage;...DW
0610: 4f 52 44 20 51 75 6f 74 61 50 61 67 65 64 50 6f  ORD QuotaPagedPo
0620: 6f 6c 55 73 61 67 65 3b 0d 0a 09 44 57 4f 52 44  olUsage;...DWORD
0630: 20 51 75 6f 74 61 50 65 61 6b 4e 6f 6e 50 61 67   QuotaPeakNonPag
0640: 65 64 50 6f 6f 6c 55 73 61 67 65 3b 0d 0a 09 44  edPoolUsage;...D
0650: 57 4f 52 44 20 51 75 6f 74 61 4e 6f 6e 50 61 67  WORD QuotaNonPag
0660: 65 64 50 6f 6f 6c 55 73 61 67 65 3b 0d 0a 09 44  edPoolUsage;...D
0670: 57 4f 52 44 20 50 61 67 65 66 69 6c 65 55 73 61  WORD PagefileUsa
0680: 67 65 3b 0d 0a 09 44 57 4f 52 44 20 50 65 61 6b  ge;...DWORD Peak
0690: 50 61 67 65 66 69 6c 65 55 73 61 67 65 3b 0d 0a  PagefileUsage;..
06a0: 7d 0d 0a 61 6c 69 61 73 20 50 52 4f 43 45 53 53  }..alias PROCESS
06b0: 5f 4d 45 4d 4f 52 59 5f 43 4f 55 4e 54 45 52 53  _MEMORY_COUNTERS
06c0: 2a 20 50 50 52 4f 43 45 53 53 5f 4d 45 4d 4f 52  * PPROCESS_MEMOR
06d0: 59 5f 43 4f 55 4e 54 45 52 53 3b 0d 0a 0d 0a 73  Y_COUNTERS;....s
06e0: 74 72 75 63 74 20 50 45 52 46 4f 52 4d 41 4e 43  truct PERFORMANC
06f0: 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 20 7b 0d  E_INFORMATION {.
0700: 0a 09 44 57 4f 52 44 20 63 62 3b 0d 0a 09 53 49  ..DWORD cb;...SI
0710: 5a 45 5f 54 20 43 6f 6d 6d 69 74 54 6f 74 61 6c  ZE_T CommitTotal
0720: 3b 0d 0a 09 53 49 5a 45 5f 54 20 43 6f 6d 6d 69  ;...SIZE_T Commi
0730: 74 4c 69 6d 69 74 3b 0d 0a 09 53 49 5a 45 5f 54  tLimit;...SIZE_T
0740: 20 43 6f 6d 6d 69 74 50 65 61 6b 3b 0d 0a 09 53   CommitPeak;...S
0750: 49 5a 45 5f 54 20 50 68 79 73 69 63 61 6c 54 6f  IZE_T PhysicalTo
0760: 74 61 6c 3b 0d 0a 09 53 49 5a 45 5f 54 20 50 68  tal;...SIZE_T Ph
0770: 79 73 69 63 61 6c 41 76 61 69 6c 61 62 6c 65 3b  ysicalAvailable;
0780: 0d 0a 09 53 49 5a 45 5f 54 20 53 79 73 74 65 6d  ...SIZE_T System
0790: 43 61 63 68 65 3b 0d 0a 09 53 49 5a 45 5f 54 20  Cache;...SIZE_T 
07a0: 4b 65 72 6e 65 6c 54 6f 74 61 6c 3b 0d 0a 09 53  KernelTotal;...S
07b0: 49 5a 45 5f 54 20 4b 65 72 6e 65 6c 50 61 67 65  IZE_T KernelPage
07c0: 64 3b 0d 0a 09 53 49 5a 45 5f 54 20 4b 65 72 6e  d;...SIZE_T Kern
07d0: 65 6c 4e 6f 6e 70 61 67 65 64 3b 0d 0a 09 53 49  elNonpaged;...SI
07e0: 5a 45 5f 54 20 50 61 67 65 53 69 7a 65 3b 0d 0a  ZE_T PageSize;..
07f0: 09 44 57 4f 52 44 20 48 61 6e 64 6c 65 43 6f 75  .DWORD HandleCou
0800: 6e 74 3b 0d 0a 09 44 57 4f 52 44 20 50 72 6f 63  nt;...DWORD Proc
0810: 65 73 73 43 6f 75 6e 74 3b 0d 0a 09 44 57 4f 52  essCount;...DWOR
0820: 44 20 54 68 72 65 61 64 43 6f 75 6e 74 3b 0d 0a  D ThreadCount;..
0830: 7d 0d 0a 61 6c 69 61 73 20 50 45 52 46 4f 52 4d  }..alias PERFORM
0840: 41 4e 43 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  ANCE_INFORMATION
0850: 2a 20 50 50 45 52 46 4f 52 4d 41 4e 43 45 5f 49  * PPERFORMANCE_I
0860: 4e 46 4f 52 4d 41 54 49 4f 4e 3b 0d 0a 0d 0a 73  NFORMATION;....s
0870: 74 72 75 63 74 20 45 4e 55 4d 5f 50 41 47 45 5f  truct ENUM_PAGE_
0880: 46 49 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  FILE_INFORMATION
0890: 20 7b 0d 0a 09 44 57 4f 52 44 20 63 62 3b 0d 0a   {...DWORD cb;..
08a0: 09 44 57 4f 52 44 20 52 65 73 65 72 76 65 64 3b  .DWORD Reserved;
08b0: 0d 0a 09 53 49 5a 45 5f 54 20 54 6f 74 61 6c 53  ...SIZE_T TotalS
08c0: 69 7a 65 3b 0d 0a 09 53 49 5a 45 5f 54 20 54 6f  ize;...SIZE_T To
08d0: 74 61 6c 49 6e 55 73 65 3b 0d 0a 09 53 49 5a 45  talInUse;...SIZE
08e0: 5f 54 20 50 65 61 6b 55 73 61 67 65 3b 0d 0a 7d  _T PeakUsage;..}
08f0: 0d 0a 61 6c 69 61 73 20 45 4e 55 4d 5f 50 41 47  ..alias ENUM_PAG
0900: 45 5f 46 49 4c 45 5f 49 4e 46 4f 52 4d 41 54 49  E_FILE_INFORMATI
0910: 4f 4e 2a 20 50 45 4e 55 4d 5f 50 41 47 45 5f 46  ON* PENUM_PAGE_F
0920: 49 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 3b  ILE_INFORMATION;
0930: 0d 0a 0d 0a 2f 2a 20 61 70 70 6c 69 63 61 74 69  ..../* applicati
0940: 6f 6e 2d 64 65 66 69 6e 65 64 20 63 61 6c 6c 62  on-defined callb
0950: 61 63 6b 20 66 75 6e 63 74 69 6f 6e 20 75 73 65  ack function use
0960: 64 20 77 69 74 68 20 74 68 65 20 45 6e 75 6d 50  d with the EnumP
0970: 61 67 65 46 69 6c 65 73 28 29 0d 0a 20 2a 20 68  ageFiles().. * h
0980: 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b  ttp://windowssdk
0990: 2e 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e  .msdn.microsoft.
09a0: 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38  com/library/ms68
09b0: 32 36 32 37 2e 61 73 70 78 20 2a 2f 0d 0a 76 65  2627.aspx */..ve
09c0: 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20  rsion (Unicode) 
09d0: 7b 0d 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66  {...alias BOOL f
09e0: 75 6e 63 74 69 6f 6e 28 4c 50 56 4f 49 44 2c 20  unction(LPVOID, 
09f0: 50 45 4e 55 4d 5f 50 41 47 45 5f 46 49 4c 45 5f  PENUM_PAGE_FILE_
0a00: 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20 4c 50 43  INFORMATION, LPC
0a10: 57 53 54 52 29 0d 0a 09 20 20 50 45 4e 55 4d 5f  WSTR)...  PENUM_
0a20: 50 41 47 45 5f 46 49 4c 45 5f 43 41 4c 4c 42 41  PAGE_FILE_CALLBA
0a30: 43 4b 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09  CK;..} else {...
0a40: 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74  alias BOOL funct
0a50: 69 6f 6e 28 4c 50 56 4f 49 44 2c 20 50 45 4e 55  ion(LPVOID, PENU
0a60: 4d 5f 50 41 47 45 5f 46 49 4c 45 5f 49 4e 46 4f  M_PAGE_FILE_INFO
0a70: 52 4d 41 54 49 4f 4e 2c 20 4c 50 43 53 54 52 29  RMATION, LPCSTR)
0a80: 0d 0a 09 20 20 50 45 4e 55 4d 5f 50 41 47 45 5f  ...  PENUM_PAGE_
0a90: 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 3b 0d 0a  FILE_CALLBACK;..
0aa0: 7d 0d 0a 0d 0a 2f 2f 20 47 72 6f 75 70 65 64 20  }....// Grouped 
0ab0: 62 79 20 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20  by application, 
0ac0: 6e 6f 74 20 69 6e 20 61 6c 70 68 61 62 65 74 69  not in alphabeti
0ad0: 63 61 6c 20 6f 72 64 65 72 2e 0d 0a 65 78 74 65  cal order...exte
0ae0: 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a  rn (Windows) {..
0af0: 09 2f 2a 20 50 72 6f 63 65 73 73 20 49 6e 66 6f  ./* Process Info
0b00: 72 6d 61 74 69 6f 6e 0d 0a 09 20 2a 20 68 74 74  rmation... * htt
0b10: 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b 2e 6d  p://windowssdk.m
0b20: 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f  sdn.microsoft.co
0b30: 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38 34 38  m/library/ms6848
0b40: 37 30 2e 61 73 70 78 20 2a 2f 0d 0a 09 42 4f 4f  70.aspx */...BOO
0b50: 4c 20 45 6e 75 6d 50 72 6f 63 65 73 73 65 73 28  L EnumProcesses(
0b60: 44 57 4f 52 44 2a 2c 20 44 57 4f 52 44 2c 20 44  DWORD*, DWORD, D
0b70: 57 4f 52 44 2a 29 3b 20 2f 2a 20 4e 54 2f 32 30  WORD*); /* NT/20
0b80: 30 30 2f 58 50 2f 53 65 72 76 65 72 32 30 30 33  00/XP/Server2003
0b90: 2f 56 69 73 74 61 2f 4c 6f 6e 67 68 6f 72 6e 20  /Vista/Longhorn 
0ba0: 2a 2f 0d 0a 09 44 57 4f 52 44 20 47 65 74 50 72  */...DWORD GetPr
0bb0: 6f 63 65 73 73 49 6d 61 67 65 46 69 6c 65 4e 61  ocessImageFileNa
0bc0: 6d 65 41 28 48 41 4e 44 4c 45 2c 20 4c 50 53 54  meA(HANDLE, LPST
0bd0: 52 2c 20 44 57 4f 52 44 29 3b 20 2f 2a 20 58 50  R, DWORD); /* XP
0be0: 2f 53 65 72 76 65 72 32 30 30 33 2f 56 69 73 74  /Server2003/Vist
0bf0: 61 2f 4c 6f 6e 67 68 6f 72 6e 20 2a 2f 0d 0a 09  a/Longhorn */...
0c00: 44 57 4f 52 44 20 47 65 74 50 72 6f 63 65 73 73  DWORD GetProcess
0c10: 49 6d 61 67 65 46 69 6c 65 4e 61 6d 65 57 28 48  ImageFileNameW(H
0c20: 41 4e 44 4c 45 2c 20 4c 50 57 53 54 52 2c 20 44  ANDLE, LPWSTR, D
0c30: 57 4f 52 44 29 3b 20 2f 2a 20 58 50 2f 53 65 72  WORD); /* XP/Ser
0c40: 76 65 72 32 30 30 33 2f 56 69 73 74 61 2f 4c 6f  ver2003/Vista/Lo
0c50: 6e 67 68 6f 72 6e 20 2a 2f 0d 0a 0d 0a 09 2f 2a  nghorn */...../*
0c60: 20 4d 6f 64 75 6c 65 20 49 6e 66 6f 72 6d 61 74   Module Informat
0c70: 69 6f 6e 0d 0a 09 20 2a 20 68 74 74 70 3a 2f 2f  ion... * http://
0c80: 77 69 6e 64 6f 77 73 73 64 6b 2e 6d 73 64 6e 2e  windowssdk.msdn.
0c90: 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 6c 69  microsoft.com/li
0ca0: 62 72 61 72 79 2f 6d 73 36 38 34 32 33 32 2e 61  brary/ms684232.a
0cb0: 73 70 78 20 2a 2f 0d 0a 09 42 4f 4f 4c 20 45 6e  spx */...BOOL En
0cc0: 75 6d 50 72 6f 63 65 73 73 4d 6f 64 75 6c 65 73  umProcessModules
0cd0: 28 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55 4c 45  (HANDLE, HMODULE
0ce0: 2a 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52  *, DWORD, LPDWOR
0cf0: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 45 6e 75 6d 50  D);...BOOL EnumP
0d00: 72 6f 63 65 73 73 4d 6f 64 75 6c 65 73 45 78 28  rocessModulesEx(
0d10: 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55 4c 45 2a  HANDLE, HMODULE*
0d20: 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44  , DWORD, LPDWORD
0d30: 2c 20 44 57 4f 52 44 29 3b 20 2f 2a 20 56 69 73  , DWORD); /* Vis
0d40: 74 61 2f 4c 6f 6e 67 68 6f 72 6e 20 2a 2f 0d 0a  ta/Longhorn */..
0d50: 09 44 57 4f 52 44 20 47 65 74 4d 6f 64 75 6c 65  .DWORD GetModule
0d60: 42 61 73 65 4e 61 6d 65 41 28 48 41 4e 44 4c 45  BaseNameA(HANDLE
0d70: 2c 20 48 4d 4f 44 55 4c 45 2c 20 4c 50 53 54 52  , HMODULE, LPSTR
0d80: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52  , DWORD);...DWOR
0d90: 44 20 47 65 74 4d 6f 64 75 6c 65 42 61 73 65 4e  D GetModuleBaseN
0da0: 61 6d 65 57 28 48 41 4e 44 4c 45 2c 20 48 4d 4f  ameW(HANDLE, HMO
0db0: 44 55 4c 45 2c 20 4c 50 57 53 54 52 2c 20 44 57  DULE, LPWSTR, DW
0dc0: 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65  ORD);...DWORD Ge
0dd0: 74 4d 6f 64 75 6c 65 46 69 6c 65 4e 61 6d 65 45  tModuleFileNameE
0de0: 78 41 28 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55  xA(HANDLE, HMODU
0df0: 4c 45 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44  LE, LPSTR, DWORD
0e00: 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74 4d 6f  );...DWORD GetMo
0e10: 64 75 6c 65 46 69 6c 65 4e 61 6d 65 45 78 57 28  duleFileNameExW(
0e20: 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55 4c 45 2c  HANDLE, HMODULE,
0e30: 20 4c 50 57 53 54 52 2c 20 44 57 4f 52 44 29 3b   LPWSTR, DWORD);
0e40: 0d 0a 09 42 4f 4f 4c 20 47 65 74 4d 6f 64 75 6c  ...BOOL GetModul
0e50: 65 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 48 41 4e  eInformation(HAN
0e60: 44 4c 45 2c 20 48 4d 4f 44 55 4c 45 2c 20 4c 50  DLE, HMODULE, LP
0e70: 4d 4f 44 55 4c 45 49 4e 46 4f 2c 20 44 57 4f 52  MODULEINFO, DWOR
0e80: 44 29 3b 0d 0a 0d 0a 09 2f 2a 20 44 65 76 69 63  D);...../* Devic
0e90: 65 20 44 72 69 76 65 72 20 49 6e 66 6f 72 6d 61  e Driver Informa
0ea0: 74 69 6f 6e 0d 0a 09 20 2a 20 68 74 74 70 3a 2f  tion... * http:/
0eb0: 2f 77 69 6e 64 6f 77 73 73 64 6b 2e 6d 73 64 6e  /windowssdk.msdn
0ec0: 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 6c  .microsoft.com/l
0ed0: 69 62 72 61 72 79 2f 6d 73 36 38 32 35 37 38 2e  ibrary/ms682578.
0ee0: 61 73 70 78 20 2a 2f 0d 0a 09 42 4f 4f 4c 20 45  aspx */...BOOL E
0ef0: 6e 75 6d 44 65 76 69 63 65 44 72 69 76 65 72 73  numDeviceDrivers
0f00: 28 4c 50 56 4f 49 44 2a 2c 20 44 57 4f 52 44 2c  (LPVOID*, DWORD,
0f10: 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f   LPDWORD);...DWO
0f20: 52 44 20 47 65 74 44 65 76 69 63 65 44 72 69 76  RD GetDeviceDriv
0f30: 65 72 42 61 73 65 4e 61 6d 65 41 28 4c 50 56 4f  erBaseNameA(LPVO
0f40: 49 44 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44  ID, LPSTR, DWORD
0f50: 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74 44 65  );...DWORD GetDe
0f60: 76 69 63 65 44 72 69 76 65 72 42 61 73 65 4e 61  viceDriverBaseNa
0f70: 6d 65 57 28 4c 50 56 4f 49 44 2c 20 4c 50 57 53  meW(LPVOID, LPWS
0f80: 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 44 57  TR, DWORD);...DW
0f90: 4f 52 44 20 47 65 74 44 65 76 69 63 65 44 72 69  ORD GetDeviceDri
0fa0: 76 65 72 46 69 6c 65 4e 61 6d 65 41 28 4c 50 56  verFileNameA(LPV
0fb0: 4f 49 44 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52  OID, LPSTR, DWOR
0fc0: 44 29 3b 0d 0a 09 44 57 4f 52 44 20 47 65 74 44  D);...DWORD GetD
0fd0: 65 76 69 63 65 44 72 69 76 65 72 46 69 6c 65 4e  eviceDriverFileN
0fe0: 61 6d 65 57 28 4c 50 56 4f 49 44 2c 20 4c 50 57  ameW(LPVOID, LPW
0ff0: 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 0d 0a  STR, DWORD);....
1000: 09 2f 2a 20 50 72 6f 63 65 73 73 20 4d 65 6d 6f  ./* Process Memo
1010: 72 79 20 55 73 61 67 65 20 49 6e 66 6f 72 6d 61  ry Usage Informa
1020: 74 69 6f 6e 0d 0a 09 20 2a 20 68 74 74 70 3a 2f  tion... * http:/
1030: 2f 77 69 6e 64 6f 77 73 73 64 6b 2e 6d 73 64 6e  /windowssdk.msdn
1040: 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 6c  .microsoft.com/l
1050: 69 62 72 61 72 79 2f 6d 73 36 38 34 38 37 39 2e  ibrary/ms684879.
1060: 61 73 70 78 20 2a 2f 0d 0a 09 42 4f 4f 4c 20 47  aspx */...BOOL G
1070: 65 74 50 72 6f 63 65 73 73 4d 65 6d 6f 72 79 49  etProcessMemoryI
1080: 6e 66 6f 28 48 41 4e 44 4c 45 2c 20 50 50 52 4f  nfo(HANDLE, PPRO
1090: 43 45 53 53 5f 4d 45 4d 4f 52 59 5f 43 4f 55 4e  CESS_MEMORY_COUN
10a0: 54 45 52 53 2c 20 44 57 4f 52 44 29 3b 0d 0a 0d  TERS, DWORD);...
10b0: 0a 09 2f 2a 20 57 6f 72 6b 69 6e 67 20 53 65 74  ../* Working Set
10c0: 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0d 0a 09 20   Information... 
10d0: 2a 20 68 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73  * http://windows
10e0: 73 64 6b 2e 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f  sdk.msdn.microso
10f0: 66 74 2e 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d  ft.com/library/m
1100: 73 36 38 37 33 39 38 2e 61 73 70 78 20 2a 2f 0d  s687398.aspx */.
1110: 0a 09 42 4f 4f 4c 20 45 6d 70 74 79 57 6f 72 6b  ..BOOL EmptyWork
1120: 69 6e 67 53 65 74 28 48 41 4e 44 4c 45 29 3b 0d  ingSet(HANDLE);.
1130: 0a 09 42 4f 4f 4c 20 47 65 74 57 73 43 68 61 6e  ..BOOL GetWsChan
1140: 67 65 73 28 48 41 4e 44 4c 45 2c 20 50 50 53 41  ges(HANDLE, PPSA
1150: 50 49 5f 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f  PI_WS_WATCH_INFO
1160: 52 4d 41 54 49 4f 4e 2c 20 44 57 4f 52 44 29 3b  RMATION, DWORD);
1170: 0d 0a 09 42 4f 4f 4c 20 47 65 74 57 73 43 68 61  ...BOOL GetWsCha
1180: 6e 67 65 73 45 78 28 48 41 4e 44 4c 45 2c 20 50  ngesEx(HANDLE, P
1190: 50 53 41 50 49 5f 57 53 5f 57 41 54 43 48 5f 49  PSAPI_WS_WATCH_I
11a0: 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58 2c 20 44  NFORMATION_EX, D
11b0: 57 4f 52 44 29 3b 20 2f 2a 20 56 69 73 74 61 2f  WORD); /* Vista/
11c0: 4c 6f 6e 67 68 6f 72 6e 20 2a 2f 0d 0a 09 42 4f  Longhorn */...BO
11d0: 4f 4c 20 49 6e 69 74 69 61 6c 69 7a 65 50 72 6f  OL InitializePro
11e0: 63 65 73 73 46 6f 72 57 73 57 61 74 63 68 28 48  cessForWsWatch(H
11f0: 41 4e 44 4c 45 29 3b 0d 0a 09 42 4f 4f 4c 20 51  ANDLE);...BOOL Q
1200: 75 65 72 79 57 6f 72 6b 69 6e 67 53 65 74 28 48  ueryWorkingSet(H
1210: 41 4e 44 4c 45 2c 20 50 56 4f 49 44 2c 20 44 57  ANDLE, PVOID, DW
1220: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 51 75 65  ORD);...BOOL Que
1230: 72 79 57 6f 72 6b 69 6e 67 53 65 74 45 78 28 48  ryWorkingSetEx(H
1240: 41 4e 44 4c 45 2c 20 50 56 4f 49 44 2c 20 44 57  ANDLE, PVOID, DW
1250: 4f 52 44 29 3b 0d 0a 0d 0a 09 2f 2a 20 4d 65 6d  ORD);...../* Mem
1260: 6f 72 79 2d 4d 61 70 70 65 64 20 46 69 6c 65 20  ory-Mapped File 
1270: 49 6e 66 6f 72 6d 61 74 69 6f 6e 0d 0a 09 20 2a  Information... *
1280: 20 68 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 73   http://windowss
1290: 64 6b 2e 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f 66  dk.msdn.microsof
12a0: 74 2e 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d 73  t.com/library/ms
12b0: 36 38 34 32 31 32 2e 61 73 70 78 20 2a 2f 0d 0a  684212.aspx */..
12c0: 09 44 57 4f 52 44 20 47 65 74 4d 61 70 70 65 64  .DWORD GetMapped
12d0: 46 69 6c 65 4e 61 6d 65 57 28 48 41 4e 44 4c 45  FileNameW(HANDLE
12e0: 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 57 53 54 52  , LPVOID, LPWSTR
12f0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52  , DWORD);...DWOR
1300: 44 20 47 65 74 4d 61 70 70 65 64 46 69 6c 65 4e  D GetMappedFileN
1310: 61 6d 65 41 28 48 41 4e 44 4c 45 2c 20 4c 50 56  ameA(HANDLE, LPV
1320: 4f 49 44 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52  OID, LPSTR, DWOR
1330: 44 29 3b 0d 0a 0d 0a 09 2f 2a 20 52 65 73 6f 75  D);...../* Resou
1340: 72 63 65 73 20 49 6e 66 6f 72 6d 61 74 69 6f 6e  rces Information
1350: 20 2a 2f 0d 0a 09 42 4f 4f 4c 20 47 65 74 50 65   */...BOOL GetPe
1360: 72 66 6f 72 6d 61 6e 63 65 49 6e 66 6f 28 50 50  rformanceInfo(PP
1370: 45 52 46 4f 52 4d 41 4e 43 45 5f 49 4e 46 4f 52  ERFORMANCE_INFOR
1380: 4d 41 54 49 4f 4e 2c 20 44 57 4f 52 44 29 3b 20  MATION, DWORD); 
1390: 2f 2a 20 58 50 2f 53 65 72 76 65 72 32 30 30 33  /* XP/Server2003
13a0: 2f 56 69 73 74 61 2f 4c 6f 6e 67 68 6f 72 6e 20  /Vista/Longhorn 
13b0: 2a 2f 0d 0a 09 42 4f 4f 4c 20 45 6e 75 6d 50 61  */...BOOL EnumPa
13c0: 67 65 46 69 6c 65 73 57 28 50 45 4e 55 4d 5f 50  geFilesW(PENUM_P
13d0: 41 47 45 5f 46 49 4c 45 5f 43 41 4c 4c 42 41 43  AGE_FILE_CALLBAC
13e0: 4b 2c 20 4c 50 56 4f 49 44 29 3b 20 2f 2a 20 32  K, LPVOID); /* 2
13f0: 30 30 30 2f 58 50 2f 53 65 72 76 65 72 32 30 30  000/XP/Server200
1400: 33 2f 56 69 73 74 61 2f 4c 6f 6e 67 68 6f 72 6e  3/Vista/Longhorn
1410: 20 2a 2f 0d 0a 09 42 4f 4f 4c 20 45 6e 75 6d 50   */...BOOL EnumP
1420: 61 67 65 46 69 6c 65 73 41 28 50 45 4e 55 4d 5f  ageFilesA(PENUM_
1430: 50 41 47 45 5f 46 49 4c 45 5f 43 41 4c 4c 42 41  PAGE_FILE_CALLBA
1440: 43 4b 2c 20 4c 50 56 4f 49 44 29 3b 20 2f 2a 20  CK, LPVOID); /* 
1450: 32 30 30 30 2f 58 50 2f 53 65 72 76 65 72 32 30  2000/XP/Server20
1460: 30 33 2f 56 69 73 74 61 2f 4c 6f 6e 67 68 6f 72  03/Vista/Longhor
1470: 6e 20 2a 2f 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69  n */..}....versi
1480: 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a  on (Unicode) {..
1490: 09 61 6c 69 61 73 20 47 65 74 4d 6f 64 75 6c 65  .alias GetModule
14a0: 42 61 73 65 4e 61 6d 65 57 20 47 65 74 4d 6f 64  BaseNameW GetMod
14b0: 75 6c 65 42 61 73 65 4e 61 6d 65 3b 0d 0a 09 61  uleBaseName;...a
14c0: 6c 69 61 73 20 47 65 74 4d 6f 64 75 6c 65 46 69  lias GetModuleFi
14d0: 6c 65 4e 61 6d 65 45 78 57 20 47 65 74 4d 6f 64  leNameExW GetMod
14e0: 75 6c 65 46 69 6c 65 4e 61 6d 65 45 78 3b 0d 0a  uleFileNameEx;..
14f0: 09 61 6c 69 61 73 20 47 65 74 4d 61 70 70 65 64  .alias GetMapped
1500: 46 69 6c 65 4e 61 6d 65 57 20 47 65 74 4d 61 70  FileNameW GetMap
1510: 70 65 64 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 61  pedFileName;...a
1520: 6c 69 61 73 20 47 65 74 44 65 76 69 63 65 44 72  lias GetDeviceDr
1530: 69 76 65 72 42 61 73 65 4e 61 6d 65 57 20 47 65  iverBaseNameW Ge
1540: 74 44 65 76 69 63 65 44 72 69 76 65 72 42 61 73  tDeviceDriverBas
1550: 65 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73 20 47  eName;...alias G
1560: 65 74 44 65 76 69 63 65 44 72 69 76 65 72 46 69  etDeviceDriverFi
1570: 6c 65 4e 61 6d 65 57 20 47 65 74 44 65 76 69 63  leNameW GetDevic
1580: 65 44 72 69 76 65 72 46 69 6c 65 4e 61 6d 65 3b  eDriverFileName;
1590: 0d 0a 09 61 6c 69 61 73 20 45 6e 75 6d 50 61 67  ...alias EnumPag
15a0: 65 46 69 6c 65 73 57 20 45 6e 75 6d 50 61 67 65  eFilesW EnumPage
15b0: 46 69 6c 65 73 3b 0d 0a 09 61 6c 69 61 73 20 47  Files;...alias G
15c0: 65 74 50 72 6f 63 65 73 73 49 6d 61 67 65 46 69  etProcessImageFi
15d0: 6c 65 4e 61 6d 65 57 20 47 65 74 50 72 6f 63 65  leNameW GetProce
15e0: 73 73 49 6d 61 67 65 46 69 6c 65 4e 61 6d 65 3b  ssImageFileName;
15f0: 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09 61 6c 69  ..} else {...ali
1600: 61 73 20 47 65 74 4d 6f 64 75 6c 65 42 61 73 65  as GetModuleBase
1610: 4e 61 6d 65 41 20 47 65 74 4d 6f 64 75 6c 65 42  NameA GetModuleB
1620: 61 73 65 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73  aseName;...alias
1630: 20 47 65 74 4d 6f 64 75 6c 65 46 69 6c 65 4e 61   GetModuleFileNa
1640: 6d 65 45 78 41 20 47 65 74 4d 6f 64 75 6c 65 46  meExA GetModuleF
1650: 69 6c 65 4e 61 6d 65 45 78 3b 0d 0a 09 61 6c 69  ileNameEx;...ali
1660: 61 73 20 47 65 74 4d 61 70 70 65 64 46 69 6c 65  as GetMappedFile
1670: 4e 61 6d 65 41 20 47 65 74 4d 61 70 70 65 64 46  NameA GetMappedF
1680: 69 6c 65 4e 61 6d 65 3b 0d 0a 09 61 6c 69 61 73  ileName;...alias
1690: 20 47 65 74 44 65 76 69 63 65 44 72 69 76 65 72   GetDeviceDriver
16a0: 42 61 73 65 4e 61 6d 65 41 20 47 65 74 44 65 76  BaseNameA GetDev
16b0: 69 63 65 44 72 69 76 65 72 42 61 73 65 4e 61 6d  iceDriverBaseNam
16c0: 65 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 44 65  e;...alias GetDe
16d0: 76 69 63 65 44 72 69 76 65 72 46 69 6c 65 4e 61  viceDriverFileNa
16e0: 6d 65 41 20 47 65 74 44 65 76 69 63 65 44 72 69  meA GetDeviceDri
16f0: 76 65 72 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 61  verFileName;...a
1700: 6c 69 61 73 20 45 6e 75 6d 50 61 67 65 46 69 6c  lias EnumPageFil
1710: 65 73 41 20 45 6e 75 6d 50 61 67 65 46 69 6c 65  esA EnumPageFile
1720: 73 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 50 72  s;...alias GetPr
1730: 6f 63 65 73 73 49 6d 61 67 65 46 69 6c 65 4e 61  ocessImageFileNa
1740: 6d 65 41 20 47 65 74 50 72 6f 63 65 73 73 49 6d  meA GetProcessIm
1750: 61 67 65 46 69 6c 65 4e 61 6d 65 3b 0d 0a 7d 0d  ageFileName;..}.
1760: 0a                                               .