ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/psapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 9295 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _PSAPI_H_
7 #define _PSAPI_H_
8
9 #include <_mingw_unicode.h>
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 #ifndef PSAPI_VERSION
16 #if NTDDI_VERSION >= NTDDI_WIN7
17 #define PSAPI_VERSION 2
18 #else
19 #define PSAPI_VERSION 1
20 #endif
21 #endif
22
23 #if PSAPI_VERSION > 1
24 #define EnumProcesses K32EnumProcesses
25 #define EnumProcessModules K32EnumProcessModules
26 #define EnumProcessModulesEx K32EnumProcessModulesEx
27 #define GetModuleBaseNameA K32GetModuleBaseNameA
28 #define GetModuleBaseNameW K32GetModuleBaseNameW
29 #define GetModuleFileNameExA K32GetModuleFileNameExA
30 #define GetModuleFileNameExW K32GetModuleFileNameExW
31 #define GetModuleInformation K32GetModuleInformation
32 #define EmptyWorkingSet K32EmptyWorkingSet
33 #define QueryWorkingSet K32QueryWorkingSet
34 #define QueryWorkingSetEx K32QueryWorkingSetEx
35 #define InitializeProcessForWsWatch K32InitializeProcessForWsWatch
36 #define GetWsChanges K32GetWsChanges
37 #define GetWsChangesEx K32GetWsChangesEx
38 #define GetMappedFileNameW K32GetMappedFileNameW
39 #define GetMappedFileNameA K32GetMappedFileNameA
40 #define EnumDeviceDrivers K32EnumDeviceDrivers
41 #define GetDeviceDriverBaseNameA K32GetDeviceDriverBaseNameA
42 #define GetDeviceDriverBaseNameW K32GetDeviceDriverBaseNameW
43 #define GetDeviceDriverFileNameA K32GetDeviceDriverFileNameA
44 #define GetDeviceDriverFileNameW K32GetDeviceDriverFileNameW
45 #define GetProcessMemoryInfo K32GetProcessMemoryInfo
46 #define GetPerformanceInfo K32GetPerformanceInfo
47 #define EnumPageFilesW K32EnumPageFilesW
48 #define EnumPageFilesA K32EnumPageFilesA
49 #define GetProcessImageFileNameA K32GetProcessImageFileNameA
50 #define GetProcessImageFileNameW K32GetProcessImageFileNameW
51 #endif
52
53 #define GetModuleBaseName __MINGW_NAME_AW(GetModuleBaseName)
54 #define GetModuleFileNameEx __MINGW_NAME_AW(GetModuleFileNameEx)
55 #define GetMappedFileName __MINGW_NAME_AW(GetMappedFileName)
56 #define GetDeviceDriverBaseName __MINGW_NAME_AW(GetDeviceDriverBaseName)
57 #define GetDeviceDriverFileName __MINGW_NAME_AW(GetDeviceDriverFileName)
58 #define PENUM_PAGE_FILE_CALLBACK __MINGW_NAME_AW(PENUM_PAGE_FILE_CALLBACK)
59 #define EnumPageFiles __MINGW_NAME_AW(EnumPageFiles)
60 #define GetProcessImageFileName __MINGW_NAME_AW(GetProcessImageFileName)
61
62 #ifndef LIST_MODULES_DEFAULT
63 #define LIST_MODULES_DEFAULT 0x0
64 #endif
65 #ifndef LIST_MODULES_32BIT
66 #define LIST_MODULES_32BIT 0x01
67 #endif
68 #ifndef LIST_MODULES_64BIT
69 #define LIST_MODULES_64BIT 0x02
70 #endif
71 #ifndef LIST_MODULES_ALL
72 #define LIST_MODULES_ALL (LIST_MODULES_32BIT|LIST_MODULES_64BIT)
73 #endif
74
75 WINBOOL WINAPI EnumProcesses(DWORD *lpidProcess,DWORD cb,DWORD *cbNeeded);
76 WINBOOL WINAPI EnumProcessModules(HANDLE hProcess,HMODULE *lphModule,DWORD cb,LPDWORD lpcbNeeded);
77 DWORD WINAPI GetModuleBaseNameA(HANDLE hProcess,HMODULE hModule,LPSTR lpBaseName,DWORD nSize);
78 DWORD WINAPI GetModuleBaseNameW(HANDLE hProcess,HMODULE hModule,LPWSTR lpBaseName,DWORD nSize);
79 DWORD WINAPI GetModuleFileNameExA(HANDLE hProcess,HMODULE hModule,LPSTR lpFilename,DWORD nSize);
80 DWORD WINAPI GetModuleFileNameExW(HANDLE hProcess,HMODULE hModule,LPWSTR lpFilename,DWORD nSize);
81
82 typedef struct _MODULEINFO {
83 LPVOID lpBaseOfDll;
84 DWORD SizeOfImage;
85 LPVOID EntryPoint;
86 } MODULEINFO,*LPMODULEINFO;
87
88 WINBOOL WINAPI GetModuleInformation(HANDLE hProcess,HMODULE hModule,LPMODULEINFO lpmodinfo,DWORD cb);
89 WINBOOL WINAPI EmptyWorkingSet(HANDLE hProcess);
90 WINBOOL WINAPI QueryWorkingSet(HANDLE hProcess,PVOID pv,DWORD cb);
91 WINBOOL WINAPI QueryWorkingSetEx(HANDLE hProcess,PVOID pv,DWORD cb);
92 WINBOOL WINAPI InitializeProcessForWsWatch(HANDLE hProcess);
93
94 typedef struct _PSAPI_WS_WATCH_INFORMATION {
95 LPVOID FaultingPc;
96 LPVOID FaultingVa;
97 } PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION;
98
99 WINBOOL WINAPI GetWsChanges(HANDLE hProcess,PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,DWORD cb);
100 DWORD WINAPI GetMappedFileNameW(HANDLE hProcess,LPVOID lpv,LPWSTR lpFilename,DWORD nSize);
101 DWORD WINAPI GetMappedFileNameA(HANDLE hProcess,LPVOID lpv,LPSTR lpFilename,DWORD nSize);
102 WINBOOL WINAPI EnumDeviceDrivers(LPVOID *lpImageBase,DWORD cb,LPDWORD lpcbNeeded);
103 DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID ImageBase,LPSTR lpBaseName,DWORD nSize);
104 DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID ImageBase,LPWSTR lpBaseName,DWORD nSize);
105 DWORD WINAPI GetDeviceDriverFileNameA(LPVOID ImageBase,LPSTR lpFilename,DWORD nSize);
106 DWORD WINAPI GetDeviceDriverFileNameW(LPVOID ImageBase,LPWSTR lpFilename,DWORD nSize);
107
108 typedef struct _PROCESS_MEMORY_COUNTERS {
109 DWORD cb;
110 DWORD PageFaultCount;
111 SIZE_T PeakWorkingSetSize;
112 SIZE_T WorkingSetSize;
113 SIZE_T QuotaPeakPagedPoolUsage;
114 SIZE_T QuotaPagedPoolUsage;
115 SIZE_T QuotaPeakNonPagedPoolUsage;
116 SIZE_T QuotaNonPagedPoolUsage;
117 SIZE_T PagefileUsage;
118 SIZE_T PeakPagefileUsage;
119 } PROCESS_MEMORY_COUNTERS;
120 typedef PROCESS_MEMORY_COUNTERS *PPROCESS_MEMORY_COUNTERS;
121
122 typedef struct _PROCESS_MEMORY_COUNTERS_EX {
123 DWORD cb;
124 DWORD PageFaultCount;
125 SIZE_T PeakWorkingSetSize;
126 SIZE_T WorkingSetSize;
127 SIZE_T QuotaPeakPagedPoolUsage;
128 SIZE_T QuotaPagedPoolUsage;
129 SIZE_T QuotaPeakNonPagedPoolUsage;
130 SIZE_T QuotaNonPagedPoolUsage;
131 SIZE_T PagefileUsage;
132 SIZE_T PeakPagefileUsage;
133 SIZE_T PrivateUsage;
134 } PROCESS_MEMORY_COUNTERS_EX;
135 typedef PROCESS_MEMORY_COUNTERS_EX *PPROCESS_MEMORY_COUNTERS_EX;
136
137 WINBOOL WINAPI GetProcessMemoryInfo(HANDLE Process,PPROCESS_MEMORY_COUNTERS ppsmemCounters,DWORD cb);
138
139 typedef struct _PERFORMANCE_INFORMATION {
140 DWORD cb;
141 SIZE_T CommitTotal;
142 SIZE_T CommitLimit;
143 SIZE_T CommitPeak;
144 SIZE_T PhysicalTotal;
145 SIZE_T PhysicalAvailable;
146 SIZE_T SystemCache;
147 SIZE_T KernelTotal;
148 SIZE_T KernelPaged;
149 SIZE_T KernelNonpaged;
150 SIZE_T PageSize;
151 DWORD HandleCount;
152 DWORD ProcessCount;
153 DWORD ThreadCount;
154 } PERFORMANCE_INFORMATION,*PPERFORMANCE_INFORMATION,PERFORMACE_INFORMATION,*PPERFORMACE_INFORMATION;
155
156 WINBOOL WINAPI GetPerformanceInfo (PPERFORMACE_INFORMATION pPerformanceInformation,DWORD cb);
157
158 typedef struct _ENUM_PAGE_FILE_INFORMATION {
159 DWORD cb;
160 DWORD Reserved;
161 SIZE_T TotalSize;
162 SIZE_T TotalInUse;
163 SIZE_T PeakUsage;
164 } ENUM_PAGE_FILE_INFORMATION,*PENUM_PAGE_FILE_INFORMATION;
165
166 typedef WINBOOL (*PENUM_PAGE_FILE_CALLBACKW) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCWSTR lpFilename);
167 typedef WINBOOL (*PENUM_PAGE_FILE_CALLBACKA) (LPVOID pContext,PENUM_PAGE_FILE_INFORMATION pPageFileInfo,LPCSTR lpFilename);
168
169 WINBOOL WINAPI EnumPageFilesW (PENUM_PAGE_FILE_CALLBACKW pCallBackRoutine,LPVOID pContext);
170 WINBOOL WINAPI EnumPageFilesA (PENUM_PAGE_FILE_CALLBACKA pCallBackRoutine,LPVOID pContext);
171 DWORD WINAPI GetProcessImageFileNameA(HANDLE hProcess,LPSTR lpImageFileName,DWORD nSize);
172 DWORD WINAPI GetProcessImageFileNameW(HANDLE hProcess,LPWSTR lpImageFileName,DWORD nSize);
173
174 typedef struct _PSAPI_WS_WATCH_INFORMATION_EX {
175 PSAPI_WS_WATCH_INFORMATION BasicInfo;
176 ULONG_PTR FaultingThreadId;
177 ULONG_PTR Flags;
178 } PSAPI_WS_WATCH_INFORMATION_EX, *PPSAPI_WS_WATCH_INFORMATION_EX;
179
180 WINBOOL WINAPI GetWsChangesEx(
181 HANDLE hProcess,
182 PPSAPI_WS_WATCH_INFORMATION_EX lpWatchInfoEx,
183 DWORD cb
184 );
185
186 WINBOOL WINAPI EnumProcessModulesEx(
187 HANDLE hProcess,
188 HMODULE *lphModule,
189 DWORD cb,
190 LPDWORD lpcbNeeded,
191 DWORD dwFilterFlag
192 );
193
194 typedef union _PSAPI_WORKING_SET_BLOCK {
195 ULONG_PTR Flags;
196 __C89_NAMELESS struct {
197 ULONG_PTR Protection :5;
198 ULONG_PTR ShareCount :3;
199 ULONG_PTR Shared :1;
200 ULONG_PTR Reserved :3;
201 #ifdef _WIN64
202 ULONG_PTR VirtualPage :52;
203 #else
204 ULONG_PTR VirtualPage :20;
205 #endif
206 } ;
207 } PSAPI_WORKING_SET_BLOCK, *PPSAPI_WORKING_SET_BLOCK;
208
209 typedef struct _PSAPI_WORKING_SET_INFORMATION {
210 ULONG_PTR NumberOfEntries;
211 PSAPI_WORKING_SET_BLOCK WorkingSetInfo[1];
212 } PSAPI_WORKING_SET_INFORMATION, *PPSAPI_WORKING_SET_INFORMATION;
213
214 typedef union _PSAPI_WORKING_SET_EX_BLOCK {
215 ULONG_PTR Flags;
216 __C89_NAMELESS union {
217 __C89_NAMELESS struct {
218 ULONG_PTR Valid : 1;
219 ULONG_PTR ShareCount : 3;
220 ULONG_PTR Win32Protection : 11;
221 ULONG_PTR Shared : 1;
222 ULONG_PTR Node : 6;
223 ULONG_PTR Locked : 1;
224 ULONG_PTR LargePage : 1;
225 ULONG_PTR Reserved : 7;
226 ULONG_PTR Bad : 1;
227 #ifdef _WIN64
228 ULONG_PTR ReservedUlong : 32;
229 #endif
230 };
231 struct {
232 ULONG_PTR Valid : 1;
233 ULONG_PTR Reserved0 : 14;
234 ULONG_PTR Shared : 1;
235 ULONG_PTR Reserved1 : 15;
236 ULONG_PTR Bad : 1;
237 #ifdef _WIN64
238 ULONG_PTR ReservedUlong : 32;
239 #endif
240 } Invalid;
241 };
242 } PSAPI_WORKING_SET_EX_BLOCK, *PPSAPI_WORKING_SET_EX_BLOCK;
243
244 typedef struct _PSAPI_WORKING_SET_EX_INFORMATION {
245 PVOID VirtualAddress;
246 PSAPI_WORKING_SET_EX_BLOCK VirtualAttributes;
247 } PSAPI_WORKING_SET_EX_INFORMATION, *PPSAPI_WORKING_SET_EX_INFORMATION;
248
249 #ifdef __cplusplus
250 }
251 #endif
252 #endif