[CONSRV]
[reactos.git] / include / psdk / 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
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23
24 #ifndef RC_INVOKED
25
26 typedef struct _MODULEINFO {
27 LPVOID lpBaseOfDll;
28 DWORD SizeOfImage;
29 LPVOID EntryPoint;
30 } MODULEINFO,*LPMODULEINFO;
31
32 typedef struct _PSAPI_WS_WATCH_INFORMATION {
33 LPVOID FaultingPc;
34 LPVOID FaultingVa;
35 } PSAPI_WS_WATCH_INFORMATION,*PPSAPI_WS_WATCH_INFORMATION;
36
37 typedef struct _PROCESS_MEMORY_COUNTERS {
38 DWORD cb;
39 DWORD PageFaultCount;
40 DWORD PeakWorkingSetSize;
41 DWORD WorkingSetSize;
42 DWORD QuotaPeakPagedPoolUsage;
43 DWORD QuotaPagedPoolUsage;
44 DWORD QuotaPeakNonPagedPoolUsage;
45 DWORD QuotaNonPagedPoolUsage;
46 DWORD PagefileUsage;
47 DWORD PeakPagefileUsage;
48 } PROCESS_MEMORY_COUNTERS,*PPROCESS_MEMORY_COUNTERS;
49
50 typedef struct _PERFORMANCE_INFORMATION {
51 DWORD cb;
52 SIZE_T CommitTotal;
53 SIZE_T CommitLimit;
54 SIZE_T CommitPeak;
55 SIZE_T PhysicalTotal;
56 SIZE_T PhysicalAvailable;
57 SIZE_T SystemCache;
58 SIZE_T KernelTotal;
59 SIZE_T KernelPaged;
60 SIZE_T KernelNonpaged;
61 SIZE_T PageSize;
62 DWORD HandleCount;
63 DWORD ProcessCount;
64 DWORD ThreadCount;
65 } PERFORMANCE_INFORMATION, *PPERFORMANCE_INFORMATION;
66
67 typedef struct _ENUM_PAGE_FILE_INFORMATION {
68 DWORD cb;
69 DWORD Reserved;
70 SIZE_T TotalSize;
71 SIZE_T TotalInUse;
72 SIZE_T PeakUsage;
73 } ENUM_PAGE_FILE_INFORMATION, *PENUM_PAGE_FILE_INFORMATION;
74
75 typedef BOOL (CALLBACK *PENUM_PAGE_FILE_CALLBACKA)(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCSTR);
76 typedef BOOL (CALLBACK *PENUM_PAGE_FILE_CALLBACKW)(LPVOID, PENUM_PAGE_FILE_INFORMATION, LPCWSTR);
77
78 /* Grouped by application,not in alphabetical order. */
79 BOOL WINAPI EnumProcesses(DWORD *,DWORD,DWORD *);
80 BOOL WINAPI EnumProcessModules(HANDLE,HMODULE *,DWORD,LPDWORD);
81 BOOL WINAPI EnumPageFilesA(PENUM_PAGE_FILE_CALLBACKA,LPVOID);
82 BOOL WINAPI EnumPageFilesW(PENUM_PAGE_FILE_CALLBACKW,LPVOID);
83 DWORD WINAPI GetModuleBaseNameA(HANDLE,HMODULE,LPSTR,DWORD);
84 DWORD WINAPI GetModuleBaseNameW(HANDLE,HMODULE,LPWSTR,DWORD);
85 DWORD WINAPI GetModuleFileNameExA(HANDLE,HMODULE,LPSTR,DWORD);
86 DWORD WINAPI GetModuleFileNameExW(HANDLE,HMODULE,LPWSTR,DWORD);
87 BOOL WINAPI GetModuleInformation(HANDLE,HMODULE,LPMODULEINFO,DWORD);
88 BOOL WINAPI EmptyWorkingSet(HANDLE);
89 BOOL WINAPI QueryWorkingSet(HANDLE,PVOID,DWORD);
90 BOOL WINAPI InitializeProcessForWsWatch(HANDLE);
91 BOOL WINAPI GetWsChanges(HANDLE,PPSAPI_WS_WATCH_INFORMATION,DWORD);
92 DWORD WINAPI GetMappedFileNameW(HANDLE,LPVOID,LPWSTR,DWORD);
93 DWORD WINAPI GetMappedFileNameA(HANDLE,LPVOID,LPSTR,DWORD);
94 BOOL WINAPI EnumDeviceDrivers(LPVOID *,DWORD,LPDWORD);
95 DWORD WINAPI GetDeviceDriverBaseNameA(LPVOID,LPSTR,DWORD);
96 DWORD WINAPI GetDeviceDriverBaseNameW(LPVOID,LPWSTR,DWORD);
97 DWORD WINAPI GetDeviceDriverFileNameA(LPVOID,LPSTR,DWORD);
98 DWORD WINAPI GetDeviceDriverFileNameW(LPVOID,LPWSTR,DWORD);
99 BOOL WINAPI GetProcessMemoryInfo(HANDLE,PPROCESS_MEMORY_COUNTERS,DWORD);
100 BOOL WINAPI GetPerformanceInfo(PPERFORMANCE_INFORMATION,DWORD);
101 DWORD WINAPI GetProcessImageFileNameW(HANDLE,LPWSTR,DWORD);
102 DWORD WINAPI GetProcessImageFileNameA(HANDLE,LPSTR,DWORD);
103
104 #endif /* not RC_INVOKED */
105
106 #ifdef UNICODE
107 #define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKW
108 #define EnumPageFiles EnumPageFilesW
109 #define GetModuleBaseName GetModuleBaseNameW
110 #define GetModuleFileNameEx GetModuleFileNameExW
111 #define GetMappedFilenameEx GetMappedFilenameExW
112 #define GetDeviceDriverBaseName GetDeviceDriverBaseNameW
113 #define GetDeviceDriverFileName GetDeviceDriverFileNameW
114 #define GetProcessImageFileName GetProcessImageFileNameW
115 #else
116 #define PENUM_PAGE_FILE_CALLBACK PENUM_PAGE_FILE_CALLBACKA
117 #define EnumPageFiles EnumPageFilesA
118 #define GetModuleBaseName GetModuleBaseNameA
119 #define GetModuleFileNameEx GetModuleFileNameExA
120 #define GetMappedFilenameEx GetMappedFilenameExA
121 #define GetDeviceDriverBaseName GetDeviceDriverBaseNameA
122 #define GetDeviceDriverFileName GetDeviceDriverFileNameA
123 #define GetProcessImageFileName GetProcessImageFileNameA
124 #endif
125
126 #ifdef __cplusplus
127 }
128 #endif
129
130 #endif /* _PSAPI_H */
131