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 .