Move MS DDK files to DDK
[reactos.git] / reactos / w32api / include / psapi.h
1 /*
2 psapi.h - Include file for PSAPI.DLL APIs
3
4 Written by Mumit Khan <khan@nanotech.wisc.edu>
5
6 This file is part of a free library for the Win32 API.
7
8 NOTE: This strictly does not belong in the Win32 API since it's
9 really part of Platform SDK. However,GDB needs it and we might
10 as well provide it here.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
16 */
17 #ifndef _PSAPI_H
18 #define _PSAPI_H
19 #if __GNUC__ >=3
20 #pragma GCC system_header
21 #endif
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #ifndef RC_INVOKED
28
29 typedef struct _MODULEINFO {
30 LPVOID lpBaseOfDll;
31 DWORD SizeOfImage;
32 LPVOID EntryPoint;
33 } MODULEINFO,*LPMODULEINFO;
34
35 typedef struct _PSAPI_WS_WATCH_INFORMATION {
36 LPVOID FaultingPc;
37 LPVOID FaultingVa;
38 } PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION;
39
40 typedef struct _PROCESS_MEMORY_COUNTERS {
41 DWORD cb;
42 DWORD PageFaultCount;
43 DWORD PeakWorkingSetSize;
44 DWORD WorkingSetSize;
45 DWORD QuotaPeakPagedPoolUsage;
46 DWORD QuotaPagedPoolUsage;
47 DWORD QuotaPeakNonPagedPoolUsage;
48 DWORD QuotaNonPagedPoolUsage;
49 DWORD PagefileUsage;
50 DWORD PeakPagefileUsage;
51 } PROCESS_MEMORY_COUNTERS,*PPROCESS_MEMORY_COUNTERS;
52
53 typedef struct _PERFORMANCE_INFORMATION {
54 DWORD cb;
55 SIZE_T CommitTotal;
56 SIZE_T CommitLimit;
57 SIZE_T CommitPeak;
58 SIZE_T PhysicalTotal;
59 SIZE_T PhysicalAvailable;
60 SIZE_T SystemCache;
61 SIZE_T KernelTotal;
62 SIZE_T KernelPaged;
63 SIZE_T KernelNonpaged;
64 SIZE_T PageSize;
65 DWORD HandleCount;
66 DWORD ProcessCount;
67 DWORD ThreadCount;
68 } PERFORMANCE_INFORMATION, *PPERFORMANCE_INFORMATION;
69
70 typedef struct _ENUM_PAGE_FILE_INFORMATION {
71 DWORD cb;
72 DWORD Reserved;
73 SIZE_T TotalSize;
74 SIZE_T TotalInUse;
75 SIZE_T PeakUsage;
76 } ENUM_PAGE_FILE_INFORMATION, *PENUM_PAGE_FILE_INFORMATION;
77
78 typedef BOOL (*PENUM_PAGE_FILE_CALLBACKA)(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR);
79 typedef BOOL (*PENUM_PAGE_FILE_CALLBACKW)(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR);
80
81 /* Grouped by application,not in alphabetical order. */
82 BOOL WINAPI EnumProcesses(DWORD *,DWORD,DWORD *);
83 BOOL WINAPI EnumProcessModules(HANDLE,HMODULE *,DWORD,LPDWORD);
84 BOOL WINAPI EnumPageFilesA(PENUM_PAGE_FILE_CALLBACKA,LPVOID);
85 BOOL WINAPI EnumPageFilesW(PENUM_PAGE_FILE_CALLBACKW,LPVOID);
86 DWORD WINAPI GetModuleBaseNameA(HANDLE,HMODULE,LPSTR,DWORD);
87 DWORD WINAPI GetModuleBaseNameW(HANDLE,HMODULE,LPWSTR,DWORD);
88 DWORD WINAPI GetModuleFileNameExA(HANDLE,HMODULE,LPSTR,DWORD);
89 DWORD WINAPI GetModuleFileNameExW(HANDLE,HMODULE,LPWSTR,DWORD);
90 BOOL WINAPI GetModuleInformation(HANDLE,HMODULE,LPMODULEINFO,DWORD);
91 BOOL WINAPI EmptyWorkingSet(HANDLE);
92 BOOL WINAPI QueryWorkingSet(HANDLE,PVOID,DWORD);
93 BOOL WINAPI InitializeProcessForWsWatch(HANDLE);
94 BOOL WINAPI GetWsChanges(HANDLE,PPSAPI_WS_WATCH_INFORMATION,DWORD);
95 DWORD WINAPI GetMappedFileNameW(HANDLE,LPVOID,LPWSTR,DWORD);
96 DWORD WINAPI GetMappedFileNameA(HANDLE,LPVOID,LPSTR,DWORD);
97 BOOL WINAPI EnumDeviceDrivers(LPVOID *,DWORD,LPDWORD);
98 DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID,LPSTR,DWORD);
99 DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID,LPWSTR,DWORD);
100 DWORD WINAPI GetDeviceDriverFileNameA(LPVOID,LPSTR,DWORD);
101 DWORD WINAPI GetDeviceDriverFileNameW(LPVOID,LPWSTR,DWORD);
102 BOOL WINAPI GetProcessMemoryInfo(HANDLE,PPROCESS_MEMORY_COUNTERS,DWORD);
103 BOOL WINAPI GetPerformanceInfo(PPERFORMANCE_INFORMATION,DWORD);
104 DWORD WINAPI GetProcessImageFileNameW(HANDLE,LPWSTR,DWORD);
105 DWORD WINAPI GetProcessImageFileNameA(HANDLE,LPSTR,DWORD);
106
107 #endif /* not RC_INVOKED */
108
109 #ifdef UNICODE
110 #define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKW
111 #define EnumPageFiles EnumPageFilesW
112 #define GetModuleBaseName GetModuleBaseNameW
113 #define GetModuleFileNameEx GetModuleFileNameExW
114 #define GetMappedFilenameEx GetMappedFilenameExW
115 #define GetDeviceDriverBaseName GetDeviceDriverBaseNameW
116 #define GetDeviceDriverFileName GetDeviceDriverFileNameW
117 #define GetProcessImageFileName GetProcessImageFileNameW
118 #else
119 #define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKA
120 #define EnumPageFiles EnumPageFilesA
121 #define GetModuleBaseName GetModuleBaseNameA
122 #define GetModuleFileNameEx GetModuleFileNameExA
123 #define GetMappedFilenameEx GetMappedFilenameExA
124 #define GetDeviceDriverBaseName GetDeviceDriverBaseNameA
125 #define GetDeviceDriverFileName GetDeviceDriverFileNameA
126 #define GetProcessImageFileName GetProcessImageFileNameA
127 #endif
128
129 #ifdef __cplusplus
130 }
131 #endif
132
133 #endif /* _PSAPI_H */
134