]> git.proxmox.com Git - rustc.git/blob - vendor/windows-sys/src/Windows/Win32/System/JobObjects/mod.rs
New upstream version 1.61.0+dfsg1
[rustc.git] / vendor / windows-sys / src / Windows / Win32 / System / JobObjects / mod.rs
1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {
4 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
5 #[cfg(feature = "Win32_Foundation")]
6 pub fn AssignProcessToJobObject(hjob: super::super::Foundation::HANDLE, hprocess: super::super::Foundation::HANDLE) -> super::super::Foundation::BOOL;
7 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation', 'Win32_Security'*"]
8 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
9 pub fn CreateJobObjectA(lpjobattributes: *const super::super::Security::SECURITY_ATTRIBUTES, lpname: super::super::Foundation::PSTR) -> super::super::Foundation::HANDLE;
10 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation', 'Win32_Security'*"]
11 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
12 pub fn CreateJobObjectW(lpjobattributes: *const super::super::Security::SECURITY_ATTRIBUTES, lpname: super::super::Foundation::PWSTR) -> super::super::Foundation::HANDLE;
13 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
14 #[cfg(feature = "Win32_Foundation")]
15 pub fn CreateJobSet(numjob: u32, userjobset: *const JOB_SET_ARRAY, flags: u32) -> super::super::Foundation::BOOL;
16 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
17 pub fn FreeMemoryJobObject(buffer: *const ::core::ffi::c_void);
18 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
19 #[cfg(feature = "Win32_Foundation")]
20 pub fn IsProcessInJob(processhandle: super::super::Foundation::HANDLE, jobhandle: super::super::Foundation::HANDLE, result: *mut super::super::Foundation::BOOL) -> super::super::Foundation::BOOL;
21 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
22 #[cfg(feature = "Win32_Foundation")]
23 pub fn OpenJobObjectA(dwdesiredaccess: u32, binherithandle: super::super::Foundation::BOOL, lpname: super::super::Foundation::PSTR) -> super::super::Foundation::HANDLE;
24 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
25 #[cfg(feature = "Win32_Foundation")]
26 pub fn OpenJobObjectW(dwdesiredaccess: u32, binherithandle: super::super::Foundation::BOOL, lpname: super::super::Foundation::PWSTR) -> super::super::Foundation::HANDLE;
27 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
28 #[cfg(feature = "Win32_Foundation")]
29 pub fn QueryInformationJobObject(hjob: super::super::Foundation::HANDLE, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *mut ::core::ffi::c_void, cbjobobjectinformationlength: u32, lpreturnlength: *mut u32) -> super::super::Foundation::BOOL;
30 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
31 #[cfg(feature = "Win32_Foundation")]
32 pub fn QueryIoRateControlInformationJobObject(hjob: super::super::Foundation::HANDLE, volumename: super::super::Foundation::PWSTR, infoblocks: *mut *mut JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoblockcount: *mut u32) -> u32;
33 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
34 #[cfg(feature = "Win32_Foundation")]
35 pub fn SetInformationJobObject(hjob: super::super::Foundation::HANDLE, jobobjectinformationclass: JOBOBJECTINFOCLASS, lpjobobjectinformation: *const ::core::ffi::c_void, cbjobobjectinformationlength: u32) -> super::super::Foundation::BOOL;
36 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
37 #[cfg(feature = "Win32_Foundation")]
38 pub fn SetIoRateControlInformationJobObject(hjob: super::super::Foundation::HANDLE, ioratecontrolinfo: *const JOBOBJECT_IO_RATE_CONTROL_INFORMATION) -> u32;
39 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
40 #[cfg(feature = "Win32_Foundation")]
41 pub fn TerminateJobObject(hjob: super::super::Foundation::HANDLE, uexitcode: u32) -> super::super::Foundation::BOOL;
42 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
43 #[cfg(feature = "Win32_Foundation")]
44 pub fn UserHandleGrantAccess(huserhandle: super::super::Foundation::HANDLE, hjob: super::super::Foundation::HANDLE, bgrant: super::super::Foundation::BOOL) -> super::super::Foundation::BOOL;
45 }
46 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
47 pub type JOBOBJECTINFOCLASS = i32;
48 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
49 pub const JobObjectBasicAccountingInformation: JOBOBJECTINFOCLASS = 1i32;
50 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
51 pub const JobObjectBasicLimitInformation: JOBOBJECTINFOCLASS = 2i32;
52 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
53 pub const JobObjectBasicProcessIdList: JOBOBJECTINFOCLASS = 3i32;
54 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
55 pub const JobObjectBasicUIRestrictions: JOBOBJECTINFOCLASS = 4i32;
56 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
57 pub const JobObjectSecurityLimitInformation: JOBOBJECTINFOCLASS = 5i32;
58 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
59 pub const JobObjectEndOfJobTimeInformation: JOBOBJECTINFOCLASS = 6i32;
60 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
61 pub const JobObjectAssociateCompletionPortInformation: JOBOBJECTINFOCLASS = 7i32;
62 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
63 pub const JobObjectBasicAndIoAccountingInformation: JOBOBJECTINFOCLASS = 8i32;
64 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
65 pub const JobObjectExtendedLimitInformation: JOBOBJECTINFOCLASS = 9i32;
66 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
67 pub const JobObjectJobSetInformation: JOBOBJECTINFOCLASS = 10i32;
68 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
69 pub const JobObjectGroupInformation: JOBOBJECTINFOCLASS = 11i32;
70 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
71 pub const JobObjectNotificationLimitInformation: JOBOBJECTINFOCLASS = 12i32;
72 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
73 pub const JobObjectLimitViolationInformation: JOBOBJECTINFOCLASS = 13i32;
74 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
75 pub const JobObjectGroupInformationEx: JOBOBJECTINFOCLASS = 14i32;
76 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
77 pub const JobObjectCpuRateControlInformation: JOBOBJECTINFOCLASS = 15i32;
78 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
79 pub const JobObjectCompletionFilter: JOBOBJECTINFOCLASS = 16i32;
80 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
81 pub const JobObjectCompletionCounter: JOBOBJECTINFOCLASS = 17i32;
82 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
83 pub const JobObjectReserved1Information: JOBOBJECTINFOCLASS = 18i32;
84 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
85 pub const JobObjectReserved2Information: JOBOBJECTINFOCLASS = 19i32;
86 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
87 pub const JobObjectReserved3Information: JOBOBJECTINFOCLASS = 20i32;
88 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
89 pub const JobObjectReserved4Information: JOBOBJECTINFOCLASS = 21i32;
90 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
91 pub const JobObjectReserved5Information: JOBOBJECTINFOCLASS = 22i32;
92 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
93 pub const JobObjectReserved6Information: JOBOBJECTINFOCLASS = 23i32;
94 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
95 pub const JobObjectReserved7Information: JOBOBJECTINFOCLASS = 24i32;
96 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
97 pub const JobObjectReserved8Information: JOBOBJECTINFOCLASS = 25i32;
98 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
99 pub const JobObjectReserved9Information: JOBOBJECTINFOCLASS = 26i32;
100 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
101 pub const JobObjectReserved10Information: JOBOBJECTINFOCLASS = 27i32;
102 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
103 pub const JobObjectReserved11Information: JOBOBJECTINFOCLASS = 28i32;
104 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
105 pub const JobObjectReserved12Information: JOBOBJECTINFOCLASS = 29i32;
106 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
107 pub const JobObjectReserved13Information: JOBOBJECTINFOCLASS = 30i32;
108 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
109 pub const JobObjectReserved14Information: JOBOBJECTINFOCLASS = 31i32;
110 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
111 pub const JobObjectNetRateControlInformation: JOBOBJECTINFOCLASS = 32i32;
112 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
113 pub const JobObjectNotificationLimitInformation2: JOBOBJECTINFOCLASS = 33i32;
114 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
115 pub const JobObjectLimitViolationInformation2: JOBOBJECTINFOCLASS = 34i32;
116 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
117 pub const JobObjectCreateSilo: JOBOBJECTINFOCLASS = 35i32;
118 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
119 pub const JobObjectSiloBasicInformation: JOBOBJECTINFOCLASS = 36i32;
120 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
121 pub const JobObjectReserved15Information: JOBOBJECTINFOCLASS = 37i32;
122 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
123 pub const JobObjectReserved16Information: JOBOBJECTINFOCLASS = 38i32;
124 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
125 pub const JobObjectReserved17Information: JOBOBJECTINFOCLASS = 39i32;
126 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
127 pub const JobObjectReserved18Information: JOBOBJECTINFOCLASS = 40i32;
128 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
129 pub const JobObjectReserved19Information: JOBOBJECTINFOCLASS = 41i32;
130 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
131 pub const JobObjectReserved20Information: JOBOBJECTINFOCLASS = 42i32;
132 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
133 pub const JobObjectReserved21Information: JOBOBJECTINFOCLASS = 43i32;
134 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
135 pub const JobObjectReserved22Information: JOBOBJECTINFOCLASS = 44i32;
136 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
137 pub const JobObjectReserved23Information: JOBOBJECTINFOCLASS = 45i32;
138 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
139 pub const JobObjectReserved24Information: JOBOBJECTINFOCLASS = 46i32;
140 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
141 pub const JobObjectReserved25Information: JOBOBJECTINFOCLASS = 47i32;
142 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
143 pub const MaxJobObjectInfoClass: JOBOBJECTINFOCLASS = 48i32;
144 #[repr(C)]
145 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
146 #[cfg(feature = "Win32_Foundation")]
147 pub struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
148 pub CompletionKey: *mut ::core::ffi::c_void,
149 pub CompletionPort: super::super::Foundation::HANDLE,
150 }
151 #[cfg(feature = "Win32_Foundation")]
152 impl ::core::marker::Copy for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {}
153 #[cfg(feature = "Win32_Foundation")]
154 impl ::core::clone::Clone for JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
155 fn clone(&self) -> Self {
156 *self
157 }
158 }
159 #[repr(C)]
160 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
161 pub struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
162 pub TotalUserTime: i64,
163 pub TotalKernelTime: i64,
164 pub ThisPeriodTotalUserTime: i64,
165 pub ThisPeriodTotalKernelTime: i64,
166 pub TotalPageFaultCount: u32,
167 pub TotalProcesses: u32,
168 pub ActiveProcesses: u32,
169 pub TotalTerminatedProcesses: u32,
170 }
171 impl ::core::marker::Copy for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {}
172 impl ::core::clone::Clone for JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
173 fn clone(&self) -> Self {
174 *self
175 }
176 }
177 #[repr(C)]
178 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_System_Threading'*"]
179 #[cfg(feature = "Win32_System_Threading")]
180 pub struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
181 pub BasicInfo: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,
182 pub IoInfo: super::Threading::IO_COUNTERS,
183 }
184 #[cfg(feature = "Win32_System_Threading")]
185 impl ::core::marker::Copy for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {}
186 #[cfg(feature = "Win32_System_Threading")]
187 impl ::core::clone::Clone for JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
188 fn clone(&self) -> Self {
189 *self
190 }
191 }
192 #[repr(C)]
193 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
194 pub struct JOBOBJECT_BASIC_LIMIT_INFORMATION {
195 pub PerProcessUserTimeLimit: i64,
196 pub PerJobUserTimeLimit: i64,
197 pub LimitFlags: JOB_OBJECT_LIMIT,
198 pub MinimumWorkingSetSize: usize,
199 pub MaximumWorkingSetSize: usize,
200 pub ActiveProcessLimit: u32,
201 pub Affinity: usize,
202 pub PriorityClass: u32,
203 pub SchedulingClass: u32,
204 }
205 impl ::core::marker::Copy for JOBOBJECT_BASIC_LIMIT_INFORMATION {}
206 impl ::core::clone::Clone for JOBOBJECT_BASIC_LIMIT_INFORMATION {
207 fn clone(&self) -> Self {
208 *self
209 }
210 }
211 #[repr(C)]
212 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
213 pub struct JOBOBJECT_BASIC_PROCESS_ID_LIST {
214 pub NumberOfAssignedProcesses: u32,
215 pub NumberOfProcessIdsInList: u32,
216 pub ProcessIdList: [usize; 1],
217 }
218 impl ::core::marker::Copy for JOBOBJECT_BASIC_PROCESS_ID_LIST {}
219 impl ::core::clone::Clone for JOBOBJECT_BASIC_PROCESS_ID_LIST {
220 fn clone(&self) -> Self {
221 *self
222 }
223 }
224 #[repr(C)]
225 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
226 pub struct JOBOBJECT_BASIC_UI_RESTRICTIONS {
227 pub UIRestrictionsClass: JOB_OBJECT_UILIMIT,
228 }
229 impl ::core::marker::Copy for JOBOBJECT_BASIC_UI_RESTRICTIONS {}
230 impl ::core::clone::Clone for JOBOBJECT_BASIC_UI_RESTRICTIONS {
231 fn clone(&self) -> Self {
232 *self
233 }
234 }
235 #[repr(C)]
236 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
237 pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
238 pub ControlFlags: JOB_OBJECT_CPU_RATE_CONTROL,
239 pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0,
240 }
241 impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {}
242 impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
243 fn clone(&self) -> Self {
244 *self
245 }
246 }
247 #[repr(C)]
248 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
249 pub union JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
250 pub CpuRate: u32,
251 pub Weight: u32,
252 pub Anonymous: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0,
253 }
254 impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {}
255 impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0 {
256 fn clone(&self) -> Self {
257 *self
258 }
259 }
260 #[repr(C)]
261 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
262 pub struct JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
263 pub MinRate: u16,
264 pub MaxRate: u16,
265 }
266 impl ::core::marker::Copy for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {}
267 impl ::core::clone::Clone for JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_0_0 {
268 fn clone(&self) -> Self {
269 *self
270 }
271 }
272 #[repr(C)]
273 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
274 pub struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
275 pub EndOfJobTimeAction: JOB_OBJECT_TERMINATE_AT_END_ACTION,
276 }
277 impl ::core::marker::Copy for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {}
278 impl ::core::clone::Clone for JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
279 fn clone(&self) -> Self {
280 *self
281 }
282 }
283 #[repr(C)]
284 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_System_Threading'*"]
285 #[cfg(feature = "Win32_System_Threading")]
286 pub struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
287 pub BasicLimitInformation: JOBOBJECT_BASIC_LIMIT_INFORMATION,
288 pub IoInfo: super::Threading::IO_COUNTERS,
289 pub ProcessMemoryLimit: usize,
290 pub JobMemoryLimit: usize,
291 pub PeakProcessMemoryUsed: usize,
292 pub PeakJobMemoryUsed: usize,
293 }
294 #[cfg(feature = "Win32_System_Threading")]
295 impl ::core::marker::Copy for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {}
296 #[cfg(feature = "Win32_System_Threading")]
297 impl ::core::clone::Clone for JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
298 fn clone(&self) -> Self {
299 *self
300 }
301 }
302 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
303 pub type JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = i32;
304 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
305 pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 1i32;
306 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
307 pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_DISABLE: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 2i32;
308 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
309 pub const JOBOBJECT_IO_ATTRIBUTION_CONTROL_VALID_FLAGS: JOBOBJECT_IO_ATTRIBUTION_CONTROL_FLAGS = 3i32;
310 #[repr(C)]
311 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
312 pub struct JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
313 pub ControlFlags: u32,
314 pub ReadStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
315 pub WriteStats: JOBOBJECT_IO_ATTRIBUTION_STATS,
316 }
317 impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {}
318 impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
319 fn clone(&self) -> Self {
320 *self
321 }
322 }
323 #[repr(C)]
324 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
325 pub struct JOBOBJECT_IO_ATTRIBUTION_STATS {
326 pub IoCount: usize,
327 pub TotalNonOverlappedQueueTime: u64,
328 pub TotalNonOverlappedServiceTime: u64,
329 pub TotalSize: u64,
330 }
331 impl ::core::marker::Copy for JOBOBJECT_IO_ATTRIBUTION_STATS {}
332 impl ::core::clone::Clone for JOBOBJECT_IO_ATTRIBUTION_STATS {
333 fn clone(&self) -> Self {
334 *self
335 }
336 }
337 #[repr(C)]
338 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
339 #[cfg(feature = "Win32_Foundation")]
340 pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
341 pub MaxIops: i64,
342 pub MaxBandwidth: i64,
343 pub ReservationIops: i64,
344 pub VolumeName: super::super::Foundation::PWSTR,
345 pub BaseIoSize: u32,
346 pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
347 }
348 #[cfg(feature = "Win32_Foundation")]
349 impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {}
350 #[cfg(feature = "Win32_Foundation")]
351 impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION {
352 fn clone(&self) -> Self {
353 *self
354 }
355 }
356 #[repr(C)]
357 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
358 #[cfg(feature = "Win32_Foundation")]
359 pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE {
360 pub MaxIops: i64,
361 pub MaxBandwidth: i64,
362 pub ReservationIops: i64,
363 pub VolumeName: super::super::Foundation::PWSTR,
364 pub BaseIoSize: u32,
365 pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
366 pub VolumeNameLength: u16,
367 }
368 #[cfg(feature = "Win32_Foundation")]
369 impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE {}
370 #[cfg(feature = "Win32_Foundation")]
371 impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE {
372 fn clone(&self) -> Self {
373 *self
374 }
375 }
376 #[repr(C)]
377 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
378 #[cfg(feature = "Win32_Foundation")]
379 pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
380 pub MaxIops: i64,
381 pub MaxBandwidth: i64,
382 pub ReservationIops: i64,
383 pub VolumeName: super::super::Foundation::PWSTR,
384 pub BaseIoSize: u32,
385 pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
386 pub VolumeNameLength: u16,
387 pub CriticalReservationIops: i64,
388 pub ReservationBandwidth: i64,
389 pub CriticalReservationBandwidth: i64,
390 pub MaxTimePercent: i64,
391 pub ReservationTimePercent: i64,
392 pub CriticalReservationTimePercent: i64,
393 }
394 #[cfg(feature = "Win32_Foundation")]
395 impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {}
396 #[cfg(feature = "Win32_Foundation")]
397 impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V2 {
398 fn clone(&self) -> Self {
399 *self
400 }
401 }
402 #[repr(C)]
403 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
404 #[cfg(feature = "Win32_Foundation")]
405 pub struct JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
406 pub MaxIops: i64,
407 pub MaxBandwidth: i64,
408 pub ReservationIops: i64,
409 pub VolumeName: super::super::Foundation::PWSTR,
410 pub BaseIoSize: u32,
411 pub ControlFlags: JOB_OBJECT_IO_RATE_CONTROL_FLAGS,
412 pub VolumeNameLength: u16,
413 pub CriticalReservationIops: i64,
414 pub ReservationBandwidth: i64,
415 pub CriticalReservationBandwidth: i64,
416 pub MaxTimePercent: i64,
417 pub ReservationTimePercent: i64,
418 pub CriticalReservationTimePercent: i64,
419 pub SoftMaxIops: i64,
420 pub SoftMaxBandwidth: i64,
421 pub SoftMaxTimePercent: i64,
422 pub LimitExcessNotifyIops: i64,
423 pub LimitExcessNotifyBandwidth: i64,
424 pub LimitExcessNotifyTimePercent: i64,
425 }
426 #[cfg(feature = "Win32_Foundation")]
427 impl ::core::marker::Copy for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {}
428 #[cfg(feature = "Win32_Foundation")]
429 impl ::core::clone::Clone for JOBOBJECT_IO_RATE_CONTROL_INFORMATION_NATIVE_V3 {
430 fn clone(&self) -> Self {
431 *self
432 }
433 }
434 #[repr(C)]
435 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
436 pub struct JOBOBJECT_JOBSET_INFORMATION {
437 pub MemberLevel: u32,
438 }
439 impl ::core::marker::Copy for JOBOBJECT_JOBSET_INFORMATION {}
440 impl ::core::clone::Clone for JOBOBJECT_JOBSET_INFORMATION {
441 fn clone(&self) -> Self {
442 *self
443 }
444 }
445 #[repr(C)]
446 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
447 pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
448 pub LimitFlags: JOB_OBJECT_LIMIT,
449 pub ViolationLimitFlags: JOB_OBJECT_LIMIT,
450 pub IoReadBytes: u64,
451 pub IoReadBytesLimit: u64,
452 pub IoWriteBytes: u64,
453 pub IoWriteBytesLimit: u64,
454 pub PerJobUserTime: i64,
455 pub PerJobUserTimeLimit: i64,
456 pub JobMemory: u64,
457 pub JobMemoryLimit: u64,
458 pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
459 pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
460 }
461 impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {}
462 impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION {
463 fn clone(&self) -> Self {
464 *self
465 }
466 }
467 #[repr(C)]
468 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
469 pub struct JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
470 pub LimitFlags: JOB_OBJECT_LIMIT,
471 pub ViolationLimitFlags: JOB_OBJECT_LIMIT,
472 pub IoReadBytes: u64,
473 pub IoReadBytesLimit: u64,
474 pub IoWriteBytes: u64,
475 pub IoWriteBytesLimit: u64,
476 pub PerJobUserTime: i64,
477 pub PerJobUserTimeLimit: i64,
478 pub JobMemory: u64,
479 pub Anonymous1: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0,
480 pub Anonymous2: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1,
481 pub Anonymous3: JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2,
482 pub JobLowMemoryLimit: u64,
483 pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
484 pub IoRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
485 pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
486 pub NetRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
487 }
488 impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {}
489 impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 {
490 fn clone(&self) -> Self {
491 *self
492 }
493 }
494 #[repr(C)]
495 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
496 pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
497 pub JobHighMemoryLimit: u64,
498 pub JobMemoryLimit: u64,
499 }
500 impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {}
501 impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_0 {
502 fn clone(&self) -> Self {
503 *self
504 }
505 }
506 #[repr(C)]
507 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
508 pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
509 pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
510 pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
511 }
512 impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {}
513 impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_1 {
514 fn clone(&self) -> Self {
515 *self
516 }
517 }
518 #[repr(C)]
519 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
520 pub union JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
521 pub RateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
522 pub CpuRateControlToleranceLimit: JOBOBJECT_RATE_CONTROL_TOLERANCE,
523 }
524 impl ::core::marker::Copy for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {}
525 impl ::core::clone::Clone for JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2_2 {
526 fn clone(&self) -> Self {
527 *self
528 }
529 }
530 #[repr(C)]
531 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
532 pub struct JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
533 pub MaxBandwidth: u64,
534 pub ControlFlags: JOB_OBJECT_NET_RATE_CONTROL_FLAGS,
535 pub DscpTag: u8,
536 }
537 impl ::core::marker::Copy for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {}
538 impl ::core::clone::Clone for JOBOBJECT_NET_RATE_CONTROL_INFORMATION {
539 fn clone(&self) -> Self {
540 *self
541 }
542 }
543 #[repr(C)]
544 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
545 pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
546 pub IoReadBytesLimit: u64,
547 pub IoWriteBytesLimit: u64,
548 pub PerJobUserTimeLimit: i64,
549 pub JobMemoryLimit: u64,
550 pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
551 pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
552 pub LimitFlags: JOB_OBJECT_LIMIT,
553 }
554 impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {}
555 impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION {
556 fn clone(&self) -> Self {
557 *self
558 }
559 }
560 #[repr(C)]
561 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
562 pub struct JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
563 pub IoReadBytesLimit: u64,
564 pub IoWriteBytesLimit: u64,
565 pub PerJobUserTimeLimit: i64,
566 pub Anonymous1: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0,
567 pub Anonymous2: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1,
568 pub Anonymous3: JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2,
569 pub LimitFlags: JOB_OBJECT_LIMIT,
570 pub IoRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
571 pub JobLowMemoryLimit: u64,
572 pub IoRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
573 pub NetRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
574 pub NetRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
575 }
576 impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {}
577 impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 {
578 fn clone(&self) -> Self {
579 *self
580 }
581 }
582 #[repr(C)]
583 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
584 pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
585 pub JobHighMemoryLimit: u64,
586 pub JobMemoryLimit: u64,
587 }
588 impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {}
589 impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_0 {
590 fn clone(&self) -> Self {
591 *self
592 }
593 }
594 #[repr(C)]
595 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
596 pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
597 pub RateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
598 pub CpuRateControlTolerance: JOBOBJECT_RATE_CONTROL_TOLERANCE,
599 }
600 impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {}
601 impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_1 {
602 fn clone(&self) -> Self {
603 *self
604 }
605 }
606 #[repr(C)]
607 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
608 pub union JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
609 pub RateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
610 pub CpuRateControlToleranceInterval: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL,
611 }
612 impl ::core::marker::Copy for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {}
613 impl ::core::clone::Clone for JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2_2 {
614 fn clone(&self) -> Self {
615 *self
616 }
617 }
618 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
619 pub type JOBOBJECT_RATE_CONTROL_TOLERANCE = i32;
620 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
621 pub const ToleranceLow: JOBOBJECT_RATE_CONTROL_TOLERANCE = 1i32;
622 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
623 pub const ToleranceMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE = 2i32;
624 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
625 pub const ToleranceHigh: JOBOBJECT_RATE_CONTROL_TOLERANCE = 3i32;
626 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
627 pub type JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = i32;
628 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
629 pub const ToleranceIntervalShort: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 1i32;
630 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
631 pub const ToleranceIntervalMedium: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 2i32;
632 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
633 pub const ToleranceIntervalLong: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = 3i32;
634 #[repr(C)]
635 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation', 'Win32_Security'*"]
636 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
637 pub struct JOBOBJECT_SECURITY_LIMIT_INFORMATION {
638 pub SecurityLimitFlags: JOB_OBJECT_SECURITY,
639 pub JobToken: super::super::Foundation::HANDLE,
640 pub SidsToDisable: *mut super::super::Security::TOKEN_GROUPS,
641 pub PrivilegesToDelete: *mut super::super::Security::TOKEN_PRIVILEGES,
642 pub RestrictedSids: *mut super::super::Security::TOKEN_GROUPS,
643 }
644 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
645 impl ::core::marker::Copy for JOBOBJECT_SECURITY_LIMIT_INFORMATION {}
646 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Security"))]
647 impl ::core::clone::Clone for JOBOBJECT_SECURITY_LIMIT_INFORMATION {
648 fn clone(&self) -> Self {
649 *self
650 }
651 }
652 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
653 pub type JOB_OBJECT_CPU_RATE_CONTROL = u32;
654 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
655 pub const JOB_OBJECT_CPU_RATE_CONTROL_ENABLE: JOB_OBJECT_CPU_RATE_CONTROL = 1u32;
656 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
657 pub const JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED: JOB_OBJECT_CPU_RATE_CONTROL = 2u32;
658 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
659 pub const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP: JOB_OBJECT_CPU_RATE_CONTROL = 4u32;
660 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
661 pub const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY: JOB_OBJECT_CPU_RATE_CONTROL = 8u32;
662 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
663 pub const JOB_OBJECT__CPU_RATE_CONTROL_MIN_MAX_RATE: JOB_OBJECT_CPU_RATE_CONTROL = 16u32;
664 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
665 pub type JOB_OBJECT_IO_RATE_CONTROL_FLAGS = i32;
666 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
667 pub const JOB_OBJECT_IO_RATE_CONTROL_ENABLE: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 1i32;
668 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
669 pub const JOB_OBJECT_IO_RATE_CONTROL_STANDALONE_VOLUME: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 2i32;
670 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
671 pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ALL: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 4i32;
672 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
673 pub const JOB_OBJECT_IO_RATE_CONTROL_FORCE_UNIT_ACCESS_ON_SOFT_CAP: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 8i32;
674 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
675 pub const JOB_OBJECT_IO_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_IO_RATE_CONTROL_FLAGS = 15i32;
676 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
677 pub type JOB_OBJECT_LIMIT = u32;
678 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
679 pub const JOB_OBJECT_LIMIT_WORKINGSET: JOB_OBJECT_LIMIT = 1u32;
680 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
681 pub const JOB_OBJECT_LIMIT_PROCESS_TIME: JOB_OBJECT_LIMIT = 2u32;
682 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
683 pub const JOB_OBJECT_LIMIT_JOB_TIME: JOB_OBJECT_LIMIT = 4u32;
684 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
685 pub const JOB_OBJECT_LIMIT_ACTIVE_PROCESS: JOB_OBJECT_LIMIT = 8u32;
686 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
687 pub const JOB_OBJECT_LIMIT_AFFINITY: JOB_OBJECT_LIMIT = 16u32;
688 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
689 pub const JOB_OBJECT_LIMIT_PRIORITY_CLASS: JOB_OBJECT_LIMIT = 32u32;
690 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
691 pub const JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME: JOB_OBJECT_LIMIT = 64u32;
692 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
693 pub const JOB_OBJECT_LIMIT_SCHEDULING_CLASS: JOB_OBJECT_LIMIT = 128u32;
694 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
695 pub const JOB_OBJECT_LIMIT_PROCESS_MEMORY: JOB_OBJECT_LIMIT = 256u32;
696 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
697 pub const JOB_OBJECT_LIMIT_JOB_MEMORY: JOB_OBJECT_LIMIT = 512u32;
698 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
699 pub const JOB_OBJECT_LIMIT_JOB_MEMORY_HIGH: JOB_OBJECT_LIMIT = 512u32;
700 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
701 pub const JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION: JOB_OBJECT_LIMIT = 1024u32;
702 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
703 pub const JOB_OBJECT_LIMIT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = 2048u32;
704 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
705 pub const JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK: JOB_OBJECT_LIMIT = 4096u32;
706 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
707 pub const JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE: JOB_OBJECT_LIMIT = 8192u32;
708 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
709 pub const JOB_OBJECT_LIMIT_SUBSET_AFFINITY: JOB_OBJECT_LIMIT = 16384u32;
710 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
711 pub const JOB_OBJECT_LIMIT_JOB_MEMORY_LOW: JOB_OBJECT_LIMIT = 32768u32;
712 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
713 pub const JOB_OBJECT_LIMIT_JOB_READ_BYTES: JOB_OBJECT_LIMIT = 65536u32;
714 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
715 pub const JOB_OBJECT_LIMIT_JOB_WRITE_BYTES: JOB_OBJECT_LIMIT = 131072u32;
716 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
717 pub const JOB_OBJECT_LIMIT_RATE_CONTROL: JOB_OBJECT_LIMIT = 262144u32;
718 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
719 pub const JOB_OBJECT_LIMIT_CPU_RATE_CONTROL: JOB_OBJECT_LIMIT = 262144u32;
720 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
721 pub const JOB_OBJECT_LIMIT_IO_RATE_CONTROL: JOB_OBJECT_LIMIT = 524288u32;
722 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
723 pub const JOB_OBJECT_LIMIT_NET_RATE_CONTROL: JOB_OBJECT_LIMIT = 1048576u32;
724 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
725 pub const JOB_OBJECT_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 524287u32;
726 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
727 pub const JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 255u32;
728 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
729 pub const JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 32767u32;
730 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
731 pub const JOB_OBJECT_NOTIFICATION_LIMIT_VALID_FLAGS: JOB_OBJECT_LIMIT = 2064900u32;
732 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
733 pub type JOB_OBJECT_NET_RATE_CONTROL_FLAGS = i32;
734 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
735 pub const JOB_OBJECT_NET_RATE_CONTROL_ENABLE: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 1i32;
736 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
737 pub const JOB_OBJECT_NET_RATE_CONTROL_MAX_BANDWIDTH: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 2i32;
738 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
739 pub const JOB_OBJECT_NET_RATE_CONTROL_DSCP_TAG: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 4i32;
740 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
741 pub const JOB_OBJECT_NET_RATE_CONTROL_VALID_FLAGS: JOB_OBJECT_NET_RATE_CONTROL_FLAGS = 7i32;
742 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
743 pub type JOB_OBJECT_SECURITY = u32;
744 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
745 pub const JOB_OBJECT_SECURITY_NO_ADMIN: JOB_OBJECT_SECURITY = 1u32;
746 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
747 pub const JOB_OBJECT_SECURITY_RESTRICTED_TOKEN: JOB_OBJECT_SECURITY = 2u32;
748 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
749 pub const JOB_OBJECT_SECURITY_ONLY_TOKEN: JOB_OBJECT_SECURITY = 4u32;
750 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
751 pub const JOB_OBJECT_SECURITY_FILTER_TOKENS: JOB_OBJECT_SECURITY = 8u32;
752 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
753 pub const JOB_OBJECT_SECURITY_VALID_FLAGS: JOB_OBJECT_SECURITY = 15u32;
754 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
755 pub type JOB_OBJECT_TERMINATE_AT_END_ACTION = u32;
756 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
757 pub const JOB_OBJECT_TERMINATE_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = 0u32;
758 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
759 pub const JOB_OBJECT_POST_AT_END_OF_JOB: JOB_OBJECT_TERMINATE_AT_END_ACTION = 1u32;
760 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
761 pub type JOB_OBJECT_UILIMIT = u32;
762 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
763 pub const JOB_OBJECT_UILIMIT_NONE: JOB_OBJECT_UILIMIT = 0u32;
764 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
765 pub const JOB_OBJECT_UILIMIT_HANDLES: JOB_OBJECT_UILIMIT = 1u32;
766 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
767 pub const JOB_OBJECT_UILIMIT_READCLIPBOARD: JOB_OBJECT_UILIMIT = 2u32;
768 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
769 pub const JOB_OBJECT_UILIMIT_WRITECLIPBOARD: JOB_OBJECT_UILIMIT = 4u32;
770 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
771 pub const JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS: JOB_OBJECT_UILIMIT = 8u32;
772 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
773 pub const JOB_OBJECT_UILIMIT_DISPLAYSETTINGS: JOB_OBJECT_UILIMIT = 16u32;
774 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
775 pub const JOB_OBJECT_UILIMIT_GLOBALATOMS: JOB_OBJECT_UILIMIT = 32u32;
776 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
777 pub const JOB_OBJECT_UILIMIT_DESKTOP: JOB_OBJECT_UILIMIT = 64u32;
778 #[doc = "*Required features: 'Win32_System_JobObjects'*"]
779 pub const JOB_OBJECT_UILIMIT_EXITWINDOWS: JOB_OBJECT_UILIMIT = 128u32;
780 #[repr(C)]
781 #[doc = "*Required features: 'Win32_System_JobObjects', 'Win32_Foundation'*"]
782 #[cfg(feature = "Win32_Foundation")]
783 pub struct JOB_SET_ARRAY {
784 pub JobHandle: super::super::Foundation::HANDLE,
785 pub MemberLevel: u32,
786 pub Flags: u32,
787 }
788 #[cfg(feature = "Win32_Foundation")]
789 impl ::core::marker::Copy for JOB_SET_ARRAY {}
790 #[cfg(feature = "Win32_Foundation")]
791 impl ::core::clone::Clone for JOB_SET_ARRAY {
792 fn clone(&self) -> Self {
793 *self
794 }
795 }