]> git.proxmox.com Git - rustc.git/blob - src/vendor/winapi/src/psapi.rs
New upstream version 1.17.0+dfsg1
[rustc.git] / src / vendor / winapi / src / psapi.rs
1 // Copyright © 2015, skdltmxn
2 // Licensed under the MIT License <LICENSE.md>
3 //! API Prototypes and Definitions for PSAPI.DLL
4 pub const LIST_MODULES_DEFAULT: ::DWORD = 0x0;
5 pub const LIST_MODULES_32BIT: ::DWORD = 0x01;
6 pub const LIST_MODULES_64BIT: ::DWORD = 0x02;
7 pub const LIST_MODULES_ALL: ::DWORD = LIST_MODULES_32BIT | LIST_MODULES_64BIT;
8 STRUCT!{struct MODULEINFO {
9 lpBaseOfDll: ::LPVOID,
10 SizeOfImage: ::DWORD,
11 EntryPoint: ::LPVOID,
12 }}
13 pub type LPMODULEINFO = *mut MODULEINFO;
14 STRUCT!{struct PSAPI_WORKING_SET_BLOCK {
15 Flags: ::ULONG_PTR,
16 BitFields: ::ULONG_PTR,
17 }}
18 #[cfg(target_arch="x86")]
19 BITFIELD!(PSAPI_WORKING_SET_BLOCK BitFields: ::ULONG_PTR [
20 Protection set_Protection[0..5],
21 ShareCount set_ShareCount[5..8],
22 Shared set_Shared[8..9],
23 Reserved set_Reserved[9..12],
24 VirtualPage set_VirtualPage[12..32],
25 ]);
26 #[cfg(target_arch="x86_64")]
27 BITFIELD!(PSAPI_WORKING_SET_BLOCK BitFields: ::ULONG_PTR [
28 Protection set_Protection[0..5],
29 ShareCount set_ShareCount[5..8],
30 Shared set_Shared[8..9],
31 Reserved set_Reserved[9..12],
32 VirtualPage set_VirtualPage[12..64],
33 ]);
34 pub type PPSAPI_WORKING_SET_BLOCK = *mut PSAPI_WORKING_SET_BLOCK;
35 STRUCT!{struct PSAPI_WORKING_SET_INFORMATION {
36 NumberOfEntries: ::ULONG_PTR,
37 WorkingSetInfo: [PSAPI_WORKING_SET_BLOCK; 1],
38 }}
39 pub type PPSAPI_WORKING_SET_INFORMATION = *mut PSAPI_WORKING_SET_INFORMATION;
40 STRUCT!{struct PSAPI_WORKING_SET_EX_BLOCK_Invalid {
41 BitFields: ::ULONG_PTR,
42 }}
43 #[cfg(target_arch="x86")]
44 BITFIELD!(PSAPI_WORKING_SET_EX_BLOCK_Invalid BitFields: ::ULONG_PTR [
45 Valid set_Valid[0..1],
46 Reserved0 set_Reserved0[1..15],
47 Shared set_Shared[15..16],
48 Reserved1 set_Reserved1[16..31],
49 Bad set_Bad[31..32],
50 ]);
51 #[cfg(target_arch="x86_64")]
52 BITFIELD!(PSAPI_WORKING_SET_EX_BLOCK_Invalid BitFields: ::ULONG_PTR [
53 Valid set_Valid[0..1],
54 Reserved0 set_Reserved0[1..15],
55 Shared set_Shared[15..16],
56 Reserved1 set_Reserved1[16..31],
57 Bad set_Bad[31..32],
58 ReservedUlong set_ReservedUlong[32..64],
59 ]);
60 STRUCT!{struct PSAPI_WORKING_SET_EX_BLOCK {
61 Flags: ::ULONG_PTR,
62 BitFields: ::ULONG_PTR,
63 }}
64 #[cfg(target_arch="x86")]
65 BITFIELD!(PSAPI_WORKING_SET_EX_BLOCK BitFields: ::ULONG_PTR [
66 Valid set_Valid[0..1],
67 ShareCount set_ShareCount[1..4],
68 Win32Protection set_Win32Protection[4..15],
69 Shared set_Shared[15..16],
70 Node set_Node[16..22],
71 Locked set_Locked[22..23],
72 LargePage set_LargePage[23..24],
73 Reserved set_Reserved[24..31],
74 Bad set_Bad[31..32],
75 ]);
76 #[cfg(target_arch="x86_64")]
77 BITFIELD!(PSAPI_WORKING_SET_EX_BLOCK BitFields: ::ULONG_PTR [
78 Valid set_Valid[0..1],
79 ShareCount set_ShareCount[1..4],
80 Win32Protection set_Win32Protection[4..15],
81 Shared set_Shared[15..16],
82 Node set_Node[16..22],
83 Locked set_Locked[22..23],
84 LargePage set_LargePage[23..24],
85 Reserved set_Reserved[24..31],
86 Bad set_Bad[31..32],
87 ReservedUlong set_ReservedUlong[32..64],
88 ]);
89 UNION!(
90 PSAPI_WORKING_SET_EX_BLOCK, BitFields, Invalid, Invalid_mut, PSAPI_WORKING_SET_EX_BLOCK_Invalid
91 );
92 pub type PPSAPI_WORKING_SET_EX_BLOCK = *mut PSAPI_WORKING_SET_EX_BLOCK;
93 STRUCT!{struct PSAPI_WORKING_SET_EX_INFORMATION {
94 VirtualAddress: ::PVOID,
95 VirtualAttributes: PSAPI_WORKING_SET_EX_BLOCK,
96 }}
97 pub type PPSAPI_WORKING_SET_EX_INFORMATION = *mut PSAPI_WORKING_SET_EX_INFORMATION;
98 STRUCT!{struct PSAPI_WS_WATCH_INFORMATION {
99 FaultingPc: ::LPVOID,
100 FaultingVa: ::LPVOID,
101 }}
102 pub type PPSAPI_WS_WATCH_INFORMATION = *mut PSAPI_WS_WATCH_INFORMATION;
103 STRUCT!{struct PSAPI_WS_WATCH_INFORMATION_EX {
104 BasicInfo: PSAPI_WS_WATCH_INFORMATION,
105 FaultingThreadId: ::ULONG_PTR,
106 Flags: ::ULONG_PTR,
107 }}
108 pub type PPSAPI_WS_WATCH_INFORMATION_EX = *mut PSAPI_WS_WATCH_INFORMATION_EX;
109 STRUCT!{struct PROCESS_MEMORY_COUNTERS {
110 cb: ::DWORD,
111 PageFaultCount: ::DWORD,
112 PeakWorkingSetSize: ::SIZE_T,
113 WorkingSetSize: ::SIZE_T,
114 QuotaPeakPagedPoolUsage: ::SIZE_T,
115 QuotaPagedPoolUsage: ::SIZE_T,
116 QuotaPeakNonPagedPoolUsage: ::SIZE_T,
117 QuotaNonPagedPoolUsage: ::SIZE_T,
118 PagefileUsage: ::SIZE_T,
119 PeakPagefileUsage: ::SIZE_T,
120 }}
121 pub type PPROCESS_MEMORY_COUNTERS = *mut PROCESS_MEMORY_COUNTERS;
122 STRUCT!{struct PROCESS_MEMORY_COUNTERS_EX {
123 cb: ::DWORD,
124 PageFaultCount: ::DWORD,
125 PeakWorkingSetSize: ::SIZE_T,
126 WorkingSetSize: ::SIZE_T,
127 QuotaPeakPagedPoolUsage: ::SIZE_T,
128 QuotaPagedPoolUsage: ::SIZE_T,
129 QuotaPeakNonPagedPoolUsage: ::SIZE_T,
130 QuotaNonPagedPoolUsage: ::SIZE_T,
131 PagefileUsage: ::SIZE_T,
132 PeakPagefileUsage: ::SIZE_T,
133 PrivateUsage: ::SIZE_T,
134 }}
135 pub type PPROCESS_MEMORY_COUNTERS_EX = *mut PROCESS_MEMORY_COUNTERS_EX;
136 STRUCT!{struct PERFORMANCE_INFORMATION {
137 cb: ::DWORD,
138 CommitTotal: ::SIZE_T,
139 CommitLimit: ::SIZE_T,
140 CommitPeak: ::SIZE_T,
141 PhysicalTotal: ::SIZE_T,
142 PhysicalAvailable: ::SIZE_T,
143 SystemCache: ::SIZE_T,
144 KernelTotal: ::SIZE_T,
145 KernelPaged: ::SIZE_T,
146 KernelNonpaged: ::SIZE_T,
147 PageSize: ::SIZE_T,
148 HandleCount: ::DWORD,
149 ProcessCount: ::DWORD,
150 ThreadCount: ::DWORD,
151 }}
152 pub type PPERFORMANCE_INFORMATION = *mut PERFORMANCE_INFORMATION;
153 STRUCT!{struct ENUM_PAGE_FILE_INFORMATION {
154 cb: ::DWORD,
155 Reserved: ::DWORD,
156 TotalSize: ::SIZE_T,
157 TotalInUse: ::SIZE_T,
158 PeakUsage: ::SIZE_T,
159 }}
160 pub type PENUM_PAGE_FILE_INFORMATION = *mut ENUM_PAGE_FILE_INFORMATION;
161 pub type PENUM_PAGE_FILE_CALLBACKA = Option<unsafe extern "system" fn(
162 pContext: ::LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: ::LPCSTR,
163 ) -> ::BOOL>;
164 pub type PENUM_PAGE_FILE_CALLBACKW = Option<unsafe extern "system" fn(
165 pContext: ::LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: ::LPCWSTR,
166 ) -> ::BOOL>;