Artifact 0dd82e579fd2aa23aa251609687675e016db6c7e:
- File
src/win32/psapi.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
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 .