annotate win32/psapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
1 /***********************************************************************\
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
2 * psapi.d *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
3 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
4 * Windows API header module *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
5 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
6 * Translated from MinGW Windows headers *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
7 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
8 * Placed into public domain *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
9 \***********************************************************************/
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
10 /* Comment from MinGW
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
11 * Process status API (PSAPI)
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
12 * http://windowssdk.msdn.microsoft.com/library/ms684884.aspx
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
13 */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
14
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
15 module win32.psapi;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
16
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
17 private import win32.w32api;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
18 private import win32.winbase;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
19 private import win32.windef;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
20
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
21 struct MODULEINFO {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
22 LPVOID lpBaseOfDll;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
23 DWORD SizeOfImage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
24 LPVOID EntryPoint;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
25 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
26 alias MODULEINFO* LPMODULEINFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
27
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
28 struct PSAPI_WS_WATCH_INFORMATION {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
29 LPVOID FaultingPc;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
30 LPVOID FaultingVa;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
31 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
32 alias PSAPI_WS_WATCH_INFORMATION* PPSAPI_WS_WATCH_INFORMATION;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
33
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
34 struct PSAPI_WS_WATCH_INFORMATION_EX {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
35 PSAPI_WS_WATCH_INFORMATION BasicInfo;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
36 ULONG_PTR FaultingThreadId;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
37 ULONG_PTR Flags;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
38 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
39 alias PSAPI_WS_WATCH_INFORMATION_EX* PPSAPI_WS_WATCH_INFORMATION_EX;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
40
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
41 struct PROCESS_MEMORY_COUNTERS {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
42 DWORD cb;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
43 DWORD PageFaultCount;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
44 DWORD PeakWorkingSetSize;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
45 DWORD WorkingSetSize;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
46 DWORD QuotaPeakPagedPoolUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
47 DWORD QuotaPagedPoolUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
48 DWORD QuotaPeakNonPagedPoolUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
49 DWORD QuotaNonPagedPoolUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
50 DWORD PagefileUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
51 DWORD PeakPagefileUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
52 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
53 alias PROCESS_MEMORY_COUNTERS* PPROCESS_MEMORY_COUNTERS;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
54
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
55 struct PERFORMANCE_INFORMATION {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
56 DWORD cb;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
57 SIZE_T CommitTotal;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
58 SIZE_T CommitLimit;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
59 SIZE_T CommitPeak;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
60 SIZE_T PhysicalTotal;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
61 SIZE_T PhysicalAvailable;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
62 SIZE_T SystemCache;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
63 SIZE_T KernelTotal;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
64 SIZE_T KernelPaged;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
65 SIZE_T KernelNonpaged;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
66 SIZE_T PageSize;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
67 DWORD HandleCount;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
68 DWORD ProcessCount;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
69 DWORD ThreadCount;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
70 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
71 alias PERFORMANCE_INFORMATION* PPERFORMANCE_INFORMATION;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
72
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
73 struct ENUM_PAGE_FILE_INFORMATION {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
74 DWORD cb;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
75 DWORD Reserved;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
76 SIZE_T TotalSize;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
77 SIZE_T TotalInUse;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
78 SIZE_T PeakUsage;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
79 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
80 alias ENUM_PAGE_FILE_INFORMATION* PENUM_PAGE_FILE_INFORMATION;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
81
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
82 /* application-defined callback function used with the EnumPageFiles()
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
83 * http://windowssdk.msdn.microsoft.com/library/ms682627.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
84 version (Unicode) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
85 alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR)
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
86 PENUM_PAGE_FILE_CALLBACK;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
87 } else {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
88 alias BOOL function(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR)
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
89 PENUM_PAGE_FILE_CALLBACK;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
90 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
91
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
92 // Grouped by application, not in alphabetical order.
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
93 extern (Windows) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
94 /* Process Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
95 * http://windowssdk.msdn.microsoft.com/library/ms684870.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
96 BOOL EnumProcesses(DWORD*, DWORD, DWORD*); /* NT/2000/XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
97 DWORD GetProcessImageFileNameA(HANDLE, LPSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
98 DWORD GetProcessImageFileNameW(HANDLE, LPWSTR, DWORD); /* XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
99
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
100 /* Module Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
101 * http://windowssdk.msdn.microsoft.com/library/ms684232.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
102 BOOL EnumProcessModules(HANDLE, HMODULE*, DWORD, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
103 BOOL EnumProcessModulesEx(HANDLE, HMODULE*, DWORD, LPDWORD, DWORD); /* Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
104 DWORD GetModuleBaseNameA(HANDLE, HMODULE, LPSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
105 DWORD GetModuleBaseNameW(HANDLE, HMODULE, LPWSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
106 DWORD GetModuleFileNameExA(HANDLE, HMODULE, LPSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
107 DWORD GetModuleFileNameExW(HANDLE, HMODULE, LPWSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
108 BOOL GetModuleInformation(HANDLE, HMODULE, LPMODULEINFO, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
109
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
110 /* Device Driver Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
111 * http://windowssdk.msdn.microsoft.com/library/ms682578.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
112 BOOL EnumDeviceDrivers(LPVOID*, DWORD, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
113 DWORD GetDeviceDriverBaseNameA(LPVOID, LPSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
114 DWORD GetDeviceDriverBaseNameW(LPVOID, LPWSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
115 DWORD GetDeviceDriverFileNameA(LPVOID, LPSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
116 DWORD GetDeviceDriverFileNameW(LPVOID, LPWSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
117
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
118 /* Process Memory Usage Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
119 * http://windowssdk.msdn.microsoft.com/library/ms684879.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
120 BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
121
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
122 /* Working Set Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
123 * http://windowssdk.msdn.microsoft.com/library/ms687398.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
124 BOOL EmptyWorkingSet(HANDLE);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
125 BOOL GetWsChanges(HANDLE, PPSAPI_WS_WATCH_INFORMATION, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
126 BOOL GetWsChangesEx(HANDLE, PPSAPI_WS_WATCH_INFORMATION_EX, DWORD); /* Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
127 BOOL InitializeProcessForWsWatch(HANDLE);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
128 BOOL QueryWorkingSet(HANDLE, PVOID, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
129 BOOL QueryWorkingSetEx(HANDLE, PVOID, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
130
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
131 /* Memory-Mapped File Information
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
132 * http://windowssdk.msdn.microsoft.com/library/ms684212.aspx */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
133 DWORD GetMappedFileNameW(HANDLE, LPVOID, LPWSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
134 DWORD GetMappedFileNameA(HANDLE, LPVOID, LPSTR, DWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
135
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
136 /* Resources Information */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
137 BOOL GetPerformanceInfo(PPERFORMANCE_INFORMATION, DWORD); /* XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
138 BOOL EnumPageFilesW(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
139 BOOL EnumPageFilesA(PENUM_PAGE_FILE_CALLBACK, LPVOID); /* 2000/XP/Server2003/Vista/Longhorn */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
140 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
141
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
142 version (Unicode) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
143 alias GetModuleBaseNameW GetModuleBaseName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
144 alias GetModuleFileNameExW GetModuleFileNameEx;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
145 alias GetMappedFileNameW GetMappedFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
146 alias GetDeviceDriverBaseNameW GetDeviceDriverBaseName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
147 alias GetDeviceDriverFileNameW GetDeviceDriverFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
148 alias EnumPageFilesW EnumPageFiles;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
149 alias GetProcessImageFileNameW GetProcessImageFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
150 } else {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
151 alias GetModuleBaseNameA GetModuleBaseName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
152 alias GetModuleFileNameExA GetModuleFileNameEx;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
153 alias GetMappedFileNameA GetMappedFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
154 alias GetDeviceDriverBaseNameA GetDeviceDriverBaseName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
155 alias GetDeviceDriverFileNameA GetDeviceDriverFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
156 alias EnumPageFilesA EnumPageFiles;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
157 alias GetProcessImageFileNameA GetProcessImageFileName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
158 }