Hex Artifact Content

Not logged in

Artifact 918550e05f5d1ab76cfde41f9315fc432c4f10b8:


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 20 70 73 61 70 69             psapi
0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .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 2f 2a 20 43 6f 6d  ********/./* Com
02a0: 6d 65 6e 74 20 66 72 6f 6d 20 4d 69 6e 47 57 0a  ment from MinGW.
02b0: 20 2a 20 20 20 50 72 6f 63 65 73 73 20 73 74 61   *   Process sta
02c0: 74 75 73 20 41 50 49 20 28 50 53 41 50 49 29 0a  tus API (PSAPI).
02d0: 20 2a 20 20 20 68 74 74 70 3a 2f 2f 77 69 6e 64   *   http://wind
02e0: 6f 77 73 73 64 6b 2e 6d 73 64 6e 2e 6d 69 63 72  owssdk.msdn.micr
02f0: 6f 73 6f 66 74 2e 63 6f 6d 2f 6c 69 62 72 61 72  osoft.com/librar
0300: 79 2f 6d 73 36 38 34 38 38 34 2e 61 73 70 78 0a  y/ms684884.aspx.
0310: 20 2a 2f 0a 0a 6d 6f 64 75 6c 65 20 77 69 6e 33   */..module win3
0320: 32 2e 70 73 61 70 69 3b 0a 0a 70 72 69 76 61 74  2.psapi;..privat
0330: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77  e import win32.w
0340: 33 32 61 70 69 3b 0a 70 72 69 76 61 74 65 20 69  32api;.private i
0350: 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 62  mport win32.winb
0360: 61 73 65 3b 0a 70 72 69 76 61 74 65 20 69 6d 70  ase;.private imp
0370: 6f 72 74 20 77 69 6e 33 32 2e 77 69 6e 64 65 66  ort win32.windef
0380: 3b 0a 0a 73 74 72 75 63 74 20 4d 4f 44 55 4c 45  ;..struct MODULE
0390: 49 4e 46 4f 20 7b 0a 09 4c 50 56 4f 49 44 20 6c  INFO {..LPVOID l
03a0: 70 42 61 73 65 4f 66 44 6c 6c 3b 0a 09 44 57 4f  pBaseOfDll;..DWO
03b0: 52 44 20 53 69 7a 65 4f 66 49 6d 61 67 65 3b 0a  RD SizeOfImage;.
03c0: 09 4c 50 56 4f 49 44 20 45 6e 74 72 79 50 6f 69  .LPVOID EntryPoi
03d0: 6e 74 3b 0a 7d 0a 61 6c 69 61 73 20 4d 4f 44 55  nt;.}.alias MODU
03e0: 4c 45 49 4e 46 4f 2a 20 4c 50 4d 4f 44 55 4c 45  LEINFO* LPMODULE
03f0: 49 4e 46 4f 3b 0a 0a 73 74 72 75 63 74 20 50 53  INFO;..struct PS
0400: 41 50 49 5f 57 53 5f 57 41 54 43 48 5f 49 4e 46  API_WS_WATCH_INF
0410: 4f 52 4d 41 54 49 4f 4e 20 7b 0a 09 4c 50 56 4f  ORMATION {..LPVO
0420: 49 44 20 46 61 75 6c 74 69 6e 67 50 63 3b 0a 09  ID FaultingPc;..
0430: 4c 50 56 4f 49 44 20 46 61 75 6c 74 69 6e 67 56  LPVOID FaultingV
0440: 61 3b 0a 7d 0a 61 6c 69 61 73 20 50 53 41 50 49  a;.}.alias PSAPI
0450: 5f 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d  _WS_WATCH_INFORM
0460: 41 54 49 4f 4e 2a 20 50 50 53 41 50 49 5f 57 53  ATION* PPSAPI_WS
0470: 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41 54 49  _WATCH_INFORMATI
0480: 4f 4e 3b 0a 0a 73 74 72 75 63 74 20 50 53 41 50  ON;..struct PSAP
0490: 49 5f 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52  I_WS_WATCH_INFOR
04a0: 4d 41 54 49 4f 4e 5f 45 58 20 7b 0a 09 50 53 41  MATION_EX {..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 20 42 61 73 69 63 49 6e 66  RMATION BasicInf
04d0: 6f 3b 0a 09 55 4c 4f 4e 47 5f 50 54 52 20 46 61  o;..ULONG_PTR Fa
04e0: 75 6c 74 69 6e 67 54 68 72 65 61 64 49 64 3b 0a  ultingThreadId;.
04f0: 09 55 4c 4f 4e 47 5f 50 54 52 20 46 6c 61 67 73  .ULONG_PTR Flags
0500: 3b 0a 7d 0a 61 6c 69 61 73 20 50 53 41 50 49 5f  ;.}.alias PSAPI_
0510: 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41  WS_WATCH_INFORMA
0520: 54 49 4f 4e 5f 45 58 2a 20 50 50 53 41 50 49 5f  TION_EX* PPSAPI_
0530: 57 53 5f 57 41 54 43 48 5f 49 4e 46 4f 52 4d 41  WS_WATCH_INFORMA
0540: 54 49 4f 4e 5f 45 58 3b 0a 0a 73 74 72 75 63 74  TION_EX;..struct
0550: 20 50 52 4f 43 45 53 53 5f 4d 45 4d 4f 52 59 5f   PROCESS_MEMORY_
0560: 43 4f 55 4e 54 45 52 53 20 7b 0a 09 44 57 4f 52  COUNTERS {..DWOR
0570: 44 20 63 62 3b 0a 09 44 57 4f 52 44 20 50 61 67  D cb;..DWORD Pag
0580: 65 46 61 75 6c 74 43 6f 75 6e 74 3b 0a 09 44 57  eFaultCount;..DW
0590: 4f 52 44 20 50 65 61 6b 57 6f 72 6b 69 6e 67 53  ORD PeakWorkingS
05a0: 65 74 53 69 7a 65 3b 0a 09 44 57 4f 52 44 20 57  etSize;..DWORD W
05b0: 6f 72 6b 69 6e 67 53 65 74 53 69 7a 65 3b 0a 09  orkingSetSize;..
05c0: 44 57 4f 52 44 20 51 75 6f 74 61 50 65 61 6b 50  DWORD QuotaPeakP
05d0: 61 67 65 64 50 6f 6f 6c 55 73 61 67 65 3b 0a 09  agedPoolUsage;..
05e0: 44 57 4f 52 44 20 51 75 6f 74 61 50 61 67 65 64  DWORD QuotaPaged
05f0: 50 6f 6f 6c 55 73 61 67 65 3b 0a 09 44 57 4f 52  PoolUsage;..DWOR
0600: 44 20 51 75 6f 74 61 50 65 61 6b 4e 6f 6e 50 61  D QuotaPeakNonPa
0610: 67 65 64 50 6f 6f 6c 55 73 61 67 65 3b 0a 09 44  gedPoolUsage;..D
0620: 57 4f 52 44 20 51 75 6f 74 61 4e 6f 6e 50 61 67  WORD QuotaNonPag
0630: 65 64 50 6f 6f 6c 55 73 61 67 65 3b 0a 09 44 57  edPoolUsage;..DW
0640: 4f 52 44 20 50 61 67 65 66 69 6c 65 55 73 61 67  ORD PagefileUsag
0650: 65 3b 0a 09 44 57 4f 52 44 20 50 65 61 6b 50 61  e;..DWORD PeakPa
0660: 67 65 66 69 6c 65 55 73 61 67 65 3b 0a 7d 0a 61  gefileUsage;.}.a
0670: 6c 69 61 73 20 50 52 4f 43 45 53 53 5f 4d 45 4d  lias PROCESS_MEM
0680: 4f 52 59 5f 43 4f 55 4e 54 45 52 53 2a 20 50 50  ORY_COUNTERS* PP
0690: 52 4f 43 45 53 53 5f 4d 45 4d 4f 52 59 5f 43 4f  ROCESS_MEMORY_CO
06a0: 55 4e 54 45 52 53 3b 0a 0a 73 74 72 75 63 74 20  UNTERS;..struct 
06b0: 50 45 52 46 4f 52 4d 41 4e 43 45 5f 49 4e 46 4f  PERFORMANCE_INFO
06c0: 52 4d 41 54 49 4f 4e 20 7b 0a 09 44 57 4f 52 44  RMATION {..DWORD
06d0: 20 63 62 3b 0a 09 53 49 5a 45 5f 54 20 43 6f 6d   cb;..SIZE_T Com
06e0: 6d 69 74 54 6f 74 61 6c 3b 0a 09 53 49 5a 45 5f  mitTotal;..SIZE_
06f0: 54 20 43 6f 6d 6d 69 74 4c 69 6d 69 74 3b 0a 09  T CommitLimit;..
0700: 53 49 5a 45 5f 54 20 43 6f 6d 6d 69 74 50 65 61  SIZE_T CommitPea
0710: 6b 3b 0a 09 53 49 5a 45 5f 54 20 50 68 79 73 69  k;..SIZE_T Physi
0720: 63 61 6c 54 6f 74 61 6c 3b 0a 09 53 49 5a 45 5f  calTotal;..SIZE_
0730: 54 20 50 68 79 73 69 63 61 6c 41 76 61 69 6c 61  T PhysicalAvaila
0740: 62 6c 65 3b 0a 09 53 49 5a 45 5f 54 20 53 79 73  ble;..SIZE_T Sys
0750: 74 65 6d 43 61 63 68 65 3b 0a 09 53 49 5a 45 5f  temCache;..SIZE_
0760: 54 20 4b 65 72 6e 65 6c 54 6f 74 61 6c 3b 0a 09  T KernelTotal;..
0770: 53 49 5a 45 5f 54 20 4b 65 72 6e 65 6c 50 61 67  SIZE_T KernelPag
0780: 65 64 3b 0a 09 53 49 5a 45 5f 54 20 4b 65 72 6e  ed;..SIZE_T Kern
0790: 65 6c 4e 6f 6e 70 61 67 65 64 3b 0a 09 53 49 5a  elNonpaged;..SIZ
07a0: 45 5f 54 20 50 61 67 65 53 69 7a 65 3b 0a 09 44  E_T PageSize;..D
07b0: 57 4f 52 44 20 48 61 6e 64 6c 65 43 6f 75 6e 74  WORD HandleCount
07c0: 3b 0a 09 44 57 4f 52 44 20 50 72 6f 63 65 73 73  ;..DWORD Process
07d0: 43 6f 75 6e 74 3b 0a 09 44 57 4f 52 44 20 54 68  Count;..DWORD Th
07e0: 72 65 61 64 43 6f 75 6e 74 3b 0a 7d 0a 61 6c 69  readCount;.}.ali
07f0: 61 73 20 50 45 52 46 4f 52 4d 41 4e 43 45 5f 49  as PERFORMANCE_I
0800: 4e 46 4f 52 4d 41 54 49 4f 4e 2a 20 50 50 45 52  NFORMATION* PPER
0810: 46 4f 52 4d 41 4e 43 45 5f 49 4e 46 4f 52 4d 41  FORMANCE_INFORMA
0820: 54 49 4f 4e 3b 0a 0a 73 74 72 75 63 74 20 45 4e  TION;..struct EN
0830: 55 4d 5f 50 41 47 45 5f 46 49 4c 45 5f 49 4e 46  UM_PAGE_FILE_INF
0840: 4f 52 4d 41 54 49 4f 4e 20 7b 0a 09 44 57 4f 52  ORMATION {..DWOR
0850: 44 20 63 62 3b 0a 09 44 57 4f 52 44 20 52 65 73  D cb;..DWORD Res
0860: 65 72 76 65 64 3b 0a 09 53 49 5a 45 5f 54 20 54  erved;..SIZE_T T
0870: 6f 74 61 6c 53 69 7a 65 3b 0a 09 53 49 5a 45 5f  otalSize;..SIZE_
0880: 54 20 54 6f 74 61 6c 49 6e 55 73 65 3b 0a 09 53  T TotalInUse;..S
0890: 49 5a 45 5f 54 20 50 65 61 6b 55 73 61 67 65 3b  IZE_T PeakUsage;
08a0: 0a 7d 0a 61 6c 69 61 73 20 45 4e 55 4d 5f 50 41  .}.alias ENUM_PA
08b0: 47 45 5f 46 49 4c 45 5f 49 4e 46 4f 52 4d 41 54  GE_FILE_INFORMAT
08c0: 49 4f 4e 2a 20 50 45 4e 55 4d 5f 50 41 47 45 5f  ION* PENUM_PAGE_
08d0: 46 49 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  FILE_INFORMATION
08e0: 3b 0a 0a 2f 2a 20 61 70 70 6c 69 63 61 74 69 6f  ;../* applicatio
08f0: 6e 2d 64 65 66 69 6e 65 64 20 63 61 6c 6c 62 61  n-defined callba
0900: 63 6b 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64  ck function used
0910: 20 77 69 74 68 20 74 68 65 20 45 6e 75 6d 50 61   with the EnumPa
0920: 67 65 46 69 6c 65 73 28 29 0a 20 2a 20 68 74 74  geFiles(). * htt
0930: 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b 2e 6d  p://windowssdk.m
0940: 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f  sdn.microsoft.co
0950: 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38 32 36  m/library/ms6826
0960: 32 37 2e 61 73 70 78 20 2a 2f 0a 76 65 72 73 69  27.aspx */.versi
0970: 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09  on (Unicode) {..
0980: 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74  alias BOOL funct
0990: 69 6f 6e 28 4c 50 56 4f 49 44 2c 20 50 45 4e 55  ion(LPVOID, PENU
09a0: 4d 5f 50 41 47 45 5f 46 49 4c 45 5f 49 4e 46 4f  M_PAGE_FILE_INFO
09b0: 52 4d 41 54 49 4f 4e 2c 20 4c 50 43 57 53 54 52  RMATION, LPCWSTR
09c0: 29 0a 09 20 20 50 45 4e 55 4d 5f 50 41 47 45 5f  )..  PENUM_PAGE_
09d0: 46 49 4c 45 5f 43 41 4c 4c 42 41 43 4b 3b 0a 7d  FILE_CALLBACK;.}
09e0: 20 65 6c 73 65 20 7b 0a 09 61 6c 69 61 73 20 42   else {..alias B
09f0: 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 56  OOL function(LPV
0a00: 4f 49 44 2c 20 50 45 4e 55 4d 5f 50 41 47 45 5f  OID, PENUM_PAGE_
0a10: 46 49 4c 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e  FILE_INFORMATION
0a20: 2c 20 4c 50 43 53 54 52 29 0a 09 20 20 50 45 4e  , LPCSTR)..  PEN
0a30: 55 4d 5f 50 41 47 45 5f 46 49 4c 45 5f 43 41 4c  UM_PAGE_FILE_CAL
0a40: 4c 42 41 43 4b 3b 0a 7d 0a 0a 2f 2f 20 47 72 6f  LBACK;.}..// Gro
0a50: 75 70 65 64 20 62 79 20 61 70 70 6c 69 63 61 74  uped by applicat
0a60: 69 6f 6e 2c 20 6e 6f 74 20 69 6e 20 61 6c 70 68  ion, not in alph
0a70: 61 62 65 74 69 63 61 6c 20 6f 72 64 65 72 2e 0a  abetical order..
0a80: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29  extern (Windows)
0a90: 20 7b 0a 09 2f 2a 20 50 72 6f 63 65 73 73 20 49   {../* Process I
0aa0: 6e 66 6f 72 6d 61 74 69 6f 6e 0a 09 20 2a 20 68  nformation.. * h
0ab0: 74 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b  ttp://windowssdk
0ac0: 2e 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e  .msdn.microsoft.
0ad0: 63 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38  com/library/ms68
0ae0: 34 38 37 30 2e 61 73 70 78 20 2a 2f 0a 09 42 4f  4870.aspx */..BO
0af0: 4f 4c 20 45 6e 75 6d 50 72 6f 63 65 73 73 65 73  OL EnumProcesses
0b00: 28 44 57 4f 52 44 2a 2c 20 44 57 4f 52 44 2c 20  (DWORD*, DWORD, 
0b10: 44 57 4f 52 44 2a 29 3b 20 2f 2a 20 4e 54 2f 32  DWORD*); /* NT/2
0b20: 30 30 30 2f 58 50 2f 53 65 72 76 65 72 32 30 30  000/XP/Server200
0b30: 33 2f 56 69 73 74 61 2f 4c 6f 6e 67 68 6f 72 6e  3/Vista/Longhorn
0b40: 20 2a 2f 0a 09 44 57 4f 52 44 20 47 65 74 50 72   */..DWORD GetPr
0b50: 6f 63 65 73 73 49 6d 61 67 65 46 69 6c 65 4e 61  ocessImageFileNa
0b60: 6d 65 41 28 48 41 4e 44 4c 45 2c 20 4c 50 53 54  meA(HANDLE, LPST
0b70: 52 2c 20 44 57 4f 52 44 29 3b 20 2f 2a 20 58 50  R, DWORD); /* XP
0b80: 2f 53 65 72 76 65 72 32 30 30 33 2f 56 69 73 74  /Server2003/Vist
0b90: 61 2f 4c 6f 6e 67 68 6f 72 6e 20 2a 2f 0a 09 44  a/Longhorn */..D
0ba0: 57 4f 52 44 20 47 65 74 50 72 6f 63 65 73 73 49  WORD GetProcessI
0bb0: 6d 61 67 65 46 69 6c 65 4e 61 6d 65 57 28 48 41  mageFileNameW(HA
0bc0: 4e 44 4c 45 2c 20 4c 50 57 53 54 52 2c 20 44 57  NDLE, LPWSTR, DW
0bd0: 4f 52 44 29 3b 20 2f 2a 20 58 50 2f 53 65 72 76  ORD); /* XP/Serv
0be0: 65 72 32 30 30 33 2f 56 69 73 74 61 2f 4c 6f 6e  er2003/Vista/Lon
0bf0: 67 68 6f 72 6e 20 2a 2f 0a 0a 09 2f 2a 20 4d 6f  ghorn */.../* Mo
0c00: 64 75 6c 65 20 49 6e 66 6f 72 6d 61 74 69 6f 6e  dule Information
0c10: 0a 09 20 2a 20 68 74 74 70 3a 2f 2f 77 69 6e 64  .. * http://wind
0c20: 6f 77 73 73 64 6b 2e 6d 73 64 6e 2e 6d 69 63 72  owssdk.msdn.micr
0c30: 6f 73 6f 66 74 2e 63 6f 6d 2f 6c 69 62 72 61 72  osoft.com/librar
0c40: 79 2f 6d 73 36 38 34 32 33 32 2e 61 73 70 78 20  y/ms684232.aspx 
0c50: 2a 2f 0a 09 42 4f 4f 4c 20 45 6e 75 6d 50 72 6f  */..BOOL EnumPro
0c60: 63 65 73 73 4d 6f 64 75 6c 65 73 28 48 41 4e 44  cessModules(HAND
0c70: 4c 45 2c 20 48 4d 4f 44 55 4c 45 2a 2c 20 44 57  LE, HMODULE*, DW
0c80: 4f 52 44 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09  ORD, LPDWORD);..
0c90: 42 4f 4f 4c 20 45 6e 75 6d 50 72 6f 63 65 73 73  BOOL EnumProcess
0ca0: 4d 6f 64 75 6c 65 73 45 78 28 48 41 4e 44 4c 45  ModulesEx(HANDLE
0cb0: 2c 20 48 4d 4f 44 55 4c 45 2a 2c 20 44 57 4f 52  , HMODULE*, DWOR
0cc0: 44 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52  D, LPDWORD, DWOR
0cd0: 44 29 3b 20 2f 2a 20 56 69 73 74 61 2f 4c 6f 6e  D); /* Vista/Lon
0ce0: 67 68 6f 72 6e 20 2a 2f 0a 09 44 57 4f 52 44 20  ghorn */..DWORD 
0cf0: 47 65 74 4d 6f 64 75 6c 65 42 61 73 65 4e 61 6d  GetModuleBaseNam
0d00: 65 41 28 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55  eA(HANDLE, HMODU
0d10: 4c 45 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44  LE, LPSTR, DWORD
0d20: 29 3b 0a 09 44 57 4f 52 44 20 47 65 74 4d 6f 64  );..DWORD GetMod
0d30: 75 6c 65 42 61 73 65 4e 61 6d 65 57 28 48 41 4e  uleBaseNameW(HAN
0d40: 44 4c 45 2c 20 48 4d 4f 44 55 4c 45 2c 20 4c 50  DLE, HMODULE, LP
0d50: 57 53 54 52 2c 20 44 57 4f 52 44 29 3b 0a 09 44  WSTR, DWORD);..D
0d60: 57 4f 52 44 20 47 65 74 4d 6f 64 75 6c 65 46 69  WORD GetModuleFi
0d70: 6c 65 4e 61 6d 65 45 78 41 28 48 41 4e 44 4c 45  leNameExA(HANDLE
0d80: 2c 20 48 4d 4f 44 55 4c 45 2c 20 4c 50 53 54 52  , HMODULE, LPSTR
0d90: 2c 20 44 57 4f 52 44 29 3b 0a 09 44 57 4f 52 44  , DWORD);..DWORD
0da0: 20 47 65 74 4d 6f 64 75 6c 65 46 69 6c 65 4e 61   GetModuleFileNa
0db0: 6d 65 45 78 57 28 48 41 4e 44 4c 45 2c 20 48 4d  meExW(HANDLE, HM
0dc0: 4f 44 55 4c 45 2c 20 4c 50 57 53 54 52 2c 20 44  ODULE, LPWSTR, D
0dd0: 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20 47 65 74  WORD);..BOOL Get
0de0: 4d 6f 64 75 6c 65 49 6e 66 6f 72 6d 61 74 69 6f  ModuleInformatio
0df0: 6e 28 48 41 4e 44 4c 45 2c 20 48 4d 4f 44 55 4c  n(HANDLE, HMODUL
0e00: 45 2c 20 4c 50 4d 4f 44 55 4c 45 49 4e 46 4f 2c  E, LPMODULEINFO,
0e10: 20 44 57 4f 52 44 29 3b 0a 0a 09 2f 2a 20 44 65   DWORD);.../* De
0e20: 76 69 63 65 20 44 72 69 76 65 72 20 49 6e 66 6f  vice Driver Info
0e30: 72 6d 61 74 69 6f 6e 0a 09 20 2a 20 68 74 74 70  rmation.. * http
0e40: 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b 2e 6d 73  ://windowssdk.ms
0e50: 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d  dn.microsoft.com
0e60: 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38 32 35 37  /library/ms68257
0e70: 38 2e 61 73 70 78 20 2a 2f 0a 09 42 4f 4f 4c 20  8.aspx */..BOOL 
0e80: 45 6e 75 6d 44 65 76 69 63 65 44 72 69 76 65 72  EnumDeviceDriver
0e90: 73 28 4c 50 56 4f 49 44 2a 2c 20 44 57 4f 52 44  s(LPVOID*, DWORD
0ea0: 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09 44 57 4f  , LPDWORD);..DWO
0eb0: 52 44 20 47 65 74 44 65 76 69 63 65 44 72 69 76  RD GetDeviceDriv
0ec0: 65 72 42 61 73 65 4e 61 6d 65 41 28 4c 50 56 4f  erBaseNameA(LPVO
0ed0: 49 44 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44  ID, LPSTR, DWORD
0ee0: 29 3b 0a 09 44 57 4f 52 44 20 47 65 74 44 65 76  );..DWORD GetDev
0ef0: 69 63 65 44 72 69 76 65 72 42 61 73 65 4e 61 6d  iceDriverBaseNam
0f00: 65 57 28 4c 50 56 4f 49 44 2c 20 4c 50 57 53 54  eW(LPVOID, LPWST
0f10: 52 2c 20 44 57 4f 52 44 29 3b 0a 09 44 57 4f 52  R, DWORD);..DWOR
0f20: 44 20 47 65 74 44 65 76 69 63 65 44 72 69 76 65  D GetDeviceDrive
0f30: 72 46 69 6c 65 4e 61 6d 65 41 28 4c 50 56 4f 49  rFileNameA(LPVOI
0f40: 44 2c 20 4c 50 53 54 52 2c 20 44 57 4f 52 44 29  D, LPSTR, DWORD)
0f50: 3b 0a 09 44 57 4f 52 44 20 47 65 74 44 65 76 69  ;..DWORD GetDevi
0f60: 63 65 44 72 69 76 65 72 46 69 6c 65 4e 61 6d 65  ceDriverFileName
0f70: 57 28 4c 50 56 4f 49 44 2c 20 4c 50 57 53 54 52  W(LPVOID, LPWSTR
0f80: 2c 20 44 57 4f 52 44 29 3b 0a 0a 09 2f 2a 20 50  , DWORD);.../* P
0f90: 72 6f 63 65 73 73 20 4d 65 6d 6f 72 79 20 55 73  rocess Memory Us
0fa0: 61 67 65 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 0a  age Information.
0fb0: 09 20 2a 20 68 74 74 70 3a 2f 2f 77 69 6e 64 6f  . * http://windo
0fc0: 77 73 73 64 6b 2e 6d 73 64 6e 2e 6d 69 63 72 6f  wssdk.msdn.micro
0fd0: 73 6f 66 74 2e 63 6f 6d 2f 6c 69 62 72 61 72 79  soft.com/library
0fe0: 2f 6d 73 36 38 34 38 37 39 2e 61 73 70 78 20 2a  /ms684879.aspx *
0ff0: 2f 0a 09 42 4f 4f 4c 20 47 65 74 50 72 6f 63 65  /..BOOL GetProce
1000: 73 73 4d 65 6d 6f 72 79 49 6e 66 6f 28 48 41 4e  ssMemoryInfo(HAN
1010: 44 4c 45 2c 20 50 50 52 4f 43 45 53 53 5f 4d 45  DLE, PPROCESS_ME
1020: 4d 4f 52 59 5f 43 4f 55 4e 54 45 52 53 2c 20 44  MORY_COUNTERS, D
1030: 57 4f 52 44 29 3b 0a 0a 09 2f 2a 20 57 6f 72 6b  WORD);.../* Work
1040: 69 6e 67 20 53 65 74 20 49 6e 66 6f 72 6d 61 74  ing Set Informat
1050: 69 6f 6e 0a 09 20 2a 20 68 74 74 70 3a 2f 2f 77  ion.. * http://w
1060: 69 6e 64 6f 77 73 73 64 6b 2e 6d 73 64 6e 2e 6d  indowssdk.msdn.m
1070: 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 6c 69 62  icrosoft.com/lib
1080: 72 61 72 79 2f 6d 73 36 38 37 33 39 38 2e 61 73  rary/ms687398.as
1090: 70 78 20 2a 2f 0a 09 42 4f 4f 4c 20 45 6d 70 74  px */..BOOL Empt
10a0: 79 57 6f 72 6b 69 6e 67 53 65 74 28 48 41 4e 44  yWorkingSet(HAND
10b0: 4c 45 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 57 73  LE);..BOOL GetWs
10c0: 43 68 61 6e 67 65 73 28 48 41 4e 44 4c 45 2c 20  Changes(HANDLE, 
10d0: 50 50 53 41 50 49 5f 57 53 5f 57 41 54 43 48 5f  PPSAPI_WS_WATCH_
10e0: 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20 44 57 4f  INFORMATION, DWO
10f0: 52 44 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 57 73  RD);..BOOL GetWs
1100: 43 68 61 6e 67 65 73 45 78 28 48 41 4e 44 4c 45  ChangesEx(HANDLE
1110: 2c 20 50 50 53 41 50 49 5f 57 53 5f 57 41 54 43  , PPSAPI_WS_WATC
1120: 48 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 5f 45 58  H_INFORMATION_EX
1130: 2c 20 44 57 4f 52 44 29 3b 20 2f 2a 20 56 69 73  , DWORD); /* Vis
1140: 74 61 2f 4c 6f 6e 67 68 6f 72 6e 20 2a 2f 0a 09  ta/Longhorn */..
1150: 42 4f 4f 4c 20 49 6e 69 74 69 61 6c 69 7a 65 50  BOOL InitializeP
1160: 72 6f 63 65 73 73 46 6f 72 57 73 57 61 74 63 68  rocessForWsWatch
1170: 28 48 41 4e 44 4c 45 29 3b 0a 09 42 4f 4f 4c 20  (HANDLE);..BOOL 
1180: 51 75 65 72 79 57 6f 72 6b 69 6e 67 53 65 74 28  QueryWorkingSet(
1190: 48 41 4e 44 4c 45 2c 20 50 56 4f 49 44 2c 20 44  HANDLE, PVOID, D
11a0: 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20 51 75 65  WORD);..BOOL Que
11b0: 72 79 57 6f 72 6b 69 6e 67 53 65 74 45 78 28 48  ryWorkingSetEx(H
11c0: 41 4e 44 4c 45 2c 20 50 56 4f 49 44 2c 20 44 57  ANDLE, PVOID, DW
11d0: 4f 52 44 29 3b 0a 0a 09 2f 2a 20 4d 65 6d 6f 72  ORD);.../* Memor
11e0: 79 2d 4d 61 70 70 65 64 20 46 69 6c 65 20 49 6e  y-Mapped File In
11f0: 66 6f 72 6d 61 74 69 6f 6e 0a 09 20 2a 20 68 74  formation.. * ht
1200: 74 70 3a 2f 2f 77 69 6e 64 6f 77 73 73 64 6b 2e  tp://windowssdk.
1210: 6d 73 64 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63  msdn.microsoft.c
1220: 6f 6d 2f 6c 69 62 72 61 72 79 2f 6d 73 36 38 34  om/library/ms684
1230: 32 31 32 2e 61 73 70 78 20 2a 2f 0a 09 44 57 4f  212.aspx */..DWO
1240: 52 44 20 47 65 74 4d 61 70 70 65 64 46 69 6c 65  RD GetMappedFile
1250: 4e 61 6d 65 57 28 48 41 4e 44 4c 45 2c 20 4c 50  NameW(HANDLE, LP
1260: 56 4f 49 44 2c 20 4c 50 57 53 54 52 2c 20 44 57  VOID, LPWSTR, DW
1270: 4f 52 44 29 3b 0a 09 44 57 4f 52 44 20 47 65 74  ORD);..DWORD Get
1280: 4d 61 70 70 65 64 46 69 6c 65 4e 61 6d 65 41 28  MappedFileNameA(
1290: 48 41 4e 44 4c 45 2c 20 4c 50 56 4f 49 44 2c 20  HANDLE, LPVOID, 
12a0: 4c 50 53 54 52 2c 20 44 57 4f 52 44 29 3b 0a 0a  LPSTR, DWORD);..
12b0: 09 2f 2a 20 52 65 73 6f 75 72 63 65 73 20 49 6e  ./* Resources In
12c0: 66 6f 72 6d 61 74 69 6f 6e 20 2a 2f 0a 09 42 4f  formation */..BO
12d0: 4f 4c 20 47 65 74 50 65 72 66 6f 72 6d 61 6e 63  OL GetPerformanc
12e0: 65 49 6e 66 6f 28 50 50 45 52 46 4f 52 4d 41 4e  eInfo(PPERFORMAN
12f0: 43 45 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 20  CE_INFORMATION, 
1300: 44 57 4f 52 44 29 3b 20 2f 2a 20 58 50 2f 53 65  DWORD); /* XP/Se
1310: 72 76 65 72 32 30 30 33 2f 56 69 73 74 61 2f 4c  rver2003/Vista/L
1320: 6f 6e 67 68 6f 72 6e 20 2a 2f 0a 09 42 4f 4f 4c  onghorn */..BOOL
1330: 20 45 6e 75 6d 50 61 67 65 46 69 6c 65 73 57 28   EnumPageFilesW(
1340: 50 45 4e 55 4d 5f 50 41 47 45 5f 46 49 4c 45 5f  PENUM_PAGE_FILE_
1350: 43 41 4c 4c 42 41 43 4b 2c 20 4c 50 56 4f 49 44  CALLBACK, LPVOID
1360: 29 3b 20 2f 2a 20 32 30 30 30 2f 58 50 2f 53 65  ); /* 2000/XP/Se
1370: 72 76 65 72 32 30 30 33 2f 56 69 73 74 61 2f 4c  rver2003/Vista/L
1380: 6f 6e 67 68 6f 72 6e 20 2a 2f 0a 09 42 4f 4f 4c  onghorn */..BOOL
1390: 20 45 6e 75 6d 50 61 67 65 46 69 6c 65 73 41 28   EnumPageFilesA(
13a0: 50 45 4e 55 4d 5f 50 41 47 45 5f 46 49 4c 45 5f  PENUM_PAGE_FILE_
13b0: 43 41 4c 4c 42 41 43 4b 2c 20 4c 50 56 4f 49 44  CALLBACK, LPVOID
13c0: 29 3b 20 2f 2a 20 32 30 30 30 2f 58 50 2f 53 65  ); /* 2000/XP/Se
13d0: 72 76 65 72 32 30 30 33 2f 56 69 73 74 61 2f 4c  rver2003/Vista/L
13e0: 6f 6e 67 68 6f 72 6e 20 2a 2f 0a 7d 0a 0a 76 65  onghorn */.}..ve
13f0: 72 73 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20  rsion (Unicode) 
1400: 7b 0a 09 61 6c 69 61 73 20 47 65 74 4d 6f 64 75  {..alias GetModu
1410: 6c 65 42 61 73 65 4e 61 6d 65 57 20 47 65 74 4d  leBaseNameW GetM
1420: 6f 64 75 6c 65 42 61 73 65 4e 61 6d 65 3b 0a 09  oduleBaseName;..
1430: 61 6c 69 61 73 20 47 65 74 4d 6f 64 75 6c 65 46  alias GetModuleF
1440: 69 6c 65 4e 61 6d 65 45 78 57 20 47 65 74 4d 6f  ileNameExW GetMo
1450: 64 75 6c 65 46 69 6c 65 4e 61 6d 65 45 78 3b 0a  duleFileNameEx;.
1460: 09 61 6c 69 61 73 20 47 65 74 4d 61 70 70 65 64  .alias GetMapped
1470: 46 69 6c 65 4e 61 6d 65 57 20 47 65 74 4d 61 70  FileNameW GetMap
1480: 70 65 64 46 69 6c 65 4e 61 6d 65 3b 0a 09 61 6c  pedFileName;..al
1490: 69 61 73 20 47 65 74 44 65 76 69 63 65 44 72 69  ias GetDeviceDri
14a0: 76 65 72 42 61 73 65 4e 61 6d 65 57 20 47 65 74  verBaseNameW Get
14b0: 44 65 76 69 63 65 44 72 69 76 65 72 42 61 73 65  DeviceDriverBase
14c0: 4e 61 6d 65 3b 0a 09 61 6c 69 61 73 20 47 65 74  Name;..alias Get
14d0: 44 65 76 69 63 65 44 72 69 76 65 72 46 69 6c 65  DeviceDriverFile
14e0: 4e 61 6d 65 57 20 47 65 74 44 65 76 69 63 65 44  NameW GetDeviceD
14f0: 72 69 76 65 72 46 69 6c 65 4e 61 6d 65 3b 0a 09  riverFileName;..
1500: 61 6c 69 61 73 20 45 6e 75 6d 50 61 67 65 46 69  alias EnumPageFi
1510: 6c 65 73 57 20 45 6e 75 6d 50 61 67 65 46 69 6c  lesW EnumPageFil
1520: 65 73 3b 0a 09 61 6c 69 61 73 20 47 65 74 50 72  es;..alias GetPr
1530: 6f 63 65 73 73 49 6d 61 67 65 46 69 6c 65 4e 61  ocessImageFileNa
1540: 6d 65 57 20 47 65 74 50 72 6f 63 65 73 73 49 6d  meW GetProcessIm
1550: 61 67 65 46 69 6c 65 4e 61 6d 65 3b 0a 7d 20 65  ageFileName;.} e
1560: 6c 73 65 20 7b 0a 09 61 6c 69 61 73 20 47 65 74  lse {..alias Get
1570: 4d 6f 64 75 6c 65 42 61 73 65 4e 61 6d 65 41 20  ModuleBaseNameA 
1580: 47 65 74 4d 6f 64 75 6c 65 42 61 73 65 4e 61 6d  GetModuleBaseNam
1590: 65 3b 0a 09 61 6c 69 61 73 20 47 65 74 4d 6f 64  e;..alias GetMod
15a0: 75 6c 65 46 69 6c 65 4e 61 6d 65 45 78 41 20 47  uleFileNameExA G
15b0: 65 74 4d 6f 64 75 6c 65 46 69 6c 65 4e 61 6d 65  etModuleFileName
15c0: 45 78 3b 0a 09 61 6c 69 61 73 20 47 65 74 4d 61  Ex;..alias GetMa
15d0: 70 70 65 64 46 69 6c 65 4e 61 6d 65 41 20 47 65  ppedFileNameA Ge
15e0: 74 4d 61 70 70 65 64 46 69 6c 65 4e 61 6d 65 3b  tMappedFileName;
15f0: 0a 09 61 6c 69 61 73 20 47 65 74 44 65 76 69 63  ..alias GetDevic
1600: 65 44 72 69 76 65 72 42 61 73 65 4e 61 6d 65 41  eDriverBaseNameA
1610: 20 47 65 74 44 65 76 69 63 65 44 72 69 76 65 72   GetDeviceDriver
1620: 42 61 73 65 4e 61 6d 65 3b 0a 09 61 6c 69 61 73  BaseName;..alias
1630: 20 47 65 74 44 65 76 69 63 65 44 72 69 76 65 72   GetDeviceDriver
1640: 46 69 6c 65 4e 61 6d 65 41 20 47 65 74 44 65 76  FileNameA GetDev
1650: 69 63 65 44 72 69 76 65 72 46 69 6c 65 4e 61 6d  iceDriverFileNam
1660: 65 3b 0a 09 61 6c 69 61 73 20 45 6e 75 6d 50 61  e;..alias EnumPa
1670: 67 65 46 69 6c 65 73 41 20 45 6e 75 6d 50 61 67  geFilesA EnumPag
1680: 65 46 69 6c 65 73 3b 0a 09 61 6c 69 61 73 20 47  eFiles;..alias G
1690: 65 74 50 72 6f 63 65 73 73 49 6d 61 67 65 46 69  etProcessImageFi
16a0: 6c 65 4e 61 6d 65 41 20 47 65 74 50 72 6f 63 65  leNameA GetProce
16b0: 73 73 49 6d 61 67 65 46 69 6c 65 4e 61 6d 65 3b  ssImageFileName;
16c0: 0a 7d 0a                                         .}.