1#![allow(warnings)]
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6 storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9 #[inline]
10 pub const fn new(storage: Storage) -> Self {
11 Self { storage }
12 }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16 Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18 #[inline]
19 fn extract_bit(byte: u8, index: usize) -> bool {
20 let bit_index = if cfg!(target_endian = "big") {
21 7 - (index % 8)
22 } else {
23 index % 8
24 };
25 let mask = 1 << bit_index;
26 byte & mask == mask
27 }
28 #[inline]
29 pub fn get_bit(&self, index: usize) -> bool {
30 debug_assert!(index / 8 < self.storage.as_ref().len());
31 let byte_index = index / 8;
32 let byte = self.storage.as_ref()[byte_index];
33 Self::extract_bit(byte, index)
34 }
35 #[inline]
36 pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38 let byte_index = index / 8;
39 let byte = unsafe {
40 *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41 };
42 Self::extract_bit(byte, index)
43 }
44 #[inline]
45 fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46 let bit_index = if cfg!(target_endian = "big") {
47 7 - (index % 8)
48 } else {
49 index % 8
50 };
51 let mask = 1 << bit_index;
52 if val { byte | mask } else { byte & !mask }
53 }
54 #[inline]
55 pub fn set_bit(&mut self, index: usize, val: bool) {
56 debug_assert!(index / 8 < self.storage.as_ref().len());
57 let byte_index = index / 8;
58 let byte = &mut self.storage.as_mut()[byte_index];
59 *byte = Self::change_bit(*byte, index, val);
60 }
61 #[inline]
62 pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63 debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64 let byte_index = index / 8;
65 let byte = unsafe {
66 (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67 };
68 unsafe { *byte = Self::change_bit(*byte, index, val) };
69 }
70 #[inline]
71 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72 debug_assert!(bit_width <= 64);
73 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75 let mut val = 0;
76 for i in 0..(bit_width as usize) {
77 if self.get_bit(i + bit_offset) {
78 let index = if cfg!(target_endian = "big") {
79 bit_width as usize - 1 - i
80 } else {
81 i
82 };
83 val |= 1 << index;
84 }
85 }
86 val
87 }
88 #[inline]
89 pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90 debug_assert!(bit_width <= 64);
91 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93 let mut val = 0;
94 for i in 0..(bit_width as usize) {
95 if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96 let index = if cfg!(target_endian = "big") {
97 bit_width as usize - 1 - i
98 } else {
99 i
100 };
101 val |= 1 << index;
102 }
103 }
104 val
105 }
106 #[inline]
107 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108 debug_assert!(bit_width <= 64);
109 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111 for i in 0..(bit_width as usize) {
112 let mask = 1 << i;
113 let val_bit_is_set = val & mask == mask;
114 let index = if cfg!(target_endian = "big") {
115 bit_width as usize - 1 - i
116 } else {
117 i
118 };
119 self.set_bit(index + bit_offset, val_bit_is_set);
120 }
121 }
122 #[inline]
123 pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124 debug_assert!(bit_width <= 64);
125 debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126 debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127 for i in 0..(bit_width as usize) {
128 let mask = 1 << i;
129 let val_bit_is_set = val & mask == mask;
130 let index = if cfg!(target_endian = "big") {
131 bit_width as usize - 1 - i
132 } else {
133 i
134 };
135 unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136 }
137 }
138}
139#[doc = r" If Bindgen could only determine the size and alignment of a"]
140#[doc = r" type, it is represented like this."]
141#[derive(PartialEq, Copy, Clone, Debug, Hash)]
142#[repr(C)]
143pub struct __BindgenOpaqueArray<T: Copy, const N: usize>(pub [T; N]);
144impl<T: Copy + Default, const N: usize> Default for __BindgenOpaqueArray<T, N> {
145 fn default() -> Self {
146 Self([<T as Default>::default(); N])
147 }
148}
149#[repr(C)]
150#[derive(Default)]
151pub struct __IncompleteArrayField<T>(::core::marker::PhantomData<T>, [T; 0]);
152impl<T> __IncompleteArrayField<T> {
153 #[inline]
154 pub const fn new() -> Self {
155 __IncompleteArrayField(::core::marker::PhantomData, [])
156 }
157 #[inline]
158 pub fn as_ptr(&self) -> *const T {
159 self as *const _ as *const T
160 }
161 #[inline]
162 pub fn as_mut_ptr(&mut self) -> *mut T {
163 self as *mut _ as *mut T
164 }
165 #[inline]
166 pub unsafe fn as_slice(&self, len: usize) -> &[T] {
167 ::core::slice::from_raw_parts(self.as_ptr(), len)
168 }
169 #[inline]
170 pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
171 ::core::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
172 }
173}
174impl<T> ::core::fmt::Debug for __IncompleteArrayField<T> {
175 fn fmt(&self, fmt: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
176 fmt.write_str("__IncompleteArrayField")
177 }
178}
179pub const _STRSAFE_USE_SECURE_CRT: u32 = 0;
180pub const _VCRT_COMPILER_PREPROCESSOR: u32 = 1;
181pub const _SAL_VERSION: u32 = 20;
182pub const __SAL_H_VERSION: u32 = 180000000;
183pub const _USE_DECLSPECS_FOR_SAL: u32 = 0;
184pub const _USE_ATTRIBUTES_FOR_SAL: u32 = 0;
185pub const _CRT_PACKING: u32 = 8;
186pub const _HAS_EXCEPTIONS: u32 = 1;
187pub const _STL_LANG: u32 = 0;
188pub const _HAS_CXX17: u32 = 0;
189pub const _HAS_CXX20: u32 = 0;
190pub const _HAS_CXX23: u32 = 0;
191pub const _HAS_CXX26: u32 = 0;
192pub const _HAS_NODISCARD: u32 = 0;
193pub const EXCEPTION_EXECUTE_HANDLER: u32 = 1;
194pub const EXCEPTION_CONTINUE_SEARCH: u32 = 0;
195pub const EXCEPTION_CONTINUE_EXECUTION: i32 = -1;
196pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1;
197pub const _CRT_BUILD_DESKTOP_APP: u32 = 1;
198pub const _ARGMAX: u32 = 100;
199pub const _CRT_INT_MAX: u32 = 2147483647;
200pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1;
201pub const _CRT_HAS_CXX17: u32 = 0;
202pub const _CRT_HAS_C11: u32 = 1;
203pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1;
204pub const __STDC_SECURE_LIB__: u32 = 200411;
205pub const __GOT_SECURE_LIB__: u32 = 200411;
206pub const __STDC_WANT_SECURE_LIB__: u32 = 1;
207pub const _SECURECRT_FILL_BUFFER_PATTERN: u32 = 254;
208pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES: u32 = 0;
209pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT: u32 = 0;
210pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES: u32 = 1;
211pub const _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY: u32 = 0;
212pub const _CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY: u32 = 0;
213pub const _STATIC_INLINE_UCRT_FUNCTIONS: u32 = 1;
214pub const _UPPER: u32 = 1;
215pub const _LOWER: u32 = 2;
216pub const _DIGIT: u32 = 4;
217pub const _SPACE: u32 = 8;
218pub const _PUNCT: u32 = 16;
219pub const _CONTROL: u32 = 32;
220pub const _BLANK: u32 = 64;
221pub const _HEX: u32 = 128;
222pub const _LEADBYTE: u32 = 32768;
223pub const _ALPHA: u32 = 259;
224pub const WINAPI_FAMILY_PC_APP: u32 = 2;
225pub const WINAPI_FAMILY_PHONE_APP: u32 = 3;
226pub const WINAPI_FAMILY_SYSTEM: u32 = 4;
227pub const WINAPI_FAMILY_SERVER: u32 = 5;
228pub const WINAPI_FAMILY_GAMES: u32 = 6;
229pub const WINAPI_FAMILY_DESKTOP_APP: u32 = 100;
230pub const WINAPI_FAMILY_APP: u32 = 2;
231pub const WINAPI_FAMILY: u32 = 100;
232pub const ANYSIZE_ARRAY: u32 = 1;
233pub const __SAL_H_FULL_VER: u32 = 140050727;
234pub const __SPECSTRINGS_STRICT_LEVEL: u32 = 1;
235pub const __drv_typeConst: u32 = 0;
236pub const __drv_typeCond: u32 = 1;
237pub const __drv_typeBitset: u32 = 2;
238pub const __drv_typeExpr: u32 = 3;
239pub const DISPATCH_LEVEL: u32 = 2;
240pub const APC_LEVEL: u32 = 1;
241pub const PASSIVE_LEVEL: u32 = 0;
242pub const HIGH_LEVEL: u32 = 15;
243pub const MEMORY_ALLOCATION_ALIGNMENT: u32 = 16;
244pub const X86_CACHE_ALIGNMENT_SIZE: u32 = 64;
245pub const ARM_CACHE_ALIGNMENT_SIZE: u32 = 128;
246pub const SYSTEM_CACHE_ALIGNMENT_SIZE: u32 = 64;
247pub const PRAGMA_DEPRECATED_DDK: u32 = 0;
248pub const UCSCHAR_INVALID_CHARACTER: u32 = 4294967295;
249pub const MIN_UCSCHAR: u32 = 0;
250pub const MAX_UCSCHAR: u32 = 1114111;
251pub const STRICT: u32 = 1;
252pub const ALL_PROCESSOR_GROUPS: u32 = 65535;
253pub const MAXIMUM_PROC_PER_GROUP: u32 = 64;
254pub const MAXIMUM_PROCESSORS: u32 = 64;
255pub const OBJ_HANDLE_TAGBITS: u32 = 3;
256pub const APPLICATION_ERROR_MASK: u32 = 536870912;
257pub const ERROR_SEVERITY_SUCCESS: u32 = 0;
258pub const ERROR_SEVERITY_INFORMATIONAL: u32 = 1073741824;
259pub const ERROR_SEVERITY_WARNING: u32 = 2147483648;
260pub const ERROR_SEVERITY_ERROR: u32 = 3221225472;
261pub const MAXLONGLONG: u64 = 9223372036854775807;
262pub const UNICODE_STRING_MAX_CHARS: u32 = 32767;
263pub const RTL_BALANCED_NODE_RESERVED_PARENT_MASK: u32 = 3;
264pub const OBJ_INHERIT: u32 = 2;
265pub const OBJ_PERMANENT: u32 = 16;
266pub const OBJ_EXCLUSIVE: u32 = 32;
267pub const OBJ_CASE_INSENSITIVE: u32 = 64;
268pub const OBJ_OPENIF: u32 = 128;
269pub const OBJ_OPENLINK: u32 = 256;
270pub const OBJ_KERNEL_HANDLE: u32 = 512;
271pub const OBJ_FORCE_ACCESS_CHECK: u32 = 1024;
272pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: u32 = 2048;
273pub const OBJ_DONT_REPARSE: u32 = 4096;
274pub const OBJ_VALID_ATTRIBUTES: u32 = 8178;
275pub const FALSE: u32 = 0;
276pub const TRUE: u32 = 1;
277pub const EPERM: u32 = 1;
278pub const ENOENT: u32 = 2;
279pub const ESRCH: u32 = 3;
280pub const EINTR: u32 = 4;
281pub const EIO: u32 = 5;
282pub const ENXIO: u32 = 6;
283pub const E2BIG: u32 = 7;
284pub const ENOEXEC: u32 = 8;
285pub const EBADF: u32 = 9;
286pub const ECHILD: u32 = 10;
287pub const EAGAIN: u32 = 11;
288pub const ENOMEM: u32 = 12;
289pub const EACCES: u32 = 13;
290pub const EFAULT: u32 = 14;
291pub const EBUSY: u32 = 16;
292pub const EEXIST: u32 = 17;
293pub const EXDEV: u32 = 18;
294pub const ENODEV: u32 = 19;
295pub const ENOTDIR: u32 = 20;
296pub const EISDIR: u32 = 21;
297pub const ENFILE: u32 = 23;
298pub const EMFILE: u32 = 24;
299pub const ENOTTY: u32 = 25;
300pub const EFBIG: u32 = 27;
301pub const ENOSPC: u32 = 28;
302pub const ESPIPE: u32 = 29;
303pub const EROFS: u32 = 30;
304pub const EMLINK: u32 = 31;
305pub const EPIPE: u32 = 32;
306pub const EDOM: u32 = 33;
307pub const EDEADLK: u32 = 36;
308pub const ENAMETOOLONG: u32 = 38;
309pub const ENOLCK: u32 = 39;
310pub const ENOSYS: u32 = 40;
311pub const ENOTEMPTY: u32 = 41;
312pub const EINVAL: u32 = 22;
313pub const ERANGE: u32 = 34;
314pub const EILSEQ: u32 = 42;
315pub const STRUNCATE: u32 = 80;
316pub const EDEADLOCK: u32 = 36;
317pub const EADDRINUSE: u32 = 100;
318pub const EADDRNOTAVAIL: u32 = 101;
319pub const EAFNOSUPPORT: u32 = 102;
320pub const EALREADY: u32 = 103;
321pub const EBADMSG: u32 = 104;
322pub const ECANCELED: u32 = 105;
323pub const ECONNABORTED: u32 = 106;
324pub const ECONNREFUSED: u32 = 107;
325pub const ECONNRESET: u32 = 108;
326pub const EDESTADDRREQ: u32 = 109;
327pub const EHOSTUNREACH: u32 = 110;
328pub const EIDRM: u32 = 111;
329pub const EINPROGRESS: u32 = 112;
330pub const EISCONN: u32 = 113;
331pub const ELOOP: u32 = 114;
332pub const EMSGSIZE: u32 = 115;
333pub const ENETDOWN: u32 = 116;
334pub const ENETRESET: u32 = 117;
335pub const ENETUNREACH: u32 = 118;
336pub const ENOBUFS: u32 = 119;
337pub const ENODATA: u32 = 120;
338pub const ENOLINK: u32 = 121;
339pub const ENOMSG: u32 = 122;
340pub const ENOPROTOOPT: u32 = 123;
341pub const ENOSR: u32 = 124;
342pub const ENOSTR: u32 = 125;
343pub const ENOTCONN: u32 = 126;
344pub const ENOTRECOVERABLE: u32 = 127;
345pub const ENOTSOCK: u32 = 128;
346pub const ENOTSUP: u32 = 129;
347pub const EOPNOTSUPP: u32 = 130;
348pub const EOTHER: u32 = 131;
349pub const EOVERFLOW: u32 = 132;
350pub const EOWNERDEAD: u32 = 133;
351pub const EPROTO: u32 = 134;
352pub const EPROTONOSUPPORT: u32 = 135;
353pub const EPROTOTYPE: u32 = 136;
354pub const ETIME: u32 = 137;
355pub const ETIMEDOUT: u32 = 138;
356pub const ETXTBSY: u32 = 139;
357pub const EWOULDBLOCK: u32 = 140;
358pub const _NLSCMPERROR: u32 = 2147483647;
359pub const MINCHAR: u32 = 128;
360pub const MAXCHAR: u32 = 127;
361pub const MINSHORT: u32 = 32768;
362pub const MAXSHORT: u32 = 32767;
363pub const MINLONG: u32 = 2147483648;
364pub const MAXLONG: u32 = 2147483647;
365pub const MAXUCHAR: u32 = 255;
366pub const MAXUSHORT: u32 = 65535;
367pub const MAXULONG: u32 = 4294967295;
368pub const ENCLAVE_SHORT_ID_LENGTH: u32 = 16;
369pub const ENCLAVE_LONG_ID_LENGTH: u32 = 32;
370pub const VER_SERVER_NT: u32 = 2147483648;
371pub const VER_WORKSTATION_NT: u32 = 1073741824;
372pub const VER_SUITE_SMALLBUSINESS: u32 = 1;
373pub const VER_SUITE_ENTERPRISE: u32 = 2;
374pub const VER_SUITE_BACKOFFICE: u32 = 4;
375pub const VER_SUITE_COMMUNICATIONS: u32 = 8;
376pub const VER_SUITE_TERMINAL: u32 = 16;
377pub const VER_SUITE_SMALLBUSINESS_RESTRICTED: u32 = 32;
378pub const VER_SUITE_EMBEDDEDNT: u32 = 64;
379pub const VER_SUITE_DATACENTER: u32 = 128;
380pub const VER_SUITE_SINGLEUSERTS: u32 = 256;
381pub const VER_SUITE_PERSONAL: u32 = 512;
382pub const VER_SUITE_BLADE: u32 = 1024;
383pub const VER_SUITE_EMBEDDED_RESTRICTED: u32 = 2048;
384pub const VER_SUITE_SECURITY_APPLIANCE: u32 = 4096;
385pub const VER_SUITE_STORAGE_SERVER: u32 = 8192;
386pub const VER_SUITE_COMPUTE_SERVER: u32 = 16384;
387pub const VER_SUITE_WH_SERVER: u32 = 32768;
388pub const VER_SUITE_MULTIUSERTS: u32 = 131072;
389pub const PRODUCT_UNDEFINED: u32 = 0;
390pub const PRODUCT_ULTIMATE: u32 = 1;
391pub const PRODUCT_HOME_BASIC: u32 = 2;
392pub const PRODUCT_HOME_PREMIUM: u32 = 3;
393pub const PRODUCT_ENTERPRISE: u32 = 4;
394pub const PRODUCT_HOME_BASIC_N: u32 = 5;
395pub const PRODUCT_BUSINESS: u32 = 6;
396pub const PRODUCT_STANDARD_SERVER: u32 = 7;
397pub const PRODUCT_DATACENTER_SERVER: u32 = 8;
398pub const PRODUCT_SMALLBUSINESS_SERVER: u32 = 9;
399pub const PRODUCT_ENTERPRISE_SERVER: u32 = 10;
400pub const PRODUCT_STARTER: u32 = 11;
401pub const PRODUCT_DATACENTER_SERVER_CORE: u32 = 12;
402pub const PRODUCT_STANDARD_SERVER_CORE: u32 = 13;
403pub const PRODUCT_ENTERPRISE_SERVER_CORE: u32 = 14;
404pub const PRODUCT_ENTERPRISE_SERVER_IA64: u32 = 15;
405pub const PRODUCT_BUSINESS_N: u32 = 16;
406pub const PRODUCT_WEB_SERVER: u32 = 17;
407pub const PRODUCT_CLUSTER_SERVER: u32 = 18;
408pub const PRODUCT_HOME_SERVER: u32 = 19;
409pub const PRODUCT_STORAGE_EXPRESS_SERVER: u32 = 20;
410pub const PRODUCT_STORAGE_STANDARD_SERVER: u32 = 21;
411pub const PRODUCT_STORAGE_WORKGROUP_SERVER: u32 = 22;
412pub const PRODUCT_STORAGE_ENTERPRISE_SERVER: u32 = 23;
413pub const PRODUCT_SERVER_FOR_SMALLBUSINESS: u32 = 24;
414pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: u32 = 25;
415pub const PRODUCT_HOME_PREMIUM_N: u32 = 26;
416pub const PRODUCT_ENTERPRISE_N: u32 = 27;
417pub const PRODUCT_ULTIMATE_N: u32 = 28;
418pub const PRODUCT_WEB_SERVER_CORE: u32 = 29;
419pub const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: u32 = 30;
420pub const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: u32 = 31;
421pub const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: u32 = 32;
422pub const PRODUCT_SERVER_FOUNDATION: u32 = 33;
423pub const PRODUCT_HOME_PREMIUM_SERVER: u32 = 34;
424pub const PRODUCT_SERVER_FOR_SMALLBUSINESS_V: u32 = 35;
425pub const PRODUCT_STANDARD_SERVER_V: u32 = 36;
426pub const PRODUCT_DATACENTER_SERVER_V: u32 = 37;
427pub const PRODUCT_ENTERPRISE_SERVER_V: u32 = 38;
428pub const PRODUCT_DATACENTER_SERVER_CORE_V: u32 = 39;
429pub const PRODUCT_STANDARD_SERVER_CORE_V: u32 = 40;
430pub const PRODUCT_ENTERPRISE_SERVER_CORE_V: u32 = 41;
431pub const PRODUCT_HYPERV: u32 = 42;
432pub const PRODUCT_STORAGE_EXPRESS_SERVER_CORE: u32 = 43;
433pub const PRODUCT_STORAGE_STANDARD_SERVER_CORE: u32 = 44;
434pub const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: u32 = 45;
435pub const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: u32 = 46;
436pub const PRODUCT_STARTER_N: u32 = 47;
437pub const PRODUCT_PROFESSIONAL: u32 = 48;
438pub const PRODUCT_PROFESSIONAL_N: u32 = 49;
439pub const PRODUCT_SB_SOLUTION_SERVER: u32 = 50;
440pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS: u32 = 51;
441pub const PRODUCT_STANDARD_SERVER_SOLUTIONS: u32 = 52;
442pub const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: u32 = 53;
443pub const PRODUCT_SB_SOLUTION_SERVER_EM: u32 = 54;
444pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: u32 = 55;
445pub const PRODUCT_SOLUTION_EMBEDDEDSERVER: u32 = 56;
446pub const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: u32 = 57;
447pub const PRODUCT_PROFESSIONAL_EMBEDDED: u32 = 58;
448pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: u32 = 59;
449pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: u32 = 60;
450pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: u32 = 61;
451pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: u32 = 62;
452pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: u32 = 63;
453pub const PRODUCT_CLUSTER_SERVER_V: u32 = 64;
454pub const PRODUCT_EMBEDDED: u32 = 65;
455pub const PRODUCT_STARTER_E: u32 = 66;
456pub const PRODUCT_HOME_BASIC_E: u32 = 67;
457pub const PRODUCT_HOME_PREMIUM_E: u32 = 68;
458pub const PRODUCT_PROFESSIONAL_E: u32 = 69;
459pub const PRODUCT_ENTERPRISE_E: u32 = 70;
460pub const PRODUCT_ULTIMATE_E: u32 = 71;
461pub const PRODUCT_ENTERPRISE_EVALUATION: u32 = 72;
462pub const PRODUCT_MULTIPOINT_STANDARD_SERVER: u32 = 76;
463pub const PRODUCT_MULTIPOINT_PREMIUM_SERVER: u32 = 77;
464pub const PRODUCT_STANDARD_EVALUATION_SERVER: u32 = 79;
465pub const PRODUCT_DATACENTER_EVALUATION_SERVER: u32 = 80;
466pub const PRODUCT_ENTERPRISE_N_EVALUATION: u32 = 84;
467pub const PRODUCT_EMBEDDED_AUTOMOTIVE: u32 = 85;
468pub const PRODUCT_EMBEDDED_INDUSTRY_A: u32 = 86;
469pub const PRODUCT_THINPC: u32 = 87;
470pub const PRODUCT_EMBEDDED_A: u32 = 88;
471pub const PRODUCT_EMBEDDED_INDUSTRY: u32 = 89;
472pub const PRODUCT_EMBEDDED_E: u32 = 90;
473pub const PRODUCT_EMBEDDED_INDUSTRY_E: u32 = 91;
474pub const PRODUCT_EMBEDDED_INDUSTRY_A_E: u32 = 92;
475pub const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: u32 = 95;
476pub const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: u32 = 96;
477pub const PRODUCT_CORE_ARM: u32 = 97;
478pub const PRODUCT_CORE_N: u32 = 98;
479pub const PRODUCT_CORE_COUNTRYSPECIFIC: u32 = 99;
480pub const PRODUCT_CORE_SINGLELANGUAGE: u32 = 100;
481pub const PRODUCT_CORE: u32 = 101;
482pub const PRODUCT_PROFESSIONAL_WMC: u32 = 103;
483pub const PRODUCT_EMBEDDED_INDUSTRY_EVAL: u32 = 105;
484pub const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL: u32 = 106;
485pub const PRODUCT_EMBEDDED_EVAL: u32 = 107;
486pub const PRODUCT_EMBEDDED_E_EVAL: u32 = 108;
487pub const PRODUCT_NANO_SERVER: u32 = 109;
488pub const PRODUCT_CLOUD_STORAGE_SERVER: u32 = 110;
489pub const PRODUCT_CORE_CONNECTED: u32 = 111;
490pub const PRODUCT_PROFESSIONAL_STUDENT: u32 = 112;
491pub const PRODUCT_CORE_CONNECTED_N: u32 = 113;
492pub const PRODUCT_PROFESSIONAL_STUDENT_N: u32 = 114;
493pub const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE: u32 = 115;
494pub const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC: u32 = 116;
495pub const PRODUCT_CONNECTED_CAR: u32 = 117;
496pub const PRODUCT_INDUSTRY_HANDHELD: u32 = 118;
497pub const PRODUCT_PPI_PRO: u32 = 119;
498pub const PRODUCT_ARM64_SERVER: u32 = 120;
499pub const PRODUCT_EDUCATION: u32 = 121;
500pub const PRODUCT_EDUCATION_N: u32 = 122;
501pub const PRODUCT_IOTUAP: u32 = 123;
502pub const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER: u32 = 124;
503pub const PRODUCT_ENTERPRISE_S: u32 = 125;
504pub const PRODUCT_ENTERPRISE_S_N: u32 = 126;
505pub const PRODUCT_PROFESSIONAL_S: u32 = 127;
506pub const PRODUCT_PROFESSIONAL_S_N: u32 = 128;
507pub const PRODUCT_ENTERPRISE_S_EVALUATION: u32 = 129;
508pub const PRODUCT_ENTERPRISE_S_N_EVALUATION: u32 = 130;
509pub const PRODUCT_HOLOGRAPHIC: u32 = 135;
510pub const PRODUCT_HOLOGRAPHIC_BUSINESS: u32 = 136;
511pub const PRODUCT_PRO_SINGLE_LANGUAGE: u32 = 138;
512pub const PRODUCT_PRO_CHINA: u32 = 139;
513pub const PRODUCT_ENTERPRISE_SUBSCRIPTION: u32 = 140;
514pub const PRODUCT_ENTERPRISE_SUBSCRIPTION_N: u32 = 141;
515pub const PRODUCT_DATACENTER_NANO_SERVER: u32 = 143;
516pub const PRODUCT_STANDARD_NANO_SERVER: u32 = 144;
517pub const PRODUCT_DATACENTER_A_SERVER_CORE: u32 = 145;
518pub const PRODUCT_STANDARD_A_SERVER_CORE: u32 = 146;
519pub const PRODUCT_DATACENTER_WS_SERVER_CORE: u32 = 147;
520pub const PRODUCT_STANDARD_WS_SERVER_CORE: u32 = 148;
521pub const PRODUCT_UTILITY_VM: u32 = 149;
522pub const PRODUCT_DATACENTER_EVALUATION_SERVER_CORE: u32 = 159;
523pub const PRODUCT_STANDARD_EVALUATION_SERVER_CORE: u32 = 160;
524pub const PRODUCT_PRO_WORKSTATION: u32 = 161;
525pub const PRODUCT_PRO_WORKSTATION_N: u32 = 162;
526pub const PRODUCT_PRO_FOR_EDUCATION: u32 = 164;
527pub const PRODUCT_PRO_FOR_EDUCATION_N: u32 = 165;
528pub const PRODUCT_AZURE_SERVER_CORE: u32 = 168;
529pub const PRODUCT_AZURE_NANO_SERVER: u32 = 169;
530pub const PRODUCT_ENTERPRISEG: u32 = 171;
531pub const PRODUCT_ENTERPRISEGN: u32 = 172;
532pub const PRODUCT_SERVERRDSH: u32 = 175;
533pub const PRODUCT_CLOUD: u32 = 178;
534pub const PRODUCT_CLOUDN: u32 = 179;
535pub const PRODUCT_HUBOS: u32 = 180;
536pub const PRODUCT_ONECOREUPDATEOS: u32 = 182;
537pub const PRODUCT_CLOUDE: u32 = 183;
538pub const PRODUCT_IOTOS: u32 = 185;
539pub const PRODUCT_CLOUDEN: u32 = 186;
540pub const PRODUCT_IOTEDGEOS: u32 = 187;
541pub const PRODUCT_IOTENTERPRISE: u32 = 188;
542pub const PRODUCT_LITE: u32 = 189;
543pub const PRODUCT_IOTENTERPRISES: u32 = 191;
544pub const PRODUCT_XBOX_SYSTEMOS: u32 = 192;
545pub const PRODUCT_XBOX_GAMEOS: u32 = 194;
546pub const PRODUCT_XBOX_ERAOS: u32 = 195;
547pub const PRODUCT_XBOX_DURANGOHOSTOS: u32 = 196;
548pub const PRODUCT_XBOX_SCARLETTHOSTOS: u32 = 197;
549pub const PRODUCT_XBOX_KEYSTONE: u32 = 198;
550pub const PRODUCT_AZURE_SERVER_CLOUDHOST: u32 = 199;
551pub const PRODUCT_AZURE_SERVER_CLOUDMOS: u32 = 200;
552pub const PRODUCT_CLOUDEDITIONN: u32 = 202;
553pub const PRODUCT_CLOUDEDITION: u32 = 203;
554pub const PRODUCT_VALIDATION: u32 = 204;
555pub const PRODUCT_IOTENTERPRISESK: u32 = 205;
556pub const PRODUCT_IOTENTERPRISEK: u32 = 206;
557pub const PRODUCT_IOTENTERPRISESEVAL: u32 = 207;
558pub const PRODUCT_AZURE_SERVER_AGENTBRIDGE: u32 = 208;
559pub const PRODUCT_AZURE_SERVER_NANOHOST: u32 = 209;
560pub const PRODUCT_WNC: u32 = 210;
561pub const PRODUCT_AZURESTACKHCI_SERVER_CORE: u32 = 406;
562pub const PRODUCT_DATACENTER_SERVER_AZURE_EDITION: u32 = 407;
563pub const PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION: u32 = 408;
564pub const PRODUCT_DATACENTER_WS_SERVER_CORE_AZURE_EDITION: u32 = 409;
565pub const PRODUCT_UNLICENSED: u32 = 2882382797;
566pub const _WIN32_WINNT_NT4: u32 = 1024;
567pub const _WIN32_WINNT_WIN2K: u32 = 1280;
568pub const _WIN32_WINNT_WINXP: u32 = 1281;
569pub const _WIN32_WINNT_WS03: u32 = 1282;
570pub const _WIN32_WINNT_WIN6: u32 = 1536;
571pub const _WIN32_WINNT_VISTA: u32 = 1536;
572pub const _WIN32_WINNT_WS08: u32 = 1536;
573pub const _WIN32_WINNT_LONGHORN: u32 = 1536;
574pub const _WIN32_WINNT_WIN7: u32 = 1537;
575pub const _WIN32_WINNT_WIN8: u32 = 1538;
576pub const _WIN32_WINNT_WINBLUE: u32 = 1539;
577pub const _WIN32_WINNT_WINTHRESHOLD: u32 = 2560;
578pub const _WIN32_WINNT_WIN10: u32 = 2560;
579pub const _WIN32_IE_IE20: u32 = 512;
580pub const _WIN32_IE_IE30: u32 = 768;
581pub const _WIN32_IE_IE302: u32 = 770;
582pub const _WIN32_IE_IE40: u32 = 1024;
583pub const _WIN32_IE_IE401: u32 = 1025;
584pub const _WIN32_IE_IE50: u32 = 1280;
585pub const _WIN32_IE_IE501: u32 = 1281;
586pub const _WIN32_IE_IE55: u32 = 1360;
587pub const _WIN32_IE_IE60: u32 = 1536;
588pub const _WIN32_IE_IE60SP1: u32 = 1537;
589pub const _WIN32_IE_IE60SP2: u32 = 1539;
590pub const _WIN32_IE_IE70: u32 = 1792;
591pub const _WIN32_IE_IE80: u32 = 2048;
592pub const _WIN32_IE_IE90: u32 = 2304;
593pub const _WIN32_IE_IE100: u32 = 2560;
594pub const _WIN32_IE_IE110: u32 = 2560;
595pub const _WIN32_IE_NT4: u32 = 512;
596pub const _WIN32_IE_NT4SP1: u32 = 512;
597pub const _WIN32_IE_NT4SP2: u32 = 512;
598pub const _WIN32_IE_NT4SP3: u32 = 770;
599pub const _WIN32_IE_NT4SP4: u32 = 1025;
600pub const _WIN32_IE_NT4SP5: u32 = 1025;
601pub const _WIN32_IE_NT4SP6: u32 = 1280;
602pub const _WIN32_IE_WIN98: u32 = 1025;
603pub const _WIN32_IE_WIN98SE: u32 = 1280;
604pub const _WIN32_IE_WINME: u32 = 1360;
605pub const _WIN32_IE_WIN2K: u32 = 1281;
606pub const _WIN32_IE_WIN2KSP1: u32 = 1281;
607pub const _WIN32_IE_WIN2KSP2: u32 = 1281;
608pub const _WIN32_IE_WIN2KSP3: u32 = 1281;
609pub const _WIN32_IE_WIN2KSP4: u32 = 1281;
610pub const _WIN32_IE_XP: u32 = 1536;
611pub const _WIN32_IE_XPSP1: u32 = 1537;
612pub const _WIN32_IE_XPSP2: u32 = 1539;
613pub const _WIN32_IE_WS03: u32 = 1538;
614pub const _WIN32_IE_WS03SP1: u32 = 1539;
615pub const _WIN32_IE_WIN6: u32 = 1792;
616pub const _WIN32_IE_LONGHORN: u32 = 1792;
617pub const _WIN32_IE_WIN7: u32 = 2048;
618pub const _WIN32_IE_WIN8: u32 = 2560;
619pub const _WIN32_IE_WINBLUE: u32 = 2560;
620pub const _WIN32_IE_WINTHRESHOLD: u32 = 2560;
621pub const _WIN32_IE_WIN10: u32 = 2560;
622pub const NTDDI_WIN4: u32 = 67108864;
623pub const NTDDI_WIN2K: u32 = 83886080;
624pub const NTDDI_WIN2KSP1: u32 = 83886336;
625pub const NTDDI_WIN2KSP2: u32 = 83886592;
626pub const NTDDI_WIN2KSP3: u32 = 83886848;
627pub const NTDDI_WIN2KSP4: u32 = 83887104;
628pub const NTDDI_WINXP: u32 = 83951616;
629pub const NTDDI_WINXPSP1: u32 = 83951872;
630pub const NTDDI_WINXPSP2: u32 = 83952128;
631pub const NTDDI_WINXPSP3: u32 = 83952384;
632pub const NTDDI_WINXPSP4: u32 = 83952640;
633pub const NTDDI_WS03: u32 = 84017152;
634pub const NTDDI_WS03SP1: u32 = 84017408;
635pub const NTDDI_WS03SP2: u32 = 84017664;
636pub const NTDDI_WS03SP3: u32 = 84017920;
637pub const NTDDI_WS03SP4: u32 = 84018176;
638pub const NTDDI_WIN6: u32 = 100663296;
639pub const NTDDI_WIN6SP1: u32 = 100663552;
640pub const NTDDI_WIN6SP2: u32 = 100663808;
641pub const NTDDI_WIN6SP3: u32 = 100664064;
642pub const NTDDI_WIN6SP4: u32 = 100664320;
643pub const NTDDI_VISTA: u32 = 100663296;
644pub const NTDDI_VISTASP1: u32 = 100663552;
645pub const NTDDI_VISTASP2: u32 = 100663808;
646pub const NTDDI_VISTASP3: u32 = 100664064;
647pub const NTDDI_VISTASP4: u32 = 100664320;
648pub const NTDDI_LONGHORN: u32 = 100663296;
649pub const NTDDI_WS08: u32 = 100663552;
650pub const NTDDI_WS08SP2: u32 = 100663808;
651pub const NTDDI_WS08SP3: u32 = 100664064;
652pub const NTDDI_WS08SP4: u32 = 100664320;
653pub const NTDDI_WIN7: u32 = 100728832;
654pub const NTDDI_WIN8: u32 = 100794368;
655pub const NTDDI_WINBLUE: u32 = 100859904;
656pub const NTDDI_WINTHRESHOLD: u32 = 167772160;
657pub const NTDDI_WIN10: u32 = 167772160;
658pub const NTDDI_WIN10_TH2: u32 = 167772161;
659pub const NTDDI_WIN10_RS1: u32 = 167772162;
660pub const NTDDI_WIN10_RS2: u32 = 167772163;
661pub const NTDDI_WIN10_RS3: u32 = 167772164;
662pub const NTDDI_WIN10_RS4: u32 = 167772165;
663pub const NTDDI_WIN10_RS5: u32 = 167772166;
664pub const NTDDI_WIN10_19H1: u32 = 167772167;
665pub const NTDDI_WIN10_VB: u32 = 167772168;
666pub const NTDDI_WIN10_MN: u32 = 167772169;
667pub const NTDDI_WIN10_FE: u32 = 167772170;
668pub const NTDDI_WIN10_CO: u32 = 167772171;
669pub const NTDDI_WIN10_NI: u32 = 167772172;
670pub const NTDDI_WIN10_CU: u32 = 167772173;
671pub const NTDDI_WIN11_ZN: u32 = 167772174;
672pub const NTDDI_WIN11_GA: u32 = 167772175;
673pub const NTDDI_WIN11_GE: u32 = 167772176;
674pub const WDK_NTDDI_VERSION: u32 = 167772176;
675pub const OSVERSION_MASK: u32 = 4294901760;
676pub const SPVERSION_MASK: u32 = 65280;
677pub const SUBVERSION_MASK: u32 = 255;
678pub const _WIN32_IE: u32 = 2560;
679pub const LANG_NEUTRAL: u32 = 0;
680pub const LANG_INVARIANT: u32 = 127;
681pub const LANG_AFRIKAANS: u32 = 54;
682pub const LANG_ALBANIAN: u32 = 28;
683pub const LANG_ALSATIAN: u32 = 132;
684pub const LANG_AMHARIC: u32 = 94;
685pub const LANG_ARABIC: u32 = 1;
686pub const LANG_ARMENIAN: u32 = 43;
687pub const LANG_ASSAMESE: u32 = 77;
688pub const LANG_AZERI: u32 = 44;
689pub const LANG_AZERBAIJANI: u32 = 44;
690pub const LANG_BANGLA: u32 = 69;
691pub const LANG_BASHKIR: u32 = 109;
692pub const LANG_BASQUE: u32 = 45;
693pub const LANG_BELARUSIAN: u32 = 35;
694pub const LANG_BENGALI: u32 = 69;
695pub const LANG_BRETON: u32 = 126;
696pub const LANG_BOSNIAN: u32 = 26;
697pub const LANG_BOSNIAN_NEUTRAL: u32 = 30746;
698pub const LANG_BULGARIAN: u32 = 2;
699pub const LANG_CATALAN: u32 = 3;
700pub const LANG_CENTRAL_KURDISH: u32 = 146;
701pub const LANG_CHEROKEE: u32 = 92;
702pub const LANG_CHINESE: u32 = 4;
703pub const LANG_CHINESE_SIMPLIFIED: u32 = 4;
704pub const LANG_CHINESE_TRADITIONAL: u32 = 31748;
705pub const LANG_CORSICAN: u32 = 131;
706pub const LANG_CROATIAN: u32 = 26;
707pub const LANG_CZECH: u32 = 5;
708pub const LANG_DANISH: u32 = 6;
709pub const LANG_DARI: u32 = 140;
710pub const LANG_DIVEHI: u32 = 101;
711pub const LANG_DUTCH: u32 = 19;
712pub const LANG_ENGLISH: u32 = 9;
713pub const LANG_ESTONIAN: u32 = 37;
714pub const LANG_FAEROESE: u32 = 56;
715pub const LANG_FARSI: u32 = 41;
716pub const LANG_FILIPINO: u32 = 100;
717pub const LANG_FINNISH: u32 = 11;
718pub const LANG_FRENCH: u32 = 12;
719pub const LANG_FRISIAN: u32 = 98;
720pub const LANG_FULAH: u32 = 103;
721pub const LANG_GALICIAN: u32 = 86;
722pub const LANG_GEORGIAN: u32 = 55;
723pub const LANG_GERMAN: u32 = 7;
724pub const LANG_GREEK: u32 = 8;
725pub const LANG_GREENLANDIC: u32 = 111;
726pub const LANG_GUJARATI: u32 = 71;
727pub const LANG_HAUSA: u32 = 104;
728pub const LANG_HAWAIIAN: u32 = 117;
729pub const LANG_HEBREW: u32 = 13;
730pub const LANG_HINDI: u32 = 57;
731pub const LANG_HUNGARIAN: u32 = 14;
732pub const LANG_ICELANDIC: u32 = 15;
733pub const LANG_IGBO: u32 = 112;
734pub const LANG_INDONESIAN: u32 = 33;
735pub const LANG_INUKTITUT: u32 = 93;
736pub const LANG_IRISH: u32 = 60;
737pub const LANG_ITALIAN: u32 = 16;
738pub const LANG_JAPANESE: u32 = 17;
739pub const LANG_KANNADA: u32 = 75;
740pub const LANG_KASHMIRI: u32 = 96;
741pub const LANG_KAZAK: u32 = 63;
742pub const LANG_KHMER: u32 = 83;
743pub const LANG_KICHE: u32 = 134;
744pub const LANG_KINYARWANDA: u32 = 135;
745pub const LANG_KONKANI: u32 = 87;
746pub const LANG_KOREAN: u32 = 18;
747pub const LANG_KYRGYZ: u32 = 64;
748pub const LANG_LAO: u32 = 84;
749pub const LANG_LATVIAN: u32 = 38;
750pub const LANG_LITHUANIAN: u32 = 39;
751pub const LANG_LOWER_SORBIAN: u32 = 46;
752pub const LANG_LUXEMBOURGISH: u32 = 110;
753pub const LANG_MACEDONIAN: u32 = 47;
754pub const LANG_MALAY: u32 = 62;
755pub const LANG_MALAYALAM: u32 = 76;
756pub const LANG_MALTESE: u32 = 58;
757pub const LANG_MANIPURI: u32 = 88;
758pub const LANG_MAORI: u32 = 129;
759pub const LANG_MAPUDUNGUN: u32 = 122;
760pub const LANG_MARATHI: u32 = 78;
761pub const LANG_MOHAWK: u32 = 124;
762pub const LANG_MONGOLIAN: u32 = 80;
763pub const LANG_NEPALI: u32 = 97;
764pub const LANG_NORWEGIAN: u32 = 20;
765pub const LANG_OCCITAN: u32 = 130;
766pub const LANG_ODIA: u32 = 72;
767pub const LANG_ORIYA: u32 = 72;
768pub const LANG_PASHTO: u32 = 99;
769pub const LANG_PERSIAN: u32 = 41;
770pub const LANG_POLISH: u32 = 21;
771pub const LANG_PORTUGUESE: u32 = 22;
772pub const LANG_PULAR: u32 = 103;
773pub const LANG_PUNJABI: u32 = 70;
774pub const LANG_QUECHUA: u32 = 107;
775pub const LANG_ROMANIAN: u32 = 24;
776pub const LANG_ROMANSH: u32 = 23;
777pub const LANG_RUSSIAN: u32 = 25;
778pub const LANG_SAKHA: u32 = 133;
779pub const LANG_SAMI: u32 = 59;
780pub const LANG_SANSKRIT: u32 = 79;
781pub const LANG_SCOTTISH_GAELIC: u32 = 145;
782pub const LANG_SERBIAN: u32 = 26;
783pub const LANG_SERBIAN_NEUTRAL: u32 = 31770;
784pub const LANG_SINDHI: u32 = 89;
785pub const LANG_SINHALESE: u32 = 91;
786pub const LANG_SLOVAK: u32 = 27;
787pub const LANG_SLOVENIAN: u32 = 36;
788pub const LANG_SOTHO: u32 = 108;
789pub const LANG_SPANISH: u32 = 10;
790pub const LANG_SWAHILI: u32 = 65;
791pub const LANG_SWEDISH: u32 = 29;
792pub const LANG_SYRIAC: u32 = 90;
793pub const LANG_TAJIK: u32 = 40;
794pub const LANG_TAMAZIGHT: u32 = 95;
795pub const LANG_TAMIL: u32 = 73;
796pub const LANG_TATAR: u32 = 68;
797pub const LANG_TELUGU: u32 = 74;
798pub const LANG_THAI: u32 = 30;
799pub const LANG_TIBETAN: u32 = 81;
800pub const LANG_TIGRIGNA: u32 = 115;
801pub const LANG_TIGRINYA: u32 = 115;
802pub const LANG_TSWANA: u32 = 50;
803pub const LANG_TURKISH: u32 = 31;
804pub const LANG_TURKMEN: u32 = 66;
805pub const LANG_UIGHUR: u32 = 128;
806pub const LANG_UKRAINIAN: u32 = 34;
807pub const LANG_UPPER_SORBIAN: u32 = 46;
808pub const LANG_URDU: u32 = 32;
809pub const LANG_UZBEK: u32 = 67;
810pub const LANG_VALENCIAN: u32 = 3;
811pub const LANG_VIETNAMESE: u32 = 42;
812pub const LANG_WELSH: u32 = 82;
813pub const LANG_WOLOF: u32 = 136;
814pub const LANG_XHOSA: u32 = 52;
815pub const LANG_YAKUT: u32 = 133;
816pub const LANG_YI: u32 = 120;
817pub const LANG_YORUBA: u32 = 106;
818pub const LANG_ZULU: u32 = 53;
819pub const SUBLANG_NEUTRAL: u32 = 0;
820pub const SUBLANG_DEFAULT: u32 = 1;
821pub const SUBLANG_SYS_DEFAULT: u32 = 2;
822pub const SUBLANG_CUSTOM_DEFAULT: u32 = 3;
823pub const SUBLANG_CUSTOM_UNSPECIFIED: u32 = 4;
824pub const SUBLANG_UI_CUSTOM_DEFAULT: u32 = 5;
825pub const SUBLANG_AFRIKAANS_SOUTH_AFRICA: u32 = 1;
826pub const SUBLANG_ALBANIAN_ALBANIA: u32 = 1;
827pub const SUBLANG_ALSATIAN_FRANCE: u32 = 1;
828pub const SUBLANG_AMHARIC_ETHIOPIA: u32 = 1;
829pub const SUBLANG_ARABIC_SAUDI_ARABIA: u32 = 1;
830pub const SUBLANG_ARABIC_IRAQ: u32 = 2;
831pub const SUBLANG_ARABIC_EGYPT: u32 = 3;
832pub const SUBLANG_ARABIC_LIBYA: u32 = 4;
833pub const SUBLANG_ARABIC_ALGERIA: u32 = 5;
834pub const SUBLANG_ARABIC_MOROCCO: u32 = 6;
835pub const SUBLANG_ARABIC_TUNISIA: u32 = 7;
836pub const SUBLANG_ARABIC_OMAN: u32 = 8;
837pub const SUBLANG_ARABIC_YEMEN: u32 = 9;
838pub const SUBLANG_ARABIC_SYRIA: u32 = 10;
839pub const SUBLANG_ARABIC_JORDAN: u32 = 11;
840pub const SUBLANG_ARABIC_LEBANON: u32 = 12;
841pub const SUBLANG_ARABIC_KUWAIT: u32 = 13;
842pub const SUBLANG_ARABIC_UAE: u32 = 14;
843pub const SUBLANG_ARABIC_BAHRAIN: u32 = 15;
844pub const SUBLANG_ARABIC_QATAR: u32 = 16;
845pub const SUBLANG_ARMENIAN_ARMENIA: u32 = 1;
846pub const SUBLANG_ASSAMESE_INDIA: u32 = 1;
847pub const SUBLANG_AZERI_LATIN: u32 = 1;
848pub const SUBLANG_AZERI_CYRILLIC: u32 = 2;
849pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN: u32 = 1;
850pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC: u32 = 2;
851pub const SUBLANG_BANGLA_INDIA: u32 = 1;
852pub const SUBLANG_BANGLA_BANGLADESH: u32 = 2;
853pub const SUBLANG_BASHKIR_RUSSIA: u32 = 1;
854pub const SUBLANG_BASQUE_BASQUE: u32 = 1;
855pub const SUBLANG_BELARUSIAN_BELARUS: u32 = 1;
856pub const SUBLANG_BENGALI_INDIA: u32 = 1;
857pub const SUBLANG_BENGALI_BANGLADESH: u32 = 2;
858pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 5;
859pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 8;
860pub const SUBLANG_BRETON_FRANCE: u32 = 1;
861pub const SUBLANG_BULGARIAN_BULGARIA: u32 = 1;
862pub const SUBLANG_CATALAN_CATALAN: u32 = 1;
863pub const SUBLANG_CENTRAL_KURDISH_IRAQ: u32 = 1;
864pub const SUBLANG_CHEROKEE_CHEROKEE: u32 = 1;
865pub const SUBLANG_CHINESE_TRADITIONAL: u32 = 1;
866pub const SUBLANG_CHINESE_SIMPLIFIED: u32 = 2;
867pub const SUBLANG_CHINESE_HONGKONG: u32 = 3;
868pub const SUBLANG_CHINESE_SINGAPORE: u32 = 4;
869pub const SUBLANG_CHINESE_MACAU: u32 = 5;
870pub const SUBLANG_CORSICAN_FRANCE: u32 = 1;
871pub const SUBLANG_CZECH_CZECH_REPUBLIC: u32 = 1;
872pub const SUBLANG_CROATIAN_CROATIA: u32 = 1;
873pub const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 4;
874pub const SUBLANG_DANISH_DENMARK: u32 = 1;
875pub const SUBLANG_DARI_AFGHANISTAN: u32 = 1;
876pub const SUBLANG_DIVEHI_MALDIVES: u32 = 1;
877pub const SUBLANG_DUTCH: u32 = 1;
878pub const SUBLANG_DUTCH_BELGIAN: u32 = 2;
879pub const SUBLANG_ENGLISH_US: u32 = 1;
880pub const SUBLANG_ENGLISH_UK: u32 = 2;
881pub const SUBLANG_ENGLISH_AUS: u32 = 3;
882pub const SUBLANG_ENGLISH_CAN: u32 = 4;
883pub const SUBLANG_ENGLISH_NZ: u32 = 5;
884pub const SUBLANG_ENGLISH_EIRE: u32 = 6;
885pub const SUBLANG_ENGLISH_SOUTH_AFRICA: u32 = 7;
886pub const SUBLANG_ENGLISH_JAMAICA: u32 = 8;
887pub const SUBLANG_ENGLISH_CARIBBEAN: u32 = 9;
888pub const SUBLANG_ENGLISH_BELIZE: u32 = 10;
889pub const SUBLANG_ENGLISH_TRINIDAD: u32 = 11;
890pub const SUBLANG_ENGLISH_ZIMBABWE: u32 = 12;
891pub const SUBLANG_ENGLISH_PHILIPPINES: u32 = 13;
892pub const SUBLANG_ENGLISH_INDIA: u32 = 16;
893pub const SUBLANG_ENGLISH_MALAYSIA: u32 = 17;
894pub const SUBLANG_ENGLISH_SINGAPORE: u32 = 18;
895pub const SUBLANG_ESTONIAN_ESTONIA: u32 = 1;
896pub const SUBLANG_FAEROESE_FAROE_ISLANDS: u32 = 1;
897pub const SUBLANG_FILIPINO_PHILIPPINES: u32 = 1;
898pub const SUBLANG_FINNISH_FINLAND: u32 = 1;
899pub const SUBLANG_FRENCH: u32 = 1;
900pub const SUBLANG_FRENCH_BELGIAN: u32 = 2;
901pub const SUBLANG_FRENCH_CANADIAN: u32 = 3;
902pub const SUBLANG_FRENCH_SWISS: u32 = 4;
903pub const SUBLANG_FRENCH_LUXEMBOURG: u32 = 5;
904pub const SUBLANG_FRENCH_MONACO: u32 = 6;
905pub const SUBLANG_FRISIAN_NETHERLANDS: u32 = 1;
906pub const SUBLANG_FULAH_SENEGAL: u32 = 2;
907pub const SUBLANG_GALICIAN_GALICIAN: u32 = 1;
908pub const SUBLANG_GEORGIAN_GEORGIA: u32 = 1;
909pub const SUBLANG_GERMAN: u32 = 1;
910pub const SUBLANG_GERMAN_SWISS: u32 = 2;
911pub const SUBLANG_GERMAN_AUSTRIAN: u32 = 3;
912pub const SUBLANG_GERMAN_LUXEMBOURG: u32 = 4;
913pub const SUBLANG_GERMAN_LIECHTENSTEIN: u32 = 5;
914pub const SUBLANG_GREEK_GREECE: u32 = 1;
915pub const SUBLANG_GREENLANDIC_GREENLAND: u32 = 1;
916pub const SUBLANG_GUJARATI_INDIA: u32 = 1;
917pub const SUBLANG_HAUSA_NIGERIA_LATIN: u32 = 1;
918pub const SUBLANG_HAWAIIAN_US: u32 = 1;
919pub const SUBLANG_HEBREW_ISRAEL: u32 = 1;
920pub const SUBLANG_HINDI_INDIA: u32 = 1;
921pub const SUBLANG_HUNGARIAN_HUNGARY: u32 = 1;
922pub const SUBLANG_ICELANDIC_ICELAND: u32 = 1;
923pub const SUBLANG_IGBO_NIGERIA: u32 = 1;
924pub const SUBLANG_INDONESIAN_INDONESIA: u32 = 1;
925pub const SUBLANG_INUKTITUT_CANADA: u32 = 1;
926pub const SUBLANG_INUKTITUT_CANADA_LATIN: u32 = 2;
927pub const SUBLANG_IRISH_IRELAND: u32 = 2;
928pub const SUBLANG_ITALIAN: u32 = 1;
929pub const SUBLANG_ITALIAN_SWISS: u32 = 2;
930pub const SUBLANG_JAPANESE_JAPAN: u32 = 1;
931pub const SUBLANG_KANNADA_INDIA: u32 = 1;
932pub const SUBLANG_KASHMIRI_SASIA: u32 = 2;
933pub const SUBLANG_KASHMIRI_INDIA: u32 = 2;
934pub const SUBLANG_KAZAK_KAZAKHSTAN: u32 = 1;
935pub const SUBLANG_KHMER_CAMBODIA: u32 = 1;
936pub const SUBLANG_KICHE_GUATEMALA: u32 = 1;
937pub const SUBLANG_KINYARWANDA_RWANDA: u32 = 1;
938pub const SUBLANG_KONKANI_INDIA: u32 = 1;
939pub const SUBLANG_KOREAN: u32 = 1;
940pub const SUBLANG_KYRGYZ_KYRGYZSTAN: u32 = 1;
941pub const SUBLANG_LAO_LAO: u32 = 1;
942pub const SUBLANG_LATVIAN_LATVIA: u32 = 1;
943pub const SUBLANG_LITHUANIAN: u32 = 1;
944pub const SUBLANG_LOWER_SORBIAN_GERMANY: u32 = 2;
945pub const SUBLANG_LUXEMBOURGISH_LUXEMBOURG: u32 = 1;
946pub const SUBLANG_MACEDONIAN_MACEDONIA: u32 = 1;
947pub const SUBLANG_MALAY_MALAYSIA: u32 = 1;
948pub const SUBLANG_MALAY_BRUNEI_DARUSSALAM: u32 = 2;
949pub const SUBLANG_MALAYALAM_INDIA: u32 = 1;
950pub const SUBLANG_MALTESE_MALTA: u32 = 1;
951pub const SUBLANG_MAORI_NEW_ZEALAND: u32 = 1;
952pub const SUBLANG_MAPUDUNGUN_CHILE: u32 = 1;
953pub const SUBLANG_MARATHI_INDIA: u32 = 1;
954pub const SUBLANG_MOHAWK_MOHAWK: u32 = 1;
955pub const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: u32 = 1;
956pub const SUBLANG_MONGOLIAN_PRC: u32 = 2;
957pub const SUBLANG_NEPALI_INDIA: u32 = 2;
958pub const SUBLANG_NEPALI_NEPAL: u32 = 1;
959pub const SUBLANG_NORWEGIAN_BOKMAL: u32 = 1;
960pub const SUBLANG_NORWEGIAN_NYNORSK: u32 = 2;
961pub const SUBLANG_OCCITAN_FRANCE: u32 = 1;
962pub const SUBLANG_ODIA_INDIA: u32 = 1;
963pub const SUBLANG_ORIYA_INDIA: u32 = 1;
964pub const SUBLANG_PASHTO_AFGHANISTAN: u32 = 1;
965pub const SUBLANG_PERSIAN_IRAN: u32 = 1;
966pub const SUBLANG_POLISH_POLAND: u32 = 1;
967pub const SUBLANG_PORTUGUESE: u32 = 2;
968pub const SUBLANG_PORTUGUESE_BRAZILIAN: u32 = 1;
969pub const SUBLANG_PULAR_SENEGAL: u32 = 2;
970pub const SUBLANG_PUNJABI_INDIA: u32 = 1;
971pub const SUBLANG_PUNJABI_PAKISTAN: u32 = 2;
972pub const SUBLANG_QUECHUA_BOLIVIA: u32 = 1;
973pub const SUBLANG_QUECHUA_ECUADOR: u32 = 2;
974pub const SUBLANG_QUECHUA_PERU: u32 = 3;
975pub const SUBLANG_ROMANIAN_ROMANIA: u32 = 1;
976pub const SUBLANG_ROMANSH_SWITZERLAND: u32 = 1;
977pub const SUBLANG_RUSSIAN_RUSSIA: u32 = 1;
978pub const SUBLANG_SAKHA_RUSSIA: u32 = 1;
979pub const SUBLANG_SAMI_NORTHERN_NORWAY: u32 = 1;
980pub const SUBLANG_SAMI_NORTHERN_SWEDEN: u32 = 2;
981pub const SUBLANG_SAMI_NORTHERN_FINLAND: u32 = 3;
982pub const SUBLANG_SAMI_LULE_NORWAY: u32 = 4;
983pub const SUBLANG_SAMI_LULE_SWEDEN: u32 = 5;
984pub const SUBLANG_SAMI_SOUTHERN_NORWAY: u32 = 6;
985pub const SUBLANG_SAMI_SOUTHERN_SWEDEN: u32 = 7;
986pub const SUBLANG_SAMI_SKOLT_FINLAND: u32 = 8;
987pub const SUBLANG_SAMI_INARI_FINLAND: u32 = 9;
988pub const SUBLANG_SANSKRIT_INDIA: u32 = 1;
989pub const SUBLANG_SCOTTISH_GAELIC: u32 = 1;
990pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN: u32 = 6;
991pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC: u32 = 7;
992pub const SUBLANG_SERBIAN_MONTENEGRO_LATIN: u32 = 11;
993pub const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC: u32 = 12;
994pub const SUBLANG_SERBIAN_SERBIA_LATIN: u32 = 9;
995pub const SUBLANG_SERBIAN_SERBIA_CYRILLIC: u32 = 10;
996pub const SUBLANG_SERBIAN_CROATIA: u32 = 1;
997pub const SUBLANG_SERBIAN_LATIN: u32 = 2;
998pub const SUBLANG_SERBIAN_CYRILLIC: u32 = 3;
999pub const SUBLANG_SINDHI_INDIA: u32 = 1;
1000pub const SUBLANG_SINDHI_PAKISTAN: u32 = 2;
1001pub const SUBLANG_SINDHI_AFGHANISTAN: u32 = 2;
1002pub const SUBLANG_SINHALESE_SRI_LANKA: u32 = 1;
1003pub const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA: u32 = 1;
1004pub const SUBLANG_SLOVAK_SLOVAKIA: u32 = 1;
1005pub const SUBLANG_SLOVENIAN_SLOVENIA: u32 = 1;
1006pub const SUBLANG_SPANISH: u32 = 1;
1007pub const SUBLANG_SPANISH_MEXICAN: u32 = 2;
1008pub const SUBLANG_SPANISH_MODERN: u32 = 3;
1009pub const SUBLANG_SPANISH_GUATEMALA: u32 = 4;
1010pub const SUBLANG_SPANISH_COSTA_RICA: u32 = 5;
1011pub const SUBLANG_SPANISH_PANAMA: u32 = 6;
1012pub const SUBLANG_SPANISH_DOMINICAN_REPUBLIC: u32 = 7;
1013pub const SUBLANG_SPANISH_VENEZUELA: u32 = 8;
1014pub const SUBLANG_SPANISH_COLOMBIA: u32 = 9;
1015pub const SUBLANG_SPANISH_PERU: u32 = 10;
1016pub const SUBLANG_SPANISH_ARGENTINA: u32 = 11;
1017pub const SUBLANG_SPANISH_ECUADOR: u32 = 12;
1018pub const SUBLANG_SPANISH_CHILE: u32 = 13;
1019pub const SUBLANG_SPANISH_URUGUAY: u32 = 14;
1020pub const SUBLANG_SPANISH_PARAGUAY: u32 = 15;
1021pub const SUBLANG_SPANISH_BOLIVIA: u32 = 16;
1022pub const SUBLANG_SPANISH_EL_SALVADOR: u32 = 17;
1023pub const SUBLANG_SPANISH_HONDURAS: u32 = 18;
1024pub const SUBLANG_SPANISH_NICARAGUA: u32 = 19;
1025pub const SUBLANG_SPANISH_PUERTO_RICO: u32 = 20;
1026pub const SUBLANG_SPANISH_US: u32 = 21;
1027pub const SUBLANG_SWAHILI_KENYA: u32 = 1;
1028pub const SUBLANG_SWEDISH: u32 = 1;
1029pub const SUBLANG_SWEDISH_FINLAND: u32 = 2;
1030pub const SUBLANG_SYRIAC_SYRIA: u32 = 1;
1031pub const SUBLANG_TAJIK_TAJIKISTAN: u32 = 1;
1032pub const SUBLANG_TAMAZIGHT_ALGERIA_LATIN: u32 = 2;
1033pub const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH: u32 = 4;
1034pub const SUBLANG_TAMIL_INDIA: u32 = 1;
1035pub const SUBLANG_TAMIL_SRI_LANKA: u32 = 2;
1036pub const SUBLANG_TATAR_RUSSIA: u32 = 1;
1037pub const SUBLANG_TELUGU_INDIA: u32 = 1;
1038pub const SUBLANG_THAI_THAILAND: u32 = 1;
1039pub const SUBLANG_TIBETAN_PRC: u32 = 1;
1040pub const SUBLANG_TIGRIGNA_ERITREA: u32 = 2;
1041pub const SUBLANG_TIGRINYA_ERITREA: u32 = 2;
1042pub const SUBLANG_TIGRINYA_ETHIOPIA: u32 = 1;
1043pub const SUBLANG_TSWANA_BOTSWANA: u32 = 2;
1044pub const SUBLANG_TSWANA_SOUTH_AFRICA: u32 = 1;
1045pub const SUBLANG_TURKISH_TURKEY: u32 = 1;
1046pub const SUBLANG_TURKMEN_TURKMENISTAN: u32 = 1;
1047pub const SUBLANG_UIGHUR_PRC: u32 = 1;
1048pub const SUBLANG_UKRAINIAN_UKRAINE: u32 = 1;
1049pub const SUBLANG_UPPER_SORBIAN_GERMANY: u32 = 1;
1050pub const SUBLANG_URDU_PAKISTAN: u32 = 1;
1051pub const SUBLANG_URDU_INDIA: u32 = 2;
1052pub const SUBLANG_UZBEK_LATIN: u32 = 1;
1053pub const SUBLANG_UZBEK_CYRILLIC: u32 = 2;
1054pub const SUBLANG_VALENCIAN_VALENCIA: u32 = 2;
1055pub const SUBLANG_VIETNAMESE_VIETNAM: u32 = 1;
1056pub const SUBLANG_WELSH_UNITED_KINGDOM: u32 = 1;
1057pub const SUBLANG_WOLOF_SENEGAL: u32 = 1;
1058pub const SUBLANG_XHOSA_SOUTH_AFRICA: u32 = 1;
1059pub const SUBLANG_YAKUT_RUSSIA: u32 = 1;
1060pub const SUBLANG_YI_PRC: u32 = 1;
1061pub const SUBLANG_YORUBA_NIGERIA: u32 = 1;
1062pub const SUBLANG_ZULU_SOUTH_AFRICA: u32 = 1;
1063pub const SORT_DEFAULT: u32 = 0;
1064pub const SORT_INVARIANT_MATH: u32 = 1;
1065pub const SORT_JAPANESE_XJIS: u32 = 0;
1066pub const SORT_JAPANESE_UNICODE: u32 = 1;
1067pub const SORT_JAPANESE_RADICALSTROKE: u32 = 4;
1068pub const SORT_CHINESE_BIG5: u32 = 0;
1069pub const SORT_CHINESE_PRCP: u32 = 0;
1070pub const SORT_CHINESE_UNICODE: u32 = 1;
1071pub const SORT_CHINESE_PRC: u32 = 2;
1072pub const SORT_CHINESE_BOPOMOFO: u32 = 3;
1073pub const SORT_CHINESE_RADICALSTROKE: u32 = 4;
1074pub const SORT_KOREAN_KSC: u32 = 0;
1075pub const SORT_KOREAN_UNICODE: u32 = 1;
1076pub const SORT_GERMAN_PHONE_BOOK: u32 = 1;
1077pub const SORT_HUNGARIAN_DEFAULT: u32 = 0;
1078pub const SORT_HUNGARIAN_TECHNICAL: u32 = 1;
1079pub const SORT_GEORGIAN_TRADITIONAL: u32 = 0;
1080pub const SORT_GEORGIAN_MODERN: u32 = 1;
1081pub const NLS_VALID_LOCALE_MASK: u32 = 1048575;
1082pub const LOCALE_NAME_MAX_LENGTH: u32 = 85;
1083pub const LOCALE_TRANSIENT_KEYBOARD1: u32 = 8192;
1084pub const LOCALE_TRANSIENT_KEYBOARD2: u32 = 9216;
1085pub const LOCALE_TRANSIENT_KEYBOARD3: u32 = 10240;
1086pub const LOCALE_TRANSIENT_KEYBOARD4: u32 = 11264;
1087pub const FACILITY_DEBUGGER: u32 = 1;
1088pub const FACILITY_RPC_RUNTIME: u32 = 2;
1089pub const FACILITY_RPC_STUBS: u32 = 3;
1090pub const FACILITY_IO_ERROR_CODE: u32 = 4;
1091pub const FACILITY_CODCLASS_ERROR_CODE: u32 = 6;
1092pub const FACILITY_NTWIN32: u32 = 7;
1093pub const FACILITY_NTCERT: u32 = 8;
1094pub const FACILITY_NTSSPI: u32 = 9;
1095pub const FACILITY_TERMINAL_SERVER: u32 = 10;
1096pub const FACILTIY_MUI_ERROR_CODE: u32 = 11;
1097pub const FACILITY_USB_ERROR_CODE: u32 = 16;
1098pub const FACILITY_HID_ERROR_CODE: u32 = 17;
1099pub const FACILITY_FIREWIRE_ERROR_CODE: u32 = 18;
1100pub const FACILITY_CLUSTER_ERROR_CODE: u32 = 19;
1101pub const FACILITY_ACPI_ERROR_CODE: u32 = 20;
1102pub const FACILITY_SXS_ERROR_CODE: u32 = 21;
1103pub const FACILITY_TRANSACTION: u32 = 25;
1104pub const FACILITY_COMMONLOG: u32 = 26;
1105pub const FACILITY_VIDEO: u32 = 27;
1106pub const FACILITY_FILTER_MANAGER: u32 = 28;
1107pub const FACILITY_MONITOR: u32 = 29;
1108pub const FACILITY_GRAPHICS_KERNEL: u32 = 30;
1109pub const FACILITY_CAMERA: u32 = 31;
1110pub const FACILITY_DRIVER_FRAMEWORK: u32 = 32;
1111pub const FACILITY_FVE_ERROR_CODE: u32 = 33;
1112pub const FACILITY_FWP_ERROR_CODE: u32 = 34;
1113pub const FACILITY_NDIS_ERROR_CODE: u32 = 35;
1114pub const FACILITY_QUIC_ERROR_CODE: u32 = 36;
1115pub const FACILITY_TPM: u32 = 41;
1116pub const FACILITY_RTPM: u32 = 42;
1117pub const FACILITY_HYPERVISOR: u32 = 53;
1118pub const FACILITY_IPSEC: u32 = 54;
1119pub const FACILITY_VIRTUALIZATION: u32 = 55;
1120pub const FACILITY_VOLMGR: u32 = 56;
1121pub const FACILITY_BCD_ERROR_CODE: u32 = 57;
1122pub const FACILITY_WIN32K_NTUSER: u32 = 62;
1123pub const FACILITY_WIN32K_NTGDI: u32 = 63;
1124pub const FACILITY_RESUME_KEY_FILTER: u32 = 64;
1125pub const FACILITY_RDBSS: u32 = 65;
1126pub const FACILITY_BTH_ATT: u32 = 66;
1127pub const FACILITY_SECUREBOOT: u32 = 67;
1128pub const FACILITY_AUDIO_KERNEL: u32 = 68;
1129pub const FACILITY_VSM: u32 = 69;
1130pub const FACILITY_NT_IORING: u32 = 70;
1131pub const FACILITY_VOLSNAP: u32 = 80;
1132pub const FACILITY_SDBUS: u32 = 81;
1133pub const FACILITY_SHARED_VHDX: u32 = 92;
1134pub const FACILITY_SMB: u32 = 93;
1135pub const FACILITY_XVS: u32 = 94;
1136pub const FACILITY_INTERIX: u32 = 153;
1137pub const FACILITY_SPACES: u32 = 231;
1138pub const FACILITY_SECURITY_CORE: u32 = 232;
1139pub const FACILITY_SYSTEM_INTEGRITY: u32 = 233;
1140pub const FACILITY_LICENSING: u32 = 234;
1141pub const FACILITY_PLATFORM_MANIFEST: u32 = 235;
1142pub const FACILITY_APP_EXEC: u32 = 236;
1143pub const FACILITY_UNIONFS: u32 = 237;
1144pub const FACILITY_PLATFORM_RUNTIME_MECHANISM: u32 = 238;
1145pub const FACILITY_WIN_ACCEL: u32 = 239;
1146pub const FACILITY_MAXIMUM_VALUE: u32 = 240;
1147pub const STATUS_SEVERITY_SUCCESS: u32 = 0;
1148pub const STATUS_SEVERITY_INFORMATIONAL: u32 = 1;
1149pub const STATUS_SEVERITY_WARNING: u32 = 2;
1150pub const STATUS_SEVERITY_ERROR: u32 = 3;
1151pub const BUGCHECK_CONTEXT_MODIFIER: u32 = 2147483648;
1152pub const FACILITY_MCA_ERROR_CODE: u32 = 5;
1153pub const MCA_EXTREG_V2MAX: u32 = 24;
1154pub const LOW_LEVEL: u32 = 0;
1155pub const CMCI_LEVEL: u32 = 5;
1156pub const CLOCK_LEVEL: u32 = 13;
1157pub const IPI_LEVEL: u32 = 14;
1158pub const DRS_LEVEL: u32 = 14;
1159pub const POWER_LEVEL: u32 = 14;
1160pub const PROFILE_LEVEL: u32 = 15;
1161pub const LOW_PRIORITY: u32 = 0;
1162pub const LOW_REALTIME_PRIORITY: u32 = 16;
1163pub const HIGH_PRIORITY: u32 = 31;
1164pub const MAXIMUM_PRIORITY: u32 = 32;
1165pub const MAXIMUM_WAIT_OBJECTS: u32 = 64;
1166pub const MAXIMUM_SUSPEND_COUNT: u32 = 127;
1167pub const LOCK_QUEUE_WAIT: u32 = 1;
1168pub const LOCK_QUEUE_WAIT_BIT: u32 = 0;
1169pub const LOCK_QUEUE_OWNER: u32 = 2;
1170pub const LOCK_QUEUE_OWNER_BIT: u32 = 1;
1171pub const LOCK_QUEUE_HALTED: u32 = 4;
1172pub const LOCK_QUEUE_HALTED_BIT: u32 = 2;
1173pub const LOCK_QUEUE_VALID_FLAGS: u32 = 7;
1174pub const LockQueueUnusedSpare0: u32 = 0;
1175pub const LockQueueUnusedSpare1: u32 = 1;
1176pub const LockQueueUnusedSpare2: u32 = 2;
1177pub const LockQueueUnusedSpare3: u32 = 3;
1178pub const LockQueueVacbLock: u32 = 4;
1179pub const LockQueueMasterLock: u32 = 5;
1180pub const LockQueueNonPagedPoolLock: u32 = 6;
1181pub const LockQueueIoCancelLock: u32 = 7;
1182pub const LockQueueUnusedSpare8: u32 = 8;
1183pub const LockQueueIoVpbLock: u32 = 9;
1184pub const LockQueueIoDatabaseLock: u32 = 10;
1185pub const LockQueueIoCompletionLock: u32 = 11;
1186pub const LockQueueNtfsStructLock: u32 = 12;
1187pub const LockQueueAfdWorkQueueLock: u32 = 13;
1188pub const LockQueueBcbLock: u32 = 14;
1189pub const LockQueueUnusedSpare15: u32 = 15;
1190pub const LockQueueUnusedSpare16: u32 = 16;
1191pub const LockQueueMaximumLock: u32 = 17;
1192pub const DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK_SIGNATURE: u32 = 2931740382;
1193pub const DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK_REVISION_1: u32 = 1;
1194pub const _MM_HINT_T0: u32 = 1;
1195pub const _MM_HINT_T1: u32 = 2;
1196pub const _MM_HINT_T2: u32 = 3;
1197pub const _MM_HINT_NTA: u32 = 0;
1198pub const PF_TEMPORAL_LEVEL_1: u32 = 1;
1199pub const PF_TEMPORAL_LEVEL_2: u32 = 2;
1200pub const PF_TEMPORAL_LEVEL_3: u32 = 3;
1201pub const PF_NON_TEMPORAL_LEVEL_ALL: u32 = 0;
1202pub const DELETE: u32 = 65536;
1203pub const READ_CONTROL: u32 = 131072;
1204pub const WRITE_DAC: u32 = 262144;
1205pub const WRITE_OWNER: u32 = 524288;
1206pub const SYNCHRONIZE: u32 = 1048576;
1207pub const STANDARD_RIGHTS_REQUIRED: u32 = 983040;
1208pub const STANDARD_RIGHTS_READ: u32 = 131072;
1209pub const STANDARD_RIGHTS_WRITE: u32 = 131072;
1210pub const STANDARD_RIGHTS_EXECUTE: u32 = 131072;
1211pub const STANDARD_RIGHTS_ALL: u32 = 2031616;
1212pub const SPECIFIC_RIGHTS_ALL: u32 = 65535;
1213pub const ACCESS_SYSTEM_SECURITY: u32 = 16777216;
1214pub const MAXIMUM_ALLOWED: u32 = 33554432;
1215pub const GENERIC_READ: u32 = 2147483648;
1216pub const GENERIC_WRITE: u32 = 1073741824;
1217pub const GENERIC_EXECUTE: u32 = 536870912;
1218pub const GENERIC_ALL: u32 = 268435456;
1219pub const ACL_REVISION: u32 = 2;
1220pub const ACL_REVISION_DS: u32 = 4;
1221pub const ACL_REVISION1: u32 = 1;
1222pub const ACL_REVISION2: u32 = 2;
1223pub const ACL_REVISION3: u32 = 3;
1224pub const ACL_REVISION4: u32 = 4;
1225pub const MAX_ACL_REVISION: u32 = 4;
1226pub const SECURITY_DESCRIPTOR_REVISION: u32 = 1;
1227pub const SECURITY_DESCRIPTOR_REVISION1: u32 = 1;
1228pub const SE_PRIVILEGE_ENABLED_BY_DEFAULT: u32 = 1;
1229pub const SE_PRIVILEGE_ENABLED: u32 = 2;
1230pub const SE_PRIVILEGE_REMOVED: u32 = 4;
1231pub const SE_PRIVILEGE_USED_FOR_ACCESS: u32 = 2147483648;
1232pub const SE_PRIVILEGE_VALID_ATTRIBUTES: u32 = 2147483655;
1233pub const PRIVILEGE_SET_ALL_NECESSARY: u32 = 1;
1234pub const SE_MIN_WELL_KNOWN_PRIVILEGE: u32 = 2;
1235pub const SE_CREATE_TOKEN_PRIVILEGE: u32 = 2;
1236pub const SE_ASSIGNPRIMARYTOKEN_PRIVILEGE: u32 = 3;
1237pub const SE_LOCK_MEMORY_PRIVILEGE: u32 = 4;
1238pub const SE_INCREASE_QUOTA_PRIVILEGE: u32 = 5;
1239pub const SE_MACHINE_ACCOUNT_PRIVILEGE: u32 = 6;
1240pub const SE_TCB_PRIVILEGE: u32 = 7;
1241pub const SE_SECURITY_PRIVILEGE: u32 = 8;
1242pub const SE_TAKE_OWNERSHIP_PRIVILEGE: u32 = 9;
1243pub const SE_LOAD_DRIVER_PRIVILEGE: u32 = 10;
1244pub const SE_SYSTEM_PROFILE_PRIVILEGE: u32 = 11;
1245pub const SE_SYSTEMTIME_PRIVILEGE: u32 = 12;
1246pub const SE_PROF_SINGLE_PROCESS_PRIVILEGE: u32 = 13;
1247pub const SE_INC_BASE_PRIORITY_PRIVILEGE: u32 = 14;
1248pub const SE_CREATE_PAGEFILE_PRIVILEGE: u32 = 15;
1249pub const SE_CREATE_PERMANENT_PRIVILEGE: u32 = 16;
1250pub const SE_BACKUP_PRIVILEGE: u32 = 17;
1251pub const SE_RESTORE_PRIVILEGE: u32 = 18;
1252pub const SE_SHUTDOWN_PRIVILEGE: u32 = 19;
1253pub const SE_DEBUG_PRIVILEGE: u32 = 20;
1254pub const SE_AUDIT_PRIVILEGE: u32 = 21;
1255pub const SE_SYSTEM_ENVIRONMENT_PRIVILEGE: u32 = 22;
1256pub const SE_CHANGE_NOTIFY_PRIVILEGE: u32 = 23;
1257pub const SE_REMOTE_SHUTDOWN_PRIVILEGE: u32 = 24;
1258pub const SE_UNDOCK_PRIVILEGE: u32 = 25;
1259pub const SE_SYNC_AGENT_PRIVILEGE: u32 = 26;
1260pub const SE_ENABLE_DELEGATION_PRIVILEGE: u32 = 27;
1261pub const SE_MANAGE_VOLUME_PRIVILEGE: u32 = 28;
1262pub const SE_IMPERSONATE_PRIVILEGE: u32 = 29;
1263pub const SE_CREATE_GLOBAL_PRIVILEGE: u32 = 30;
1264pub const SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE: u32 = 31;
1265pub const SE_RELABEL_PRIVILEGE: u32 = 32;
1266pub const SE_INC_WORKING_SET_PRIVILEGE: u32 = 33;
1267pub const SE_TIME_ZONE_PRIVILEGE: u32 = 34;
1268pub const SE_CREATE_SYMBOLIC_LINK_PRIVILEGE: u32 = 35;
1269pub const SE_DELEGATE_SESSION_USER_IMPERSONATE_PRIVILEGE: u32 = 36;
1270pub const SE_MAX_WELL_KNOWN_PRIVILEGE: u32 = 36;
1271pub const SECURITY_DYNAMIC_TRACKING: u32 = 1;
1272pub const SECURITY_STATIC_TRACKING: u32 = 0;
1273pub const OWNER_SECURITY_INFORMATION: u32 = 1;
1274pub const GROUP_SECURITY_INFORMATION: u32 = 2;
1275pub const DACL_SECURITY_INFORMATION: u32 = 4;
1276pub const SACL_SECURITY_INFORMATION: u32 = 8;
1277pub const LABEL_SECURITY_INFORMATION: u32 = 16;
1278pub const ATTRIBUTE_SECURITY_INFORMATION: u32 = 32;
1279pub const SCOPE_SECURITY_INFORMATION: u32 = 64;
1280pub const PROCESS_TRUST_LABEL_SECURITY_INFORMATION: u32 = 128;
1281pub const ACCESS_FILTER_SECURITY_INFORMATION: u32 = 256;
1282pub const BACKUP_SECURITY_INFORMATION: u32 = 65536;
1283pub const PROTECTED_DACL_SECURITY_INFORMATION: u32 = 2147483648;
1284pub const PROTECTED_SACL_SECURITY_INFORMATION: u32 = 1073741824;
1285pub const UNPROTECTED_DACL_SECURITY_INFORMATION: u32 = 536870912;
1286pub const UNPROTECTED_SACL_SECURITY_INFORMATION: u32 = 268435456;
1287pub const SE_ADT_OBJECT_ONLY: u32 = 1;
1288pub const SE_MAX_AUDIT_PARAMETERS: u32 = 32;
1289pub const SE_MAX_GENERIC_AUDIT_PARAMETERS: u32 = 28;
1290pub const SE_ADT_PARAMETERS_SELF_RELATIVE: u32 = 1;
1291pub const SE_ADT_PARAMETERS_SEND_TO_LSA: u32 = 2;
1292pub const SE_ADT_PARAMETER_EXTENSIBLE_AUDIT: u32 = 4;
1293pub const SE_ADT_PARAMETER_GENERIC_AUDIT: u32 = 8;
1294pub const SE_ADT_PARAMETER_WRITE_SYNCHRONOUS: u32 = 16;
1295pub const FILE_DEVICE_BEEP: u32 = 1;
1296pub const FILE_DEVICE_CD_ROM: u32 = 2;
1297pub const FILE_DEVICE_CD_ROM_FILE_SYSTEM: u32 = 3;
1298pub const FILE_DEVICE_CONTROLLER: u32 = 4;
1299pub const FILE_DEVICE_DATALINK: u32 = 5;
1300pub const FILE_DEVICE_DFS: u32 = 6;
1301pub const FILE_DEVICE_DISK: u32 = 7;
1302pub const FILE_DEVICE_DISK_FILE_SYSTEM: u32 = 8;
1303pub const FILE_DEVICE_FILE_SYSTEM: u32 = 9;
1304pub const FILE_DEVICE_INPORT_PORT: u32 = 10;
1305pub const FILE_DEVICE_KEYBOARD: u32 = 11;
1306pub const FILE_DEVICE_MAILSLOT: u32 = 12;
1307pub const FILE_DEVICE_MIDI_IN: u32 = 13;
1308pub const FILE_DEVICE_MIDI_OUT: u32 = 14;
1309pub const FILE_DEVICE_MOUSE: u32 = 15;
1310pub const FILE_DEVICE_MULTI_UNC_PROVIDER: u32 = 16;
1311pub const FILE_DEVICE_NAMED_PIPE: u32 = 17;
1312pub const FILE_DEVICE_NETWORK: u32 = 18;
1313pub const FILE_DEVICE_NETWORK_BROWSER: u32 = 19;
1314pub const FILE_DEVICE_NETWORK_FILE_SYSTEM: u32 = 20;
1315pub const FILE_DEVICE_NULL: u32 = 21;
1316pub const FILE_DEVICE_PARALLEL_PORT: u32 = 22;
1317pub const FILE_DEVICE_PHYSICAL_NETCARD: u32 = 23;
1318pub const FILE_DEVICE_PRINTER: u32 = 24;
1319pub const FILE_DEVICE_SCANNER: u32 = 25;
1320pub const FILE_DEVICE_SERIAL_MOUSE_PORT: u32 = 26;
1321pub const FILE_DEVICE_SERIAL_PORT: u32 = 27;
1322pub const FILE_DEVICE_SCREEN: u32 = 28;
1323pub const FILE_DEVICE_SOUND: u32 = 29;
1324pub const FILE_DEVICE_STREAMS: u32 = 30;
1325pub const FILE_DEVICE_TAPE: u32 = 31;
1326pub const FILE_DEVICE_TAPE_FILE_SYSTEM: u32 = 32;
1327pub const FILE_DEVICE_TRANSPORT: u32 = 33;
1328pub const FILE_DEVICE_UNKNOWN: u32 = 34;
1329pub const FILE_DEVICE_VIDEO: u32 = 35;
1330pub const FILE_DEVICE_VIRTUAL_DISK: u32 = 36;
1331pub const FILE_DEVICE_WAVE_IN: u32 = 37;
1332pub const FILE_DEVICE_WAVE_OUT: u32 = 38;
1333pub const FILE_DEVICE_8042_PORT: u32 = 39;
1334pub const FILE_DEVICE_NETWORK_REDIRECTOR: u32 = 40;
1335pub const FILE_DEVICE_BATTERY: u32 = 41;
1336pub const FILE_DEVICE_BUS_EXTENDER: u32 = 42;
1337pub const FILE_DEVICE_MODEM: u32 = 43;
1338pub const FILE_DEVICE_VDM: u32 = 44;
1339pub const FILE_DEVICE_MASS_STORAGE: u32 = 45;
1340pub const FILE_DEVICE_SMB: u32 = 46;
1341pub const FILE_DEVICE_KS: u32 = 47;
1342pub const FILE_DEVICE_CHANGER: u32 = 48;
1343pub const FILE_DEVICE_SMARTCARD: u32 = 49;
1344pub const FILE_DEVICE_ACPI: u32 = 50;
1345pub const FILE_DEVICE_DVD: u32 = 51;
1346pub const FILE_DEVICE_FULLSCREEN_VIDEO: u32 = 52;
1347pub const FILE_DEVICE_DFS_FILE_SYSTEM: u32 = 53;
1348pub const FILE_DEVICE_DFS_VOLUME: u32 = 54;
1349pub const FILE_DEVICE_SERENUM: u32 = 55;
1350pub const FILE_DEVICE_TERMSRV: u32 = 56;
1351pub const FILE_DEVICE_KSEC: u32 = 57;
1352pub const FILE_DEVICE_FIPS: u32 = 58;
1353pub const FILE_DEVICE_INFINIBAND: u32 = 59;
1354pub const FILE_DEVICE_VMBUS: u32 = 62;
1355pub const FILE_DEVICE_CRYPT_PROVIDER: u32 = 63;
1356pub const FILE_DEVICE_WPD: u32 = 64;
1357pub const FILE_DEVICE_BLUETOOTH: u32 = 65;
1358pub const FILE_DEVICE_MT_COMPOSITE: u32 = 66;
1359pub const FILE_DEVICE_MT_TRANSPORT: u32 = 67;
1360pub const FILE_DEVICE_BIOMETRIC: u32 = 68;
1361pub const FILE_DEVICE_PMI: u32 = 69;
1362pub const FILE_DEVICE_EHSTOR: u32 = 70;
1363pub const FILE_DEVICE_DEVAPI: u32 = 71;
1364pub const FILE_DEVICE_GPIO: u32 = 72;
1365pub const FILE_DEVICE_USBEX: u32 = 73;
1366pub const FILE_DEVICE_CONSOLE: u32 = 80;
1367pub const FILE_DEVICE_NFP: u32 = 81;
1368pub const FILE_DEVICE_SYSENV: u32 = 82;
1369pub const FILE_DEVICE_VIRTUAL_BLOCK: u32 = 83;
1370pub const FILE_DEVICE_POINT_OF_SERVICE: u32 = 84;
1371pub const FILE_DEVICE_STORAGE_REPLICATION: u32 = 85;
1372pub const FILE_DEVICE_TRUST_ENV: u32 = 86;
1373pub const FILE_DEVICE_UCM: u32 = 87;
1374pub const FILE_DEVICE_UCMTCPCI: u32 = 88;
1375pub const FILE_DEVICE_PERSISTENT_MEMORY: u32 = 89;
1376pub const FILE_DEVICE_NVDIMM: u32 = 90;
1377pub const FILE_DEVICE_HOLOGRAPHIC: u32 = 91;
1378pub const FILE_DEVICE_SDFXHCI: u32 = 92;
1379pub const FILE_DEVICE_UCMUCSI: u32 = 93;
1380pub const FILE_DEVICE_PRM: u32 = 94;
1381pub const FILE_DEVICE_EVENT_COLLECTOR: u32 = 95;
1382pub const FILE_DEVICE_USB4: u32 = 96;
1383pub const FILE_DEVICE_SOUNDWIRE: u32 = 97;
1384pub const METHOD_BUFFERED: u32 = 0;
1385pub const METHOD_IN_DIRECT: u32 = 1;
1386pub const METHOD_OUT_DIRECT: u32 = 2;
1387pub const METHOD_NEITHER: u32 = 3;
1388pub const METHOD_DIRECT_TO_HARDWARE: u32 = 1;
1389pub const METHOD_DIRECT_FROM_HARDWARE: u32 = 2;
1390pub const FILE_ANY_ACCESS: u32 = 0;
1391pub const FILE_SPECIAL_ACCESS: u32 = 0;
1392pub const FILE_READ_ACCESS: u32 = 1;
1393pub const FILE_WRITE_ACCESS: u32 = 2;
1394pub const FILE_READ_DATA: u32 = 1;
1395pub const FILE_LIST_DIRECTORY: u32 = 1;
1396pub const FILE_WRITE_DATA: u32 = 2;
1397pub const FILE_ADD_FILE: u32 = 2;
1398pub const FILE_APPEND_DATA: u32 = 4;
1399pub const FILE_ADD_SUBDIRECTORY: u32 = 4;
1400pub const FILE_CREATE_PIPE_INSTANCE: u32 = 4;
1401pub const FILE_READ_EA: u32 = 8;
1402pub const FILE_WRITE_EA: u32 = 16;
1403pub const FILE_EXECUTE: u32 = 32;
1404pub const FILE_TRAVERSE: u32 = 32;
1405pub const FILE_DELETE_CHILD: u32 = 64;
1406pub const FILE_READ_ATTRIBUTES: u32 = 128;
1407pub const FILE_WRITE_ATTRIBUTES: u32 = 256;
1408pub const FILE_ALL_ACCESS: u32 = 2032127;
1409pub const FILE_GENERIC_READ: u32 = 1179785;
1410pub const FILE_GENERIC_WRITE: u32 = 1179926;
1411pub const FILE_GENERIC_EXECUTE: u32 = 1179808;
1412pub const FILE_SHARE_READ: u32 = 1;
1413pub const FILE_SHARE_WRITE: u32 = 2;
1414pub const FILE_SHARE_DELETE: u32 = 4;
1415pub const FILE_SHARE_VALID_FLAGS: u32 = 7;
1416pub const FILE_ATTRIBUTE_READONLY: u32 = 1;
1417pub const FILE_ATTRIBUTE_HIDDEN: u32 = 2;
1418pub const FILE_ATTRIBUTE_SYSTEM: u32 = 4;
1419pub const FILE_ATTRIBUTE_DIRECTORY: u32 = 16;
1420pub const FILE_ATTRIBUTE_ARCHIVE: u32 = 32;
1421pub const FILE_ATTRIBUTE_DEVICE: u32 = 64;
1422pub const FILE_ATTRIBUTE_NORMAL: u32 = 128;
1423pub const FILE_ATTRIBUTE_TEMPORARY: u32 = 256;
1424pub const FILE_ATTRIBUTE_SPARSE_FILE: u32 = 512;
1425pub const FILE_ATTRIBUTE_REPARSE_POINT: u32 = 1024;
1426pub const FILE_ATTRIBUTE_COMPRESSED: u32 = 2048;
1427pub const FILE_ATTRIBUTE_OFFLINE: u32 = 4096;
1428pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: u32 = 8192;
1429pub const FILE_ATTRIBUTE_ENCRYPTED: u32 = 16384;
1430pub const FILE_ATTRIBUTE_INTEGRITY_STREAM: u32 = 32768;
1431pub const FILE_ATTRIBUTE_VIRTUAL: u32 = 65536;
1432pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: u32 = 131072;
1433pub const FILE_ATTRIBUTE_EA: u32 = 262144;
1434pub const FILE_ATTRIBUTE_PINNED: u32 = 524288;
1435pub const FILE_ATTRIBUTE_UNPINNED: u32 = 1048576;
1436pub const FILE_ATTRIBUTE_RECALL_ON_OPEN: u32 = 262144;
1437pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS: u32 = 4194304;
1438pub const TREE_CONNECT_ATTRIBUTE_PRIVACY: u32 = 16384;
1439pub const TREE_CONNECT_ATTRIBUTE_INTEGRITY: u32 = 32768;
1440pub const TREE_CONNECT_ATTRIBUTE_GLOBAL: u32 = 4;
1441pub const TREE_CONNECT_ATTRIBUTE_PINNED: u32 = 2;
1442pub const FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL: u32 = 536870912;
1443pub const FILE_ATTRIBUTE_VALID_FLAGS: u32 = 5963703;
1444pub const FILE_ATTRIBUTE_VALID_SET_FLAGS: u32 = 1716647;
1445pub const FILE_ATTRIBUTE_VALID_KERNEL_SET_FLAGS: u32 = 5910951;
1446pub const FILE_SUPERSEDE: u32 = 0;
1447pub const FILE_OPEN: u32 = 1;
1448pub const FILE_CREATE: u32 = 2;
1449pub const FILE_OPEN_IF: u32 = 3;
1450pub const FILE_OVERWRITE: u32 = 4;
1451pub const FILE_OVERWRITE_IF: u32 = 5;
1452pub const FILE_MAXIMUM_DISPOSITION: u32 = 5;
1453pub const FILE_DIRECTORY_FILE: u32 = 1;
1454pub const FILE_WRITE_THROUGH: u32 = 2;
1455pub const FILE_SEQUENTIAL_ONLY: u32 = 4;
1456pub const FILE_NO_INTERMEDIATE_BUFFERING: u32 = 8;
1457pub const FILE_SYNCHRONOUS_IO_ALERT: u32 = 16;
1458pub const FILE_SYNCHRONOUS_IO_NONALERT: u32 = 32;
1459pub const FILE_NON_DIRECTORY_FILE: u32 = 64;
1460pub const FILE_CREATE_TREE_CONNECTION: u32 = 128;
1461pub const FILE_COMPLETE_IF_OPLOCKED: u32 = 256;
1462pub const FILE_NO_EA_KNOWLEDGE: u32 = 512;
1463pub const FILE_OPEN_REMOTE_INSTANCE: u32 = 1024;
1464pub const FILE_RANDOM_ACCESS: u32 = 2048;
1465pub const FILE_DELETE_ON_CLOSE: u32 = 4096;
1466pub const FILE_OPEN_BY_FILE_ID: u32 = 8192;
1467pub const FILE_OPEN_FOR_BACKUP_INTENT: u32 = 16384;
1468pub const FILE_NO_COMPRESSION: u32 = 32768;
1469pub const FILE_OPEN_REQUIRING_OPLOCK: u32 = 65536;
1470pub const FILE_DISALLOW_EXCLUSIVE: u32 = 131072;
1471pub const FILE_SESSION_AWARE: u32 = 262144;
1472pub const FILE_RESERVE_OPFILTER: u32 = 1048576;
1473pub const FILE_OPEN_REPARSE_POINT: u32 = 2097152;
1474pub const FILE_OPEN_NO_RECALL: u32 = 4194304;
1475pub const FILE_OPEN_FOR_FREE_SPACE_QUERY: u32 = 8388608;
1476pub const TREE_CONNECT_NO_CLIENT_BUFFERING: u32 = 8;
1477pub const TREE_CONNECT_WRITE_THROUGH: u32 = 2;
1478pub const FILE_VALID_OPTION_FLAGS: u32 = 16777215;
1479pub const FILE_VALID_PIPE_OPTION_FLAGS: u32 = 50;
1480pub const FILE_VALID_MAILSLOT_OPTION_FLAGS: u32 = 50;
1481pub const FILE_VALID_SET_FLAGS: u32 = 54;
1482pub const FILE_CONTAINS_EXTENDED_CREATE_INFORMATION: u32 = 268435456;
1483pub const FILE_VALID_EXTENDED_OPTION_FLAGS: u32 = 268435456;
1484pub const FILE_SUPERSEDED: u32 = 0;
1485pub const FILE_OPENED: u32 = 1;
1486pub const FILE_CREATED: u32 = 2;
1487pub const FILE_OVERWRITTEN: u32 = 3;
1488pub const FILE_EXISTS: u32 = 4;
1489pub const FILE_DOES_NOT_EXIST: u32 = 5;
1490pub const FILE_QUERY_RESTART_SCAN: u32 = 1;
1491pub const FILE_QUERY_RETURN_SINGLE_ENTRY: u32 = 2;
1492pub const FILE_QUERY_INDEX_SPECIFIED: u32 = 4;
1493pub const FILE_QUERY_RETURN_ON_DISK_ENTRIES_ONLY: u32 = 8;
1494pub const FILE_QUERY_NO_CURSOR_UPDATE: u32 = 16;
1495pub const FILE_WRITE_TO_END_OF_FILE: u32 = 4294967295;
1496pub const FILE_USE_FILE_POINTER_POSITION: u32 = 4294967294;
1497pub const FILE_BYTE_ALIGNMENT: u32 = 0;
1498pub const FILE_WORD_ALIGNMENT: u32 = 1;
1499pub const FILE_LONG_ALIGNMENT: u32 = 3;
1500pub const FILE_QUAD_ALIGNMENT: u32 = 7;
1501pub const FILE_OCTA_ALIGNMENT: u32 = 15;
1502pub const FILE_32_BYTE_ALIGNMENT: u32 = 31;
1503pub const FILE_64_BYTE_ALIGNMENT: u32 = 63;
1504pub const FILE_128_BYTE_ALIGNMENT: u32 = 127;
1505pub const FILE_256_BYTE_ALIGNMENT: u32 = 255;
1506pub const FILE_512_BYTE_ALIGNMENT: u32 = 511;
1507pub const MAXIMUM_FILENAME_LENGTH: u32 = 256;
1508pub const FILE_REMOVABLE_MEDIA: u32 = 1;
1509pub const FILE_READ_ONLY_DEVICE: u32 = 2;
1510pub const FILE_FLOPPY_DISKETTE: u32 = 4;
1511pub const FILE_WRITE_ONCE_MEDIA: u32 = 8;
1512pub const FILE_REMOTE_DEVICE: u32 = 16;
1513pub const FILE_DEVICE_IS_MOUNTED: u32 = 32;
1514pub const FILE_VIRTUAL_VOLUME: u32 = 64;
1515pub const FILE_AUTOGENERATED_DEVICE_NAME: u32 = 128;
1516pub const FILE_DEVICE_SECURE_OPEN: u32 = 256;
1517pub const FILE_CHARACTERISTIC_PNP_DEVICE: u32 = 2048;
1518pub const FILE_CHARACTERISTIC_TS_DEVICE: u32 = 4096;
1519pub const FILE_CHARACTERISTIC_WEBDAV_DEVICE: u32 = 8192;
1520pub const FILE_CHARACTERISTIC_CSV: u32 = 65536;
1521pub const FILE_DEVICE_ALLOW_APPCONTAINER_TRAVERSAL: u32 = 131072;
1522pub const FILE_PORTABLE_DEVICE: u32 = 262144;
1523pub const FILE_REMOTE_DEVICE_VSMB: u32 = 524288;
1524pub const FILE_DEVICE_REQUIRE_SECURITY_CHECK: u32 = 1048576;
1525pub const IO_SESSION_STATE_ALL_EVENTS: u32 = 4294967295;
1526pub const IO_SESSION_STATE_CREATION_EVENT: u32 = 1;
1527pub const IO_SESSION_STATE_TERMINATION_EVENT: u32 = 2;
1528pub const IO_SESSION_STATE_CONNECT_EVENT: u32 = 4;
1529pub const IO_SESSION_STATE_DISCONNECT_EVENT: u32 = 8;
1530pub const IO_SESSION_STATE_LOGON_EVENT: u32 = 16;
1531pub const IO_SESSION_STATE_LOGOFF_EVENT: u32 = 32;
1532pub const IO_SESSION_STATE_VALID_EVENT_MASK: u32 = 63;
1533pub const IO_SESSION_MAX_PAYLOAD_SIZE: u32 = 256;
1534pub const FILE_SKIP_COMPLETION_PORT_ON_SUCCESS: u32 = 1;
1535pub const FILE_SKIP_SET_EVENT_ON_HANDLE: u32 = 2;
1536pub const FILE_SKIP_SET_USER_EVENT_ON_FAST_IO: u32 = 4;
1537pub const FLUSH_FLAGS_FILE_DATA_ONLY: u32 = 1;
1538pub const FLUSH_FLAGS_NO_SYNC: u32 = 2;
1539pub const FLUSH_FLAGS_FILE_DATA_SYNC_ONLY: u32 = 4;
1540pub const ERROR_LOG_LIMIT_SIZE: u32 = 240;
1541pub const PORT_MAXIMUM_MESSAGE_LENGTH: u32 = 512;
1542pub const KEY_QUERY_VALUE: u32 = 1;
1543pub const KEY_SET_VALUE: u32 = 2;
1544pub const KEY_CREATE_SUB_KEY: u32 = 4;
1545pub const KEY_ENUMERATE_SUB_KEYS: u32 = 8;
1546pub const KEY_NOTIFY: u32 = 16;
1547pub const KEY_CREATE_LINK: u32 = 32;
1548pub const KEY_WOW64_32KEY: u32 = 512;
1549pub const KEY_WOW64_64KEY: u32 = 256;
1550pub const KEY_WOW64_RES: u32 = 768;
1551pub const KEY_READ: u32 = 131097;
1552pub const KEY_WRITE: u32 = 131078;
1553pub const KEY_EXECUTE: u32 = 131097;
1554pub const KEY_ALL_ACCESS: u32 = 983103;
1555pub const REG_OPTION_RESERVED: u32 = 0;
1556pub const REG_OPTION_NON_VOLATILE: u32 = 0;
1557pub const REG_OPTION_VOLATILE: u32 = 1;
1558pub const REG_OPTION_CREATE_LINK: u32 = 2;
1559pub const REG_OPTION_BACKUP_RESTORE: u32 = 4;
1560pub const REG_OPTION_OPEN_LINK: u32 = 8;
1561pub const REG_OPTION_DONT_VIRTUALIZE: u32 = 16;
1562pub const REG_LEGAL_OPTION: u32 = 31;
1563pub const REG_OPEN_LEGAL_OPTION: u32 = 28;
1564pub const REG_CREATED_NEW_KEY: u32 = 1;
1565pub const REG_OPENED_EXISTING_KEY: u32 = 2;
1566pub const REG_STANDARD_FORMAT: u32 = 1;
1567pub const REG_LATEST_FORMAT: u32 = 2;
1568pub const REG_NO_COMPRESSION: u32 = 4;
1569pub const REG_WHOLE_HIVE_VOLATILE: u32 = 1;
1570pub const REG_REFRESH_HIVE: u32 = 2;
1571pub const REG_NO_LAZY_FLUSH: u32 = 4;
1572pub const REG_FORCE_RESTORE: u32 = 8;
1573pub const REG_APP_HIVE: u32 = 16;
1574pub const REG_PROCESS_PRIVATE: u32 = 32;
1575pub const REG_START_JOURNAL: u32 = 64;
1576pub const REG_HIVE_EXACT_FILE_GROWTH: u32 = 128;
1577pub const REG_HIVE_NO_RM: u32 = 256;
1578pub const REG_HIVE_SINGLE_LOG: u32 = 512;
1579pub const REG_BOOT_HIVE: u32 = 1024;
1580pub const REG_LOAD_HIVE_OPEN_HANDLE: u32 = 2048;
1581pub const REG_FLUSH_HIVE_FILE_GROWTH: u32 = 4096;
1582pub const REG_OPEN_READ_ONLY: u32 = 8192;
1583pub const REG_IMMUTABLE: u32 = 16384;
1584pub const REG_NO_IMPERSONATION_FALLBACK: u32 = 32768;
1585pub const REG_APP_HIVE_OPEN_READ_ONLY: u32 = 8192;
1586pub const REG_FORCE_UNLOAD: u32 = 1;
1587pub const REG_UNLOAD_LEGAL_FLAGS: u32 = 1;
1588pub const REG_NOTIFY_CHANGE_NAME: u32 = 1;
1589pub const REG_NOTIFY_CHANGE_ATTRIBUTES: u32 = 2;
1590pub const REG_NOTIFY_CHANGE_LAST_SET: u32 = 4;
1591pub const REG_NOTIFY_CHANGE_SECURITY: u32 = 8;
1592pub const REG_NOTIFY_THREAD_AGNOSTIC: u32 = 268435456;
1593pub const REG_LEGAL_CHANGE_FILTER: u32 = 268435471;
1594pub const OBJECT_TYPE_CREATE: u32 = 1;
1595pub const OBJECT_TYPE_ALL_ACCESS: u32 = 983041;
1596pub const DIRECTORY_QUERY: u32 = 1;
1597pub const DIRECTORY_TRAVERSE: u32 = 2;
1598pub const DIRECTORY_CREATE_OBJECT: u32 = 4;
1599pub const DIRECTORY_CREATE_SUBDIRECTORY: u32 = 8;
1600pub const DIRECTORY_ALL_ACCESS: u32 = 983055;
1601pub const SYMBOLIC_LINK_QUERY: u32 = 1;
1602pub const SYMBOLIC_LINK_SET: u32 = 2;
1603pub const SYMBOLIC_LINK_ALL_ACCESS: u32 = 983041;
1604pub const SYMBOLIC_LINK_ALL_ACCESS_EX: u32 = 1048575;
1605pub const DUPLICATE_CLOSE_SOURCE: u32 = 1;
1606pub const DUPLICATE_SAME_ACCESS: u32 = 2;
1607pub const DUPLICATE_SAME_ATTRIBUTES: u32 = 4;
1608pub const SECTION_QUERY: u32 = 1;
1609pub const SECTION_MAP_WRITE: u32 = 2;
1610pub const SECTION_MAP_READ: u32 = 4;
1611pub const SECTION_MAP_EXECUTE: u32 = 8;
1612pub const SECTION_EXTEND_SIZE: u32 = 16;
1613pub const SECTION_MAP_EXECUTE_EXPLICIT: u32 = 32;
1614pub const SECTION_ALL_ACCESS: u32 = 983071;
1615pub const SESSION_QUERY_ACCESS: u32 = 1;
1616pub const SESSION_MODIFY_ACCESS: u32 = 2;
1617pub const SESSION_ALL_ACCESS: u32 = 983043;
1618pub const SEGMENT_ALL_ACCESS: u32 = 983071;
1619pub const PAGE_NOACCESS: u32 = 1;
1620pub const PAGE_READONLY: u32 = 2;
1621pub const PAGE_READWRITE: u32 = 4;
1622pub const PAGE_WRITECOPY: u32 = 8;
1623pub const PAGE_EXECUTE: u32 = 16;
1624pub const PAGE_EXECUTE_READ: u32 = 32;
1625pub const PAGE_EXECUTE_READWRITE: u32 = 64;
1626pub const PAGE_EXECUTE_WRITECOPY: u32 = 128;
1627pub const PAGE_GUARD: u32 = 256;
1628pub const PAGE_NOCACHE: u32 = 512;
1629pub const PAGE_WRITECOMBINE: u32 = 1024;
1630pub const PAGE_GRAPHICS_NOACCESS: u32 = 2048;
1631pub const PAGE_GRAPHICS_READONLY: u32 = 4096;
1632pub const PAGE_GRAPHICS_READWRITE: u32 = 8192;
1633pub const PAGE_GRAPHICS_EXECUTE: u32 = 16384;
1634pub const PAGE_GRAPHICS_EXECUTE_READ: u32 = 32768;
1635pub const PAGE_GRAPHICS_EXECUTE_READWRITE: u32 = 65536;
1636pub const PAGE_GRAPHICS_COHERENT: u32 = 131072;
1637pub const PAGE_GRAPHICS_NOCACHE: u32 = 262144;
1638pub const PAGE_ENCLAVE_THREAD_CONTROL: u32 = 2147483648;
1639pub const PAGE_REVERT_TO_FILE_MAP: u32 = 2147483648;
1640pub const PAGE_TARGETS_NO_UPDATE: u32 = 1073741824;
1641pub const PAGE_TARGETS_INVALID: u32 = 1073741824;
1642pub const PAGE_ENCLAVE_UNVALIDATED: u32 = 536870912;
1643pub const PAGE_ENCLAVE_NO_CHANGE: u32 = 536870912;
1644pub const PAGE_ENCLAVE_MASK: u32 = 268435456;
1645pub const PAGE_ENCLAVE_DECOMMIT: u32 = 268435456;
1646pub const PAGE_ENCLAVE_SS_FIRST: u32 = 268435457;
1647pub const PAGE_ENCLAVE_SS_REST: u32 = 268435458;
1648pub const MEM_COMMIT: u32 = 4096;
1649pub const MEM_RESERVE: u32 = 8192;
1650pub const MEM_RESET: u32 = 524288;
1651pub const MEM_TOP_DOWN: u32 = 1048576;
1652pub const MEM_RESET_UNDO: u32 = 16777216;
1653pub const MEM_LARGE_PAGES: u32 = 536870912;
1654pub const MEM_4MB_PAGES: u32 = 2147483648;
1655pub const MEM_DECOMMIT: u32 = 16384;
1656pub const MEM_RELEASE: u32 = 32768;
1657pub const MEM_FREE: u32 = 65536;
1658pub const MEM_EXTENDED_PARAMETER_GRAPHICS: u32 = 1;
1659pub const MEM_EXTENDED_PARAMETER_NONPAGED: u32 = 2;
1660pub const MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL: u32 = 4;
1661pub const MEM_EXTENDED_PARAMETER_NONPAGED_LARGE: u32 = 8;
1662pub const MEM_EXTENDED_PARAMETER_NONPAGED_HUGE: u32 = 16;
1663pub const MEM_EXTENDED_PARAMETER_SOFT_FAULT_PAGES: u32 = 32;
1664pub const MEM_EXTENDED_PARAMETER_EC_CODE: u32 = 64;
1665pub const MEM_EXTENDED_PARAMETER_IMAGE_NO_HPAT: u32 = 128;
1666pub const MEM_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8;
1667pub const SEC_HUGE_PAGES: u32 = 131072;
1668pub const SEC_64K_PAGES: u32 = 524288;
1669pub const SEC_FILE: u32 = 8388608;
1670pub const SEC_IMAGE: u32 = 16777216;
1671pub const SEC_RESERVE: u32 = 67108864;
1672pub const SEC_COMMIT: u32 = 134217728;
1673pub const SEC_NOCACHE: u32 = 268435456;
1674pub const SEC_LARGE_PAGES: u32 = 2147483648;
1675pub const SEC_IMAGE_NO_EXECUTE: u32 = 285212672;
1676pub const MEM_PRIVATE: u32 = 131072;
1677pub const MEM_MAPPED: u32 = 262144;
1678pub const PROCESS_DUP_HANDLE: u32 = 64;
1679pub const PROCESS_ALL_ACCESS: u32 = 2097151;
1680pub const THREAD_TERMINATE: u32 = 1;
1681pub const THREAD_SUSPEND_RESUME: u32 = 2;
1682pub const THREAD_ALERT: u32 = 4;
1683pub const THREAD_GET_CONTEXT: u32 = 8;
1684pub const THREAD_SET_CONTEXT: u32 = 16;
1685pub const THREAD_SET_INFORMATION: u32 = 32;
1686pub const THREAD_SET_LIMITED_INFORMATION: u32 = 1024;
1687pub const THREAD_QUERY_LIMITED_INFORMATION: u32 = 2048;
1688pub const THREAD_RESUME: u32 = 4096;
1689pub const THREAD_ALL_ACCESS: u32 = 2097151;
1690pub const MEMORY_PARTITION_QUERY_ACCESS: u32 = 1;
1691pub const MEMORY_PARTITION_MODIFY_ACCESS: u32 = 2;
1692pub const MEMORY_PARTITION_ALL_ACCESS: u32 = 2031619;
1693pub const POWERBUTTON_ACTION_INDEX_NOTHING: u32 = 0;
1694pub const POWERBUTTON_ACTION_INDEX_SLEEP: u32 = 1;
1695pub const POWERBUTTON_ACTION_INDEX_HIBERNATE: u32 = 2;
1696pub const POWERBUTTON_ACTION_INDEX_SHUTDOWN: u32 = 3;
1697pub const POWERBUTTON_ACTION_INDEX_TURN_OFF_THE_DISPLAY: u32 = 4;
1698pub const POWERBUTTON_ACTION_VALUE_NOTHING: u32 = 0;
1699pub const POWERBUTTON_ACTION_VALUE_SLEEP: u32 = 2;
1700pub const POWERBUTTON_ACTION_VALUE_HIBERNATE: u32 = 3;
1701pub const POWERBUTTON_ACTION_VALUE_SHUTDOWN: u32 = 6;
1702pub const POWERBUTTON_ACTION_VALUE_TURN_OFF_THE_DISPLAY: u32 = 8;
1703pub const PERFSTATE_POLICY_CHANGE_IDEAL: u32 = 0;
1704pub const PERFSTATE_POLICY_CHANGE_SINGLE: u32 = 1;
1705pub const PERFSTATE_POLICY_CHANGE_ROCKET: u32 = 2;
1706pub const PERFSTATE_POLICY_CHANGE_IDEAL_AGGRESSIVE: u32 = 3;
1707pub const PERFSTATE_POLICY_CHANGE_DECREASE_MAX: u32 = 2;
1708pub const PERFSTATE_POLICY_CHANGE_INCREASE_MAX: u32 = 3;
1709pub const PROCESSOR_THROTTLE_DISABLED: u32 = 0;
1710pub const PROCESSOR_THROTTLE_ENABLED: u32 = 1;
1711pub const PROCESSOR_THROTTLE_AUTOMATIC: u32 = 2;
1712pub const PROCESSOR_PERF_BOOST_POLICY_DISABLED: u32 = 0;
1713pub const PROCESSOR_PERF_BOOST_POLICY_MAX: u32 = 100;
1714pub const PROCESSOR_PERF_BOOST_MODE_DISABLED: u32 = 0;
1715pub const PROCESSOR_PERF_BOOST_MODE_ENABLED: u32 = 1;
1716pub const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE: u32 = 2;
1717pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_ENABLED: u32 = 3;
1718pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE: u32 = 4;
1719pub const PROCESSOR_PERF_BOOST_MODE_AGGRESSIVE_AT_GUARANTEED: u32 = 5;
1720pub const PROCESSOR_PERF_BOOST_MODE_EFFICIENT_AGGRESSIVE_AT_GUARANTEED: u32 = 6;
1721pub const PROCESSOR_PERF_BOOST_MODE_MAX: u32 = 6;
1722pub const PROCESSOR_PERF_AUTONOMOUS_MODE_DISABLED: u32 = 0;
1723pub const PROCESSOR_PERF_AUTONOMOUS_MODE_ENABLED: u32 = 1;
1724pub const PROCESSOR_PERF_PERFORMANCE_PREFERENCE: u32 = 255;
1725pub const PROCESSOR_PERF_ENERGY_PREFERENCE: u32 = 0;
1726pub const PROCESSOR_PERF_MINIMUM_ACTIVITY_WINDOW: u32 = 0;
1727pub const PROCESSOR_PERF_MAXIMUM_ACTIVITY_WINDOW: u32 = 1270000000;
1728pub const PROCESSOR_DUTY_CYCLING_DISABLED: u32 = 0;
1729pub const PROCESSOR_DUTY_CYCLING_ENABLED: u32 = 1;
1730pub const CORE_PARKING_POLICY_CHANGE_IDEAL: u32 = 0;
1731pub const CORE_PARKING_POLICY_CHANGE_SINGLE: u32 = 1;
1732pub const CORE_PARKING_POLICY_CHANGE_ROCKET: u32 = 2;
1733pub const CORE_PARKING_POLICY_CHANGE_MULTISTEP: u32 = 3;
1734pub const CORE_PARKING_POLICY_CHANGE_MAX: u32 = 3;
1735pub const PARKING_TOPOLOGY_POLICY_DISABLED: u32 = 0;
1736pub const PARKING_TOPOLOGY_POLICY_ROUNDROBIN: u32 = 1;
1737pub const PARKING_TOPOLOGY_POLICY_SEQUENTIAL: u32 = 2;
1738pub const SMT_UNPARKING_POLICY_CORE: u32 = 0;
1739pub const SMT_UNPARKING_POLICY_CORE_PER_THREAD: u32 = 1;
1740pub const SMT_UNPARKING_POLICY_LP_ROUNDROBIN: u32 = 2;
1741pub const SMT_UNPARKING_POLICY_LP_SEQUENTIAL: u32 = 3;
1742pub const POWER_DEVICE_IDLE_POLICY_PERFORMANCE: u32 = 0;
1743pub const POWER_DEVICE_IDLE_POLICY_CONSERVATIVE: u32 = 1;
1744pub const POWER_CONNECTIVITY_IN_STANDBY_DISABLED: u32 = 0;
1745pub const POWER_CONNECTIVITY_IN_STANDBY_ENABLED: u32 = 1;
1746pub const POWER_CONNECTIVITY_IN_STANDBY_SYSTEM_MANAGED: u32 = 2;
1747pub const POWER_DISCONNECTED_STANDBY_MODE_NORMAL: u32 = 0;
1748pub const POWER_DISCONNECTED_STANDBY_MODE_AGGRESSIVE: u32 = 1;
1749pub const POWER_SYSTEM_MAXIMUM: u32 = 7;
1750pub const DIAGNOSTIC_REASON_VERSION: u32 = 0;
1751pub const DIAGNOSTIC_REASON_SIMPLE_STRING: u32 = 1;
1752pub const DIAGNOSTIC_REASON_DETAILED_STRING: u32 = 2;
1753pub const DIAGNOSTIC_REASON_NOT_SPECIFIED: u32 = 2147483648;
1754pub const DIAGNOSTIC_REASON_INVALID_FLAGS: i64 = -2147483656;
1755pub const POWER_REQUEST_CONTEXT_VERSION: u32 = 0;
1756pub const POWER_REQUEST_CONTEXT_SIMPLE_STRING: u32 = 1;
1757pub const POWER_REQUEST_CONTEXT_DETAILED_STRING: u32 = 2;
1758pub const PDCAP_D0_SUPPORTED: u32 = 1;
1759pub const PDCAP_D1_SUPPORTED: u32 = 2;
1760pub const PDCAP_D2_SUPPORTED: u32 = 4;
1761pub const PDCAP_D3_SUPPORTED: u32 = 8;
1762pub const PDCAP_WAKE_FROM_D0_SUPPORTED: u32 = 16;
1763pub const PDCAP_WAKE_FROM_D1_SUPPORTED: u32 = 32;
1764pub const PDCAP_WAKE_FROM_D2_SUPPORTED: u32 = 64;
1765pub const PDCAP_WAKE_FROM_D3_SUPPORTED: u32 = 128;
1766pub const PDCAP_WARM_EJECT_SUPPORTED: u32 = 256;
1767pub const POWER_SETTING_VALUE_VERSION: u32 = 1;
1768pub const POWER_PLATFORM_ROLE_V1: u32 = 1;
1769pub const POWER_PLATFORM_ROLE_V2: u32 = 2;
1770pub const POWER_PLATFORM_ROLE_VERSION: u32 = 2;
1771pub const REG_NONE: u32 = 0;
1772pub const REG_SZ: u32 = 1;
1773pub const REG_EXPAND_SZ: u32 = 2;
1774pub const REG_BINARY: u32 = 3;
1775pub const REG_DWORD: u32 = 4;
1776pub const REG_DWORD_LITTLE_ENDIAN: u32 = 4;
1777pub const REG_DWORD_BIG_ENDIAN: u32 = 5;
1778pub const REG_LINK: u32 = 6;
1779pub const REG_MULTI_SZ: u32 = 7;
1780pub const REG_RESOURCE_LIST: u32 = 8;
1781pub const REG_FULL_RESOURCE_DESCRIPTOR: u32 = 9;
1782pub const REG_RESOURCE_REQUIREMENTS_LIST: u32 = 10;
1783pub const REG_QWORD: u32 = 11;
1784pub const REG_QWORD_LITTLE_ENDIAN: u32 = 11;
1785pub const SERVICE_KERNEL_DRIVER: u32 = 1;
1786pub const SERVICE_FILE_SYSTEM_DRIVER: u32 = 2;
1787pub const SERVICE_ADAPTER: u32 = 4;
1788pub const SERVICE_RECOGNIZER_DRIVER: u32 = 8;
1789pub const SERVICE_DRIVER: u32 = 11;
1790pub const SERVICE_WIN32_OWN_PROCESS: u32 = 16;
1791pub const SERVICE_WIN32_SHARE_PROCESS: u32 = 32;
1792pub const SERVICE_WIN32: u32 = 48;
1793pub const SERVICE_USER_SERVICE: u32 = 64;
1794pub const SERVICE_USERSERVICE_INSTANCE: u32 = 128;
1795pub const SERVICE_USER_SHARE_PROCESS: u32 = 96;
1796pub const SERVICE_USER_OWN_PROCESS: u32 = 80;
1797pub const SERVICE_INTERACTIVE_PROCESS: u32 = 256;
1798pub const SERVICE_PKG_SERVICE: u32 = 512;
1799pub const SERVICE_TYPE_ALL: u32 = 1023;
1800pub const SERVICE_BOOT_START: u32 = 0;
1801pub const SERVICE_SYSTEM_START: u32 = 1;
1802pub const SERVICE_AUTO_START: u32 = 2;
1803pub const SERVICE_DEMAND_START: u32 = 3;
1804pub const SERVICE_DISABLED: u32 = 4;
1805pub const SERVICE_ERROR_IGNORE: u32 = 0;
1806pub const SERVICE_ERROR_NORMAL: u32 = 1;
1807pub const SERVICE_ERROR_SEVERE: u32 = 2;
1808pub const SERVICE_ERROR_CRITICAL: u32 = 3;
1809pub const CM_SERVICE_NETWORK_BOOT_LOAD: u32 = 1;
1810pub const CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD: u32 = 2;
1811pub const CM_SERVICE_USB_DISK_BOOT_LOAD: u32 = 4;
1812pub const CM_SERVICE_SD_DISK_BOOT_LOAD: u32 = 8;
1813pub const CM_SERVICE_USB3_DISK_BOOT_LOAD: u32 = 16;
1814pub const CM_SERVICE_MEASURED_BOOT_LOAD: u32 = 32;
1815pub const CM_SERVICE_VERIFIER_BOOT_LOAD: u32 = 64;
1816pub const CM_SERVICE_WINPE_BOOT_LOAD: u32 = 128;
1817pub const CM_SERVICE_RAM_DISK_BOOT_LOAD: u32 = 256;
1818pub const CM_SERVICE_VALID_PROMOTION_MASK: u32 = 511;
1819pub const CmResourceTypeNull: u32 = 0;
1820pub const CmResourceTypePort: u32 = 1;
1821pub const CmResourceTypeInterrupt: u32 = 2;
1822pub const CmResourceTypeMemory: u32 = 3;
1823pub const CmResourceTypeDma: u32 = 4;
1824pub const CmResourceTypeDeviceSpecific: u32 = 5;
1825pub const CmResourceTypeBusNumber: u32 = 6;
1826pub const CmResourceTypeMemoryLarge: u32 = 7;
1827pub const CmResourceTypeNonArbitrated: u32 = 128;
1828pub const CmResourceTypeConfigData: u32 = 128;
1829pub const CmResourceTypeDevicePrivate: u32 = 129;
1830pub const CmResourceTypePcCardConfig: u32 = 130;
1831pub const CmResourceTypeMfCardConfig: u32 = 131;
1832pub const CmResourceTypeConnection: u32 = 132;
1833pub const CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE: u32 = 0;
1834pub const CM_RESOURCE_INTERRUPT_LATCHED: u32 = 1;
1835pub const CM_RESOURCE_INTERRUPT_MESSAGE: u32 = 2;
1836pub const CM_RESOURCE_INTERRUPT_POLICY_INCLUDED: u32 = 4;
1837pub const CM_RESOURCE_INTERRUPT_SECONDARY_INTERRUPT: u32 = 16;
1838pub const CM_RESOURCE_INTERRUPT_WAKE_HINT: u32 = 32;
1839pub const CM_RESOURCE_INTERRUPT_LEVEL_LATCHED_BITS: u32 = 1;
1840pub const CM_RESOURCE_MEMORY_READ_WRITE: u32 = 0;
1841pub const CM_RESOURCE_MEMORY_READ_ONLY: u32 = 1;
1842pub const CM_RESOURCE_MEMORY_WRITE_ONLY: u32 = 2;
1843pub const CM_RESOURCE_MEMORY_WRITEABILITY_MASK: u32 = 3;
1844pub const CM_RESOURCE_MEMORY_PREFETCHABLE: u32 = 4;
1845pub const CM_RESOURCE_MEMORY_COMBINEDWRITE: u32 = 8;
1846pub const CM_RESOURCE_MEMORY_24: u32 = 16;
1847pub const CM_RESOURCE_MEMORY_CACHEABLE: u32 = 32;
1848pub const CM_RESOURCE_MEMORY_WINDOW_DECODE: u32 = 64;
1849pub const CM_RESOURCE_MEMORY_BAR: u32 = 128;
1850pub const CM_RESOURCE_MEMORY_COMPAT_FOR_INACCESSIBLE_RANGE: u32 = 256;
1851pub const CM_RESOURCE_MEMORY_LARGE: u32 = 3584;
1852pub const CM_RESOURCE_MEMORY_LARGE_40: u32 = 512;
1853pub const CM_RESOURCE_MEMORY_LARGE_48: u32 = 1024;
1854pub const CM_RESOURCE_MEMORY_LARGE_64: u32 = 2048;
1855pub const CM_RESOURCE_MEMORY_LARGE_40_MAXLEN: u64 = 1099511627520;
1856pub const CM_RESOURCE_MEMORY_LARGE_48_MAXLEN: u64 = 281474976645120;
1857pub const CM_RESOURCE_MEMORY_LARGE_64_MAXLEN: i64 = -4294967296;
1858pub const CM_RESOURCE_PORT_MEMORY: u32 = 0;
1859pub const CM_RESOURCE_PORT_IO: u32 = 1;
1860pub const CM_RESOURCE_PORT_10_BIT_DECODE: u32 = 4;
1861pub const CM_RESOURCE_PORT_12_BIT_DECODE: u32 = 8;
1862pub const CM_RESOURCE_PORT_16_BIT_DECODE: u32 = 16;
1863pub const CM_RESOURCE_PORT_POSITIVE_DECODE: u32 = 32;
1864pub const CM_RESOURCE_PORT_PASSIVE_DECODE: u32 = 64;
1865pub const CM_RESOURCE_PORT_WINDOW_DECODE: u32 = 128;
1866pub const CM_RESOURCE_PORT_BAR: u32 = 256;
1867pub const CM_RESOURCE_DMA_8: u32 = 0;
1868pub const CM_RESOURCE_DMA_16: u32 = 1;
1869pub const CM_RESOURCE_DMA_32: u32 = 2;
1870pub const CM_RESOURCE_DMA_8_AND_16: u32 = 4;
1871pub const CM_RESOURCE_DMA_BUS_MASTER: u32 = 8;
1872pub const CM_RESOURCE_DMA_TYPE_A: u32 = 16;
1873pub const CM_RESOURCE_DMA_TYPE_B: u32 = 32;
1874pub const CM_RESOURCE_DMA_TYPE_F: u32 = 64;
1875pub const CM_RESOURCE_DMA_V3: u32 = 128;
1876pub const DMAV3_TRANFER_WIDTH_8: u32 = 0;
1877pub const DMAV3_TRANFER_WIDTH_16: u32 = 1;
1878pub const DMAV3_TRANFER_WIDTH_32: u32 = 2;
1879pub const DMAV3_TRANFER_WIDTH_64: u32 = 3;
1880pub const DMAV3_TRANFER_WIDTH_128: u32 = 4;
1881pub const DMAV3_TRANFER_WIDTH_256: u32 = 5;
1882pub const CM_RESOURCE_CONNECTION_CLASS_GPIO: u32 = 1;
1883pub const CM_RESOURCE_CONNECTION_CLASS_SERIAL: u32 = 2;
1884pub const CM_RESOURCE_CONNECTION_CLASS_FUNCTION_CONFIG: u32 = 3;
1885pub const CM_RESOURCE_CONNECTION_TYPE_GPIO_IO: u32 = 2;
1886pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_I2C: u32 = 1;
1887pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_SPI: u32 = 2;
1888pub const CM_RESOURCE_CONNECTION_TYPE_SERIAL_UART: u32 = 3;
1889pub const CM_RESOURCE_CONNECTION_TYPE_FUNCTION_CONFIG: u32 = 1;
1890pub const EISA_FUNCTION_ENABLED: u32 = 128;
1891pub const EISA_FREE_FORM_DATA: u32 = 64;
1892pub const EISA_HAS_PORT_INIT_ENTRY: u32 = 32;
1893pub const EISA_HAS_PORT_RANGE: u32 = 16;
1894pub const EISA_HAS_DMA_ENTRY: u32 = 8;
1895pub const EISA_HAS_IRQ_ENTRY: u32 = 4;
1896pub const EISA_HAS_MEMORY_ENTRY: u32 = 2;
1897pub const EISA_HAS_TYPE_ENTRY: u32 = 1;
1898pub const EISA_HAS_INFORMATION: u32 = 31;
1899pub const EISA_MORE_ENTRIES: u32 = 128;
1900pub const EISA_SYSTEM_MEMORY: u32 = 0;
1901pub const EISA_MEMORY_TYPE_RAM: u32 = 1;
1902pub const EISA_INVALID_SLOT: u32 = 128;
1903pub const EISA_INVALID_FUNCTION: u32 = 129;
1904pub const EISA_INVALID_CONFIGURATION: u32 = 130;
1905pub const EISA_EMPTY_SLOT: u32 = 131;
1906pub const EISA_INVALID_BIOS_CALL: u32 = 134;
1907pub const IO_RESOURCE_PREFERRED: u32 = 1;
1908pub const IO_RESOURCE_DEFAULT: u32 = 2;
1909pub const IO_RESOURCE_ALTERNATIVE: u32 = 8;
1910pub const FAST_FAIL_LEGACY_GS_VIOLATION: u32 = 0;
1911pub const FAST_FAIL_VTGUARD_CHECK_FAILURE: u32 = 1;
1912pub const FAST_FAIL_STACK_COOKIE_CHECK_FAILURE: u32 = 2;
1913pub const FAST_FAIL_CORRUPT_LIST_ENTRY: u32 = 3;
1914pub const FAST_FAIL_INCORRECT_STACK: u32 = 4;
1915pub const FAST_FAIL_INVALID_ARG: u32 = 5;
1916pub const FAST_FAIL_GS_COOKIE_INIT: u32 = 6;
1917pub const FAST_FAIL_FATAL_APP_EXIT: u32 = 7;
1918pub const FAST_FAIL_RANGE_CHECK_FAILURE: u32 = 8;
1919pub const FAST_FAIL_UNSAFE_REGISTRY_ACCESS: u32 = 9;
1920pub const FAST_FAIL_GUARD_ICALL_CHECK_FAILURE: u32 = 10;
1921pub const FAST_FAIL_GUARD_WRITE_CHECK_FAILURE: u32 = 11;
1922pub const FAST_FAIL_INVALID_FIBER_SWITCH: u32 = 12;
1923pub const FAST_FAIL_INVALID_SET_OF_CONTEXT: u32 = 13;
1924pub const FAST_FAIL_INVALID_REFERENCE_COUNT: u32 = 14;
1925pub const FAST_FAIL_INVALID_JUMP_BUFFER: u32 = 18;
1926pub const FAST_FAIL_MRDATA_MODIFIED: u32 = 19;
1927pub const FAST_FAIL_CERTIFICATION_FAILURE: u32 = 20;
1928pub const FAST_FAIL_INVALID_EXCEPTION_CHAIN: u32 = 21;
1929pub const FAST_FAIL_CRYPTO_LIBRARY: u32 = 22;
1930pub const FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT: u32 = 23;
1931pub const FAST_FAIL_INVALID_IMAGE_BASE: u32 = 24;
1932pub const FAST_FAIL_DLOAD_PROTECTION_FAILURE: u32 = 25;
1933pub const FAST_FAIL_UNSAFE_EXTENSION_CALL: u32 = 26;
1934pub const FAST_FAIL_DEPRECATED_SERVICE_INVOKED: u32 = 27;
1935pub const FAST_FAIL_INVALID_BUFFER_ACCESS: u32 = 28;
1936pub const FAST_FAIL_INVALID_BALANCED_TREE: u32 = 29;
1937pub const FAST_FAIL_INVALID_NEXT_THREAD: u32 = 30;
1938pub const FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED: u32 = 31;
1939pub const FAST_FAIL_APCS_DISABLED: u32 = 32;
1940pub const FAST_FAIL_INVALID_IDLE_STATE: u32 = 33;
1941pub const FAST_FAIL_MRDATA_PROTECTION_FAILURE: u32 = 34;
1942pub const FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION: u32 = 35;
1943pub const FAST_FAIL_INVALID_LOCK_STATE: u32 = 36;
1944pub const FAST_FAIL_GUARD_JUMPTABLE: u32 = 37;
1945pub const FAST_FAIL_INVALID_LONGJUMP_TARGET: u32 = 38;
1946pub const FAST_FAIL_INVALID_DISPATCH_CONTEXT: u32 = 39;
1947pub const FAST_FAIL_INVALID_THREAD: u32 = 40;
1948pub const FAST_FAIL_INVALID_SYSCALL_NUMBER: u32 = 41;
1949pub const FAST_FAIL_INVALID_FILE_OPERATION: u32 = 42;
1950pub const FAST_FAIL_LPAC_ACCESS_DENIED: u32 = 43;
1951pub const FAST_FAIL_GUARD_SS_FAILURE: u32 = 44;
1952pub const FAST_FAIL_LOADER_CONTINUITY_FAILURE: u32 = 45;
1953pub const FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE: u32 = 46;
1954pub const FAST_FAIL_INVALID_CONTROL_STACK: u32 = 47;
1955pub const FAST_FAIL_SET_CONTEXT_DENIED: u32 = 48;
1956pub const FAST_FAIL_INVALID_IAT: u32 = 49;
1957pub const FAST_FAIL_HEAP_METADATA_CORRUPTION: u32 = 50;
1958pub const FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION: u32 = 51;
1959pub const FAST_FAIL_LOW_LABEL_ACCESS_DENIED: u32 = 52;
1960pub const FAST_FAIL_ENCLAVE_CALL_FAILURE: u32 = 53;
1961pub const FAST_FAIL_UNHANDLED_LSS_EXCEPTON: u32 = 54;
1962pub const FAST_FAIL_ADMINLESS_ACCESS_DENIED: u32 = 55;
1963pub const FAST_FAIL_UNEXPECTED_CALL: u32 = 56;
1964pub const FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS: u32 = 57;
1965pub const FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR: u32 = 58;
1966pub const FAST_FAIL_FLAGS_CORRUPTION: u32 = 59;
1967pub const FAST_FAIL_VEH_CORRUPTION: u32 = 60;
1968pub const FAST_FAIL_ETW_CORRUPTION: u32 = 61;
1969pub const FAST_FAIL_RIO_ABORT: u32 = 62;
1970pub const FAST_FAIL_INVALID_PFN: u32 = 63;
1971pub const FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG: u32 = 64;
1972pub const FAST_FAIL_CAST_GUARD: u32 = 65;
1973pub const FAST_FAIL_HOST_VISIBILITY_CHANGE: u32 = 66;
1974pub const FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST: u32 = 67;
1975pub const FAST_FAIL_PATCH_CALLBACK_FAILED: u32 = 68;
1976pub const FAST_FAIL_NTDLL_PATCH_FAILED: u32 = 69;
1977pub const FAST_FAIL_INVALID_FLS_DATA: u32 = 70;
1978pub const FAST_FAIL_INVALID_FAST_FAIL_CODE: u32 = 4294967295;
1979pub const RTL_QUERY_REGISTRY_SUBKEY: u32 = 1;
1980pub const RTL_QUERY_REGISTRY_TOPKEY: u32 = 2;
1981pub const RTL_QUERY_REGISTRY_REQUIRED: u32 = 4;
1982pub const RTL_QUERY_REGISTRY_NOVALUE: u32 = 8;
1983pub const RTL_QUERY_REGISTRY_NOEXPAND: u32 = 16;
1984pub const RTL_QUERY_REGISTRY_DIRECT: u32 = 32;
1985pub const RTL_QUERY_REGISTRY_DELETE: u32 = 64;
1986pub const RTL_QUERY_REGISTRY_NOSTRING: u32 = 128;
1987pub const RTL_QUERY_REGISTRY_TYPECHECK: u32 = 256;
1988pub const RTL_QUERY_REGISTRY_TYPECHECK_SHIFT: u32 = 24;
1989pub const RTL_QUERY_REGISTRY_TYPECHECK_MASK: u32 = 4278190080;
1990pub const RTL_REGISTRY_ABSOLUTE: u32 = 0;
1991pub const RTL_REGISTRY_SERVICES: u32 = 1;
1992pub const RTL_REGISTRY_CONTROL: u32 = 2;
1993pub const RTL_REGISTRY_WINDOWS_NT: u32 = 3;
1994pub const RTL_REGISTRY_DEVICEMAP: u32 = 4;
1995pub const RTL_REGISTRY_USER: u32 = 5;
1996pub const RTL_REGISTRY_MAXIMUM: u32 = 6;
1997pub const RTL_REGISTRY_HANDLE: u32 = 1073741824;
1998pub const RTL_REGISTRY_OPTIONAL: u32 = 2147483648;
1999pub const HASH_STRING_ALGORITHM_DEFAULT: u32 = 0;
2000pub const HASH_STRING_ALGORITHM_X65599: u32 = 1;
2001pub const HASH_STRING_ALGORITHM_INVALID: u32 = 4294967295;
2002pub const RTL_GUID_STRING_SIZE: u32 = 38;
2003pub const DBG_STATUS_CONTROL_C: u32 = 1;
2004pub const DBG_STATUS_SYSRQ: u32 = 2;
2005pub const DBG_STATUS_BUGCHECK_FIRST: u32 = 3;
2006pub const DBG_STATUS_BUGCHECK_SECOND: u32 = 4;
2007pub const DBG_STATUS_FATAL: u32 = 5;
2008pub const DBG_STATUS_DEBUG_CONTROL: u32 = 6;
2009pub const DBG_STATUS_WORKER: u32 = 7;
2010pub const LOWBYTE_MASK: u32 = 255;
2011pub const SHORT_LEAST_SIGNIFICANT_BIT: u32 = 0;
2012pub const SHORT_MOST_SIGNIFICANT_BIT: u32 = 1;
2013pub const LONG_LEAST_SIGNIFICANT_BIT: u32 = 0;
2014pub const LONG_3RD_MOST_SIGNIFICANT_BIT: u32 = 1;
2015pub const LONG_2ND_MOST_SIGNIFICANT_BIT: u32 = 2;
2016pub const LONG_MOST_SIGNIFICANT_BIT: u32 = 3;
2017pub const SEF_DACL_AUTO_INHERIT: u32 = 1;
2018pub const SEF_SACL_AUTO_INHERIT: u32 = 2;
2019pub const SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT: u32 = 4;
2020pub const SEF_AVOID_PRIVILEGE_CHECK: u32 = 8;
2021pub const SEF_AVOID_OWNER_CHECK: u32 = 16;
2022pub const SEF_DEFAULT_OWNER_FROM_PARENT: u32 = 32;
2023pub const SEF_DEFAULT_GROUP_FROM_PARENT: u32 = 64;
2024pub const SEF_MACL_NO_WRITE_UP: u32 = 256;
2025pub const SEF_MACL_NO_READ_UP: u32 = 512;
2026pub const SEF_MACL_NO_EXECUTE_UP: u32 = 1024;
2027pub const SEF_AI_USE_EXTRA_PARAMS: u32 = 2048;
2028pub const SEF_AVOID_OWNER_RESTRICTION: u32 = 4096;
2029pub const SEF_FORCE_USER_MODE: u32 = 8192;
2030pub const SEF_NORMALIZE_OUTPUT_DESCRIPTOR: u32 = 16384;
2031pub const SEF_MACL_VALID_FLAGS: u32 = 1792;
2032pub const VER_EQUAL: u32 = 1;
2033pub const VER_GREATER: u32 = 2;
2034pub const VER_GREATER_EQUAL: u32 = 3;
2035pub const VER_LESS: u32 = 4;
2036pub const VER_LESS_EQUAL: u32 = 5;
2037pub const VER_AND: u32 = 6;
2038pub const VER_OR: u32 = 7;
2039pub const VER_CONDITION_MASK: u32 = 7;
2040pub const VER_NUM_BITS_PER_CONDITION_MASK: u32 = 3;
2041pub const VER_MINORVERSION: u32 = 1;
2042pub const VER_MAJORVERSION: u32 = 2;
2043pub const VER_BUILDNUMBER: u32 = 4;
2044pub const VER_PLATFORMID: u32 = 8;
2045pub const VER_SERVICEPACKMINOR: u32 = 16;
2046pub const VER_SERVICEPACKMAJOR: u32 = 32;
2047pub const VER_SUITENAME: u32 = 64;
2048pub const VER_PRODUCT_TYPE: u32 = 128;
2049pub const VER_NT_WORKSTATION: u32 = 1;
2050pub const VER_NT_DOMAIN_CONTROLLER: u32 = 2;
2051pub const VER_NT_SERVER: u32 = 3;
2052pub const VER_PLATFORM_WIN32s: u32 = 0;
2053pub const VER_PLATFORM_WIN32_WINDOWS: u32 = 1;
2054pub const VER_PLATFORM_WIN32_NT: u32 = 2;
2055pub const DPFLTR_ERROR_LEVEL: u32 = 0;
2056pub const DPFLTR_WARNING_LEVEL: u32 = 1;
2057pub const DPFLTR_TRACE_LEVEL: u32 = 2;
2058pub const DPFLTR_INFO_LEVEL: u32 = 3;
2059pub const DPFLTR_MASK: u32 = 2147483648;
2060pub const VRL_PREDEFINED_CLASS_BEGIN: u32 = 1;
2061pub const VRL_CUSTOM_CLASS_BEGIN: u32 = 256;
2062pub const VRL_CLASS_CONSISTENCY: u32 = 1;
2063pub const VRL_ENABLE_KERNEL_BREAKS: u32 = 2147483648;
2064pub const CTMF_INCLUDE_APPCONTAINER: u32 = 1;
2065pub const CTMF_INCLUDE_LPAC: u32 = 2;
2066pub const CTMF_VALID_FLAGS: u32 = 3;
2067pub const IMAGE_POLICY_METADATA_VERSION: u32 = 1;
2068pub const IMAGE_POLICY_SECTION_NAME: &[u8; 9] = b".tPolicy\0";
2069pub const TRANSACTION_MANAGER_VOLATILE: u32 = 1;
2070pub const TRANSACTION_MANAGER_COMMIT_DEFAULT: u32 = 0;
2071pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME: u32 = 2;
2072pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES: u32 = 4;
2073pub const TRANSACTION_MANAGER_COMMIT_LOWEST: u32 = 8;
2074pub const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY: u32 = 16;
2075pub const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS: u32 = 32;
2076pub const TRANSACTION_MANAGER_MAXIMUM_OPTION: u32 = 63;
2077pub const TRANSACTION_DO_NOT_PROMOTE: u32 = 1;
2078pub const TRANSACTION_MAXIMUM_OPTION: u32 = 1;
2079pub const RESOURCE_MANAGER_VOLATILE: u32 = 1;
2080pub const RESOURCE_MANAGER_COMMUNICATION: u32 = 2;
2081pub const RESOURCE_MANAGER_MAXIMUM_OPTION: u32 = 3;
2082pub const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY: u32 = 1;
2083pub const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO: u32 = 2;
2084pub const CRM_PROTOCOL_MAXIMUM_OPTION: u32 = 3;
2085pub const ENLISTMENT_SUPERIOR: u32 = 1;
2086pub const ENLISTMENT_MAXIMUM_OPTION: u32 = 1;
2087pub const TRANSACTION_NOTIFY_MASK: u32 = 1073741823;
2088pub const TRANSACTION_NOTIFY_PREPREPARE: u32 = 1;
2089pub const TRANSACTION_NOTIFY_PREPARE: u32 = 2;
2090pub const TRANSACTION_NOTIFY_COMMIT: u32 = 4;
2091pub const TRANSACTION_NOTIFY_ROLLBACK: u32 = 8;
2092pub const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE: u32 = 16;
2093pub const TRANSACTION_NOTIFY_PREPARE_COMPLETE: u32 = 32;
2094pub const TRANSACTION_NOTIFY_COMMIT_COMPLETE: u32 = 64;
2095pub const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE: u32 = 128;
2096pub const TRANSACTION_NOTIFY_RECOVER: u32 = 256;
2097pub const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT: u32 = 512;
2098pub const TRANSACTION_NOTIFY_DELEGATE_COMMIT: u32 = 1024;
2099pub const TRANSACTION_NOTIFY_RECOVER_QUERY: u32 = 2048;
2100pub const TRANSACTION_NOTIFY_ENLIST_PREPREPARE: u32 = 4096;
2101pub const TRANSACTION_NOTIFY_LAST_RECOVER: u32 = 8192;
2102pub const TRANSACTION_NOTIFY_INDOUBT: u32 = 16384;
2103pub const TRANSACTION_NOTIFY_PROPAGATE_PULL: u32 = 32768;
2104pub const TRANSACTION_NOTIFY_PROPAGATE_PUSH: u32 = 65536;
2105pub const TRANSACTION_NOTIFY_MARSHAL: u32 = 131072;
2106pub const TRANSACTION_NOTIFY_ENLIST_MASK: u32 = 262144;
2107pub const TRANSACTION_NOTIFY_RM_DISCONNECTED: u32 = 16777216;
2108pub const TRANSACTION_NOTIFY_TM_ONLINE: u32 = 33554432;
2109pub const TRANSACTION_NOTIFY_COMMIT_REQUEST: u32 = 67108864;
2110pub const TRANSACTION_NOTIFY_PROMOTE: u32 = 134217728;
2111pub const TRANSACTION_NOTIFY_PROMOTE_NEW: u32 = 268435456;
2112pub const TRANSACTION_NOTIFY_REQUEST_OUTCOME: u32 = 536870912;
2113pub const TRANSACTION_NOTIFY_COMMIT_FINALIZE: u32 = 1073741824;
2114pub const TRANSACTIONMANAGER_OBJECT_PATH: &[u8; 21] = b"\\TransactionManager\\\0";
2115pub const TRANSACTION_OBJECT_PATH: &[u8; 14] = b"\\Transaction\\\0";
2116pub const ENLISTMENT_OBJECT_PATH: &[u8; 13] = b"\\Enlistment\\\0";
2117pub const RESOURCE_MANAGER_OBJECT_PATH: &[u8; 18] = b"\\ResourceManager\\\0";
2118pub const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED: u32 = 1;
2119pub const KTM_MARSHAL_BLOB_VERSION_MAJOR: u32 = 1;
2120pub const KTM_MARSHAL_BLOB_VERSION_MINOR: u32 = 1;
2121pub const MAX_TRANSACTION_DESCRIPTION_LENGTH: u32 = 64;
2122pub const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH: u32 = 64;
2123pub const TRANSACTIONMANAGER_QUERY_INFORMATION: u32 = 1;
2124pub const TRANSACTIONMANAGER_SET_INFORMATION: u32 = 2;
2125pub const TRANSACTIONMANAGER_RECOVER: u32 = 4;
2126pub const TRANSACTIONMANAGER_RENAME: u32 = 8;
2127pub const TRANSACTIONMANAGER_CREATE_RM: u32 = 16;
2128pub const TRANSACTIONMANAGER_BIND_TRANSACTION: u32 = 32;
2129pub const TRANSACTIONMANAGER_GENERIC_READ: u32 = 131073;
2130pub const TRANSACTIONMANAGER_GENERIC_WRITE: u32 = 131102;
2131pub const TRANSACTIONMANAGER_GENERIC_EXECUTE: u32 = 131072;
2132pub const TRANSACTIONMANAGER_ALL_ACCESS: u32 = 983103;
2133pub const TRANSACTION_QUERY_INFORMATION: u32 = 1;
2134pub const TRANSACTION_SET_INFORMATION: u32 = 2;
2135pub const TRANSACTION_ENLIST: u32 = 4;
2136pub const TRANSACTION_COMMIT: u32 = 8;
2137pub const TRANSACTION_ROLLBACK: u32 = 16;
2138pub const TRANSACTION_PROPAGATE: u32 = 32;
2139pub const TRANSACTION_RIGHT_RESERVED1: u32 = 64;
2140pub const TRANSACTION_GENERIC_READ: u32 = 1179649;
2141pub const TRANSACTION_GENERIC_WRITE: u32 = 1179710;
2142pub const TRANSACTION_GENERIC_EXECUTE: u32 = 1179672;
2143pub const TRANSACTION_ALL_ACCESS: u32 = 2031679;
2144pub const TRANSACTION_RESOURCE_MANAGER_RIGHTS: u32 = 1179703;
2145pub const RESOURCEMANAGER_QUERY_INFORMATION: u32 = 1;
2146pub const RESOURCEMANAGER_SET_INFORMATION: u32 = 2;
2147pub const RESOURCEMANAGER_RECOVER: u32 = 4;
2148pub const RESOURCEMANAGER_ENLIST: u32 = 8;
2149pub const RESOURCEMANAGER_GET_NOTIFICATION: u32 = 16;
2150pub const RESOURCEMANAGER_REGISTER_PROTOCOL: u32 = 32;
2151pub const RESOURCEMANAGER_COMPLETE_PROPAGATION: u32 = 64;
2152pub const RESOURCEMANAGER_GENERIC_READ: u32 = 1179649;
2153pub const RESOURCEMANAGER_GENERIC_WRITE: u32 = 1179774;
2154pub const RESOURCEMANAGER_GENERIC_EXECUTE: u32 = 1179740;
2155pub const RESOURCEMANAGER_ALL_ACCESS: u32 = 2031743;
2156pub const ENLISTMENT_QUERY_INFORMATION: u32 = 1;
2157pub const ENLISTMENT_SET_INFORMATION: u32 = 2;
2158pub const ENLISTMENT_RECOVER: u32 = 4;
2159pub const ENLISTMENT_SUBORDINATE_RIGHTS: u32 = 8;
2160pub const ENLISTMENT_SUPERIOR_RIGHTS: u32 = 16;
2161pub const ENLISTMENT_GENERIC_READ: u32 = 131073;
2162pub const ENLISTMENT_GENERIC_WRITE: u32 = 131102;
2163pub const ENLISTMENT_GENERIC_EXECUTE: u32 = 131100;
2164pub const ENLISTMENT_ALL_ACCESS: u32 = 983071;
2165pub const POOL_TAGGING: u32 = 1;
2166pub const DPC_NORMAL: u32 = 0;
2167pub const DPC_THREADED: u32 = 1;
2168pub const PAGE_SIZE: u32 = 4096;
2169pub const PAGE_SHIFT: u32 = 12;
2170pub const MDL_MAPPED_TO_SYSTEM_VA: u32 = 1;
2171pub const MDL_PAGES_LOCKED: u32 = 2;
2172pub const MDL_SOURCE_IS_NONPAGED_POOL: u32 = 4;
2173pub const MDL_ALLOCATED_FIXED_SIZE: u32 = 8;
2174pub const MDL_PARTIAL: u32 = 16;
2175pub const MDL_PARTIAL_HAS_BEEN_MAPPED: u32 = 32;
2176pub const MDL_IO_PAGE_READ: u32 = 64;
2177pub const MDL_WRITE_OPERATION: u32 = 128;
2178pub const MDL_LOCKED_PAGE_TABLES: u32 = 256;
2179pub const MDL_PARENT_MAPPED_SYSTEM_VA: u32 = 256;
2180pub const MDL_FREE_EXTRA_PTES: u32 = 512;
2181pub const MDL_DESCRIBES_AWE: u32 = 1024;
2182pub const MDL_IO_SPACE: u32 = 2048;
2183pub const MDL_NETWORK_HEADER: u32 = 4096;
2184pub const MDL_MAPPING_CAN_FAIL: u32 = 8192;
2185pub const MDL_PAGE_CONTENTS_INVARIANT: u32 = 16384;
2186pub const MDL_ALLOCATED_MUST_SUCCEED: u32 = 16384;
2187pub const MDL_INTERNAL: u32 = 32768;
2188pub const TIMER_TOLERABLE_DELAY_BITS: u32 = 6;
2189pub const TIMER_EXPIRED_INDEX_BITS: u32 = 6;
2190pub const TIMER_PROCESSOR_INDEX_BITS: u32 = 5;
2191pub const FLUSH_MULTIPLE_MAXIMUM: u32 = 19;
2192pub const ALLOC_PRAGMA: u32 = 1;
2193pub const ALLOC_DATA_PRAGMA: u32 = 1;
2194pub const EVENT_QUERY_STATE: u32 = 1;
2195pub const EVENT_MODIFY_STATE: u32 = 2;
2196pub const EVENT_ALL_ACCESS: u32 = 2031619;
2197pub const SEMAPHORE_QUERY_STATE: u32 = 1;
2198pub const SEMAPHORE_MODIFY_STATE: u32 = 2;
2199pub const SEMAPHORE_ALL_ACCESS: u32 = 2031619;
2200pub const LTP_PC_SMT: u32 = 1;
2201pub const CACHE_FULLY_ASSOCIATIVE: u32 = 255;
2202pub const SYSTEM_CPU_SET_INFORMATION_PARKED: u32 = 1;
2203pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED: u32 = 2;
2204pub const SYSTEM_CPU_SET_INFORMATION_ALLOCATED_TO_TARGET_PROCESS: u32 = 4;
2205pub const SYSTEM_CPU_SET_INFORMATION_REALTIME: u32 = 8;
2206pub const PF_FLOATING_POINT_PRECISION_ERRATA: u32 = 0;
2207pub const PF_FLOATING_POINT_EMULATED: u32 = 1;
2208pub const PF_COMPARE_EXCHANGE_DOUBLE: u32 = 2;
2209pub const PF_MMX_INSTRUCTIONS_AVAILABLE: u32 = 3;
2210pub const PF_PPC_MOVEMEM_64BIT_OK: u32 = 4;
2211pub const PF_ALPHA_BYTE_INSTRUCTIONS: u32 = 5;
2212pub const PF_XMMI_INSTRUCTIONS_AVAILABLE: u32 = 6;
2213pub const PF_3DNOW_INSTRUCTIONS_AVAILABLE: u32 = 7;
2214pub const PF_RDTSC_INSTRUCTION_AVAILABLE: u32 = 8;
2215pub const PF_PAE_ENABLED: u32 = 9;
2216pub const PF_XMMI64_INSTRUCTIONS_AVAILABLE: u32 = 10;
2217pub const PF_SSE_DAZ_MODE_AVAILABLE: u32 = 11;
2218pub const PF_NX_ENABLED: u32 = 12;
2219pub const PF_SSE3_INSTRUCTIONS_AVAILABLE: u32 = 13;
2220pub const PF_COMPARE_EXCHANGE128: u32 = 14;
2221pub const PF_COMPARE64_EXCHANGE128: u32 = 15;
2222pub const PF_CHANNELS_ENABLED: u32 = 16;
2223pub const PF_XSAVE_ENABLED: u32 = 17;
2224pub const PF_ARM_VFP_32_REGISTERS_AVAILABLE: u32 = 18;
2225pub const PF_ARM_NEON_INSTRUCTIONS_AVAILABLE: u32 = 19;
2226pub const PF_SECOND_LEVEL_ADDRESS_TRANSLATION: u32 = 20;
2227pub const PF_VIRT_FIRMWARE_ENABLED: u32 = 21;
2228pub const PF_RDWRFSGSBASE_AVAILABLE: u32 = 22;
2229pub const PF_FASTFAIL_AVAILABLE: u32 = 23;
2230pub const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE: u32 = 24;
2231pub const PF_ARM_64BIT_LOADSTORE_ATOMIC: u32 = 25;
2232pub const PF_ARM_EXTERNAL_CACHE_AVAILABLE: u32 = 26;
2233pub const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE: u32 = 27;
2234pub const PF_RDRAND_INSTRUCTION_AVAILABLE: u32 = 28;
2235pub const PF_ARM_V8_INSTRUCTIONS_AVAILABLE: u32 = 29;
2236pub const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE: u32 = 30;
2237pub const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE: u32 = 31;
2238pub const PF_RDTSCP_INSTRUCTION_AVAILABLE: u32 = 32;
2239pub const PF_RDPID_INSTRUCTION_AVAILABLE: u32 = 33;
2240pub const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE: u32 = 34;
2241pub const PF_MONITORX_INSTRUCTION_AVAILABLE: u32 = 35;
2242pub const PF_SSSE3_INSTRUCTIONS_AVAILABLE: u32 = 36;
2243pub const PF_SSE4_1_INSTRUCTIONS_AVAILABLE: u32 = 37;
2244pub const PF_SSE4_2_INSTRUCTIONS_AVAILABLE: u32 = 38;
2245pub const PF_AVX_INSTRUCTIONS_AVAILABLE: u32 = 39;
2246pub const PF_AVX2_INSTRUCTIONS_AVAILABLE: u32 = 40;
2247pub const PF_AVX512F_INSTRUCTIONS_AVAILABLE: u32 = 41;
2248pub const PF_ERMS_AVAILABLE: u32 = 42;
2249pub const PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE: u32 = 43;
2250pub const PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE: u32 = 44;
2251pub const PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE: u32 = 45;
2252pub const IsNEC_98: u32 = 0;
2253pub const IsNotNEC_98: u32 = 1;
2254pub const PROCESSOR_FEATURE_MAX: u32 = 64;
2255pub const EXCEPTION_NONCONTINUABLE: u32 = 1;
2256pub const EXCEPTION_UNWINDING: u32 = 2;
2257pub const EXCEPTION_EXIT_UNWIND: u32 = 4;
2258pub const EXCEPTION_STACK_INVALID: u32 = 8;
2259pub const EXCEPTION_NESTED_CALL: u32 = 16;
2260pub const EXCEPTION_TARGET_UNWIND: u32 = 32;
2261pub const EXCEPTION_COLLIDED_UNWIND: u32 = 64;
2262pub const EXCEPTION_SOFTWARE_ORIGINATE: u32 = 128;
2263pub const EXCEPTION_UNWIND: u32 = 102;
2264pub const EXCEPTION_MAXIMUM_PARAMETERS: u32 = 15;
2265pub const THREAD_WAIT_OBJECTS: u32 = 3;
2266pub const SINGLE_GROUP_LEGACY_API: u32 = 1;
2267pub const KB_SECONDARY_DATA_FLAG_ADDITIONAL_DATA: u32 = 1;
2268pub const KB_SECONDARY_DATA_FLAG_NO_DEVICE_ACCESS: u32 = 2;
2269pub const KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS: u32 = 1;
2270pub const KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS: u32 = 2;
2271pub const KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST: u32 = 2147483648;
2272pub const KB_REMOVE_PAGES_FLAG_VIRTUAL_ADDRESS: u32 = 1;
2273pub const KB_REMOVE_PAGES_FLAG_PHYSICAL_ADDRESS: u32 = 2;
2274pub const KB_REMOVE_PAGES_FLAG_ADDITIONAL_RANGES_EXIST: u32 = 2147483648;
2275pub const KE_MAX_TRIAGE_DUMP_DATA_MEMORY_SIZE: u32 = 33554432;
2276pub const KB_TRIAGE_DUMP_DATA_FLAG_BUGCHECK_ACTIVE: u32 = 1;
2277pub const EXCEPTION_DIVIDED_BY_ZERO: u32 = 0;
2278pub const EXCEPTION_DEBUG: u32 = 1;
2279pub const EXCEPTION_NMI: u32 = 2;
2280pub const EXCEPTION_INT3: u32 = 3;
2281pub const EXCEPTION_BOUND_CHECK: u32 = 5;
2282pub const EXCEPTION_INVALID_OPCODE: u32 = 6;
2283pub const EXCEPTION_NPX_NOT_AVAILABLE: u32 = 7;
2284pub const EXCEPTION_DOUBLE_FAULT: u32 = 8;
2285pub const EXCEPTION_NPX_OVERRUN: u32 = 9;
2286pub const EXCEPTION_INVALID_TSS: u32 = 10;
2287pub const EXCEPTION_SEGMENT_NOT_PRESENT: u32 = 11;
2288pub const EXCEPTION_STACK_FAULT: u32 = 12;
2289pub const EXCEPTION_GP_FAULT: u32 = 13;
2290pub const EXCEPTION_RESERVED_TRAP: u32 = 15;
2291pub const EXCEPTION_NPX_ERROR: u32 = 16;
2292pub const EXCEPTION_ALIGNMENT_CHECK: u32 = 17;
2293pub const EXCEPTION_CP_FAULT: u32 = 21;
2294pub const EXCEPTION_SE_FAULT: u32 = 23;
2295pub const EXCEPTION_VIRTUALIZATION_FAULT: u32 = 32;
2296pub const KE_PROCESSOR_CHANGE_ADD_EXISTING: u32 = 1;
2297pub const INVALID_PROCESSOR_INDEX: u32 = 4294967295;
2298pub const POOL_COLD_ALLOCATION: u32 = 256;
2299pub const POOL_NX_ALLOCATION: u32 = 512;
2300pub const POOL_ZERO_ALLOCATION: u32 = 1024;
2301pub const POOL_QUOTA_FAIL_INSTEAD_OF_RAISE: u32 = 8;
2302pub const POOL_RAISE_IF_ALLOCATION_FAILURE: u32 = 16;
2303pub const POOL_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8;
2304pub const POOL_EXTENDED_PARAMETER_REQUIRED_FIELD_BITS: u32 = 1;
2305pub const POOL_EXTENDED_PARAMETER_RESERVED_BITS: u32 = 55;
2306pub const SECURE_POOL_FLAGS_NONE: u32 = 0;
2307pub const SECURE_POOL_FLAGS_FREEABLE: u32 = 1;
2308pub const SECURE_POOL_FLAGS_MODIFIABLE: u32 = 2;
2309pub const POOL_CREATE_FLG_SECURE_POOL: u32 = 1;
2310pub const POOL_CREATE_FLG_USE_GLOBAL_POOL: u32 = 2;
2311pub const POOL_CREATE_FLG_VALID_FLAGS: u32 = 3;
2312pub const POOL_CREATE_PARAMS_VERSION: u32 = 1;
2313pub const FM_LOCK_BIT: u32 = 1;
2314pub const FM_LOCK_BIT_V: u32 = 0;
2315pub const EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL: u32 = 1;
2316pub const EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE: u32 = 2;
2317pub const EX_MAXIMUM_LOOKASIDE_DEPTH_BASE: u32 = 256;
2318pub const EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT: u32 = 1024;
2319pub const ResourceNeverExclusive: u32 = 16;
2320pub const ResourceReleaseByOtherThread: u32 = 32;
2321pub const ResourceOwnedExclusive: u32 = 128;
2322pub const RESOURCE_HASH_TABLE_SIZE: u32 = 64;
2323pub const FLAG_OWNER_POINTER_IS_THREAD: u32 = 1;
2324pub const EX_RUNDOWN_ACTIVE: u32 = 1;
2325pub const EX_RUNDOWN_COUNT_SHIFT: u32 = 1;
2326pub const EX_RUNDOWN_COUNT_INC: u32 = 2;
2327pub const EX_TIMER_HIGH_RESOLUTION: u32 = 4;
2328pub const EX_TIMER_NO_WAKE: u32 = 8;
2329pub const EX_TIMER_NOTIFICATION: u32 = 2147483648;
2330pub const EX_CARR_ALLOCATE_PAGED_POOL: u32 = 0;
2331pub const EX_CARR_ALLOCATE_NONPAGED_POOL: u32 = 1;
2332pub const EX_CARR_DISABLE_EXPANSION: u32 = 2;
2333pub const EX_CARR_VALID_FLAGS: u32 = 3;
2334pub const EX_DEFAULT_PUSH_LOCK_FLAGS: u32 = 0;
2335pub const ATS_DEVICE_SVM_OPTOUT: u32 = 1;
2336pub const EVENT_INCREMENT: u32 = 1;
2337pub const IO_NO_INCREMENT: u32 = 0;
2338pub const IO_CD_ROM_INCREMENT: u32 = 1;
2339pub const IO_DISK_INCREMENT: u32 = 1;
2340pub const IO_KEYBOARD_INCREMENT: u32 = 6;
2341pub const IO_MAILSLOT_INCREMENT: u32 = 2;
2342pub const IO_MOUSE_INCREMENT: u32 = 6;
2343pub const IO_NAMED_PIPE_INCREMENT: u32 = 2;
2344pub const IO_NETWORK_INCREMENT: u32 = 2;
2345pub const IO_PARALLEL_INCREMENT: u32 = 1;
2346pub const IO_SERIAL_INCREMENT: u32 = 2;
2347pub const IO_SOUND_INCREMENT: u32 = 8;
2348pub const IO_VIDEO_INCREMENT: u32 = 1;
2349pub const SEMAPHORE_INCREMENT: u32 = 1;
2350pub const MM_MAXIMUM_DISK_IO_SIZE: u32 = 65536;
2351pub const MM_PERMANENT_ADDRESS_IS_IO_SPACE: u32 = 1;
2352pub const MM_DUMP_MAP_CACHED: u32 = 1;
2353pub const MM_DUMP_MAP_INVALIDATE: u32 = 2;
2354pub const MdlMappingNoWrite: u32 = 2147483648;
2355pub const MdlMappingNoExecute: u32 = 1073741824;
2356pub const MdlMappingWithGuardPtes: u32 = 536870912;
2357pub const MM_MAPPING_ADDRESS_DIVISIBLE: u32 = 1;
2358pub const MM_DONT_ZERO_ALLOCATION: u32 = 1;
2359pub const MM_ALLOCATE_FROM_LOCAL_NODE_ONLY: u32 = 2;
2360pub const MM_ALLOCATE_FULLY_REQUIRED: u32 = 4;
2361pub const MM_ALLOCATE_NO_WAIT: u32 = 8;
2362pub const MM_ALLOCATE_PREFER_CONTIGUOUS: u32 = 16;
2363pub const MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS: u32 = 32;
2364pub const MM_ALLOCATE_FAST_LARGE_PAGES: u32 = 64;
2365pub const MM_ALLOCATE_TRIM_IF_NECESSARY: u32 = 128;
2366pub const MM_ALLOCATE_AND_HOT_REMOVE: u32 = 256;
2367pub const MM_FREE_MDL_PAGES_ZERO: u32 = 1;
2368pub const MM_ANY_NODE_OK: u32 = 2147483648;
2369pub const MM_ALLOCATE_CONTIGUOUS_MEMORY_FAST_ONLY: u32 = 1;
2370pub const MM_PROTECT_DRIVER_SECTION_ALLOW_UNLOAD: u32 = 1;
2371pub const MM_PROTECT_DRIVER_SECTION_VALID_FLAGS: u32 = 1;
2372pub const INITIAL_PRIVILEGE_COUNT: u32 = 3;
2373pub const IO_TYPE_ADAPTER: u32 = 1;
2374pub const IO_TYPE_CONTROLLER: u32 = 2;
2375pub const IO_TYPE_DEVICE: u32 = 3;
2376pub const IO_TYPE_DRIVER: u32 = 4;
2377pub const IO_TYPE_FILE: u32 = 5;
2378pub const IO_TYPE_IRP: u32 = 6;
2379pub const IO_TYPE_MASTER_ADAPTER: u32 = 7;
2380pub const IO_TYPE_OPEN_PACKET: u32 = 8;
2381pub const IO_TYPE_TIMER: u32 = 9;
2382pub const IO_TYPE_VPB: u32 = 10;
2383pub const IO_TYPE_ERROR_LOG: u32 = 11;
2384pub const IO_TYPE_ERROR_MESSAGE: u32 = 12;
2385pub const IO_TYPE_DEVICE_OBJECT_EXTENSION: u32 = 13;
2386pub const IO_TYPE_IORING: u32 = 14;
2387pub const IRP_MJ_CREATE: u32 = 0;
2388pub const IRP_MJ_CREATE_NAMED_PIPE: u32 = 1;
2389pub const IRP_MJ_CLOSE: u32 = 2;
2390pub const IRP_MJ_READ: u32 = 3;
2391pub const IRP_MJ_WRITE: u32 = 4;
2392pub const IRP_MJ_QUERY_INFORMATION: u32 = 5;
2393pub const IRP_MJ_SET_INFORMATION: u32 = 6;
2394pub const IRP_MJ_QUERY_EA: u32 = 7;
2395pub const IRP_MJ_SET_EA: u32 = 8;
2396pub const IRP_MJ_FLUSH_BUFFERS: u32 = 9;
2397pub const IRP_MJ_QUERY_VOLUME_INFORMATION: u32 = 10;
2398pub const IRP_MJ_SET_VOLUME_INFORMATION: u32 = 11;
2399pub const IRP_MJ_DIRECTORY_CONTROL: u32 = 12;
2400pub const IRP_MJ_FILE_SYSTEM_CONTROL: u32 = 13;
2401pub const IRP_MJ_DEVICE_CONTROL: u32 = 14;
2402pub const IRP_MJ_INTERNAL_DEVICE_CONTROL: u32 = 15;
2403pub const IRP_MJ_SHUTDOWN: u32 = 16;
2404pub const IRP_MJ_LOCK_CONTROL: u32 = 17;
2405pub const IRP_MJ_CLEANUP: u32 = 18;
2406pub const IRP_MJ_CREATE_MAILSLOT: u32 = 19;
2407pub const IRP_MJ_QUERY_SECURITY: u32 = 20;
2408pub const IRP_MJ_SET_SECURITY: u32 = 21;
2409pub const IRP_MJ_POWER: u32 = 22;
2410pub const IRP_MJ_SYSTEM_CONTROL: u32 = 23;
2411pub const IRP_MJ_DEVICE_CHANGE: u32 = 24;
2412pub const IRP_MJ_QUERY_QUOTA: u32 = 25;
2413pub const IRP_MJ_SET_QUOTA: u32 = 26;
2414pub const IRP_MJ_PNP: u32 = 27;
2415pub const IRP_MJ_PNP_POWER: u32 = 27;
2416pub const IRP_MJ_MAXIMUM_FUNCTION: u32 = 27;
2417pub const IRP_MJ_SCSI: u32 = 15;
2418pub const IRP_MN_SCSI_CLASS: u32 = 1;
2419pub const IRP_MN_START_DEVICE: u32 = 0;
2420pub const IRP_MN_QUERY_REMOVE_DEVICE: u32 = 1;
2421pub const IRP_MN_REMOVE_DEVICE: u32 = 2;
2422pub const IRP_MN_CANCEL_REMOVE_DEVICE: u32 = 3;
2423pub const IRP_MN_STOP_DEVICE: u32 = 4;
2424pub const IRP_MN_QUERY_STOP_DEVICE: u32 = 5;
2425pub const IRP_MN_CANCEL_STOP_DEVICE: u32 = 6;
2426pub const IRP_MN_QUERY_DEVICE_RELATIONS: u32 = 7;
2427pub const IRP_MN_QUERY_INTERFACE: u32 = 8;
2428pub const IRP_MN_QUERY_CAPABILITIES: u32 = 9;
2429pub const IRP_MN_QUERY_RESOURCES: u32 = 10;
2430pub const IRP_MN_QUERY_RESOURCE_REQUIREMENTS: u32 = 11;
2431pub const IRP_MN_QUERY_DEVICE_TEXT: u32 = 12;
2432pub const IRP_MN_FILTER_RESOURCE_REQUIREMENTS: u32 = 13;
2433pub const IRP_MN_READ_CONFIG: u32 = 15;
2434pub const IRP_MN_WRITE_CONFIG: u32 = 16;
2435pub const IRP_MN_EJECT: u32 = 17;
2436pub const IRP_MN_SET_LOCK: u32 = 18;
2437pub const IRP_MN_QUERY_ID: u32 = 19;
2438pub const IRP_MN_QUERY_PNP_DEVICE_STATE: u32 = 20;
2439pub const IRP_MN_QUERY_BUS_INFORMATION: u32 = 21;
2440pub const IRP_MN_DEVICE_USAGE_NOTIFICATION: u32 = 22;
2441pub const IRP_MN_SURPRISE_REMOVAL: u32 = 23;
2442pub const IRP_MN_DEVICE_ENUMERATED: u32 = 25;
2443pub const IRP_MN_WAIT_WAKE: u32 = 0;
2444pub const IRP_MN_POWER_SEQUENCE: u32 = 1;
2445pub const IRP_MN_SET_POWER: u32 = 2;
2446pub const IRP_MN_QUERY_POWER: u32 = 3;
2447pub const IRP_MN_QUERY_ALL_DATA: u32 = 0;
2448pub const IRP_MN_QUERY_SINGLE_INSTANCE: u32 = 1;
2449pub const IRP_MN_CHANGE_SINGLE_INSTANCE: u32 = 2;
2450pub const IRP_MN_CHANGE_SINGLE_ITEM: u32 = 3;
2451pub const IRP_MN_ENABLE_EVENTS: u32 = 4;
2452pub const IRP_MN_DISABLE_EVENTS: u32 = 5;
2453pub const IRP_MN_ENABLE_COLLECTION: u32 = 6;
2454pub const IRP_MN_DISABLE_COLLECTION: u32 = 7;
2455pub const IRP_MN_REGINFO: u32 = 8;
2456pub const IRP_MN_EXECUTE_METHOD: u32 = 9;
2457pub const IRP_MN_REGINFO_EX: u32 = 11;
2458pub const IO_FORCE_ACCESS_CHECK: u32 = 1;
2459pub const IO_NO_PARAMETER_CHECKING: u32 = 256;
2460pub const IO_REPARSE: u32 = 0;
2461pub const IO_REMOUNT: u32 = 1;
2462pub const IO_REPARSE_GLOBAL: u32 = 2;
2463pub const VPB_MOUNTED: u32 = 1;
2464pub const VPB_LOCKED: u32 = 2;
2465pub const VPB_PERSISTENT: u32 = 4;
2466pub const VPB_REMOVE_PENDING: u32 = 8;
2467pub const VPB_RAW_MOUNT: u32 = 16;
2468pub const VPB_DIRECT_WRITES_ALLOWED: u32 = 32;
2469pub const VPB_FLAGS_BYPASSIO_BLOCKED: u32 = 64;
2470pub const VPB_DISMOUNTING: u32 = 128;
2471pub const DO_VERIFY_VOLUME: u32 = 2;
2472pub const DO_BUFFERED_IO: u32 = 4;
2473pub const DO_EXCLUSIVE: u32 = 8;
2474pub const DO_DIRECT_IO: u32 = 16;
2475pub const DO_MAP_IO_BUFFER: u32 = 32;
2476pub const DO_DEVICE_INITIALIZING: u32 = 128;
2477pub const DO_SHUTDOWN_REGISTERED: u32 = 2048;
2478pub const DO_BUS_ENUMERATED_DEVICE: u32 = 4096;
2479pub const DO_POWER_PAGABLE: u32 = 8192;
2480pub const DO_POWER_INRUSH: u32 = 16384;
2481pub const DO_DEVICE_TO_BE_RESET: u32 = 67108864;
2482pub const DO_DAX_VOLUME: u32 = 268435456;
2483pub const DRVO_UNLOAD_INVOKED: u32 = 1;
2484pub const DRVO_LEGACY_DRIVER: u32 = 2;
2485pub const DRVO_BUILTIN_DRIVER: u32 = 4;
2486pub const FO_FILE_OPEN: u32 = 1;
2487pub const FO_SYNCHRONOUS_IO: u32 = 2;
2488pub const FO_ALERTABLE_IO: u32 = 4;
2489pub const FO_NO_INTERMEDIATE_BUFFERING: u32 = 8;
2490pub const FO_WRITE_THROUGH: u32 = 16;
2491pub const FO_SEQUENTIAL_ONLY: u32 = 32;
2492pub const FO_CACHE_SUPPORTED: u32 = 64;
2493pub const FO_NAMED_PIPE: u32 = 128;
2494pub const FO_STREAM_FILE: u32 = 256;
2495pub const FO_MAILSLOT: u32 = 512;
2496pub const FO_GENERATE_AUDIT_ON_CLOSE: u32 = 1024;
2497pub const FO_QUEUE_IRP_TO_THREAD: u32 = 1024;
2498pub const FO_DIRECT_DEVICE_OPEN: u32 = 2048;
2499pub const FO_FILE_MODIFIED: u32 = 4096;
2500pub const FO_FILE_SIZE_CHANGED: u32 = 8192;
2501pub const FO_CLEANUP_COMPLETE: u32 = 16384;
2502pub const FO_TEMPORARY_FILE: u32 = 32768;
2503pub const FO_DELETE_ON_CLOSE: u32 = 65536;
2504pub const FO_OPENED_CASE_SENSITIVE: u32 = 131072;
2505pub const FO_HANDLE_CREATED: u32 = 262144;
2506pub const FO_FILE_FAST_IO_READ: u32 = 524288;
2507pub const FO_RANDOM_ACCESS: u32 = 1048576;
2508pub const FO_FILE_OPEN_CANCELLED: u32 = 2097152;
2509pub const FO_VOLUME_OPEN: u32 = 4194304;
2510pub const FO_BYPASS_IO_ENABLED: u32 = 8388608;
2511pub const FO_REMOTE_ORIGIN: u32 = 16777216;
2512pub const FO_DISALLOW_EXCLUSIVE: u32 = 33554432;
2513pub const FO_SKIP_COMPLETION_PORT: u32 = 33554432;
2514pub const FO_SKIP_SET_EVENT: u32 = 67108864;
2515pub const FO_SKIP_SET_FAST_IO: u32 = 134217728;
2516pub const FO_INDIRECT_WAIT_OBJECT: u32 = 268435456;
2517pub const FO_SECTION_MINSTORE_TREATMENT: u32 = 536870912;
2518pub const FO_FLAGS_VALID_ONLY_DURING_CREATE: u32 = 33554432;
2519pub const IRP_NOCACHE: u32 = 1;
2520pub const IRP_PAGING_IO: u32 = 2;
2521pub const IRP_MOUNT_COMPLETION: u32 = 2;
2522pub const IRP_SYNCHRONOUS_API: u32 = 4;
2523pub const IRP_ASSOCIATED_IRP: u32 = 8;
2524pub const IRP_BUFFERED_IO: u32 = 16;
2525pub const IRP_DEALLOCATE_BUFFER: u32 = 32;
2526pub const IRP_INPUT_OPERATION: u32 = 64;
2527pub const IRP_SYNCHRONOUS_PAGING_IO: u32 = 64;
2528pub const IRP_CREATE_OPERATION: u32 = 128;
2529pub const IRP_READ_OPERATION: u32 = 256;
2530pub const IRP_WRITE_OPERATION: u32 = 512;
2531pub const IRP_CLOSE_OPERATION: u32 = 1024;
2532pub const IRP_DEFER_IO_COMPLETION: u32 = 2048;
2533pub const IRP_OB_QUERY_NAME: u32 = 4096;
2534pub const IRP_HOLD_DEVICE_QUEUE: u32 = 8192;
2535pub const IRP_UM_DRIVER_INITIATED_IO: u32 = 4194304;
2536pub const IRP_QUOTA_CHARGED: u32 = 1;
2537pub const IRP_ALLOCATED_MUST_SUCCEED: u32 = 2;
2538pub const IRP_ALLOCATED_FIXED_SIZE: u32 = 4;
2539pub const IRP_LOOKASIDE_ALLOCATION: u32 = 8;
2540pub const SL_PENDING_RETURNED: u32 = 1;
2541pub const SL_ERROR_RETURNED: u32 = 2;
2542pub const SL_INVOKE_ON_CANCEL: u32 = 32;
2543pub const SL_INVOKE_ON_SUCCESS: u32 = 64;
2544pub const SL_INVOKE_ON_ERROR: u32 = 128;
2545pub const SL_FORCE_ACCESS_CHECK: u32 = 1;
2546pub const SL_OPEN_PAGING_FILE: u32 = 2;
2547pub const SL_OPEN_TARGET_DIRECTORY: u32 = 4;
2548pub const SL_STOP_ON_SYMLINK: u32 = 8;
2549pub const SL_IGNORE_READONLY_ATTRIBUTE: u32 = 64;
2550pub const SL_CASE_SENSITIVE: u32 = 128;
2551pub const SL_KEY_SPECIFIED: u32 = 1;
2552pub const SL_OVERRIDE_VERIFY_VOLUME: u32 = 2;
2553pub const SL_WRITE_THROUGH: u32 = 4;
2554pub const SL_FT_SEQUENTIAL_WRITE: u32 = 8;
2555pub const SL_FORCE_DIRECT_WRITE: u32 = 16;
2556pub const SL_REALTIME_STREAM: u32 = 32;
2557pub const SL_PERSISTENT_MEMORY_FIXED_MAPPING: u32 = 32;
2558pub const SL_BYPASS_IO: u32 = 64;
2559pub const SL_FORCE_ASYNCHRONOUS: u32 = 1;
2560pub const SL_READ_ACCESS_GRANTED: u32 = 1;
2561pub const SL_WRITE_ACCESS_GRANTED: u32 = 4;
2562pub const SL_FAIL_IMMEDIATELY: u32 = 1;
2563pub const SL_EXCLUSIVE_LOCK: u32 = 2;
2564pub const SL_RESTART_SCAN: u32 = 1;
2565pub const SL_RETURN_SINGLE_ENTRY: u32 = 2;
2566pub const SL_INDEX_SPECIFIED: u32 = 4;
2567pub const SL_RETURN_ON_DISK_ENTRIES_ONLY: u32 = 8;
2568pub const SL_NO_CURSOR_UPDATE: u32 = 16;
2569pub const SL_QUERY_DIRECTORY_MASK: u32 = 27;
2570pub const SL_WATCH_TREE: u32 = 1;
2571pub const SL_ALLOW_RAW_MOUNT: u32 = 1;
2572pub const SL_BYPASS_ACCESS_CHECK: u32 = 1;
2573pub const SL_INFO_FORCE_ACCESS_CHECK: u32 = 1;
2574pub const SL_INFO_IGNORE_READONLY_ATTRIBUTE: u32 = 64;
2575pub const PNP_DEVICE_DISABLED: u32 = 1;
2576pub const PNP_DEVICE_DONT_DISPLAY_IN_UI: u32 = 2;
2577pub const PNP_DEVICE_FAILED: u32 = 4;
2578pub const PNP_DEVICE_REMOVED: u32 = 8;
2579pub const PNP_DEVICE_RESOURCE_REQUIREMENTS_CHANGED: u32 = 16;
2580pub const PNP_DEVICE_NOT_DISABLEABLE: u32 = 32;
2581pub const PNP_DEVICE_DISCONNECTED: u32 = 64;
2582pub const PNP_DEVICE_RESOURCE_UPDATED: u32 = 128;
2583pub const PNP_DEVICE_ASSIGNED_TO_GUEST: u32 = 256;
2584pub const IO_SHARE_ACCESS_NO_WRITE_PERMISSION: u32 = 2147483648;
2585pub const IO_SHARE_ACCESS_NON_PRIMARY_STREAM: u32 = 128;
2586pub const IO_CHECK_SHARE_ACCESS_UPDATE_SHARE_ACCESS: u32 = 1;
2587pub const IO_CHECK_SHARE_ACCESS_DONT_UPDATE_FILE_OBJECT: u32 = 2;
2588pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_READ: u32 = 4;
2589pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_WRITE: u32 = 8;
2590pub const IO_CHECK_SHARE_ACCESS_DONT_CHECK_DELETE: u32 = 16;
2591pub const IO_CHECK_SHARE_ACCESS_FORCE_CHECK: u32 = 32;
2592pub const IO_CHECK_SHARE_ACCESS_FORCE_USING_SCB: u32 = 64;
2593pub const CONNECT_FULLY_SPECIFIED: u32 = 1;
2594pub const CONNECT_LINE_BASED: u32 = 2;
2595pub const CONNECT_MESSAGE_BASED: u32 = 3;
2596pub const CONNECT_FULLY_SPECIFIED_GROUP: u32 = 4;
2597pub const CONNECT_MESSAGE_BASED_PASSIVE: u32 = 5;
2598pub const CONNECT_CURRENT_VERSION: u32 = 5;
2599pub const WDM_MAJORVERSION: u32 = 6;
2600pub const WDM_MINORVERSION: u32 = 0;
2601pub const WMIREG_ACTION_REGISTER: u32 = 1;
2602pub const WMIREG_ACTION_DEREGISTER: u32 = 2;
2603pub const WMIREG_ACTION_REREGISTER: u32 = 3;
2604pub const WMIREG_ACTION_UPDATE_GUIDS: u32 = 4;
2605pub const WMIREG_ACTION_BLOCK_IRPS: u32 = 5;
2606pub const WMIREGISTER: u32 = 0;
2607pub const WMIUPDATE: u32 = 1;
2608pub const IO_TYPE_CSQ_IRP_CONTEXT: u32 = 1;
2609pub const IO_TYPE_CSQ: u32 = 2;
2610pub const IO_TYPE_CSQ_EX: u32 = 3;
2611pub const IO_ATTRIBUTION_INFO_V1: u32 = 1;
2612pub const IO_SET_IRP_IO_ATTRIBUTION_FROM_THREAD: u32 = 1;
2613pub const IO_SET_IRP_IO_ATTRIBUTION_FROM_PROCESS: u32 = 2;
2614pub const IO_SET_IRP_IO_ATTRIBUTION_FLAGS_MASK: u32 = 3;
2615pub const EVENT_MIN_LEVEL: u32 = 0;
2616pub const EVENT_MAX_LEVEL: u32 = 255;
2617pub const EVENT_ACTIVITY_CTRL_GET_ID: u32 = 1;
2618pub const EVENT_ACTIVITY_CTRL_SET_ID: u32 = 2;
2619pub const EVENT_ACTIVITY_CTRL_CREATE_ID: u32 = 3;
2620pub const EVENT_ACTIVITY_CTRL_GET_SET_ID: u32 = 4;
2621pub const EVENT_ACTIVITY_CTRL_CREATE_SET_ID: u32 = 5;
2622pub const MAX_EVENT_DATA_DESCRIPTORS: u32 = 128;
2623pub const MAX_EVENT_FILTER_DATA_SIZE: u32 = 1024;
2624pub const MAX_EVENT_FILTER_PAYLOAD_SIZE: u32 = 4096;
2625pub const MAX_EVENT_FILTER_EVENT_NAME_SIZE: u32 = 4096;
2626pub const MAX_EVENT_FILTERS_COUNT: u32 = 13;
2627pub const MAX_EVENT_FILTER_PID_COUNT: u32 = 8;
2628pub const MAX_EVENT_FILTER_EVENT_ID_COUNT: u32 = 64;
2629pub const EVENT_FILTER_TYPE_NONE: u32 = 0;
2630pub const EVENT_FILTER_TYPE_SCHEMATIZED: u32 = 2147483648;
2631pub const EVENT_FILTER_TYPE_SYSTEM_FLAGS: u32 = 2147483649;
2632pub const EVENT_FILTER_TYPE_TRACEHANDLE: u32 = 2147483650;
2633pub const EVENT_FILTER_TYPE_PID: u32 = 2147483652;
2634pub const EVENT_FILTER_TYPE_EXECUTABLE_NAME: u32 = 2147483656;
2635pub const EVENT_FILTER_TYPE_PACKAGE_ID: u32 = 2147483664;
2636pub const EVENT_FILTER_TYPE_PACKAGE_APP_ID: u32 = 2147483680;
2637pub const EVENT_FILTER_TYPE_PAYLOAD: u32 = 2147483904;
2638pub const EVENT_FILTER_TYPE_EVENT_ID: u32 = 2147484160;
2639pub const EVENT_FILTER_TYPE_EVENT_NAME: u32 = 2147484672;
2640pub const EVENT_FILTER_TYPE_STACKWALK: u32 = 2147487744;
2641pub const EVENT_FILTER_TYPE_STACKWALK_NAME: u32 = 2147491840;
2642pub const EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW: u32 = 2147500032;
2643pub const EVENT_FILTER_TYPE_CONTAINER: u32 = 2147516416;
2644pub const EVENT_DATA_DESCRIPTOR_TYPE_NONE: u32 = 0;
2645pub const EVENT_DATA_DESCRIPTOR_TYPE_EVENT_METADATA: u32 = 1;
2646pub const EVENT_DATA_DESCRIPTOR_TYPE_PROVIDER_METADATA: u32 = 2;
2647pub const EVENT_DATA_DESCRIPTOR_TYPE_TIMESTAMP_OVERRIDE: u32 = 3;
2648pub const EVENT_WRITE_FLAG_NO_FAULTING: u32 = 1;
2649pub const EVENT_WRITE_FLAG_INPRIVATE: u32 = 2;
2650pub const __string_type: u32 = 0;
2651pub const __guid_type: u32 = 0;
2652pub const __multiString_type: u32 = 0;
2653pub const PCI_SECURITY_INTERFACE_VERSION: u32 = 1;
2654pub const PCI_SECURITY_INTERFACE_VERSION2: u32 = 2;
2655pub const PCI_SECURITY_FULLY_SUPPORTED: u32 = 1;
2656pub const PCI_SECURITY_ENHANCED: u32 = 2;
2657pub const PCI_SECURITY_GUEST_ASSIGNED: u32 = 1;
2658pub const PCI_SECURITY_DIRECT_TRANSLATED_P2P: u32 = 4;
2659pub const PCI_SECURITY_SRIOV_DIRECT_TRANSLATED_P2P: u32 = 262144;
2660pub const PCI_ATS_INTERFACE_VERSION: u32 = 1;
2661pub const PNP_EXTENDED_ADDRESS_INTERFACE_VERSION: u32 = 1;
2662pub const D3COLD_SUPPORT_INTERFACE_VERSION: u32 = 1;
2663pub const PCI_PTM_TIME_SOURCE_AUX: u32 = 4294967295;
2664pub const NPEM_CONTROL_INTERFACE_VERSION1: u32 = 1;
2665pub const NPEM_CONTROL_INTERFACE_VERSION2: u32 = 2;
2666pub const NPEM_CONTROL_INTERFACE_CURRENT_VERSION: u32 = 2;
2667pub const PLUGPLAY_REGKEY_DEVICE: u32 = 1;
2668pub const PLUGPLAY_REGKEY_DRIVER: u32 = 2;
2669pub const PLUGPLAY_REGKEY_CURRENT_HWPROFILE: u32 = 4;
2670pub const DEVICE_INTERFACE_INCLUDE_NONACTIVE: u32 = 1;
2671pub const PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES: u32 = 1;
2672pub const KERNEL_SOFT_RESTART_NOTIFICATION_VERSION: u32 = 1;
2673pub const DEVPROP_TYPEMOD_ARRAY: u32 = 4096;
2674pub const DEVPROP_TYPEMOD_LIST: u32 = 8192;
2675pub const DEVPROP_TYPE_EMPTY: u32 = 0;
2676pub const DEVPROP_TYPE_NULL: u32 = 1;
2677pub const DEVPROP_TYPE_SBYTE: u32 = 2;
2678pub const DEVPROP_TYPE_BYTE: u32 = 3;
2679pub const DEVPROP_TYPE_INT16: u32 = 4;
2680pub const DEVPROP_TYPE_UINT16: u32 = 5;
2681pub const DEVPROP_TYPE_INT32: u32 = 6;
2682pub const DEVPROP_TYPE_UINT32: u32 = 7;
2683pub const DEVPROP_TYPE_INT64: u32 = 8;
2684pub const DEVPROP_TYPE_UINT64: u32 = 9;
2685pub const DEVPROP_TYPE_FLOAT: u32 = 10;
2686pub const DEVPROP_TYPE_DOUBLE: u32 = 11;
2687pub const DEVPROP_TYPE_DECIMAL: u32 = 12;
2688pub const DEVPROP_TYPE_GUID: u32 = 13;
2689pub const DEVPROP_TYPE_CURRENCY: u32 = 14;
2690pub const DEVPROP_TYPE_DATE: u32 = 15;
2691pub const DEVPROP_TYPE_FILETIME: u32 = 16;
2692pub const DEVPROP_TYPE_BOOLEAN: u32 = 17;
2693pub const DEVPROP_TYPE_STRING: u32 = 18;
2694pub const DEVPROP_TYPE_STRING_LIST: u32 = 8210;
2695pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: u32 = 19;
2696pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: u32 = 20;
2697pub const DEVPROP_TYPE_DEVPROPKEY: u32 = 21;
2698pub const DEVPROP_TYPE_DEVPROPTYPE: u32 = 22;
2699pub const DEVPROP_TYPE_BINARY: u32 = 4099;
2700pub const DEVPROP_TYPE_ERROR: u32 = 23;
2701pub const DEVPROP_TYPE_NTSTATUS: u32 = 24;
2702pub const DEVPROP_TYPE_STRING_INDIRECT: u32 = 25;
2703pub const MAX_DEVPROP_TYPE: u32 = 25;
2704pub const MAX_DEVPROP_TYPEMOD: u32 = 8192;
2705pub const DEVPROP_MASK_TYPE: u32 = 4095;
2706pub const DEVPROP_MASK_TYPEMOD: u32 = 61440;
2707pub const DEVPROPID_FIRST_USABLE: u32 = 2;
2708pub const PLUGPLAY_PROPERTY_PERSISTENT: u32 = 1;
2709pub const PNP_REPLACE_NO_MAP: u64 = 9223372036854775807;
2710pub const PNP_REPLACE_PARAMETERS_VERSION: u32 = 2;
2711pub const PNP_REPLACE_DRIVER_INTERFACE_VERSION: u32 = 1;
2712pub const PNP_REPLACE_MEMORY_SUPPORTED: u32 = 1;
2713pub const PNP_REPLACE_PROCESSOR_SUPPORTED: u32 = 2;
2714pub const PNP_REPLACE_HARDWARE_MEMORY_MIRRORING: u32 = 4;
2715pub const PNP_REPLACE_HARDWARE_PAGE_COPY: u32 = 8;
2716pub const PNP_REPLACE_HARDWARE_QUIESCE: u32 = 16;
2717pub const DEVICE_RESET_INTERFACE_VERSION_1: u32 = 1;
2718pub const DEVICE_RESET_INTERFACE_VERSION_2: u32 = 2;
2719pub const DEVICE_RESET_INTERFACE_VERSION_3: u32 = 3;
2720pub const DEVICE_RESET_INTERFACE_VERSION: u32 = 1;
2721pub const SECURE_DRIVER_INTERFACE_VERSION: u32 = 1;
2722pub const SDEV_IDENTIFIER_INTERFACE_VERSION: u32 = 1;
2723pub const DEVICE_DESCRIPTION_VERSION: u32 = 0;
2724pub const DEVICE_DESCRIPTION_VERSION1: u32 = 1;
2725pub const DEVICE_DESCRIPTION_VERSION2: u32 = 2;
2726pub const DEVICE_DESCRIPTION_VERSION3: u32 = 3;
2727pub const DMA_ADAPTER_INFO_VERSION1: u32 = 1;
2728pub const DMA_ADAPTER_INFO_VERSION_CRASHDUMP: u32 = 4294967295;
2729pub const ADAPTER_INFO_SYNCHRONOUS_CALLBACK: u32 = 1;
2730pub const ADAPTER_INFO_API_BYPASS: u32 = 2;
2731pub const DMA_TRANSFER_INFO_VERSION1: u32 = 1;
2732pub const DMA_TRANSFER_INFO_VERSION2: u32 = 2;
2733pub const DMA_TRANSFER_CONTEXT_VERSION1: u32 = 1;
2734pub const DMA_TRANSFER_CONTEXT_SIZE_V1: u32 = 128;
2735pub const DMA_SYNCHRONOUS_CALLBACK: u32 = 1;
2736pub const DMA_ZERO_BUFFERS: u32 = 2;
2737pub const DMA_FAIL_ON_BOUNCE: u32 = 4;
2738pub const HAL_MASK_UNMASK_FLAGS_NONE: u32 = 0;
2739pub const HAL_MASK_UNMASK_FLAGS_SERVICING_DEFERRED: u32 = 1;
2740pub const HAL_MASK_UNMASK_FLAGS_SERVICING_COMPLETE: u32 = 2;
2741pub const HAL_DMA_ADAPTER_VERSION_1: u32 = 1;
2742pub const DOMAIN_COMMON_BUFFER_LARGE_PAGE: u32 = 1;
2743pub const IOMMU_ACCESS_NONE: u32 = 0;
2744pub const IOMMU_ACCESS_READ: u32 = 1;
2745pub const IOMMU_ACCESS_WRITE: u32 = 2;
2746pub const DMA_IOMMU_INTERFACE_VERSION_1: u32 = 1;
2747pub const DMA_IOMMU_INTERFACE_VERSION: u32 = 1;
2748pub const DMA_IOMMU_INTERFACE_EX_VERSION_1: u32 = 1;
2749pub const DMA_IOMMU_INTERFACE_EX_VERSION_2: u32 = 2;
2750pub const DMA_IOMMU_INTERFACE_EX_VERSION_MIN: u32 = 1;
2751pub const DMA_IOMMU_INTERFACE_EX_VERSION_MAX: u32 = 2;
2752pub const DMA_IOMMU_INTERFACE_EX_VERSION: u32 = 1;
2753pub const PO_MEM_PRESERVE: u32 = 1;
2754pub const PO_MEM_CLONE: u32 = 2;
2755pub const PO_MEM_CL_OR_NCHK: u32 = 4;
2756pub const PO_MEM_DISCARD: u32 = 32768;
2757pub const PO_MEM_PAGE_ADDRESS: u32 = 16384;
2758pub const PO_MEM_BOOT_PHASE: u32 = 65536;
2759pub const PO_CB_SYSTEM_POWER_POLICY: u32 = 0;
2760pub const PO_CB_AC_STATUS: u32 = 1;
2761pub const PO_CB_BUTTON_COLLISION: u32 = 2;
2762pub const PO_CB_SYSTEM_STATE_LOCK: u32 = 3;
2763pub const PO_CB_LID_SWITCH_STATE: u32 = 4;
2764pub const PO_CB_PROCESSOR_POWER_POLICY: u32 = 5;
2765pub const PO_FX_VERSION_V1: u32 = 1;
2766pub const PO_FX_VERSION_V2: u32 = 2;
2767pub const PO_FX_VERSION_V3: u32 = 3;
2768pub const PO_FX_VERSION: u32 = 1;
2769pub const PO_FX_COMPONENT_FLAG_F0_ON_DX: u32 = 1;
2770pub const PO_FX_COMPONENT_FLAG_NO_DEBOUNCE: u32 = 2;
2771pub const PO_FX_DEVICE_FLAG_RESERVED_1: u32 = 1;
2772pub const PO_FX_DEVICE_FLAG_DFX_DIRECT_CHILDREN_OPTIONAL: u32 = 2;
2773pub const PO_FX_DEVICE_FLAG_DFX_POWER_CHILDREN_OPTIONAL: u32 = 4;
2774pub const PO_FX_DEVICE_FLAG_DFX_CHILDREN_OPTIONAL: u32 = 6;
2775pub const PO_FX_DEVICE_FLAG_DISABLE_FAST_RESUME: u32 = 8;
2776pub const PO_FX_DEVICE_FLAG_ENABLE_FAST_RESUME: u32 = 16;
2777pub const PO_FX_DEVICE_FLAG_NO_FAULT_CALLBACKS: u32 = 32;
2778pub const PO_FX_DIRECTED_FX_DEFAULT_IDLE_TIMEOUT: u32 = 0;
2779pub const PO_FX_DIRECTED_FX_MAX_IDLE_TIMEOUT: u32 = 600;
2780pub const PO_FX_UNKNOWN_POWER: u32 = 4294967295;
2781pub const PO_FX_UNKNOWN_TIME: i32 = -1;
2782pub const PO_FX_FLAG_BLOCKING: u32 = 1;
2783pub const PO_FX_FLAG_ASYNC_ONLY: u32 = 2;
2784pub const PO_FX_FLAG_PERF_PEP_OPTIONAL: u32 = 1;
2785pub const PO_FX_FLAG_PERF_QUERY_ON_F0: u32 = 2;
2786pub const PO_FX_FLAG_PERF_QUERY_ON_ALL_IDLE_STATES: u32 = 4;
2787pub const OB_FLT_REGISTRATION_VERSION_0100: u32 = 256;
2788pub const OB_FLT_REGISTRATION_VERSION: u32 = 256;
2789pub const OB_OPERATION_HANDLE_CREATE: u32 = 1;
2790pub const OB_OPERATION_HANDLE_DUPLICATE: u32 = 2;
2791pub const PCI_TYPE0_ADDRESSES: u32 = 6;
2792pub const PCI_TYPE1_ADDRESSES: u32 = 2;
2793pub const PCI_TYPE2_ADDRESSES: u32 = 5;
2794pub const PCI_EXTENDED_CONFIG_LENGTH: u32 = 4096;
2795pub const PCI_MAX_DEVICES: u32 = 32;
2796pub const PCI_MAX_FUNCTION: u32 = 8;
2797pub const PCI_MAX_BRIDGE_NUMBER: u32 = 255;
2798pub const PCI_MAX_SEGMENT_NUMBER: u32 = 65535;
2799pub const PCI_INVALID_VENDORID: u32 = 65535;
2800pub const PCI_MULTIFUNCTION: u32 = 128;
2801pub const PCI_DEVICE_TYPE: u32 = 0;
2802pub const PCI_BRIDGE_TYPE: u32 = 1;
2803pub const PCI_CARDBUS_BRIDGE_TYPE: u32 = 2;
2804pub const PCI_ENABLE_IO_SPACE: u32 = 1;
2805pub const PCI_ENABLE_MEMORY_SPACE: u32 = 2;
2806pub const PCI_ENABLE_BUS_MASTER: u32 = 4;
2807pub const PCI_ENABLE_SPECIAL_CYCLES: u32 = 8;
2808pub const PCI_ENABLE_WRITE_AND_INVALIDATE: u32 = 16;
2809pub const PCI_ENABLE_VGA_COMPATIBLE_PALETTE: u32 = 32;
2810pub const PCI_ENABLE_PARITY: u32 = 64;
2811pub const PCI_ENABLE_WAIT_CYCLE: u32 = 128;
2812pub const PCI_ENABLE_SERR: u32 = 256;
2813pub const PCI_ENABLE_FAST_BACK_TO_BACK: u32 = 512;
2814pub const PCI_DISABLE_LEVEL_INTERRUPT: u32 = 1024;
2815pub const PCI_STATUS_IMMEDIATE_READINESS: u32 = 1;
2816pub const PCI_STATUS_INTERRUPT_PENDING: u32 = 8;
2817pub const PCI_STATUS_CAPABILITIES_LIST: u32 = 16;
2818pub const PCI_STATUS_66MHZ_CAPABLE: u32 = 32;
2819pub const PCI_STATUS_UDF_SUPPORTED: u32 = 64;
2820pub const PCI_STATUS_FAST_BACK_TO_BACK: u32 = 128;
2821pub const PCI_STATUS_DATA_PARITY_DETECTED: u32 = 256;
2822pub const PCI_STATUS_DEVSEL: u32 = 1536;
2823pub const PCI_STATUS_SIGNALED_TARGET_ABORT: u32 = 2048;
2824pub const PCI_STATUS_RECEIVED_TARGET_ABORT: u32 = 4096;
2825pub const PCI_STATUS_RECEIVED_MASTER_ABORT: u32 = 8192;
2826pub const PCI_STATUS_SIGNALED_SYSTEM_ERROR: u32 = 16384;
2827pub const PCI_STATUS_DETECTED_PARITY_ERROR: u32 = 32768;
2828pub const PCI_WHICHSPACE_CONFIG: u32 = 0;
2829pub const PCI_WHICHSPACE_ROM: u32 = 1382638416;
2830pub const PCI_CAPABILITY_ID_POWER_MANAGEMENT: u32 = 1;
2831pub const PCI_CAPABILITY_ID_AGP: u32 = 2;
2832pub const PCI_CAPABILITY_ID_VPD: u32 = 3;
2833pub const PCI_CAPABILITY_ID_SLOT_ID: u32 = 4;
2834pub const PCI_CAPABILITY_ID_MSI: u32 = 5;
2835pub const PCI_CAPABILITY_ID_CPCI_HOTSWAP: u32 = 6;
2836pub const PCI_CAPABILITY_ID_PCIX: u32 = 7;
2837pub const PCI_CAPABILITY_ID_HYPERTRANSPORT: u32 = 8;
2838pub const PCI_CAPABILITY_ID_VENDOR_SPECIFIC: u32 = 9;
2839pub const PCI_CAPABILITY_ID_DEBUG_PORT: u32 = 10;
2840pub const PCI_CAPABILITY_ID_CPCI_RES_CTRL: u32 = 11;
2841pub const PCI_CAPABILITY_ID_SHPC: u32 = 12;
2842pub const PCI_CAPABILITY_ID_P2P_SSID: u32 = 13;
2843pub const PCI_CAPABILITY_ID_AGP_TARGET: u32 = 14;
2844pub const PCI_CAPABILITY_ID_SECURE: u32 = 15;
2845pub const PCI_CAPABILITY_ID_PCI_EXPRESS: u32 = 16;
2846pub const PCI_CAPABILITY_ID_MSIX: u32 = 17;
2847pub const PCI_CAPABILITY_ID_SATA_CONFIG: u32 = 18;
2848pub const PCI_CAPABILITY_ID_ADVANCED_FEATURES: u32 = 19;
2849pub const PCI_CAPABILITY_ID_FPB: u32 = 21;
2850pub const PCI_EXPRESS_ADVANCED_ERROR_REPORTING_CAP_ID: u32 = 1;
2851pub const PCI_EXPRESS_VIRTUAL_CHANNEL_CAP_ID: u32 = 2;
2852pub const PCI_EXPRESS_DEVICE_SERIAL_NUMBER_CAP_ID: u32 = 3;
2853pub const PCI_EXPRESS_POWER_BUDGETING_CAP_ID: u32 = 4;
2854pub const PCI_EXPRESS_RC_LINK_DECLARATION_CAP_ID: u32 = 5;
2855pub const PCI_EXPRESS_RC_INTERNAL_LINK_CONTROL_CAP_ID: u32 = 6;
2856pub const PCI_EXPRESS_RC_EVENT_COLLECTOR_ENDPOINT_ASSOCIATION_CAP_ID: u32 = 7;
2857pub const PCI_EXPRESS_MFVC_CAP_ID: u32 = 8;
2858pub const PCI_EXPRESS_VC_AND_MFVC_CAP_ID: u32 = 9;
2859pub const PCI_EXPRESS_RCRB_HEADER_CAP_ID: u32 = 10;
2860pub const PCI_EXPRESS_VENDOR_SPECIFIC_CAP_ID: u32 = 11;
2861pub const PCI_EXPRESS_CONFIGURATION_ACCESS_CORRELATION_CAP_ID: u32 = 12;
2862pub const PCI_EXPRESS_ACCESS_CONTROL_SERVICES_CAP_ID: u32 = 13;
2863pub const PCI_EXPRESS_ARI_CAP_ID: u32 = 14;
2864pub const PCI_EXPRESS_ATS_CAP_ID: u32 = 15;
2865pub const PCI_EXPRESS_SINGLE_ROOT_IO_VIRTUALIZATION_CAP_ID: u32 = 16;
2866pub const PCI_EXPRESS_MULTI_ROOT_IO_VIRTUALIZATION_CAP_ID: u32 = 17;
2867pub const PCI_EXPRESS_MULTICAST_CAP_ID: u32 = 18;
2868pub const PCI_EXPRESS_PAGE_REQUEST_CAP_ID: u32 = 19;
2869pub const PCI_EXPRESS_RESERVED_FOR_AMD_CAP_ID: u32 = 20;
2870pub const PCI_EXPRESS_RESIZABLE_BAR_CAP_ID: u32 = 21;
2871pub const PCI_EXPRESS_DPA_CAP_ID: u32 = 22;
2872pub const PCI_EXPRESS_TPH_REQUESTER_CAP_ID: u32 = 23;
2873pub const PCI_EXPRESS_LTR_CAP_ID: u32 = 24;
2874pub const PCI_EXPRESS_SECONDARY_PCI_EXPRESS_CAP_ID: u32 = 25;
2875pub const PCI_EXPRESS_PMUX_CAP_ID: u32 = 26;
2876pub const PCI_EXPRESS_PASID_CAP_ID: u32 = 27;
2877pub const PCI_EXPRESS_LN_REQUESTER_CAP_ID: u32 = 28;
2878pub const PCI_EXPRESS_DPC_CAP_ID: u32 = 29;
2879pub const PCI_EXPRESS_L1_PM_SS_CAP_ID: u32 = 30;
2880pub const PCI_EXPRESS_PTM_CAP_ID: u32 = 31;
2881pub const PCI_EXPRESS_MPCIE_CAP_ID: u32 = 32;
2882pub const PCI_EXPRESS_FRS_QUEUEING_CAP_ID: u32 = 33;
2883pub const PCI_EXPRESS_READINESS_TIME_REPORTING_CAP_ID: u32 = 34;
2884pub const PCI_EXPRESS_DESIGNATED_VENDOR_SPECIFIC_CAP_ID: u32 = 35;
2885pub const PCI_EXPRESS_NPEM_CAP_ID: u32 = 41;
2886pub const ROOT_CMD_ENABLE_CORRECTABLE_ERROR_REPORTING: u32 = 1;
2887pub const ROOT_CMD_ENABLE_NONFATAL_ERROR_REPORTING: u32 = 2;
2888pub const ROOT_CMD_ENABLE_FATAL_ERROR_REPORTING: u32 = 4;
2889pub const ROOT_CMD_ERROR_REPORTING_ENABLE_MASK: u32 = 7;
2890pub const PCI_ACS_ALLOWED: u32 = 0;
2891pub const PCI_ACS_BLOCKED: u32 = 1;
2892pub const PCI_ACS_REDIRECTED: u32 = 2;
2893pub const PCI_CLASS_PRE_20: u32 = 0;
2894pub const PCI_CLASS_MASS_STORAGE_CTLR: u32 = 1;
2895pub const PCI_CLASS_NETWORK_CTLR: u32 = 2;
2896pub const PCI_CLASS_DISPLAY_CTLR: u32 = 3;
2897pub const PCI_CLASS_MULTIMEDIA_DEV: u32 = 4;
2898pub const PCI_CLASS_MEMORY_CTLR: u32 = 5;
2899pub const PCI_CLASS_BRIDGE_DEV: u32 = 6;
2900pub const PCI_CLASS_SIMPLE_COMMS_CTLR: u32 = 7;
2901pub const PCI_CLASS_BASE_SYSTEM_DEV: u32 = 8;
2902pub const PCI_CLASS_INPUT_DEV: u32 = 9;
2903pub const PCI_CLASS_DOCKING_STATION: u32 = 10;
2904pub const PCI_CLASS_PROCESSOR: u32 = 11;
2905pub const PCI_CLASS_SERIAL_BUS_CTLR: u32 = 12;
2906pub const PCI_CLASS_WIRELESS_CTLR: u32 = 13;
2907pub const PCI_CLASS_INTELLIGENT_IO_CTLR: u32 = 14;
2908pub const PCI_CLASS_SATELLITE_COMMS_CTLR: u32 = 15;
2909pub const PCI_CLASS_ENCRYPTION_DECRYPTION: u32 = 16;
2910pub const PCI_CLASS_DATA_ACQ_SIGNAL_PROC: u32 = 17;
2911pub const PCI_CLASS_NOT_DEFINED: u32 = 255;
2912pub const PCI_SUBCLASS_PRE_20_NON_VGA: u32 = 0;
2913pub const PCI_SUBCLASS_PRE_20_VGA: u32 = 1;
2914pub const PCI_SUBCLASS_MSC_SCSI_BUS_CTLR: u32 = 0;
2915pub const PCI_SUBCLASS_MSC_IDE_CTLR: u32 = 1;
2916pub const PCI_SUBCLASS_MSC_FLOPPY_CTLR: u32 = 2;
2917pub const PCI_SUBCLASS_MSC_IPI_CTLR: u32 = 3;
2918pub const PCI_SUBCLASS_MSC_RAID_CTLR: u32 = 4;
2919pub const PCI_SUBCLASS_MSC_AHCI_CTLR: u32 = 6;
2920pub const PCI_SUBCLASS_MSC_NVM_CTLR: u32 = 8;
2921pub const PCI_SUBCLASS_MSC_OTHER: u32 = 128;
2922pub const PCI_PROGRAMMING_INTERFACE_MSC_NVM_EXPRESS: u32 = 2;
2923pub const PCI_SUBCLASS_NET_ETHERNET_CTLR: u32 = 0;
2924pub const PCI_SUBCLASS_NET_TOKEN_RING_CTLR: u32 = 1;
2925pub const PCI_SUBCLASS_NET_FDDI_CTLR: u32 = 2;
2926pub const PCI_SUBCLASS_NET_ATM_CTLR: u32 = 3;
2927pub const PCI_SUBCLASS_NET_ISDN_CTLR: u32 = 4;
2928pub const PCI_SUBCLASS_NET_OTHER: u32 = 128;
2929pub const PCI_SUBCLASS_VID_VGA_CTLR: u32 = 0;
2930pub const PCI_SUBCLASS_VID_XGA_CTLR: u32 = 1;
2931pub const PCI_SUBLCASS_VID_3D_CTLR: u32 = 2;
2932pub const PCI_SUBCLASS_VID_OTHER: u32 = 128;
2933pub const PCI_SUBCLASS_MM_VIDEO_DEV: u32 = 0;
2934pub const PCI_SUBCLASS_MM_AUDIO_DEV: u32 = 1;
2935pub const PCI_SUBCLASS_MM_TELEPHONY_DEV: u32 = 2;
2936pub const PCI_SUBCLASS_MM_OTHER: u32 = 128;
2937pub const PCI_SUBCLASS_MEM_RAM: u32 = 0;
2938pub const PCI_SUBCLASS_MEM_FLASH: u32 = 1;
2939pub const PCI_SUBCLASS_MEM_OTHER: u32 = 128;
2940pub const PCI_SUBCLASS_BR_HOST: u32 = 0;
2941pub const PCI_SUBCLASS_BR_ISA: u32 = 1;
2942pub const PCI_SUBCLASS_BR_EISA: u32 = 2;
2943pub const PCI_SUBCLASS_BR_MCA: u32 = 3;
2944pub const PCI_SUBCLASS_BR_PCI_TO_PCI: u32 = 4;
2945pub const PCI_SUBCLASS_BR_PCMCIA: u32 = 5;
2946pub const PCI_SUBCLASS_BR_NUBUS: u32 = 6;
2947pub const PCI_SUBCLASS_BR_CARDBUS: u32 = 7;
2948pub const PCI_SUBCLASS_BR_RACEWAY: u32 = 8;
2949pub const PCI_SUBCLASS_BR_OTHER: u32 = 128;
2950pub const PCI_SUBCLASS_COM_SERIAL: u32 = 0;
2951pub const PCI_SUBCLASS_COM_PARALLEL: u32 = 1;
2952pub const PCI_SUBCLASS_COM_MULTIPORT: u32 = 2;
2953pub const PCI_SUBCLASS_COM_MODEM: u32 = 3;
2954pub const PCI_SUBCLASS_COM_OTHER: u32 = 128;
2955pub const PCI_SUBCLASS_SYS_INTERRUPT_CTLR: u32 = 0;
2956pub const PCI_SUBCLASS_SYS_DMA_CTLR: u32 = 1;
2957pub const PCI_SUBCLASS_SYS_SYSTEM_TIMER: u32 = 2;
2958pub const PCI_SUBCLASS_SYS_REAL_TIME_CLOCK: u32 = 3;
2959pub const PCI_SUBCLASS_SYS_GEN_HOTPLUG_CTLR: u32 = 4;
2960pub const PCI_SUBCLASS_SYS_SDIO_CTRL: u32 = 5;
2961pub const PCI_SUBCLASS_SYS_RCEC: u32 = 7;
2962pub const PCI_SUBCLASS_SYS_OTHER: u32 = 128;
2963pub const PCI_SUBCLASS_INP_KEYBOARD: u32 = 0;
2964pub const PCI_SUBCLASS_INP_DIGITIZER: u32 = 1;
2965pub const PCI_SUBCLASS_INP_MOUSE: u32 = 2;
2966pub const PCI_SUBCLASS_INP_SCANNER: u32 = 3;
2967pub const PCI_SUBCLASS_INP_GAMEPORT: u32 = 4;
2968pub const PCI_SUBCLASS_INP_OTHER: u32 = 128;
2969pub const PCI_SUBCLASS_DOC_GENERIC: u32 = 0;
2970pub const PCI_SUBCLASS_DOC_OTHER: u32 = 128;
2971pub const PCI_SUBCLASS_PROC_386: u32 = 0;
2972pub const PCI_SUBCLASS_PROC_486: u32 = 1;
2973pub const PCI_SUBCLASS_PROC_PENTIUM: u32 = 2;
2974pub const PCI_SUBCLASS_PROC_ALPHA: u32 = 16;
2975pub const PCI_SUBCLASS_PROC_POWERPC: u32 = 32;
2976pub const PCI_SUBCLASS_PROC_COPROCESSOR: u32 = 64;
2977pub const PCI_SUBCLASS_SB_IEEE1394: u32 = 0;
2978pub const PCI_SUBCLASS_SB_ACCESS: u32 = 1;
2979pub const PCI_SUBCLASS_SB_SSA: u32 = 2;
2980pub const PCI_SUBCLASS_SB_USB: u32 = 3;
2981pub const PCI_SUBCLASS_SB_FIBRE_CHANNEL: u32 = 4;
2982pub const PCI_SUBCLASS_SB_SMBUS: u32 = 5;
2983pub const PCI_SUBCLASS_SB_THUNDERBOLT: u32 = 10;
2984pub const PCI_SUBCLASS_WIRELESS_IRDA: u32 = 0;
2985pub const PCI_SUBCLASS_WIRELESS_CON_IR: u32 = 1;
2986pub const PCI_SUBCLASS_WIRELESS_RF: u32 = 16;
2987pub const PCI_SUBCLASS_WIRELESS_OTHER: u32 = 128;
2988pub const PCI_SUBCLASS_INTIO_I2O: u32 = 0;
2989pub const PCI_SUBCLASS_SAT_TV: u32 = 1;
2990pub const PCI_SUBCLASS_SAT_AUDIO: u32 = 2;
2991pub const PCI_SUBCLASS_SAT_VOICE: u32 = 3;
2992pub const PCI_SUBCLASS_SAT_DATA: u32 = 4;
2993pub const PCI_SUBCLASS_CRYPTO_NET_COMP: u32 = 0;
2994pub const PCI_SUBCLASS_CRYPTO_ENTERTAINMENT: u32 = 16;
2995pub const PCI_SUBCLASS_CRYPTO_OTHER: u32 = 128;
2996pub const PCI_SUBCLASS_DASP_DPIO: u32 = 0;
2997pub const PCI_SUBCLASS_DASP_OTHER: u32 = 128;
2998pub const PCI_ADDRESS_IO_SPACE: u32 = 1;
2999pub const PCI_ADDRESS_MEMORY_TYPE_MASK: u32 = 6;
3000pub const PCI_ADDRESS_MEMORY_PREFETCHABLE: u32 = 8;
3001pub const PCI_ADDRESS_IO_ADDRESS_MASK: u32 = 4294967292;
3002pub const PCI_ADDRESS_MEMORY_ADDRESS_MASK: u32 = 4294967280;
3003pub const PCI_ADDRESS_ROM_ADDRESS_MASK: u32 = 4294965248;
3004pub const PCI_TYPE_32BIT: u32 = 0;
3005pub const PCI_TYPE_20BIT: u32 = 2;
3006pub const PCI_TYPE_64BIT: u32 = 4;
3007pub const PCI_ROMADDRESS_ENABLED: u32 = 1;
3008pub const PCI_DEVICE_PRESENT_INTERFACE_VERSION: u32 = 1;
3009pub const PCI_USE_SUBSYSTEM_IDS: u32 = 1;
3010pub const PCI_USE_REVISION: u32 = 2;
3011pub const PCI_USE_VENDEV_IDS: u32 = 4;
3012pub const PCI_USE_CLASS_SUBCLASS: u32 = 8;
3013pub const PCI_USE_PROGIF: u32 = 16;
3014pub const PCI_USE_LOCAL_BUS: u32 = 32;
3015pub const PCI_USE_LOCAL_DEVICE: u32 = 64;
3016pub const PCI_EXPRESS_LINK_QUIESCENT_INTERFACE_VERSION: u32 = 1;
3017pub const PCI_EXPRESS_ROOT_PORT_INTERFACE_VERSION: u32 = 1;
3018pub const PCI_MSIX_TABLE_CONFIG_INTERFACE_VERSION: u32 = 1;
3019pub const FILE_ATTRIBUTE_DEDICATED: u32 = 256;
3020pub const EA_CONTAINER_NAME: &[u8; 14] = b"ContainerName\0";
3021pub const EA_CONTAINER_SIZE: &[u8; 14] = b"ContainerSize\0";
3022pub const CLFS_BASELOG_EXTENSION: &[u8; 5] = b".blf\0";
3023pub const CLFS_FLAG_NO_FLAGS: u32 = 0;
3024pub const CLFS_FLAG_FORCE_APPEND: u32 = 1;
3025pub const CLFS_FLAG_FORCE_FLUSH: u32 = 2;
3026pub const CLFS_FLAG_USE_RESERVATION: u32 = 4;
3027pub const CLFS_FLAG_REENTRANT_FILE_SYSTEM: u32 = 8;
3028pub const CLFS_FLAG_NON_REENTRANT_FILTER: u32 = 16;
3029pub const CLFS_FLAG_REENTRANT_FILTER: u32 = 32;
3030pub const CLFS_FLAG_IGNORE_SHARE_ACCESS: u32 = 64;
3031pub const CLFS_FLAG_READ_IN_PROGRESS: u32 = 128;
3032pub const CLFS_FLAG_MINIFILTER_LEVEL: u32 = 256;
3033pub const CLFS_FLAG_HIDDEN_SYSTEM_LOG: u32 = 512;
3034pub const CLFS_MARSHALLING_FLAG_NONE: u32 = 0;
3035pub const CLFS_MARSHALLING_FLAG_DISABLE_BUFF_INIT: u32 = 1;
3036pub const CLFS_FLAG_FILTER_INTERMEDIATE_LEVEL: u32 = 16;
3037pub const CLFS_FLAG_FILTER_TOP_LEVEL: u32 = 32;
3038pub const ClfsNullRecord: u32 = 0;
3039pub const ClfsDataRecord: u32 = 1;
3040pub const ClfsRestartRecord: u32 = 2;
3041pub const ClfsClientRecord: u32 = 3;
3042pub const CLFS_CONTAINER_STREAM_PREFIX: &[u8; 7] = b"%BLF%:\0";
3043pub const CLFS_CONTAINER_RELATIVE_PREFIX: &[u8; 7] = b"%BLF%\\\0";
3044pub const ClsContainerInitializing: u32 = 1;
3045pub const ClsContainerInactive: u32 = 2;
3046pub const ClsContainerActive: u32 = 4;
3047pub const ClsContainerActivePendingDelete: u32 = 8;
3048pub const ClsContainerPendingArchive: u32 = 16;
3049pub const ClsContainerPendingArchiveAndDelete: u32 = 32;
3050pub const ClfsContainerInitializing: u32 = 1;
3051pub const ClfsContainerInactive: u32 = 2;
3052pub const ClfsContainerActive: u32 = 4;
3053pub const ClfsContainerActivePendingDelete: u32 = 8;
3054pub const ClfsContainerPendingArchive: u32 = 16;
3055pub const ClfsContainerPendingArchiveAndDelete: u32 = 32;
3056pub const CLFS_MAX_CONTAINER_INFO: u32 = 256;
3057pub const CLFS_SCAN_INIT: u32 = 1;
3058pub const CLFS_SCAN_FORWARD: u32 = 2;
3059pub const CLFS_SCAN_BACKWARD: u32 = 4;
3060pub const CLFS_SCAN_CLOSE: u32 = 8;
3061pub const CLFS_SCAN_INITIALIZED: u32 = 16;
3062pub const CLFS_SCAN_BUFFERED: u32 = 32;
3063pub const CLFS_MGMT_POLICY_VERSION: u32 = 1;
3064pub const LOG_POLICY_OVERWRITE: u32 = 1;
3065pub const LOG_POLICY_PERSIST: u32 = 2;
3066pub const CLFS_MGMT_CLIENT_REGISTRATION_VERSION: u32 = 1;
3067pub const PCW_VERSION_1: u32 = 256;
3068pub const PCW_VERSION_2: u32 = 512;
3069pub const PCW_CURRENT_VERSION: u32 = 512;
3070pub const SECURE_SECTION_ALLOW_PARTIAL_MDL: u32 = 1;
3071pub type va_list = *mut core::ffi::c_char;
3072unsafe extern "C" {
3073 pub fn __va_start(arg1: *mut *mut core::ffi::c_char, ...);
3074}
3075pub type __vcrt_bool = bool;
3076pub type wchar_t = core::ffi::c_ushort;
3077unsafe extern "C" {
3078 pub fn __security_init_cookie();
3079}
3080unsafe extern "C" {
3081 pub fn __security_check_cookie(_StackCookie: usize);
3082}
3083unsafe extern "C" {
3084 pub fn __report_gsfailure(_StackCookie: usize) -> !;
3085}
3086unsafe extern "C" {
3087 pub static mut __security_cookie: usize;
3088}
3089pub const _EXCEPTION_DISPOSITION_ExceptionContinueExecution: _EXCEPTION_DISPOSITION = 0;
3090pub const _EXCEPTION_DISPOSITION_ExceptionContinueSearch: _EXCEPTION_DISPOSITION = 1;
3091pub const _EXCEPTION_DISPOSITION_ExceptionNestedException: _EXCEPTION_DISPOSITION = 2;
3092pub const _EXCEPTION_DISPOSITION_ExceptionCollidedUnwind: _EXCEPTION_DISPOSITION = 3;
3093pub type _EXCEPTION_DISPOSITION = core::ffi::c_int;
3094
3095use alloc::vec::Vec;
3096pub use self::_EXCEPTION_DISPOSITION as EXCEPTION_DISPOSITION;
3097#[repr(C)]
3098#[derive(Debug, Copy, Clone)]
3099pub struct _CONTEXT {
3100 _unused: [u8; 0],
3101}
3102#[repr(C)]
3103#[derive(Debug, Copy, Clone)]
3104pub struct _DISPATCHER_CONTEXT {
3105 _unused: [u8; 0],
3106}
3107unsafe extern "C" {
3108 pub fn __C_specific_handler(
3109 ExceptionRecord: *mut _EXCEPTION_RECORD,
3110 EstablisherFrame: *mut core::ffi::c_void,
3111 ContextRecord: *mut _CONTEXT,
3112 DispatcherContext: *mut _DISPATCHER_CONTEXT,
3113 ) -> EXCEPTION_DISPOSITION;
3114}
3115unsafe extern "C" {
3116 pub fn _exception_code() -> core::ffi::c_ulong;
3117}
3118unsafe extern "C" {
3119 pub fn _exception_info() -> *mut core::ffi::c_void;
3120}
3121unsafe extern "C" {
3122 pub fn _abnormal_termination() -> core::ffi::c_int;
3123}
3124pub type __crt_bool = bool;
3125unsafe extern "C" {
3126 pub fn _invalid_parameter_noinfo();
3127}
3128unsafe extern "C" {
3129 pub fn _invalid_parameter_noinfo_noreturn() -> !;
3130}
3131unsafe extern "C" {
3132 pub fn _invoke_watson(
3133 _Expression: *const wchar_t,
3134 _FunctionName: *const wchar_t,
3135 _FileName: *const wchar_t,
3136 _LineNo: core::ffi::c_uint,
3137 _Reserved: usize,
3138 ) -> !;
3139}
3140pub type errno_t = core::ffi::c_int;
3141pub type wint_t = core::ffi::c_ushort;
3142pub type wctype_t = core::ffi::c_ushort;
3143pub type __time32_t = core::ffi::c_long;
3144pub type __time64_t = core::ffi::c_longlong;
3145#[repr(C)]
3146#[derive(Debug, Copy, Clone)]
3147pub struct __crt_locale_data_public {
3148 pub _locale_pctype: *const core::ffi::c_ushort,
3149 pub _locale_mb_cur_max: core::ffi::c_int,
3150 pub _locale_lc_codepage: core::ffi::c_uint,
3151}
3152#[repr(C)]
3153#[derive(Debug, Copy, Clone)]
3154pub struct __crt_locale_pointers {
3155 pub locinfo: *mut __crt_locale_data,
3156 pub mbcinfo: *mut __crt_multibyte_data,
3157}
3158pub type _locale_t = *mut __crt_locale_pointers;
3159#[repr(C)]
3160#[derive(Debug, Copy, Clone)]
3161pub struct _Mbstatet {
3162 pub _Wchar: core::ffi::c_ulong,
3163 pub _Byte: core::ffi::c_ushort,
3164 pub _State: core::ffi::c_ushort,
3165}
3166pub type mbstate_t = _Mbstatet;
3167pub type time_t = __time64_t;
3168pub type rsize_t = usize;
3169unsafe extern "C" {
3170 pub fn iswalnum(_C: wint_t) -> core::ffi::c_int;
3171}
3172unsafe extern "C" {
3173 pub fn iswalpha(_C: wint_t) -> core::ffi::c_int;
3174}
3175unsafe extern "C" {
3176 pub fn iswascii(_C: wint_t) -> core::ffi::c_int;
3177}
3178unsafe extern "C" {
3179 pub fn iswblank(_C: wint_t) -> core::ffi::c_int;
3180}
3181unsafe extern "C" {
3182 pub fn iswcntrl(_C: wint_t) -> core::ffi::c_int;
3183}
3184unsafe extern "C" {
3185 pub fn iswdigit(_C: wint_t) -> core::ffi::c_int;
3186}
3187unsafe extern "C" {
3188 pub fn iswgraph(_C: wint_t) -> core::ffi::c_int;
3189}
3190unsafe extern "C" {
3191 pub fn iswlower(_C: wint_t) -> core::ffi::c_int;
3192}
3193unsafe extern "C" {
3194 pub fn iswprint(_C: wint_t) -> core::ffi::c_int;
3195}
3196unsafe extern "C" {
3197 pub fn iswpunct(_C: wint_t) -> core::ffi::c_int;
3198}
3199unsafe extern "C" {
3200 pub fn iswspace(_C: wint_t) -> core::ffi::c_int;
3201}
3202unsafe extern "C" {
3203 pub fn iswupper(_C: wint_t) -> core::ffi::c_int;
3204}
3205unsafe extern "C" {
3206 pub fn iswxdigit(_C: wint_t) -> core::ffi::c_int;
3207}
3208unsafe extern "C" {
3209 pub fn __iswcsymf(_C: wint_t) -> core::ffi::c_int;
3210}
3211unsafe extern "C" {
3212 pub fn __iswcsym(_C: wint_t) -> core::ffi::c_int;
3213}
3214unsafe extern "C" {
3215 pub fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3216}
3217unsafe extern "C" {
3218 pub fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3219}
3220unsafe extern "C" {
3221 pub fn _iswblank_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3222}
3223unsafe extern "C" {
3224 pub fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3225}
3226unsafe extern "C" {
3227 pub fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3228}
3229unsafe extern "C" {
3230 pub fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3231}
3232unsafe extern "C" {
3233 pub fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3234}
3235unsafe extern "C" {
3236 pub fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3237}
3238unsafe extern "C" {
3239 pub fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3240}
3241unsafe extern "C" {
3242 pub fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3243}
3244unsafe extern "C" {
3245 pub fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3246}
3247unsafe extern "C" {
3248 pub fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3249}
3250unsafe extern "C" {
3251 pub fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3252}
3253unsafe extern "C" {
3254 pub fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> core::ffi::c_int;
3255}
3256unsafe extern "C" {
3257 pub fn towupper(_C: wint_t) -> wint_t;
3258}
3259unsafe extern "C" {
3260 pub fn towlower(_C: wint_t) -> wint_t;
3261}
3262unsafe extern "C" {
3263 pub fn iswctype(_C: wint_t, _Type: wctype_t) -> core::ffi::c_int;
3264}
3265unsafe extern "C" {
3266 pub fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
3267}
3268unsafe extern "C" {
3269 pub fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
3270}
3271unsafe extern "C" {
3272 pub fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> core::ffi::c_int;
3273}
3274unsafe extern "C" {
3275 pub fn isleadbyte(_C: core::ffi::c_int) -> core::ffi::c_int;
3276}
3277unsafe extern "C" {
3278 pub fn _isleadbyte_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3279}
3280unsafe extern "C" {
3281 pub fn is_wctype(_C: wint_t, _Type: wctype_t) -> core::ffi::c_int;
3282}
3283unsafe extern "C" {
3284 pub fn _isctype(_C: core::ffi::c_int, _Type: core::ffi::c_int) -> core::ffi::c_int;
3285}
3286unsafe extern "C" {
3287 pub fn _isctype_l(
3288 _C: core::ffi::c_int,
3289 _Type: core::ffi::c_int,
3290 _Locale: _locale_t,
3291 ) -> core::ffi::c_int;
3292}
3293unsafe extern "C" {
3294 pub fn isalpha(_C: core::ffi::c_int) -> core::ffi::c_int;
3295}
3296unsafe extern "C" {
3297 pub fn _isalpha_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3298}
3299unsafe extern "C" {
3300 pub fn isupper(_C: core::ffi::c_int) -> core::ffi::c_int;
3301}
3302unsafe extern "C" {
3303 pub fn _isupper_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3304}
3305unsafe extern "C" {
3306 pub fn islower(_C: core::ffi::c_int) -> core::ffi::c_int;
3307}
3308unsafe extern "C" {
3309 pub fn _islower_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3310}
3311unsafe extern "C" {
3312 pub fn isdigit(_C: core::ffi::c_int) -> core::ffi::c_int;
3313}
3314unsafe extern "C" {
3315 pub fn _isdigit_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3316}
3317unsafe extern "C" {
3318 pub fn isxdigit(_C: core::ffi::c_int) -> core::ffi::c_int;
3319}
3320unsafe extern "C" {
3321 pub fn _isxdigit_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3322}
3323unsafe extern "C" {
3324 pub fn isspace(_C: core::ffi::c_int) -> core::ffi::c_int;
3325}
3326unsafe extern "C" {
3327 pub fn _isspace_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3328}
3329unsafe extern "C" {
3330 pub fn ispunct(_C: core::ffi::c_int) -> core::ffi::c_int;
3331}
3332unsafe extern "C" {
3333 pub fn _ispunct_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3334}
3335unsafe extern "C" {
3336 pub fn isblank(_C: core::ffi::c_int) -> core::ffi::c_int;
3337}
3338unsafe extern "C" {
3339 pub fn _isblank_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3340}
3341unsafe extern "C" {
3342 pub fn isalnum(_C: core::ffi::c_int) -> core::ffi::c_int;
3343}
3344unsafe extern "C" {
3345 pub fn _isalnum_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3346}
3347unsafe extern "C" {
3348 pub fn isprint(_C: core::ffi::c_int) -> core::ffi::c_int;
3349}
3350unsafe extern "C" {
3351 pub fn _isprint_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3352}
3353unsafe extern "C" {
3354 pub fn isgraph(_C: core::ffi::c_int) -> core::ffi::c_int;
3355}
3356unsafe extern "C" {
3357 pub fn _isgraph_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3358}
3359unsafe extern "C" {
3360 pub fn iscntrl(_C: core::ffi::c_int) -> core::ffi::c_int;
3361}
3362unsafe extern "C" {
3363 pub fn _iscntrl_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3364}
3365unsafe extern "C" {
3366 pub fn toupper(_C: core::ffi::c_int) -> core::ffi::c_int;
3367}
3368unsafe extern "C" {
3369 pub fn tolower(_C: core::ffi::c_int) -> core::ffi::c_int;
3370}
3371unsafe extern "C" {
3372 pub fn _tolower(_C: core::ffi::c_int) -> core::ffi::c_int;
3373}
3374unsafe extern "C" {
3375 pub fn _tolower_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3376}
3377unsafe extern "C" {
3378 pub fn _toupper(_C: core::ffi::c_int) -> core::ffi::c_int;
3379}
3380unsafe extern "C" {
3381 pub fn _toupper_l(_C: core::ffi::c_int, _Locale: _locale_t) -> core::ffi::c_int;
3382}
3383unsafe extern "C" {
3384 pub fn __isascii(_C: core::ffi::c_int) -> core::ffi::c_int;
3385}
3386unsafe extern "C" {
3387 pub fn __toascii(_C: core::ffi::c_int) -> core::ffi::c_int;
3388}
3389unsafe extern "C" {
3390 pub fn __iscsymf(_C: core::ffi::c_int) -> core::ffi::c_int;
3391}
3392unsafe extern "C" {
3393 pub fn __iscsym(_C: core::ffi::c_int) -> core::ffi::c_int;
3394}
3395pub type POINTER_64_INT = core::ffi::c_ulonglong;
3396pub type INT8 = core::ffi::c_schar;
3397pub type PINT8 = *mut core::ffi::c_schar;
3398pub type INT16 = core::ffi::c_short;
3399pub type PINT16 = *mut core::ffi::c_short;
3400pub type INT32 = core::ffi::c_int;
3401pub type PINT32 = *mut core::ffi::c_int;
3402pub type INT64 = core::ffi::c_longlong;
3403pub type PINT64 = *mut core::ffi::c_longlong;
3404pub type UINT8 = core::ffi::c_uchar;
3405pub type PUINT8 = *mut core::ffi::c_uchar;
3406pub type UINT16 = core::ffi::c_ushort;
3407pub type PUINT16 = *mut core::ffi::c_ushort;
3408pub type UINT32 = core::ffi::c_uint;
3409pub type PUINT32 = *mut core::ffi::c_uint;
3410pub type UINT64 = core::ffi::c_ulonglong;
3411pub type PUINT64 = *mut core::ffi::c_ulonglong;
3412pub type LONG32 = core::ffi::c_int;
3413pub type PLONG32 = *mut core::ffi::c_int;
3414pub type ULONG32 = core::ffi::c_uint;
3415pub type PULONG32 = *mut core::ffi::c_uint;
3416pub type DWORD32 = core::ffi::c_uint;
3417pub type PDWORD32 = *mut core::ffi::c_uint;
3418pub type INT_PTR = core::ffi::c_longlong;
3419pub type PINT_PTR = *mut core::ffi::c_longlong;
3420pub type UINT_PTR = core::ffi::c_ulonglong;
3421pub type PUINT_PTR = *mut core::ffi::c_ulonglong;
3422pub type LONG_PTR = core::ffi::c_longlong;
3423pub type PLONG_PTR = *mut core::ffi::c_longlong;
3424pub type ULONG_PTR = core::ffi::c_ulonglong;
3425pub type PULONG_PTR = *mut core::ffi::c_ulonglong;
3426pub type PHANDLE64 = *mut *mut core::ffi::c_void;
3427pub type SHANDLE_PTR = core::ffi::c_longlong;
3428pub type HANDLE_PTR = core::ffi::c_ulonglong;
3429pub type UHALF_PTR = core::ffi::c_uint;
3430pub type PUHALF_PTR = *mut core::ffi::c_uint;
3431pub type HALF_PTR = core::ffi::c_int;
3432pub type PHALF_PTR = *mut core::ffi::c_int;
3433pub type SIZE_T = ULONG_PTR;
3434pub type PSIZE_T = *mut ULONG_PTR;
3435pub type SSIZE_T = LONG_PTR;
3436pub type PSSIZE_T = *mut LONG_PTR;
3437pub type DWORD_PTR = ULONG_PTR;
3438pub type PDWORD_PTR = *mut ULONG_PTR;
3439pub type LONG64 = core::ffi::c_longlong;
3440pub type PLONG64 = *mut core::ffi::c_longlong;
3441pub type ULONG64 = core::ffi::c_ulonglong;
3442pub type PULONG64 = *mut core::ffi::c_ulonglong;
3443pub type DWORD64 = core::ffi::c_ulonglong;
3444pub type PDWORD64 = *mut core::ffi::c_ulonglong;
3445pub type KAFFINITY = ULONG_PTR;
3446pub type PKAFFINITY = *mut KAFFINITY;
3447pub type PVOID = *mut core::ffi::c_void;
3448pub type CHAR = core::ffi::c_char;
3449pub type SHORT = core::ffi::c_short;
3450pub type LONG = core::ffi::c_long;
3451pub type INT = core::ffi::c_int;
3452pub type WCHAR = wchar_t;
3453pub type PWCHAR = *mut WCHAR;
3454pub type LPWCH = *mut WCHAR;
3455pub type PWCH = *mut WCHAR;
3456pub type LPCWCH = *const WCHAR;
3457pub type PCWCH = *const WCHAR;
3458pub type NWPSTR = *mut WCHAR;
3459pub type LPWSTR = *mut WCHAR;
3460pub type PWSTR = *mut WCHAR;
3461pub type PZPWSTR = *mut PWSTR;
3462pub type PCZPWSTR = *const PWSTR;
3463pub type LPUWSTR = *mut WCHAR;
3464pub type PUWSTR = *mut WCHAR;
3465pub type LPCWSTR = *const WCHAR;
3466pub type PCWSTR = *const WCHAR;
3467pub type PZPCWSTR = *mut PCWSTR;
3468pub type PCZPCWSTR = *const PCWSTR;
3469pub type LPCUWSTR = *const WCHAR;
3470pub type PCUWSTR = *const WCHAR;
3471pub type PZZWSTR = *mut WCHAR;
3472pub type PCZZWSTR = *const WCHAR;
3473pub type PUZZWSTR = *mut WCHAR;
3474pub type PCUZZWSTR = *const WCHAR;
3475pub type PNZWCH = *mut WCHAR;
3476pub type PCNZWCH = *const WCHAR;
3477pub type PUNZWCH = *mut WCHAR;
3478pub type PCUNZWCH = *const WCHAR;
3479pub type LPCWCHAR = *const WCHAR;
3480pub type PCWCHAR = *const WCHAR;
3481pub type LPCUWCHAR = *const WCHAR;
3482pub type PCUWCHAR = *const WCHAR;
3483pub type UCSCHAR = core::ffi::c_ulong;
3484pub type PUCSCHAR = *mut UCSCHAR;
3485pub type PCUCSCHAR = *const UCSCHAR;
3486pub type PUCSSTR = *mut UCSCHAR;
3487pub type PUUCSSTR = *mut UCSCHAR;
3488pub type PCUCSSTR = *const UCSCHAR;
3489pub type PCUUCSSTR = *const UCSCHAR;
3490pub type PUUCSCHAR = *mut UCSCHAR;
3491pub type PCUUCSCHAR = *const UCSCHAR;
3492pub type PCHAR = *mut CHAR;
3493pub type LPCH = *mut CHAR;
3494pub type PCH = *mut CHAR;
3495pub type LPCCH = *const CHAR;
3496pub type PCCH = *const CHAR;
3497pub type NPSTR = *mut CHAR;
3498pub type LPSTR = *mut CHAR;
3499pub type PSTR = *mut CHAR;
3500pub type PZPSTR = *mut PSTR;
3501pub type PCZPSTR = *const PSTR;
3502pub type LPCSTR = *const CHAR;
3503pub type PCSTR = *const CHAR;
3504pub type PZPCSTR = *mut PCSTR;
3505pub type PCZPCSTR = *const PCSTR;
3506pub type PZZSTR = *mut CHAR;
3507pub type PCZZSTR = *const CHAR;
3508pub type PNZCH = *mut CHAR;
3509pub type PCNZCH = *const CHAR;
3510pub type TCHAR = core::ffi::c_char;
3511pub type PTCHAR = *mut core::ffi::c_char;
3512pub type TUCHAR = core::ffi::c_uchar;
3513pub type PTUCHAR = *mut core::ffi::c_uchar;
3514pub type LPTCH = LPCH;
3515pub type PTCH = LPCH;
3516pub type LPCTCH = LPCCH;
3517pub type PCTCH = LPCCH;
3518pub type PTSTR = LPSTR;
3519pub type LPTSTR = LPSTR;
3520pub type PUTSTR = LPSTR;
3521pub type LPUTSTR = LPSTR;
3522pub type PCTSTR = LPCSTR;
3523pub type LPCTSTR = LPCSTR;
3524pub type PCUTSTR = LPCSTR;
3525pub type LPCUTSTR = LPCSTR;
3526pub type PZZTSTR = PZZSTR;
3527pub type PUZZTSTR = PZZSTR;
3528pub type PCZZTSTR = PCZZSTR;
3529pub type PCUZZTSTR = PCZZSTR;
3530pub type PZPTSTR = PZPSTR;
3531pub type PNZTCH = PNZCH;
3532pub type PUNZTCH = PNZCH;
3533pub type PCNZTCH = PCNZCH;
3534pub type PCUNZTCH = PCNZCH;
3535pub type DOUBLE = f64;
3536#[repr(C)]
3537#[derive(Copy, Clone)]
3538pub struct _QUAD {
3539 pub __bindgen_anon_1: _QUAD__bindgen_ty_1,
3540}
3541#[repr(C)]
3542#[derive(Copy, Clone)]
3543pub union _QUAD__bindgen_ty_1 {
3544 pub UseThisFieldToCopy: core::ffi::c_longlong,
3545 pub DoNotUseThisField: f64,
3546}
3547pub type QUAD = _QUAD;
3548pub type PSHORT = *mut SHORT;
3549pub type PLONG = *mut LONG;
3550pub type PQUAD = *mut QUAD;
3551pub type UCHAR = core::ffi::c_uchar;
3552pub type USHORT = core::ffi::c_ushort;
3553pub type ULONG = core::ffi::c_ulong;
3554pub type UQUAD = QUAD;
3555pub type PUCHAR = *mut UCHAR;
3556pub type PUSHORT = *mut USHORT;
3557pub type PULONG = *mut ULONG;
3558pub type PUQUAD = *mut UQUAD;
3559pub type PCUCHAR = *const UCHAR;
3560pub type PCUSHORT = *const USHORT;
3561pub type PCULONG = *const ULONG;
3562pub type PCUQUAD = *const UQUAD;
3563pub type SCHAR = core::ffi::c_schar;
3564pub type PSCHAR = *mut SCHAR;
3565pub type PCSCHAR = *const SCHAR;
3566#[repr(C)]
3567#[derive(Debug, Copy, Clone)]
3568pub struct _PROCESSOR_NUMBER {
3569 pub Group: USHORT,
3570 pub Number: UCHAR,
3571 pub Reserved: UCHAR,
3572}
3573pub type PROCESSOR_NUMBER = _PROCESSOR_NUMBER;
3574pub type PPROCESSOR_NUMBER = *mut _PROCESSOR_NUMBER;
3575#[repr(C)]
3576#[derive(Debug, Copy, Clone)]
3577pub struct _GROUP_AFFINITY {
3578 pub Mask: KAFFINITY,
3579 pub Group: USHORT,
3580 pub Reserved: [USHORT; 3usize],
3581}
3582pub type GROUP_AFFINITY = _GROUP_AFFINITY;
3583pub type PGROUP_AFFINITY = *mut _GROUP_AFFINITY;
3584#[repr(C)]
3585#[derive(Debug, Copy, Clone)]
3586pub struct _GROUP_AFFINITY32 {
3587 pub Mask: ULONG,
3588 pub Group: USHORT,
3589 pub Reserved: [USHORT; 3usize],
3590}
3591pub type GROUP_AFFINITY32 = _GROUP_AFFINITY32;
3592pub type PGROUP_AFFINITY32 = *mut _GROUP_AFFINITY32;
3593#[repr(C)]
3594#[derive(Debug, Copy, Clone)]
3595pub struct _GROUP_AFFINITY64 {
3596 pub Mask: core::ffi::c_ulonglong,
3597 pub Group: USHORT,
3598 pub Reserved: [USHORT; 3usize],
3599}
3600pub type GROUP_AFFINITY64 = _GROUP_AFFINITY64;
3601pub type PGROUP_AFFINITY64 = *mut _GROUP_AFFINITY64;
3602pub type HANDLE = *mut core::ffi::c_void;
3603pub type PHANDLE = *mut HANDLE;
3604pub type FCHAR = UCHAR;
3605pub type FSHORT = USHORT;
3606pub type FLONG = ULONG;
3607pub type HRESULT = core::ffi::c_long;
3608pub type CCHAR = core::ffi::c_char;
3609pub type CSHORT = core::ffi::c_short;
3610pub type CLONG = ULONG;
3611pub type PCCHAR = *mut CCHAR;
3612pub type PCSHORT = *mut CSHORT;
3613pub type PCLONG = *mut CLONG;
3614pub type LCID = ULONG;
3615pub type PLCID = PULONG;
3616pub type LANGID = USHORT;
3617pub const COMPARTMENT_ID_UNSPECIFIED_COMPARTMENT_ID: COMPARTMENT_ID = 0;
3618pub const COMPARTMENT_ID_DEFAULT_COMPARTMENT_ID: COMPARTMENT_ID = 1;
3619pub type COMPARTMENT_ID = core::ffi::c_int;
3620pub type PCOMPARTMENT_ID = *mut COMPARTMENT_ID;
3621pub type LOGICAL = ULONG;
3622pub type PLOGICAL = *mut ULONG;
3623pub type NTSTATUS = LONG;
3624pub type PNTSTATUS = *mut NTSTATUS;
3625pub type PCNTSTATUS = *const NTSTATUS;
3626pub type SECURITY_STATUS = core::ffi::c_long;
3627#[repr(C)]
3628#[derive(Debug, Copy, Clone)]
3629pub struct _FLOAT128 {
3630 pub LowPart: core::ffi::c_longlong,
3631 pub HighPart: core::ffi::c_longlong,
3632}
3633pub type FLOAT128 = _FLOAT128;
3634pub type PFLOAT128 = *mut FLOAT128;
3635pub type LONGLONG = core::ffi::c_longlong;
3636pub type ULONGLONG = core::ffi::c_ulonglong;
3637pub type PLONGLONG = *mut LONGLONG;
3638pub type PULONGLONG = *mut ULONGLONG;
3639pub type USN = LONGLONG;
3640#[repr(C)]
3641#[derive(Copy, Clone)]
3642pub union _LARGE_INTEGER {
3643 pub __bindgen_anon_1: _LARGE_INTEGER__bindgen_ty_1,
3644 pub u: _LARGE_INTEGER__bindgen_ty_2,
3645 pub QuadPart: LONGLONG,
3646}
3647#[repr(C)]
3648#[derive(Debug, Copy, Clone)]
3649pub struct _LARGE_INTEGER__bindgen_ty_1 {
3650 pub LowPart: ULONG,
3651 pub HighPart: LONG,
3652}
3653#[repr(C)]
3654#[derive(Debug, Copy, Clone)]
3655pub struct _LARGE_INTEGER__bindgen_ty_2 {
3656 pub LowPart: ULONG,
3657 pub HighPart: LONG,
3658}
3659pub type LARGE_INTEGER = _LARGE_INTEGER;
3660pub type PLARGE_INTEGER = *mut LARGE_INTEGER;
3661#[repr(C)]
3662#[derive(Copy, Clone)]
3663pub union _ULARGE_INTEGER {
3664 pub __bindgen_anon_1: _ULARGE_INTEGER__bindgen_ty_1,
3665 pub u: _ULARGE_INTEGER__bindgen_ty_2,
3666 pub QuadPart: ULONGLONG,
3667}
3668#[repr(C)]
3669#[derive(Debug, Copy, Clone)]
3670pub struct _ULARGE_INTEGER__bindgen_ty_1 {
3671 pub LowPart: ULONG,
3672 pub HighPart: ULONG,
3673}
3674#[repr(C)]
3675#[derive(Debug, Copy, Clone)]
3676pub struct _ULARGE_INTEGER__bindgen_ty_2 {
3677 pub LowPart: ULONG,
3678 pub HighPart: ULONG,
3679}
3680pub type ULARGE_INTEGER = _ULARGE_INTEGER;
3681pub type PULARGE_INTEGER = *mut ULARGE_INTEGER;
3682pub type RTL_REFERENCE_COUNT = LONG_PTR;
3683pub type PRTL_REFERENCE_COUNT = *mut LONG_PTR;
3684pub type RTL_REFERENCE_COUNT32 = LONG;
3685pub type PRTL_REFERENCE_COUNT32 = *mut LONG;
3686#[repr(C)]
3687#[derive(Debug, Copy, Clone)]
3688pub struct _LUID {
3689 pub LowPart: ULONG,
3690 pub HighPart: LONG,
3691}
3692pub type LUID = _LUID;
3693pub type PLUID = *mut _LUID;
3694pub type DWORDLONG = ULONGLONG;
3695pub type PDWORDLONG = *mut DWORDLONG;
3696pub type PHYSICAL_ADDRESS = LARGE_INTEGER;
3697pub type PPHYSICAL_ADDRESS = *mut LARGE_INTEGER;
3698unsafe extern "C" {
3699 pub fn _rotl8(Value: core::ffi::c_uchar, Shift: core::ffi::c_uchar) -> core::ffi::c_uchar;
3700}
3701unsafe extern "C" {
3702 pub fn _rotl16(Value: core::ffi::c_ushort, Shift: core::ffi::c_uchar) -> core::ffi::c_ushort;
3703}
3704unsafe extern "C" {
3705 pub fn _rotr8(Value: core::ffi::c_uchar, Shift: core::ffi::c_uchar) -> core::ffi::c_uchar;
3706}
3707unsafe extern "C" {
3708 pub fn _rotr16(Value: core::ffi::c_ushort, Shift: core::ffi::c_uchar) -> core::ffi::c_ushort;
3709}
3710unsafe extern "C" {
3711 pub fn _rotl(Value: core::ffi::c_uint, Shift: core::ffi::c_int) -> core::ffi::c_uint;
3712}
3713unsafe extern "C" {
3714 pub fn _rotl64(
3715 Value: core::ffi::c_ulonglong,
3716 Shift: core::ffi::c_int,
3717 ) -> core::ffi::c_ulonglong;
3718}
3719unsafe extern "C" {
3720 pub fn _rotr(Value: core::ffi::c_uint, Shift: core::ffi::c_int) -> core::ffi::c_uint;
3721}
3722unsafe extern "C" {
3723 pub fn _rotr64(
3724 Value: core::ffi::c_ulonglong,
3725 Shift: core::ffi::c_int,
3726 ) -> core::ffi::c_ulonglong;
3727}
3728pub const _EVENT_TYPE_NotificationEvent: _EVENT_TYPE = 0;
3729pub const _EVENT_TYPE_SynchronizationEvent: _EVENT_TYPE = 1;
3730pub type _EVENT_TYPE = core::ffi::c_int;
3731pub use self::_EVENT_TYPE as EVENT_TYPE;
3732pub const _TIMER_TYPE_NotificationTimer: _TIMER_TYPE = 0;
3733pub const _TIMER_TYPE_SynchronizationTimer: _TIMER_TYPE = 1;
3734pub type _TIMER_TYPE = core::ffi::c_int;
3735pub use self::_TIMER_TYPE as TIMER_TYPE;
3736pub const _WAIT_TYPE_WaitAll: _WAIT_TYPE = 0;
3737pub const _WAIT_TYPE_WaitAny: _WAIT_TYPE = 1;
3738pub const _WAIT_TYPE_WaitNotification: _WAIT_TYPE = 2;
3739pub const _WAIT_TYPE_WaitDequeue: _WAIT_TYPE = 3;
3740pub const _WAIT_TYPE_WaitDpc: _WAIT_TYPE = 4;
3741pub type _WAIT_TYPE = core::ffi::c_int;
3742pub use self::_WAIT_TYPE as WAIT_TYPE;
3743pub type PSZ = *mut CHAR;
3744pub type PCSZ = *const core::ffi::c_char;
3745pub type RTL_STRING_LENGTH_TYPE = USHORT;
3746#[repr(C)]
3747#[derive(Debug, Copy, Clone)]
3748pub struct _STRING {
3749 pub Length: USHORT,
3750 pub MaximumLength: USHORT,
3751 pub Buffer: PCHAR,
3752}
3753pub type STRING = _STRING;
3754pub type PSTRING = *mut STRING;
3755pub type ANSI_STRING = STRING;
3756pub type PANSI_STRING = PSTRING;
3757pub type OEM_STRING = STRING;
3758pub type POEM_STRING = PSTRING;
3759pub type PCOEM_STRING = *const STRING;
3760#[repr(C)]
3761#[derive(Debug, Copy, Clone)]
3762pub struct _CSTRING {
3763 pub Length: USHORT,
3764 pub MaximumLength: USHORT,
3765 pub Buffer: *const core::ffi::c_char,
3766}
3767pub type CSTRING = _CSTRING;
3768pub type PCSTRING = *mut CSTRING;
3769pub type CANSI_STRING = STRING;
3770pub type PCANSI_STRING = PSTRING;
3771pub type UTF8_STRING = STRING;
3772pub type PUTF8_STRING = PSTRING;
3773#[repr(C)]
3774#[derive(Debug, Copy, Clone)]
3775pub struct _UNICODE_STRING {
3776 pub Length: USHORT,
3777 pub MaximumLength: USHORT,
3778 pub Buffer: PWCH,
3779}
3780
3781impl _UNICODE_STRING {
3782 pub fn from_str(s: &str) -> Self {
3783 let mut wide: Vec<u16> = s.encode_utf16().chain(Some(0)).collect();
3784
3785 let length = ((wide.len() - 1) * 2) as u16;
3786 let max_length = (wide.len() * 2) as u16;
3787
3788 let buffer = wide.as_mut_ptr();
3789 core::mem::forget(wide);
3790
3791 Self {
3792 Length: length,
3793 MaximumLength: max_length,
3794 Buffer: buffer,
3795 }
3796 }
3797}
3798
3799pub type UNICODE_STRING = _UNICODE_STRING;
3800pub type PUNICODE_STRING = *mut UNICODE_STRING;
3801pub type PCUNICODE_STRING = *const UNICODE_STRING;
3802pub type BOOLEAN = UCHAR;
3803pub type PBOOLEAN = *mut BOOLEAN;
3804#[repr(C)]
3805#[derive(Debug, Copy, Clone)]
3806pub struct _LIST_ENTRY {
3807 pub Flink: *mut _LIST_ENTRY,
3808 pub Blink: *mut _LIST_ENTRY,
3809}
3810pub type LIST_ENTRY = _LIST_ENTRY;
3811pub type PLIST_ENTRY = *mut _LIST_ENTRY;
3812pub type PRLIST_ENTRY = *mut _LIST_ENTRY;
3813#[repr(C)]
3814#[derive(Debug, Copy, Clone)]
3815pub struct _SINGLE_LIST_ENTRY {
3816 pub Next: *mut _SINGLE_LIST_ENTRY,
3817}
3818pub type SINGLE_LIST_ENTRY = _SINGLE_LIST_ENTRY;
3819pub type PSINGLE_LIST_ENTRY = *mut _SINGLE_LIST_ENTRY;
3820#[repr(C)]
3821#[derive(Copy, Clone)]
3822pub struct _RTL_BALANCED_NODE {
3823 pub __bindgen_anon_1: _RTL_BALANCED_NODE__bindgen_ty_1,
3824 pub __bindgen_anon_2: _RTL_BALANCED_NODE__bindgen_ty_2,
3825}
3826#[repr(C)]
3827#[derive(Copy, Clone)]
3828pub union _RTL_BALANCED_NODE__bindgen_ty_1 {
3829 pub Children: [*mut _RTL_BALANCED_NODE; 2usize],
3830 pub __bindgen_anon_1: _RTL_BALANCED_NODE__bindgen_ty_1__bindgen_ty_1,
3831}
3832#[repr(C)]
3833#[derive(Debug, Copy, Clone)]
3834pub struct _RTL_BALANCED_NODE__bindgen_ty_1__bindgen_ty_1 {
3835 pub Left: *mut _RTL_BALANCED_NODE,
3836 pub Right: *mut _RTL_BALANCED_NODE,
3837}
3838#[repr(C)]
3839#[derive(Copy, Clone)]
3840pub union _RTL_BALANCED_NODE__bindgen_ty_2 {
3841 pub _bitfield_align_1: [u8; 0],
3842 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
3843 pub ParentValue: ULONG_PTR,
3844}
3845impl _RTL_BALANCED_NODE__bindgen_ty_2 {
3846 #[inline]
3847 pub fn Red(&self) -> UCHAR {
3848 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
3849 }
3850 #[inline]
3851 pub fn set_Red(&mut self, val: UCHAR) {
3852 unsafe {
3853 let val: u8 = ::core::mem::transmute(val);
3854 self._bitfield_1.set(0usize, 1u8, val as u64)
3855 }
3856 }
3857 #[inline]
3858 pub unsafe fn Red_raw(this: *const Self) -> UCHAR {
3859 unsafe {
3860 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3861 ::core::ptr::addr_of!((*this)._bitfield_1),
3862 0usize,
3863 1u8,
3864 ) as u8)
3865 }
3866 }
3867 #[inline]
3868 pub unsafe fn set_Red_raw(this: *mut Self, val: UCHAR) {
3869 unsafe {
3870 let val: u8 = ::core::mem::transmute(val);
3871 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3872 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
3873 0usize,
3874 1u8,
3875 val as u64,
3876 )
3877 }
3878 }
3879 #[inline]
3880 pub fn Balance(&self) -> UCHAR {
3881 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 2u8) as u8) }
3882 }
3883 #[inline]
3884 pub fn set_Balance(&mut self, val: UCHAR) {
3885 unsafe {
3886 let val: u8 = ::core::mem::transmute(val);
3887 self._bitfield_1.set(1usize, 2u8, val as u64)
3888 }
3889 }
3890 #[inline]
3891 pub unsafe fn Balance_raw(this: *const Self) -> UCHAR {
3892 unsafe {
3893 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
3894 ::core::ptr::addr_of!((*this)._bitfield_1),
3895 1usize,
3896 2u8,
3897 ) as u8)
3898 }
3899 }
3900 #[inline]
3901 pub unsafe fn set_Balance_raw(this: *mut Self, val: UCHAR) {
3902 unsafe {
3903 let val: u8 = ::core::mem::transmute(val);
3904 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
3905 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
3906 1usize,
3907 2u8,
3908 val as u64,
3909 )
3910 }
3911 }
3912 #[inline]
3913 pub fn new_bitfield_1(Red: UCHAR, Balance: UCHAR) -> __BindgenBitfieldUnit<[u8; 1usize]> {
3914 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
3915 __bindgen_bitfield_unit.set(0usize, 1u8, {
3916 let Red: u8 = unsafe { ::core::mem::transmute(Red) };
3917 Red as u64
3918 });
3919 __bindgen_bitfield_unit.set(1usize, 2u8, {
3920 let Balance: u8 = unsafe { ::core::mem::transmute(Balance) };
3921 Balance as u64
3922 });
3923 __bindgen_bitfield_unit
3924 }
3925}
3926pub type RTL_BALANCED_NODE = _RTL_BALANCED_NODE;
3927pub type PRTL_BALANCED_NODE = *mut _RTL_BALANCED_NODE;
3928#[repr(C)]
3929#[derive(Debug, Copy, Clone)]
3930pub struct LIST_ENTRY32 {
3931 pub Flink: ULONG,
3932 pub Blink: ULONG,
3933}
3934pub type PLIST_ENTRY32 = *mut LIST_ENTRY32;
3935#[repr(C)]
3936#[derive(Debug, Copy, Clone)]
3937pub struct LIST_ENTRY64 {
3938 pub Flink: ULONGLONG,
3939 pub Blink: ULONGLONG,
3940}
3941pub type PLIST_ENTRY64 = *mut LIST_ENTRY64;
3942#[repr(C)]
3943#[derive(Debug, Copy, Clone)]
3944pub struct _SINGLE_LIST_ENTRY32 {
3945 pub Next: ULONG,
3946}
3947pub type SINGLE_LIST_ENTRY32 = _SINGLE_LIST_ENTRY32;
3948pub type PSINGLE_LIST_ENTRY32 = *mut _SINGLE_LIST_ENTRY32;
3949#[repr(C)]
3950#[derive(Debug, Copy, Clone)]
3951pub struct _WNF_STATE_NAME {
3952 pub Data: [ULONG; 2usize],
3953}
3954pub type WNF_STATE_NAME = _WNF_STATE_NAME;
3955pub type PWNF_STATE_NAME = *mut _WNF_STATE_NAME;
3956pub type PCWNF_STATE_NAME = *const _WNF_STATE_NAME;
3957#[repr(C)]
3958#[derive(Debug, Copy, Clone)]
3959pub struct _STRING32 {
3960 pub Length: USHORT,
3961 pub MaximumLength: USHORT,
3962 pub Buffer: ULONG,
3963}
3964pub type STRING32 = _STRING32;
3965pub type PSTRING32 = *mut STRING32;
3966pub type UNICODE_STRING32 = STRING32;
3967pub type PUNICODE_STRING32 = *mut UNICODE_STRING32;
3968pub type ANSI_STRING32 = STRING32;
3969pub type PANSI_STRING32 = *mut ANSI_STRING32;
3970#[repr(C)]
3971#[derive(Debug, Copy, Clone)]
3972pub struct _STRING64 {
3973 pub Length: USHORT,
3974 pub MaximumLength: USHORT,
3975 pub Buffer: ULONGLONG,
3976}
3977pub type STRING64 = _STRING64;
3978pub type PSTRING64 = *mut STRING64;
3979pub type UNICODE_STRING64 = STRING64;
3980pub type PUNICODE_STRING64 = *mut UNICODE_STRING64;
3981pub type ANSI_STRING64 = STRING64;
3982pub type PANSI_STRING64 = *mut ANSI_STRING64;
3983#[repr(C)]
3984#[derive(Debug, Copy, Clone)]
3985pub struct _OBJECT_ATTRIBUTES64 {
3986 pub Length: ULONG,
3987 pub RootDirectory: ULONG64,
3988 pub ObjectName: ULONG64,
3989 pub Attributes: ULONG,
3990 pub SecurityDescriptor: ULONG64,
3991 pub SecurityQualityOfService: ULONG64,
3992}
3993pub type OBJECT_ATTRIBUTES64 = _OBJECT_ATTRIBUTES64;
3994pub type POBJECT_ATTRIBUTES64 = *mut OBJECT_ATTRIBUTES64;
3995pub type PCOBJECT_ATTRIBUTES64 = *const OBJECT_ATTRIBUTES64;
3996#[repr(C)]
3997#[derive(Debug, Copy, Clone)]
3998pub struct _OBJECT_ATTRIBUTES32 {
3999 pub Length: ULONG,
4000 pub RootDirectory: ULONG,
4001 pub ObjectName: ULONG,
4002 pub Attributes: ULONG,
4003 pub SecurityDescriptor: ULONG,
4004 pub SecurityQualityOfService: ULONG,
4005}
4006pub type OBJECT_ATTRIBUTES32 = _OBJECT_ATTRIBUTES32;
4007pub type POBJECT_ATTRIBUTES32 = *mut OBJECT_ATTRIBUTES32;
4008pub type PCOBJECT_ATTRIBUTES32 = *const OBJECT_ATTRIBUTES32;
4009#[repr(C)]
4010#[derive(Debug, Copy, Clone)]
4011pub struct _OBJECT_ATTRIBUTES {
4012 pub Length: ULONG,
4013 pub RootDirectory: HANDLE,
4014 pub ObjectName: PUNICODE_STRING,
4015 pub Attributes: ULONG,
4016 pub SecurityDescriptor: PVOID,
4017 pub SecurityQualityOfService: PVOID,
4018}
4019pub type OBJECT_ATTRIBUTES = _OBJECT_ATTRIBUTES;
4020pub type POBJECT_ATTRIBUTES = *mut OBJECT_ATTRIBUTES;
4021pub type PCOBJECT_ATTRIBUTES = *const OBJECT_ATTRIBUTES;
4022#[repr(C)]
4023#[derive(Debug, Copy, Clone)]
4024pub struct _GUID {
4025 pub Data1: core::ffi::c_ulong,
4026 pub Data2: core::ffi::c_ushort,
4027 pub Data3: core::ffi::c_ushort,
4028 pub Data4: [core::ffi::c_uchar; 8usize],
4029}
4030pub type GUID = _GUID;
4031pub type LPGUID = *mut GUID;
4032pub type LPCGUID = *const GUID;
4033pub type IID = GUID;
4034pub type LPIID = *mut IID;
4035pub type CLSID = GUID;
4036pub type LPCLSID = *mut CLSID;
4037pub type FMTID = GUID;
4038pub type LPFMTID = *mut FMTID;
4039unsafe extern "C" {
4040 pub fn _errno() -> *mut core::ffi::c_int;
4041}
4042unsafe extern "C" {
4043 pub fn _set_errno(_Value: core::ffi::c_int) -> errno_t;
4044}
4045unsafe extern "C" {
4046 pub fn _get_errno(_Value: *mut core::ffi::c_int) -> errno_t;
4047}
4048unsafe extern "C" {
4049 pub fn __doserrno() -> *mut core::ffi::c_ulong;
4050}
4051unsafe extern "C" {
4052 pub fn _set_doserrno(_Value: core::ffi::c_ulong) -> errno_t;
4053}
4054unsafe extern "C" {
4055 pub fn _get_doserrno(_Value: *mut core::ffi::c_ulong) -> errno_t;
4056}
4057unsafe extern "C" {
4058 pub fn memchr(
4059 _Buf: *const core::ffi::c_void,
4060 _Val: core::ffi::c_int,
4061 _MaxCount: core::ffi::c_ulonglong,
4062 ) -> *mut core::ffi::c_void;
4063}
4064unsafe extern "C" {
4065 pub fn memcmp(
4066 _Buf1: *const core::ffi::c_void,
4067 _Buf2: *const core::ffi::c_void,
4068 _Size: core::ffi::c_ulonglong,
4069 ) -> core::ffi::c_int;
4070}
4071unsafe extern "C" {
4072 pub fn memcpy(
4073 _Dst: *mut core::ffi::c_void,
4074 _Src: *const core::ffi::c_void,
4075 _Size: core::ffi::c_ulonglong,
4076 ) -> *mut core::ffi::c_void;
4077}
4078unsafe extern "C" {
4079 pub fn memmove(
4080 _Dst: *mut core::ffi::c_void,
4081 _Src: *const core::ffi::c_void,
4082 _Size: core::ffi::c_ulonglong,
4083 ) -> *mut core::ffi::c_void;
4084}
4085unsafe extern "C" {
4086 pub fn memset(
4087 _Dst: *mut core::ffi::c_void,
4088 _Val: core::ffi::c_int,
4089 _Size: core::ffi::c_ulonglong,
4090 ) -> *mut core::ffi::c_void;
4091}
4092unsafe extern "C" {
4093 pub fn strchr(_Str: *const core::ffi::c_char, _Val: core::ffi::c_int)
4094 -> *mut core::ffi::c_char;
4095}
4096unsafe extern "C" {
4097 pub fn strrchr(_Str: *const core::ffi::c_char, _Ch: core::ffi::c_int)
4098 -> *mut core::ffi::c_char;
4099}
4100unsafe extern "C" {
4101 pub fn strstr(
4102 _Str: *const core::ffi::c_char,
4103 _SubStr: *const core::ffi::c_char,
4104 ) -> *mut core::ffi::c_char;
4105}
4106unsafe extern "C" {
4107 pub fn wcschr(
4108 _Str: *const core::ffi::c_ushort,
4109 _Ch: core::ffi::c_ushort,
4110 ) -> *mut core::ffi::c_ushort;
4111}
4112unsafe extern "C" {
4113 pub fn wcsrchr(_Str: *const wchar_t, _Ch: wchar_t) -> *mut wchar_t;
4114}
4115unsafe extern "C" {
4116 pub fn wcsstr(_Str: *const wchar_t, _SubStr: *const wchar_t) -> *mut wchar_t;
4117}
4118unsafe extern "C" {
4119 pub fn _memicmp(
4120 _Buf1: *const core::ffi::c_void,
4121 _Buf2: *const core::ffi::c_void,
4122 _Size: usize,
4123 ) -> core::ffi::c_int;
4124}
4125unsafe extern "C" {
4126 pub fn _memicmp_l(
4127 _Buf1: *const core::ffi::c_void,
4128 _Buf2: *const core::ffi::c_void,
4129 _Size: usize,
4130 _Locale: _locale_t,
4131 ) -> core::ffi::c_int;
4132}
4133unsafe extern "C" {
4134 pub fn memccpy(
4135 _Dst: *mut core::ffi::c_void,
4136 _Src: *const core::ffi::c_void,
4137 _Val: core::ffi::c_int,
4138 _Size: core::ffi::c_ulonglong,
4139 ) -> *mut core::ffi::c_void;
4140}
4141unsafe extern "C" {
4142 pub fn memicmp(
4143 _Buf1: *const core::ffi::c_void,
4144 _Buf2: *const core::ffi::c_void,
4145 _Size: usize,
4146 ) -> core::ffi::c_int;
4147}
4148unsafe extern "C" {
4149 pub fn wcscat_s(
4150 _Destination: *mut wchar_t,
4151 _SizeInWords: rsize_t,
4152 _Source: *const wchar_t,
4153 ) -> errno_t;
4154}
4155unsafe extern "C" {
4156 pub fn wcscpy_s(
4157 _Destination: *mut wchar_t,
4158 _SizeInWords: rsize_t,
4159 _Source: *const wchar_t,
4160 ) -> errno_t;
4161}
4162unsafe extern "C" {
4163 pub fn wcsncat_s(
4164 _Destination: *mut wchar_t,
4165 _SizeInWords: rsize_t,
4166 _Source: *const wchar_t,
4167 _MaxCount: rsize_t,
4168 ) -> errno_t;
4169}
4170unsafe extern "C" {
4171 pub fn wcsncpy_s(
4172 _Destination: *mut wchar_t,
4173 _SizeInWords: rsize_t,
4174 _Source: *const wchar_t,
4175 _MaxCount: rsize_t,
4176 ) -> errno_t;
4177}
4178unsafe extern "C" {
4179 pub fn wcstok_s(
4180 _String: *mut wchar_t,
4181 _Delimiter: *const wchar_t,
4182 _Context: *mut *mut wchar_t,
4183 ) -> *mut wchar_t;
4184}
4185unsafe extern "C" {
4186 pub fn _wcsdup(_String: *const wchar_t) -> *mut wchar_t;
4187}
4188unsafe extern "C" {
4189 pub fn wcscat(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
4190}
4191unsafe extern "C" {
4192 pub fn wcscmp(
4193 _String1: *const core::ffi::c_ushort,
4194 _String2: *const core::ffi::c_ushort,
4195 ) -> core::ffi::c_int;
4196}
4197unsafe extern "C" {
4198 pub fn wcscpy(_Destination: *mut wchar_t, _Source: *const wchar_t) -> *mut wchar_t;
4199}
4200unsafe extern "C" {
4201 pub fn wcscspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
4202}
4203unsafe extern "C" {
4204 pub fn wcslen(_String: *const core::ffi::c_ushort) -> core::ffi::c_ulonglong;
4205}
4206unsafe extern "C" {
4207 pub fn wcsnlen(_Source: *const wchar_t, _MaxCount: usize) -> usize;
4208}
4209unsafe extern "C" {
4210 pub fn wcsncat(
4211 _Destination: *mut wchar_t,
4212 _Source: *const wchar_t,
4213 _Count: usize,
4214 ) -> *mut wchar_t;
4215}
4216unsafe extern "C" {
4217 pub fn wcsncmp(
4218 _String1: *const core::ffi::c_ushort,
4219 _String2: *const core::ffi::c_ushort,
4220 _MaxCount: core::ffi::c_ulonglong,
4221 ) -> core::ffi::c_int;
4222}
4223unsafe extern "C" {
4224 pub fn wcsncpy(
4225 _Destination: *mut wchar_t,
4226 _Source: *const wchar_t,
4227 _Count: usize,
4228 ) -> *mut wchar_t;
4229}
4230unsafe extern "C" {
4231 pub fn wcspbrk(_String: *const wchar_t, _Control: *const wchar_t) -> *mut wchar_t;
4232}
4233unsafe extern "C" {
4234 pub fn wcsspn(_String: *const wchar_t, _Control: *const wchar_t) -> usize;
4235}
4236unsafe extern "C" {
4237 pub fn wcstok(
4238 _String: *mut wchar_t,
4239 _Delimiter: *const wchar_t,
4240 _Context: *mut *mut wchar_t,
4241 ) -> *mut wchar_t;
4242}
4243unsafe extern "C" {
4244 pub fn _wcserror(_ErrorNumber: core::ffi::c_int) -> *mut wchar_t;
4245}
4246unsafe extern "C" {
4247 pub fn _wcserror_s(
4248 _Buffer: *mut wchar_t,
4249 _SizeInWords: usize,
4250 _ErrorNumber: core::ffi::c_int,
4251 ) -> errno_t;
4252}
4253unsafe extern "C" {
4254 pub fn __wcserror(_String: *const wchar_t) -> *mut wchar_t;
4255}
4256unsafe extern "C" {
4257 pub fn __wcserror_s(
4258 _Buffer: *mut wchar_t,
4259 _SizeInWords: usize,
4260 _ErrorMessage: *const wchar_t,
4261 ) -> errno_t;
4262}
4263unsafe extern "C" {
4264 pub fn _wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> core::ffi::c_int;
4265}
4266unsafe extern "C" {
4267 pub fn _wcsicmp_l(
4268 _String1: *const wchar_t,
4269 _String2: *const wchar_t,
4270 _Locale: _locale_t,
4271 ) -> core::ffi::c_int;
4272}
4273unsafe extern "C" {
4274 pub fn _wcsnicmp(
4275 _String1: *const wchar_t,
4276 _String2: *const wchar_t,
4277 _MaxCount: usize,
4278 ) -> core::ffi::c_int;
4279}
4280unsafe extern "C" {
4281 pub fn _wcsnicmp_l(
4282 _String1: *const wchar_t,
4283 _String2: *const wchar_t,
4284 _MaxCount: usize,
4285 _Locale: _locale_t,
4286 ) -> core::ffi::c_int;
4287}
4288unsafe extern "C" {
4289 pub fn _wcsnset_s(
4290 _Destination: *mut wchar_t,
4291 _SizeInWords: usize,
4292 _Value: wchar_t,
4293 _MaxCount: usize,
4294 ) -> errno_t;
4295}
4296unsafe extern "C" {
4297 pub fn _wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
4298}
4299unsafe extern "C" {
4300 pub fn _wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
4301}
4302unsafe extern "C" {
4303 pub fn _wcsset_s(_Destination: *mut wchar_t, _SizeInWords: usize, _Value: wchar_t) -> errno_t;
4304}
4305unsafe extern "C" {
4306 pub fn _wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
4307}
4308unsafe extern "C" {
4309 pub fn _wcslwr_s(_String: *mut wchar_t, _SizeInWords: usize) -> errno_t;
4310}
4311unsafe extern "C" {
4312 pub fn _wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
4313}
4314unsafe extern "C" {
4315 pub fn _wcslwr_s_l(_String: *mut wchar_t, _SizeInWords: usize, _Locale: _locale_t) -> errno_t;
4316}
4317unsafe extern "C" {
4318 pub fn _wcslwr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
4319}
4320unsafe extern "C" {
4321 pub fn _wcsupr_s(_String: *mut wchar_t, _Size: usize) -> errno_t;
4322}
4323unsafe extern "C" {
4324 pub fn _wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
4325}
4326unsafe extern "C" {
4327 pub fn _wcsupr_s_l(_String: *mut wchar_t, _Size: usize, _Locale: _locale_t) -> errno_t;
4328}
4329unsafe extern "C" {
4330 pub fn _wcsupr_l(_String: *mut wchar_t, _Locale: _locale_t) -> *mut wchar_t;
4331}
4332unsafe extern "C" {
4333 pub fn wcsxfrm(_Destination: *mut wchar_t, _Source: *const wchar_t, _MaxCount: usize) -> usize;
4334}
4335unsafe extern "C" {
4336 pub fn _wcsxfrm_l(
4337 _Destination: *mut wchar_t,
4338 _Source: *const wchar_t,
4339 _MaxCount: usize,
4340 _Locale: _locale_t,
4341 ) -> usize;
4342}
4343unsafe extern "C" {
4344 pub fn wcscoll(_String1: *const wchar_t, _String2: *const wchar_t) -> core::ffi::c_int;
4345}
4346unsafe extern "C" {
4347 pub fn _wcscoll_l(
4348 _String1: *const wchar_t,
4349 _String2: *const wchar_t,
4350 _Locale: _locale_t,
4351 ) -> core::ffi::c_int;
4352}
4353unsafe extern "C" {
4354 pub fn _wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> core::ffi::c_int;
4355}
4356unsafe extern "C" {
4357 pub fn _wcsicoll_l(
4358 _String1: *const wchar_t,
4359 _String2: *const wchar_t,
4360 _Locale: _locale_t,
4361 ) -> core::ffi::c_int;
4362}
4363unsafe extern "C" {
4364 pub fn _wcsncoll(
4365 _String1: *const wchar_t,
4366 _String2: *const wchar_t,
4367 _MaxCount: usize,
4368 ) -> core::ffi::c_int;
4369}
4370unsafe extern "C" {
4371 pub fn _wcsncoll_l(
4372 _String1: *const wchar_t,
4373 _String2: *const wchar_t,
4374 _MaxCount: usize,
4375 _Locale: _locale_t,
4376 ) -> core::ffi::c_int;
4377}
4378unsafe extern "C" {
4379 pub fn _wcsnicoll(
4380 _String1: *const wchar_t,
4381 _String2: *const wchar_t,
4382 _MaxCount: usize,
4383 ) -> core::ffi::c_int;
4384}
4385unsafe extern "C" {
4386 pub fn _wcsnicoll_l(
4387 _String1: *const wchar_t,
4388 _String2: *const wchar_t,
4389 _MaxCount: usize,
4390 _Locale: _locale_t,
4391 ) -> core::ffi::c_int;
4392}
4393unsafe extern "C" {
4394 pub fn wcsdup(_String: *const wchar_t) -> *mut wchar_t;
4395}
4396unsafe extern "C" {
4397 pub fn wcsicmp(_String1: *const wchar_t, _String2: *const wchar_t) -> core::ffi::c_int;
4398}
4399unsafe extern "C" {
4400 pub fn wcsnicmp(
4401 _String1: *const wchar_t,
4402 _String2: *const wchar_t,
4403 _MaxCount: usize,
4404 ) -> core::ffi::c_int;
4405}
4406unsafe extern "C" {
4407 pub fn wcsnset(_String: *mut wchar_t, _Value: wchar_t, _MaxCount: usize) -> *mut wchar_t;
4408}
4409unsafe extern "C" {
4410 pub fn wcsrev(_String: *mut wchar_t) -> *mut wchar_t;
4411}
4412unsafe extern "C" {
4413 pub fn wcsset(_String: *mut wchar_t, _Value: wchar_t) -> *mut wchar_t;
4414}
4415unsafe extern "C" {
4416 pub fn wcslwr(_String: *mut wchar_t) -> *mut wchar_t;
4417}
4418unsafe extern "C" {
4419 pub fn wcsupr(_String: *mut wchar_t) -> *mut wchar_t;
4420}
4421unsafe extern "C" {
4422 pub fn wcsicoll(_String1: *const wchar_t, _String2: *const wchar_t) -> core::ffi::c_int;
4423}
4424unsafe extern "C" {
4425 pub fn strcpy_s(
4426 _Destination: *mut core::ffi::c_char,
4427 _SizeInBytes: rsize_t,
4428 _Source: *const core::ffi::c_char,
4429 ) -> errno_t;
4430}
4431unsafe extern "C" {
4432 pub fn strcat_s(
4433 _Destination: *mut core::ffi::c_char,
4434 _SizeInBytes: rsize_t,
4435 _Source: *const core::ffi::c_char,
4436 ) -> errno_t;
4437}
4438unsafe extern "C" {
4439 pub fn strerror_s(
4440 _Buffer: *mut core::ffi::c_char,
4441 _SizeInBytes: usize,
4442 _ErrorNumber: core::ffi::c_int,
4443 ) -> errno_t;
4444}
4445unsafe extern "C" {
4446 pub fn strncat_s(
4447 _Destination: *mut core::ffi::c_char,
4448 _SizeInBytes: rsize_t,
4449 _Source: *const core::ffi::c_char,
4450 _MaxCount: rsize_t,
4451 ) -> errno_t;
4452}
4453unsafe extern "C" {
4454 pub fn strncpy_s(
4455 _Destination: *mut core::ffi::c_char,
4456 _SizeInBytes: rsize_t,
4457 _Source: *const core::ffi::c_char,
4458 _MaxCount: rsize_t,
4459 ) -> errno_t;
4460}
4461unsafe extern "C" {
4462 pub fn strtok_s(
4463 _String: *mut core::ffi::c_char,
4464 _Delimiter: *const core::ffi::c_char,
4465 _Context: *mut *mut core::ffi::c_char,
4466 ) -> *mut core::ffi::c_char;
4467}
4468unsafe extern "C" {
4469 pub fn _memccpy(
4470 _Dst: *mut core::ffi::c_void,
4471 _Src: *const core::ffi::c_void,
4472 _Val: core::ffi::c_int,
4473 _MaxCount: usize,
4474 ) -> *mut core::ffi::c_void;
4475}
4476unsafe extern "C" {
4477 pub fn strcat(
4478 _Destination: *mut core::ffi::c_char,
4479 _Source: *const core::ffi::c_char,
4480 ) -> *mut core::ffi::c_char;
4481}
4482unsafe extern "C" {
4483 pub fn strcmp(
4484 _Str1: *const core::ffi::c_char,
4485 _Str2: *const core::ffi::c_char,
4486 ) -> core::ffi::c_int;
4487}
4488unsafe extern "C" {
4489 pub fn _strcmpi(
4490 _String1: *const core::ffi::c_char,
4491 _String2: *const core::ffi::c_char,
4492 ) -> core::ffi::c_int;
4493}
4494unsafe extern "C" {
4495 pub fn strcoll(
4496 _String1: *const core::ffi::c_char,
4497 _String2: *const core::ffi::c_char,
4498 ) -> core::ffi::c_int;
4499}
4500unsafe extern "C" {
4501 pub fn _strcoll_l(
4502 _String1: *const core::ffi::c_char,
4503 _String2: *const core::ffi::c_char,
4504 _Locale: _locale_t,
4505 ) -> core::ffi::c_int;
4506}
4507unsafe extern "C" {
4508 pub fn strcpy(
4509 _Destination: *mut core::ffi::c_char,
4510 _Source: *const core::ffi::c_char,
4511 ) -> *mut core::ffi::c_char;
4512}
4513unsafe extern "C" {
4514 pub fn strcspn(
4515 _Str: *const core::ffi::c_char,
4516 _Control: *const core::ffi::c_char,
4517 ) -> core::ffi::c_ulonglong;
4518}
4519unsafe extern "C" {
4520 pub fn _strdup(_Source: *const core::ffi::c_char) -> *mut core::ffi::c_char;
4521}
4522unsafe extern "C" {
4523 pub fn _strerror(_ErrorMessage: *const core::ffi::c_char) -> *mut core::ffi::c_char;
4524}
4525unsafe extern "C" {
4526 pub fn _strerror_s(
4527 _Buffer: *mut core::ffi::c_char,
4528 _SizeInBytes: usize,
4529 _ErrorMessage: *const core::ffi::c_char,
4530 ) -> errno_t;
4531}
4532unsafe extern "C" {
4533 pub fn strerror(_ErrorMessage: core::ffi::c_int) -> *mut core::ffi::c_char;
4534}
4535unsafe extern "C" {
4536 pub fn _stricmp(
4537 _String1: *const core::ffi::c_char,
4538 _String2: *const core::ffi::c_char,
4539 ) -> core::ffi::c_int;
4540}
4541unsafe extern "C" {
4542 pub fn _stricoll(
4543 _String1: *const core::ffi::c_char,
4544 _String2: *const core::ffi::c_char,
4545 ) -> core::ffi::c_int;
4546}
4547unsafe extern "C" {
4548 pub fn _stricoll_l(
4549 _String1: *const core::ffi::c_char,
4550 _String2: *const core::ffi::c_char,
4551 _Locale: _locale_t,
4552 ) -> core::ffi::c_int;
4553}
4554unsafe extern "C" {
4555 pub fn _stricmp_l(
4556 _String1: *const core::ffi::c_char,
4557 _String2: *const core::ffi::c_char,
4558 _Locale: _locale_t,
4559 ) -> core::ffi::c_int;
4560}
4561unsafe extern "C" {
4562 pub fn strlen(_Str: *const core::ffi::c_char) -> core::ffi::c_ulonglong;
4563}
4564unsafe extern "C" {
4565 pub fn _strlwr_s(_String: *mut core::ffi::c_char, _Size: usize) -> errno_t;
4566}
4567unsafe extern "C" {
4568 pub fn _strlwr(_String: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4569}
4570unsafe extern "C" {
4571 pub fn _strlwr_s_l(
4572 _String: *mut core::ffi::c_char,
4573 _Size: usize,
4574 _Locale: _locale_t,
4575 ) -> errno_t;
4576}
4577unsafe extern "C" {
4578 pub fn _strlwr_l(_String: *mut core::ffi::c_char, _Locale: _locale_t)
4579 -> *mut core::ffi::c_char;
4580}
4581unsafe extern "C" {
4582 pub fn strncat(
4583 _Destination: *mut core::ffi::c_char,
4584 _Source: *const core::ffi::c_char,
4585 _Count: core::ffi::c_ulonglong,
4586 ) -> *mut core::ffi::c_char;
4587}
4588unsafe extern "C" {
4589 pub fn strncmp(
4590 _Str1: *const core::ffi::c_char,
4591 _Str2: *const core::ffi::c_char,
4592 _MaxCount: core::ffi::c_ulonglong,
4593 ) -> core::ffi::c_int;
4594}
4595unsafe extern "C" {
4596 pub fn _strnicmp(
4597 _String1: *const core::ffi::c_char,
4598 _String2: *const core::ffi::c_char,
4599 _MaxCount: usize,
4600 ) -> core::ffi::c_int;
4601}
4602unsafe extern "C" {
4603 pub fn _strnicmp_l(
4604 _String1: *const core::ffi::c_char,
4605 _String2: *const core::ffi::c_char,
4606 _MaxCount: usize,
4607 _Locale: _locale_t,
4608 ) -> core::ffi::c_int;
4609}
4610unsafe extern "C" {
4611 pub fn _strnicoll(
4612 _String1: *const core::ffi::c_char,
4613 _String2: *const core::ffi::c_char,
4614 _MaxCount: usize,
4615 ) -> core::ffi::c_int;
4616}
4617unsafe extern "C" {
4618 pub fn _strnicoll_l(
4619 _String1: *const core::ffi::c_char,
4620 _String2: *const core::ffi::c_char,
4621 _MaxCount: usize,
4622 _Locale: _locale_t,
4623 ) -> core::ffi::c_int;
4624}
4625unsafe extern "C" {
4626 pub fn _strncoll(
4627 _String1: *const core::ffi::c_char,
4628 _String2: *const core::ffi::c_char,
4629 _MaxCount: usize,
4630 ) -> core::ffi::c_int;
4631}
4632unsafe extern "C" {
4633 pub fn _strncoll_l(
4634 _String1: *const core::ffi::c_char,
4635 _String2: *const core::ffi::c_char,
4636 _MaxCount: usize,
4637 _Locale: _locale_t,
4638 ) -> core::ffi::c_int;
4639}
4640unsafe extern "C" {
4641 pub fn __strncnt(_String: *const core::ffi::c_char, _Count: usize) -> usize;
4642}
4643unsafe extern "C" {
4644 pub fn strncpy(
4645 _Destination: *mut core::ffi::c_char,
4646 _Source: *const core::ffi::c_char,
4647 _Count: core::ffi::c_ulonglong,
4648 ) -> *mut core::ffi::c_char;
4649}
4650unsafe extern "C" {
4651 pub fn strnlen(_String: *const core::ffi::c_char, _MaxCount: usize) -> usize;
4652}
4653unsafe extern "C" {
4654 pub fn _strnset_s(
4655 _String: *mut core::ffi::c_char,
4656 _SizeInBytes: usize,
4657 _Value: core::ffi::c_int,
4658 _MaxCount: usize,
4659 ) -> errno_t;
4660}
4661unsafe extern "C" {
4662 pub fn _strnset(
4663 _Destination: *mut core::ffi::c_char,
4664 _Value: core::ffi::c_int,
4665 _Count: usize,
4666 ) -> *mut core::ffi::c_char;
4667}
4668unsafe extern "C" {
4669 pub fn strpbrk(
4670 _Str: *const core::ffi::c_char,
4671 _Control: *const core::ffi::c_char,
4672 ) -> *mut core::ffi::c_char;
4673}
4674unsafe extern "C" {
4675 pub fn _strrev(_Str: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4676}
4677unsafe extern "C" {
4678 pub fn _strset_s(
4679 _Destination: *mut core::ffi::c_char,
4680 _DestinationSize: usize,
4681 _Value: core::ffi::c_int,
4682 ) -> errno_t;
4683}
4684unsafe extern "C" {
4685 pub fn _strset(
4686 _Destination: *mut core::ffi::c_char,
4687 _Value: core::ffi::c_int,
4688 ) -> *mut core::ffi::c_char;
4689}
4690unsafe extern "C" {
4691 pub fn strspn(
4692 _Str: *const core::ffi::c_char,
4693 _Control: *const core::ffi::c_char,
4694 ) -> core::ffi::c_ulonglong;
4695}
4696unsafe extern "C" {
4697 pub fn strtok(
4698 _String: *mut core::ffi::c_char,
4699 _Delimiter: *const core::ffi::c_char,
4700 ) -> *mut core::ffi::c_char;
4701}
4702unsafe extern "C" {
4703 pub fn _strupr_s(_String: *mut core::ffi::c_char, _Size: usize) -> errno_t;
4704}
4705unsafe extern "C" {
4706 pub fn _strupr(_String: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4707}
4708unsafe extern "C" {
4709 pub fn _strupr_s_l(
4710 _String: *mut core::ffi::c_char,
4711 _Size: usize,
4712 _Locale: _locale_t,
4713 ) -> errno_t;
4714}
4715unsafe extern "C" {
4716 pub fn _strupr_l(_String: *mut core::ffi::c_char, _Locale: _locale_t)
4717 -> *mut core::ffi::c_char;
4718}
4719unsafe extern "C" {
4720 pub fn strxfrm(
4721 _Destination: *mut core::ffi::c_char,
4722 _Source: *const core::ffi::c_char,
4723 _MaxCount: core::ffi::c_ulonglong,
4724 ) -> core::ffi::c_ulonglong;
4725}
4726unsafe extern "C" {
4727 pub fn _strxfrm_l(
4728 _Destination: *mut core::ffi::c_char,
4729 _Source: *const core::ffi::c_char,
4730 _MaxCount: usize,
4731 _Locale: _locale_t,
4732 ) -> usize;
4733}
4734unsafe extern "C" {
4735 pub fn strdup(_String: *const core::ffi::c_char) -> *mut core::ffi::c_char;
4736}
4737unsafe extern "C" {
4738 pub fn strcmpi(
4739 _String1: *const core::ffi::c_char,
4740 _String2: *const core::ffi::c_char,
4741 ) -> core::ffi::c_int;
4742}
4743unsafe extern "C" {
4744 pub fn stricmp(
4745 _String1: *const core::ffi::c_char,
4746 _String2: *const core::ffi::c_char,
4747 ) -> core::ffi::c_int;
4748}
4749unsafe extern "C" {
4750 pub fn strlwr(_String: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4751}
4752unsafe extern "C" {
4753 pub fn strnicmp(
4754 _String1: *const core::ffi::c_char,
4755 _String2: *const core::ffi::c_char,
4756 _MaxCount: usize,
4757 ) -> core::ffi::c_int;
4758}
4759unsafe extern "C" {
4760 pub fn strnset(
4761 _String: *mut core::ffi::c_char,
4762 _Value: core::ffi::c_int,
4763 _MaxCount: usize,
4764 ) -> *mut core::ffi::c_char;
4765}
4766unsafe extern "C" {
4767 pub fn strrev(_String: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4768}
4769unsafe extern "C" {
4770 pub fn strset(
4771 _String: *mut core::ffi::c_char,
4772 _Value: core::ffi::c_int,
4773 ) -> *mut core::ffi::c_char;
4774}
4775unsafe extern "C" {
4776 pub fn strupr(_String: *mut core::ffi::c_char) -> *mut core::ffi::c_char;
4777}
4778#[repr(C)]
4779#[derive(Debug, Copy, Clone)]
4780pub struct _OBJECTID {
4781 pub Lineage: GUID,
4782 pub Uniquifier: ULONG,
4783}
4784pub type OBJECTID = _OBJECTID;
4785unsafe extern "C" {
4786 pub fn _RTL_CONSTANT_STRING_type_check(s: *const core::ffi::c_void) -> core::ffi::c_char;
4787}
4788pub type PEXCEPTION_ROUTINE = ::core::option::Option<
4789 unsafe extern "C" fn(
4790 arg1: *mut _EXCEPTION_RECORD,
4791 arg2: PVOID,
4792 arg3: *mut _CONTEXT,
4793 arg4: PVOID,
4794 ) -> EXCEPTION_DISPOSITION,
4795>;
4796pub type KIRQL = UCHAR;
4797pub type PKIRQL = *mut KIRQL;
4798pub const _NT_PRODUCT_TYPE_NtProductWinNt: _NT_PRODUCT_TYPE = 1;
4799pub const _NT_PRODUCT_TYPE_NtProductLanManNt: _NT_PRODUCT_TYPE = 2;
4800pub const _NT_PRODUCT_TYPE_NtProductServer: _NT_PRODUCT_TYPE = 3;
4801pub type _NT_PRODUCT_TYPE = core::ffi::c_int;
4802pub use self::_NT_PRODUCT_TYPE as NT_PRODUCT_TYPE;
4803pub type PNT_PRODUCT_TYPE = *mut _NT_PRODUCT_TYPE;
4804pub const _SUITE_TYPE_SmallBusiness: _SUITE_TYPE = 0;
4805pub const _SUITE_TYPE_Enterprise: _SUITE_TYPE = 1;
4806pub const _SUITE_TYPE_BackOffice: _SUITE_TYPE = 2;
4807pub const _SUITE_TYPE_CommunicationServer: _SUITE_TYPE = 3;
4808pub const _SUITE_TYPE_TerminalServer: _SUITE_TYPE = 4;
4809pub const _SUITE_TYPE_SmallBusinessRestricted: _SUITE_TYPE = 5;
4810pub const _SUITE_TYPE_EmbeddedNT: _SUITE_TYPE = 6;
4811pub const _SUITE_TYPE_DataCenter: _SUITE_TYPE = 7;
4812pub const _SUITE_TYPE_SingleUserTS: _SUITE_TYPE = 8;
4813pub const _SUITE_TYPE_Personal: _SUITE_TYPE = 9;
4814pub const _SUITE_TYPE_Blade: _SUITE_TYPE = 10;
4815pub const _SUITE_TYPE_EmbeddedRestricted: _SUITE_TYPE = 11;
4816pub const _SUITE_TYPE_SecurityAppliance: _SUITE_TYPE = 12;
4817pub const _SUITE_TYPE_StorageServer: _SUITE_TYPE = 13;
4818pub const _SUITE_TYPE_ComputeServer: _SUITE_TYPE = 14;
4819pub const _SUITE_TYPE_WHServer: _SUITE_TYPE = 15;
4820pub const _SUITE_TYPE_PhoneNT: _SUITE_TYPE = 16;
4821pub const _SUITE_TYPE_MultiUserTS: _SUITE_TYPE = 17;
4822pub const _SUITE_TYPE_MaxSuiteType: _SUITE_TYPE = 18;
4823pub type _SUITE_TYPE = core::ffi::c_int;
4824pub use self::_SUITE_TYPE as SUITE_TYPE;
4825#[repr(C)]
4826#[derive(Copy, Clone)]
4827pub struct _bindgen_ty_1 {
4828 pub x: core::ffi::c_char,
4829 pub test: LARGE_INTEGER,
4830}
4831pub type __C_ASSERT__ = [core::ffi::c_char; 1usize];
4832pub type __prefast_analysis_mode_flag0 = core::ffi::c_int;
4833pub type __prefast_analysis_mode_flag1 = core::ffi::c_int;
4834pub type PACCESS_STATE = *mut _ACCESS_STATE;
4835#[repr(C)]
4836#[derive(Debug, Copy, Clone)]
4837pub struct _CALLBACK_OBJECT {
4838 _unused: [u8; 0],
4839}
4840pub type PCALLBACK_OBJECT = *mut _CALLBACK_OBJECT;
4841#[repr(C)]
4842#[derive(Debug, Copy, Clone)]
4843pub struct _EPROCESS {
4844 _unused: [u8; 0],
4845}
4846pub type PEPROCESS = *mut _EPROCESS;
4847#[repr(C)]
4848#[derive(Debug, Copy, Clone)]
4849pub struct _ETHREAD {
4850 _unused: [u8; 0],
4851}
4852pub type PETHREAD = *mut _ETHREAD;
4853#[repr(C)]
4854#[derive(Debug, Copy, Clone)]
4855pub struct _IO_TIMER {
4856 _unused: [u8; 0],
4857}
4858pub type PIO_TIMER = *mut _IO_TIMER;
4859#[repr(C)]
4860#[derive(Debug, Copy, Clone)]
4861pub struct _KINTERRUPT {
4862 _unused: [u8; 0],
4863}
4864pub type PKINTERRUPT = *mut _KINTERRUPT;
4865#[repr(C)]
4866#[derive(Debug, Copy, Clone)]
4867pub struct _KTHREAD {
4868 _unused: [u8; 0],
4869}
4870pub type PKTHREAD = *mut _KTHREAD;
4871pub type PRKTHREAD = *mut _KTHREAD;
4872#[repr(C)]
4873#[derive(Debug, Copy, Clone)]
4874pub struct _KPROCESS {
4875 _unused: [u8; 0],
4876}
4877pub type PKPROCESS = *mut _KPROCESS;
4878pub type PRKPROCESS = *mut _KPROCESS;
4879#[repr(C)]
4880#[derive(Debug, Copy, Clone)]
4881pub struct _OBJECT_TYPE {
4882 _unused: [u8; 0],
4883}
4884pub type POBJECT_TYPE = *mut _OBJECT_TYPE;
4885pub type PSECURITY_QUALITY_OF_SERVICE = *mut _SECURITY_QUALITY_OF_SERVICE;
4886pub type PCONTEXT = *mut _CONTEXT;
4887pub type PIO_STACK_LOCATION = *mut _IO_STACK_LOCATION;
4888pub type PVPB = *mut _VPB;
4889#[repr(C)]
4890#[derive(Debug, Copy, Clone)]
4891pub struct _FILE_GET_QUOTA_INFORMATION {
4892 _unused: [u8; 0],
4893}
4894pub type PFILE_GET_QUOTA_INFORMATION = *mut _FILE_GET_QUOTA_INFORMATION;
4895unsafe extern "C" {
4896 pub fn __readgsqword(Offset: core::ffi::c_ulong) -> core::ffi::c_ulonglong;
4897}
4898pub const MCA_EXCEPTION_TYPE_HAL_MCE_RECORD: MCA_EXCEPTION_TYPE = 0;
4899pub const MCA_EXCEPTION_TYPE_HAL_MCA_RECORD: MCA_EXCEPTION_TYPE = 1;
4900pub type MCA_EXCEPTION_TYPE = core::ffi::c_int;
4901#[repr(C)]
4902#[derive(Copy, Clone)]
4903pub union _MCI_ADDR {
4904 pub __bindgen_anon_1: _MCI_ADDR__bindgen_ty_1,
4905 pub QuadPart: ULONGLONG,
4906}
4907#[repr(C)]
4908#[derive(Debug, Copy, Clone)]
4909pub struct _MCI_ADDR__bindgen_ty_1 {
4910 pub Address: ULONG,
4911 pub Reserved: ULONG,
4912}
4913pub type MCI_ADDR = _MCI_ADDR;
4914pub type PMCI_ADDR = *mut _MCI_ADDR;
4915#[repr(C)]
4916#[derive(Copy, Clone)]
4917pub union _MCI_STATS {
4918 pub MciStatus: _MCI_STATS__bindgen_ty_1,
4919 pub QuadPart: ULONG64,
4920}
4921#[repr(C)]
4922#[derive(Debug, Copy, Clone)]
4923pub struct _MCI_STATS__bindgen_ty_1 {
4924 pub McaErrorCode: USHORT,
4925 pub ModelErrorCode: USHORT,
4926 pub _bitfield_align_1: [u32; 0],
4927 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
4928}
4929impl _MCI_STATS__bindgen_ty_1 {
4930 #[inline]
4931 pub fn OtherInformation(&self) -> ULONG {
4932 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 25u8) as u32) }
4933 }
4934 #[inline]
4935 pub fn set_OtherInformation(&mut self, val: ULONG) {
4936 unsafe {
4937 let val: u32 = ::core::mem::transmute(val);
4938 self._bitfield_1.set(0usize, 25u8, val as u64)
4939 }
4940 }
4941 #[inline]
4942 pub unsafe fn OtherInformation_raw(this: *const Self) -> ULONG {
4943 unsafe {
4944 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
4945 ::core::ptr::addr_of!((*this)._bitfield_1),
4946 0usize,
4947 25u8,
4948 ) as u32)
4949 }
4950 }
4951 #[inline]
4952 pub unsafe fn set_OtherInformation_raw(this: *mut Self, val: ULONG) {
4953 unsafe {
4954 let val: u32 = ::core::mem::transmute(val);
4955 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
4956 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
4957 0usize,
4958 25u8,
4959 val as u64,
4960 )
4961 }
4962 }
4963 #[inline]
4964 pub fn ContextCorrupt(&self) -> ULONG {
4965 unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
4966 }
4967 #[inline]
4968 pub fn set_ContextCorrupt(&mut self, val: ULONG) {
4969 unsafe {
4970 let val: u32 = ::core::mem::transmute(val);
4971 self._bitfield_1.set(25usize, 1u8, val as u64)
4972 }
4973 }
4974 #[inline]
4975 pub unsafe fn ContextCorrupt_raw(this: *const Self) -> ULONG {
4976 unsafe {
4977 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
4978 ::core::ptr::addr_of!((*this)._bitfield_1),
4979 25usize,
4980 1u8,
4981 ) as u32)
4982 }
4983 }
4984 #[inline]
4985 pub unsafe fn set_ContextCorrupt_raw(this: *mut Self, val: ULONG) {
4986 unsafe {
4987 let val: u32 = ::core::mem::transmute(val);
4988 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
4989 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
4990 25usize,
4991 1u8,
4992 val as u64,
4993 )
4994 }
4995 }
4996 #[inline]
4997 pub fn AddressValid(&self) -> ULONG {
4998 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 1u8) as u32) }
4999 }
5000 #[inline]
5001 pub fn set_AddressValid(&mut self, val: ULONG) {
5002 unsafe {
5003 let val: u32 = ::core::mem::transmute(val);
5004 self._bitfield_1.set(26usize, 1u8, val as u64)
5005 }
5006 }
5007 #[inline]
5008 pub unsafe fn AddressValid_raw(this: *const Self) -> ULONG {
5009 unsafe {
5010 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5011 ::core::ptr::addr_of!((*this)._bitfield_1),
5012 26usize,
5013 1u8,
5014 ) as u32)
5015 }
5016 }
5017 #[inline]
5018 pub unsafe fn set_AddressValid_raw(this: *mut Self, val: ULONG) {
5019 unsafe {
5020 let val: u32 = ::core::mem::transmute(val);
5021 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5022 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5023 26usize,
5024 1u8,
5025 val as u64,
5026 )
5027 }
5028 }
5029 #[inline]
5030 pub fn MiscValid(&self) -> ULONG {
5031 unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 1u8) as u32) }
5032 }
5033 #[inline]
5034 pub fn set_MiscValid(&mut self, val: ULONG) {
5035 unsafe {
5036 let val: u32 = ::core::mem::transmute(val);
5037 self._bitfield_1.set(27usize, 1u8, val as u64)
5038 }
5039 }
5040 #[inline]
5041 pub unsafe fn MiscValid_raw(this: *const Self) -> ULONG {
5042 unsafe {
5043 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5044 ::core::ptr::addr_of!((*this)._bitfield_1),
5045 27usize,
5046 1u8,
5047 ) as u32)
5048 }
5049 }
5050 #[inline]
5051 pub unsafe fn set_MiscValid_raw(this: *mut Self, val: ULONG) {
5052 unsafe {
5053 let val: u32 = ::core::mem::transmute(val);
5054 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5055 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5056 27usize,
5057 1u8,
5058 val as u64,
5059 )
5060 }
5061 }
5062 #[inline]
5063 pub fn ErrorEnabled(&self) -> ULONG {
5064 unsafe { ::core::mem::transmute(self._bitfield_1.get(28usize, 1u8) as u32) }
5065 }
5066 #[inline]
5067 pub fn set_ErrorEnabled(&mut self, val: ULONG) {
5068 unsafe {
5069 let val: u32 = ::core::mem::transmute(val);
5070 self._bitfield_1.set(28usize, 1u8, val as u64)
5071 }
5072 }
5073 #[inline]
5074 pub unsafe fn ErrorEnabled_raw(this: *const Self) -> ULONG {
5075 unsafe {
5076 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5077 ::core::ptr::addr_of!((*this)._bitfield_1),
5078 28usize,
5079 1u8,
5080 ) as u32)
5081 }
5082 }
5083 #[inline]
5084 pub unsafe fn set_ErrorEnabled_raw(this: *mut Self, val: ULONG) {
5085 unsafe {
5086 let val: u32 = ::core::mem::transmute(val);
5087 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5088 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5089 28usize,
5090 1u8,
5091 val as u64,
5092 )
5093 }
5094 }
5095 #[inline]
5096 pub fn UncorrectedError(&self) -> ULONG {
5097 unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u32) }
5098 }
5099 #[inline]
5100 pub fn set_UncorrectedError(&mut self, val: ULONG) {
5101 unsafe {
5102 let val: u32 = ::core::mem::transmute(val);
5103 self._bitfield_1.set(29usize, 1u8, val as u64)
5104 }
5105 }
5106 #[inline]
5107 pub unsafe fn UncorrectedError_raw(this: *const Self) -> ULONG {
5108 unsafe {
5109 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5110 ::core::ptr::addr_of!((*this)._bitfield_1),
5111 29usize,
5112 1u8,
5113 ) as u32)
5114 }
5115 }
5116 #[inline]
5117 pub unsafe fn set_UncorrectedError_raw(this: *mut Self, val: ULONG) {
5118 unsafe {
5119 let val: u32 = ::core::mem::transmute(val);
5120 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5121 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5122 29usize,
5123 1u8,
5124 val as u64,
5125 )
5126 }
5127 }
5128 #[inline]
5129 pub fn StatusOverFlow(&self) -> ULONG {
5130 unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
5131 }
5132 #[inline]
5133 pub fn set_StatusOverFlow(&mut self, val: ULONG) {
5134 unsafe {
5135 let val: u32 = ::core::mem::transmute(val);
5136 self._bitfield_1.set(30usize, 1u8, val as u64)
5137 }
5138 }
5139 #[inline]
5140 pub unsafe fn StatusOverFlow_raw(this: *const Self) -> ULONG {
5141 unsafe {
5142 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5143 ::core::ptr::addr_of!((*this)._bitfield_1),
5144 30usize,
5145 1u8,
5146 ) as u32)
5147 }
5148 }
5149 #[inline]
5150 pub unsafe fn set_StatusOverFlow_raw(this: *mut Self, val: ULONG) {
5151 unsafe {
5152 let val: u32 = ::core::mem::transmute(val);
5153 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5154 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5155 30usize,
5156 1u8,
5157 val as u64,
5158 )
5159 }
5160 }
5161 #[inline]
5162 pub fn Valid(&self) -> ULONG {
5163 unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
5164 }
5165 #[inline]
5166 pub fn set_Valid(&mut self, val: ULONG) {
5167 unsafe {
5168 let val: u32 = ::core::mem::transmute(val);
5169 self._bitfield_1.set(31usize, 1u8, val as u64)
5170 }
5171 }
5172 #[inline]
5173 pub unsafe fn Valid_raw(this: *const Self) -> ULONG {
5174 unsafe {
5175 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
5176 ::core::ptr::addr_of!((*this)._bitfield_1),
5177 31usize,
5178 1u8,
5179 ) as u32)
5180 }
5181 }
5182 #[inline]
5183 pub unsafe fn set_Valid_raw(this: *mut Self, val: ULONG) {
5184 unsafe {
5185 let val: u32 = ::core::mem::transmute(val);
5186 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
5187 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5188 31usize,
5189 1u8,
5190 val as u64,
5191 )
5192 }
5193 }
5194 #[inline]
5195 pub fn new_bitfield_1(
5196 OtherInformation: ULONG,
5197 ContextCorrupt: ULONG,
5198 AddressValid: ULONG,
5199 MiscValid: ULONG,
5200 ErrorEnabled: ULONG,
5201 UncorrectedError: ULONG,
5202 StatusOverFlow: ULONG,
5203 Valid: ULONG,
5204 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
5205 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
5206 __bindgen_bitfield_unit.set(0usize, 25u8, {
5207 let OtherInformation: u32 = unsafe { ::core::mem::transmute(OtherInformation) };
5208 OtherInformation as u64
5209 });
5210 __bindgen_bitfield_unit.set(25usize, 1u8, {
5211 let ContextCorrupt: u32 = unsafe { ::core::mem::transmute(ContextCorrupt) };
5212 ContextCorrupt as u64
5213 });
5214 __bindgen_bitfield_unit.set(26usize, 1u8, {
5215 let AddressValid: u32 = unsafe { ::core::mem::transmute(AddressValid) };
5216 AddressValid as u64
5217 });
5218 __bindgen_bitfield_unit.set(27usize, 1u8, {
5219 let MiscValid: u32 = unsafe { ::core::mem::transmute(MiscValid) };
5220 MiscValid as u64
5221 });
5222 __bindgen_bitfield_unit.set(28usize, 1u8, {
5223 let ErrorEnabled: u32 = unsafe { ::core::mem::transmute(ErrorEnabled) };
5224 ErrorEnabled as u64
5225 });
5226 __bindgen_bitfield_unit.set(29usize, 1u8, {
5227 let UncorrectedError: u32 = unsafe { ::core::mem::transmute(UncorrectedError) };
5228 UncorrectedError as u64
5229 });
5230 __bindgen_bitfield_unit.set(30usize, 1u8, {
5231 let StatusOverFlow: u32 = unsafe { ::core::mem::transmute(StatusOverFlow) };
5232 StatusOverFlow as u64
5233 });
5234 __bindgen_bitfield_unit.set(31usize, 1u8, {
5235 let Valid: u32 = unsafe { ::core::mem::transmute(Valid) };
5236 Valid as u64
5237 });
5238 __bindgen_bitfield_unit
5239 }
5240}
5241pub type MCI_STATS = _MCI_STATS;
5242pub type PMCI_STATS = *mut _MCI_STATS;
5243#[repr(C)]
5244#[derive(Copy, Clone)]
5245pub struct _MCA_EXCEPTION {
5246 pub VersionNumber: ULONG,
5247 pub ExceptionType: MCA_EXCEPTION_TYPE,
5248 pub TimeStamp: LARGE_INTEGER,
5249 pub ProcessorNumber: ULONG,
5250 pub Reserved1: ULONG,
5251 pub u: _MCA_EXCEPTION__bindgen_ty_1,
5252 pub ExtCnt: ULONG,
5253 pub Reserved3: ULONG,
5254 pub ExtReg: [ULONGLONG; 24usize],
5255}
5256#[repr(C)]
5257#[derive(Copy, Clone)]
5258pub union _MCA_EXCEPTION__bindgen_ty_1 {
5259 pub Mca: _MCA_EXCEPTION__bindgen_ty_1__bindgen_ty_1,
5260 pub Mce: _MCA_EXCEPTION__bindgen_ty_1__bindgen_ty_2,
5261}
5262#[repr(C)]
5263#[derive(Copy, Clone)]
5264pub struct _MCA_EXCEPTION__bindgen_ty_1__bindgen_ty_1 {
5265 pub BankNumber: UCHAR,
5266 pub Reserved2: [UCHAR; 7usize],
5267 pub Status: MCI_STATS,
5268 pub Address: MCI_ADDR,
5269 pub Misc: ULONGLONG,
5270}
5271#[repr(C)]
5272#[derive(Debug, Copy, Clone)]
5273pub struct _MCA_EXCEPTION__bindgen_ty_1__bindgen_ty_2 {
5274 pub Address: ULONGLONG,
5275 pub Type: ULONGLONG,
5276}
5277pub type MCA_EXCEPTION = _MCA_EXCEPTION;
5278pub type PMCA_EXCEPTION = *mut _MCA_EXCEPTION;
5279pub type CMC_EXCEPTION = MCA_EXCEPTION;
5280pub type PCMC_EXCEPTION = *mut MCA_EXCEPTION;
5281pub type CPE_EXCEPTION = MCA_EXCEPTION;
5282pub type PCPE_EXCEPTION = *mut MCA_EXCEPTION;
5283pub type ERROR_SEVERITY = UCHAR;
5284pub type PERROR_SEVERITY = *mut UCHAR;
5285pub const _ERROR_SEVERITY_VALUE_ErrorRecoverable: _ERROR_SEVERITY_VALUE = 0;
5286pub const _ERROR_SEVERITY_VALUE_ErrorFatal: _ERROR_SEVERITY_VALUE = 1;
5287pub const _ERROR_SEVERITY_VALUE_ErrorCorrected: _ERROR_SEVERITY_VALUE = 2;
5288pub const _ERROR_SEVERITY_VALUE_ErrorOthers: _ERROR_SEVERITY_VALUE = 3;
5289pub type _ERROR_SEVERITY_VALUE = core::ffi::c_int;
5290pub use self::_ERROR_SEVERITY_VALUE as ERROR_SEVERITY_VALUE;
5291unsafe extern "C" {
5292 pub static mut KeNumberProcessors: CCHAR;
5293}
5294#[repr(C)]
5295#[derive(Debug, Copy, Clone)]
5296pub struct _KSYSTEM_TIME {
5297 pub LowPart: ULONG,
5298 pub High1Time: LONG,
5299 pub High2Time: LONG,
5300}
5301pub type KSYSTEM_TIME = _KSYSTEM_TIME;
5302pub type PKSYSTEM_TIME = *mut _KSYSTEM_TIME;
5303pub type KPRIORITY = LONG;
5304pub type KSPIN_LOCK = ULONG_PTR;
5305pub type PKSPIN_LOCK = *mut KSPIN_LOCK;
5306pub type KSPIN_LOCK_QUEUE_NUMBER = ULONG64;
5307#[repr(C)]
5308#[derive(Debug, Copy, Clone)]
5309pub struct _KSPIN_LOCK_QUEUE {
5310 pub Next: *mut _KSPIN_LOCK_QUEUE,
5311 pub Lock: PKSPIN_LOCK,
5312}
5313pub type KSPIN_LOCK_QUEUE = _KSPIN_LOCK_QUEUE;
5314pub type PKSPIN_LOCK_QUEUE = *mut _KSPIN_LOCK_QUEUE;
5315#[repr(C)]
5316#[derive(Debug, Copy, Clone)]
5317pub struct _KLOCK_QUEUE_HANDLE {
5318 pub LockQueue: KSPIN_LOCK_QUEUE,
5319 pub OldIrql: KIRQL,
5320}
5321pub type KLOCK_QUEUE_HANDLE = _KLOCK_QUEUE_HANDLE;
5322pub type PKLOCK_QUEUE_HANDLE = *mut _KLOCK_QUEUE_HANDLE;
5323pub const _KPROFILE_SOURCE_ProfileTime: _KPROFILE_SOURCE = 0;
5324pub const _KPROFILE_SOURCE_ProfileAlignmentFixup: _KPROFILE_SOURCE = 1;
5325pub const _KPROFILE_SOURCE_ProfileTotalIssues: _KPROFILE_SOURCE = 2;
5326pub const _KPROFILE_SOURCE_ProfilePipelineDry: _KPROFILE_SOURCE = 3;
5327pub const _KPROFILE_SOURCE_ProfileLoadInstructions: _KPROFILE_SOURCE = 4;
5328pub const _KPROFILE_SOURCE_ProfilePipelineFrozen: _KPROFILE_SOURCE = 5;
5329pub const _KPROFILE_SOURCE_ProfileBranchInstructions: _KPROFILE_SOURCE = 6;
5330pub const _KPROFILE_SOURCE_ProfileTotalNonissues: _KPROFILE_SOURCE = 7;
5331pub const _KPROFILE_SOURCE_ProfileDcacheMisses: _KPROFILE_SOURCE = 8;
5332pub const _KPROFILE_SOURCE_ProfileIcacheMisses: _KPROFILE_SOURCE = 9;
5333pub const _KPROFILE_SOURCE_ProfileCacheMisses: _KPROFILE_SOURCE = 10;
5334pub const _KPROFILE_SOURCE_ProfileBranchMispredictions: _KPROFILE_SOURCE = 11;
5335pub const _KPROFILE_SOURCE_ProfileStoreInstructions: _KPROFILE_SOURCE = 12;
5336pub const _KPROFILE_SOURCE_ProfileFpInstructions: _KPROFILE_SOURCE = 13;
5337pub const _KPROFILE_SOURCE_ProfileIntegerInstructions: _KPROFILE_SOURCE = 14;
5338pub const _KPROFILE_SOURCE_Profile2Issue: _KPROFILE_SOURCE = 15;
5339pub const _KPROFILE_SOURCE_Profile3Issue: _KPROFILE_SOURCE = 16;
5340pub const _KPROFILE_SOURCE_Profile4Issue: _KPROFILE_SOURCE = 17;
5341pub const _KPROFILE_SOURCE_ProfileSpecialInstructions: _KPROFILE_SOURCE = 18;
5342pub const _KPROFILE_SOURCE_ProfileTotalCycles: _KPROFILE_SOURCE = 19;
5343pub const _KPROFILE_SOURCE_ProfileIcacheIssues: _KPROFILE_SOURCE = 20;
5344pub const _KPROFILE_SOURCE_ProfileDcacheAccesses: _KPROFILE_SOURCE = 21;
5345pub const _KPROFILE_SOURCE_ProfileMemoryBarrierCycles: _KPROFILE_SOURCE = 22;
5346pub const _KPROFILE_SOURCE_ProfileLoadLinkedIssues: _KPROFILE_SOURCE = 23;
5347pub const _KPROFILE_SOURCE_ProfileMaximum: _KPROFILE_SOURCE = 24;
5348pub type _KPROFILE_SOURCE = core::ffi::c_int;
5349pub use self::_KPROFILE_SOURCE as KPROFILE_SOURCE;
5350#[repr(C)]
5351#[derive(Debug, Copy, Clone)]
5352pub struct _DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK {
5353 pub Signature: ULONG,
5354 pub Revision: USHORT,
5355 pub Size: USHORT,
5356 pub DpcWatchdogProfileOffset: USHORT,
5357 pub DpcWatchdogProfileLength: ULONG,
5358}
5359pub type DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK = _DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK;
5360pub type PDPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK = *mut _DPC_WATCHDOG_GLOBAL_TRIAGE_BLOCK;
5361#[repr(C)]
5362#[repr(align(16))]
5363#[derive(Debug, Copy, Clone)]
5364pub struct _M128A {
5365 pub Low: ULONGLONG,
5366 pub High: LONGLONG,
5367}
5368pub type M128A = _M128A;
5369pub type PM128A = *mut _M128A;
5370#[repr(C)]
5371#[repr(align(16))]
5372#[derive(Debug, Copy, Clone)]
5373pub struct _XSAVE_FORMAT {
5374 pub ControlWord: USHORT,
5375 pub StatusWord: USHORT,
5376 pub TagWord: UCHAR,
5377 pub Reserved1: UCHAR,
5378 pub ErrorOpcode: USHORT,
5379 pub ErrorOffset: ULONG,
5380 pub ErrorSelector: USHORT,
5381 pub Reserved2: USHORT,
5382 pub DataOffset: ULONG,
5383 pub DataSelector: USHORT,
5384 pub Reserved3: USHORT,
5385 pub MxCsr: ULONG,
5386 pub MxCsr_Mask: ULONG,
5387 pub FloatRegisters: [M128A; 8usize],
5388 pub XmmRegisters: [M128A; 16usize],
5389 pub Reserved4: [UCHAR; 96usize],
5390}
5391pub type XSAVE_FORMAT = _XSAVE_FORMAT;
5392pub type PXSAVE_FORMAT = *mut _XSAVE_FORMAT;
5393#[repr(C)]
5394#[derive(Debug, Copy, Clone)]
5395pub struct _XSAVE_CET_U_FORMAT {
5396 pub Ia32CetUMsr: ULONG64,
5397 pub Ia32Pl3SspMsr: ULONG64,
5398}
5399pub type XSAVE_CET_U_FORMAT = _XSAVE_CET_U_FORMAT;
5400pub type PXSAVE_CET_U_FORMAT = *mut _XSAVE_CET_U_FORMAT;
5401#[repr(C)]
5402#[derive(Debug, Copy, Clone)]
5403pub struct _XSAVE_AREA_HEADER {
5404 pub Mask: ULONG64,
5405 pub CompactionMask: ULONG64,
5406 pub Reserved2: [ULONG64; 6usize],
5407}
5408pub type XSAVE_AREA_HEADER = _XSAVE_AREA_HEADER;
5409pub type PXSAVE_AREA_HEADER = *mut _XSAVE_AREA_HEADER;
5410#[repr(C)]
5411#[repr(align(16))]
5412#[derive(Debug, Copy, Clone)]
5413pub struct _XSAVE_AREA {
5414 pub LegacyState: XSAVE_FORMAT,
5415 pub Header: XSAVE_AREA_HEADER,
5416}
5417pub type XSAVE_AREA = _XSAVE_AREA;
5418pub type PXSAVE_AREA = *mut _XSAVE_AREA;
5419#[repr(C)]
5420#[derive(Debug, Copy, Clone)]
5421pub struct _XSTATE_CONTEXT {
5422 pub Mask: ULONG64,
5423 pub Length: ULONG,
5424 pub Reserved1: ULONG,
5425 pub Area: PXSAVE_AREA,
5426 pub Buffer: PVOID,
5427}
5428pub type XSTATE_CONTEXT = _XSTATE_CONTEXT;
5429pub type PXSTATE_CONTEXT = *mut _XSTATE_CONTEXT;
5430#[repr(C)]
5431#[derive(Copy, Clone)]
5432pub struct _KERNEL_CET_CONTEXT {
5433 pub Ssp: ULONG64,
5434 pub Rip: ULONG64,
5435 pub SegCs: USHORT,
5436 pub __bindgen_anon_1: _KERNEL_CET_CONTEXT__bindgen_ty_1,
5437 pub Fill: [USHORT; 2usize],
5438}
5439#[repr(C)]
5440#[derive(Copy, Clone)]
5441pub union _KERNEL_CET_CONTEXT__bindgen_ty_1 {
5442 pub AllFlags: USHORT,
5443 pub __bindgen_anon_1: _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1,
5444}
5445#[repr(C)]
5446#[derive(Debug, Copy, Clone)]
5447pub struct _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
5448 pub _bitfield_align_1: [u16; 0],
5449 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
5450}
5451impl _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
5452 #[inline]
5453 pub fn UseWrss(&self) -> USHORT {
5454 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
5455 }
5456 #[inline]
5457 pub fn set_UseWrss(&mut self, val: USHORT) {
5458 unsafe {
5459 let val: u16 = ::core::mem::transmute(val);
5460 self._bitfield_1.set(0usize, 1u8, val as u64)
5461 }
5462 }
5463 #[inline]
5464 pub unsafe fn UseWrss_raw(this: *const Self) -> USHORT {
5465 unsafe {
5466 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5467 ::core::ptr::addr_of!((*this)._bitfield_1),
5468 0usize,
5469 1u8,
5470 ) as u16)
5471 }
5472 }
5473 #[inline]
5474 pub unsafe fn set_UseWrss_raw(this: *mut Self, val: USHORT) {
5475 unsafe {
5476 let val: u16 = ::core::mem::transmute(val);
5477 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5478 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5479 0usize,
5480 1u8,
5481 val as u64,
5482 )
5483 }
5484 }
5485 #[inline]
5486 pub fn PopShadowStackOne(&self) -> USHORT {
5487 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
5488 }
5489 #[inline]
5490 pub fn set_PopShadowStackOne(&mut self, val: USHORT) {
5491 unsafe {
5492 let val: u16 = ::core::mem::transmute(val);
5493 self._bitfield_1.set(1usize, 1u8, val as u64)
5494 }
5495 }
5496 #[inline]
5497 pub unsafe fn PopShadowStackOne_raw(this: *const Self) -> USHORT {
5498 unsafe {
5499 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5500 ::core::ptr::addr_of!((*this)._bitfield_1),
5501 1usize,
5502 1u8,
5503 ) as u16)
5504 }
5505 }
5506 #[inline]
5507 pub unsafe fn set_PopShadowStackOne_raw(this: *mut Self, val: USHORT) {
5508 unsafe {
5509 let val: u16 = ::core::mem::transmute(val);
5510 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5511 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5512 1usize,
5513 1u8,
5514 val as u64,
5515 )
5516 }
5517 }
5518 #[inline]
5519 pub fn Unused(&self) -> USHORT {
5520 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 14u8) as u16) }
5521 }
5522 #[inline]
5523 pub fn set_Unused(&mut self, val: USHORT) {
5524 unsafe {
5525 let val: u16 = ::core::mem::transmute(val);
5526 self._bitfield_1.set(2usize, 14u8, val as u64)
5527 }
5528 }
5529 #[inline]
5530 pub unsafe fn Unused_raw(this: *const Self) -> USHORT {
5531 unsafe {
5532 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
5533 ::core::ptr::addr_of!((*this)._bitfield_1),
5534 2usize,
5535 14u8,
5536 ) as u16)
5537 }
5538 }
5539 #[inline]
5540 pub unsafe fn set_Unused_raw(this: *mut Self, val: USHORT) {
5541 unsafe {
5542 let val: u16 = ::core::mem::transmute(val);
5543 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
5544 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
5545 2usize,
5546 14u8,
5547 val as u64,
5548 )
5549 }
5550 }
5551 #[inline]
5552 pub fn new_bitfield_1(
5553 UseWrss: USHORT,
5554 PopShadowStackOne: USHORT,
5555 Unused: USHORT,
5556 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
5557 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
5558 __bindgen_bitfield_unit.set(0usize, 1u8, {
5559 let UseWrss: u16 = unsafe { ::core::mem::transmute(UseWrss) };
5560 UseWrss as u64
5561 });
5562 __bindgen_bitfield_unit.set(1usize, 1u8, {
5563 let PopShadowStackOne: u16 = unsafe { ::core::mem::transmute(PopShadowStackOne) };
5564 PopShadowStackOne as u64
5565 });
5566 __bindgen_bitfield_unit.set(2usize, 14u8, {
5567 let Unused: u16 = unsafe { ::core::mem::transmute(Unused) };
5568 Unused as u64
5569 });
5570 __bindgen_bitfield_unit
5571 }
5572}
5573pub type KERNEL_CET_CONTEXT = _KERNEL_CET_CONTEXT;
5574pub type PKERNEL_CET_CONTEXT = *mut _KERNEL_CET_CONTEXT;
5575unsafe extern "C" {
5576 pub fn _bittest(
5577 Base: *const core::ffi::c_long,
5578 Offset: core::ffi::c_long,
5579 ) -> core::ffi::c_uchar;
5580}
5581unsafe extern "C" {
5582 pub fn _bittestandcomplement(
5583 Base: *mut core::ffi::c_long,
5584 Offset: core::ffi::c_long,
5585 ) -> core::ffi::c_uchar;
5586}
5587unsafe extern "C" {
5588 pub fn _bittestandset(
5589 Base: *mut core::ffi::c_long,
5590 Offset: core::ffi::c_long,
5591 ) -> core::ffi::c_uchar;
5592}
5593unsafe extern "C" {
5594 pub fn _bittestandreset(
5595 Base: *mut core::ffi::c_long,
5596 Offset: core::ffi::c_long,
5597 ) -> core::ffi::c_uchar;
5598}
5599unsafe extern "C" {
5600 pub fn _interlockedbittestandset(
5601 Base: *mut core::ffi::c_long,
5602 Offset: core::ffi::c_long,
5603 ) -> core::ffi::c_uchar;
5604}
5605unsafe extern "C" {
5606 pub fn _interlockedbittestandreset(
5607 Base: *mut core::ffi::c_long,
5608 Offset: core::ffi::c_long,
5609 ) -> core::ffi::c_uchar;
5610}
5611unsafe extern "C" {
5612 pub fn _bittest64(
5613 Base: *const core::ffi::c_longlong,
5614 Offset: core::ffi::c_longlong,
5615 ) -> core::ffi::c_uchar;
5616}
5617unsafe extern "C" {
5618 pub fn _bittestandcomplement64(
5619 Base: *mut core::ffi::c_longlong,
5620 Offset: core::ffi::c_longlong,
5621 ) -> core::ffi::c_uchar;
5622}
5623unsafe extern "C" {
5624 pub fn _bittestandset64(
5625 Base: *mut core::ffi::c_longlong,
5626 Offset: core::ffi::c_longlong,
5627 ) -> core::ffi::c_uchar;
5628}
5629unsafe extern "C" {
5630 pub fn _bittestandreset64(
5631 Base: *mut core::ffi::c_longlong,
5632 Offset: core::ffi::c_longlong,
5633 ) -> core::ffi::c_uchar;
5634}
5635unsafe extern "C" {
5636 pub fn _interlockedbittestandset64(
5637 Base: *mut core::ffi::c_longlong,
5638 Offset: core::ffi::c_longlong,
5639 ) -> core::ffi::c_uchar;
5640}
5641unsafe extern "C" {
5642 pub fn _interlockedbittestandreset64(
5643 Base: *mut core::ffi::c_longlong,
5644 Offset: core::ffi::c_longlong,
5645 ) -> core::ffi::c_uchar;
5646}
5647unsafe extern "C" {
5648 pub fn _BitScanForward(
5649 Index: *mut core::ffi::c_ulong,
5650 Mask: core::ffi::c_ulong,
5651 ) -> core::ffi::c_uchar;
5652}
5653unsafe extern "C" {
5654 pub fn _BitScanReverse(
5655 Index: *mut core::ffi::c_ulong,
5656 Mask: core::ffi::c_ulong,
5657 ) -> core::ffi::c_uchar;
5658}
5659unsafe extern "C" {
5660 pub fn _BitScanForward64(
5661 Index: *mut core::ffi::c_ulong,
5662 Mask: core::ffi::c_ulonglong,
5663 ) -> core::ffi::c_uchar;
5664}
5665unsafe extern "C" {
5666 pub fn _BitScanReverse64(
5667 Index: *mut core::ffi::c_ulong,
5668 Mask: core::ffi::c_ulonglong,
5669 ) -> core::ffi::c_uchar;
5670}
5671unsafe extern "C" {
5672 pub fn _InterlockedIncrement16(Addend: *mut core::ffi::c_short) -> core::ffi::c_short;
5673}
5674unsafe extern "C" {
5675 pub fn _InterlockedDecrement16(Addend: *mut core::ffi::c_short) -> core::ffi::c_short;
5676}
5677unsafe extern "C" {
5678 pub fn _InterlockedCompareExchange16(
5679 Destination: *mut core::ffi::c_short,
5680 ExChange: core::ffi::c_short,
5681 Comperand: core::ffi::c_short,
5682 ) -> core::ffi::c_short;
5683}
5684unsafe extern "C" {
5685 pub fn _InterlockedAnd(
5686 Destination: *mut core::ffi::c_long,
5687 Value: core::ffi::c_long,
5688 ) -> core::ffi::c_long;
5689}
5690unsafe extern "C" {
5691 pub fn _InterlockedOr(
5692 Destination: *mut core::ffi::c_long,
5693 Value: core::ffi::c_long,
5694 ) -> core::ffi::c_long;
5695}
5696unsafe extern "C" {
5697 pub fn _InterlockedXor(
5698 Destination: *mut core::ffi::c_long,
5699 Value: core::ffi::c_long,
5700 ) -> core::ffi::c_long;
5701}
5702unsafe extern "C" {
5703 pub fn _InterlockedAnd64(
5704 Destination: *mut core::ffi::c_longlong,
5705 Value: core::ffi::c_longlong,
5706 ) -> core::ffi::c_longlong;
5707}
5708unsafe extern "C" {
5709 pub fn _InterlockedOr64(
5710 Destination: *mut core::ffi::c_longlong,
5711 Value: core::ffi::c_longlong,
5712 ) -> core::ffi::c_longlong;
5713}
5714unsafe extern "C" {
5715 pub fn _InterlockedXor64(
5716 Destination: *mut core::ffi::c_longlong,
5717 Value: core::ffi::c_longlong,
5718 ) -> core::ffi::c_longlong;
5719}
5720unsafe extern "C" {
5721 pub fn _InterlockedIncrement(Addend: *mut core::ffi::c_long) -> core::ffi::c_long;
5722}
5723unsafe extern "C" {
5724 pub fn _InterlockedDecrement(Addend: *mut core::ffi::c_long) -> core::ffi::c_long;
5725}
5726unsafe extern "C" {
5727 pub fn _InterlockedExchange(
5728 Target: *mut core::ffi::c_long,
5729 Value: core::ffi::c_long,
5730 ) -> core::ffi::c_long;
5731}
5732unsafe extern "C" {
5733 pub fn _InterlockedExchangeAdd(
5734 Addend: *mut core::ffi::c_long,
5735 Value: core::ffi::c_long,
5736 ) -> core::ffi::c_long;
5737}
5738unsafe extern "C" {
5739 pub fn _InterlockedCompareExchange(
5740 Destination: *mut core::ffi::c_long,
5741 ExChange: core::ffi::c_long,
5742 Comperand: core::ffi::c_long,
5743 ) -> core::ffi::c_long;
5744}
5745unsafe extern "C" {
5746 pub fn _InterlockedIncrement64(Addend: *mut core::ffi::c_longlong) -> core::ffi::c_longlong;
5747}
5748unsafe extern "C" {
5749 pub fn _InterlockedDecrement64(Addend: *mut core::ffi::c_longlong) -> core::ffi::c_longlong;
5750}
5751unsafe extern "C" {
5752 pub fn _InterlockedExchange64(
5753 Target: *mut core::ffi::c_longlong,
5754 Value: core::ffi::c_longlong,
5755 ) -> core::ffi::c_longlong;
5756}
5757unsafe extern "C" {
5758 pub fn _InterlockedExchangeAdd64(
5759 Addend: *mut core::ffi::c_longlong,
5760 Value: core::ffi::c_longlong,
5761 ) -> core::ffi::c_longlong;
5762}
5763unsafe extern "C" {
5764 pub fn _InterlockedCompareExchange64(
5765 Destination: *mut core::ffi::c_longlong,
5766 ExChange: core::ffi::c_longlong,
5767 Comperand: core::ffi::c_longlong,
5768 ) -> core::ffi::c_longlong;
5769}
5770unsafe extern "C" {
5771 pub fn _InterlockedCompareExchange128(
5772 Destination: *mut core::ffi::c_longlong,
5773 ExchangeHigh: core::ffi::c_longlong,
5774 ExchangeLow: core::ffi::c_longlong,
5775 ComparandResult: *mut core::ffi::c_longlong,
5776 ) -> core::ffi::c_uchar;
5777}
5778unsafe extern "C" {
5779 pub fn _InterlockedCompareExchangePointer(
5780 Destination: *mut *mut core::ffi::c_void,
5781 Exchange: *mut core::ffi::c_void,
5782 Comperand: *mut core::ffi::c_void,
5783 ) -> *mut core::ffi::c_void;
5784}
5785unsafe extern "C" {
5786 pub fn _InterlockedExchangePointer(
5787 Target: *mut *mut core::ffi::c_void,
5788 Value: *mut core::ffi::c_void,
5789 ) -> *mut core::ffi::c_void;
5790}
5791unsafe extern "C" {
5792 pub fn _InterlockedExchange8(
5793 Target: *mut core::ffi::c_char,
5794 Value: core::ffi::c_char,
5795 ) -> core::ffi::c_char;
5796}
5797unsafe extern "C" {
5798 pub fn _InterlockedExchange16(
5799 Destination: *mut core::ffi::c_short,
5800 ExChange: core::ffi::c_short,
5801 ) -> core::ffi::c_short;
5802}
5803unsafe extern "C" {
5804 pub fn _InterlockedExchangeAdd8(
5805 _Addend: *mut core::ffi::c_char,
5806 _Value: core::ffi::c_char,
5807 ) -> core::ffi::c_char;
5808}
5809unsafe extern "C" {
5810 pub fn _InterlockedAnd8(
5811 Destination: *mut core::ffi::c_char,
5812 Value: core::ffi::c_char,
5813 ) -> core::ffi::c_char;
5814}
5815unsafe extern "C" {
5816 pub fn _InterlockedOr8(
5817 Destination: *mut core::ffi::c_char,
5818 Value: core::ffi::c_char,
5819 ) -> core::ffi::c_char;
5820}
5821unsafe extern "C" {
5822 pub fn _InterlockedXor8(
5823 Destination: *mut core::ffi::c_char,
5824 Value: core::ffi::c_char,
5825 ) -> core::ffi::c_char;
5826}
5827unsafe extern "C" {
5828 pub fn _InterlockedAnd16(
5829 Destination: *mut core::ffi::c_short,
5830 Value: core::ffi::c_short,
5831 ) -> core::ffi::c_short;
5832}
5833unsafe extern "C" {
5834 pub fn _InterlockedOr16(
5835 Destination: *mut core::ffi::c_short,
5836 Value: core::ffi::c_short,
5837 ) -> core::ffi::c_short;
5838}
5839unsafe extern "C" {
5840 pub fn _InterlockedXor16(
5841 Destination: *mut core::ffi::c_short,
5842 Value: core::ffi::c_short,
5843 ) -> core::ffi::c_short;
5844}
5845unsafe extern "C" {
5846 pub fn __cpuidex(
5847 CPUInfo: *mut core::ffi::c_int,
5848 Function: core::ffi::c_int,
5849 SubLeaf: core::ffi::c_int,
5850 );
5851}
5852unsafe extern "C" {
5853 pub fn _mm_clflush(Address: *const core::ffi::c_void);
5854}
5855unsafe extern "C" {
5856 pub fn _ReadWriteBarrier();
5857}
5858unsafe extern "C" {
5859 pub fn __faststorefence();
5860}
5861unsafe extern "C" {
5862 pub fn _mm_lfence();
5863}
5864unsafe extern "C" {
5865 pub fn _mm_mfence();
5866}
5867unsafe extern "C" {
5868 pub fn _mm_sfence();
5869}
5870unsafe extern "C" {
5871 pub fn _mm_pause();
5872}
5873unsafe extern "C" {
5874 pub fn _mm_prefetch(a: *const core::ffi::c_char, sel: core::ffi::c_int);
5875}
5876unsafe extern "C" {
5877 pub fn _m_prefetchw(Source: *const core::ffi::c_void);
5878}
5879unsafe extern "C" {
5880 pub fn _mm_getcsr() -> core::ffi::c_uint;
5881}
5882unsafe extern "C" {
5883 pub fn _mm_setcsr(MxCsr: core::ffi::c_uint);
5884}
5885unsafe extern "C" {
5886 pub fn __getcallerseflags() -> core::ffi::c_uint;
5887}
5888unsafe extern "C" {
5889 pub fn __segmentlimit(Selector: ULONG) -> ULONG;
5890}
5891unsafe extern "C" {
5892 pub fn __readpmc(Counter: ULONG) -> ULONG64;
5893}
5894unsafe extern "C" {
5895 pub fn __rdtsc() -> core::ffi::c_ulonglong;
5896}
5897unsafe extern "C" {
5898 pub fn __movsb(Destination: PUCHAR, Source: *const UCHAR, Count: SIZE_T);
5899}
5900unsafe extern "C" {
5901 pub fn __movsw(Destination: PUSHORT, Source: *const USHORT, Count: SIZE_T);
5902}
5903unsafe extern "C" {
5904 pub fn __movsd(Destination: PULONG, Source: *const ULONG, Count: SIZE_T);
5905}
5906unsafe extern "C" {
5907 pub fn __movsq(Destination: PULONG64, Source: *const ULONG64, Count: SIZE_T);
5908}
5909unsafe extern "C" {
5910 pub fn __stosb(
5911 Destination: *mut core::ffi::c_uchar,
5912 Value: core::ffi::c_uchar,
5913 Count: core::ffi::c_ulonglong,
5914 );
5915}
5916unsafe extern "C" {
5917 pub fn __stosw(Destination: PUSHORT, Value: USHORT, Count: SIZE_T);
5918}
5919unsafe extern "C" {
5920 pub fn __stosd(Destination: PULONG, Value: ULONG, Count: SIZE_T);
5921}
5922unsafe extern "C" {
5923 pub fn __stosq(Destination: PULONG64, Value: ULONG64, Count: SIZE_T);
5924}
5925unsafe extern "C" {
5926 pub fn __mulh(
5927 Multiplier: core::ffi::c_longlong,
5928 Multiplicand: core::ffi::c_longlong,
5929 ) -> core::ffi::c_longlong;
5930}
5931unsafe extern "C" {
5932 pub fn __umulh(
5933 Multiplier: core::ffi::c_ulonglong,
5934 Multiplicand: core::ffi::c_ulonglong,
5935 ) -> core::ffi::c_ulonglong;
5936}
5937unsafe extern "C" {
5938 pub fn __popcnt64(operand: core::ffi::c_ulonglong) -> core::ffi::c_ulonglong;
5939}
5940unsafe extern "C" {
5941 pub fn __shiftleft128(
5942 LowPart: core::ffi::c_ulonglong,
5943 HighPart: core::ffi::c_ulonglong,
5944 Shift: core::ffi::c_uchar,
5945 ) -> core::ffi::c_ulonglong;
5946}
5947unsafe extern "C" {
5948 pub fn __shiftright128(
5949 LowPart: core::ffi::c_ulonglong,
5950 HighPart: core::ffi::c_ulonglong,
5951 Shift: core::ffi::c_uchar,
5952 ) -> core::ffi::c_ulonglong;
5953}
5954unsafe extern "C" {
5955 pub fn _mul128(
5956 Multiplier: core::ffi::c_longlong,
5957 Multiplicand: core::ffi::c_longlong,
5958 HighProduct: *mut core::ffi::c_longlong,
5959 ) -> core::ffi::c_longlong;
5960}
5961unsafe extern "C" {
5962 pub fn UnsignedMultiply128(
5963 Multiplier: ULONG64,
5964 Multiplicand: ULONG64,
5965 HighProduct: *mut ULONG64,
5966 ) -> ULONG64;
5967}
5968unsafe extern "C" {
5969 pub fn _umul128(
5970 Multiplier: core::ffi::c_ulonglong,
5971 Multiplicand: core::ffi::c_ulonglong,
5972 HighProduct: *mut core::ffi::c_ulonglong,
5973 ) -> core::ffi::c_ulonglong;
5974}
5975unsafe extern "C" {
5976 pub fn __readgsbyte(Offset: core::ffi::c_ulong) -> core::ffi::c_uchar;
5977}
5978unsafe extern "C" {
5979 pub fn __readgsword(Offset: core::ffi::c_ulong) -> core::ffi::c_ushort;
5980}
5981unsafe extern "C" {
5982 pub fn __readgsdword(Offset: core::ffi::c_ulong) -> core::ffi::c_ulong;
5983}
5984unsafe extern "C" {
5985 pub fn __writegsbyte(Offset: ULONG, Data: UCHAR);
5986}
5987unsafe extern "C" {
5988 pub fn __writegsword(Offset: ULONG, Data: USHORT);
5989}
5990unsafe extern "C" {
5991 pub fn __writegsdword(Offset: ULONG, Data: ULONG);
5992}
5993unsafe extern "C" {
5994 pub fn __writegsqword(Offset: ULONG, Data: ULONG64);
5995}
5996unsafe extern "C" {
5997 pub fn __incgsbyte(Offset: ULONG);
5998}
5999unsafe extern "C" {
6000 pub fn __addgsbyte(Offset: ULONG, Value: UCHAR);
6001}
6002unsafe extern "C" {
6003 pub fn __incgsword(Offset: ULONG);
6004}
6005unsafe extern "C" {
6006 pub fn __addgsword(Offset: ULONG, Value: USHORT);
6007}
6008unsafe extern "C" {
6009 pub fn __incgsdword(Offset: ULONG);
6010}
6011unsafe extern "C" {
6012 pub fn __addgsdword(Offset: ULONG, Value: ULONG);
6013}
6014unsafe extern "C" {
6015 pub fn __incgsqword(Offset: ULONG);
6016}
6017unsafe extern "C" {
6018 pub fn __addgsqword(Offset: ULONG, Value: ULONG64);
6019}
6020pub type XMM_SAVE_AREA32 = XSAVE_FORMAT;
6021pub type PXMM_SAVE_AREA32 = *mut XSAVE_FORMAT;
6022unsafe extern "C" {
6023 pub fn __int2c() -> !;
6024}
6025pub type PACCESS_TOKEN = PVOID;
6026pub type PSECURITY_DESCRIPTOR = PVOID;
6027pub type PSID = PVOID;
6028pub type PCLAIMS_BLOB = PVOID;
6029pub type ACCESS_MASK = ULONG;
6030pub type PACCESS_MASK = *mut ACCESS_MASK;
6031#[repr(C)]
6032#[derive(Debug, Copy, Clone)]
6033pub struct _GENERIC_MAPPING {
6034 pub GenericRead: ACCESS_MASK,
6035 pub GenericWrite: ACCESS_MASK,
6036 pub GenericExecute: ACCESS_MASK,
6037 pub GenericAll: ACCESS_MASK,
6038}
6039pub type GENERIC_MAPPING = _GENERIC_MAPPING;
6040pub type PGENERIC_MAPPING = *mut GENERIC_MAPPING;
6041#[repr(C)]
6042#[derive(Debug, Copy, Clone)]
6043pub struct _LUID_AND_ATTRIBUTES {
6044 pub Luid: LUID,
6045 pub Attributes: ULONG,
6046}
6047pub type LUID_AND_ATTRIBUTES = _LUID_AND_ATTRIBUTES;
6048pub type PLUID_AND_ATTRIBUTES = *mut _LUID_AND_ATTRIBUTES;
6049pub type LUID_AND_ATTRIBUTES_ARRAY = [LUID_AND_ATTRIBUTES; 1usize];
6050pub type PLUID_AND_ATTRIBUTES_ARRAY = *mut LUID_AND_ATTRIBUTES_ARRAY;
6051#[repr(C)]
6052#[derive(Debug, Copy, Clone)]
6053pub struct _ACL {
6054 pub AclRevision: UCHAR,
6055 pub Sbz1: UCHAR,
6056 pub AclSize: USHORT,
6057 pub AceCount: USHORT,
6058 pub Sbz2: USHORT,
6059}
6060pub type ACL = _ACL;
6061pub type PACL = *mut ACL;
6062#[repr(C)]
6063#[derive(Debug, Copy, Clone)]
6064pub struct _PRIVILEGE_SET {
6065 pub PrivilegeCount: ULONG,
6066 pub Control: ULONG,
6067 pub Privilege: [LUID_AND_ATTRIBUTES; 1usize],
6068}
6069pub type PRIVILEGE_SET = _PRIVILEGE_SET;
6070pub type PPRIVILEGE_SET = *mut _PRIVILEGE_SET;
6071pub const _SECURITY_IMPERSONATION_LEVEL_SecurityAnonymous: _SECURITY_IMPERSONATION_LEVEL = 0;
6072pub const _SECURITY_IMPERSONATION_LEVEL_SecurityIdentification: _SECURITY_IMPERSONATION_LEVEL = 1;
6073pub const _SECURITY_IMPERSONATION_LEVEL_SecurityImpersonation: _SECURITY_IMPERSONATION_LEVEL = 2;
6074pub const _SECURITY_IMPERSONATION_LEVEL_SecurityDelegation: _SECURITY_IMPERSONATION_LEVEL = 3;
6075pub type _SECURITY_IMPERSONATION_LEVEL = core::ffi::c_int;
6076pub use self::_SECURITY_IMPERSONATION_LEVEL as SECURITY_IMPERSONATION_LEVEL;
6077pub type PSECURITY_IMPERSONATION_LEVEL = *mut _SECURITY_IMPERSONATION_LEVEL;
6078pub type SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN;
6079pub type PSECURITY_CONTEXT_TRACKING_MODE = *mut BOOLEAN;
6080#[repr(C)]
6081#[derive(Debug, Copy, Clone)]
6082pub struct _SECURITY_QUALITY_OF_SERVICE {
6083 pub Length: ULONG,
6084 pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
6085 pub ContextTrackingMode: SECURITY_CONTEXT_TRACKING_MODE,
6086 pub EffectiveOnly: BOOLEAN,
6087}
6088pub type SECURITY_QUALITY_OF_SERVICE = _SECURITY_QUALITY_OF_SERVICE;
6089#[repr(C)]
6090#[derive(Debug, Copy, Clone)]
6091pub struct _SE_IMPERSONATION_STATE {
6092 pub Token: PACCESS_TOKEN,
6093 pub CopyOnOpen: BOOLEAN,
6094 pub EffectiveOnly: BOOLEAN,
6095 pub Level: SECURITY_IMPERSONATION_LEVEL,
6096}
6097pub type SE_IMPERSONATION_STATE = _SE_IMPERSONATION_STATE;
6098pub type PSE_IMPERSONATION_STATE = *mut _SE_IMPERSONATION_STATE;
6099pub type SECURITY_INFORMATION = ULONG;
6100pub type PSECURITY_INFORMATION = *mut ULONG;
6101pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeNone: _SE_ADT_PARAMETER_TYPE = 0;
6102pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeString: _SE_ADT_PARAMETER_TYPE = 1;
6103pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeFileSpec: _SE_ADT_PARAMETER_TYPE = 2;
6104pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeUlong: _SE_ADT_PARAMETER_TYPE = 3;
6105pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeSid: _SE_ADT_PARAMETER_TYPE = 4;
6106pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLogonId: _SE_ADT_PARAMETER_TYPE = 5;
6107pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeNoLogonId: _SE_ADT_PARAMETER_TYPE = 6;
6108pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeAccessMask: _SE_ADT_PARAMETER_TYPE = 7;
6109pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypePrivs: _SE_ADT_PARAMETER_TYPE = 8;
6110pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeObjectTypes: _SE_ADT_PARAMETER_TYPE = 9;
6111pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeHexUlong: _SE_ADT_PARAMETER_TYPE = 10;
6112pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypePtr: _SE_ADT_PARAMETER_TYPE = 11;
6113pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeTime: _SE_ADT_PARAMETER_TYPE = 12;
6114pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeGuid: _SE_ADT_PARAMETER_TYPE = 13;
6115pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLuid: _SE_ADT_PARAMETER_TYPE = 14;
6116pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeHexInt64: _SE_ADT_PARAMETER_TYPE = 15;
6117pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeStringList: _SE_ADT_PARAMETER_TYPE = 16;
6118pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeSidList: _SE_ADT_PARAMETER_TYPE = 17;
6119pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeDuration: _SE_ADT_PARAMETER_TYPE = 18;
6120pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeUserAccountControl: _SE_ADT_PARAMETER_TYPE = 19;
6121pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeNoUac: _SE_ADT_PARAMETER_TYPE = 20;
6122pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeMessage: _SE_ADT_PARAMETER_TYPE = 21;
6123pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeDateTime: _SE_ADT_PARAMETER_TYPE = 22;
6124pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeSockAddr: _SE_ADT_PARAMETER_TYPE = 23;
6125pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeSD: _SE_ADT_PARAMETER_TYPE = 24;
6126pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLogonHours: _SE_ADT_PARAMETER_TYPE = 25;
6127pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLogonIdNoSid: _SE_ADT_PARAMETER_TYPE = 26;
6128pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeUlongNoConv: _SE_ADT_PARAMETER_TYPE = 27;
6129pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeSockAddrNoPort: _SE_ADT_PARAMETER_TYPE = 28;
6130pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeAccessReason: _SE_ADT_PARAMETER_TYPE = 29;
6131pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeStagingReason: _SE_ADT_PARAMETER_TYPE = 30;
6132pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeResourceAttribute: _SE_ADT_PARAMETER_TYPE = 31;
6133pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeClaims: _SE_ADT_PARAMETER_TYPE = 32;
6134pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLogonIdAsSid: _SE_ADT_PARAMETER_TYPE = 33;
6135pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeMultiSzString: _SE_ADT_PARAMETER_TYPE = 34;
6136pub const _SE_ADT_PARAMETER_TYPE_SeAdtParmTypeLogonIdEx: _SE_ADT_PARAMETER_TYPE = 35;
6137pub type _SE_ADT_PARAMETER_TYPE = core::ffi::c_int;
6138pub use self::_SE_ADT_PARAMETER_TYPE as SE_ADT_PARAMETER_TYPE;
6139pub type PSE_ADT_PARAMETER_TYPE = *mut _SE_ADT_PARAMETER_TYPE;
6140#[repr(C)]
6141#[derive(Debug, Copy, Clone)]
6142pub struct _SE_ADT_OBJECT_TYPE {
6143 pub ObjectType: GUID,
6144 pub Flags: USHORT,
6145 pub Level: USHORT,
6146 pub AccessMask: ACCESS_MASK,
6147}
6148pub type SE_ADT_OBJECT_TYPE = _SE_ADT_OBJECT_TYPE;
6149pub type PSE_ADT_OBJECT_TYPE = *mut _SE_ADT_OBJECT_TYPE;
6150#[repr(C)]
6151#[derive(Debug, Copy, Clone)]
6152pub struct _SE_ADT_PARAMETER_ARRAY_ENTRY {
6153 pub Type: SE_ADT_PARAMETER_TYPE,
6154 pub Length: ULONG,
6155 pub Data: [ULONG_PTR; 2usize],
6156 pub Address: PVOID,
6157}
6158pub type SE_ADT_PARAMETER_ARRAY_ENTRY = _SE_ADT_PARAMETER_ARRAY_ENTRY;
6159pub type PSE_ADT_PARAMETER_ARRAY_ENTRY = *mut _SE_ADT_PARAMETER_ARRAY_ENTRY;
6160#[repr(C)]
6161#[derive(Debug, Copy, Clone)]
6162pub struct _SE_ADT_ACCESS_REASON {
6163 pub AccessMask: ACCESS_MASK,
6164 pub AccessReasons: [ULONG; 32usize],
6165 pub ObjectTypeIndex: ULONG,
6166 pub AccessGranted: ULONG,
6167 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
6168}
6169pub type SE_ADT_ACCESS_REASON = _SE_ADT_ACCESS_REASON;
6170pub type PSE_ADT_ACCESS_REASON = *mut _SE_ADT_ACCESS_REASON;
6171#[repr(C)]
6172#[derive(Debug, Copy, Clone)]
6173pub struct _SE_ADT_CLAIMS {
6174 pub Length: ULONG,
6175 pub Claims: PCLAIMS_BLOB,
6176}
6177pub type SE_ADT_CLAIMS = _SE_ADT_CLAIMS;
6178pub type PSE_ADT_CLAIMS = *mut _SE_ADT_CLAIMS;
6179#[repr(C)]
6180#[derive(Debug, Copy, Clone)]
6181pub struct _SE_ADT_PARAMETER_ARRAY {
6182 pub CategoryId: ULONG,
6183 pub AuditId: ULONG,
6184 pub ParameterCount: ULONG,
6185 pub Length: ULONG,
6186 pub FlatSubCategoryId: USHORT,
6187 pub Type: USHORT,
6188 pub Flags: ULONG,
6189 pub Parameters: [SE_ADT_PARAMETER_ARRAY_ENTRY; 32usize],
6190}
6191pub type SE_ADT_PARAMETER_ARRAY = _SE_ADT_PARAMETER_ARRAY;
6192pub type PSE_ADT_PARAMETER_ARRAY = *mut _SE_ADT_PARAMETER_ARRAY;
6193#[repr(C)]
6194#[derive(Debug, Copy, Clone)]
6195pub struct _SE_ADT_PARAMETER_ARRAY_EX {
6196 pub CategoryId: ULONG,
6197 pub AuditId: ULONG,
6198 pub Version: ULONG,
6199 pub ParameterCount: ULONG,
6200 pub Length: ULONG,
6201 pub FlatSubCategoryId: USHORT,
6202 pub Type: USHORT,
6203 pub Flags: ULONG,
6204 pub Parameters: [SE_ADT_PARAMETER_ARRAY_ENTRY; 32usize],
6205}
6206pub type SE_ADT_PARAMETER_ARRAY_EX = _SE_ADT_PARAMETER_ARRAY_EX;
6207pub type PSE_ADT_PARAMETER_ARRAY_EX = *mut _SE_ADT_PARAMETER_ARRAY_EX;
6208#[repr(C)]
6209#[derive(Copy, Clone)]
6210pub struct _IO_STATUS_BLOCK {
6211 pub __bindgen_anon_1: _IO_STATUS_BLOCK__bindgen_ty_1,
6212 pub Information: ULONG_PTR,
6213}
6214#[repr(C)]
6215#[derive(Copy, Clone)]
6216pub union _IO_STATUS_BLOCK__bindgen_ty_1 {
6217 pub Status: NTSTATUS,
6218 pub Pointer: PVOID,
6219}
6220pub type IO_STATUS_BLOCK = _IO_STATUS_BLOCK;
6221pub type PIO_STATUS_BLOCK = *mut _IO_STATUS_BLOCK;
6222pub type IO_STATUS_BLOCK64 = IO_STATUS_BLOCK;
6223pub type PIO_STATUS_BLOCK64 = *mut IO_STATUS_BLOCK64;
6224#[repr(C)]
6225#[derive(Debug, Copy, Clone)]
6226pub struct _IO_STATUS_BLOCK32 {
6227 pub Status: NTSTATUS,
6228 pub Information: ULONG,
6229}
6230pub type IO_STATUS_BLOCK32 = _IO_STATUS_BLOCK32;
6231pub type PIO_STATUS_BLOCK32 = *mut _IO_STATUS_BLOCK32;
6232pub type PIO_APC_ROUTINE = ::core::option::Option<
6233 unsafe extern "C" fn(ApcContext: PVOID, IoStatusBlock: PIO_STATUS_BLOCK, Reserved: ULONG),
6234>;
6235pub const _IO_SESSION_EVENT_IoSessionEventIgnore: _IO_SESSION_EVENT = 0;
6236pub const _IO_SESSION_EVENT_IoSessionEventCreated: _IO_SESSION_EVENT = 1;
6237pub const _IO_SESSION_EVENT_IoSessionEventTerminated: _IO_SESSION_EVENT = 2;
6238pub const _IO_SESSION_EVENT_IoSessionEventConnected: _IO_SESSION_EVENT = 3;
6239pub const _IO_SESSION_EVENT_IoSessionEventDisconnected: _IO_SESSION_EVENT = 4;
6240pub const _IO_SESSION_EVENT_IoSessionEventLogon: _IO_SESSION_EVENT = 5;
6241pub const _IO_SESSION_EVENT_IoSessionEventLogoff: _IO_SESSION_EVENT = 6;
6242pub const _IO_SESSION_EVENT_IoSessionEventMax: _IO_SESSION_EVENT = 7;
6243pub type _IO_SESSION_EVENT = core::ffi::c_int;
6244pub use self::_IO_SESSION_EVENT as IO_SESSION_EVENT;
6245pub type PIO_SESSION_EVENT = *mut _IO_SESSION_EVENT;
6246pub const _IO_SESSION_STATE_IoSessionStateCreated: _IO_SESSION_STATE = 1;
6247pub const _IO_SESSION_STATE_IoSessionStateInitialized: _IO_SESSION_STATE = 2;
6248pub const _IO_SESSION_STATE_IoSessionStateConnected: _IO_SESSION_STATE = 3;
6249pub const _IO_SESSION_STATE_IoSessionStateDisconnected: _IO_SESSION_STATE = 4;
6250pub const _IO_SESSION_STATE_IoSessionStateDisconnectedLoggedOn: _IO_SESSION_STATE = 5;
6251pub const _IO_SESSION_STATE_IoSessionStateLoggedOn: _IO_SESSION_STATE = 6;
6252pub const _IO_SESSION_STATE_IoSessionStateLoggedOff: _IO_SESSION_STATE = 7;
6253pub const _IO_SESSION_STATE_IoSessionStateTerminated: _IO_SESSION_STATE = 8;
6254pub const _IO_SESSION_STATE_IoSessionStateMax: _IO_SESSION_STATE = 9;
6255pub type _IO_SESSION_STATE = core::ffi::c_int;
6256pub use self::_IO_SESSION_STATE as IO_SESSION_STATE;
6257pub type PIO_SESSION_STATE = *mut _IO_SESSION_STATE;
6258#[repr(C)]
6259#[derive(Debug, Copy, Clone)]
6260pub struct _IO_SESSION_CONNECT_INFO {
6261 pub SessionId: ULONG,
6262 pub LocalSession: BOOLEAN,
6263}
6264pub type IO_SESSION_CONNECT_INFO = _IO_SESSION_CONNECT_INFO;
6265pub type PIO_SESSION_CONNECT_INFO = *mut _IO_SESSION_CONNECT_INFO;
6266pub const _FILE_INFORMATION_CLASS_FileDirectoryInformation: _FILE_INFORMATION_CLASS = 1;
6267pub const _FILE_INFORMATION_CLASS_FileFullDirectoryInformation: _FILE_INFORMATION_CLASS = 2;
6268pub const _FILE_INFORMATION_CLASS_FileBothDirectoryInformation: _FILE_INFORMATION_CLASS = 3;
6269pub const _FILE_INFORMATION_CLASS_FileBasicInformation: _FILE_INFORMATION_CLASS = 4;
6270pub const _FILE_INFORMATION_CLASS_FileStandardInformation: _FILE_INFORMATION_CLASS = 5;
6271pub const _FILE_INFORMATION_CLASS_FileInternalInformation: _FILE_INFORMATION_CLASS = 6;
6272pub const _FILE_INFORMATION_CLASS_FileEaInformation: _FILE_INFORMATION_CLASS = 7;
6273pub const _FILE_INFORMATION_CLASS_FileAccessInformation: _FILE_INFORMATION_CLASS = 8;
6274pub const _FILE_INFORMATION_CLASS_FileNameInformation: _FILE_INFORMATION_CLASS = 9;
6275pub const _FILE_INFORMATION_CLASS_FileRenameInformation: _FILE_INFORMATION_CLASS = 10;
6276pub const _FILE_INFORMATION_CLASS_FileLinkInformation: _FILE_INFORMATION_CLASS = 11;
6277pub const _FILE_INFORMATION_CLASS_FileNamesInformation: _FILE_INFORMATION_CLASS = 12;
6278pub const _FILE_INFORMATION_CLASS_FileDispositionInformation: _FILE_INFORMATION_CLASS = 13;
6279pub const _FILE_INFORMATION_CLASS_FilePositionInformation: _FILE_INFORMATION_CLASS = 14;
6280pub const _FILE_INFORMATION_CLASS_FileFullEaInformation: _FILE_INFORMATION_CLASS = 15;
6281pub const _FILE_INFORMATION_CLASS_FileModeInformation: _FILE_INFORMATION_CLASS = 16;
6282pub const _FILE_INFORMATION_CLASS_FileAlignmentInformation: _FILE_INFORMATION_CLASS = 17;
6283pub const _FILE_INFORMATION_CLASS_FileAllInformation: _FILE_INFORMATION_CLASS = 18;
6284pub const _FILE_INFORMATION_CLASS_FileAllocationInformation: _FILE_INFORMATION_CLASS = 19;
6285pub const _FILE_INFORMATION_CLASS_FileEndOfFileInformation: _FILE_INFORMATION_CLASS = 20;
6286pub const _FILE_INFORMATION_CLASS_FileAlternateNameInformation: _FILE_INFORMATION_CLASS = 21;
6287pub const _FILE_INFORMATION_CLASS_FileStreamInformation: _FILE_INFORMATION_CLASS = 22;
6288pub const _FILE_INFORMATION_CLASS_FilePipeInformation: _FILE_INFORMATION_CLASS = 23;
6289pub const _FILE_INFORMATION_CLASS_FilePipeLocalInformation: _FILE_INFORMATION_CLASS = 24;
6290pub const _FILE_INFORMATION_CLASS_FilePipeRemoteInformation: _FILE_INFORMATION_CLASS = 25;
6291pub const _FILE_INFORMATION_CLASS_FileMailslotQueryInformation: _FILE_INFORMATION_CLASS = 26;
6292pub const _FILE_INFORMATION_CLASS_FileMailslotSetInformation: _FILE_INFORMATION_CLASS = 27;
6293pub const _FILE_INFORMATION_CLASS_FileCompressionInformation: _FILE_INFORMATION_CLASS = 28;
6294pub const _FILE_INFORMATION_CLASS_FileObjectIdInformation: _FILE_INFORMATION_CLASS = 29;
6295pub const _FILE_INFORMATION_CLASS_FileCompletionInformation: _FILE_INFORMATION_CLASS = 30;
6296pub const _FILE_INFORMATION_CLASS_FileMoveClusterInformation: _FILE_INFORMATION_CLASS = 31;
6297pub const _FILE_INFORMATION_CLASS_FileQuotaInformation: _FILE_INFORMATION_CLASS = 32;
6298pub const _FILE_INFORMATION_CLASS_FileReparsePointInformation: _FILE_INFORMATION_CLASS = 33;
6299pub const _FILE_INFORMATION_CLASS_FileNetworkOpenInformation: _FILE_INFORMATION_CLASS = 34;
6300pub const _FILE_INFORMATION_CLASS_FileAttributeTagInformation: _FILE_INFORMATION_CLASS = 35;
6301pub const _FILE_INFORMATION_CLASS_FileTrackingInformation: _FILE_INFORMATION_CLASS = 36;
6302pub const _FILE_INFORMATION_CLASS_FileIdBothDirectoryInformation: _FILE_INFORMATION_CLASS = 37;
6303pub const _FILE_INFORMATION_CLASS_FileIdFullDirectoryInformation: _FILE_INFORMATION_CLASS = 38;
6304pub const _FILE_INFORMATION_CLASS_FileValidDataLengthInformation: _FILE_INFORMATION_CLASS = 39;
6305pub const _FILE_INFORMATION_CLASS_FileShortNameInformation: _FILE_INFORMATION_CLASS = 40;
6306pub const _FILE_INFORMATION_CLASS_FileIoCompletionNotificationInformation: _FILE_INFORMATION_CLASS =
6307 41;
6308pub const _FILE_INFORMATION_CLASS_FileIoStatusBlockRangeInformation: _FILE_INFORMATION_CLASS = 42;
6309pub const _FILE_INFORMATION_CLASS_FileIoPriorityHintInformation: _FILE_INFORMATION_CLASS = 43;
6310pub const _FILE_INFORMATION_CLASS_FileSfioReserveInformation: _FILE_INFORMATION_CLASS = 44;
6311pub const _FILE_INFORMATION_CLASS_FileSfioVolumeInformation: _FILE_INFORMATION_CLASS = 45;
6312pub const _FILE_INFORMATION_CLASS_FileHardLinkInformation: _FILE_INFORMATION_CLASS = 46;
6313pub const _FILE_INFORMATION_CLASS_FileProcessIdsUsingFileInformation: _FILE_INFORMATION_CLASS = 47;
6314pub const _FILE_INFORMATION_CLASS_FileNormalizedNameInformation: _FILE_INFORMATION_CLASS = 48;
6315pub const _FILE_INFORMATION_CLASS_FileNetworkPhysicalNameInformation: _FILE_INFORMATION_CLASS = 49;
6316pub const _FILE_INFORMATION_CLASS_FileIdGlobalTxDirectoryInformation: _FILE_INFORMATION_CLASS = 50;
6317pub const _FILE_INFORMATION_CLASS_FileIsRemoteDeviceInformation: _FILE_INFORMATION_CLASS = 51;
6318pub const _FILE_INFORMATION_CLASS_FileUnusedInformation: _FILE_INFORMATION_CLASS = 52;
6319pub const _FILE_INFORMATION_CLASS_FileNumaNodeInformation: _FILE_INFORMATION_CLASS = 53;
6320pub const _FILE_INFORMATION_CLASS_FileStandardLinkInformation: _FILE_INFORMATION_CLASS = 54;
6321pub const _FILE_INFORMATION_CLASS_FileRemoteProtocolInformation: _FILE_INFORMATION_CLASS = 55;
6322pub const _FILE_INFORMATION_CLASS_FileRenameInformationBypassAccessCheck: _FILE_INFORMATION_CLASS =
6323 56;
6324pub const _FILE_INFORMATION_CLASS_FileLinkInformationBypassAccessCheck: _FILE_INFORMATION_CLASS =
6325 57;
6326pub const _FILE_INFORMATION_CLASS_FileVolumeNameInformation: _FILE_INFORMATION_CLASS = 58;
6327pub const _FILE_INFORMATION_CLASS_FileIdInformation: _FILE_INFORMATION_CLASS = 59;
6328pub const _FILE_INFORMATION_CLASS_FileIdExtdDirectoryInformation: _FILE_INFORMATION_CLASS = 60;
6329pub const _FILE_INFORMATION_CLASS_FileReplaceCompletionInformation: _FILE_INFORMATION_CLASS = 61;
6330pub const _FILE_INFORMATION_CLASS_FileHardLinkFullIdInformation: _FILE_INFORMATION_CLASS = 62;
6331pub const _FILE_INFORMATION_CLASS_FileIdExtdBothDirectoryInformation: _FILE_INFORMATION_CLASS = 63;
6332pub const _FILE_INFORMATION_CLASS_FileDispositionInformationEx: _FILE_INFORMATION_CLASS = 64;
6333pub const _FILE_INFORMATION_CLASS_FileRenameInformationEx: _FILE_INFORMATION_CLASS = 65;
6334pub const _FILE_INFORMATION_CLASS_FileRenameInformationExBypassAccessCheck:
6335_FILE_INFORMATION_CLASS = 66;
6336pub const _FILE_INFORMATION_CLASS_FileDesiredStorageClassInformation: _FILE_INFORMATION_CLASS = 67;
6337pub const _FILE_INFORMATION_CLASS_FileStatInformation: _FILE_INFORMATION_CLASS = 68;
6338pub const _FILE_INFORMATION_CLASS_FileMemoryPartitionInformation: _FILE_INFORMATION_CLASS = 69;
6339pub const _FILE_INFORMATION_CLASS_FileStatLxInformation: _FILE_INFORMATION_CLASS = 70;
6340pub const _FILE_INFORMATION_CLASS_FileCaseSensitiveInformation: _FILE_INFORMATION_CLASS = 71;
6341pub const _FILE_INFORMATION_CLASS_FileLinkInformationEx: _FILE_INFORMATION_CLASS = 72;
6342pub const _FILE_INFORMATION_CLASS_FileLinkInformationExBypassAccessCheck: _FILE_INFORMATION_CLASS =
6343 73;
6344pub const _FILE_INFORMATION_CLASS_FileStorageReserveIdInformation: _FILE_INFORMATION_CLASS = 74;
6345pub const _FILE_INFORMATION_CLASS_FileCaseSensitiveInformationForceAccessCheck:
6346_FILE_INFORMATION_CLASS = 75;
6347pub const _FILE_INFORMATION_CLASS_FileKnownFolderInformation: _FILE_INFORMATION_CLASS = 76;
6348pub const _FILE_INFORMATION_CLASS_FileStatBasicInformation: _FILE_INFORMATION_CLASS = 77;
6349pub const _FILE_INFORMATION_CLASS_FileId64ExtdDirectoryInformation: _FILE_INFORMATION_CLASS = 78;
6350pub const _FILE_INFORMATION_CLASS_FileId64ExtdBothDirectoryInformation: _FILE_INFORMATION_CLASS =
6351 79;
6352pub const _FILE_INFORMATION_CLASS_FileIdAllExtdDirectoryInformation: _FILE_INFORMATION_CLASS = 80;
6353pub const _FILE_INFORMATION_CLASS_FileIdAllExtdBothDirectoryInformation: _FILE_INFORMATION_CLASS =
6354 81;
6355pub const _FILE_INFORMATION_CLASS_FileMaximumInformation: _FILE_INFORMATION_CLASS = 82;
6356pub type _FILE_INFORMATION_CLASS = core::ffi::c_int;
6357pub use self::_FILE_INFORMATION_CLASS as FILE_INFORMATION_CLASS;
6358pub type PFILE_INFORMATION_CLASS = *mut _FILE_INFORMATION_CLASS;
6359pub const _DIRECTORY_NOTIFY_INFORMATION_CLASS_DirectoryNotifyInformation:
6360_DIRECTORY_NOTIFY_INFORMATION_CLASS = 1;
6361pub const _DIRECTORY_NOTIFY_INFORMATION_CLASS_DirectoryNotifyExtendedInformation:
6362_DIRECTORY_NOTIFY_INFORMATION_CLASS = 2;
6363pub const _DIRECTORY_NOTIFY_INFORMATION_CLASS_DirectoryNotifyFullInformation:
6364_DIRECTORY_NOTIFY_INFORMATION_CLASS = 3;
6365pub const _DIRECTORY_NOTIFY_INFORMATION_CLASS_DirectoryNotifyMaximumInformation:
6366_DIRECTORY_NOTIFY_INFORMATION_CLASS = 4;
6367pub type _DIRECTORY_NOTIFY_INFORMATION_CLASS = core::ffi::c_int;
6368pub use self::_DIRECTORY_NOTIFY_INFORMATION_CLASS as DIRECTORY_NOTIFY_INFORMATION_CLASS;
6369pub type PDIRECTORY_NOTIFY_INFORMATION_CLASS = *mut _DIRECTORY_NOTIFY_INFORMATION_CLASS;
6370#[repr(C)]
6371#[derive(Copy, Clone)]
6372pub struct _FILE_BASIC_INFORMATION {
6373 pub CreationTime: LARGE_INTEGER,
6374 pub LastAccessTime: LARGE_INTEGER,
6375 pub LastWriteTime: LARGE_INTEGER,
6376 pub ChangeTime: LARGE_INTEGER,
6377 pub FileAttributes: ULONG,
6378}
6379pub type FILE_BASIC_INFORMATION = _FILE_BASIC_INFORMATION;
6380pub type PFILE_BASIC_INFORMATION = *mut _FILE_BASIC_INFORMATION;
6381#[repr(C)]
6382#[derive(Copy, Clone)]
6383pub struct _FILE_STANDARD_INFORMATION {
6384 pub AllocationSize: LARGE_INTEGER,
6385 pub EndOfFile: LARGE_INTEGER,
6386 pub NumberOfLinks: ULONG,
6387 pub DeletePending: BOOLEAN,
6388 pub Directory: BOOLEAN,
6389}
6390pub type FILE_STANDARD_INFORMATION = _FILE_STANDARD_INFORMATION;
6391pub type PFILE_STANDARD_INFORMATION = *mut _FILE_STANDARD_INFORMATION;
6392#[repr(C)]
6393#[derive(Copy, Clone)]
6394pub struct _FILE_STANDARD_INFORMATION_EX {
6395 pub AllocationSize: LARGE_INTEGER,
6396 pub EndOfFile: LARGE_INTEGER,
6397 pub NumberOfLinks: ULONG,
6398 pub DeletePending: BOOLEAN,
6399 pub Directory: BOOLEAN,
6400 pub AlternateStream: BOOLEAN,
6401 pub MetadataAttribute: BOOLEAN,
6402}
6403pub type FILE_STANDARD_INFORMATION_EX = _FILE_STANDARD_INFORMATION_EX;
6404pub type PFILE_STANDARD_INFORMATION_EX = *mut _FILE_STANDARD_INFORMATION_EX;
6405#[repr(C)]
6406#[derive(Copy, Clone)]
6407pub struct _FILE_POSITION_INFORMATION {
6408 pub CurrentByteOffset: LARGE_INTEGER,
6409}
6410pub type FILE_POSITION_INFORMATION = _FILE_POSITION_INFORMATION;
6411pub type PFILE_POSITION_INFORMATION = *mut _FILE_POSITION_INFORMATION;
6412#[repr(C)]
6413#[derive(Copy, Clone)]
6414pub struct _FILE_NETWORK_OPEN_INFORMATION {
6415 pub CreationTime: LARGE_INTEGER,
6416 pub LastAccessTime: LARGE_INTEGER,
6417 pub LastWriteTime: LARGE_INTEGER,
6418 pub ChangeTime: LARGE_INTEGER,
6419 pub AllocationSize: LARGE_INTEGER,
6420 pub EndOfFile: LARGE_INTEGER,
6421 pub FileAttributes: ULONG,
6422}
6423pub type FILE_NETWORK_OPEN_INFORMATION = _FILE_NETWORK_OPEN_INFORMATION;
6424pub type PFILE_NETWORK_OPEN_INFORMATION = *mut _FILE_NETWORK_OPEN_INFORMATION;
6425#[repr(C)]
6426#[derive(Debug, Copy, Clone)]
6427pub struct _FILE_FULL_EA_INFORMATION {
6428 pub NextEntryOffset: ULONG,
6429 pub Flags: UCHAR,
6430 pub EaNameLength: UCHAR,
6431 pub EaValueLength: USHORT,
6432 pub EaName: [CHAR; 1usize],
6433}
6434pub type FILE_FULL_EA_INFORMATION = _FILE_FULL_EA_INFORMATION;
6435pub type PFILE_FULL_EA_INFORMATION = *mut _FILE_FULL_EA_INFORMATION;
6436#[repr(C)]
6437#[derive(Debug, Copy, Clone)]
6438pub struct _FILE_SFIO_RESERVE_INFORMATION {
6439 pub RequestsPerPeriod: ULONG,
6440 pub Period: ULONG,
6441 pub RetryFailures: BOOLEAN,
6442 pub Discardable: BOOLEAN,
6443 pub RequestSize: ULONG,
6444 pub NumOutstandingRequests: ULONG,
6445}
6446pub type FILE_SFIO_RESERVE_INFORMATION = _FILE_SFIO_RESERVE_INFORMATION;
6447pub type PFILE_SFIO_RESERVE_INFORMATION = *mut _FILE_SFIO_RESERVE_INFORMATION;
6448#[repr(C)]
6449#[derive(Debug, Copy, Clone)]
6450pub struct _FILE_SFIO_VOLUME_INFORMATION {
6451 pub MaximumRequestsPerPeriod: ULONG,
6452 pub MinimumPeriod: ULONG,
6453 pub MinimumTransferSize: ULONG,
6454}
6455pub type FILE_SFIO_VOLUME_INFORMATION = _FILE_SFIO_VOLUME_INFORMATION;
6456pub type PFILE_SFIO_VOLUME_INFORMATION = *mut _FILE_SFIO_VOLUME_INFORMATION;
6457pub const _IO_PRIORITY_HINT_IoPriorityVeryLow: _IO_PRIORITY_HINT = 0;
6458pub const _IO_PRIORITY_HINT_IoPriorityLow: _IO_PRIORITY_HINT = 1;
6459pub const _IO_PRIORITY_HINT_IoPriorityNormal: _IO_PRIORITY_HINT = 2;
6460pub const _IO_PRIORITY_HINT_IoPriorityHigh: _IO_PRIORITY_HINT = 3;
6461pub const _IO_PRIORITY_HINT_IoPriorityCritical: _IO_PRIORITY_HINT = 4;
6462pub const _IO_PRIORITY_HINT_MaxIoPriorityTypes: _IO_PRIORITY_HINT = 5;
6463pub type _IO_PRIORITY_HINT = core::ffi::c_int;
6464pub use self::_IO_PRIORITY_HINT as IO_PRIORITY_HINT;
6465#[repr(C)]
6466#[derive(Debug, Copy, Clone)]
6467pub struct _FILE_IO_PRIORITY_HINT_INFORMATION {
6468 pub PriorityHint: IO_PRIORITY_HINT,
6469}
6470pub type FILE_IO_PRIORITY_HINT_INFORMATION = _FILE_IO_PRIORITY_HINT_INFORMATION;
6471pub type PFILE_IO_PRIORITY_HINT_INFORMATION = *mut _FILE_IO_PRIORITY_HINT_INFORMATION;
6472#[repr(C)]
6473#[derive(Debug, Copy, Clone)]
6474pub struct _FILE_IO_PRIORITY_HINT_INFORMATION_EX {
6475 pub PriorityHint: IO_PRIORITY_HINT,
6476 pub BoostOutstanding: BOOLEAN,
6477}
6478pub type FILE_IO_PRIORITY_HINT_INFORMATION_EX = _FILE_IO_PRIORITY_HINT_INFORMATION_EX;
6479pub type PFILE_IO_PRIORITY_HINT_INFORMATION_EX = *mut _FILE_IO_PRIORITY_HINT_INFORMATION_EX;
6480#[repr(C)]
6481#[derive(Debug, Copy, Clone)]
6482pub struct _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION {
6483 pub Flags: ULONG,
6484}
6485pub type FILE_IO_COMPLETION_NOTIFICATION_INFORMATION = _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION;
6486pub type PFILE_IO_COMPLETION_NOTIFICATION_INFORMATION =
6487*mut _FILE_IO_COMPLETION_NOTIFICATION_INFORMATION;
6488#[repr(C)]
6489#[derive(Debug, Copy, Clone)]
6490pub struct _FILE_PROCESS_IDS_USING_FILE_INFORMATION {
6491 pub NumberOfProcessIdsInList: ULONG,
6492 pub ProcessIdList: [ULONG_PTR; 1usize],
6493}
6494pub type FILE_PROCESS_IDS_USING_FILE_INFORMATION = _FILE_PROCESS_IDS_USING_FILE_INFORMATION;
6495pub type PFILE_PROCESS_IDS_USING_FILE_INFORMATION = *mut _FILE_PROCESS_IDS_USING_FILE_INFORMATION;
6496#[repr(C)]
6497#[derive(Debug, Copy, Clone)]
6498pub struct _FILE_IS_REMOTE_DEVICE_INFORMATION {
6499 pub IsRemote: BOOLEAN,
6500}
6501pub type FILE_IS_REMOTE_DEVICE_INFORMATION = _FILE_IS_REMOTE_DEVICE_INFORMATION;
6502pub type PFILE_IS_REMOTE_DEVICE_INFORMATION = *mut _FILE_IS_REMOTE_DEVICE_INFORMATION;
6503#[repr(C)]
6504#[derive(Debug, Copy, Clone)]
6505pub struct _FILE_NUMA_NODE_INFORMATION {
6506 pub NodeNumber: USHORT,
6507}
6508pub type FILE_NUMA_NODE_INFORMATION = _FILE_NUMA_NODE_INFORMATION;
6509pub type PFILE_NUMA_NODE_INFORMATION = *mut _FILE_NUMA_NODE_INFORMATION;
6510#[repr(C)]
6511#[derive(Debug, Copy, Clone)]
6512pub struct _FILE_IOSTATUSBLOCK_RANGE_INFORMATION {
6513 pub IoStatusBlockRange: PUCHAR,
6514 pub Length: ULONG,
6515}
6516pub type FILE_IOSTATUSBLOCK_RANGE_INFORMATION = _FILE_IOSTATUSBLOCK_RANGE_INFORMATION;
6517pub type PFILE_IOSTATUSBLOCK_RANGE_INFORMATION = *mut _FILE_IOSTATUSBLOCK_RANGE_INFORMATION;
6518#[repr(C)]
6519#[derive(Copy, Clone)]
6520pub struct _FILE_MEMORY_PARTITION_INFORMATION {
6521 pub OwnerPartitionHandle: ULONG_PTR,
6522 pub Flags: _FILE_MEMORY_PARTITION_INFORMATION__bindgen_ty_1,
6523}
6524#[repr(C)]
6525#[derive(Copy, Clone)]
6526pub union _FILE_MEMORY_PARTITION_INFORMATION__bindgen_ty_1 {
6527 pub __bindgen_anon_1: _FILE_MEMORY_PARTITION_INFORMATION__bindgen_ty_1__bindgen_ty_1,
6528 pub AllFlags: ULONG,
6529}
6530#[repr(C)]
6531#[derive(Debug, Copy, Clone)]
6532pub struct _FILE_MEMORY_PARTITION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
6533 pub NoCrossPartitionAccess: UCHAR,
6534 pub Spare: [UCHAR; 3usize],
6535}
6536pub type FILE_MEMORY_PARTITION_INFORMATION = _FILE_MEMORY_PARTITION_INFORMATION;
6537pub type PFILE_MEMORY_PARTITION_INFORMATION = *mut _FILE_MEMORY_PARTITION_INFORMATION;
6538pub const _FSINFOCLASS_FileFsVolumeInformation: _FSINFOCLASS = 1;
6539pub const _FSINFOCLASS_FileFsLabelInformation: _FSINFOCLASS = 2;
6540pub const _FSINFOCLASS_FileFsSizeInformation: _FSINFOCLASS = 3;
6541pub const _FSINFOCLASS_FileFsDeviceInformation: _FSINFOCLASS = 4;
6542pub const _FSINFOCLASS_FileFsAttributeInformation: _FSINFOCLASS = 5;
6543pub const _FSINFOCLASS_FileFsControlInformation: _FSINFOCLASS = 6;
6544pub const _FSINFOCLASS_FileFsFullSizeInformation: _FSINFOCLASS = 7;
6545pub const _FSINFOCLASS_FileFsObjectIdInformation: _FSINFOCLASS = 8;
6546pub const _FSINFOCLASS_FileFsDriverPathInformation: _FSINFOCLASS = 9;
6547pub const _FSINFOCLASS_FileFsVolumeFlagsInformation: _FSINFOCLASS = 10;
6548pub const _FSINFOCLASS_FileFsSectorSizeInformation: _FSINFOCLASS = 11;
6549pub const _FSINFOCLASS_FileFsDataCopyInformation: _FSINFOCLASS = 12;
6550pub const _FSINFOCLASS_FileFsMetadataSizeInformation: _FSINFOCLASS = 13;
6551pub const _FSINFOCLASS_FileFsFullSizeInformationEx: _FSINFOCLASS = 14;
6552pub const _FSINFOCLASS_FileFsGuidInformation: _FSINFOCLASS = 15;
6553pub const _FSINFOCLASS_FileFsMaximumInformation: _FSINFOCLASS = 16;
6554pub type _FSINFOCLASS = core::ffi::c_int;
6555pub use self::_FSINFOCLASS as FS_INFORMATION_CLASS;
6556pub type PFS_INFORMATION_CLASS = *mut _FSINFOCLASS;
6557#[repr(C)]
6558#[derive(Debug, Copy, Clone)]
6559pub struct _FILE_FS_DEVICE_INFORMATION {
6560 pub DeviceType: ULONG,
6561 pub Characteristics: ULONG,
6562}
6563pub type FILE_FS_DEVICE_INFORMATION = _FILE_FS_DEVICE_INFORMATION;
6564pub type PFILE_FS_DEVICE_INFORMATION = *mut _FILE_FS_DEVICE_INFORMATION;
6565#[repr(C)]
6566#[derive(Copy, Clone)]
6567pub union _FILE_SEGMENT_ELEMENT {
6568 pub Buffer: *mut core::ffi::c_void,
6569 pub Alignment: ULONGLONG,
6570}
6571pub type FILE_SEGMENT_ELEMENT = _FILE_SEGMENT_ELEMENT;
6572pub type PFILE_SEGMENT_ELEMENT = *mut _FILE_SEGMENT_ELEMENT;
6573pub const _INTERFACE_TYPE_InterfaceTypeUndefined: _INTERFACE_TYPE = -1;
6574pub const _INTERFACE_TYPE_Internal: _INTERFACE_TYPE = 0;
6575pub const _INTERFACE_TYPE_Isa: _INTERFACE_TYPE = 1;
6576pub const _INTERFACE_TYPE_Eisa: _INTERFACE_TYPE = 2;
6577pub const _INTERFACE_TYPE_MicroChannel: _INTERFACE_TYPE = 3;
6578pub const _INTERFACE_TYPE_TurboChannel: _INTERFACE_TYPE = 4;
6579pub const _INTERFACE_TYPE_PCIBus: _INTERFACE_TYPE = 5;
6580pub const _INTERFACE_TYPE_VMEBus: _INTERFACE_TYPE = 6;
6581pub const _INTERFACE_TYPE_NuBus: _INTERFACE_TYPE = 7;
6582pub const _INTERFACE_TYPE_PCMCIABus: _INTERFACE_TYPE = 8;
6583pub const _INTERFACE_TYPE_CBus: _INTERFACE_TYPE = 9;
6584pub const _INTERFACE_TYPE_MPIBus: _INTERFACE_TYPE = 10;
6585pub const _INTERFACE_TYPE_MPSABus: _INTERFACE_TYPE = 11;
6586pub const _INTERFACE_TYPE_ProcessorInternal: _INTERFACE_TYPE = 12;
6587pub const _INTERFACE_TYPE_InternalPowerBus: _INTERFACE_TYPE = 13;
6588pub const _INTERFACE_TYPE_PNPISABus: _INTERFACE_TYPE = 14;
6589pub const _INTERFACE_TYPE_PNPBus: _INTERFACE_TYPE = 15;
6590pub const _INTERFACE_TYPE_Vmcs: _INTERFACE_TYPE = 16;
6591pub const _INTERFACE_TYPE_ACPIBus: _INTERFACE_TYPE = 17;
6592pub const _INTERFACE_TYPE_MaximumInterfaceType: _INTERFACE_TYPE = 18;
6593pub type _INTERFACE_TYPE = core::ffi::c_int;
6594pub use self::_INTERFACE_TYPE as INTERFACE_TYPE;
6595pub type PINTERFACE_TYPE = *mut _INTERFACE_TYPE;
6596pub const _DMA_WIDTH_Width8Bits: _DMA_WIDTH = 0;
6597pub const _DMA_WIDTH_Width16Bits: _DMA_WIDTH = 1;
6598pub const _DMA_WIDTH_Width32Bits: _DMA_WIDTH = 2;
6599pub const _DMA_WIDTH_Width64Bits: _DMA_WIDTH = 3;
6600pub const _DMA_WIDTH_WidthNoWrap: _DMA_WIDTH = 4;
6601pub const _DMA_WIDTH_MaximumDmaWidth: _DMA_WIDTH = 5;
6602pub type _DMA_WIDTH = core::ffi::c_int;
6603pub use self::_DMA_WIDTH as DMA_WIDTH;
6604pub type PDMA_WIDTH = *mut _DMA_WIDTH;
6605pub const _DMA_SPEED_Compatible: _DMA_SPEED = 0;
6606pub const _DMA_SPEED_TypeA: _DMA_SPEED = 1;
6607pub const _DMA_SPEED_TypeB: _DMA_SPEED = 2;
6608pub const _DMA_SPEED_TypeC: _DMA_SPEED = 3;
6609pub const _DMA_SPEED_TypeF: _DMA_SPEED = 4;
6610pub const _DMA_SPEED_MaximumDmaSpeed: _DMA_SPEED = 5;
6611pub type _DMA_SPEED = core::ffi::c_int;
6612pub use self::_DMA_SPEED as DMA_SPEED;
6613pub type PDMA_SPEED = *mut _DMA_SPEED;
6614pub type PINTERFACE_REFERENCE = ::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
6615pub type PINTERFACE_DEREFERENCE = ::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
6616#[repr(C)]
6617#[derive(Copy, Clone)]
6618pub struct _IO_ERROR_LOG_PACKET {
6619 pub MajorFunctionCode: UCHAR,
6620 pub RetryCount: UCHAR,
6621 pub DumpDataSize: USHORT,
6622 pub NumberOfStrings: USHORT,
6623 pub StringOffset: USHORT,
6624 pub EventCategory: USHORT,
6625 pub ErrorCode: NTSTATUS,
6626 pub UniqueErrorValue: ULONG,
6627 pub FinalStatus: NTSTATUS,
6628 pub SequenceNumber: ULONG,
6629 pub IoControlCode: ULONG,
6630 pub DeviceOffset: LARGE_INTEGER,
6631 pub DumpData: [ULONG; 1usize],
6632}
6633pub type IO_ERROR_LOG_PACKET = _IO_ERROR_LOG_PACKET;
6634pub type PIO_ERROR_LOG_PACKET = *mut _IO_ERROR_LOG_PACKET;
6635#[repr(C)]
6636#[derive(Copy, Clone)]
6637pub struct _IO_ERROR_LOG_MESSAGE {
6638 pub Type: USHORT,
6639 pub Size: USHORT,
6640 pub DriverNameLength: USHORT,
6641 pub TimeStamp: LARGE_INTEGER,
6642 pub DriverNameOffset: ULONG,
6643 pub EntryData: IO_ERROR_LOG_PACKET,
6644}
6645pub type IO_ERROR_LOG_MESSAGE = _IO_ERROR_LOG_MESSAGE;
6646pub type PIO_ERROR_LOG_MESSAGE = *mut _IO_ERROR_LOG_MESSAGE;
6647#[repr(C)]
6648#[derive(Copy, Clone)]
6649pub struct _KEY_BASIC_INFORMATION {
6650 pub LastWriteTime: LARGE_INTEGER,
6651 pub TitleIndex: ULONG,
6652 pub NameLength: ULONG,
6653 pub Name: [WCHAR; 1usize],
6654}
6655pub type KEY_BASIC_INFORMATION = _KEY_BASIC_INFORMATION;
6656pub type PKEY_BASIC_INFORMATION = *mut _KEY_BASIC_INFORMATION;
6657#[repr(C)]
6658#[derive(Copy, Clone)]
6659pub struct _KEY_NODE_INFORMATION {
6660 pub LastWriteTime: LARGE_INTEGER,
6661 pub TitleIndex: ULONG,
6662 pub ClassOffset: ULONG,
6663 pub ClassLength: ULONG,
6664 pub NameLength: ULONG,
6665 pub Name: [WCHAR; 1usize],
6666}
6667pub type KEY_NODE_INFORMATION = _KEY_NODE_INFORMATION;
6668pub type PKEY_NODE_INFORMATION = *mut _KEY_NODE_INFORMATION;
6669#[repr(C)]
6670#[derive(Copy, Clone)]
6671pub struct _KEY_FULL_INFORMATION {
6672 pub LastWriteTime: LARGE_INTEGER,
6673 pub TitleIndex: ULONG,
6674 pub ClassOffset: ULONG,
6675 pub ClassLength: ULONG,
6676 pub SubKeys: ULONG,
6677 pub MaxNameLen: ULONG,
6678 pub MaxClassLen: ULONG,
6679 pub Values: ULONG,
6680 pub MaxValueNameLen: ULONG,
6681 pub MaxValueDataLen: ULONG,
6682 pub Class: [WCHAR; 1usize],
6683}
6684pub type KEY_FULL_INFORMATION = _KEY_FULL_INFORMATION;
6685pub type PKEY_FULL_INFORMATION = *mut _KEY_FULL_INFORMATION;
6686pub const _KEY_INFORMATION_CLASS_KeyBasicInformation: _KEY_INFORMATION_CLASS = 0;
6687pub const _KEY_INFORMATION_CLASS_KeyNodeInformation: _KEY_INFORMATION_CLASS = 1;
6688pub const _KEY_INFORMATION_CLASS_KeyFullInformation: _KEY_INFORMATION_CLASS = 2;
6689pub const _KEY_INFORMATION_CLASS_KeyNameInformation: _KEY_INFORMATION_CLASS = 3;
6690pub const _KEY_INFORMATION_CLASS_KeyCachedInformation: _KEY_INFORMATION_CLASS = 4;
6691pub const _KEY_INFORMATION_CLASS_KeyFlagsInformation: _KEY_INFORMATION_CLASS = 5;
6692pub const _KEY_INFORMATION_CLASS_KeyVirtualizationInformation: _KEY_INFORMATION_CLASS = 6;
6693pub const _KEY_INFORMATION_CLASS_KeyHandleTagsInformation: _KEY_INFORMATION_CLASS = 7;
6694pub const _KEY_INFORMATION_CLASS_KeyTrustInformation: _KEY_INFORMATION_CLASS = 8;
6695pub const _KEY_INFORMATION_CLASS_KeyLayerInformation: _KEY_INFORMATION_CLASS = 9;
6696pub const _KEY_INFORMATION_CLASS_MaxKeyInfoClass: _KEY_INFORMATION_CLASS = 10;
6697pub type _KEY_INFORMATION_CLASS = core::ffi::c_int;
6698pub use self::_KEY_INFORMATION_CLASS as KEY_INFORMATION_CLASS;
6699#[repr(C)]
6700#[derive(Copy, Clone)]
6701pub struct _KEY_WRITE_TIME_INFORMATION {
6702 pub LastWriteTime: LARGE_INTEGER,
6703}
6704pub type KEY_WRITE_TIME_INFORMATION = _KEY_WRITE_TIME_INFORMATION;
6705pub type PKEY_WRITE_TIME_INFORMATION = *mut _KEY_WRITE_TIME_INFORMATION;
6706#[repr(C)]
6707#[derive(Debug, Copy, Clone)]
6708pub struct _KEY_WOW64_FLAGS_INFORMATION {
6709 pub UserFlags: ULONG,
6710}
6711pub type KEY_WOW64_FLAGS_INFORMATION = _KEY_WOW64_FLAGS_INFORMATION;
6712pub type PKEY_WOW64_FLAGS_INFORMATION = *mut _KEY_WOW64_FLAGS_INFORMATION;
6713#[repr(C)]
6714#[derive(Debug, Copy, Clone)]
6715pub struct _KEY_CONTROL_FLAGS_INFORMATION {
6716 pub ControlFlags: ULONG,
6717}
6718pub type KEY_CONTROL_FLAGS_INFORMATION = _KEY_CONTROL_FLAGS_INFORMATION;
6719pub type PKEY_CONTROL_FLAGS_INFORMATION = *mut _KEY_CONTROL_FLAGS_INFORMATION;
6720#[repr(C)]
6721#[derive(Debug, Copy, Clone)]
6722pub struct _KEY_SET_VIRTUALIZATION_INFORMATION {
6723 pub _bitfield_align_1: [u32; 0],
6724 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
6725}
6726impl _KEY_SET_VIRTUALIZATION_INFORMATION {
6727 #[inline]
6728 pub fn VirtualTarget(&self) -> ULONG {
6729 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
6730 }
6731 #[inline]
6732 pub fn set_VirtualTarget(&mut self, val: ULONG) {
6733 unsafe {
6734 let val: u32 = ::core::mem::transmute(val);
6735 self._bitfield_1.set(0usize, 1u8, val as u64)
6736 }
6737 }
6738 #[inline]
6739 pub unsafe fn VirtualTarget_raw(this: *const Self) -> ULONG {
6740 unsafe {
6741 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6742 ::core::ptr::addr_of!((*this)._bitfield_1),
6743 0usize,
6744 1u8,
6745 ) as u32)
6746 }
6747 }
6748 #[inline]
6749 pub unsafe fn set_VirtualTarget_raw(this: *mut Self, val: ULONG) {
6750 unsafe {
6751 let val: u32 = ::core::mem::transmute(val);
6752 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
6753 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6754 0usize,
6755 1u8,
6756 val as u64,
6757 )
6758 }
6759 }
6760 #[inline]
6761 pub fn VirtualStore(&self) -> ULONG {
6762 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
6763 }
6764 #[inline]
6765 pub fn set_VirtualStore(&mut self, val: ULONG) {
6766 unsafe {
6767 let val: u32 = ::core::mem::transmute(val);
6768 self._bitfield_1.set(1usize, 1u8, val as u64)
6769 }
6770 }
6771 #[inline]
6772 pub unsafe fn VirtualStore_raw(this: *const Self) -> ULONG {
6773 unsafe {
6774 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6775 ::core::ptr::addr_of!((*this)._bitfield_1),
6776 1usize,
6777 1u8,
6778 ) as u32)
6779 }
6780 }
6781 #[inline]
6782 pub unsafe fn set_VirtualStore_raw(this: *mut Self, val: ULONG) {
6783 unsafe {
6784 let val: u32 = ::core::mem::transmute(val);
6785 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
6786 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6787 1usize,
6788 1u8,
6789 val as u64,
6790 )
6791 }
6792 }
6793 #[inline]
6794 pub fn VirtualSource(&self) -> ULONG {
6795 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
6796 }
6797 #[inline]
6798 pub fn set_VirtualSource(&mut self, val: ULONG) {
6799 unsafe {
6800 let val: u32 = ::core::mem::transmute(val);
6801 self._bitfield_1.set(2usize, 1u8, val as u64)
6802 }
6803 }
6804 #[inline]
6805 pub unsafe fn VirtualSource_raw(this: *const Self) -> ULONG {
6806 unsafe {
6807 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6808 ::core::ptr::addr_of!((*this)._bitfield_1),
6809 2usize,
6810 1u8,
6811 ) as u32)
6812 }
6813 }
6814 #[inline]
6815 pub unsafe fn set_VirtualSource_raw(this: *mut Self, val: ULONG) {
6816 unsafe {
6817 let val: u32 = ::core::mem::transmute(val);
6818 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
6819 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6820 2usize,
6821 1u8,
6822 val as u64,
6823 )
6824 }
6825 }
6826 #[inline]
6827 pub fn Reserved(&self) -> ULONG {
6828 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
6829 }
6830 #[inline]
6831 pub fn set_Reserved(&mut self, val: ULONG) {
6832 unsafe {
6833 let val: u32 = ::core::mem::transmute(val);
6834 self._bitfield_1.set(3usize, 29u8, val as u64)
6835 }
6836 }
6837 #[inline]
6838 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
6839 unsafe {
6840 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6841 ::core::ptr::addr_of!((*this)._bitfield_1),
6842 3usize,
6843 29u8,
6844 ) as u32)
6845 }
6846 }
6847 #[inline]
6848 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
6849 unsafe {
6850 let val: u32 = ::core::mem::transmute(val);
6851 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
6852 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6853 3usize,
6854 29u8,
6855 val as u64,
6856 )
6857 }
6858 }
6859 #[inline]
6860 pub fn new_bitfield_1(
6861 VirtualTarget: ULONG,
6862 VirtualStore: ULONG,
6863 VirtualSource: ULONG,
6864 Reserved: ULONG,
6865 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
6866 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
6867 __bindgen_bitfield_unit.set(0usize, 1u8, {
6868 let VirtualTarget: u32 = unsafe { ::core::mem::transmute(VirtualTarget) };
6869 VirtualTarget as u64
6870 });
6871 __bindgen_bitfield_unit.set(1usize, 1u8, {
6872 let VirtualStore: u32 = unsafe { ::core::mem::transmute(VirtualStore) };
6873 VirtualStore as u64
6874 });
6875 __bindgen_bitfield_unit.set(2usize, 1u8, {
6876 let VirtualSource: u32 = unsafe { ::core::mem::transmute(VirtualSource) };
6877 VirtualSource as u64
6878 });
6879 __bindgen_bitfield_unit.set(3usize, 29u8, {
6880 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
6881 Reserved as u64
6882 });
6883 __bindgen_bitfield_unit
6884 }
6885}
6886pub type KEY_SET_VIRTUALIZATION_INFORMATION = _KEY_SET_VIRTUALIZATION_INFORMATION;
6887pub type PKEY_SET_VIRTUALIZATION_INFORMATION = *mut _KEY_SET_VIRTUALIZATION_INFORMATION;
6888pub const _KEY_SET_INFORMATION_CLASS_KeyWriteTimeInformation: _KEY_SET_INFORMATION_CLASS = 0;
6889pub const _KEY_SET_INFORMATION_CLASS_KeyWow64FlagsInformation: _KEY_SET_INFORMATION_CLASS = 1;
6890pub const _KEY_SET_INFORMATION_CLASS_KeyControlFlagsInformation: _KEY_SET_INFORMATION_CLASS = 2;
6891pub const _KEY_SET_INFORMATION_CLASS_KeySetVirtualizationInformation: _KEY_SET_INFORMATION_CLASS =
6892 3;
6893pub const _KEY_SET_INFORMATION_CLASS_KeySetDebugInformation: _KEY_SET_INFORMATION_CLASS = 4;
6894pub const _KEY_SET_INFORMATION_CLASS_KeySetHandleTagsInformation: _KEY_SET_INFORMATION_CLASS = 5;
6895pub const _KEY_SET_INFORMATION_CLASS_KeySetLayerInformation: _KEY_SET_INFORMATION_CLASS = 6;
6896pub const _KEY_SET_INFORMATION_CLASS_MaxKeySetInfoClass: _KEY_SET_INFORMATION_CLASS = 7;
6897pub type _KEY_SET_INFORMATION_CLASS = core::ffi::c_int;
6898pub use self::_KEY_SET_INFORMATION_CLASS as KEY_SET_INFORMATION_CLASS;
6899#[repr(C)]
6900#[derive(Debug, Copy, Clone)]
6901pub struct _KEY_VALUE_BASIC_INFORMATION {
6902 pub TitleIndex: ULONG,
6903 pub Type: ULONG,
6904 pub NameLength: ULONG,
6905 pub Name: [WCHAR; 1usize],
6906}
6907pub type KEY_VALUE_BASIC_INFORMATION = _KEY_VALUE_BASIC_INFORMATION;
6908pub type PKEY_VALUE_BASIC_INFORMATION = *mut _KEY_VALUE_BASIC_INFORMATION;
6909#[repr(C)]
6910#[derive(Debug, Copy, Clone)]
6911pub struct _KEY_VALUE_FULL_INFORMATION {
6912 pub TitleIndex: ULONG,
6913 pub Type: ULONG,
6914 pub DataOffset: ULONG,
6915 pub DataLength: ULONG,
6916 pub NameLength: ULONG,
6917 pub Name: [WCHAR; 1usize],
6918}
6919pub type KEY_VALUE_FULL_INFORMATION = _KEY_VALUE_FULL_INFORMATION;
6920pub type PKEY_VALUE_FULL_INFORMATION = *mut _KEY_VALUE_FULL_INFORMATION;
6921#[repr(C)]
6922#[derive(Debug, Copy, Clone)]
6923pub struct _KEY_VALUE_PARTIAL_INFORMATION {
6924 pub TitleIndex: ULONG,
6925 pub Type: ULONG,
6926 pub DataLength: ULONG,
6927 pub Data: [UCHAR; 1usize],
6928}
6929pub type KEY_VALUE_PARTIAL_INFORMATION = _KEY_VALUE_PARTIAL_INFORMATION;
6930pub type PKEY_VALUE_PARTIAL_INFORMATION = *mut _KEY_VALUE_PARTIAL_INFORMATION;
6931#[repr(C)]
6932#[derive(Debug, Copy, Clone)]
6933pub struct _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 {
6934 pub Type: ULONG,
6935 pub DataLength: ULONG,
6936 pub Data: [UCHAR; 1usize],
6937}
6938pub type KEY_VALUE_PARTIAL_INFORMATION_ALIGN64 = _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
6939pub type PKEY_VALUE_PARTIAL_INFORMATION_ALIGN64 = *mut _KEY_VALUE_PARTIAL_INFORMATION_ALIGN64;
6940#[repr(C)]
6941#[derive(Debug, Copy, Clone)]
6942pub struct _KEY_VALUE_LAYER_INFORMATION {
6943 pub _bitfield_align_1: [u32; 0],
6944 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
6945}
6946impl _KEY_VALUE_LAYER_INFORMATION {
6947 #[inline]
6948 pub fn IsTombstone(&self) -> ULONG {
6949 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
6950 }
6951 #[inline]
6952 pub fn set_IsTombstone(&mut self, val: ULONG) {
6953 unsafe {
6954 let val: u32 = ::core::mem::transmute(val);
6955 self._bitfield_1.set(0usize, 1u8, val as u64)
6956 }
6957 }
6958 #[inline]
6959 pub unsafe fn IsTombstone_raw(this: *const Self) -> ULONG {
6960 unsafe {
6961 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6962 ::core::ptr::addr_of!((*this)._bitfield_1),
6963 0usize,
6964 1u8,
6965 ) as u32)
6966 }
6967 }
6968 #[inline]
6969 pub unsafe fn set_IsTombstone_raw(this: *mut Self, val: ULONG) {
6970 unsafe {
6971 let val: u32 = ::core::mem::transmute(val);
6972 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
6973 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
6974 0usize,
6975 1u8,
6976 val as u64,
6977 )
6978 }
6979 }
6980 #[inline]
6981 pub fn Reserved(&self) -> ULONG {
6982 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
6983 }
6984 #[inline]
6985 pub fn set_Reserved(&mut self, val: ULONG) {
6986 unsafe {
6987 let val: u32 = ::core::mem::transmute(val);
6988 self._bitfield_1.set(1usize, 31u8, val as u64)
6989 }
6990 }
6991 #[inline]
6992 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
6993 unsafe {
6994 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
6995 ::core::ptr::addr_of!((*this)._bitfield_1),
6996 1usize,
6997 31u8,
6998 ) as u32)
6999 }
7000 }
7001 #[inline]
7002 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
7003 unsafe {
7004 let val: u32 = ::core::mem::transmute(val);
7005 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
7006 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7007 1usize,
7008 31u8,
7009 val as u64,
7010 )
7011 }
7012 }
7013 #[inline]
7014 pub fn new_bitfield_1(
7015 IsTombstone: ULONG,
7016 Reserved: ULONG,
7017 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
7018 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
7019 __bindgen_bitfield_unit.set(0usize, 1u8, {
7020 let IsTombstone: u32 = unsafe { ::core::mem::transmute(IsTombstone) };
7021 IsTombstone as u64
7022 });
7023 __bindgen_bitfield_unit.set(1usize, 31u8, {
7024 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
7025 Reserved as u64
7026 });
7027 __bindgen_bitfield_unit
7028 }
7029}
7030pub type KEY_VALUE_LAYER_INFORMATION = _KEY_VALUE_LAYER_INFORMATION;
7031pub type PKEY_VALUE_LAYER_INFORMATION = *mut _KEY_VALUE_LAYER_INFORMATION;
7032#[repr(C)]
7033#[derive(Debug, Copy, Clone)]
7034pub struct _KEY_VALUE_ENTRY {
7035 pub ValueName: PUNICODE_STRING,
7036 pub DataLength: ULONG,
7037 pub DataOffset: ULONG,
7038 pub Type: ULONG,
7039}
7040pub type KEY_VALUE_ENTRY = _KEY_VALUE_ENTRY;
7041pub type PKEY_VALUE_ENTRY = *mut _KEY_VALUE_ENTRY;
7042pub const _KEY_VALUE_INFORMATION_CLASS_KeyValueBasicInformation: _KEY_VALUE_INFORMATION_CLASS = 0;
7043pub const _KEY_VALUE_INFORMATION_CLASS_KeyValueFullInformation: _KEY_VALUE_INFORMATION_CLASS = 1;
7044pub const _KEY_VALUE_INFORMATION_CLASS_KeyValuePartialInformation: _KEY_VALUE_INFORMATION_CLASS = 2;
7045pub const _KEY_VALUE_INFORMATION_CLASS_KeyValueFullInformationAlign64:
7046_KEY_VALUE_INFORMATION_CLASS = 3;
7047pub const _KEY_VALUE_INFORMATION_CLASS_KeyValuePartialInformationAlign64:
7048_KEY_VALUE_INFORMATION_CLASS = 4;
7049pub const _KEY_VALUE_INFORMATION_CLASS_KeyValueLayerInformation: _KEY_VALUE_INFORMATION_CLASS = 5;
7050pub const _KEY_VALUE_INFORMATION_CLASS_MaxKeyValueInfoClass: _KEY_VALUE_INFORMATION_CLASS = 6;
7051pub type _KEY_VALUE_INFORMATION_CLASS = core::ffi::c_int;
7052pub use self::_KEY_VALUE_INFORMATION_CLASS as KEY_VALUE_INFORMATION_CLASS;
7053#[repr(C)]
7054#[derive(Debug, Copy, Clone)]
7055pub struct _KEY_TRUST_INFORMATION {
7056 pub _bitfield_align_1: [u32; 0],
7057 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
7058}
7059impl _KEY_TRUST_INFORMATION {
7060 #[inline]
7061 pub fn TrustedKey(&self) -> ULONG {
7062 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
7063 }
7064 #[inline]
7065 pub fn set_TrustedKey(&mut self, val: ULONG) {
7066 unsafe {
7067 let val: u32 = ::core::mem::transmute(val);
7068 self._bitfield_1.set(0usize, 1u8, val as u64)
7069 }
7070 }
7071 #[inline]
7072 pub unsafe fn TrustedKey_raw(this: *const Self) -> ULONG {
7073 unsafe {
7074 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
7075 ::core::ptr::addr_of!((*this)._bitfield_1),
7076 0usize,
7077 1u8,
7078 ) as u32)
7079 }
7080 }
7081 #[inline]
7082 pub unsafe fn set_TrustedKey_raw(this: *mut Self, val: ULONG) {
7083 unsafe {
7084 let val: u32 = ::core::mem::transmute(val);
7085 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
7086 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7087 0usize,
7088 1u8,
7089 val as u64,
7090 )
7091 }
7092 }
7093 #[inline]
7094 pub fn Reserved(&self) -> ULONG {
7095 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
7096 }
7097 #[inline]
7098 pub fn set_Reserved(&mut self, val: ULONG) {
7099 unsafe {
7100 let val: u32 = ::core::mem::transmute(val);
7101 self._bitfield_1.set(1usize, 31u8, val as u64)
7102 }
7103 }
7104 #[inline]
7105 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
7106 unsafe {
7107 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
7108 ::core::ptr::addr_of!((*this)._bitfield_1),
7109 1usize,
7110 31u8,
7111 ) as u32)
7112 }
7113 }
7114 #[inline]
7115 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
7116 unsafe {
7117 let val: u32 = ::core::mem::transmute(val);
7118 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
7119 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7120 1usize,
7121 31u8,
7122 val as u64,
7123 )
7124 }
7125 }
7126 #[inline]
7127 pub fn new_bitfield_1(
7128 TrustedKey: ULONG,
7129 Reserved: ULONG,
7130 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
7131 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
7132 __bindgen_bitfield_unit.set(0usize, 1u8, {
7133 let TrustedKey: u32 = unsafe { ::core::mem::transmute(TrustedKey) };
7134 TrustedKey as u64
7135 });
7136 __bindgen_bitfield_unit.set(1usize, 31u8, {
7137 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
7138 Reserved as u64
7139 });
7140 __bindgen_bitfield_unit
7141 }
7142}
7143pub type KEY_TRUST_INFORMATION = _KEY_TRUST_INFORMATION;
7144pub type PKEY_TRUST_INFORMATION = *mut _KEY_TRUST_INFORMATION;
7145#[repr(C)]
7146#[derive(Debug, Copy, Clone)]
7147pub struct _OBJECT_NAME_INFORMATION {
7148 pub Name: UNICODE_STRING,
7149}
7150pub type OBJECT_NAME_INFORMATION = _OBJECT_NAME_INFORMATION;
7151pub type POBJECT_NAME_INFORMATION = *mut _OBJECT_NAME_INFORMATION;
7152pub const _SECTION_INHERIT_ViewShare: _SECTION_INHERIT = 1;
7153pub const _SECTION_INHERIT_ViewUnmap: _SECTION_INHERIT = 2;
7154pub type _SECTION_INHERIT = core::ffi::c_int;
7155pub use self::_SECTION_INHERIT as SECTION_INHERIT;
7156#[repr(C)]
7157#[derive(Debug, Copy, Clone)]
7158pub struct _MEM_ADDRESS_REQUIREMENTS {
7159 pub LowestStartingAddress: PVOID,
7160 pub HighestEndingAddress: PVOID,
7161 pub Alignment: SIZE_T,
7162}
7163pub type MEM_ADDRESS_REQUIREMENTS = _MEM_ADDRESS_REQUIREMENTS;
7164pub type PMEM_ADDRESS_REQUIREMENTS = *mut _MEM_ADDRESS_REQUIREMENTS;
7165pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterInvalidType: MEM_EXTENDED_PARAMETER_TYPE =
7166 0;
7167pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterAddressRequirements:
7168MEM_EXTENDED_PARAMETER_TYPE = 1;
7169pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterNumaNode: MEM_EXTENDED_PARAMETER_TYPE = 2;
7170pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterPartitionHandle:
7171MEM_EXTENDED_PARAMETER_TYPE = 3;
7172pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterUserPhysicalHandle:
7173MEM_EXTENDED_PARAMETER_TYPE = 4;
7174pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterAttributeFlags:
7175MEM_EXTENDED_PARAMETER_TYPE = 5;
7176pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterImageMachine:
7177MEM_EXTENDED_PARAMETER_TYPE = 6;
7178pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterMax: MEM_EXTENDED_PARAMETER_TYPE = 7;
7179pub type MEM_EXTENDED_PARAMETER_TYPE = core::ffi::c_int;
7180pub type PMEM_EXTENDED_PARAMETER_TYPE = *mut MEM_EXTENDED_PARAMETER_TYPE;
7181#[repr(C)]
7182#[derive(Copy, Clone)]
7183pub struct MEM_EXTENDED_PARAMETER {
7184 pub __bindgen_anon_1: MEM_EXTENDED_PARAMETER__bindgen_ty_1,
7185 pub __bindgen_anon_2: MEM_EXTENDED_PARAMETER__bindgen_ty_2,
7186}
7187#[repr(C)]
7188#[derive(Debug, Copy, Clone)]
7189pub struct MEM_EXTENDED_PARAMETER__bindgen_ty_1 {
7190 pub _bitfield_align_1: [u64; 0],
7191 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
7192}
7193impl MEM_EXTENDED_PARAMETER__bindgen_ty_1 {
7194 #[inline]
7195 pub fn Type(&self) -> ULONG64 {
7196 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u64) }
7197 }
7198 #[inline]
7199 pub fn set_Type(&mut self, val: ULONG64) {
7200 unsafe {
7201 let val: u64 = ::core::mem::transmute(val);
7202 self._bitfield_1.set(0usize, 8u8, val as u64)
7203 }
7204 }
7205 #[inline]
7206 pub unsafe fn Type_raw(this: *const Self) -> ULONG64 {
7207 unsafe {
7208 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
7209 ::core::ptr::addr_of!((*this)._bitfield_1),
7210 0usize,
7211 8u8,
7212 ) as u64)
7213 }
7214 }
7215 #[inline]
7216 pub unsafe fn set_Type_raw(this: *mut Self, val: ULONG64) {
7217 unsafe {
7218 let val: u64 = ::core::mem::transmute(val);
7219 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
7220 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7221 0usize,
7222 8u8,
7223 val as u64,
7224 )
7225 }
7226 }
7227 #[inline]
7228 pub fn Reserved(&self) -> ULONG64 {
7229 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 56u8) as u64) }
7230 }
7231 #[inline]
7232 pub fn set_Reserved(&mut self, val: ULONG64) {
7233 unsafe {
7234 let val: u64 = ::core::mem::transmute(val);
7235 self._bitfield_1.set(8usize, 56u8, val as u64)
7236 }
7237 }
7238 #[inline]
7239 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG64 {
7240 unsafe {
7241 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
7242 ::core::ptr::addr_of!((*this)._bitfield_1),
7243 8usize,
7244 56u8,
7245 ) as u64)
7246 }
7247 }
7248 #[inline]
7249 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG64) {
7250 unsafe {
7251 let val: u64 = ::core::mem::transmute(val);
7252 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
7253 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
7254 8usize,
7255 56u8,
7256 val as u64,
7257 )
7258 }
7259 }
7260 #[inline]
7261 pub fn new_bitfield_1(Type: ULONG64, Reserved: ULONG64) -> __BindgenBitfieldUnit<[u8; 8usize]> {
7262 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
7263 __bindgen_bitfield_unit.set(0usize, 8u8, {
7264 let Type: u64 = unsafe { ::core::mem::transmute(Type) };
7265 Type as u64
7266 });
7267 __bindgen_bitfield_unit.set(8usize, 56u8, {
7268 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
7269 Reserved as u64
7270 });
7271 __bindgen_bitfield_unit
7272 }
7273}
7274#[repr(C)]
7275#[derive(Copy, Clone)]
7276pub union MEM_EXTENDED_PARAMETER__bindgen_ty_2 {
7277 pub ULong64: ULONG64,
7278 pub Pointer: PVOID,
7279 pub Size: SIZE_T,
7280 pub Handle: HANDLE,
7281 pub ULong: ULONG,
7282}
7283pub type PMEM_EXTENDED_PARAMETER = *mut MEM_EXTENDED_PARAMETER;
7284pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeReadBandwidth:
7285_MEM_DEDICATED_ATTRIBUTE_TYPE = 0;
7286pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeReadLatency:
7287_MEM_DEDICATED_ATTRIBUTE_TYPE = 1;
7288pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeWriteBandwidth:
7289_MEM_DEDICATED_ATTRIBUTE_TYPE = 2;
7290pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeWriteLatency:
7291_MEM_DEDICATED_ATTRIBUTE_TYPE = 3;
7292pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeMax: _MEM_DEDICATED_ATTRIBUTE_TYPE = 4;
7293pub type _MEM_DEDICATED_ATTRIBUTE_TYPE = core::ffi::c_int;
7294pub use self::_MEM_DEDICATED_ATTRIBUTE_TYPE as MEM_DEDICATED_ATTRIBUTE_TYPE;
7295pub type PMEM_DEDICATED_ATTRIBUTE_TYPE = *mut _MEM_DEDICATED_ATTRIBUTE_TYPE;
7296#[repr(C)]
7297#[derive(Debug, Copy, Clone)]
7298pub struct _MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION {
7299 pub DedicatedMemoryTypeId: ULONG64,
7300 pub HandleAttributes: ULONG,
7301 pub DesiredAccess: ACCESS_MASK,
7302 pub DedicatedMemoryPartitionHandle: HANDLE,
7303}
7304pub type MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION =
7305_MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION;
7306pub type PMEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION =
7307*mut _MEMORY_PARTITION_DEDICATED_MEMORY_OPEN_INFORMATION;
7308pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterInvalidType:
7309MEM_SECTION_EXTENDED_PARAMETER_TYPE = 0;
7310pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterUserPhysicalFlags:
7311MEM_SECTION_EXTENDED_PARAMETER_TYPE = 1;
7312pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterNumaNode:
7313MEM_SECTION_EXTENDED_PARAMETER_TYPE = 2;
7314pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterSigningLevel:
7315MEM_SECTION_EXTENDED_PARAMETER_TYPE = 3;
7316pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterMax:
7317MEM_SECTION_EXTENDED_PARAMETER_TYPE = 4;
7318pub type MEM_SECTION_EXTENDED_PARAMETER_TYPE = core::ffi::c_int;
7319pub type PMEM_SECTION_EXTENDED_PARAMETER_TYPE = *mut MEM_SECTION_EXTENDED_PARAMETER_TYPE;
7320#[repr(C)]
7321#[derive(Debug, Copy, Clone)]
7322pub struct _CLIENT_ID {
7323 pub UniqueProcess: HANDLE,
7324 pub UniqueThread: HANDLE,
7325}
7326pub type CLIENT_ID = _CLIENT_ID;
7327pub type PCLIENT_ID = *mut CLIENT_ID;
7328pub const _PARTITION_INFORMATION_CLASS_SystemMemoryPartitionInformation:
7329_PARTITION_INFORMATION_CLASS = 0;
7330pub const _PARTITION_INFORMATION_CLASS_SystemMemoryPartitionDedicatedMemoryInformation:
7331_PARTITION_INFORMATION_CLASS = 9;
7332pub const _PARTITION_INFORMATION_CLASS_SystemMemoryPartitionOpenDedicatedMemory:
7333_PARTITION_INFORMATION_CLASS = 10;
7334pub type _PARTITION_INFORMATION_CLASS = core::ffi::c_int;
7335pub use self::_PARTITION_INFORMATION_CLASS as PARTITION_INFORMATION_CLASS;
7336pub type PPARTITION_INFORMATION_CLASS = *mut _PARTITION_INFORMATION_CLASS;
7337unsafe extern "C" {
7338 pub fn NtManagePartition(
7339 TargetHandle: HANDLE,
7340 SourceHandle: HANDLE,
7341 PartitionInformationClass: PARTITION_INFORMATION_CLASS,
7342 PartitionInformation: PVOID,
7343 PartitionInformationLength: ULONG,
7344 ) -> NTSTATUS;
7345}
7346unsafe extern "C" {
7347 pub static GUID_MAX_POWER_SAVINGS: GUID;
7348}
7349unsafe extern "C" {
7350 pub static GUID_MIN_POWER_SAVINGS: GUID;
7351}
7352unsafe extern "C" {
7353 pub static GUID_TYPICAL_POWER_SAVINGS: GUID;
7354}
7355unsafe extern "C" {
7356 pub static NO_SUBGROUP_GUID: GUID;
7357}
7358unsafe extern "C" {
7359 pub static ALL_POWERSCHEMES_GUID: GUID;
7360}
7361unsafe extern "C" {
7362 pub static GUID_POWERSCHEME_PERSONALITY: GUID;
7363}
7364unsafe extern "C" {
7365 pub static GUID_ACTIVE_POWERSCHEME: GUID;
7366}
7367unsafe extern "C" {
7368 pub static GUID_IDLE_RESILIENCY_SUBGROUP: GUID;
7369}
7370unsafe extern "C" {
7371 pub static GUID_IDLE_RESILIENCY_PERIOD: GUID;
7372}
7373unsafe extern "C" {
7374 pub static GUID_DEEP_SLEEP_ENABLED: GUID;
7375}
7376unsafe extern "C" {
7377 pub static GUID_DEEP_SLEEP_PLATFORM_STATE: GUID;
7378}
7379unsafe extern "C" {
7380 pub static GUID_DISK_COALESCING_POWERDOWN_TIMEOUT: GUID;
7381}
7382unsafe extern "C" {
7383 pub static GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT: GUID;
7384}
7385unsafe extern "C" {
7386 pub static GUID_VIDEO_SUBGROUP: GUID;
7387}
7388unsafe extern "C" {
7389 pub static GUID_VIDEO_POWERDOWN_TIMEOUT: GUID;
7390}
7391unsafe extern "C" {
7392 pub static GUID_VIDEO_ANNOYANCE_TIMEOUT: GUID;
7393}
7394unsafe extern "C" {
7395 pub static GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE: GUID;
7396}
7397unsafe extern "C" {
7398 pub static GUID_VIDEO_DIM_TIMEOUT: GUID;
7399}
7400unsafe extern "C" {
7401 pub static GUID_VIDEO_ADAPTIVE_POWERDOWN: GUID;
7402}
7403unsafe extern "C" {
7404 pub static GUID_MONITOR_POWER_ON: GUID;
7405}
7406unsafe extern "C" {
7407 pub static GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS: GUID;
7408}
7409unsafe extern "C" {
7410 pub static GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS: GUID;
7411}
7412unsafe extern "C" {
7413 pub static GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS: GUID;
7414}
7415unsafe extern "C" {
7416 pub static GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS: GUID;
7417}
7418unsafe extern "C" {
7419 pub static GUID_CONSOLE_DISPLAY_STATE: GUID;
7420}
7421unsafe extern "C" {
7422 pub static GUID_ALLOW_DISPLAY_REQUIRED: GUID;
7423}
7424unsafe extern "C" {
7425 pub static GUID_VIDEO_CONSOLE_LOCK_TIMEOUT: GUID;
7426}
7427unsafe extern "C" {
7428 pub static GUID_ADVANCED_COLOR_QUALITY_BIAS: GUID;
7429}
7430unsafe extern "C" {
7431 pub static GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP: GUID;
7432}
7433unsafe extern "C" {
7434 pub static GUID_NON_ADAPTIVE_INPUT_TIMEOUT: GUID;
7435}
7436unsafe extern "C" {
7437 pub static GUID_ADAPTIVE_INPUT_CONTROLLER_STATE: GUID;
7438}
7439unsafe extern "C" {
7440 pub static GUID_DISK_SUBGROUP: GUID;
7441}
7442unsafe extern "C" {
7443 pub static GUID_DISK_MAX_POWER: GUID;
7444}
7445unsafe extern "C" {
7446 pub static GUID_DISK_POWERDOWN_TIMEOUT: GUID;
7447}
7448unsafe extern "C" {
7449 pub static GUID_DISK_IDLE_TIMEOUT: GUID;
7450}
7451unsafe extern "C" {
7452 pub static GUID_DISK_BURST_IGNORE_THRESHOLD: GUID;
7453}
7454unsafe extern "C" {
7455 pub static GUID_DISK_ADAPTIVE_POWERDOWN: GUID;
7456}
7457unsafe extern "C" {
7458 pub static GUID_DISK_NVME_NOPPME: GUID;
7459}
7460unsafe extern "C" {
7461 pub static GUID_SLEEP_SUBGROUP: GUID;
7462}
7463unsafe extern "C" {
7464 pub static GUID_SLEEP_IDLE_THRESHOLD: GUID;
7465}
7466unsafe extern "C" {
7467 pub static GUID_STANDBY_TIMEOUT: GUID;
7468}
7469unsafe extern "C" {
7470 pub static GUID_UNATTEND_SLEEP_TIMEOUT: GUID;
7471}
7472unsafe extern "C" {
7473 pub static GUID_HIBERNATE_TIMEOUT: GUID;
7474}
7475unsafe extern "C" {
7476 pub static GUID_HIBERNATE_FASTS4_POLICY: GUID;
7477}
7478unsafe extern "C" {
7479 pub static GUID_CRITICAL_POWER_TRANSITION: GUID;
7480}
7481unsafe extern "C" {
7482 pub static GUID_SYSTEM_AWAYMODE: GUID;
7483}
7484unsafe extern "C" {
7485 pub static GUID_ALLOW_AWAYMODE: GUID;
7486}
7487unsafe extern "C" {
7488 pub static GUID_USER_PRESENCE_PREDICTION: GUID;
7489}
7490unsafe extern "C" {
7491 pub static GUID_STANDBY_BUDGET_GRACE_PERIOD: GUID;
7492}
7493unsafe extern "C" {
7494 pub static GUID_STANDBY_BUDGET_PERCENT: GUID;
7495}
7496unsafe extern "C" {
7497 pub static GUID_STANDBY_RESERVE_GRACE_PERIOD: GUID;
7498}
7499unsafe extern "C" {
7500 pub static GUID_STANDBY_RESERVE_TIME: GUID;
7501}
7502unsafe extern "C" {
7503 pub static GUID_STANDBY_RESET_PERCENT: GUID;
7504}
7505unsafe extern "C" {
7506 pub static GUID_HUPR_ADAPTIVE_AWAY_DISPLAY_TIMEOUT: GUID;
7507}
7508unsafe extern "C" {
7509 pub static GUID_HUPR_ADAPTIVE_INATTENTIVE_DIM_TIMEOUT: GUID;
7510}
7511unsafe extern "C" {
7512 pub static GUID_HUPR_ADAPTIVE_INATTENTIVE_DISPLAY_TIMEOUT: GUID;
7513}
7514unsafe extern "C" {
7515 pub static GUID_HUPR_ADAPTIVE_AWAY_DIM_TIMEOUT: GUID;
7516}
7517unsafe extern "C" {
7518 pub static GUID_ALLOW_STANDBY_STATES: GUID;
7519}
7520unsafe extern "C" {
7521 pub static GUID_ALLOW_RTC_WAKE: GUID;
7522}
7523unsafe extern "C" {
7524 pub static GUID_LEGACY_RTC_MITIGATION: GUID;
7525}
7526unsafe extern "C" {
7527 pub static GUID_ALLOW_SYSTEM_REQUIRED: GUID;
7528}
7529unsafe extern "C" {
7530 pub static GUID_POWER_SAVING_STATUS: GUID;
7531}
7532unsafe extern "C" {
7533 pub static GUID_ENERGY_SAVER_SUBGROUP: GUID;
7534}
7535unsafe extern "C" {
7536 pub static GUID_ENERGY_SAVER_BATTERY_THRESHOLD: GUID;
7537}
7538unsafe extern "C" {
7539 pub static GUID_ENERGY_SAVER_BRIGHTNESS: GUID;
7540}
7541unsafe extern "C" {
7542 pub static GUID_ENERGY_SAVER_POLICY: GUID;
7543}
7544unsafe extern "C" {
7545 pub static GUID_SYSTEM_BUTTON_SUBGROUP: GUID;
7546}
7547unsafe extern "C" {
7548 pub static GUID_POWERBUTTON_ACTION: GUID;
7549}
7550unsafe extern "C" {
7551 pub static GUID_SLEEPBUTTON_ACTION: GUID;
7552}
7553unsafe extern "C" {
7554 pub static GUID_USERINTERFACEBUTTON_ACTION: GUID;
7555}
7556unsafe extern "C" {
7557 pub static GUID_LIDCLOSE_ACTION: GUID;
7558}
7559unsafe extern "C" {
7560 pub static GUID_LIDOPEN_POWERSTATE: GUID;
7561}
7562unsafe extern "C" {
7563 pub static GUID_BATTERY_SUBGROUP: GUID;
7564}
7565unsafe extern "C" {
7566 pub static GUID_BATTERY_DISCHARGE_ACTION_0: GUID;
7567}
7568unsafe extern "C" {
7569 pub static GUID_BATTERY_DISCHARGE_LEVEL_0: GUID;
7570}
7571unsafe extern "C" {
7572 pub static GUID_BATTERY_DISCHARGE_FLAGS_0: GUID;
7573}
7574unsafe extern "C" {
7575 pub static GUID_BATTERY_DISCHARGE_ACTION_1: GUID;
7576}
7577unsafe extern "C" {
7578 pub static GUID_BATTERY_DISCHARGE_LEVEL_1: GUID;
7579}
7580unsafe extern "C" {
7581 pub static GUID_BATTERY_DISCHARGE_FLAGS_1: GUID;
7582}
7583unsafe extern "C" {
7584 pub static GUID_BATTERY_DISCHARGE_ACTION_2: GUID;
7585}
7586unsafe extern "C" {
7587 pub static GUID_BATTERY_DISCHARGE_LEVEL_2: GUID;
7588}
7589unsafe extern "C" {
7590 pub static GUID_BATTERY_DISCHARGE_FLAGS_2: GUID;
7591}
7592unsafe extern "C" {
7593 pub static GUID_BATTERY_DISCHARGE_ACTION_3: GUID;
7594}
7595unsafe extern "C" {
7596 pub static GUID_BATTERY_DISCHARGE_LEVEL_3: GUID;
7597}
7598unsafe extern "C" {
7599 pub static GUID_BATTERY_DISCHARGE_FLAGS_3: GUID;
7600}
7601unsafe extern "C" {
7602 pub static GUID_PROCESSOR_SETTINGS_SUBGROUP: GUID;
7603}
7604unsafe extern "C" {
7605 pub static GUID_PROCESSOR_THROTTLE_POLICY: GUID;
7606}
7607unsafe extern "C" {
7608 pub static GUID_PROCESSOR_THROTTLE_MAXIMUM: GUID;
7609}
7610unsafe extern "C" {
7611 pub static GUID_PROCESSOR_THROTTLE_MAXIMUM_1: GUID;
7612}
7613unsafe extern "C" {
7614 pub static GUID_PROCESSOR_THROTTLE_MINIMUM: GUID;
7615}
7616unsafe extern "C" {
7617 pub static GUID_PROCESSOR_THROTTLE_MINIMUM_1: GUID;
7618}
7619unsafe extern "C" {
7620 pub static GUID_PROCESSOR_FREQUENCY_LIMIT: GUID;
7621}
7622unsafe extern "C" {
7623 pub static GUID_PROCESSOR_FREQUENCY_LIMIT_1: GUID;
7624}
7625unsafe extern "C" {
7626 pub static GUID_PROCESSOR_ALLOW_THROTTLING: GUID;
7627}
7628unsafe extern "C" {
7629 pub static GUID_PROCESSOR_IDLESTATE_POLICY: GUID;
7630}
7631unsafe extern "C" {
7632 pub static GUID_PROCESSOR_PERFSTATE_POLICY: GUID;
7633}
7634unsafe extern "C" {
7635 pub static GUID_PROCESSOR_PERF_INCREASE_THRESHOLD: GUID;
7636}
7637unsafe extern "C" {
7638 pub static GUID_PROCESSOR_PERF_INCREASE_THRESHOLD_1: GUID;
7639}
7640unsafe extern "C" {
7641 pub static GUID_PROCESSOR_PERF_DECREASE_THRESHOLD: GUID;
7642}
7643unsafe extern "C" {
7644 pub static GUID_PROCESSOR_PERF_DECREASE_THRESHOLD_1: GUID;
7645}
7646unsafe extern "C" {
7647 pub static GUID_PROCESSOR_PERF_INCREASE_POLICY: GUID;
7648}
7649unsafe extern "C" {
7650 pub static GUID_PROCESSOR_PERF_INCREASE_POLICY_1: GUID;
7651}
7652unsafe extern "C" {
7653 pub static GUID_PROCESSOR_PERF_DECREASE_POLICY: GUID;
7654}
7655unsafe extern "C" {
7656 pub static GUID_PROCESSOR_PERF_DECREASE_POLICY_1: GUID;
7657}
7658unsafe extern "C" {
7659 pub static GUID_PROCESSOR_PERF_INCREASE_TIME: GUID;
7660}
7661unsafe extern "C" {
7662 pub static GUID_PROCESSOR_PERF_INCREASE_TIME_1: GUID;
7663}
7664unsafe extern "C" {
7665 pub static GUID_PROCESSOR_PERF_DECREASE_TIME: GUID;
7666}
7667unsafe extern "C" {
7668 pub static GUID_PROCESSOR_PERF_DECREASE_TIME_1: GUID;
7669}
7670unsafe extern "C" {
7671 pub static GUID_PROCESSOR_PERF_TIME_CHECK: GUID;
7672}
7673unsafe extern "C" {
7674 pub static GUID_PROCESSOR_PERF_BOOST_POLICY: GUID;
7675}
7676unsafe extern "C" {
7677 pub static GUID_PROCESSOR_PERF_BOOST_MODE: GUID;
7678}
7679unsafe extern "C" {
7680 pub static GUID_PROCESSOR_PERF_AUTONOMOUS_MODE: GUID;
7681}
7682unsafe extern "C" {
7683 pub static GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE: GUID;
7684}
7685unsafe extern "C" {
7686 pub static GUID_PROCESSOR_PERF_ENERGY_PERFORMANCE_PREFERENCE_1: GUID;
7687}
7688unsafe extern "C" {
7689 pub static GUID_PROCESSOR_PERF_AUTONOMOUS_ACTIVITY_WINDOW: GUID;
7690}
7691unsafe extern "C" {
7692 pub static GUID_PROCESSOR_DUTY_CYCLING: GUID;
7693}
7694unsafe extern "C" {
7695 pub static GUID_PROCESSOR_IDLE_ALLOW_SCALING: GUID;
7696}
7697unsafe extern "C" {
7698 pub static GUID_PROCESSOR_IDLE_DISABLE: GUID;
7699}
7700unsafe extern "C" {
7701 pub static GUID_PROCESSOR_IDLE_STATE_MAXIMUM: GUID;
7702}
7703unsafe extern "C" {
7704 pub static GUID_PROCESSOR_IDLE_TIME_CHECK: GUID;
7705}
7706unsafe extern "C" {
7707 pub static GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD: GUID;
7708}
7709unsafe extern "C" {
7710 pub static GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD: GUID;
7711}
7712unsafe extern "C" {
7713 pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD: GUID;
7714}
7715unsafe extern "C" {
7716 pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD: GUID;
7717}
7718unsafe extern "C" {
7719 pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY: GUID;
7720}
7721unsafe extern "C" {
7722 pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY: GUID;
7723}
7724unsafe extern "C" {
7725 pub static GUID_PROCESSOR_CORE_PARKING_MAX_CORES: GUID;
7726}
7727unsafe extern "C" {
7728 pub static GUID_PROCESSOR_CORE_PARKING_MAX_CORES_1: GUID;
7729}
7730unsafe extern "C" {
7731 pub static GUID_PROCESSOR_CORE_PARKING_MIN_CORES: GUID;
7732}
7733unsafe extern "C" {
7734 pub static GUID_PROCESSOR_CORE_PARKING_MIN_CORES_1: GUID;
7735}
7736unsafe extern "C" {
7737 pub static GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME: GUID;
7738}
7739unsafe extern "C" {
7740 pub static GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME: GUID;
7741}
7742unsafe extern "C" {
7743 pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR: GUID;
7744}
7745unsafe extern "C" {
7746 pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD: GUID;
7747}
7748unsafe extern "C" {
7749 pub static GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING: GUID;
7750}
7751unsafe extern "C" {
7752 pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR: GUID;
7753}
7754unsafe extern "C" {
7755 pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD: GUID;
7756}
7757unsafe extern "C" {
7758 pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING: GUID;
7759}
7760unsafe extern "C" {
7761 pub static GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD: GUID;
7762}
7763unsafe extern "C" {
7764 pub static GUID_PROCESSOR_PARKING_CORE_OVERRIDE: GUID;
7765}
7766unsafe extern "C" {
7767 pub static GUID_PROCESSOR_PARKING_PERF_STATE: GUID;
7768}
7769unsafe extern "C" {
7770 pub static GUID_PROCESSOR_PARKING_PERF_STATE_1: GUID;
7771}
7772unsafe extern "C" {
7773 pub static GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD: GUID;
7774}
7775unsafe extern "C" {
7776 pub static GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD: GUID;
7777}
7778unsafe extern "C" {
7779 pub static GUID_PROCESSOR_PARKING_DISTRIBUTION_THRESHOLD: GUID;
7780}
7781unsafe extern "C" {
7782 pub static GUID_PROCESSOR_SOFT_PARKING_LATENCY: GUID;
7783}
7784unsafe extern "C" {
7785 pub static GUID_PROCESSOR_PERF_HISTORY: GUID;
7786}
7787unsafe extern "C" {
7788 pub static GUID_PROCESSOR_PERF_HISTORY_1: GUID;
7789}
7790unsafe extern "C" {
7791 pub static GUID_PROCESSOR_PERF_INCREASE_HISTORY: GUID;
7792}
7793unsafe extern "C" {
7794 pub static GUID_PROCESSOR_PERF_DECREASE_HISTORY: GUID;
7795}
7796unsafe extern "C" {
7797 pub static GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY: GUID;
7798}
7799unsafe extern "C" {
7800 pub static GUID_PROCESSOR_PERF_LATENCY_HINT: GUID;
7801}
7802unsafe extern "C" {
7803 pub static GUID_PROCESSOR_PERF_LATENCY_HINT_PERF: GUID;
7804}
7805unsafe extern "C" {
7806 pub static GUID_PROCESSOR_PERF_LATENCY_HINT_PERF_1: GUID;
7807}
7808unsafe extern "C" {
7809 pub static GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK: GUID;
7810}
7811unsafe extern "C" {
7812 pub static GUID_PROCESSOR_LATENCY_HINT_MIN_UNPARK_1: GUID;
7813}
7814unsafe extern "C" {
7815 pub static GUID_PROCESSOR_MODULE_PARKING_POLICY: GUID;
7816}
7817unsafe extern "C" {
7818 pub static GUID_PROCESSOR_COMPLEX_PARKING_POLICY: GUID;
7819}
7820unsafe extern "C" {
7821 pub static GUID_PROCESSOR_SMT_UNPARKING_POLICY: GUID;
7822}
7823unsafe extern "C" {
7824 pub static GUID_PROCESSOR_DISTRIBUTE_UTILITY: GUID;
7825}
7826unsafe extern "C" {
7827 pub static GUID_PROCESSOR_HETEROGENEOUS_POLICY: GUID;
7828}
7829unsafe extern "C" {
7830 pub static GUID_PROCESSOR_HETERO_DECREASE_TIME: GUID;
7831}
7832unsafe extern "C" {
7833 pub static GUID_PROCESSOR_HETERO_INCREASE_TIME: GUID;
7834}
7835unsafe extern "C" {
7836 pub static GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD: GUID;
7837}
7838unsafe extern "C" {
7839 pub static GUID_PROCESSOR_HETERO_DECREASE_THRESHOLD_1: GUID;
7840}
7841unsafe extern "C" {
7842 pub static GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD: GUID;
7843}
7844unsafe extern "C" {
7845 pub static GUID_PROCESSOR_HETERO_INCREASE_THRESHOLD_1: GUID;
7846}
7847unsafe extern "C" {
7848 pub static GUID_PROCESSOR_CLASS0_FLOOR_PERF: GUID;
7849}
7850unsafe extern "C" {
7851 pub static GUID_PROCESSOR_CLASS1_INITIAL_PERF: GUID;
7852}
7853unsafe extern "C" {
7854 pub static GUID_PROCESSOR_THREAD_SCHEDULING_POLICY: GUID;
7855}
7856unsafe extern "C" {
7857 pub static GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY: GUID;
7858}
7859unsafe extern "C" {
7860 pub static GUID_PROCESSOR_SHORT_THREAD_RUNTIME_THRESHOLD: GUID;
7861}
7862unsafe extern "C" {
7863 pub static GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_UPPER_THRESHOLD: GUID;
7864}
7865unsafe extern "C" {
7866 pub static GUID_PROCESSOR_SHORT_THREAD_ARCH_CLASS_LOWER_THRESHOLD: GUID;
7867}
7868unsafe extern "C" {
7869 pub static GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_UPPER_THRESHOLD: GUID;
7870}
7871unsafe extern "C" {
7872 pub static GUID_PROCESSOR_LONG_THREAD_ARCH_CLASS_LOWER_THRESHOLD: GUID;
7873}
7874unsafe extern "C" {
7875 pub static GUID_SYSTEM_COOLING_POLICY: GUID;
7876}
7877unsafe extern "C" {
7878 pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD: GUID;
7879}
7880unsafe extern "C" {
7881 pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_THRESHOLD_1: GUID;
7882}
7883unsafe extern "C" {
7884 pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD: GUID;
7885}
7886unsafe extern "C" {
7887 pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_THRESHOLD_1: GUID;
7888}
7889unsafe extern "C" {
7890 pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME: GUID;
7891}
7892unsafe extern "C" {
7893 pub static GUID_PROCESSOR_RESPONSIVENESS_DISABLE_TIME_1: GUID;
7894}
7895unsafe extern "C" {
7896 pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME: GUID;
7897}
7898unsafe extern "C" {
7899 pub static GUID_PROCESSOR_RESPONSIVENESS_ENABLE_TIME_1: GUID;
7900}
7901unsafe extern "C" {
7902 pub static GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING: GUID;
7903}
7904unsafe extern "C" {
7905 pub static GUID_PROCESSOR_RESPONSIVENESS_EPP_CEILING_1: GUID;
7906}
7907unsafe extern "C" {
7908 pub static GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR: GUID;
7909}
7910unsafe extern "C" {
7911 pub static GUID_PROCESSOR_RESPONSIVENESS_PERF_FLOOR_1: GUID;
7912}
7913unsafe extern "C" {
7914 pub static GUID_LOCK_CONSOLE_ON_WAKE: GUID;
7915}
7916unsafe extern "C" {
7917 pub static GUID_DEVICE_IDLE_POLICY: GUID;
7918}
7919unsafe extern "C" {
7920 pub static GUID_CONNECTIVITY_IN_STANDBY: GUID;
7921}
7922unsafe extern "C" {
7923 pub static GUID_DISCONNECTED_STANDBY_MODE: GUID;
7924}
7925unsafe extern "C" {
7926 pub static GUID_ACDC_POWER_SOURCE: GUID;
7927}
7928unsafe extern "C" {
7929 pub static GUID_LIDSWITCH_STATE_CHANGE: GUID;
7930}
7931unsafe extern "C" {
7932 pub static GUID_LIDSWITCH_STATE_RELIABILITY: GUID;
7933}
7934unsafe extern "C" {
7935 pub static GUID_BATTERY_PERCENTAGE_REMAINING: GUID;
7936}
7937unsafe extern "C" {
7938 pub static GUID_BATTERY_COUNT: GUID;
7939}
7940unsafe extern "C" {
7941 pub static GUID_GLOBAL_USER_PRESENCE: GUID;
7942}
7943unsafe extern "C" {
7944 pub static GUID_SESSION_DISPLAY_STATUS: GUID;
7945}
7946unsafe extern "C" {
7947 pub static GUID_SESSION_USER_PRESENCE: GUID;
7948}
7949unsafe extern "C" {
7950 pub static GUID_IDLE_BACKGROUND_TASK: GUID;
7951}
7952unsafe extern "C" {
7953 pub static GUID_BACKGROUND_TASK_NOTIFICATION: GUID;
7954}
7955unsafe extern "C" {
7956 pub static GUID_APPLAUNCH_BUTTON: GUID;
7957}
7958unsafe extern "C" {
7959 pub static GUID_PCIEXPRESS_SETTINGS_SUBGROUP: GUID;
7960}
7961unsafe extern "C" {
7962 pub static GUID_PCIEXPRESS_ASPM_POLICY: GUID;
7963}
7964unsafe extern "C" {
7965 pub static GUID_ENABLE_SWITCH_FORCED_SHUTDOWN: GUID;
7966}
7967unsafe extern "C" {
7968 pub static GUID_INTSTEER_SUBGROUP: GUID;
7969}
7970unsafe extern "C" {
7971 pub static GUID_INTSTEER_MODE: GUID;
7972}
7973unsafe extern "C" {
7974 pub static GUID_INTSTEER_LOAD_PER_PROC_TRIGGER: GUID;
7975}
7976unsafe extern "C" {
7977 pub static GUID_INTSTEER_TIME_UNPARK_TRIGGER: GUID;
7978}
7979unsafe extern "C" {
7980 pub static GUID_GRAPHICS_SUBGROUP: GUID;
7981}
7982unsafe extern "C" {
7983 pub static GUID_GPU_PREFERENCE_POLICY: GUID;
7984}
7985unsafe extern "C" {
7986 pub static GUID_MIXED_REALITY_MODE: GUID;
7987}
7988unsafe extern "C" {
7989 pub static GUID_SPR_ACTIVE_SESSION_CHANGE: GUID;
7990}
7991pub const _SYSTEM_POWER_STATE_PowerSystemUnspecified: _SYSTEM_POWER_STATE = 0;
7992pub const _SYSTEM_POWER_STATE_PowerSystemWorking: _SYSTEM_POWER_STATE = 1;
7993pub const _SYSTEM_POWER_STATE_PowerSystemSleeping1: _SYSTEM_POWER_STATE = 2;
7994pub const _SYSTEM_POWER_STATE_PowerSystemSleeping2: _SYSTEM_POWER_STATE = 3;
7995pub const _SYSTEM_POWER_STATE_PowerSystemSleeping3: _SYSTEM_POWER_STATE = 4;
7996pub const _SYSTEM_POWER_STATE_PowerSystemHibernate: _SYSTEM_POWER_STATE = 5;
7997pub const _SYSTEM_POWER_STATE_PowerSystemShutdown: _SYSTEM_POWER_STATE = 6;
7998pub const _SYSTEM_POWER_STATE_PowerSystemMaximum: _SYSTEM_POWER_STATE = 7;
7999pub type _SYSTEM_POWER_STATE = core::ffi::c_int;
8000pub use self::_SYSTEM_POWER_STATE as SYSTEM_POWER_STATE;
8001pub type PSYSTEM_POWER_STATE = *mut _SYSTEM_POWER_STATE;
8002pub const POWER_ACTION_PowerActionNone: POWER_ACTION = 0;
8003pub const POWER_ACTION_PowerActionReserved: POWER_ACTION = 1;
8004pub const POWER_ACTION_PowerActionSleep: POWER_ACTION = 2;
8005pub const POWER_ACTION_PowerActionHibernate: POWER_ACTION = 3;
8006pub const POWER_ACTION_PowerActionShutdown: POWER_ACTION = 4;
8007pub const POWER_ACTION_PowerActionShutdownReset: POWER_ACTION = 5;
8008pub const POWER_ACTION_PowerActionShutdownOff: POWER_ACTION = 6;
8009pub const POWER_ACTION_PowerActionWarmEject: POWER_ACTION = 7;
8010pub const POWER_ACTION_PowerActionDisplayOff: POWER_ACTION = 8;
8011pub type POWER_ACTION = core::ffi::c_int;
8012pub type PPOWER_ACTION = *mut POWER_ACTION;
8013pub const _DEVICE_POWER_STATE_PowerDeviceUnspecified: _DEVICE_POWER_STATE = 0;
8014pub const _DEVICE_POWER_STATE_PowerDeviceD0: _DEVICE_POWER_STATE = 1;
8015pub const _DEVICE_POWER_STATE_PowerDeviceD1: _DEVICE_POWER_STATE = 2;
8016pub const _DEVICE_POWER_STATE_PowerDeviceD2: _DEVICE_POWER_STATE = 3;
8017pub const _DEVICE_POWER_STATE_PowerDeviceD3: _DEVICE_POWER_STATE = 4;
8018pub const _DEVICE_POWER_STATE_PowerDeviceMaximum: _DEVICE_POWER_STATE = 5;
8019pub type _DEVICE_POWER_STATE = core::ffi::c_int;
8020pub use self::_DEVICE_POWER_STATE as DEVICE_POWER_STATE;
8021pub type PDEVICE_POWER_STATE = *mut _DEVICE_POWER_STATE;
8022pub const _MONITOR_DISPLAY_STATE_PowerMonitorOff: _MONITOR_DISPLAY_STATE = 0;
8023pub const _MONITOR_DISPLAY_STATE_PowerMonitorOn: _MONITOR_DISPLAY_STATE = 1;
8024pub const _MONITOR_DISPLAY_STATE_PowerMonitorDim: _MONITOR_DISPLAY_STATE = 2;
8025pub type _MONITOR_DISPLAY_STATE = core::ffi::c_int;
8026pub use self::_MONITOR_DISPLAY_STATE as MONITOR_DISPLAY_STATE;
8027pub type PMONITOR_DISPLAY_STATE = *mut _MONITOR_DISPLAY_STATE;
8028pub const _USER_ACTIVITY_PRESENCE_PowerUserPresent: _USER_ACTIVITY_PRESENCE = 0;
8029pub const _USER_ACTIVITY_PRESENCE_PowerUserNotPresent: _USER_ACTIVITY_PRESENCE = 1;
8030pub const _USER_ACTIVITY_PRESENCE_PowerUserInactive: _USER_ACTIVITY_PRESENCE = 2;
8031pub const _USER_ACTIVITY_PRESENCE_PowerUserMaximum: _USER_ACTIVITY_PRESENCE = 3;
8032pub const _USER_ACTIVITY_PRESENCE_PowerUserInvalid: _USER_ACTIVITY_PRESENCE = 3;
8033pub type _USER_ACTIVITY_PRESENCE = core::ffi::c_int;
8034pub use self::_USER_ACTIVITY_PRESENCE as USER_ACTIVITY_PRESENCE;
8035pub type PUSER_ACTIVITY_PRESENCE = *mut _USER_ACTIVITY_PRESENCE;
8036#[repr(C)]
8037#[derive(Copy, Clone)]
8038pub union _POWER_STATE {
8039 pub SystemState: SYSTEM_POWER_STATE,
8040 pub DeviceState: DEVICE_POWER_STATE,
8041}
8042pub type POWER_STATE = _POWER_STATE;
8043pub type PPOWER_STATE = *mut _POWER_STATE;
8044pub const _POWER_STATE_TYPE_SystemPowerState: _POWER_STATE_TYPE = 0;
8045pub const _POWER_STATE_TYPE_DevicePowerState: _POWER_STATE_TYPE = 1;
8046pub type _POWER_STATE_TYPE = core::ffi::c_int;
8047pub use self::_POWER_STATE_TYPE as POWER_STATE_TYPE;
8048pub type PPOWER_STATE_TYPE = *mut _POWER_STATE_TYPE;
8049#[repr(C)]
8050#[derive(Copy, Clone)]
8051pub struct _SYSTEM_POWER_STATE_CONTEXT {
8052 pub __bindgen_anon_1: _SYSTEM_POWER_STATE_CONTEXT__bindgen_ty_1,
8053}
8054#[repr(C)]
8055#[derive(Copy, Clone)]
8056pub union _SYSTEM_POWER_STATE_CONTEXT__bindgen_ty_1 {
8057 pub __bindgen_anon_1: _SYSTEM_POWER_STATE_CONTEXT__bindgen_ty_1__bindgen_ty_1,
8058 pub ContextAsUlong: ULONG,
8059}
8060#[repr(C)]
8061#[repr(align(4))]
8062#[derive(Debug, Copy, Clone)]
8063pub struct _SYSTEM_POWER_STATE_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
8064 pub _bitfield_align_1: [u8; 0],
8065 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
8066}
8067impl _SYSTEM_POWER_STATE_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
8068 #[inline]
8069 pub fn Reserved1(&self) -> ULONG {
8070 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
8071 }
8072 #[inline]
8073 pub fn set_Reserved1(&mut self, val: ULONG) {
8074 unsafe {
8075 let val: u32 = ::core::mem::transmute(val);
8076 self._bitfield_1.set(0usize, 8u8, val as u64)
8077 }
8078 }
8079 #[inline]
8080 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
8081 unsafe {
8082 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8083 ::core::ptr::addr_of!((*this)._bitfield_1),
8084 0usize,
8085 8u8,
8086 ) as u32)
8087 }
8088 }
8089 #[inline]
8090 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
8091 unsafe {
8092 let val: u32 = ::core::mem::transmute(val);
8093 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8094 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8095 0usize,
8096 8u8,
8097 val as u64,
8098 )
8099 }
8100 }
8101 #[inline]
8102 pub fn TargetSystemState(&self) -> ULONG {
8103 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 4u8) as u32) }
8104 }
8105 #[inline]
8106 pub fn set_TargetSystemState(&mut self, val: ULONG) {
8107 unsafe {
8108 let val: u32 = ::core::mem::transmute(val);
8109 self._bitfield_1.set(8usize, 4u8, val as u64)
8110 }
8111 }
8112 #[inline]
8113 pub unsafe fn TargetSystemState_raw(this: *const Self) -> ULONG {
8114 unsafe {
8115 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8116 ::core::ptr::addr_of!((*this)._bitfield_1),
8117 8usize,
8118 4u8,
8119 ) as u32)
8120 }
8121 }
8122 #[inline]
8123 pub unsafe fn set_TargetSystemState_raw(this: *mut Self, val: ULONG) {
8124 unsafe {
8125 let val: u32 = ::core::mem::transmute(val);
8126 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8127 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8128 8usize,
8129 4u8,
8130 val as u64,
8131 )
8132 }
8133 }
8134 #[inline]
8135 pub fn EffectiveSystemState(&self) -> ULONG {
8136 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 4u8) as u32) }
8137 }
8138 #[inline]
8139 pub fn set_EffectiveSystemState(&mut self, val: ULONG) {
8140 unsafe {
8141 let val: u32 = ::core::mem::transmute(val);
8142 self._bitfield_1.set(12usize, 4u8, val as u64)
8143 }
8144 }
8145 #[inline]
8146 pub unsafe fn EffectiveSystemState_raw(this: *const Self) -> ULONG {
8147 unsafe {
8148 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8149 ::core::ptr::addr_of!((*this)._bitfield_1),
8150 12usize,
8151 4u8,
8152 ) as u32)
8153 }
8154 }
8155 #[inline]
8156 pub unsafe fn set_EffectiveSystemState_raw(this: *mut Self, val: ULONG) {
8157 unsafe {
8158 let val: u32 = ::core::mem::transmute(val);
8159 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8160 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8161 12usize,
8162 4u8,
8163 val as u64,
8164 )
8165 }
8166 }
8167 #[inline]
8168 pub fn CurrentSystemState(&self) -> ULONG {
8169 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 4u8) as u32) }
8170 }
8171 #[inline]
8172 pub fn set_CurrentSystemState(&mut self, val: ULONG) {
8173 unsafe {
8174 let val: u32 = ::core::mem::transmute(val);
8175 self._bitfield_1.set(16usize, 4u8, val as u64)
8176 }
8177 }
8178 #[inline]
8179 pub unsafe fn CurrentSystemState_raw(this: *const Self) -> ULONG {
8180 unsafe {
8181 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8182 ::core::ptr::addr_of!((*this)._bitfield_1),
8183 16usize,
8184 4u8,
8185 ) as u32)
8186 }
8187 }
8188 #[inline]
8189 pub unsafe fn set_CurrentSystemState_raw(this: *mut Self, val: ULONG) {
8190 unsafe {
8191 let val: u32 = ::core::mem::transmute(val);
8192 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8193 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8194 16usize,
8195 4u8,
8196 val as u64,
8197 )
8198 }
8199 }
8200 #[inline]
8201 pub fn IgnoreHibernationPath(&self) -> ULONG {
8202 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
8203 }
8204 #[inline]
8205 pub fn set_IgnoreHibernationPath(&mut self, val: ULONG) {
8206 unsafe {
8207 let val: u32 = ::core::mem::transmute(val);
8208 self._bitfield_1.set(20usize, 1u8, val as u64)
8209 }
8210 }
8211 #[inline]
8212 pub unsafe fn IgnoreHibernationPath_raw(this: *const Self) -> ULONG {
8213 unsafe {
8214 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8215 ::core::ptr::addr_of!((*this)._bitfield_1),
8216 20usize,
8217 1u8,
8218 ) as u32)
8219 }
8220 }
8221 #[inline]
8222 pub unsafe fn set_IgnoreHibernationPath_raw(this: *mut Self, val: ULONG) {
8223 unsafe {
8224 let val: u32 = ::core::mem::transmute(val);
8225 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8226 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8227 20usize,
8228 1u8,
8229 val as u64,
8230 )
8231 }
8232 }
8233 #[inline]
8234 pub fn PseudoTransition(&self) -> ULONG {
8235 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
8236 }
8237 #[inline]
8238 pub fn set_PseudoTransition(&mut self, val: ULONG) {
8239 unsafe {
8240 let val: u32 = ::core::mem::transmute(val);
8241 self._bitfield_1.set(21usize, 1u8, val as u64)
8242 }
8243 }
8244 #[inline]
8245 pub unsafe fn PseudoTransition_raw(this: *const Self) -> ULONG {
8246 unsafe {
8247 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8248 ::core::ptr::addr_of!((*this)._bitfield_1),
8249 21usize,
8250 1u8,
8251 ) as u32)
8252 }
8253 }
8254 #[inline]
8255 pub unsafe fn set_PseudoTransition_raw(this: *mut Self, val: ULONG) {
8256 unsafe {
8257 let val: u32 = ::core::mem::transmute(val);
8258 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8259 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8260 21usize,
8261 1u8,
8262 val as u64,
8263 )
8264 }
8265 }
8266 #[inline]
8267 pub fn KernelSoftReboot(&self) -> ULONG {
8268 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
8269 }
8270 #[inline]
8271 pub fn set_KernelSoftReboot(&mut self, val: ULONG) {
8272 unsafe {
8273 let val: u32 = ::core::mem::transmute(val);
8274 self._bitfield_1.set(22usize, 1u8, val as u64)
8275 }
8276 }
8277 #[inline]
8278 pub unsafe fn KernelSoftReboot_raw(this: *const Self) -> ULONG {
8279 unsafe {
8280 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8281 ::core::ptr::addr_of!((*this)._bitfield_1),
8282 22usize,
8283 1u8,
8284 ) as u32)
8285 }
8286 }
8287 #[inline]
8288 pub unsafe fn set_KernelSoftReboot_raw(this: *mut Self, val: ULONG) {
8289 unsafe {
8290 let val: u32 = ::core::mem::transmute(val);
8291 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8292 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8293 22usize,
8294 1u8,
8295 val as u64,
8296 )
8297 }
8298 }
8299 #[inline]
8300 pub fn DirectedDripsTransition(&self) -> ULONG {
8301 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
8302 }
8303 #[inline]
8304 pub fn set_DirectedDripsTransition(&mut self, val: ULONG) {
8305 unsafe {
8306 let val: u32 = ::core::mem::transmute(val);
8307 self._bitfield_1.set(23usize, 1u8, val as u64)
8308 }
8309 }
8310 #[inline]
8311 pub unsafe fn DirectedDripsTransition_raw(this: *const Self) -> ULONG {
8312 unsafe {
8313 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8314 ::core::ptr::addr_of!((*this)._bitfield_1),
8315 23usize,
8316 1u8,
8317 ) as u32)
8318 }
8319 }
8320 #[inline]
8321 pub unsafe fn set_DirectedDripsTransition_raw(this: *mut Self, val: ULONG) {
8322 unsafe {
8323 let val: u32 = ::core::mem::transmute(val);
8324 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8325 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8326 23usize,
8327 1u8,
8328 val as u64,
8329 )
8330 }
8331 }
8332 #[inline]
8333 pub fn Reserved2(&self) -> ULONG {
8334 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
8335 }
8336 #[inline]
8337 pub fn set_Reserved2(&mut self, val: ULONG) {
8338 unsafe {
8339 let val: u32 = ::core::mem::transmute(val);
8340 self._bitfield_1.set(24usize, 8u8, val as u64)
8341 }
8342 }
8343 #[inline]
8344 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
8345 unsafe {
8346 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
8347 ::core::ptr::addr_of!((*this)._bitfield_1),
8348 24usize,
8349 8u8,
8350 ) as u32)
8351 }
8352 }
8353 #[inline]
8354 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
8355 unsafe {
8356 let val: u32 = ::core::mem::transmute(val);
8357 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
8358 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
8359 24usize,
8360 8u8,
8361 val as u64,
8362 )
8363 }
8364 }
8365 #[inline]
8366 pub fn new_bitfield_1(
8367 Reserved1: ULONG,
8368 TargetSystemState: ULONG,
8369 EffectiveSystemState: ULONG,
8370 CurrentSystemState: ULONG,
8371 IgnoreHibernationPath: ULONG,
8372 PseudoTransition: ULONG,
8373 KernelSoftReboot: ULONG,
8374 DirectedDripsTransition: ULONG,
8375 Reserved2: ULONG,
8376 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
8377 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
8378 __bindgen_bitfield_unit.set(0usize, 8u8, {
8379 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
8380 Reserved1 as u64
8381 });
8382 __bindgen_bitfield_unit.set(8usize, 4u8, {
8383 let TargetSystemState: u32 = unsafe { ::core::mem::transmute(TargetSystemState) };
8384 TargetSystemState as u64
8385 });
8386 __bindgen_bitfield_unit.set(12usize, 4u8, {
8387 let EffectiveSystemState: u32 = unsafe { ::core::mem::transmute(EffectiveSystemState) };
8388 EffectiveSystemState as u64
8389 });
8390 __bindgen_bitfield_unit.set(16usize, 4u8, {
8391 let CurrentSystemState: u32 = unsafe { ::core::mem::transmute(CurrentSystemState) };
8392 CurrentSystemState as u64
8393 });
8394 __bindgen_bitfield_unit.set(20usize, 1u8, {
8395 let IgnoreHibernationPath: u32 =
8396 unsafe { ::core::mem::transmute(IgnoreHibernationPath) };
8397 IgnoreHibernationPath as u64
8398 });
8399 __bindgen_bitfield_unit.set(21usize, 1u8, {
8400 let PseudoTransition: u32 = unsafe { ::core::mem::transmute(PseudoTransition) };
8401 PseudoTransition as u64
8402 });
8403 __bindgen_bitfield_unit.set(22usize, 1u8, {
8404 let KernelSoftReboot: u32 = unsafe { ::core::mem::transmute(KernelSoftReboot) };
8405 KernelSoftReboot as u64
8406 });
8407 __bindgen_bitfield_unit.set(23usize, 1u8, {
8408 let DirectedDripsTransition: u32 =
8409 unsafe { ::core::mem::transmute(DirectedDripsTransition) };
8410 DirectedDripsTransition as u64
8411 });
8412 __bindgen_bitfield_unit.set(24usize, 8u8, {
8413 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
8414 Reserved2 as u64
8415 });
8416 __bindgen_bitfield_unit
8417 }
8418}
8419pub type SYSTEM_POWER_STATE_CONTEXT = _SYSTEM_POWER_STATE_CONTEXT;
8420pub type PSYSTEM_POWER_STATE_CONTEXT = *mut _SYSTEM_POWER_STATE_CONTEXT;
8421#[repr(C)]
8422#[derive(Copy, Clone)]
8423pub struct _COUNTED_REASON_CONTEXT {
8424 pub Version: ULONG,
8425 pub Flags: ULONG,
8426 pub __bindgen_anon_1: _COUNTED_REASON_CONTEXT__bindgen_ty_1,
8427}
8428#[repr(C)]
8429#[derive(Copy, Clone)]
8430pub union _COUNTED_REASON_CONTEXT__bindgen_ty_1 {
8431 pub __bindgen_anon_1: _COUNTED_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1,
8432 pub SimpleString: UNICODE_STRING,
8433}
8434#[repr(C)]
8435#[derive(Debug, Copy, Clone)]
8436pub struct _COUNTED_REASON_CONTEXT__bindgen_ty_1__bindgen_ty_1 {
8437 pub ResourceFileName: UNICODE_STRING,
8438 pub ResourceReasonId: USHORT,
8439 pub StringCount: ULONG,
8440 pub ReasonStrings: PUNICODE_STRING,
8441}
8442pub type COUNTED_REASON_CONTEXT = _COUNTED_REASON_CONTEXT;
8443pub type PCOUNTED_REASON_CONTEXT = *mut _COUNTED_REASON_CONTEXT;
8444pub type EXECUTION_STATE = ULONG;
8445pub type PEXECUTION_STATE = *mut ULONG;
8446pub const LATENCY_TIME_LT_DONT_CARE: LATENCY_TIME = 0;
8447pub const LATENCY_TIME_LT_LOWEST_LATENCY: LATENCY_TIME = 1;
8448pub type LATENCY_TIME = core::ffi::c_int;
8449pub const _POWER_REQUEST_TYPE_PowerRequestDisplayRequired: _POWER_REQUEST_TYPE = 0;
8450pub const _POWER_REQUEST_TYPE_PowerRequestSystemRequired: _POWER_REQUEST_TYPE = 1;
8451pub const _POWER_REQUEST_TYPE_PowerRequestAwayModeRequired: _POWER_REQUEST_TYPE = 2;
8452pub const _POWER_REQUEST_TYPE_PowerRequestExecutionRequired: _POWER_REQUEST_TYPE = 3;
8453pub type _POWER_REQUEST_TYPE = core::ffi::c_int;
8454pub use self::_POWER_REQUEST_TYPE as POWER_REQUEST_TYPE;
8455pub type PPOWER_REQUEST_TYPE = *mut _POWER_REQUEST_TYPE;
8456#[repr(C)]
8457#[derive(Debug, Copy, Clone)]
8458pub struct CM_Power_Data_s {
8459 pub PD_Size: ULONG,
8460 pub PD_MostRecentPowerState: DEVICE_POWER_STATE,
8461 pub PD_Capabilities: ULONG,
8462 pub PD_D1Latency: ULONG,
8463 pub PD_D2Latency: ULONG,
8464 pub PD_D3Latency: ULONG,
8465 pub PD_PowerStateMapping: [DEVICE_POWER_STATE; 7usize],
8466 pub PD_DeepestSystemWake: SYSTEM_POWER_STATE,
8467}
8468pub type CM_POWER_DATA = CM_Power_Data_s;
8469pub type PCM_POWER_DATA = *mut CM_Power_Data_s;
8470pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyAc: POWER_INFORMATION_LEVEL = 0;
8471pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyDc: POWER_INFORMATION_LEVEL = 1;
8472pub const POWER_INFORMATION_LEVEL_VerifySystemPolicyAc: POWER_INFORMATION_LEVEL = 2;
8473pub const POWER_INFORMATION_LEVEL_VerifySystemPolicyDc: POWER_INFORMATION_LEVEL = 3;
8474pub const POWER_INFORMATION_LEVEL_SystemPowerCapabilities: POWER_INFORMATION_LEVEL = 4;
8475pub const POWER_INFORMATION_LEVEL_SystemBatteryState: POWER_INFORMATION_LEVEL = 5;
8476pub const POWER_INFORMATION_LEVEL_SystemPowerStateHandler: POWER_INFORMATION_LEVEL = 6;
8477pub const POWER_INFORMATION_LEVEL_ProcessorStateHandler: POWER_INFORMATION_LEVEL = 7;
8478pub const POWER_INFORMATION_LEVEL_SystemPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 8;
8479pub const POWER_INFORMATION_LEVEL_AdministratorPowerPolicy: POWER_INFORMATION_LEVEL = 9;
8480pub const POWER_INFORMATION_LEVEL_SystemReserveHiberFile: POWER_INFORMATION_LEVEL = 10;
8481pub const POWER_INFORMATION_LEVEL_ProcessorInformation: POWER_INFORMATION_LEVEL = 11;
8482pub const POWER_INFORMATION_LEVEL_SystemPowerInformation: POWER_INFORMATION_LEVEL = 12;
8483pub const POWER_INFORMATION_LEVEL_ProcessorStateHandler2: POWER_INFORMATION_LEVEL = 13;
8484pub const POWER_INFORMATION_LEVEL_LastWakeTime: POWER_INFORMATION_LEVEL = 14;
8485pub const POWER_INFORMATION_LEVEL_LastSleepTime: POWER_INFORMATION_LEVEL = 15;
8486pub const POWER_INFORMATION_LEVEL_SystemExecutionState: POWER_INFORMATION_LEVEL = 16;
8487pub const POWER_INFORMATION_LEVEL_SystemPowerStateNotifyHandler: POWER_INFORMATION_LEVEL = 17;
8488pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 18;
8489pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 19;
8490pub const POWER_INFORMATION_LEVEL_VerifyProcessorPowerPolicyAc: POWER_INFORMATION_LEVEL = 20;
8491pub const POWER_INFORMATION_LEVEL_VerifyProcessorPowerPolicyDc: POWER_INFORMATION_LEVEL = 21;
8492pub const POWER_INFORMATION_LEVEL_ProcessorPowerPolicyCurrent: POWER_INFORMATION_LEVEL = 22;
8493pub const POWER_INFORMATION_LEVEL_SystemPowerStateLogging: POWER_INFORMATION_LEVEL = 23;
8494pub const POWER_INFORMATION_LEVEL_SystemPowerLoggingEntry: POWER_INFORMATION_LEVEL = 24;
8495pub const POWER_INFORMATION_LEVEL_SetPowerSettingValue: POWER_INFORMATION_LEVEL = 25;
8496pub const POWER_INFORMATION_LEVEL_NotifyUserPowerSetting: POWER_INFORMATION_LEVEL = 26;
8497pub const POWER_INFORMATION_LEVEL_PowerInformationLevelUnused0: POWER_INFORMATION_LEVEL = 27;
8498pub const POWER_INFORMATION_LEVEL_SystemMonitorHiberBootPowerOff: POWER_INFORMATION_LEVEL = 28;
8499pub const POWER_INFORMATION_LEVEL_SystemVideoState: POWER_INFORMATION_LEVEL = 29;
8500pub const POWER_INFORMATION_LEVEL_TraceApplicationPowerMessage: POWER_INFORMATION_LEVEL = 30;
8501pub const POWER_INFORMATION_LEVEL_TraceApplicationPowerMessageEnd: POWER_INFORMATION_LEVEL = 31;
8502pub const POWER_INFORMATION_LEVEL_ProcessorPerfStates: POWER_INFORMATION_LEVEL = 32;
8503pub const POWER_INFORMATION_LEVEL_ProcessorIdleStates: POWER_INFORMATION_LEVEL = 33;
8504pub const POWER_INFORMATION_LEVEL_ProcessorCap: POWER_INFORMATION_LEVEL = 34;
8505pub const POWER_INFORMATION_LEVEL_SystemWakeSource: POWER_INFORMATION_LEVEL = 35;
8506pub const POWER_INFORMATION_LEVEL_SystemHiberFileInformation: POWER_INFORMATION_LEVEL = 36;
8507pub const POWER_INFORMATION_LEVEL_TraceServicePowerMessage: POWER_INFORMATION_LEVEL = 37;
8508pub const POWER_INFORMATION_LEVEL_ProcessorLoad: POWER_INFORMATION_LEVEL = 38;
8509pub const POWER_INFORMATION_LEVEL_PowerShutdownNotification: POWER_INFORMATION_LEVEL = 39;
8510pub const POWER_INFORMATION_LEVEL_MonitorCapabilities: POWER_INFORMATION_LEVEL = 40;
8511pub const POWER_INFORMATION_LEVEL_SessionPowerInit: POWER_INFORMATION_LEVEL = 41;
8512pub const POWER_INFORMATION_LEVEL_SessionDisplayState: POWER_INFORMATION_LEVEL = 42;
8513pub const POWER_INFORMATION_LEVEL_PowerRequestCreate: POWER_INFORMATION_LEVEL = 43;
8514pub const POWER_INFORMATION_LEVEL_PowerRequestAction: POWER_INFORMATION_LEVEL = 44;
8515pub const POWER_INFORMATION_LEVEL_GetPowerRequestList: POWER_INFORMATION_LEVEL = 45;
8516pub const POWER_INFORMATION_LEVEL_ProcessorInformationEx: POWER_INFORMATION_LEVEL = 46;
8517pub const POWER_INFORMATION_LEVEL_NotifyUserModeLegacyPowerEvent: POWER_INFORMATION_LEVEL = 47;
8518pub const POWER_INFORMATION_LEVEL_GroupPark: POWER_INFORMATION_LEVEL = 48;
8519pub const POWER_INFORMATION_LEVEL_ProcessorIdleDomains: POWER_INFORMATION_LEVEL = 49;
8520pub const POWER_INFORMATION_LEVEL_WakeTimerList: POWER_INFORMATION_LEVEL = 50;
8521pub const POWER_INFORMATION_LEVEL_SystemHiberFileSize: POWER_INFORMATION_LEVEL = 51;
8522pub const POWER_INFORMATION_LEVEL_ProcessorIdleStatesHv: POWER_INFORMATION_LEVEL = 52;
8523pub const POWER_INFORMATION_LEVEL_ProcessorPerfStatesHv: POWER_INFORMATION_LEVEL = 53;
8524pub const POWER_INFORMATION_LEVEL_ProcessorPerfCapHv: POWER_INFORMATION_LEVEL = 54;
8525pub const POWER_INFORMATION_LEVEL_ProcessorSetIdle: POWER_INFORMATION_LEVEL = 55;
8526pub const POWER_INFORMATION_LEVEL_LogicalProcessorIdling: POWER_INFORMATION_LEVEL = 56;
8527pub const POWER_INFORMATION_LEVEL_UserPresence: POWER_INFORMATION_LEVEL = 57;
8528pub const POWER_INFORMATION_LEVEL_PowerSettingNotificationName: POWER_INFORMATION_LEVEL = 58;
8529pub const POWER_INFORMATION_LEVEL_GetPowerSettingValue: POWER_INFORMATION_LEVEL = 59;
8530pub const POWER_INFORMATION_LEVEL_IdleResiliency: POWER_INFORMATION_LEVEL = 60;
8531pub const POWER_INFORMATION_LEVEL_SessionRITState: POWER_INFORMATION_LEVEL = 61;
8532pub const POWER_INFORMATION_LEVEL_SessionConnectNotification: POWER_INFORMATION_LEVEL = 62;
8533pub const POWER_INFORMATION_LEVEL_SessionPowerCleanup: POWER_INFORMATION_LEVEL = 63;
8534pub const POWER_INFORMATION_LEVEL_SessionLockState: POWER_INFORMATION_LEVEL = 64;
8535pub const POWER_INFORMATION_LEVEL_SystemHiberbootState: POWER_INFORMATION_LEVEL = 65;
8536pub const POWER_INFORMATION_LEVEL_PlatformInformation: POWER_INFORMATION_LEVEL = 66;
8537pub const POWER_INFORMATION_LEVEL_PdcInvocation: POWER_INFORMATION_LEVEL = 67;
8538pub const POWER_INFORMATION_LEVEL_MonitorInvocation: POWER_INFORMATION_LEVEL = 68;
8539pub const POWER_INFORMATION_LEVEL_FirmwareTableInformationRegistered: POWER_INFORMATION_LEVEL = 69;
8540pub const POWER_INFORMATION_LEVEL_SetShutdownSelectedTime: POWER_INFORMATION_LEVEL = 70;
8541pub const POWER_INFORMATION_LEVEL_SuspendResumeInvocation: POWER_INFORMATION_LEVEL = 71;
8542pub const POWER_INFORMATION_LEVEL_PlmPowerRequestCreate: POWER_INFORMATION_LEVEL = 72;
8543pub const POWER_INFORMATION_LEVEL_ScreenOff: POWER_INFORMATION_LEVEL = 73;
8544pub const POWER_INFORMATION_LEVEL_CsDeviceNotification: POWER_INFORMATION_LEVEL = 74;
8545pub const POWER_INFORMATION_LEVEL_PlatformRole: POWER_INFORMATION_LEVEL = 75;
8546pub const POWER_INFORMATION_LEVEL_LastResumePerformance: POWER_INFORMATION_LEVEL = 76;
8547pub const POWER_INFORMATION_LEVEL_DisplayBurst: POWER_INFORMATION_LEVEL = 77;
8548pub const POWER_INFORMATION_LEVEL_ExitLatencySamplingPercentage: POWER_INFORMATION_LEVEL = 78;
8549pub const POWER_INFORMATION_LEVEL_RegisterSpmPowerSettings: POWER_INFORMATION_LEVEL = 79;
8550pub const POWER_INFORMATION_LEVEL_PlatformIdleStates: POWER_INFORMATION_LEVEL = 80;
8551pub const POWER_INFORMATION_LEVEL_ProcessorIdleVeto: POWER_INFORMATION_LEVEL = 81;
8552pub const POWER_INFORMATION_LEVEL_PlatformIdleVeto: POWER_INFORMATION_LEVEL = 82;
8553pub const POWER_INFORMATION_LEVEL_SystemBatteryStatePrecise: POWER_INFORMATION_LEVEL = 83;
8554pub const POWER_INFORMATION_LEVEL_ThermalEvent: POWER_INFORMATION_LEVEL = 84;
8555pub const POWER_INFORMATION_LEVEL_PowerRequestActionInternal: POWER_INFORMATION_LEVEL = 85;
8556pub const POWER_INFORMATION_LEVEL_BatteryDeviceState: POWER_INFORMATION_LEVEL = 86;
8557pub const POWER_INFORMATION_LEVEL_PowerInformationInternal: POWER_INFORMATION_LEVEL = 87;
8558pub const POWER_INFORMATION_LEVEL_ThermalStandby: POWER_INFORMATION_LEVEL = 88;
8559pub const POWER_INFORMATION_LEVEL_SystemHiberFileType: POWER_INFORMATION_LEVEL = 89;
8560pub const POWER_INFORMATION_LEVEL_PhysicalPowerButtonPress: POWER_INFORMATION_LEVEL = 90;
8561pub const POWER_INFORMATION_LEVEL_QueryPotentialDripsConstraint: POWER_INFORMATION_LEVEL = 91;
8562pub const POWER_INFORMATION_LEVEL_EnergyTrackerCreate: POWER_INFORMATION_LEVEL = 92;
8563pub const POWER_INFORMATION_LEVEL_EnergyTrackerQuery: POWER_INFORMATION_LEVEL = 93;
8564pub const POWER_INFORMATION_LEVEL_UpdateBlackBoxRecorder: POWER_INFORMATION_LEVEL = 94;
8565pub const POWER_INFORMATION_LEVEL_SessionAllowExternalDmaDevices: POWER_INFORMATION_LEVEL = 95;
8566pub const POWER_INFORMATION_LEVEL_SendSuspendResumeNotification: POWER_INFORMATION_LEVEL = 96;
8567pub const POWER_INFORMATION_LEVEL_BlackBoxRecorderDirectAccessBuffer: POWER_INFORMATION_LEVEL = 97;
8568pub const POWER_INFORMATION_LEVEL_PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 98;
8569pub type POWER_INFORMATION_LEVEL = core::ffi::c_int;
8570pub const POWER_USER_PRESENCE_TYPE_UserNotPresent: POWER_USER_PRESENCE_TYPE = 0;
8571pub const POWER_USER_PRESENCE_TYPE_UserPresent: POWER_USER_PRESENCE_TYPE = 1;
8572pub const POWER_USER_PRESENCE_TYPE_UserUnknown: POWER_USER_PRESENCE_TYPE = 255;
8573pub type POWER_USER_PRESENCE_TYPE = core::ffi::c_int;
8574pub type PPOWER_USER_PRESENCE_TYPE = *mut POWER_USER_PRESENCE_TYPE;
8575#[repr(C)]
8576#[derive(Debug, Copy, Clone)]
8577pub struct _POWER_USER_PRESENCE {
8578 pub UserPresence: POWER_USER_PRESENCE_TYPE,
8579}
8580pub type POWER_USER_PRESENCE = _POWER_USER_PRESENCE;
8581pub type PPOWER_USER_PRESENCE = *mut _POWER_USER_PRESENCE;
8582#[repr(C)]
8583#[derive(Debug, Copy, Clone)]
8584pub struct _POWER_SESSION_CONNECT {
8585 pub Connected: BOOLEAN,
8586 pub Console: BOOLEAN,
8587}
8588pub type POWER_SESSION_CONNECT = _POWER_SESSION_CONNECT;
8589pub type PPOWER_SESSION_CONNECT = *mut _POWER_SESSION_CONNECT;
8590#[repr(C)]
8591#[derive(Debug, Copy, Clone)]
8592pub struct _POWER_SESSION_TIMEOUTS {
8593 pub InputTimeout: ULONG,
8594 pub DisplayTimeout: ULONG,
8595}
8596pub type POWER_SESSION_TIMEOUTS = _POWER_SESSION_TIMEOUTS;
8597pub type PPOWER_SESSION_TIMEOUTS = *mut _POWER_SESSION_TIMEOUTS;
8598#[repr(C)]
8599#[derive(Debug, Copy, Clone)]
8600pub struct _POWER_SESSION_RIT_STATE {
8601 pub Active: BOOLEAN,
8602 pub LastInputTime: ULONG64,
8603}
8604pub type POWER_SESSION_RIT_STATE = _POWER_SESSION_RIT_STATE;
8605pub type PPOWER_SESSION_RIT_STATE = *mut _POWER_SESSION_RIT_STATE;
8606#[repr(C)]
8607#[derive(Debug, Copy, Clone)]
8608pub struct _POWER_SESSION_WINLOGON {
8609 pub SessionId: ULONG,
8610 pub Console: BOOLEAN,
8611 pub Locked: BOOLEAN,
8612}
8613pub type POWER_SESSION_WINLOGON = _POWER_SESSION_WINLOGON;
8614pub type PPOWER_SESSION_WINLOGON = *mut _POWER_SESSION_WINLOGON;
8615#[repr(C)]
8616#[derive(Debug, Copy, Clone)]
8617pub struct _POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES {
8618 pub IsAllowed: BOOLEAN,
8619}
8620pub type POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES = _POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES;
8621pub type PPOWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES = *mut _POWER_SESSION_ALLOW_EXTERNAL_DMA_DEVICES;
8622#[repr(C)]
8623#[derive(Debug, Copy, Clone)]
8624pub struct _POWER_IDLE_RESILIENCY {
8625 pub CoalescingTimeout: ULONG,
8626 pub IdleResiliencyPeriod: ULONG,
8627}
8628pub type POWER_IDLE_RESILIENCY = _POWER_IDLE_RESILIENCY;
8629pub type PPOWER_IDLE_RESILIENCY = *mut _POWER_IDLE_RESILIENCY;
8630pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUnknown: POWER_MONITOR_REQUEST_REASON =
8631 0;
8632pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPowerButton:
8633POWER_MONITOR_REQUEST_REASON = 1;
8634pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonRemoteConnection:
8635POWER_MONITOR_REQUEST_REASON = 2;
8636pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonScMonitorpower:
8637POWER_MONITOR_REQUEST_REASON = 3;
8638pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInput: POWER_MONITOR_REQUEST_REASON =
8639 4;
8640pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonAcDcDisplayBurst:
8641POWER_MONITOR_REQUEST_REASON = 5;
8642pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserDisplayBurst:
8643POWER_MONITOR_REQUEST_REASON = 6;
8644pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPoSetSystemState:
8645POWER_MONITOR_REQUEST_REASON = 7;
8646pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSetThreadExecutionState:
8647POWER_MONITOR_REQUEST_REASON = 8;
8648pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonFullWake: POWER_MONITOR_REQUEST_REASON =
8649 9;
8650pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSessionUnlock:
8651POWER_MONITOR_REQUEST_REASON = 10;
8652pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonScreenOffRequest:
8653POWER_MONITOR_REQUEST_REASON = 11;
8654pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonIdleTimeout:
8655POWER_MONITOR_REQUEST_REASON = 12;
8656pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPolicyChange:
8657POWER_MONITOR_REQUEST_REASON = 13;
8658pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSleepButton:
8659POWER_MONITOR_REQUEST_REASON = 14;
8660pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonLid: POWER_MONITOR_REQUEST_REASON = 15;
8661pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryCountChange:
8662POWER_MONITOR_REQUEST_REASON = 16;
8663pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonGracePeriod:
8664POWER_MONITOR_REQUEST_REASON = 17;
8665pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPnP: POWER_MONITOR_REQUEST_REASON = 18;
8666pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDP: POWER_MONITOR_REQUEST_REASON = 19;
8667pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSxTransition:
8668POWER_MONITOR_REQUEST_REASON = 20;
8669pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSystemIdle:
8670POWER_MONITOR_REQUEST_REASON = 21;
8671pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonNearProximity:
8672POWER_MONITOR_REQUEST_REASON = 22;
8673pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonThermalStandby:
8674POWER_MONITOR_REQUEST_REASON = 23;
8675pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumePdc: POWER_MONITOR_REQUEST_REASON =
8676 24;
8677pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumeS4: POWER_MONITOR_REQUEST_REASON =
8678 25;
8679pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonTerminal: POWER_MONITOR_REQUEST_REASON =
8680 26;
8681pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignal: POWER_MONITOR_REQUEST_REASON =
8682 27;
8683pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonAcDcDisplayBurstSuppressed:
8684POWER_MONITOR_REQUEST_REASON = 28;
8685pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonSystemStateEntered:
8686POWER_MONITOR_REQUEST_REASON = 29;
8687pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonWinrt: POWER_MONITOR_REQUEST_REASON = 30;
8688pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputKeyboard:
8689POWER_MONITOR_REQUEST_REASON = 31;
8690pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputMouse:
8691POWER_MONITOR_REQUEST_REASON = 32;
8692pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouchpad:
8693POWER_MONITOR_REQUEST_REASON = 33;
8694pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputPen:
8695POWER_MONITOR_REQUEST_REASON = 34;
8696pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputAccelerometer:
8697POWER_MONITOR_REQUEST_REASON = 35;
8698pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputHid:
8699POWER_MONITOR_REQUEST_REASON = 36;
8700pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputPoUserPresent:
8701POWER_MONITOR_REQUEST_REASON = 37;
8702pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputSessionSwitch:
8703POWER_MONITOR_REQUEST_REASON = 38;
8704pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputInitialization:
8705POWER_MONITOR_REQUEST_REASON = 39;
8706pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalWindowsMobilePwrNotif:
8707POWER_MONITOR_REQUEST_REASON = 40;
8708pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalWindowsMobileShell:
8709POWER_MONITOR_REQUEST_REASON = 41;
8710pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalHeyCortana:
8711POWER_MONITOR_REQUEST_REASON = 42;
8712pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalHolographicShell:
8713POWER_MONITOR_REQUEST_REASON = 43;
8714pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalFingerprint:
8715POWER_MONITOR_REQUEST_REASON = 44;
8716pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDirectedDrips:
8717POWER_MONITOR_REQUEST_REASON = 45;
8718pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDim: POWER_MONITOR_REQUEST_REASON = 46;
8719pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBuiltinPanel:
8720POWER_MONITOR_REQUEST_REASON = 47;
8721pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonDisplayRequiredUnDim:
8722POWER_MONITOR_REQUEST_REASON = 48;
8723pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryCountChangeSuppressed:
8724POWER_MONITOR_REQUEST_REASON = 49;
8725pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumeModernStandby:
8726POWER_MONITOR_REQUEST_REASON = 50;
8727pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonTerminalInit:
8728POWER_MONITOR_REQUEST_REASON = 51;
8729pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalSensorsHumanPresence:
8730POWER_MONITOR_REQUEST_REASON = 52;
8731pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryPreCritical:
8732POWER_MONITOR_REQUEST_REASON = 53;
8733pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouch:
8734POWER_MONITOR_REQUEST_REASON = 54;
8735pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 55;
8736pub type POWER_MONITOR_REQUEST_REASON = core::ffi::c_int;
8737pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOff: _POWER_MONITOR_REQUEST_TYPE = 0;
8738pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOnAndPresent: _POWER_MONITOR_REQUEST_TYPE =
8739 1;
8740pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeToggleOn: _POWER_MONITOR_REQUEST_TYPE = 2;
8741pub type _POWER_MONITOR_REQUEST_TYPE = core::ffi::c_int;
8742pub use self::_POWER_MONITOR_REQUEST_TYPE as POWER_MONITOR_REQUEST_TYPE;
8743#[repr(C)]
8744#[derive(Debug, Copy, Clone)]
8745pub struct _POWER_MONITOR_INVOCATION {
8746 pub Console: BOOLEAN,
8747 pub RequestReason: POWER_MONITOR_REQUEST_REASON,
8748}
8749pub type POWER_MONITOR_INVOCATION = _POWER_MONITOR_INVOCATION;
8750pub type PPOWER_MONITOR_INVOCATION = *mut _POWER_MONITOR_INVOCATION;
8751#[repr(C)]
8752#[derive(Debug, Copy, Clone)]
8753pub struct _RESUME_PERFORMANCE {
8754 pub PostTimeMs: ULONG,
8755 pub TotalResumeTimeMs: ULONGLONG,
8756 pub ResumeCompleteTimestamp: ULONGLONG,
8757}
8758pub type RESUME_PERFORMANCE = _RESUME_PERFORMANCE;
8759pub type PRESUME_PERFORMANCE = *mut _RESUME_PERFORMANCE;
8760pub const SYSTEM_POWER_CONDITION_PoAc: SYSTEM_POWER_CONDITION = 0;
8761pub const SYSTEM_POWER_CONDITION_PoDc: SYSTEM_POWER_CONDITION = 1;
8762pub const SYSTEM_POWER_CONDITION_PoHot: SYSTEM_POWER_CONDITION = 2;
8763pub const SYSTEM_POWER_CONDITION_PoConditionMaximum: SYSTEM_POWER_CONDITION = 3;
8764pub type SYSTEM_POWER_CONDITION = core::ffi::c_int;
8765#[repr(C)]
8766#[derive(Debug, Copy, Clone)]
8767pub struct SET_POWER_SETTING_VALUE {
8768 pub Version: ULONG,
8769 pub Guid: GUID,
8770 pub PowerCondition: SYSTEM_POWER_CONDITION,
8771 pub DataLength: ULONG,
8772 pub Data: [UCHAR; 1usize],
8773}
8774pub type PSET_POWER_SETTING_VALUE = *mut SET_POWER_SETTING_VALUE;
8775#[repr(C)]
8776#[derive(Debug, Copy, Clone)]
8777pub struct NOTIFY_USER_POWER_SETTING {
8778 pub Guid: GUID,
8779}
8780pub type PNOTIFY_USER_POWER_SETTING = *mut NOTIFY_USER_POWER_SETTING;
8781#[repr(C)]
8782#[derive(Copy, Clone)]
8783pub struct _APPLICATIONLAUNCH_SETTING_VALUE {
8784 pub ActivationTime: LARGE_INTEGER,
8785 pub Flags: ULONG,
8786 pub ButtonInstanceID: ULONG,
8787}
8788pub type APPLICATIONLAUNCH_SETTING_VALUE = _APPLICATIONLAUNCH_SETTING_VALUE;
8789pub type PAPPLICATIONLAUNCH_SETTING_VALUE = *mut _APPLICATIONLAUNCH_SETTING_VALUE;
8790pub const _POWER_PLATFORM_ROLE_PlatformRoleUnspecified: _POWER_PLATFORM_ROLE = 0;
8791pub const _POWER_PLATFORM_ROLE_PlatformRoleDesktop: _POWER_PLATFORM_ROLE = 1;
8792pub const _POWER_PLATFORM_ROLE_PlatformRoleMobile: _POWER_PLATFORM_ROLE = 2;
8793pub const _POWER_PLATFORM_ROLE_PlatformRoleWorkstation: _POWER_PLATFORM_ROLE = 3;
8794pub const _POWER_PLATFORM_ROLE_PlatformRoleEnterpriseServer: _POWER_PLATFORM_ROLE = 4;
8795pub const _POWER_PLATFORM_ROLE_PlatformRoleSOHOServer: _POWER_PLATFORM_ROLE = 5;
8796pub const _POWER_PLATFORM_ROLE_PlatformRoleAppliancePC: _POWER_PLATFORM_ROLE = 6;
8797pub const _POWER_PLATFORM_ROLE_PlatformRolePerformanceServer: _POWER_PLATFORM_ROLE = 7;
8798pub const _POWER_PLATFORM_ROLE_PlatformRoleSlate: _POWER_PLATFORM_ROLE = 8;
8799pub const _POWER_PLATFORM_ROLE_PlatformRoleMaximum: _POWER_PLATFORM_ROLE = 9;
8800pub type _POWER_PLATFORM_ROLE = core::ffi::c_int;
8801pub use self::_POWER_PLATFORM_ROLE as POWER_PLATFORM_ROLE;
8802pub type PPOWER_PLATFORM_ROLE = *mut _POWER_PLATFORM_ROLE;
8803#[repr(C)]
8804#[derive(Debug, Copy, Clone)]
8805pub struct _POWER_PLATFORM_INFORMATION {
8806 pub AoAc: BOOLEAN,
8807}
8808pub type POWER_PLATFORM_INFORMATION = _POWER_PLATFORM_INFORMATION;
8809pub type PPOWER_PLATFORM_INFORMATION = *mut _POWER_PLATFORM_INFORMATION;
8810pub const POWER_SETTING_ALTITUDE_ALTITUDE_GROUP_POLICY: POWER_SETTING_ALTITUDE = 0;
8811pub const POWER_SETTING_ALTITUDE_ALTITUDE_USER: POWER_SETTING_ALTITUDE = 1;
8812pub const POWER_SETTING_ALTITUDE_ALTITUDE_RUNTIME_OVERRIDE: POWER_SETTING_ALTITUDE = 2;
8813pub const POWER_SETTING_ALTITUDE_ALTITUDE_PROVISIONING: POWER_SETTING_ALTITUDE = 3;
8814pub const POWER_SETTING_ALTITUDE_ALTITUDE_OEM_CUSTOMIZATION: POWER_SETTING_ALTITUDE = 4;
8815pub const POWER_SETTING_ALTITUDE_ALTITUDE_INTERNAL_OVERRIDE: POWER_SETTING_ALTITUDE = 5;
8816pub const POWER_SETTING_ALTITUDE_ALTITUDE_OS_DEFAULT: POWER_SETTING_ALTITUDE = 6;
8817pub type POWER_SETTING_ALTITUDE = core::ffi::c_int;
8818pub type PPOWER_SETTING_ALTITUDE = *mut POWER_SETTING_ALTITUDE;
8819#[repr(C)]
8820#[derive(Debug, Copy, Clone)]
8821pub struct BATTERY_REPORTING_SCALE {
8822 pub Granularity: ULONG,
8823 pub Capacity: ULONG,
8824}
8825pub type PBATTERY_REPORTING_SCALE = *mut BATTERY_REPORTING_SCALE;
8826unsafe extern "C" {
8827 pub fn NtPowerInformation(
8828 InformationLevel: POWER_INFORMATION_LEVEL,
8829 InputBuffer: PVOID,
8830 InputBufferLength: ULONG,
8831 OutputBuffer: PVOID,
8832 OutputBufferLength: ULONG,
8833 ) -> NTSTATUS;
8834}
8835pub const _CM_SERVICE_NODE_TYPE_DriverType: _CM_SERVICE_NODE_TYPE = 1;
8836pub const _CM_SERVICE_NODE_TYPE_FileSystemType: _CM_SERVICE_NODE_TYPE = 2;
8837pub const _CM_SERVICE_NODE_TYPE_Win32ServiceOwnProcess: _CM_SERVICE_NODE_TYPE = 16;
8838pub const _CM_SERVICE_NODE_TYPE_Win32ServiceShareProcess: _CM_SERVICE_NODE_TYPE = 32;
8839pub const _CM_SERVICE_NODE_TYPE_AdapterType: _CM_SERVICE_NODE_TYPE = 4;
8840pub const _CM_SERVICE_NODE_TYPE_RecognizerType: _CM_SERVICE_NODE_TYPE = 8;
8841pub type _CM_SERVICE_NODE_TYPE = core::ffi::c_int;
8842pub use self::_CM_SERVICE_NODE_TYPE as SERVICE_NODE_TYPE;
8843pub const _CM_SERVICE_LOAD_TYPE_BootLoad: _CM_SERVICE_LOAD_TYPE = 0;
8844pub const _CM_SERVICE_LOAD_TYPE_SystemLoad: _CM_SERVICE_LOAD_TYPE = 1;
8845pub const _CM_SERVICE_LOAD_TYPE_AutoLoad: _CM_SERVICE_LOAD_TYPE = 2;
8846pub const _CM_SERVICE_LOAD_TYPE_DemandLoad: _CM_SERVICE_LOAD_TYPE = 3;
8847pub const _CM_SERVICE_LOAD_TYPE_DisableLoad: _CM_SERVICE_LOAD_TYPE = 4;
8848pub type _CM_SERVICE_LOAD_TYPE = core::ffi::c_int;
8849pub use self::_CM_SERVICE_LOAD_TYPE as SERVICE_LOAD_TYPE;
8850pub const _CM_ERROR_CONTROL_TYPE_IgnoreError: _CM_ERROR_CONTROL_TYPE = 0;
8851pub const _CM_ERROR_CONTROL_TYPE_NormalError: _CM_ERROR_CONTROL_TYPE = 1;
8852pub const _CM_ERROR_CONTROL_TYPE_SevereError: _CM_ERROR_CONTROL_TYPE = 2;
8853pub const _CM_ERROR_CONTROL_TYPE_CriticalError: _CM_ERROR_CONTROL_TYPE = 3;
8854pub type _CM_ERROR_CONTROL_TYPE = core::ffi::c_int;
8855pub use self::_CM_ERROR_CONTROL_TYPE as SERVICE_ERROR_TYPE;
8856pub type CM_RESOURCE_TYPE = core::ffi::c_int;
8857pub const _CM_SHARE_DISPOSITION_CmResourceShareUndetermined: _CM_SHARE_DISPOSITION = 0;
8858pub const _CM_SHARE_DISPOSITION_CmResourceShareDeviceExclusive: _CM_SHARE_DISPOSITION = 1;
8859pub const _CM_SHARE_DISPOSITION_CmResourceShareDriverExclusive: _CM_SHARE_DISPOSITION = 2;
8860pub const _CM_SHARE_DISPOSITION_CmResourceShareShared: _CM_SHARE_DISPOSITION = 3;
8861pub type _CM_SHARE_DISPOSITION = core::ffi::c_int;
8862pub use self::_CM_SHARE_DISPOSITION as CM_SHARE_DISPOSITION;
8863#[repr(C)]
8864#[derive(Copy, Clone)]
8865pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR {
8866 pub Type: UCHAR,
8867 pub ShareDisposition: UCHAR,
8868 pub Flags: USHORT,
8869 pub u: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1,
8870}
8871#[repr(C)]
8872#[derive(Copy, Clone)]
8873pub union _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1 {
8874 pub Generic: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1,
8875 pub Port: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2,
8876 pub Interrupt: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_3,
8877 pub MessageInterrupt: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4,
8878 pub Memory: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_5,
8879 pub Dma: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_6,
8880 pub DmaV3: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_7,
8881 pub DevicePrivate: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_8,
8882 pub BusNumber: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_9,
8883 pub DeviceSpecificData: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_10,
8884 pub Memory40: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_11,
8885 pub Memory48: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_12,
8886 pub Memory64: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_13,
8887 pub Connection: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_14,
8888}
8889#[repr(C, packed(4))]
8890#[derive(Copy, Clone)]
8891pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
8892 pub Start: PHYSICAL_ADDRESS,
8893 pub Length: ULONG,
8894}
8895#[repr(C, packed(4))]
8896#[derive(Copy, Clone)]
8897pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2 {
8898 pub Start: PHYSICAL_ADDRESS,
8899 pub Length: ULONG,
8900}
8901#[repr(C, packed(4))]
8902#[derive(Debug, Copy, Clone)]
8903pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_3 {
8904 pub Level: ULONG,
8905 pub Vector: ULONG,
8906 pub Affinity: KAFFINITY,
8907}
8908#[repr(C)]
8909#[derive(Copy, Clone)]
8910pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4 {
8911 pub __bindgen_anon_1: _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
8912}
8913#[repr(C)]
8914#[derive(Copy, Clone)]
8915pub union _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
8916 pub Raw:
8917 _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
8918 pub Translated:
8919 _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2,
8920}
8921#[repr(C, packed(4))]
8922#[derive(Debug, Copy, Clone)]
8923pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
8924 pub Reserved: USHORT,
8925 pub MessageCount: USHORT,
8926 pub Vector: ULONG,
8927 pub Affinity: KAFFINITY,
8928}
8929#[repr(C, packed(4))]
8930#[derive(Debug, Copy, Clone)]
8931pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2 {
8932 pub Level: ULONG,
8933 pub Vector: ULONG,
8934 pub Affinity: KAFFINITY,
8935}
8936#[repr(C, packed(4))]
8937#[derive(Copy, Clone)]
8938pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_5 {
8939 pub Start: PHYSICAL_ADDRESS,
8940 pub Length: ULONG,
8941}
8942#[repr(C)]
8943#[derive(Debug, Copy, Clone)]
8944pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_6 {
8945 pub Channel: ULONG,
8946 pub Port: ULONG,
8947 pub Reserved1: ULONG,
8948}
8949#[repr(C)]
8950#[derive(Debug, Copy, Clone)]
8951pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_7 {
8952 pub Channel: ULONG,
8953 pub RequestLine: ULONG,
8954 pub TransferWidth: UCHAR,
8955 pub Reserved1: UCHAR,
8956 pub Reserved2: UCHAR,
8957 pub Reserved3: UCHAR,
8958}
8959#[repr(C)]
8960#[derive(Debug, Copy, Clone)]
8961pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_8 {
8962 pub Data: [ULONG; 3usize],
8963}
8964#[repr(C)]
8965#[derive(Debug, Copy, Clone)]
8966pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_9 {
8967 pub Start: ULONG,
8968 pub Length: ULONG,
8969 pub Reserved: ULONG,
8970}
8971#[repr(C)]
8972#[derive(Debug, Copy, Clone)]
8973pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_10 {
8974 pub DataSize: ULONG,
8975 pub Reserved1: ULONG,
8976 pub Reserved2: ULONG,
8977}
8978#[repr(C, packed(4))]
8979#[derive(Copy, Clone)]
8980pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_11 {
8981 pub Start: PHYSICAL_ADDRESS,
8982 pub Length40: ULONG,
8983}
8984#[repr(C, packed(4))]
8985#[derive(Copy, Clone)]
8986pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_12 {
8987 pub Start: PHYSICAL_ADDRESS,
8988 pub Length48: ULONG,
8989}
8990#[repr(C, packed(4))]
8991#[derive(Copy, Clone)]
8992pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_13 {
8993 pub Start: PHYSICAL_ADDRESS,
8994 pub Length64: ULONG,
8995}
8996#[repr(C)]
8997#[derive(Debug, Copy, Clone)]
8998pub struct _CM_PARTIAL_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_14 {
8999 pub Class: UCHAR,
9000 pub Type: UCHAR,
9001 pub Reserved1: UCHAR,
9002 pub Reserved2: UCHAR,
9003 pub IdLowPart: ULONG,
9004 pub IdHighPart: ULONG,
9005}
9006pub type CM_PARTIAL_RESOURCE_DESCRIPTOR = _CM_PARTIAL_RESOURCE_DESCRIPTOR;
9007pub type PCM_PARTIAL_RESOURCE_DESCRIPTOR = *mut _CM_PARTIAL_RESOURCE_DESCRIPTOR;
9008#[repr(C)]
9009#[derive(Copy, Clone)]
9010pub struct _CM_PARTIAL_RESOURCE_LIST {
9011 pub Version: USHORT,
9012 pub Revision: USHORT,
9013 pub Count: ULONG,
9014 pub PartialDescriptors: [CM_PARTIAL_RESOURCE_DESCRIPTOR; 1usize],
9015}
9016pub type CM_PARTIAL_RESOURCE_LIST = _CM_PARTIAL_RESOURCE_LIST;
9017pub type PCM_PARTIAL_RESOURCE_LIST = *mut _CM_PARTIAL_RESOURCE_LIST;
9018#[repr(C)]
9019#[derive(Copy, Clone)]
9020pub struct _CM_FULL_RESOURCE_DESCRIPTOR {
9021 pub InterfaceType: INTERFACE_TYPE,
9022 pub BusNumber: ULONG,
9023 pub PartialResourceList: CM_PARTIAL_RESOURCE_LIST,
9024}
9025pub type CM_FULL_RESOURCE_DESCRIPTOR = _CM_FULL_RESOURCE_DESCRIPTOR;
9026pub type PCM_FULL_RESOURCE_DESCRIPTOR = *mut _CM_FULL_RESOURCE_DESCRIPTOR;
9027#[repr(C)]
9028#[derive(Copy, Clone)]
9029pub struct _CM_RESOURCE_LIST {
9030 pub Count: ULONG,
9031 pub List: [CM_FULL_RESOURCE_DESCRIPTOR; 1usize],
9032}
9033pub type CM_RESOURCE_LIST = _CM_RESOURCE_LIST;
9034pub type PCM_RESOURCE_LIST = *mut _CM_RESOURCE_LIST;
9035#[repr(C)]
9036#[repr(align(4))]
9037#[derive(Debug, Copy, Clone)]
9038pub struct _DEVICE_FLAGS {
9039 pub _bitfield_align_1: [u8; 0],
9040 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9041 pub __bindgen_padding_0: [u8; 3usize],
9042}
9043impl _DEVICE_FLAGS {
9044 #[inline]
9045 pub fn Failed(&self) -> ULONG {
9046 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
9047 }
9048 #[inline]
9049 pub fn set_Failed(&mut self, val: ULONG) {
9050 unsafe {
9051 let val: u32 = ::core::mem::transmute(val);
9052 self._bitfield_1.set(0usize, 1u8, val as u64)
9053 }
9054 }
9055 #[inline]
9056 pub unsafe fn Failed_raw(this: *const Self) -> ULONG {
9057 unsafe {
9058 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9059 ::core::ptr::addr_of!((*this)._bitfield_1),
9060 0usize,
9061 1u8,
9062 ) as u32)
9063 }
9064 }
9065 #[inline]
9066 pub unsafe fn set_Failed_raw(this: *mut Self, val: ULONG) {
9067 unsafe {
9068 let val: u32 = ::core::mem::transmute(val);
9069 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9070 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9071 0usize,
9072 1u8,
9073 val as u64,
9074 )
9075 }
9076 }
9077 #[inline]
9078 pub fn ReadOnly(&self) -> ULONG {
9079 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
9080 }
9081 #[inline]
9082 pub fn set_ReadOnly(&mut self, val: ULONG) {
9083 unsafe {
9084 let val: u32 = ::core::mem::transmute(val);
9085 self._bitfield_1.set(1usize, 1u8, val as u64)
9086 }
9087 }
9088 #[inline]
9089 pub unsafe fn ReadOnly_raw(this: *const Self) -> ULONG {
9090 unsafe {
9091 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9092 ::core::ptr::addr_of!((*this)._bitfield_1),
9093 1usize,
9094 1u8,
9095 ) as u32)
9096 }
9097 }
9098 #[inline]
9099 pub unsafe fn set_ReadOnly_raw(this: *mut Self, val: ULONG) {
9100 unsafe {
9101 let val: u32 = ::core::mem::transmute(val);
9102 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9103 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9104 1usize,
9105 1u8,
9106 val as u64,
9107 )
9108 }
9109 }
9110 #[inline]
9111 pub fn Removable(&self) -> ULONG {
9112 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
9113 }
9114 #[inline]
9115 pub fn set_Removable(&mut self, val: ULONG) {
9116 unsafe {
9117 let val: u32 = ::core::mem::transmute(val);
9118 self._bitfield_1.set(2usize, 1u8, val as u64)
9119 }
9120 }
9121 #[inline]
9122 pub unsafe fn Removable_raw(this: *const Self) -> ULONG {
9123 unsafe {
9124 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9125 ::core::ptr::addr_of!((*this)._bitfield_1),
9126 2usize,
9127 1u8,
9128 ) as u32)
9129 }
9130 }
9131 #[inline]
9132 pub unsafe fn set_Removable_raw(this: *mut Self, val: ULONG) {
9133 unsafe {
9134 let val: u32 = ::core::mem::transmute(val);
9135 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9136 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9137 2usize,
9138 1u8,
9139 val as u64,
9140 )
9141 }
9142 }
9143 #[inline]
9144 pub fn ConsoleIn(&self) -> ULONG {
9145 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
9146 }
9147 #[inline]
9148 pub fn set_ConsoleIn(&mut self, val: ULONG) {
9149 unsafe {
9150 let val: u32 = ::core::mem::transmute(val);
9151 self._bitfield_1.set(3usize, 1u8, val as u64)
9152 }
9153 }
9154 #[inline]
9155 pub unsafe fn ConsoleIn_raw(this: *const Self) -> ULONG {
9156 unsafe {
9157 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9158 ::core::ptr::addr_of!((*this)._bitfield_1),
9159 3usize,
9160 1u8,
9161 ) as u32)
9162 }
9163 }
9164 #[inline]
9165 pub unsafe fn set_ConsoleIn_raw(this: *mut Self, val: ULONG) {
9166 unsafe {
9167 let val: u32 = ::core::mem::transmute(val);
9168 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9169 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9170 3usize,
9171 1u8,
9172 val as u64,
9173 )
9174 }
9175 }
9176 #[inline]
9177 pub fn ConsoleOut(&self) -> ULONG {
9178 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
9179 }
9180 #[inline]
9181 pub fn set_ConsoleOut(&mut self, val: ULONG) {
9182 unsafe {
9183 let val: u32 = ::core::mem::transmute(val);
9184 self._bitfield_1.set(4usize, 1u8, val as u64)
9185 }
9186 }
9187 #[inline]
9188 pub unsafe fn ConsoleOut_raw(this: *const Self) -> ULONG {
9189 unsafe {
9190 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9191 ::core::ptr::addr_of!((*this)._bitfield_1),
9192 4usize,
9193 1u8,
9194 ) as u32)
9195 }
9196 }
9197 #[inline]
9198 pub unsafe fn set_ConsoleOut_raw(this: *mut Self, val: ULONG) {
9199 unsafe {
9200 let val: u32 = ::core::mem::transmute(val);
9201 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9202 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9203 4usize,
9204 1u8,
9205 val as u64,
9206 )
9207 }
9208 }
9209 #[inline]
9210 pub fn Input(&self) -> ULONG {
9211 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
9212 }
9213 #[inline]
9214 pub fn set_Input(&mut self, val: ULONG) {
9215 unsafe {
9216 let val: u32 = ::core::mem::transmute(val);
9217 self._bitfield_1.set(5usize, 1u8, val as u64)
9218 }
9219 }
9220 #[inline]
9221 pub unsafe fn Input_raw(this: *const Self) -> ULONG {
9222 unsafe {
9223 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9224 ::core::ptr::addr_of!((*this)._bitfield_1),
9225 5usize,
9226 1u8,
9227 ) as u32)
9228 }
9229 }
9230 #[inline]
9231 pub unsafe fn set_Input_raw(this: *mut Self, val: ULONG) {
9232 unsafe {
9233 let val: u32 = ::core::mem::transmute(val);
9234 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9235 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9236 5usize,
9237 1u8,
9238 val as u64,
9239 )
9240 }
9241 }
9242 #[inline]
9243 pub fn Output(&self) -> ULONG {
9244 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
9245 }
9246 #[inline]
9247 pub fn set_Output(&mut self, val: ULONG) {
9248 unsafe {
9249 let val: u32 = ::core::mem::transmute(val);
9250 self._bitfield_1.set(6usize, 1u8, val as u64)
9251 }
9252 }
9253 #[inline]
9254 pub unsafe fn Output_raw(this: *const Self) -> ULONG {
9255 unsafe {
9256 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9257 ::core::ptr::addr_of!((*this)._bitfield_1),
9258 6usize,
9259 1u8,
9260 ) as u32)
9261 }
9262 }
9263 #[inline]
9264 pub unsafe fn set_Output_raw(this: *mut Self, val: ULONG) {
9265 unsafe {
9266 let val: u32 = ::core::mem::transmute(val);
9267 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9268 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9269 6usize,
9270 1u8,
9271 val as u64,
9272 )
9273 }
9274 }
9275 #[inline]
9276 pub fn new_bitfield_1(
9277 Failed: ULONG,
9278 ReadOnly: ULONG,
9279 Removable: ULONG,
9280 ConsoleIn: ULONG,
9281 ConsoleOut: ULONG,
9282 Input: ULONG,
9283 Output: ULONG,
9284 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
9285 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
9286 __bindgen_bitfield_unit.set(0usize, 1u8, {
9287 let Failed: u32 = unsafe { ::core::mem::transmute(Failed) };
9288 Failed as u64
9289 });
9290 __bindgen_bitfield_unit.set(1usize, 1u8, {
9291 let ReadOnly: u32 = unsafe { ::core::mem::transmute(ReadOnly) };
9292 ReadOnly as u64
9293 });
9294 __bindgen_bitfield_unit.set(2usize, 1u8, {
9295 let Removable: u32 = unsafe { ::core::mem::transmute(Removable) };
9296 Removable as u64
9297 });
9298 __bindgen_bitfield_unit.set(3usize, 1u8, {
9299 let ConsoleIn: u32 = unsafe { ::core::mem::transmute(ConsoleIn) };
9300 ConsoleIn as u64
9301 });
9302 __bindgen_bitfield_unit.set(4usize, 1u8, {
9303 let ConsoleOut: u32 = unsafe { ::core::mem::transmute(ConsoleOut) };
9304 ConsoleOut as u64
9305 });
9306 __bindgen_bitfield_unit.set(5usize, 1u8, {
9307 let Input: u32 = unsafe { ::core::mem::transmute(Input) };
9308 Input as u64
9309 });
9310 __bindgen_bitfield_unit.set(6usize, 1u8, {
9311 let Output: u32 = unsafe { ::core::mem::transmute(Output) };
9312 Output as u64
9313 });
9314 __bindgen_bitfield_unit
9315 }
9316}
9317pub type DEVICE_FLAGS = _DEVICE_FLAGS;
9318pub type PDEVICE_FLAGS = *mut _DEVICE_FLAGS;
9319#[repr(C)]
9320#[derive(Debug, Copy, Clone)]
9321pub struct _CM_COMPONENT_INFORMATION {
9322 pub Flags: DEVICE_FLAGS,
9323 pub Version: ULONG,
9324 pub Key: ULONG,
9325 pub AffinityMask: KAFFINITY,
9326}
9327pub type CM_COMPONENT_INFORMATION = _CM_COMPONENT_INFORMATION;
9328pub type PCM_COMPONENT_INFORMATION = *mut _CM_COMPONENT_INFORMATION;
9329#[repr(C)]
9330#[derive(Debug, Copy, Clone)]
9331pub struct _CM_ROM_BLOCK {
9332 pub Address: ULONG,
9333 pub Size: ULONG,
9334}
9335pub type CM_ROM_BLOCK = _CM_ROM_BLOCK;
9336pub type PCM_ROM_BLOCK = *mut _CM_ROM_BLOCK;
9337#[repr(C, packed)]
9338#[derive(Debug, Copy, Clone)]
9339pub struct _CM_INT13_DRIVE_PARAMETER {
9340 pub DriveSelect: USHORT,
9341 pub MaxCylinders: ULONG,
9342 pub SectorsPerTrack: USHORT,
9343 pub MaxHeads: USHORT,
9344 pub NumberDrives: USHORT,
9345}
9346pub type CM_INT13_DRIVE_PARAMETER = _CM_INT13_DRIVE_PARAMETER;
9347pub type PCM_INT13_DRIVE_PARAMETER = *mut _CM_INT13_DRIVE_PARAMETER;
9348#[repr(C, packed)]
9349#[derive(Debug, Copy, Clone)]
9350pub struct _CM_MCA_POS_DATA {
9351 pub AdapterId: USHORT,
9352 pub PosData1: UCHAR,
9353 pub PosData2: UCHAR,
9354 pub PosData3: UCHAR,
9355 pub PosData4: UCHAR,
9356}
9357pub type CM_MCA_POS_DATA = _CM_MCA_POS_DATA;
9358pub type PCM_MCA_POS_DATA = *mut _CM_MCA_POS_DATA;
9359#[repr(C)]
9360#[derive(Debug, Copy, Clone)]
9361pub struct _EISA_MEMORY_TYPE {
9362 pub _bitfield_align_1: [u8; 0],
9363 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9364}
9365impl _EISA_MEMORY_TYPE {
9366 #[inline]
9367 pub fn ReadWrite(&self) -> UCHAR {
9368 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
9369 }
9370 #[inline]
9371 pub fn set_ReadWrite(&mut self, val: UCHAR) {
9372 unsafe {
9373 let val: u8 = ::core::mem::transmute(val);
9374 self._bitfield_1.set(0usize, 1u8, val as u64)
9375 }
9376 }
9377 #[inline]
9378 pub unsafe fn ReadWrite_raw(this: *const Self) -> UCHAR {
9379 unsafe {
9380 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9381 ::core::ptr::addr_of!((*this)._bitfield_1),
9382 0usize,
9383 1u8,
9384 ) as u8)
9385 }
9386 }
9387 #[inline]
9388 pub unsafe fn set_ReadWrite_raw(this: *mut Self, val: UCHAR) {
9389 unsafe {
9390 let val: u8 = ::core::mem::transmute(val);
9391 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9392 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9393 0usize,
9394 1u8,
9395 val as u64,
9396 )
9397 }
9398 }
9399 #[inline]
9400 pub fn Cached(&self) -> UCHAR {
9401 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
9402 }
9403 #[inline]
9404 pub fn set_Cached(&mut self, val: UCHAR) {
9405 unsafe {
9406 let val: u8 = ::core::mem::transmute(val);
9407 self._bitfield_1.set(1usize, 1u8, val as u64)
9408 }
9409 }
9410 #[inline]
9411 pub unsafe fn Cached_raw(this: *const Self) -> UCHAR {
9412 unsafe {
9413 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9414 ::core::ptr::addr_of!((*this)._bitfield_1),
9415 1usize,
9416 1u8,
9417 ) as u8)
9418 }
9419 }
9420 #[inline]
9421 pub unsafe fn set_Cached_raw(this: *mut Self, val: UCHAR) {
9422 unsafe {
9423 let val: u8 = ::core::mem::transmute(val);
9424 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9425 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9426 1usize,
9427 1u8,
9428 val as u64,
9429 )
9430 }
9431 }
9432 #[inline]
9433 pub fn Reserved0(&self) -> UCHAR {
9434 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
9435 }
9436 #[inline]
9437 pub fn set_Reserved0(&mut self, val: UCHAR) {
9438 unsafe {
9439 let val: u8 = ::core::mem::transmute(val);
9440 self._bitfield_1.set(2usize, 1u8, val as u64)
9441 }
9442 }
9443 #[inline]
9444 pub unsafe fn Reserved0_raw(this: *const Self) -> UCHAR {
9445 unsafe {
9446 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9447 ::core::ptr::addr_of!((*this)._bitfield_1),
9448 2usize,
9449 1u8,
9450 ) as u8)
9451 }
9452 }
9453 #[inline]
9454 pub unsafe fn set_Reserved0_raw(this: *mut Self, val: UCHAR) {
9455 unsafe {
9456 let val: u8 = ::core::mem::transmute(val);
9457 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9458 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9459 2usize,
9460 1u8,
9461 val as u64,
9462 )
9463 }
9464 }
9465 #[inline]
9466 pub fn Type(&self) -> UCHAR {
9467 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u8) }
9468 }
9469 #[inline]
9470 pub fn set_Type(&mut self, val: UCHAR) {
9471 unsafe {
9472 let val: u8 = ::core::mem::transmute(val);
9473 self._bitfield_1.set(3usize, 2u8, val as u64)
9474 }
9475 }
9476 #[inline]
9477 pub unsafe fn Type_raw(this: *const Self) -> UCHAR {
9478 unsafe {
9479 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9480 ::core::ptr::addr_of!((*this)._bitfield_1),
9481 3usize,
9482 2u8,
9483 ) as u8)
9484 }
9485 }
9486 #[inline]
9487 pub unsafe fn set_Type_raw(this: *mut Self, val: UCHAR) {
9488 unsafe {
9489 let val: u8 = ::core::mem::transmute(val);
9490 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9491 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9492 3usize,
9493 2u8,
9494 val as u64,
9495 )
9496 }
9497 }
9498 #[inline]
9499 pub fn Shared(&self) -> UCHAR {
9500 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
9501 }
9502 #[inline]
9503 pub fn set_Shared(&mut self, val: UCHAR) {
9504 unsafe {
9505 let val: u8 = ::core::mem::transmute(val);
9506 self._bitfield_1.set(5usize, 1u8, val as u64)
9507 }
9508 }
9509 #[inline]
9510 pub unsafe fn Shared_raw(this: *const Self) -> UCHAR {
9511 unsafe {
9512 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9513 ::core::ptr::addr_of!((*this)._bitfield_1),
9514 5usize,
9515 1u8,
9516 ) as u8)
9517 }
9518 }
9519 #[inline]
9520 pub unsafe fn set_Shared_raw(this: *mut Self, val: UCHAR) {
9521 unsafe {
9522 let val: u8 = ::core::mem::transmute(val);
9523 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9524 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9525 5usize,
9526 1u8,
9527 val as u64,
9528 )
9529 }
9530 }
9531 #[inline]
9532 pub fn Reserved1(&self) -> UCHAR {
9533 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
9534 }
9535 #[inline]
9536 pub fn set_Reserved1(&mut self, val: UCHAR) {
9537 unsafe {
9538 let val: u8 = ::core::mem::transmute(val);
9539 self._bitfield_1.set(6usize, 1u8, val as u64)
9540 }
9541 }
9542 #[inline]
9543 pub unsafe fn Reserved1_raw(this: *const Self) -> UCHAR {
9544 unsafe {
9545 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9546 ::core::ptr::addr_of!((*this)._bitfield_1),
9547 6usize,
9548 1u8,
9549 ) as u8)
9550 }
9551 }
9552 #[inline]
9553 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: UCHAR) {
9554 unsafe {
9555 let val: u8 = ::core::mem::transmute(val);
9556 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9557 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9558 6usize,
9559 1u8,
9560 val as u64,
9561 )
9562 }
9563 }
9564 #[inline]
9565 pub fn MoreEntries(&self) -> UCHAR {
9566 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
9567 }
9568 #[inline]
9569 pub fn set_MoreEntries(&mut self, val: UCHAR) {
9570 unsafe {
9571 let val: u8 = ::core::mem::transmute(val);
9572 self._bitfield_1.set(7usize, 1u8, val as u64)
9573 }
9574 }
9575 #[inline]
9576 pub unsafe fn MoreEntries_raw(this: *const Self) -> UCHAR {
9577 unsafe {
9578 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9579 ::core::ptr::addr_of!((*this)._bitfield_1),
9580 7usize,
9581 1u8,
9582 ) as u8)
9583 }
9584 }
9585 #[inline]
9586 pub unsafe fn set_MoreEntries_raw(this: *mut Self, val: UCHAR) {
9587 unsafe {
9588 let val: u8 = ::core::mem::transmute(val);
9589 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9590 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9591 7usize,
9592 1u8,
9593 val as u64,
9594 )
9595 }
9596 }
9597 #[inline]
9598 pub fn new_bitfield_1(
9599 ReadWrite: UCHAR,
9600 Cached: UCHAR,
9601 Reserved0: UCHAR,
9602 Type: UCHAR,
9603 Shared: UCHAR,
9604 Reserved1: UCHAR,
9605 MoreEntries: UCHAR,
9606 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
9607 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
9608 __bindgen_bitfield_unit.set(0usize, 1u8, {
9609 let ReadWrite: u8 = unsafe { ::core::mem::transmute(ReadWrite) };
9610 ReadWrite as u64
9611 });
9612 __bindgen_bitfield_unit.set(1usize, 1u8, {
9613 let Cached: u8 = unsafe { ::core::mem::transmute(Cached) };
9614 Cached as u64
9615 });
9616 __bindgen_bitfield_unit.set(2usize, 1u8, {
9617 let Reserved0: u8 = unsafe { ::core::mem::transmute(Reserved0) };
9618 Reserved0 as u64
9619 });
9620 __bindgen_bitfield_unit.set(3usize, 2u8, {
9621 let Type: u8 = unsafe { ::core::mem::transmute(Type) };
9622 Type as u64
9623 });
9624 __bindgen_bitfield_unit.set(5usize, 1u8, {
9625 let Shared: u8 = unsafe { ::core::mem::transmute(Shared) };
9626 Shared as u64
9627 });
9628 __bindgen_bitfield_unit.set(6usize, 1u8, {
9629 let Reserved1: u8 = unsafe { ::core::mem::transmute(Reserved1) };
9630 Reserved1 as u64
9631 });
9632 __bindgen_bitfield_unit.set(7usize, 1u8, {
9633 let MoreEntries: u8 = unsafe { ::core::mem::transmute(MoreEntries) };
9634 MoreEntries as u64
9635 });
9636 __bindgen_bitfield_unit
9637 }
9638}
9639pub type EISA_MEMORY_TYPE = _EISA_MEMORY_TYPE;
9640pub type PEISA_MEMORY_TYPE = *mut _EISA_MEMORY_TYPE;
9641#[repr(C, packed)]
9642#[derive(Debug, Copy, Clone)]
9643pub struct _EISA_MEMORY_CONFIGURATION {
9644 pub ConfigurationByte: EISA_MEMORY_TYPE,
9645 pub DataSize: UCHAR,
9646 pub AddressLowWord: USHORT,
9647 pub AddressHighByte: UCHAR,
9648 pub MemorySize: USHORT,
9649}
9650pub type EISA_MEMORY_CONFIGURATION = _EISA_MEMORY_CONFIGURATION;
9651pub type PEISA_MEMORY_CONFIGURATION = *mut _EISA_MEMORY_CONFIGURATION;
9652#[repr(C)]
9653#[derive(Debug, Copy, Clone)]
9654pub struct _EISA_IRQ_DESCRIPTOR {
9655 pub _bitfield_align_1: [u8; 0],
9656 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9657}
9658impl _EISA_IRQ_DESCRIPTOR {
9659 #[inline]
9660 pub fn Interrupt(&self) -> UCHAR {
9661 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u8) }
9662 }
9663 #[inline]
9664 pub fn set_Interrupt(&mut self, val: UCHAR) {
9665 unsafe {
9666 let val: u8 = ::core::mem::transmute(val);
9667 self._bitfield_1.set(0usize, 4u8, val as u64)
9668 }
9669 }
9670 #[inline]
9671 pub unsafe fn Interrupt_raw(this: *const Self) -> UCHAR {
9672 unsafe {
9673 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9674 ::core::ptr::addr_of!((*this)._bitfield_1),
9675 0usize,
9676 4u8,
9677 ) as u8)
9678 }
9679 }
9680 #[inline]
9681 pub unsafe fn set_Interrupt_raw(this: *mut Self, val: UCHAR) {
9682 unsafe {
9683 let val: u8 = ::core::mem::transmute(val);
9684 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9685 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9686 0usize,
9687 4u8,
9688 val as u64,
9689 )
9690 }
9691 }
9692 #[inline]
9693 pub fn Reserved(&self) -> UCHAR {
9694 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
9695 }
9696 #[inline]
9697 pub fn set_Reserved(&mut self, val: UCHAR) {
9698 unsafe {
9699 let val: u8 = ::core::mem::transmute(val);
9700 self._bitfield_1.set(4usize, 1u8, val as u64)
9701 }
9702 }
9703 #[inline]
9704 pub unsafe fn Reserved_raw(this: *const Self) -> UCHAR {
9705 unsafe {
9706 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9707 ::core::ptr::addr_of!((*this)._bitfield_1),
9708 4usize,
9709 1u8,
9710 ) as u8)
9711 }
9712 }
9713 #[inline]
9714 pub unsafe fn set_Reserved_raw(this: *mut Self, val: UCHAR) {
9715 unsafe {
9716 let val: u8 = ::core::mem::transmute(val);
9717 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9718 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9719 4usize,
9720 1u8,
9721 val as u64,
9722 )
9723 }
9724 }
9725 #[inline]
9726 pub fn LevelTriggered(&self) -> UCHAR {
9727 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
9728 }
9729 #[inline]
9730 pub fn set_LevelTriggered(&mut self, val: UCHAR) {
9731 unsafe {
9732 let val: u8 = ::core::mem::transmute(val);
9733 self._bitfield_1.set(5usize, 1u8, val as u64)
9734 }
9735 }
9736 #[inline]
9737 pub unsafe fn LevelTriggered_raw(this: *const Self) -> UCHAR {
9738 unsafe {
9739 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9740 ::core::ptr::addr_of!((*this)._bitfield_1),
9741 5usize,
9742 1u8,
9743 ) as u8)
9744 }
9745 }
9746 #[inline]
9747 pub unsafe fn set_LevelTriggered_raw(this: *mut Self, val: UCHAR) {
9748 unsafe {
9749 let val: u8 = ::core::mem::transmute(val);
9750 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9751 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9752 5usize,
9753 1u8,
9754 val as u64,
9755 )
9756 }
9757 }
9758 #[inline]
9759 pub fn Shared(&self) -> UCHAR {
9760 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
9761 }
9762 #[inline]
9763 pub fn set_Shared(&mut self, val: UCHAR) {
9764 unsafe {
9765 let val: u8 = ::core::mem::transmute(val);
9766 self._bitfield_1.set(6usize, 1u8, val as u64)
9767 }
9768 }
9769 #[inline]
9770 pub unsafe fn Shared_raw(this: *const Self) -> UCHAR {
9771 unsafe {
9772 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9773 ::core::ptr::addr_of!((*this)._bitfield_1),
9774 6usize,
9775 1u8,
9776 ) as u8)
9777 }
9778 }
9779 #[inline]
9780 pub unsafe fn set_Shared_raw(this: *mut Self, val: UCHAR) {
9781 unsafe {
9782 let val: u8 = ::core::mem::transmute(val);
9783 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9784 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9785 6usize,
9786 1u8,
9787 val as u64,
9788 )
9789 }
9790 }
9791 #[inline]
9792 pub fn MoreEntries(&self) -> UCHAR {
9793 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
9794 }
9795 #[inline]
9796 pub fn set_MoreEntries(&mut self, val: UCHAR) {
9797 unsafe {
9798 let val: u8 = ::core::mem::transmute(val);
9799 self._bitfield_1.set(7usize, 1u8, val as u64)
9800 }
9801 }
9802 #[inline]
9803 pub unsafe fn MoreEntries_raw(this: *const Self) -> UCHAR {
9804 unsafe {
9805 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9806 ::core::ptr::addr_of!((*this)._bitfield_1),
9807 7usize,
9808 1u8,
9809 ) as u8)
9810 }
9811 }
9812 #[inline]
9813 pub unsafe fn set_MoreEntries_raw(this: *mut Self, val: UCHAR) {
9814 unsafe {
9815 let val: u8 = ::core::mem::transmute(val);
9816 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9817 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9818 7usize,
9819 1u8,
9820 val as u64,
9821 )
9822 }
9823 }
9824 #[inline]
9825 pub fn new_bitfield_1(
9826 Interrupt: UCHAR,
9827 Reserved: UCHAR,
9828 LevelTriggered: UCHAR,
9829 Shared: UCHAR,
9830 MoreEntries: UCHAR,
9831 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
9832 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
9833 __bindgen_bitfield_unit.set(0usize, 4u8, {
9834 let Interrupt: u8 = unsafe { ::core::mem::transmute(Interrupt) };
9835 Interrupt as u64
9836 });
9837 __bindgen_bitfield_unit.set(4usize, 1u8, {
9838 let Reserved: u8 = unsafe { ::core::mem::transmute(Reserved) };
9839 Reserved as u64
9840 });
9841 __bindgen_bitfield_unit.set(5usize, 1u8, {
9842 let LevelTriggered: u8 = unsafe { ::core::mem::transmute(LevelTriggered) };
9843 LevelTriggered as u64
9844 });
9845 __bindgen_bitfield_unit.set(6usize, 1u8, {
9846 let Shared: u8 = unsafe { ::core::mem::transmute(Shared) };
9847 Shared as u64
9848 });
9849 __bindgen_bitfield_unit.set(7usize, 1u8, {
9850 let MoreEntries: u8 = unsafe { ::core::mem::transmute(MoreEntries) };
9851 MoreEntries as u64
9852 });
9853 __bindgen_bitfield_unit
9854 }
9855}
9856pub type EISA_IRQ_DESCRIPTOR = _EISA_IRQ_DESCRIPTOR;
9857pub type PEISA_IRQ_DESCRIPTOR = *mut _EISA_IRQ_DESCRIPTOR;
9858#[repr(C)]
9859#[derive(Debug, Copy, Clone)]
9860pub struct _EISA_IRQ_CONFIGURATION {
9861 pub ConfigurationByte: EISA_IRQ_DESCRIPTOR,
9862 pub Reserved: UCHAR,
9863}
9864pub type EISA_IRQ_CONFIGURATION = _EISA_IRQ_CONFIGURATION;
9865pub type PEISA_IRQ_CONFIGURATION = *mut _EISA_IRQ_CONFIGURATION;
9866#[repr(C)]
9867#[derive(Debug, Copy, Clone)]
9868pub struct _DMA_CONFIGURATION_BYTE0 {
9869 pub _bitfield_align_1: [u8; 0],
9870 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
9871}
9872impl _DMA_CONFIGURATION_BYTE0 {
9873 #[inline]
9874 pub fn Channel(&self) -> UCHAR {
9875 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) }
9876 }
9877 #[inline]
9878 pub fn set_Channel(&mut self, val: UCHAR) {
9879 unsafe {
9880 let val: u8 = ::core::mem::transmute(val);
9881 self._bitfield_1.set(0usize, 3u8, val as u64)
9882 }
9883 }
9884 #[inline]
9885 pub unsafe fn Channel_raw(this: *const Self) -> UCHAR {
9886 unsafe {
9887 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9888 ::core::ptr::addr_of!((*this)._bitfield_1),
9889 0usize,
9890 3u8,
9891 ) as u8)
9892 }
9893 }
9894 #[inline]
9895 pub unsafe fn set_Channel_raw(this: *mut Self, val: UCHAR) {
9896 unsafe {
9897 let val: u8 = ::core::mem::transmute(val);
9898 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9899 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9900 0usize,
9901 3u8,
9902 val as u64,
9903 )
9904 }
9905 }
9906 #[inline]
9907 pub fn Reserved(&self) -> UCHAR {
9908 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 3u8) as u8) }
9909 }
9910 #[inline]
9911 pub fn set_Reserved(&mut self, val: UCHAR) {
9912 unsafe {
9913 let val: u8 = ::core::mem::transmute(val);
9914 self._bitfield_1.set(3usize, 3u8, val as u64)
9915 }
9916 }
9917 #[inline]
9918 pub unsafe fn Reserved_raw(this: *const Self) -> UCHAR {
9919 unsafe {
9920 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9921 ::core::ptr::addr_of!((*this)._bitfield_1),
9922 3usize,
9923 3u8,
9924 ) as u8)
9925 }
9926 }
9927 #[inline]
9928 pub unsafe fn set_Reserved_raw(this: *mut Self, val: UCHAR) {
9929 unsafe {
9930 let val: u8 = ::core::mem::transmute(val);
9931 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9932 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9933 3usize,
9934 3u8,
9935 val as u64,
9936 )
9937 }
9938 }
9939 #[inline]
9940 pub fn Shared(&self) -> UCHAR {
9941 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
9942 }
9943 #[inline]
9944 pub fn set_Shared(&mut self, val: UCHAR) {
9945 unsafe {
9946 let val: u8 = ::core::mem::transmute(val);
9947 self._bitfield_1.set(6usize, 1u8, val as u64)
9948 }
9949 }
9950 #[inline]
9951 pub unsafe fn Shared_raw(this: *const Self) -> UCHAR {
9952 unsafe {
9953 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9954 ::core::ptr::addr_of!((*this)._bitfield_1),
9955 6usize,
9956 1u8,
9957 ) as u8)
9958 }
9959 }
9960 #[inline]
9961 pub unsafe fn set_Shared_raw(this: *mut Self, val: UCHAR) {
9962 unsafe {
9963 let val: u8 = ::core::mem::transmute(val);
9964 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9965 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9966 6usize,
9967 1u8,
9968 val as u64,
9969 )
9970 }
9971 }
9972 #[inline]
9973 pub fn MoreEntries(&self) -> UCHAR {
9974 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
9975 }
9976 #[inline]
9977 pub fn set_MoreEntries(&mut self, val: UCHAR) {
9978 unsafe {
9979 let val: u8 = ::core::mem::transmute(val);
9980 self._bitfield_1.set(7usize, 1u8, val as u64)
9981 }
9982 }
9983 #[inline]
9984 pub unsafe fn MoreEntries_raw(this: *const Self) -> UCHAR {
9985 unsafe {
9986 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
9987 ::core::ptr::addr_of!((*this)._bitfield_1),
9988 7usize,
9989 1u8,
9990 ) as u8)
9991 }
9992 }
9993 #[inline]
9994 pub unsafe fn set_MoreEntries_raw(this: *mut Self, val: UCHAR) {
9995 unsafe {
9996 let val: u8 = ::core::mem::transmute(val);
9997 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
9998 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
9999 7usize,
10000 1u8,
10001 val as u64,
10002 )
10003 }
10004 }
10005 #[inline]
10006 pub fn new_bitfield_1(
10007 Channel: UCHAR,
10008 Reserved: UCHAR,
10009 Shared: UCHAR,
10010 MoreEntries: UCHAR,
10011 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10012 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10013 __bindgen_bitfield_unit.set(0usize, 3u8, {
10014 let Channel: u8 = unsafe { ::core::mem::transmute(Channel) };
10015 Channel as u64
10016 });
10017 __bindgen_bitfield_unit.set(3usize, 3u8, {
10018 let Reserved: u8 = unsafe { ::core::mem::transmute(Reserved) };
10019 Reserved as u64
10020 });
10021 __bindgen_bitfield_unit.set(6usize, 1u8, {
10022 let Shared: u8 = unsafe { ::core::mem::transmute(Shared) };
10023 Shared as u64
10024 });
10025 __bindgen_bitfield_unit.set(7usize, 1u8, {
10026 let MoreEntries: u8 = unsafe { ::core::mem::transmute(MoreEntries) };
10027 MoreEntries as u64
10028 });
10029 __bindgen_bitfield_unit
10030 }
10031}
10032pub type DMA_CONFIGURATION_BYTE0 = _DMA_CONFIGURATION_BYTE0;
10033#[repr(C)]
10034#[derive(Debug, Copy, Clone)]
10035pub struct _DMA_CONFIGURATION_BYTE1 {
10036 pub _bitfield_align_1: [u8; 0],
10037 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10038}
10039impl _DMA_CONFIGURATION_BYTE1 {
10040 #[inline]
10041 pub fn Reserved0(&self) -> UCHAR {
10042 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u8) }
10043 }
10044 #[inline]
10045 pub fn set_Reserved0(&mut self, val: UCHAR) {
10046 unsafe {
10047 let val: u8 = ::core::mem::transmute(val);
10048 self._bitfield_1.set(0usize, 2u8, val as u64)
10049 }
10050 }
10051 #[inline]
10052 pub unsafe fn Reserved0_raw(this: *const Self) -> UCHAR {
10053 unsafe {
10054 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10055 ::core::ptr::addr_of!((*this)._bitfield_1),
10056 0usize,
10057 2u8,
10058 ) as u8)
10059 }
10060 }
10061 #[inline]
10062 pub unsafe fn set_Reserved0_raw(this: *mut Self, val: UCHAR) {
10063 unsafe {
10064 let val: u8 = ::core::mem::transmute(val);
10065 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10066 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10067 0usize,
10068 2u8,
10069 val as u64,
10070 )
10071 }
10072 }
10073 #[inline]
10074 pub fn TransferSize(&self) -> UCHAR {
10075 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u8) }
10076 }
10077 #[inline]
10078 pub fn set_TransferSize(&mut self, val: UCHAR) {
10079 unsafe {
10080 let val: u8 = ::core::mem::transmute(val);
10081 self._bitfield_1.set(2usize, 2u8, val as u64)
10082 }
10083 }
10084 #[inline]
10085 pub unsafe fn TransferSize_raw(this: *const Self) -> UCHAR {
10086 unsafe {
10087 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10088 ::core::ptr::addr_of!((*this)._bitfield_1),
10089 2usize,
10090 2u8,
10091 ) as u8)
10092 }
10093 }
10094 #[inline]
10095 pub unsafe fn set_TransferSize_raw(this: *mut Self, val: UCHAR) {
10096 unsafe {
10097 let val: u8 = ::core::mem::transmute(val);
10098 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10099 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10100 2usize,
10101 2u8,
10102 val as u64,
10103 )
10104 }
10105 }
10106 #[inline]
10107 pub fn Timing(&self) -> UCHAR {
10108 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 2u8) as u8) }
10109 }
10110 #[inline]
10111 pub fn set_Timing(&mut self, val: UCHAR) {
10112 unsafe {
10113 let val: u8 = ::core::mem::transmute(val);
10114 self._bitfield_1.set(4usize, 2u8, val as u64)
10115 }
10116 }
10117 #[inline]
10118 pub unsafe fn Timing_raw(this: *const Self) -> UCHAR {
10119 unsafe {
10120 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10121 ::core::ptr::addr_of!((*this)._bitfield_1),
10122 4usize,
10123 2u8,
10124 ) as u8)
10125 }
10126 }
10127 #[inline]
10128 pub unsafe fn set_Timing_raw(this: *mut Self, val: UCHAR) {
10129 unsafe {
10130 let val: u8 = ::core::mem::transmute(val);
10131 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10132 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10133 4usize,
10134 2u8,
10135 val as u64,
10136 )
10137 }
10138 }
10139 #[inline]
10140 pub fn Reserved1(&self) -> UCHAR {
10141 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
10142 }
10143 #[inline]
10144 pub fn set_Reserved1(&mut self, val: UCHAR) {
10145 unsafe {
10146 let val: u8 = ::core::mem::transmute(val);
10147 self._bitfield_1.set(6usize, 2u8, val as u64)
10148 }
10149 }
10150 #[inline]
10151 pub unsafe fn Reserved1_raw(this: *const Self) -> UCHAR {
10152 unsafe {
10153 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10154 ::core::ptr::addr_of!((*this)._bitfield_1),
10155 6usize,
10156 2u8,
10157 ) as u8)
10158 }
10159 }
10160 #[inline]
10161 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: UCHAR) {
10162 unsafe {
10163 let val: u8 = ::core::mem::transmute(val);
10164 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10165 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10166 6usize,
10167 2u8,
10168 val as u64,
10169 )
10170 }
10171 }
10172 #[inline]
10173 pub fn new_bitfield_1(
10174 Reserved0: UCHAR,
10175 TransferSize: UCHAR,
10176 Timing: UCHAR,
10177 Reserved1: UCHAR,
10178 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10179 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10180 __bindgen_bitfield_unit.set(0usize, 2u8, {
10181 let Reserved0: u8 = unsafe { ::core::mem::transmute(Reserved0) };
10182 Reserved0 as u64
10183 });
10184 __bindgen_bitfield_unit.set(2usize, 2u8, {
10185 let TransferSize: u8 = unsafe { ::core::mem::transmute(TransferSize) };
10186 TransferSize as u64
10187 });
10188 __bindgen_bitfield_unit.set(4usize, 2u8, {
10189 let Timing: u8 = unsafe { ::core::mem::transmute(Timing) };
10190 Timing as u64
10191 });
10192 __bindgen_bitfield_unit.set(6usize, 2u8, {
10193 let Reserved1: u8 = unsafe { ::core::mem::transmute(Reserved1) };
10194 Reserved1 as u64
10195 });
10196 __bindgen_bitfield_unit
10197 }
10198}
10199pub type DMA_CONFIGURATION_BYTE1 = _DMA_CONFIGURATION_BYTE1;
10200#[repr(C)]
10201#[derive(Debug, Copy, Clone)]
10202pub struct _EISA_DMA_CONFIGURATION {
10203 pub ConfigurationByte0: DMA_CONFIGURATION_BYTE0,
10204 pub ConfigurationByte1: DMA_CONFIGURATION_BYTE1,
10205}
10206pub type EISA_DMA_CONFIGURATION = _EISA_DMA_CONFIGURATION;
10207pub type PEISA_DMA_CONFIGURATION = *mut _EISA_DMA_CONFIGURATION;
10208#[repr(C)]
10209#[derive(Debug, Copy, Clone)]
10210pub struct _EISA_PORT_DESCRIPTOR {
10211 pub _bitfield_align_1: [u8; 0],
10212 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
10213}
10214impl _EISA_PORT_DESCRIPTOR {
10215 #[inline]
10216 pub fn NumberPorts(&self) -> UCHAR {
10217 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u8) }
10218 }
10219 #[inline]
10220 pub fn set_NumberPorts(&mut self, val: UCHAR) {
10221 unsafe {
10222 let val: u8 = ::core::mem::transmute(val);
10223 self._bitfield_1.set(0usize, 5u8, val as u64)
10224 }
10225 }
10226 #[inline]
10227 pub unsafe fn NumberPorts_raw(this: *const Self) -> UCHAR {
10228 unsafe {
10229 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10230 ::core::ptr::addr_of!((*this)._bitfield_1),
10231 0usize,
10232 5u8,
10233 ) as u8)
10234 }
10235 }
10236 #[inline]
10237 pub unsafe fn set_NumberPorts_raw(this: *mut Self, val: UCHAR) {
10238 unsafe {
10239 let val: u8 = ::core::mem::transmute(val);
10240 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10241 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10242 0usize,
10243 5u8,
10244 val as u64,
10245 )
10246 }
10247 }
10248 #[inline]
10249 pub fn Reserved(&self) -> UCHAR {
10250 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
10251 }
10252 #[inline]
10253 pub fn set_Reserved(&mut self, val: UCHAR) {
10254 unsafe {
10255 let val: u8 = ::core::mem::transmute(val);
10256 self._bitfield_1.set(5usize, 1u8, val as u64)
10257 }
10258 }
10259 #[inline]
10260 pub unsafe fn Reserved_raw(this: *const Self) -> UCHAR {
10261 unsafe {
10262 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10263 ::core::ptr::addr_of!((*this)._bitfield_1),
10264 5usize,
10265 1u8,
10266 ) as u8)
10267 }
10268 }
10269 #[inline]
10270 pub unsafe fn set_Reserved_raw(this: *mut Self, val: UCHAR) {
10271 unsafe {
10272 let val: u8 = ::core::mem::transmute(val);
10273 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10274 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10275 5usize,
10276 1u8,
10277 val as u64,
10278 )
10279 }
10280 }
10281 #[inline]
10282 pub fn Shared(&self) -> UCHAR {
10283 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
10284 }
10285 #[inline]
10286 pub fn set_Shared(&mut self, val: UCHAR) {
10287 unsafe {
10288 let val: u8 = ::core::mem::transmute(val);
10289 self._bitfield_1.set(6usize, 1u8, val as u64)
10290 }
10291 }
10292 #[inline]
10293 pub unsafe fn Shared_raw(this: *const Self) -> UCHAR {
10294 unsafe {
10295 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10296 ::core::ptr::addr_of!((*this)._bitfield_1),
10297 6usize,
10298 1u8,
10299 ) as u8)
10300 }
10301 }
10302 #[inline]
10303 pub unsafe fn set_Shared_raw(this: *mut Self, val: UCHAR) {
10304 unsafe {
10305 let val: u8 = ::core::mem::transmute(val);
10306 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10307 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10308 6usize,
10309 1u8,
10310 val as u64,
10311 )
10312 }
10313 }
10314 #[inline]
10315 pub fn MoreEntries(&self) -> UCHAR {
10316 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
10317 }
10318 #[inline]
10319 pub fn set_MoreEntries(&mut self, val: UCHAR) {
10320 unsafe {
10321 let val: u8 = ::core::mem::transmute(val);
10322 self._bitfield_1.set(7usize, 1u8, val as u64)
10323 }
10324 }
10325 #[inline]
10326 pub unsafe fn MoreEntries_raw(this: *const Self) -> UCHAR {
10327 unsafe {
10328 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
10329 ::core::ptr::addr_of!((*this)._bitfield_1),
10330 7usize,
10331 1u8,
10332 ) as u8)
10333 }
10334 }
10335 #[inline]
10336 pub unsafe fn set_MoreEntries_raw(this: *mut Self, val: UCHAR) {
10337 unsafe {
10338 let val: u8 = ::core::mem::transmute(val);
10339 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
10340 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10341 7usize,
10342 1u8,
10343 val as u64,
10344 )
10345 }
10346 }
10347 #[inline]
10348 pub fn new_bitfield_1(
10349 NumberPorts: UCHAR,
10350 Reserved: UCHAR,
10351 Shared: UCHAR,
10352 MoreEntries: UCHAR,
10353 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
10354 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
10355 __bindgen_bitfield_unit.set(0usize, 5u8, {
10356 let NumberPorts: u8 = unsafe { ::core::mem::transmute(NumberPorts) };
10357 NumberPorts as u64
10358 });
10359 __bindgen_bitfield_unit.set(5usize, 1u8, {
10360 let Reserved: u8 = unsafe { ::core::mem::transmute(Reserved) };
10361 Reserved as u64
10362 });
10363 __bindgen_bitfield_unit.set(6usize, 1u8, {
10364 let Shared: u8 = unsafe { ::core::mem::transmute(Shared) };
10365 Shared as u64
10366 });
10367 __bindgen_bitfield_unit.set(7usize, 1u8, {
10368 let MoreEntries: u8 = unsafe { ::core::mem::transmute(MoreEntries) };
10369 MoreEntries as u64
10370 });
10371 __bindgen_bitfield_unit
10372 }
10373}
10374pub type EISA_PORT_DESCRIPTOR = _EISA_PORT_DESCRIPTOR;
10375pub type PEISA_PORT_DESCRIPTOR = *mut _EISA_PORT_DESCRIPTOR;
10376#[repr(C, packed)]
10377#[derive(Debug, Copy, Clone)]
10378pub struct _EISA_PORT_CONFIGURATION {
10379 pub Configuration: EISA_PORT_DESCRIPTOR,
10380 pub PortAddress: USHORT,
10381}
10382pub type EISA_PORT_CONFIGURATION = _EISA_PORT_CONFIGURATION;
10383pub type PEISA_PORT_CONFIGURATION = *mut _EISA_PORT_CONFIGURATION;
10384#[repr(C, packed)]
10385#[derive(Debug, Copy, Clone)]
10386pub struct _CM_EISA_SLOT_INFORMATION {
10387 pub ReturnCode: UCHAR,
10388 pub ReturnFlags: UCHAR,
10389 pub MajorRevision: UCHAR,
10390 pub MinorRevision: UCHAR,
10391 pub Checksum: USHORT,
10392 pub NumberFunctions: UCHAR,
10393 pub FunctionInformation: UCHAR,
10394 pub CompressedId: ULONG,
10395}
10396pub type CM_EISA_SLOT_INFORMATION = _CM_EISA_SLOT_INFORMATION;
10397pub type PCM_EISA_SLOT_INFORMATION = *mut _CM_EISA_SLOT_INFORMATION;
10398#[repr(C, packed)]
10399#[derive(Debug, Copy, Clone)]
10400pub struct _CM_EISA_FUNCTION_INFORMATION {
10401 pub CompressedId: ULONG,
10402 pub IdSlotFlags1: UCHAR,
10403 pub IdSlotFlags2: UCHAR,
10404 pub MinorRevision: UCHAR,
10405 pub MajorRevision: UCHAR,
10406 pub Selections: [UCHAR; 26usize],
10407 pub FunctionFlags: UCHAR,
10408 pub TypeString: [UCHAR; 80usize],
10409 pub EisaMemory: [EISA_MEMORY_CONFIGURATION; 9usize],
10410 pub EisaIrq: [EISA_IRQ_CONFIGURATION; 7usize],
10411 pub EisaDma: [EISA_DMA_CONFIGURATION; 4usize],
10412 pub EisaPort: [EISA_PORT_CONFIGURATION; 20usize],
10413 pub InitializationData: [UCHAR; 60usize],
10414}
10415pub type CM_EISA_FUNCTION_INFORMATION = _CM_EISA_FUNCTION_INFORMATION;
10416pub type PCM_EISA_FUNCTION_INFORMATION = *mut _CM_EISA_FUNCTION_INFORMATION;
10417#[repr(C, packed)]
10418#[derive(Debug, Copy, Clone)]
10419pub struct _CM_PNP_BIOS_DEVICE_NODE {
10420 pub Size: USHORT,
10421 pub Node: UCHAR,
10422 pub ProductId: ULONG,
10423 pub DeviceType: [UCHAR; 3usize],
10424 pub DeviceAttributes: USHORT,
10425}
10426pub type CM_PNP_BIOS_DEVICE_NODE = _CM_PNP_BIOS_DEVICE_NODE;
10427pub type PCM_PNP_BIOS_DEVICE_NODE = *mut _CM_PNP_BIOS_DEVICE_NODE;
10428#[repr(C, packed)]
10429#[derive(Debug, Copy, Clone)]
10430pub struct _CM_PNP_BIOS_INSTALLATION_CHECK {
10431 pub Signature: [UCHAR; 4usize],
10432 pub Revision: UCHAR,
10433 pub Length: UCHAR,
10434 pub ControlField: USHORT,
10435 pub Checksum: UCHAR,
10436 pub EventFlagAddress: ULONG,
10437 pub RealModeEntryOffset: USHORT,
10438 pub RealModeEntrySegment: USHORT,
10439 pub ProtectedModeEntryOffset: USHORT,
10440 pub ProtectedModeCodeBaseAddress: ULONG,
10441 pub OemDeviceId: ULONG,
10442 pub RealModeDataBaseAddress: USHORT,
10443 pub ProtectedModeDataBaseAddress: ULONG,
10444}
10445pub type CM_PNP_BIOS_INSTALLATION_CHECK = _CM_PNP_BIOS_INSTALLATION_CHECK;
10446pub type PCM_PNP_BIOS_INSTALLATION_CHECK = *mut _CM_PNP_BIOS_INSTALLATION_CHECK;
10447#[repr(C)]
10448#[derive(Debug, Copy, Clone)]
10449pub struct _CM_SCSI_DEVICE_DATA {
10450 pub Version: USHORT,
10451 pub Revision: USHORT,
10452 pub HostIdentifier: UCHAR,
10453}
10454pub type CM_SCSI_DEVICE_DATA = _CM_SCSI_DEVICE_DATA;
10455pub type PCM_SCSI_DEVICE_DATA = *mut _CM_SCSI_DEVICE_DATA;
10456#[repr(C)]
10457#[derive(Debug, Copy, Clone)]
10458pub struct _CM_VIDEO_DEVICE_DATA {
10459 pub Version: USHORT,
10460 pub Revision: USHORT,
10461 pub VideoClock: ULONG,
10462}
10463pub type CM_VIDEO_DEVICE_DATA = _CM_VIDEO_DEVICE_DATA;
10464pub type PCM_VIDEO_DEVICE_DATA = *mut _CM_VIDEO_DEVICE_DATA;
10465#[repr(C)]
10466#[derive(Debug, Copy, Clone)]
10467pub struct _CM_SONIC_DEVICE_DATA {
10468 pub Version: USHORT,
10469 pub Revision: USHORT,
10470 pub DataConfigurationRegister: USHORT,
10471 pub EthernetAddress: [UCHAR; 8usize],
10472}
10473pub type CM_SONIC_DEVICE_DATA = _CM_SONIC_DEVICE_DATA;
10474pub type PCM_SONIC_DEVICE_DATA = *mut _CM_SONIC_DEVICE_DATA;
10475#[repr(C)]
10476#[derive(Debug, Copy, Clone)]
10477pub struct _CM_SERIAL_DEVICE_DATA {
10478 pub Version: USHORT,
10479 pub Revision: USHORT,
10480 pub BaudClock: ULONG,
10481}
10482pub type CM_SERIAL_DEVICE_DATA = _CM_SERIAL_DEVICE_DATA;
10483pub type PCM_SERIAL_DEVICE_DATA = *mut _CM_SERIAL_DEVICE_DATA;
10484#[repr(C)]
10485#[derive(Debug, Copy, Clone)]
10486pub struct _CM_MONITOR_DEVICE_DATA {
10487 pub Version: USHORT,
10488 pub Revision: USHORT,
10489 pub HorizontalScreenSize: USHORT,
10490 pub VerticalScreenSize: USHORT,
10491 pub HorizontalResolution: USHORT,
10492 pub VerticalResolution: USHORT,
10493 pub HorizontalDisplayTimeLow: USHORT,
10494 pub HorizontalDisplayTime: USHORT,
10495 pub HorizontalDisplayTimeHigh: USHORT,
10496 pub HorizontalBackPorchLow: USHORT,
10497 pub HorizontalBackPorch: USHORT,
10498 pub HorizontalBackPorchHigh: USHORT,
10499 pub HorizontalFrontPorchLow: USHORT,
10500 pub HorizontalFrontPorch: USHORT,
10501 pub HorizontalFrontPorchHigh: USHORT,
10502 pub HorizontalSyncLow: USHORT,
10503 pub HorizontalSync: USHORT,
10504 pub HorizontalSyncHigh: USHORT,
10505 pub VerticalBackPorchLow: USHORT,
10506 pub VerticalBackPorch: USHORT,
10507 pub VerticalBackPorchHigh: USHORT,
10508 pub VerticalFrontPorchLow: USHORT,
10509 pub VerticalFrontPorch: USHORT,
10510 pub VerticalFrontPorchHigh: USHORT,
10511 pub VerticalSyncLow: USHORT,
10512 pub VerticalSync: USHORT,
10513 pub VerticalSyncHigh: USHORT,
10514}
10515pub type CM_MONITOR_DEVICE_DATA = _CM_MONITOR_DEVICE_DATA;
10516pub type PCM_MONITOR_DEVICE_DATA = *mut _CM_MONITOR_DEVICE_DATA;
10517#[repr(C)]
10518#[derive(Debug, Copy, Clone)]
10519pub struct _CM_FLOPPY_DEVICE_DATA {
10520 pub Version: USHORT,
10521 pub Revision: USHORT,
10522 pub Size: [CHAR; 8usize],
10523 pub MaxDensity: ULONG,
10524 pub MountDensity: ULONG,
10525 pub StepRateHeadUnloadTime: UCHAR,
10526 pub HeadLoadTime: UCHAR,
10527 pub MotorOffTime: UCHAR,
10528 pub SectorLengthCode: UCHAR,
10529 pub SectorPerTrack: UCHAR,
10530 pub ReadWriteGapLength: UCHAR,
10531 pub DataTransferLength: UCHAR,
10532 pub FormatGapLength: UCHAR,
10533 pub FormatFillCharacter: UCHAR,
10534 pub HeadSettleTime: UCHAR,
10535 pub MotorSettleTime: UCHAR,
10536 pub MaximumTrackValue: UCHAR,
10537 pub DataTransferRate: UCHAR,
10538}
10539pub type CM_FLOPPY_DEVICE_DATA = _CM_FLOPPY_DEVICE_DATA;
10540pub type PCM_FLOPPY_DEVICE_DATA = *mut _CM_FLOPPY_DEVICE_DATA;
10541#[repr(C)]
10542#[derive(Debug, Copy, Clone)]
10543pub struct _CM_KEYBOARD_DEVICE_DATA {
10544 pub Version: USHORT,
10545 pub Revision: USHORT,
10546 pub Type: UCHAR,
10547 pub Subtype: UCHAR,
10548 pub KeyboardFlags: USHORT,
10549}
10550pub type CM_KEYBOARD_DEVICE_DATA = _CM_KEYBOARD_DEVICE_DATA;
10551pub type PCM_KEYBOARD_DEVICE_DATA = *mut _CM_KEYBOARD_DEVICE_DATA;
10552#[repr(C)]
10553#[derive(Debug, Copy, Clone)]
10554pub struct _CM_DISK_GEOMETRY_DEVICE_DATA {
10555 pub BytesPerSector: ULONG,
10556 pub NumberOfCylinders: ULONG,
10557 pub SectorsPerTrack: ULONG,
10558 pub NumberOfHeads: ULONG,
10559}
10560pub type CM_DISK_GEOMETRY_DEVICE_DATA = _CM_DISK_GEOMETRY_DEVICE_DATA;
10561pub type PCM_DISK_GEOMETRY_DEVICE_DATA = *mut _CM_DISK_GEOMETRY_DEVICE_DATA;
10562pub const _IRQ_DEVICE_POLICY_IrqPolicyMachineDefault: _IRQ_DEVICE_POLICY = 0;
10563pub const _IRQ_DEVICE_POLICY_IrqPolicyAllCloseProcessors: _IRQ_DEVICE_POLICY = 1;
10564pub const _IRQ_DEVICE_POLICY_IrqPolicyOneCloseProcessor: _IRQ_DEVICE_POLICY = 2;
10565pub const _IRQ_DEVICE_POLICY_IrqPolicyAllProcessorsInMachine: _IRQ_DEVICE_POLICY = 3;
10566pub const _IRQ_DEVICE_POLICY_IrqPolicySpecifiedProcessors: _IRQ_DEVICE_POLICY = 4;
10567pub const _IRQ_DEVICE_POLICY_IrqPolicySpreadMessagesAcrossAllProcessors: _IRQ_DEVICE_POLICY = 5;
10568pub const _IRQ_DEVICE_POLICY_IrqPolicyAllProcessorsInMachineWhenSteered: _IRQ_DEVICE_POLICY = 6;
10569pub type _IRQ_DEVICE_POLICY = core::ffi::c_int;
10570pub use self::_IRQ_DEVICE_POLICY as IRQ_DEVICE_POLICY;
10571pub type PIRQ_DEVICE_POLICY = *mut _IRQ_DEVICE_POLICY;
10572pub const _IRQ_PRIORITY_IrqPriorityUndefined: _IRQ_PRIORITY = 0;
10573pub const _IRQ_PRIORITY_IrqPriorityLow: _IRQ_PRIORITY = 1;
10574pub const _IRQ_PRIORITY_IrqPriorityNormal: _IRQ_PRIORITY = 2;
10575pub const _IRQ_PRIORITY_IrqPriorityHigh: _IRQ_PRIORITY = 3;
10576pub type _IRQ_PRIORITY = core::ffi::c_int;
10577pub use self::_IRQ_PRIORITY as IRQ_PRIORITY;
10578pub type PIRQ_PRIORITY = *mut _IRQ_PRIORITY;
10579pub const _IRQ_GROUP_POLICY_GroupAffinityAllGroupZero: _IRQ_GROUP_POLICY = 0;
10580pub const _IRQ_GROUP_POLICY_GroupAffinityDontCare: _IRQ_GROUP_POLICY = 1;
10581pub type _IRQ_GROUP_POLICY = core::ffi::c_int;
10582pub use self::_IRQ_GROUP_POLICY as IRQ_GROUP_POLICY;
10583pub type PIRQ_GROUP_POLICY = *mut _IRQ_GROUP_POLICY;
10584#[repr(C)]
10585#[derive(Copy, Clone)]
10586pub struct _IO_RESOURCE_DESCRIPTOR {
10587 pub Option: UCHAR,
10588 pub Type: UCHAR,
10589 pub ShareDisposition: UCHAR,
10590 pub Spare1: UCHAR,
10591 pub Flags: USHORT,
10592 pub Spare2: USHORT,
10593 pub u: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1,
10594}
10595#[repr(C)]
10596#[derive(Copy, Clone)]
10597pub union _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1 {
10598 pub Port: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1,
10599 pub Memory: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2,
10600 pub Interrupt: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_3,
10601 pub Dma: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4,
10602 pub DmaV3: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_5,
10603 pub Generic: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_6,
10604 pub DevicePrivate: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_7,
10605 pub BusNumber: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_8,
10606 pub ConfigData: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_9,
10607 pub Memory40: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_10,
10608 pub Memory48: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_11,
10609 pub Memory64: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_12,
10610 pub Connection: _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_13,
10611}
10612#[repr(C)]
10613#[derive(Copy, Clone)]
10614pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
10615 pub Length: ULONG,
10616 pub Alignment: ULONG,
10617 pub MinimumAddress: PHYSICAL_ADDRESS,
10618 pub MaximumAddress: PHYSICAL_ADDRESS,
10619}
10620#[repr(C)]
10621#[derive(Copy, Clone)]
10622pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_2 {
10623 pub Length: ULONG,
10624 pub Alignment: ULONG,
10625 pub MinimumAddress: PHYSICAL_ADDRESS,
10626 pub MaximumAddress: PHYSICAL_ADDRESS,
10627}
10628#[repr(C)]
10629#[derive(Debug, Copy, Clone)]
10630pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_3 {
10631 pub MinimumVector: ULONG,
10632 pub MaximumVector: ULONG,
10633 pub AffinityPolicy: IRQ_DEVICE_POLICY,
10634 pub PriorityPolicy: IRQ_PRIORITY,
10635 pub TargetedProcessors: KAFFINITY,
10636}
10637#[repr(C)]
10638#[derive(Debug, Copy, Clone)]
10639pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_4 {
10640 pub MinimumChannel: ULONG,
10641 pub MaximumChannel: ULONG,
10642}
10643#[repr(C)]
10644#[derive(Debug, Copy, Clone)]
10645pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_5 {
10646 pub RequestLine: ULONG,
10647 pub Reserved: ULONG,
10648 pub Channel: ULONG,
10649 pub TransferWidth: ULONG,
10650}
10651#[repr(C)]
10652#[derive(Copy, Clone)]
10653pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_6 {
10654 pub Length: ULONG,
10655 pub Alignment: ULONG,
10656 pub MinimumAddress: PHYSICAL_ADDRESS,
10657 pub MaximumAddress: PHYSICAL_ADDRESS,
10658}
10659#[repr(C)]
10660#[derive(Debug, Copy, Clone)]
10661pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_7 {
10662 pub Data: [ULONG; 3usize],
10663}
10664#[repr(C)]
10665#[derive(Debug, Copy, Clone)]
10666pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_8 {
10667 pub Length: ULONG,
10668 pub MinBusNumber: ULONG,
10669 pub MaxBusNumber: ULONG,
10670 pub Reserved: ULONG,
10671}
10672#[repr(C)]
10673#[derive(Debug, Copy, Clone)]
10674pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_9 {
10675 pub Priority: ULONG,
10676 pub Reserved1: ULONG,
10677 pub Reserved2: ULONG,
10678}
10679#[repr(C)]
10680#[derive(Copy, Clone)]
10681pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_10 {
10682 pub Length40: ULONG,
10683 pub Alignment40: ULONG,
10684 pub MinimumAddress: PHYSICAL_ADDRESS,
10685 pub MaximumAddress: PHYSICAL_ADDRESS,
10686}
10687#[repr(C)]
10688#[derive(Copy, Clone)]
10689pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_11 {
10690 pub Length48: ULONG,
10691 pub Alignment48: ULONG,
10692 pub MinimumAddress: PHYSICAL_ADDRESS,
10693 pub MaximumAddress: PHYSICAL_ADDRESS,
10694}
10695#[repr(C)]
10696#[derive(Copy, Clone)]
10697pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_12 {
10698 pub Length64: ULONG,
10699 pub Alignment64: ULONG,
10700 pub MinimumAddress: PHYSICAL_ADDRESS,
10701 pub MaximumAddress: PHYSICAL_ADDRESS,
10702}
10703#[repr(C)]
10704#[derive(Debug, Copy, Clone)]
10705pub struct _IO_RESOURCE_DESCRIPTOR__bindgen_ty_1__bindgen_ty_13 {
10706 pub Class: UCHAR,
10707 pub Type: UCHAR,
10708 pub Reserved1: UCHAR,
10709 pub Reserved2: UCHAR,
10710 pub IdLowPart: ULONG,
10711 pub IdHighPart: ULONG,
10712}
10713pub type IO_RESOURCE_DESCRIPTOR = _IO_RESOURCE_DESCRIPTOR;
10714pub type PIO_RESOURCE_DESCRIPTOR = *mut _IO_RESOURCE_DESCRIPTOR;
10715#[repr(C)]
10716#[derive(Copy, Clone)]
10717pub struct _IO_RESOURCE_LIST {
10718 pub Version: USHORT,
10719 pub Revision: USHORT,
10720 pub Count: ULONG,
10721 pub Descriptors: [IO_RESOURCE_DESCRIPTOR; 1usize],
10722}
10723pub type IO_RESOURCE_LIST = _IO_RESOURCE_LIST;
10724pub type PIO_RESOURCE_LIST = *mut _IO_RESOURCE_LIST;
10725#[repr(C)]
10726#[derive(Copy, Clone)]
10727pub struct _IO_RESOURCE_REQUIREMENTS_LIST {
10728 pub ListSize: ULONG,
10729 pub InterfaceType: INTERFACE_TYPE,
10730 pub BusNumber: ULONG,
10731 pub SlotNumber: ULONG,
10732 pub Reserved: [ULONG; 3usize],
10733 pub AlternativeLists: ULONG,
10734 pub List: [IO_RESOURCE_LIST; 1usize],
10735}
10736pub type IO_RESOURCE_REQUIREMENTS_LIST = _IO_RESOURCE_REQUIREMENTS_LIST;
10737pub type PIO_RESOURCE_REQUIREMENTS_LIST = *mut _IO_RESOURCE_REQUIREMENTS_LIST;
10738#[repr(C)]
10739#[repr(align(16))]
10740#[derive(Debug, Copy, Clone)]
10741pub struct _SLIST_ENTRY {
10742 pub Next: *mut _SLIST_ENTRY,
10743}
10744pub type SLIST_ENTRY = _SLIST_ENTRY;
10745pub type PSLIST_ENTRY = *mut _SLIST_ENTRY;
10746#[repr(C)]
10747#[repr(align(16))]
10748#[derive(Copy, Clone)]
10749pub union _SLIST_HEADER {
10750 pub __bindgen_anon_1: _SLIST_HEADER__bindgen_ty_1,
10751 pub HeaderX64: _SLIST_HEADER__bindgen_ty_2,
10752}
10753#[repr(C)]
10754#[derive(Debug, Copy, Clone)]
10755pub struct _SLIST_HEADER__bindgen_ty_1 {
10756 pub Alignment: ULONGLONG,
10757 pub Region: ULONGLONG,
10758}
10759#[repr(C)]
10760#[derive(Debug, Copy, Clone)]
10761pub struct _SLIST_HEADER__bindgen_ty_2 {
10762 pub _bitfield_align_1: [u64; 0],
10763 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 16usize]>,
10764}
10765impl _SLIST_HEADER__bindgen_ty_2 {
10766 #[inline]
10767 pub fn Depth(&self) -> ULONGLONG {
10768 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u64) }
10769 }
10770 #[inline]
10771 pub fn set_Depth(&mut self, val: ULONGLONG) {
10772 unsafe {
10773 let val: u64 = ::core::mem::transmute(val);
10774 self._bitfield_1.set(0usize, 16u8, val as u64)
10775 }
10776 }
10777 #[inline]
10778 pub unsafe fn Depth_raw(this: *const Self) -> ULONGLONG {
10779 unsafe {
10780 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 16usize]>>::raw_get(
10781 ::core::ptr::addr_of!((*this)._bitfield_1),
10782 0usize,
10783 16u8,
10784 ) as u64)
10785 }
10786 }
10787 #[inline]
10788 pub unsafe fn set_Depth_raw(this: *mut Self, val: ULONGLONG) {
10789 unsafe {
10790 let val: u64 = ::core::mem::transmute(val);
10791 <__BindgenBitfieldUnit<[u8; 16usize]>>::raw_set(
10792 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10793 0usize,
10794 16u8,
10795 val as u64,
10796 )
10797 }
10798 }
10799 #[inline]
10800 pub fn Sequence(&self) -> ULONGLONG {
10801 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 48u8) as u64) }
10802 }
10803 #[inline]
10804 pub fn set_Sequence(&mut self, val: ULONGLONG) {
10805 unsafe {
10806 let val: u64 = ::core::mem::transmute(val);
10807 self._bitfield_1.set(16usize, 48u8, val as u64)
10808 }
10809 }
10810 #[inline]
10811 pub unsafe fn Sequence_raw(this: *const Self) -> ULONGLONG {
10812 unsafe {
10813 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 16usize]>>::raw_get(
10814 ::core::ptr::addr_of!((*this)._bitfield_1),
10815 16usize,
10816 48u8,
10817 ) as u64)
10818 }
10819 }
10820 #[inline]
10821 pub unsafe fn set_Sequence_raw(this: *mut Self, val: ULONGLONG) {
10822 unsafe {
10823 let val: u64 = ::core::mem::transmute(val);
10824 <__BindgenBitfieldUnit<[u8; 16usize]>>::raw_set(
10825 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10826 16usize,
10827 48u8,
10828 val as u64,
10829 )
10830 }
10831 }
10832 #[inline]
10833 pub fn Reserved(&self) -> ULONGLONG {
10834 unsafe { ::core::mem::transmute(self._bitfield_1.get(64usize, 4u8) as u64) }
10835 }
10836 #[inline]
10837 pub fn set_Reserved(&mut self, val: ULONGLONG) {
10838 unsafe {
10839 let val: u64 = ::core::mem::transmute(val);
10840 self._bitfield_1.set(64usize, 4u8, val as u64)
10841 }
10842 }
10843 #[inline]
10844 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
10845 unsafe {
10846 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 16usize]>>::raw_get(
10847 ::core::ptr::addr_of!((*this)._bitfield_1),
10848 64usize,
10849 4u8,
10850 ) as u64)
10851 }
10852 }
10853 #[inline]
10854 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
10855 unsafe {
10856 let val: u64 = ::core::mem::transmute(val);
10857 <__BindgenBitfieldUnit<[u8; 16usize]>>::raw_set(
10858 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10859 64usize,
10860 4u8,
10861 val as u64,
10862 )
10863 }
10864 }
10865 #[inline]
10866 pub fn NextEntry(&self) -> ULONGLONG {
10867 unsafe { ::core::mem::transmute(self._bitfield_1.get(68usize, 60u8) as u64) }
10868 }
10869 #[inline]
10870 pub fn set_NextEntry(&mut self, val: ULONGLONG) {
10871 unsafe {
10872 let val: u64 = ::core::mem::transmute(val);
10873 self._bitfield_1.set(68usize, 60u8, val as u64)
10874 }
10875 }
10876 #[inline]
10877 pub unsafe fn NextEntry_raw(this: *const Self) -> ULONGLONG {
10878 unsafe {
10879 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 16usize]>>::raw_get(
10880 ::core::ptr::addr_of!((*this)._bitfield_1),
10881 68usize,
10882 60u8,
10883 ) as u64)
10884 }
10885 }
10886 #[inline]
10887 pub unsafe fn set_NextEntry_raw(this: *mut Self, val: ULONGLONG) {
10888 unsafe {
10889 let val: u64 = ::core::mem::transmute(val);
10890 <__BindgenBitfieldUnit<[u8; 16usize]>>::raw_set(
10891 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
10892 68usize,
10893 60u8,
10894 val as u64,
10895 )
10896 }
10897 }
10898 #[inline]
10899 pub fn new_bitfield_1(
10900 Depth: ULONGLONG,
10901 Sequence: ULONGLONG,
10902 Reserved: ULONGLONG,
10903 NextEntry: ULONGLONG,
10904 ) -> __BindgenBitfieldUnit<[u8; 16usize]> {
10905 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 16usize]> = Default::default();
10906 __bindgen_bitfield_unit.set(0usize, 16u8, {
10907 let Depth: u64 = unsafe { ::core::mem::transmute(Depth) };
10908 Depth as u64
10909 });
10910 __bindgen_bitfield_unit.set(16usize, 48u8, {
10911 let Sequence: u64 = unsafe { ::core::mem::transmute(Sequence) };
10912 Sequence as u64
10913 });
10914 __bindgen_bitfield_unit.set(64usize, 4u8, {
10915 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
10916 Reserved as u64
10917 });
10918 __bindgen_bitfield_unit.set(68usize, 60u8, {
10919 let NextEntry: u64 = unsafe { ::core::mem::transmute(NextEntry) };
10920 NextEntry as u64
10921 });
10922 __bindgen_bitfield_unit
10923 }
10924}
10925pub type SLIST_HEADER = _SLIST_HEADER;
10926pub type PSLIST_HEADER = *mut _SLIST_HEADER;
10927unsafe extern "C" {
10928 pub fn RtlAssert(
10929 VoidFailedAssertion: PVOID,
10930 VoidFileName: PVOID,
10931 LineNumber: ULONG,
10932 MutableMessage: PSTR,
10933 );
10934}
10935unsafe extern "C" {
10936 pub fn __fastfail(Code: core::ffi::c_uint) -> !;
10937}
10938unsafe extern "C" {
10939 pub fn RtlIntegerToUnicodeString(
10940 Value: ULONG,
10941 Base: ULONG,
10942 String: PUNICODE_STRING,
10943 ) -> NTSTATUS;
10944}
10945unsafe extern "C" {
10946 pub fn RtlInt64ToUnicodeString(
10947 Value: ULONGLONG,
10948 Base: ULONG,
10949 String: PUNICODE_STRING,
10950 ) -> NTSTATUS;
10951}
10952unsafe extern "C" {
10953 pub fn RtlUnicodeStringToInteger(
10954 String: PCUNICODE_STRING,
10955 Base: ULONG,
10956 Value: PULONG,
10957 ) -> NTSTATUS;
10958}
10959unsafe extern "C" {
10960 pub fn RtlUnicodeStringToInt64(
10961 String: PCUNICODE_STRING,
10962 Base: ULONG,
10963 Number: PLONG64,
10964 EndPointer: *mut PWSTR,
10965 ) -> NTSTATUS;
10966}
10967unsafe extern "C" {
10968 pub static mut NlsMbCodePageTag: *mut BOOLEAN;
10969}
10970unsafe extern "C" {
10971 pub static mut NlsMbOemCodePageTag: *mut BOOLEAN;
10972}
10973unsafe extern "C" {
10974 pub fn RtlInitString(DestinationString: PSTRING, SourceString: PCSZ);
10975}
10976unsafe extern "C" {
10977 pub fn RtlInitAnsiString(DestinationString: PANSI_STRING, SourceString: PCSZ);
10978}
10979unsafe extern "C" {
10980 pub fn RtlInitUTF8String(DestinationString: PUTF8_STRING, SourceString: PCSZ);
10981}
10982unsafe extern "C" {
10983 pub fn RtlInitUnicodeString(DestinationString: PUNICODE_STRING, SourceString: PCWSTR);
10984}
10985pub type PRTL_QUERY_REGISTRY_ROUTINE = ::core::option::Option<
10986 unsafe extern "C" fn(
10987 arg1: PWSTR,
10988 arg2: ULONG,
10989 arg3: PVOID,
10990 arg4: ULONG,
10991 arg5: PVOID,
10992 arg6: PVOID,
10993 ) -> NTSTATUS,
10994>;
10995#[repr(C)]
10996#[derive(Debug, Copy, Clone)]
10997pub struct _RTL_QUERY_REGISTRY_TABLE {
10998 pub QueryRoutine: PRTL_QUERY_REGISTRY_ROUTINE,
10999 pub Flags: ULONG,
11000 pub Name: PWSTR,
11001 pub EntryContext: PVOID,
11002 pub DefaultType: ULONG,
11003 pub DefaultData: PVOID,
11004 pub DefaultLength: ULONG,
11005}
11006pub type RTL_QUERY_REGISTRY_TABLE = _RTL_QUERY_REGISTRY_TABLE;
11007pub type PRTL_QUERY_REGISTRY_TABLE = *mut _RTL_QUERY_REGISTRY_TABLE;
11008unsafe extern "C" {
11009 pub fn RtlQueryRegistryValues(
11010 RelativeTo: ULONG,
11011 Path: PCWSTR,
11012 QueryTable: PRTL_QUERY_REGISTRY_TABLE,
11013 Context: PVOID,
11014 Environment: PVOID,
11015 ) -> NTSTATUS;
11016}
11017unsafe extern "C" {
11018 pub fn MmGetSystemRoutineAddress(SystemRoutineName: PUNICODE_STRING) -> PVOID;
11019}
11020unsafe extern "C" {
11021 pub fn RtlWriteRegistryValue(
11022 RelativeTo: ULONG,
11023 Path: PCWSTR,
11024 ValueName: PCWSTR,
11025 ValueType: ULONG,
11026 ValueData: PVOID,
11027 ValueLength: ULONG,
11028 ) -> NTSTATUS;
11029}
11030unsafe extern "C" {
11031 pub fn RtlDeleteRegistryValue(RelativeTo: ULONG, Path: PCWSTR, ValueName: PCWSTR) -> NTSTATUS;
11032}
11033unsafe extern "C" {
11034 pub fn RtlCreateRegistryKey(RelativeTo: ULONG, Path: PWSTR) -> NTSTATUS;
11035}
11036unsafe extern "C" {
11037 pub fn RtlCheckRegistryKey(RelativeTo: ULONG, Path: PWSTR) -> NTSTATUS;
11038}
11039unsafe extern "C" {
11040 pub fn RtlInitAnsiStringEx(DestinationString: PANSI_STRING, SourceString: PCSZ) -> NTSTATUS;
11041}
11042unsafe extern "C" {
11043 pub fn RtlInitStringEx(DestinationString: PSTRING, SourceString: PCSZ) -> NTSTATUS;
11044}
11045unsafe extern "C" {
11046 pub fn RtlInitUTF8StringEx(DestinationString: PUTF8_STRING, SourceString: PCSZ) -> NTSTATUS;
11047}
11048unsafe extern "C" {
11049 pub fn RtlAnsiStringToUnicodeString(
11050 DestinationString: PUNICODE_STRING,
11051 SourceString: PCANSI_STRING,
11052 AllocateDestinationString: BOOLEAN,
11053 ) -> NTSTATUS;
11054}
11055unsafe extern "C" {
11056 pub fn RtlUnicodeStringToAnsiString(
11057 DestinationString: PANSI_STRING,
11058 SourceString: PCUNICODE_STRING,
11059 AllocateDestinationString: BOOLEAN,
11060 ) -> NTSTATUS;
11061}
11062unsafe extern "C" {
11063 pub fn RtlCompareUnicodeStrings(
11064 String1: PCWCH,
11065 String1Length: SIZE_T,
11066 String2: PCWCH,
11067 String2Length: SIZE_T,
11068 CaseInSensitive: BOOLEAN,
11069 ) -> LONG;
11070}
11071unsafe extern "C" {
11072 pub fn RtlCompareUnicodeString(
11073 String1: PCUNICODE_STRING,
11074 String2: PCUNICODE_STRING,
11075 CaseInSensitive: BOOLEAN,
11076 ) -> LONG;
11077}
11078unsafe extern "C" {
11079 pub fn RtlEqualUnicodeString(
11080 String1: PCUNICODE_STRING,
11081 String2: PCUNICODE_STRING,
11082 CaseInSensitive: BOOLEAN,
11083 ) -> BOOLEAN;
11084}
11085unsafe extern "C" {
11086 pub fn RtlHashUnicodeString(
11087 String: PCUNICODE_STRING,
11088 CaseInSensitive: BOOLEAN,
11089 HashAlgorithm: ULONG,
11090 HashValue: PULONG,
11091 ) -> NTSTATUS;
11092}
11093unsafe extern "C" {
11094 pub fn RtlCopyUnicodeString(DestinationString: PUNICODE_STRING, SourceString: PCUNICODE_STRING);
11095}
11096unsafe extern "C" {
11097 pub fn RtlAppendUnicodeStringToString(
11098 Destination: PUNICODE_STRING,
11099 Source: PCUNICODE_STRING,
11100 ) -> NTSTATUS;
11101}
11102unsafe extern "C" {
11103 pub fn RtlAppendUnicodeToString(Destination: PUNICODE_STRING, Source: PCWSTR) -> NTSTATUS;
11104}
11105unsafe extern "C" {
11106 pub fn RtlUpcaseUnicodeChar(SourceCharacter: WCHAR) -> WCHAR;
11107}
11108unsafe extern "C" {
11109 pub fn RtlDowncaseUnicodeChar(SourceCharacter: WCHAR) -> WCHAR;
11110}
11111unsafe extern "C" {
11112 pub fn RtlFreeUnicodeString(UnicodeString: PUNICODE_STRING);
11113}
11114unsafe extern "C" {
11115 pub fn RtlFreeAnsiString(AnsiString: PANSI_STRING);
11116}
11117unsafe extern "C" {
11118 pub fn RtlFreeUTF8String(utf8String: PUTF8_STRING);
11119}
11120unsafe extern "C" {
11121 pub fn RtlxUnicodeStringToAnsiSize(UnicodeString: PCUNICODE_STRING) -> ULONG;
11122}
11123unsafe extern "C" {
11124 pub fn RtlxAnsiStringToUnicodeSize(AnsiString: PCANSI_STRING) -> ULONG;
11125}
11126unsafe extern "C" {
11127 pub fn RtlUnicodeToUTF8N(
11128 UTF8StringDestination: PCHAR,
11129 UTF8StringMaxByteCount: ULONG,
11130 UTF8StringActualByteCount: PULONG,
11131 UnicodeStringSource: PCWCH,
11132 UnicodeStringByteCount: ULONG,
11133 ) -> NTSTATUS;
11134}
11135unsafe extern "C" {
11136 pub fn RtlUTF8ToUnicodeN(
11137 UnicodeStringDestination: PWSTR,
11138 UnicodeStringMaxByteCount: ULONG,
11139 UnicodeStringActualByteCount: PULONG,
11140 UTF8StringSource: PCCH,
11141 UTF8StringByteCount: ULONG,
11142 ) -> NTSTATUS;
11143}
11144unsafe extern "C" {
11145 pub fn RtlUnicodeStringToUTF8String(
11146 DestinationString: PUTF8_STRING,
11147 SourceString: PCUNICODE_STRING,
11148 AllocateDestinationString: BOOLEAN,
11149 ) -> NTSTATUS;
11150}
11151unsafe extern "C" {
11152 pub fn RtlUTF8StringToUnicodeString(
11153 DestinationString: PUNICODE_STRING,
11154 SourceString: PUTF8_STRING,
11155 AllocateDestinationString: BOOLEAN,
11156 ) -> NTSTATUS;
11157}
11158unsafe extern "C" {
11159 pub fn RtlStringFromGUID(Guid: *const GUID, GuidString: PUNICODE_STRING) -> NTSTATUS;
11160}
11161unsafe extern "C" {
11162 pub fn RtlGUIDFromString(GuidString: PCUNICODE_STRING, Guid: *mut GUID) -> NTSTATUS;
11163}
11164unsafe extern "C" {
11165 pub fn RtlGenerateClass5Guid(
11166 NamespaceGuid: *const GUID,
11167 Buffer: PVOID,
11168 BufferSize: ULONG,
11169 Guid: *mut GUID,
11170 ) -> NTSTATUS;
11171}
11172unsafe extern "C" {
11173 pub fn RtlCopyMemoryNonTemporal(
11174 Destination: *mut core::ffi::c_void,
11175 Source: *const core::ffi::c_void,
11176 Length: SIZE_T,
11177 );
11178}
11179unsafe extern "C" {
11180 pub fn RtlFillMemoryNonTemporal(
11181 Destination: *mut core::ffi::c_void,
11182 Length: SIZE_T,
11183 Value: UCHAR,
11184 );
11185}
11186unsafe extern "C" {
11187 pub fn RtlPrefetchMemoryNonTemporal(Source: PVOID, Length: SIZE_T);
11188}
11189unsafe extern "C" {
11190 pub fn DbgBreakPointWithStatus(Status: ULONG);
11191}
11192unsafe extern "C" {
11193 pub fn DbgPrint(Format: PCSTR, ...) -> ULONG;
11194}
11195unsafe extern "C" {
11196 pub fn DbgPrintEx(ComponentId: ULONG, Level: ULONG, Format: PCSTR, ...) -> ULONG;
11197}
11198unsafe extern "C" {
11199 pub fn vDbgPrintEx(ComponentId: ULONG, Level: ULONG, Format: PCCH, arglist: va_list) -> ULONG;
11200}
11201unsafe extern "C" {
11202 pub fn vDbgPrintExWithPrefix(
11203 Prefix: PCCH,
11204 ComponentId: ULONG,
11205 Level: ULONG,
11206 Format: PCCH,
11207 arglist: va_list,
11208 ) -> ULONG;
11209}
11210unsafe extern "C" {
11211 pub fn DbgPrintReturnControlC(Format: PCCH, ...) -> ULONG;
11212}
11213unsafe extern "C" {
11214 pub fn DbgQueryDebugFilterState(ComponentId: ULONG, Level: ULONG) -> NTSTATUS;
11215}
11216unsafe extern "C" {
11217 pub fn DbgSetDebugFilterState(ComponentId: ULONG, Level: ULONG, State: BOOLEAN) -> NTSTATUS;
11218}
11219pub type PDEBUG_PRINT_CALLBACK =
11220::core::option::Option<unsafe extern "C" fn(Output: PSTRING, ComponentId: ULONG, Level: ULONG)>;
11221unsafe extern "C" {
11222 pub fn DbgSetDebugPrintCallback(
11223 DebugPrintCallback: PDEBUG_PRINT_CALLBACK,
11224 Enable: BOOLEAN,
11225 ) -> NTSTATUS;
11226}
11227#[repr(C)]
11228#[derive(Debug, Copy, Clone)]
11229pub struct _TIME_FIELDS {
11230 pub Year: CSHORT,
11231 pub Month: CSHORT,
11232 pub Day: CSHORT,
11233 pub Hour: CSHORT,
11234 pub Minute: CSHORT,
11235 pub Second: CSHORT,
11236 pub Milliseconds: CSHORT,
11237 pub Weekday: CSHORT,
11238}
11239pub type TIME_FIELDS = _TIME_FIELDS;
11240pub type PTIME_FIELDS = *mut TIME_FIELDS;
11241unsafe extern "C" {
11242 pub fn RtlTimeToTimeFields(Time: PLARGE_INTEGER, TimeFields: PTIME_FIELDS);
11243}
11244unsafe extern "C" {
11245 pub fn RtlTimeFieldsToTime(TimeFields: PTIME_FIELDS, Time: PLARGE_INTEGER) -> BOOLEAN;
11246}
11247#[repr(C)]
11248#[derive(Debug, Copy, Clone)]
11249pub struct _RTL_BITMAP {
11250 pub SizeOfBitMap: ULONG,
11251 pub Buffer: PULONG,
11252}
11253pub type RTL_BITMAP = _RTL_BITMAP;
11254pub type PRTL_BITMAP = *mut RTL_BITMAP;
11255unsafe extern "C" {
11256 pub fn RtlInitializeBitMap(
11257 BitMapHeader: PRTL_BITMAP,
11258 BitMapBuffer: PULONG,
11259 SizeOfBitMap: ULONG,
11260 );
11261}
11262unsafe extern "C" {
11263 pub fn RtlClearBit(BitMapHeader: PRTL_BITMAP, BitNumber: ULONG);
11264}
11265unsafe extern "C" {
11266 pub fn RtlSetBit(BitMapHeader: PRTL_BITMAP, BitNumber: ULONG);
11267}
11268unsafe extern "C" {
11269 pub fn RtlTestBit(BitMapHeader: PRTL_BITMAP, BitNumber: ULONG) -> BOOLEAN;
11270}
11271unsafe extern "C" {
11272 pub fn RtlClearAllBits(BitMapHeader: PRTL_BITMAP);
11273}
11274unsafe extern "C" {
11275 pub fn RtlSetAllBits(BitMapHeader: PRTL_BITMAP);
11276}
11277unsafe extern "C" {
11278 pub fn RtlFindClearBits(
11279 BitMapHeader: PRTL_BITMAP,
11280 NumberToFind: ULONG,
11281 HintIndex: ULONG,
11282 ) -> ULONG;
11283}
11284unsafe extern "C" {
11285 pub fn RtlFindSetBits(
11286 BitMapHeader: PRTL_BITMAP,
11287 NumberToFind: ULONG,
11288 HintIndex: ULONG,
11289 ) -> ULONG;
11290}
11291unsafe extern "C" {
11292 pub fn RtlFindClearBitsAndSet(
11293 BitMapHeader: PRTL_BITMAP,
11294 NumberToFind: ULONG,
11295 HintIndex: ULONG,
11296 ) -> ULONG;
11297}
11298unsafe extern "C" {
11299 pub fn RtlFindSetBitsAndClear(
11300 BitMapHeader: PRTL_BITMAP,
11301 NumberToFind: ULONG,
11302 HintIndex: ULONG,
11303 ) -> ULONG;
11304}
11305unsafe extern "C" {
11306 pub fn RtlClearBits(BitMapHeader: PRTL_BITMAP, StartingIndex: ULONG, NumberToClear: ULONG);
11307}
11308unsafe extern "C" {
11309 pub fn RtlSetBits(BitMapHeader: PRTL_BITMAP, StartingIndex: ULONG, NumberToSet: ULONG);
11310}
11311#[repr(C)]
11312#[derive(Debug, Copy, Clone)]
11313pub struct _RTL_BITMAP_RUN {
11314 pub StartingIndex: ULONG,
11315 pub NumberOfBits: ULONG,
11316}
11317pub type RTL_BITMAP_RUN = _RTL_BITMAP_RUN;
11318pub type PRTL_BITMAP_RUN = *mut RTL_BITMAP_RUN;
11319unsafe extern "C" {
11320 pub fn RtlFindClearRuns(
11321 BitMapHeader: PRTL_BITMAP,
11322 RunArray: PRTL_BITMAP_RUN,
11323 SizeOfRunArray: ULONG,
11324 LocateLongestRuns: BOOLEAN,
11325 ) -> ULONG;
11326}
11327unsafe extern "C" {
11328 pub fn RtlFindLongestRunClear(BitMapHeader: PRTL_BITMAP, StartingIndex: PULONG) -> ULONG;
11329}
11330unsafe extern "C" {
11331 pub fn RtlFindFirstRunClear(BitMapHeader: PRTL_BITMAP, StartingIndex: PULONG) -> ULONG;
11332}
11333unsafe extern "C" {
11334 pub fn RtlNumberOfClearBitsInRange(
11335 BitMapHeader: PRTL_BITMAP,
11336 StartingIndex: ULONG,
11337 Length: ULONG,
11338 ) -> ULONG;
11339}
11340unsafe extern "C" {
11341 pub fn RtlNumberOfSetBitsInRange(
11342 BitMapHeader: PRTL_BITMAP,
11343 StartingIndex: ULONG,
11344 Length: ULONG,
11345 ) -> ULONG;
11346}
11347unsafe extern "C" {
11348 pub fn RtlNumberOfClearBits(BitMapHeader: PRTL_BITMAP) -> ULONG;
11349}
11350unsafe extern "C" {
11351 pub fn RtlNumberOfSetBits(BitMapHeader: PRTL_BITMAP) -> ULONG;
11352}
11353unsafe extern "C" {
11354 pub fn RtlAreBitsClear(
11355 BitMapHeader: PRTL_BITMAP,
11356 StartingIndex: ULONG,
11357 Length: ULONG,
11358 ) -> BOOLEAN;
11359}
11360unsafe extern "C" {
11361 pub fn RtlAreBitsSet(BitMapHeader: PRTL_BITMAP, StartingIndex: ULONG, Length: ULONG)
11362 -> BOOLEAN;
11363}
11364unsafe extern "C" {
11365 pub fn RtlFindNextForwardRunClear(
11366 BitMapHeader: PRTL_BITMAP,
11367 FromIndex: ULONG,
11368 StartingRunIndex: PULONG,
11369 ) -> ULONG;
11370}
11371unsafe extern "C" {
11372 pub fn RtlFindLastBackwardRunClear(
11373 BitMapHeader: PRTL_BITMAP,
11374 FromIndex: ULONG,
11375 StartingRunIndex: PULONG,
11376 ) -> ULONG;
11377}
11378unsafe extern "C" {
11379 pub fn RtlFindLeastSignificantBit(Set: ULONGLONG) -> CCHAR;
11380}
11381unsafe extern "C" {
11382 pub fn RtlFindMostSignificantBit(Set: ULONGLONG) -> CCHAR;
11383}
11384unsafe extern "C" {
11385 pub fn RtlNumberOfSetBitsUlongPtr(Target: ULONG_PTR) -> ULONG;
11386}
11387unsafe extern "C" {
11388 pub fn RtlCopyBitMap(Source: PRTL_BITMAP, Destination: PRTL_BITMAP, TargetBit: ULONG);
11389}
11390unsafe extern "C" {
11391 pub fn RtlExtractBitMap(
11392 Source: PRTL_BITMAP,
11393 Destination: PRTL_BITMAP,
11394 TargetBit: ULONG,
11395 NumberOfBits: ULONG,
11396 );
11397}
11398unsafe extern "C" {
11399 pub fn RtlCreateSecurityDescriptor(
11400 SecurityDescriptor: PSECURITY_DESCRIPTOR,
11401 Revision: ULONG,
11402 ) -> NTSTATUS;
11403}
11404unsafe extern "C" {
11405 pub fn RtlValidSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOLEAN;
11406}
11407unsafe extern "C" {
11408 pub fn RtlLengthSecurityDescriptor(SecurityDescriptor: PSECURITY_DESCRIPTOR) -> ULONG;
11409}
11410unsafe extern "C" {
11411 pub fn RtlValidRelativeSecurityDescriptor(
11412 SecurityDescriptorInput: PSECURITY_DESCRIPTOR,
11413 SecurityDescriptorLength: ULONG,
11414 RequiredInformation: SECURITY_INFORMATION,
11415 ) -> BOOLEAN;
11416}
11417unsafe extern "C" {
11418 pub fn RtlSetDaclSecurityDescriptor(
11419 SecurityDescriptor: PSECURITY_DESCRIPTOR,
11420 DaclPresent: BOOLEAN,
11421 Dacl: PACL,
11422 DaclDefaulted: BOOLEAN,
11423 ) -> NTSTATUS;
11424}
11425unsafe extern "C" {
11426 pub fn _byteswap_ushort(arg1: core::ffi::c_ushort) -> core::ffi::c_ushort;
11427}
11428unsafe extern "C" {
11429 pub fn _byteswap_ulong(arg1: core::ffi::c_ulong) -> core::ffi::c_ulong;
11430}
11431unsafe extern "C" {
11432 pub fn _byteswap_uint64(arg1: core::ffi::c_ulonglong) -> core::ffi::c_ulonglong;
11433}
11434#[repr(C)]
11435#[derive(Debug, Copy, Clone)]
11436pub struct _OSVERSIONINFOA {
11437 pub dwOSVersionInfoSize: ULONG,
11438 pub dwMajorVersion: ULONG,
11439 pub dwMinorVersion: ULONG,
11440 pub dwBuildNumber: ULONG,
11441 pub dwPlatformId: ULONG,
11442 pub szCSDVersion: [CHAR; 128usize],
11443}
11444pub type OSVERSIONINFOA = _OSVERSIONINFOA;
11445pub type POSVERSIONINFOA = *mut _OSVERSIONINFOA;
11446pub type LPOSVERSIONINFOA = *mut _OSVERSIONINFOA;
11447#[repr(C)]
11448#[derive(Debug, Copy, Clone)]
11449pub struct _OSVERSIONINFOW {
11450 pub dwOSVersionInfoSize: ULONG,
11451 pub dwMajorVersion: ULONG,
11452 pub dwMinorVersion: ULONG,
11453 pub dwBuildNumber: ULONG,
11454 pub dwPlatformId: ULONG,
11455 pub szCSDVersion: [WCHAR; 128usize],
11456}
11457pub type OSVERSIONINFOW = _OSVERSIONINFOW;
11458pub type POSVERSIONINFOW = *mut _OSVERSIONINFOW;
11459pub type LPOSVERSIONINFOW = *mut _OSVERSIONINFOW;
11460pub type RTL_OSVERSIONINFOW = _OSVERSIONINFOW;
11461pub type PRTL_OSVERSIONINFOW = *mut _OSVERSIONINFOW;
11462pub type OSVERSIONINFO = OSVERSIONINFOA;
11463pub type POSVERSIONINFO = POSVERSIONINFOA;
11464pub type LPOSVERSIONINFO = LPOSVERSIONINFOA;
11465#[repr(C)]
11466#[derive(Debug, Copy, Clone)]
11467pub struct _OSVERSIONINFOEXA {
11468 pub dwOSVersionInfoSize: ULONG,
11469 pub dwMajorVersion: ULONG,
11470 pub dwMinorVersion: ULONG,
11471 pub dwBuildNumber: ULONG,
11472 pub dwPlatformId: ULONG,
11473 pub szCSDVersion: [CHAR; 128usize],
11474 pub wServicePackMajor: USHORT,
11475 pub wServicePackMinor: USHORT,
11476 pub wSuiteMask: USHORT,
11477 pub wProductType: UCHAR,
11478 pub wReserved: UCHAR,
11479}
11480pub type OSVERSIONINFOEXA = _OSVERSIONINFOEXA;
11481pub type POSVERSIONINFOEXA = *mut _OSVERSIONINFOEXA;
11482pub type LPOSVERSIONINFOEXA = *mut _OSVERSIONINFOEXA;
11483#[repr(C)]
11484#[derive(Debug, Copy, Clone)]
11485pub struct _OSVERSIONINFOEXW {
11486 pub dwOSVersionInfoSize: ULONG,
11487 pub dwMajorVersion: ULONG,
11488 pub dwMinorVersion: ULONG,
11489 pub dwBuildNumber: ULONG,
11490 pub dwPlatformId: ULONG,
11491 pub szCSDVersion: [WCHAR; 128usize],
11492 pub wServicePackMajor: USHORT,
11493 pub wServicePackMinor: USHORT,
11494 pub wSuiteMask: USHORT,
11495 pub wProductType: UCHAR,
11496 pub wReserved: UCHAR,
11497}
11498pub type OSVERSIONINFOEXW = _OSVERSIONINFOEXW;
11499pub type POSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
11500pub type LPOSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
11501pub type RTL_OSVERSIONINFOEXW = _OSVERSIONINFOEXW;
11502pub type PRTL_OSVERSIONINFOEXW = *mut _OSVERSIONINFOEXW;
11503pub type OSVERSIONINFOEX = OSVERSIONINFOEXA;
11504pub type POSVERSIONINFOEX = POSVERSIONINFOEXA;
11505pub type LPOSVERSIONINFOEX = LPOSVERSIONINFOEXA;
11506unsafe extern "C" {
11507 pub fn VerSetConditionMask(
11508 ConditionMask: ULONGLONG,
11509 TypeMask: ULONG,
11510 Condition: UCHAR,
11511 ) -> ULONGLONG;
11512}
11513unsafe extern "C" {
11514 pub fn RtlGetVersion(lpVersionInformation: PRTL_OSVERSIONINFOW) -> NTSTATUS;
11515}
11516unsafe extern "C" {
11517 pub fn RtlVerifyVersionInfo(
11518 VersionInfo: PRTL_OSVERSIONINFOEXW,
11519 TypeMask: ULONG,
11520 ConditionMask: ULONGLONG,
11521 ) -> NTSTATUS;
11522}
11523pub type PFN_RTL_IS_NTDDI_VERSION_AVAILABLE =
11524::core::option::Option<unsafe extern "C" fn(Version: ULONG) -> BOOLEAN>;
11525pub type PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED =
11526::core::option::Option<unsafe extern "C" fn(Version: ULONG) -> BOOLEAN>;
11527unsafe extern "C" {
11528 pub fn RtlIsNtDdiVersionAvailable(Version: ULONG) -> BOOLEAN;
11529}
11530unsafe extern "C" {
11531 pub fn RtlIsServicePackVersionInstalled(Version: ULONG) -> BOOLEAN;
11532}
11533pub const _DPFLTR_TYPE_DPFLTR_SYSTEM_ID: _DPFLTR_TYPE = 0;
11534pub const _DPFLTR_TYPE_DPFLTR_SMSS_ID: _DPFLTR_TYPE = 1;
11535pub const _DPFLTR_TYPE_DPFLTR_SETUP_ID: _DPFLTR_TYPE = 2;
11536pub const _DPFLTR_TYPE_DPFLTR_NTFS_ID: _DPFLTR_TYPE = 3;
11537pub const _DPFLTR_TYPE_DPFLTR_FSTUB_ID: _DPFLTR_TYPE = 4;
11538pub const _DPFLTR_TYPE_DPFLTR_CRASHDUMP_ID: _DPFLTR_TYPE = 5;
11539pub const _DPFLTR_TYPE_DPFLTR_CDAUDIO_ID: _DPFLTR_TYPE = 6;
11540pub const _DPFLTR_TYPE_DPFLTR_CDROM_ID: _DPFLTR_TYPE = 7;
11541pub const _DPFLTR_TYPE_DPFLTR_CLASSPNP_ID: _DPFLTR_TYPE = 8;
11542pub const _DPFLTR_TYPE_DPFLTR_DISK_ID: _DPFLTR_TYPE = 9;
11543pub const _DPFLTR_TYPE_DPFLTR_REDBOOK_ID: _DPFLTR_TYPE = 10;
11544pub const _DPFLTR_TYPE_DPFLTR_STORPROP_ID: _DPFLTR_TYPE = 11;
11545pub const _DPFLTR_TYPE_DPFLTR_SCSIPORT_ID: _DPFLTR_TYPE = 12;
11546pub const _DPFLTR_TYPE_DPFLTR_SCSIMINIPORT_ID: _DPFLTR_TYPE = 13;
11547pub const _DPFLTR_TYPE_DPFLTR_CONFIG_ID: _DPFLTR_TYPE = 14;
11548pub const _DPFLTR_TYPE_DPFLTR_I8042PRT_ID: _DPFLTR_TYPE = 15;
11549pub const _DPFLTR_TYPE_DPFLTR_SERMOUSE_ID: _DPFLTR_TYPE = 16;
11550pub const _DPFLTR_TYPE_DPFLTR_LSERMOUS_ID: _DPFLTR_TYPE = 17;
11551pub const _DPFLTR_TYPE_DPFLTR_KBDHID_ID: _DPFLTR_TYPE = 18;
11552pub const _DPFLTR_TYPE_DPFLTR_MOUHID_ID: _DPFLTR_TYPE = 19;
11553pub const _DPFLTR_TYPE_DPFLTR_KBDCLASS_ID: _DPFLTR_TYPE = 20;
11554pub const _DPFLTR_TYPE_DPFLTR_MOUCLASS_ID: _DPFLTR_TYPE = 21;
11555pub const _DPFLTR_TYPE_DPFLTR_TWOTRACK_ID: _DPFLTR_TYPE = 22;
11556pub const _DPFLTR_TYPE_DPFLTR_WMILIB_ID: _DPFLTR_TYPE = 23;
11557pub const _DPFLTR_TYPE_DPFLTR_ACPI_ID: _DPFLTR_TYPE = 24;
11558pub const _DPFLTR_TYPE_DPFLTR_AMLI_ID: _DPFLTR_TYPE = 25;
11559pub const _DPFLTR_TYPE_DPFLTR_HALIA64_ID: _DPFLTR_TYPE = 26;
11560pub const _DPFLTR_TYPE_DPFLTR_VIDEO_ID: _DPFLTR_TYPE = 27;
11561pub const _DPFLTR_TYPE_DPFLTR_SVCHOST_ID: _DPFLTR_TYPE = 28;
11562pub const _DPFLTR_TYPE_DPFLTR_VIDEOPRT_ID: _DPFLTR_TYPE = 29;
11563pub const _DPFLTR_TYPE_DPFLTR_TCPIP_ID: _DPFLTR_TYPE = 30;
11564pub const _DPFLTR_TYPE_DPFLTR_DMSYNTH_ID: _DPFLTR_TYPE = 31;
11565pub const _DPFLTR_TYPE_DPFLTR_NTOSPNP_ID: _DPFLTR_TYPE = 32;
11566pub const _DPFLTR_TYPE_DPFLTR_FASTFAT_ID: _DPFLTR_TYPE = 33;
11567pub const _DPFLTR_TYPE_DPFLTR_SAMSS_ID: _DPFLTR_TYPE = 34;
11568pub const _DPFLTR_TYPE_DPFLTR_PNPMGR_ID: _DPFLTR_TYPE = 35;
11569pub const _DPFLTR_TYPE_DPFLTR_NETAPI_ID: _DPFLTR_TYPE = 36;
11570pub const _DPFLTR_TYPE_DPFLTR_SCSERVER_ID: _DPFLTR_TYPE = 37;
11571pub const _DPFLTR_TYPE_DPFLTR_SCCLIENT_ID: _DPFLTR_TYPE = 38;
11572pub const _DPFLTR_TYPE_DPFLTR_SERIAL_ID: _DPFLTR_TYPE = 39;
11573pub const _DPFLTR_TYPE_DPFLTR_SERENUM_ID: _DPFLTR_TYPE = 40;
11574pub const _DPFLTR_TYPE_DPFLTR_UHCD_ID: _DPFLTR_TYPE = 41;
11575pub const _DPFLTR_TYPE_DPFLTR_RPCPROXY_ID: _DPFLTR_TYPE = 42;
11576pub const _DPFLTR_TYPE_DPFLTR_AUTOCHK_ID: _DPFLTR_TYPE = 43;
11577pub const _DPFLTR_TYPE_DPFLTR_DCOMSS_ID: _DPFLTR_TYPE = 44;
11578pub const _DPFLTR_TYPE_DPFLTR_UNIMODEM_ID: _DPFLTR_TYPE = 45;
11579pub const _DPFLTR_TYPE_DPFLTR_SIS_ID: _DPFLTR_TYPE = 46;
11580pub const _DPFLTR_TYPE_DPFLTR_FLTMGR_ID: _DPFLTR_TYPE = 47;
11581pub const _DPFLTR_TYPE_DPFLTR_WMICORE_ID: _DPFLTR_TYPE = 48;
11582pub const _DPFLTR_TYPE_DPFLTR_BURNENG_ID: _DPFLTR_TYPE = 49;
11583pub const _DPFLTR_TYPE_DPFLTR_IMAPI_ID: _DPFLTR_TYPE = 50;
11584pub const _DPFLTR_TYPE_DPFLTR_SXS_ID: _DPFLTR_TYPE = 51;
11585pub const _DPFLTR_TYPE_DPFLTR_FUSION_ID: _DPFLTR_TYPE = 52;
11586pub const _DPFLTR_TYPE_DPFLTR_IDLETASK_ID: _DPFLTR_TYPE = 53;
11587pub const _DPFLTR_TYPE_DPFLTR_SOFTPCI_ID: _DPFLTR_TYPE = 54;
11588pub const _DPFLTR_TYPE_DPFLTR_TAPE_ID: _DPFLTR_TYPE = 55;
11589pub const _DPFLTR_TYPE_DPFLTR_MCHGR_ID: _DPFLTR_TYPE = 56;
11590pub const _DPFLTR_TYPE_DPFLTR_IDEP_ID: _DPFLTR_TYPE = 57;
11591pub const _DPFLTR_TYPE_DPFLTR_PCIIDE_ID: _DPFLTR_TYPE = 58;
11592pub const _DPFLTR_TYPE_DPFLTR_FLOPPY_ID: _DPFLTR_TYPE = 59;
11593pub const _DPFLTR_TYPE_DPFLTR_FDC_ID: _DPFLTR_TYPE = 60;
11594pub const _DPFLTR_TYPE_DPFLTR_TERMSRV_ID: _DPFLTR_TYPE = 61;
11595pub const _DPFLTR_TYPE_DPFLTR_W32TIME_ID: _DPFLTR_TYPE = 62;
11596pub const _DPFLTR_TYPE_DPFLTR_PREFETCHER_ID: _DPFLTR_TYPE = 63;
11597pub const _DPFLTR_TYPE_DPFLTR_RSFILTER_ID: _DPFLTR_TYPE = 64;
11598pub const _DPFLTR_TYPE_DPFLTR_FCPORT_ID: _DPFLTR_TYPE = 65;
11599pub const _DPFLTR_TYPE_DPFLTR_PCI_ID: _DPFLTR_TYPE = 66;
11600pub const _DPFLTR_TYPE_DPFLTR_DMIO_ID: _DPFLTR_TYPE = 67;
11601pub const _DPFLTR_TYPE_DPFLTR_DMCONFIG_ID: _DPFLTR_TYPE = 68;
11602pub const _DPFLTR_TYPE_DPFLTR_DMADMIN_ID: _DPFLTR_TYPE = 69;
11603pub const _DPFLTR_TYPE_DPFLTR_WSOCKTRANSPORT_ID: _DPFLTR_TYPE = 70;
11604pub const _DPFLTR_TYPE_DPFLTR_VSS_ID: _DPFLTR_TYPE = 71;
11605pub const _DPFLTR_TYPE_DPFLTR_PNPMEM_ID: _DPFLTR_TYPE = 72;
11606pub const _DPFLTR_TYPE_DPFLTR_PROCESSOR_ID: _DPFLTR_TYPE = 73;
11607pub const _DPFLTR_TYPE_DPFLTR_DMSERVER_ID: _DPFLTR_TYPE = 74;
11608pub const _DPFLTR_TYPE_DPFLTR_SR_ID: _DPFLTR_TYPE = 75;
11609pub const _DPFLTR_TYPE_DPFLTR_INFINIBAND_ID: _DPFLTR_TYPE = 76;
11610pub const _DPFLTR_TYPE_DPFLTR_IHVDRIVER_ID: _DPFLTR_TYPE = 77;
11611pub const _DPFLTR_TYPE_DPFLTR_IHVVIDEO_ID: _DPFLTR_TYPE = 78;
11612pub const _DPFLTR_TYPE_DPFLTR_IHVAUDIO_ID: _DPFLTR_TYPE = 79;
11613pub const _DPFLTR_TYPE_DPFLTR_IHVNETWORK_ID: _DPFLTR_TYPE = 80;
11614pub const _DPFLTR_TYPE_DPFLTR_IHVSTREAMING_ID: _DPFLTR_TYPE = 81;
11615pub const _DPFLTR_TYPE_DPFLTR_IHVBUS_ID: _DPFLTR_TYPE = 82;
11616pub const _DPFLTR_TYPE_DPFLTR_HPS_ID: _DPFLTR_TYPE = 83;
11617pub const _DPFLTR_TYPE_DPFLTR_RTLTHREADPOOL_ID: _DPFLTR_TYPE = 84;
11618pub const _DPFLTR_TYPE_DPFLTR_LDR_ID: _DPFLTR_TYPE = 85;
11619pub const _DPFLTR_TYPE_DPFLTR_TCPIP6_ID: _DPFLTR_TYPE = 86;
11620pub const _DPFLTR_TYPE_DPFLTR_ISAPNP_ID: _DPFLTR_TYPE = 87;
11621pub const _DPFLTR_TYPE_DPFLTR_SHPC_ID: _DPFLTR_TYPE = 88;
11622pub const _DPFLTR_TYPE_DPFLTR_STORPORT_ID: _DPFLTR_TYPE = 89;
11623pub const _DPFLTR_TYPE_DPFLTR_STORMINIPORT_ID: _DPFLTR_TYPE = 90;
11624pub const _DPFLTR_TYPE_DPFLTR_PRINTSPOOLER_ID: _DPFLTR_TYPE = 91;
11625pub const _DPFLTR_TYPE_DPFLTR_VSSDYNDISK_ID: _DPFLTR_TYPE = 92;
11626pub const _DPFLTR_TYPE_DPFLTR_VERIFIER_ID: _DPFLTR_TYPE = 93;
11627pub const _DPFLTR_TYPE_DPFLTR_VDS_ID: _DPFLTR_TYPE = 94;
11628pub const _DPFLTR_TYPE_DPFLTR_VDSBAS_ID: _DPFLTR_TYPE = 95;
11629pub const _DPFLTR_TYPE_DPFLTR_VDSDYN_ID: _DPFLTR_TYPE = 96;
11630pub const _DPFLTR_TYPE_DPFLTR_VDSDYNDR_ID: _DPFLTR_TYPE = 97;
11631pub const _DPFLTR_TYPE_DPFLTR_VDSLDR_ID: _DPFLTR_TYPE = 98;
11632pub const _DPFLTR_TYPE_DPFLTR_VDSUTIL_ID: _DPFLTR_TYPE = 99;
11633pub const _DPFLTR_TYPE_DPFLTR_DFRGIFC_ID: _DPFLTR_TYPE = 100;
11634pub const _DPFLTR_TYPE_DPFLTR_DEFAULT_ID: _DPFLTR_TYPE = 101;
11635pub const _DPFLTR_TYPE_DPFLTR_MM_ID: _DPFLTR_TYPE = 102;
11636pub const _DPFLTR_TYPE_DPFLTR_DFSC_ID: _DPFLTR_TYPE = 103;
11637pub const _DPFLTR_TYPE_DPFLTR_WOW64_ID: _DPFLTR_TYPE = 104;
11638pub const _DPFLTR_TYPE_DPFLTR_ALPC_ID: _DPFLTR_TYPE = 105;
11639pub const _DPFLTR_TYPE_DPFLTR_WDI_ID: _DPFLTR_TYPE = 106;
11640pub const _DPFLTR_TYPE_DPFLTR_PERFLIB_ID: _DPFLTR_TYPE = 107;
11641pub const _DPFLTR_TYPE_DPFLTR_KTM_ID: _DPFLTR_TYPE = 108;
11642pub const _DPFLTR_TYPE_DPFLTR_IOSTRESS_ID: _DPFLTR_TYPE = 109;
11643pub const _DPFLTR_TYPE_DPFLTR_HEAP_ID: _DPFLTR_TYPE = 110;
11644pub const _DPFLTR_TYPE_DPFLTR_WHEA_ID: _DPFLTR_TYPE = 111;
11645pub const _DPFLTR_TYPE_DPFLTR_USERGDI_ID: _DPFLTR_TYPE = 112;
11646pub const _DPFLTR_TYPE_DPFLTR_MMCSS_ID: _DPFLTR_TYPE = 113;
11647pub const _DPFLTR_TYPE_DPFLTR_TPM_ID: _DPFLTR_TYPE = 114;
11648pub const _DPFLTR_TYPE_DPFLTR_THREADORDER_ID: _DPFLTR_TYPE = 115;
11649pub const _DPFLTR_TYPE_DPFLTR_ENVIRON_ID: _DPFLTR_TYPE = 116;
11650pub const _DPFLTR_TYPE_DPFLTR_EMS_ID: _DPFLTR_TYPE = 117;
11651pub const _DPFLTR_TYPE_DPFLTR_WDT_ID: _DPFLTR_TYPE = 118;
11652pub const _DPFLTR_TYPE_DPFLTR_FVEVOL_ID: _DPFLTR_TYPE = 119;
11653pub const _DPFLTR_TYPE_DPFLTR_NDIS_ID: _DPFLTR_TYPE = 120;
11654pub const _DPFLTR_TYPE_DPFLTR_NVCTRACE_ID: _DPFLTR_TYPE = 121;
11655pub const _DPFLTR_TYPE_DPFLTR_LUAFV_ID: _DPFLTR_TYPE = 122;
11656pub const _DPFLTR_TYPE_DPFLTR_APPCOMPAT_ID: _DPFLTR_TYPE = 123;
11657pub const _DPFLTR_TYPE_DPFLTR_USBSTOR_ID: _DPFLTR_TYPE = 124;
11658pub const _DPFLTR_TYPE_DPFLTR_SBP2PORT_ID: _DPFLTR_TYPE = 125;
11659pub const _DPFLTR_TYPE_DPFLTR_COVERAGE_ID: _DPFLTR_TYPE = 126;
11660pub const _DPFLTR_TYPE_DPFLTR_CACHEMGR_ID: _DPFLTR_TYPE = 127;
11661pub const _DPFLTR_TYPE_DPFLTR_MOUNTMGR_ID: _DPFLTR_TYPE = 128;
11662pub const _DPFLTR_TYPE_DPFLTR_CFR_ID: _DPFLTR_TYPE = 129;
11663pub const _DPFLTR_TYPE_DPFLTR_TXF_ID: _DPFLTR_TYPE = 130;
11664pub const _DPFLTR_TYPE_DPFLTR_KSECDD_ID: _DPFLTR_TYPE = 131;
11665pub const _DPFLTR_TYPE_DPFLTR_FLTREGRESS_ID: _DPFLTR_TYPE = 132;
11666pub const _DPFLTR_TYPE_DPFLTR_MPIO_ID: _DPFLTR_TYPE = 133;
11667pub const _DPFLTR_TYPE_DPFLTR_MSDSM_ID: _DPFLTR_TYPE = 134;
11668pub const _DPFLTR_TYPE_DPFLTR_UDFS_ID: _DPFLTR_TYPE = 135;
11669pub const _DPFLTR_TYPE_DPFLTR_PSHED_ID: _DPFLTR_TYPE = 136;
11670pub const _DPFLTR_TYPE_DPFLTR_STORVSP_ID: _DPFLTR_TYPE = 137;
11671pub const _DPFLTR_TYPE_DPFLTR_LSASS_ID: _DPFLTR_TYPE = 138;
11672pub const _DPFLTR_TYPE_DPFLTR_SSPICLI_ID: _DPFLTR_TYPE = 139;
11673pub const _DPFLTR_TYPE_DPFLTR_CNG_ID: _DPFLTR_TYPE = 140;
11674pub const _DPFLTR_TYPE_DPFLTR_EXFAT_ID: _DPFLTR_TYPE = 141;
11675pub const _DPFLTR_TYPE_DPFLTR_FILETRACE_ID: _DPFLTR_TYPE = 142;
11676pub const _DPFLTR_TYPE_DPFLTR_XSAVE_ID: _DPFLTR_TYPE = 143;
11677pub const _DPFLTR_TYPE_DPFLTR_SE_ID: _DPFLTR_TYPE = 144;
11678pub const _DPFLTR_TYPE_DPFLTR_DRIVEEXTENDER_ID: _DPFLTR_TYPE = 145;
11679pub const _DPFLTR_TYPE_DPFLTR_POWER_ID: _DPFLTR_TYPE = 146;
11680pub const _DPFLTR_TYPE_DPFLTR_CRASHDUMPXHCI_ID: _DPFLTR_TYPE = 147;
11681pub const _DPFLTR_TYPE_DPFLTR_GPIO_ID: _DPFLTR_TYPE = 148;
11682pub const _DPFLTR_TYPE_DPFLTR_REFS_ID: _DPFLTR_TYPE = 149;
11683pub const _DPFLTR_TYPE_DPFLTR_WER_ID: _DPFLTR_TYPE = 150;
11684pub const _DPFLTR_TYPE_DPFLTR_CAPIMG_ID: _DPFLTR_TYPE = 151;
11685pub const _DPFLTR_TYPE_DPFLTR_VPCI_ID: _DPFLTR_TYPE = 152;
11686pub const _DPFLTR_TYPE_DPFLTR_STORAGECLASSMEMORY_ID: _DPFLTR_TYPE = 153;
11687pub const _DPFLTR_TYPE_DPFLTR_FSLIB_ID: _DPFLTR_TYPE = 154;
11688pub const _DPFLTR_TYPE_DPFLTR_ENDOFTABLE_ID: _DPFLTR_TYPE = 155;
11689pub type _DPFLTR_TYPE = core::ffi::c_int;
11690pub use self::_DPFLTR_TYPE as DPFLTR_TYPE;
11691unsafe extern "C" {
11692 pub fn RtlIoEncodeMemIoResource(
11693 Descriptor: PIO_RESOURCE_DESCRIPTOR,
11694 Type: UCHAR,
11695 Length: ULONGLONG,
11696 Alignment: ULONGLONG,
11697 MinimumAddress: ULONGLONG,
11698 MaximumAddress: ULONGLONG,
11699 ) -> NTSTATUS;
11700}
11701unsafe extern "C" {
11702 pub fn RtlCmEncodeMemIoResource(
11703 Descriptor: PCM_PARTIAL_RESOURCE_DESCRIPTOR,
11704 Type: UCHAR,
11705 Length: ULONGLONG,
11706 Start: ULONGLONG,
11707 ) -> NTSTATUS;
11708}
11709unsafe extern "C" {
11710 pub fn RtlIoDecodeMemIoResource(
11711 Descriptor: PIO_RESOURCE_DESCRIPTOR,
11712 Alignment: PULONGLONG,
11713 MinimumAddress: PULONGLONG,
11714 MaximumAddress: PULONGLONG,
11715 ) -> ULONGLONG;
11716}
11717unsafe extern "C" {
11718 pub fn RtlCmDecodeMemIoResource(
11719 Descriptor: PCM_PARTIAL_RESOURCE_DESCRIPTOR,
11720 Start: PULONGLONG,
11721 ) -> ULONGLONG;
11722}
11723unsafe extern "C" {
11724 pub fn RtlFindClosestEncodableLength(
11725 SourceLength: ULONGLONG,
11726 TargetLength: PULONGLONG,
11727 ) -> NTSTATUS;
11728}
11729unsafe extern "C" {
11730 pub fn RtlIsUntrustedObject(
11731 Handle: HANDLE,
11732 Object: PVOID,
11733 UntrustedObject: PBOOLEAN,
11734 ) -> NTSTATUS;
11735}
11736unsafe extern "C" {
11737 pub fn RtlQueryValidationRunlevel(ComponentName: PCUNICODE_STRING) -> ULONG;
11738}
11739unsafe extern "C" {
11740 pub fn RtlCrc32(Buffer: *const core::ffi::c_void, Size: usize, InitialCrc: ULONG) -> ULONG;
11741}
11742unsafe extern "C" {
11743 pub fn RtlCrc64(
11744 Buffer: *const core::ffi::c_void,
11745 Size: usize,
11746 InitialCrc: ULONGLONG,
11747 ) -> ULONGLONG;
11748}
11749pub const _OS_DEPLOYEMENT_STATE_VALUES_OS_DEPLOYMENT_STANDARD: _OS_DEPLOYEMENT_STATE_VALUES = 1;
11750pub const _OS_DEPLOYEMENT_STATE_VALUES_OS_DEPLOYMENT_COMPACT: _OS_DEPLOYEMENT_STATE_VALUES = 2;
11751pub type _OS_DEPLOYEMENT_STATE_VALUES = core::ffi::c_int;
11752pub use self::_OS_DEPLOYEMENT_STATE_VALUES as OS_DEPLOYEMENT_STATE_VALUES;
11753unsafe extern "C" {
11754 pub fn RtlOsDeploymentState(Flags: ULONG) -> OS_DEPLOYEMENT_STATE_VALUES;
11755}
11756pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeNone: _IMAGE_POLICY_ENTRY_TYPE = 0;
11757pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeBool: _IMAGE_POLICY_ENTRY_TYPE = 1;
11758pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt8: _IMAGE_POLICY_ENTRY_TYPE = 2;
11759pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt8: _IMAGE_POLICY_ENTRY_TYPE = 3;
11760pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt16: _IMAGE_POLICY_ENTRY_TYPE = 4;
11761pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt16: _IMAGE_POLICY_ENTRY_TYPE = 5;
11762pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt32: _IMAGE_POLICY_ENTRY_TYPE = 6;
11763pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt32: _IMAGE_POLICY_ENTRY_TYPE = 7;
11764pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeInt64: _IMAGE_POLICY_ENTRY_TYPE = 8;
11765pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUInt64: _IMAGE_POLICY_ENTRY_TYPE = 9;
11766pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeAnsiString: _IMAGE_POLICY_ENTRY_TYPE = 10;
11767pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeUnicodeString: _IMAGE_POLICY_ENTRY_TYPE = 11;
11768pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeOverride: _IMAGE_POLICY_ENTRY_TYPE = 12;
11769pub const _IMAGE_POLICY_ENTRY_TYPE_ImagePolicyEntryTypeMaximum: _IMAGE_POLICY_ENTRY_TYPE = 13;
11770pub type _IMAGE_POLICY_ENTRY_TYPE = core::ffi::c_int;
11771pub use self::_IMAGE_POLICY_ENTRY_TYPE as IMAGE_POLICY_ENTRY_TYPE;
11772pub const _IMAGE_POLICY_ID_ImagePolicyIdNone: _IMAGE_POLICY_ID = 0;
11773pub const _IMAGE_POLICY_ID_ImagePolicyIdEtw: _IMAGE_POLICY_ID = 1;
11774pub const _IMAGE_POLICY_ID_ImagePolicyIdDebug: _IMAGE_POLICY_ID = 2;
11775pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDump: _IMAGE_POLICY_ID = 3;
11776pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDumpKey: _IMAGE_POLICY_ID = 4;
11777pub const _IMAGE_POLICY_ID_ImagePolicyIdCrashDumpKeyGuid: _IMAGE_POLICY_ID = 5;
11778pub const _IMAGE_POLICY_ID_ImagePolicyIdParentSd: _IMAGE_POLICY_ID = 6;
11779pub const _IMAGE_POLICY_ID_ImagePolicyIdParentSdRev: _IMAGE_POLICY_ID = 7;
11780pub const _IMAGE_POLICY_ID_ImagePolicyIdSvn: _IMAGE_POLICY_ID = 8;
11781pub const _IMAGE_POLICY_ID_ImagePolicyIdDeviceId: _IMAGE_POLICY_ID = 9;
11782pub const _IMAGE_POLICY_ID_ImagePolicyIdCapability: _IMAGE_POLICY_ID = 10;
11783pub const _IMAGE_POLICY_ID_ImagePolicyIdScenarioId: _IMAGE_POLICY_ID = 11;
11784pub const _IMAGE_POLICY_ID_ImagePolicyIdMaximum: _IMAGE_POLICY_ID = 12;
11785pub type _IMAGE_POLICY_ID = core::ffi::c_int;
11786pub use self::_IMAGE_POLICY_ID as IMAGE_POLICY_ID;
11787#[repr(C)]
11788#[derive(Copy, Clone)]
11789pub struct _IMAGE_POLICY_ENTRY {
11790 pub Type: IMAGE_POLICY_ENTRY_TYPE,
11791 pub PolicyId: IMAGE_POLICY_ID,
11792 pub u: _IMAGE_POLICY_ENTRY__bindgen_ty_1,
11793}
11794#[repr(C)]
11795#[derive(Copy, Clone)]
11796pub union _IMAGE_POLICY_ENTRY__bindgen_ty_1 {
11797 pub None: *const core::ffi::c_void,
11798 pub BoolValue: BOOLEAN,
11799 pub Int8Value: INT8,
11800 pub UInt8Value: UINT8,
11801 pub Int16Value: INT16,
11802 pub UInt16Value: UINT16,
11803 pub Int32Value: INT32,
11804 pub UInt32Value: UINT32,
11805 pub Int64Value: INT64,
11806 pub UInt64Value: UINT64,
11807 pub AnsiStringValue: PCSTR,
11808 pub UnicodeStringValue: PCWSTR,
11809}
11810pub type IMAGE_POLICY_ENTRY = _IMAGE_POLICY_ENTRY;
11811pub type PCIMAGE_POLICY_ENTRY = *const IMAGE_POLICY_ENTRY;
11812#[repr(C)]
11813pub struct _IMAGE_POLICY_METADATA {
11814 pub Version: UCHAR,
11815 pub Reserved0: [UCHAR; 7usize],
11816 pub ApplicationId: ULONGLONG,
11817 pub Policies: __IncompleteArrayField<IMAGE_POLICY_ENTRY>,
11818}
11819pub type IMAGE_POLICY_METADATA = _IMAGE_POLICY_METADATA;
11820pub type PCIMAGE_POLICY_METADATA = *const IMAGE_POLICY_METADATA;
11821unsafe extern "C" {
11822 pub fn RtlCompareMemory(
11823 Source1: *const core::ffi::c_void,
11824 Source2: *const core::ffi::c_void,
11825 Length: SIZE_T,
11826 ) -> SIZE_T;
11827}
11828pub type UOW = GUID;
11829pub type PUOW = *mut GUID;
11830pub type CRM_PROTOCOL_ID = GUID;
11831pub type PCRM_PROTOCOL_ID = *mut GUID;
11832pub type NOTIFICATION_MASK = ULONG;
11833#[repr(C)]
11834#[derive(Copy, Clone)]
11835pub struct _TRANSACTION_NOTIFICATION {
11836 pub TransactionKey: PVOID,
11837 pub TransactionNotification: ULONG,
11838 pub TmVirtualClock: LARGE_INTEGER,
11839 pub ArgumentLength: ULONG,
11840}
11841pub type TRANSACTION_NOTIFICATION = _TRANSACTION_NOTIFICATION;
11842pub type PTRANSACTION_NOTIFICATION = *mut _TRANSACTION_NOTIFICATION;
11843#[repr(C)]
11844#[derive(Debug, Copy, Clone)]
11845pub struct _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
11846 pub EnlistmentId: GUID,
11847 pub UOW: UOW,
11848}
11849pub type TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
11850pub type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT =
11851*mut _TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
11852#[repr(C)]
11853#[derive(Debug, Copy, Clone)]
11854pub struct _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
11855 pub TmIdentity: GUID,
11856 pub Flags: ULONG,
11857}
11858pub type TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
11859pub type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT =
11860*mut _TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
11861pub type SAVEPOINT_ID = ULONG;
11862pub type PSAVEPOINT_ID = *mut ULONG;
11863#[repr(C)]
11864#[derive(Debug, Copy, Clone)]
11865pub struct _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
11866 pub SavepointId: SAVEPOINT_ID,
11867}
11868pub type TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
11869pub type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT =
11870*mut _TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
11871#[repr(C)]
11872#[derive(Debug, Copy, Clone)]
11873pub struct _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
11874 pub PropagationCookie: ULONG,
11875 pub UOW: GUID,
11876 pub TmIdentity: GUID,
11877 pub BufferLength: ULONG,
11878}
11879pub type TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
11880pub type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT =
11881*mut _TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
11882#[repr(C)]
11883#[derive(Debug, Copy, Clone)]
11884pub struct _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
11885 pub MarshalCookie: ULONG,
11886 pub UOW: GUID,
11887}
11888pub type TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
11889pub type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT =
11890*mut _TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
11891pub type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
11892pub type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT =
11893*mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
11894#[repr(C)]
11895#[derive(Debug, Copy, Clone)]
11896pub struct _KCRM_MARSHAL_HEADER {
11897 pub VersionMajor: ULONG,
11898 pub VersionMinor: ULONG,
11899 pub NumProtocols: ULONG,
11900 pub Unused: ULONG,
11901}
11902pub type KCRM_MARSHAL_HEADER = _KCRM_MARSHAL_HEADER;
11903pub type PKCRM_MARSHAL_HEADER = *mut _KCRM_MARSHAL_HEADER;
11904pub type PRKCRM_MARSHAL_HEADER = *mut _KCRM_MARSHAL_HEADER;
11905#[repr(C)]
11906#[derive(Debug, Copy, Clone)]
11907pub struct _KCRM_TRANSACTION_BLOB {
11908 pub UOW: UOW,
11909 pub TmIdentity: GUID,
11910 pub IsolationLevel: ULONG,
11911 pub IsolationFlags: ULONG,
11912 pub Timeout: ULONG,
11913 pub Description: [WCHAR; 64usize],
11914}
11915pub type KCRM_TRANSACTION_BLOB = _KCRM_TRANSACTION_BLOB;
11916pub type PKCRM_TRANSACTION_BLOB = *mut _KCRM_TRANSACTION_BLOB;
11917pub type PRKCRM_TRANSACTION_BLOB = *mut _KCRM_TRANSACTION_BLOB;
11918#[repr(C)]
11919#[derive(Debug, Copy, Clone)]
11920pub struct _KCRM_PROTOCOL_BLOB {
11921 pub ProtocolId: CRM_PROTOCOL_ID,
11922 pub StaticInfoLength: ULONG,
11923 pub TransactionIdInfoLength: ULONG,
11924 pub Unused1: ULONG,
11925 pub Unused2: ULONG,
11926}
11927pub type KCRM_PROTOCOL_BLOB = _KCRM_PROTOCOL_BLOB;
11928pub type PKCRM_PROTOCOL_BLOB = *mut _KCRM_PROTOCOL_BLOB;
11929pub type PRKCRM_PROTOCOL_BLOB = *mut _KCRM_PROTOCOL_BLOB;
11930pub const _TRANSACTION_OUTCOME_TransactionOutcomeUndetermined: _TRANSACTION_OUTCOME = 1;
11931pub const _TRANSACTION_OUTCOME_TransactionOutcomeCommitted: _TRANSACTION_OUTCOME = 2;
11932pub const _TRANSACTION_OUTCOME_TransactionOutcomeAborted: _TRANSACTION_OUTCOME = 3;
11933pub type _TRANSACTION_OUTCOME = core::ffi::c_int;
11934pub use self::_TRANSACTION_OUTCOME as TRANSACTION_OUTCOME;
11935pub const _TRANSACTION_STATE_TransactionStateNormal: _TRANSACTION_STATE = 1;
11936pub const _TRANSACTION_STATE_TransactionStateIndoubt: _TRANSACTION_STATE = 2;
11937pub const _TRANSACTION_STATE_TransactionStateCommittedNotify: _TRANSACTION_STATE = 3;
11938pub type _TRANSACTION_STATE = core::ffi::c_int;
11939pub use self::_TRANSACTION_STATE as TRANSACTION_STATE;
11940#[repr(C)]
11941#[derive(Debug, Copy, Clone)]
11942pub struct _TRANSACTION_BASIC_INFORMATION {
11943 pub TransactionId: GUID,
11944 pub State: ULONG,
11945 pub Outcome: ULONG,
11946}
11947pub type TRANSACTION_BASIC_INFORMATION = _TRANSACTION_BASIC_INFORMATION;
11948pub type PTRANSACTION_BASIC_INFORMATION = *mut _TRANSACTION_BASIC_INFORMATION;
11949#[repr(C)]
11950#[derive(Copy, Clone)]
11951pub struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
11952 pub TmIdentity: GUID,
11953 pub VirtualClock: LARGE_INTEGER,
11954}
11955pub type TRANSACTIONMANAGER_BASIC_INFORMATION = _TRANSACTIONMANAGER_BASIC_INFORMATION;
11956pub type PTRANSACTIONMANAGER_BASIC_INFORMATION = *mut _TRANSACTIONMANAGER_BASIC_INFORMATION;
11957#[repr(C)]
11958#[derive(Debug, Copy, Clone)]
11959pub struct _TRANSACTIONMANAGER_LOG_INFORMATION {
11960 pub LogIdentity: GUID,
11961}
11962pub type TRANSACTIONMANAGER_LOG_INFORMATION = _TRANSACTIONMANAGER_LOG_INFORMATION;
11963pub type PTRANSACTIONMANAGER_LOG_INFORMATION = *mut _TRANSACTIONMANAGER_LOG_INFORMATION;
11964#[repr(C)]
11965#[derive(Debug, Copy, Clone)]
11966pub struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
11967 pub LogPathLength: ULONG,
11968 pub LogPath: [WCHAR; 1usize],
11969}
11970pub type TRANSACTIONMANAGER_LOGPATH_INFORMATION = _TRANSACTIONMANAGER_LOGPATH_INFORMATION;
11971pub type PTRANSACTIONMANAGER_LOGPATH_INFORMATION = *mut _TRANSACTIONMANAGER_LOGPATH_INFORMATION;
11972#[repr(C)]
11973#[derive(Debug, Copy, Clone)]
11974pub struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
11975 pub LastRecoveredLsn: ULONGLONG,
11976}
11977pub type TRANSACTIONMANAGER_RECOVERY_INFORMATION = _TRANSACTIONMANAGER_RECOVERY_INFORMATION;
11978pub type PTRANSACTIONMANAGER_RECOVERY_INFORMATION = *mut _TRANSACTIONMANAGER_RECOVERY_INFORMATION;
11979#[repr(C)]
11980#[derive(Copy, Clone)]
11981pub struct _TRANSACTION_PROPERTIES_INFORMATION {
11982 pub IsolationLevel: ULONG,
11983 pub IsolationFlags: ULONG,
11984 pub Timeout: LARGE_INTEGER,
11985 pub Outcome: ULONG,
11986 pub DescriptionLength: ULONG,
11987 pub Description: [WCHAR; 1usize],
11988}
11989pub type TRANSACTION_PROPERTIES_INFORMATION = _TRANSACTION_PROPERTIES_INFORMATION;
11990pub type PTRANSACTION_PROPERTIES_INFORMATION = *mut _TRANSACTION_PROPERTIES_INFORMATION;
11991#[repr(C)]
11992#[derive(Debug, Copy, Clone)]
11993pub struct _TRANSACTION_BIND_INFORMATION {
11994 pub TmHandle: HANDLE,
11995}
11996pub type TRANSACTION_BIND_INFORMATION = _TRANSACTION_BIND_INFORMATION;
11997pub type PTRANSACTION_BIND_INFORMATION = *mut _TRANSACTION_BIND_INFORMATION;
11998#[repr(C)]
11999#[derive(Debug, Copy, Clone)]
12000pub struct _TRANSACTION_ENLISTMENT_PAIR {
12001 pub EnlistmentId: GUID,
12002 pub ResourceManagerId: GUID,
12003}
12004pub type TRANSACTION_ENLISTMENT_PAIR = _TRANSACTION_ENLISTMENT_PAIR;
12005pub type PTRANSACTION_ENLISTMENT_PAIR = *mut _TRANSACTION_ENLISTMENT_PAIR;
12006#[repr(C)]
12007#[derive(Debug, Copy, Clone)]
12008pub struct _TRANSACTION_ENLISTMENTS_INFORMATION {
12009 pub NumberOfEnlistments: ULONG,
12010 pub EnlistmentPair: [TRANSACTION_ENLISTMENT_PAIR; 1usize],
12011}
12012pub type TRANSACTION_ENLISTMENTS_INFORMATION = _TRANSACTION_ENLISTMENTS_INFORMATION;
12013pub type PTRANSACTION_ENLISTMENTS_INFORMATION = *mut _TRANSACTION_ENLISTMENTS_INFORMATION;
12014#[repr(C)]
12015#[derive(Debug, Copy, Clone)]
12016pub struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
12017 pub SuperiorEnlistmentPair: TRANSACTION_ENLISTMENT_PAIR,
12018}
12019pub type TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
12020pub type PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION =
12021*mut _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
12022#[repr(C)]
12023#[derive(Debug, Copy, Clone)]
12024pub struct _RESOURCEMANAGER_BASIC_INFORMATION {
12025 pub ResourceManagerId: GUID,
12026 pub DescriptionLength: ULONG,
12027 pub Description: [WCHAR; 1usize],
12028}
12029pub type RESOURCEMANAGER_BASIC_INFORMATION = _RESOURCEMANAGER_BASIC_INFORMATION;
12030pub type PRESOURCEMANAGER_BASIC_INFORMATION = *mut _RESOURCEMANAGER_BASIC_INFORMATION;
12031#[repr(C)]
12032#[derive(Debug, Copy, Clone)]
12033pub struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
12034 pub IoCompletionPortHandle: HANDLE,
12035 pub CompletionKey: ULONG_PTR,
12036}
12037pub type RESOURCEMANAGER_COMPLETION_INFORMATION = _RESOURCEMANAGER_COMPLETION_INFORMATION;
12038pub type PRESOURCEMANAGER_COMPLETION_INFORMATION = *mut _RESOURCEMANAGER_COMPLETION_INFORMATION;
12039pub const _TRANSACTION_INFORMATION_CLASS_TransactionBasicInformation:
12040_TRANSACTION_INFORMATION_CLASS = 0;
12041pub const _TRANSACTION_INFORMATION_CLASS_TransactionPropertiesInformation:
12042_TRANSACTION_INFORMATION_CLASS = 1;
12043pub const _TRANSACTION_INFORMATION_CLASS_TransactionEnlistmentInformation:
12044_TRANSACTION_INFORMATION_CLASS = 2;
12045pub const _TRANSACTION_INFORMATION_CLASS_TransactionSuperiorEnlistmentInformation:
12046_TRANSACTION_INFORMATION_CLASS = 3;
12047pub type _TRANSACTION_INFORMATION_CLASS = core::ffi::c_int;
12048pub use self::_TRANSACTION_INFORMATION_CLASS as TRANSACTION_INFORMATION_CLASS;
12049pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerBasicInformation:
12050_TRANSACTIONMANAGER_INFORMATION_CLASS = 0;
12051pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerLogInformation:
12052_TRANSACTIONMANAGER_INFORMATION_CLASS = 1;
12053pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerLogPathInformation:
12054_TRANSACTIONMANAGER_INFORMATION_CLASS = 2;
12055pub const _TRANSACTIONMANAGER_INFORMATION_CLASS_TransactionManagerRecoveryInformation:
12056_TRANSACTIONMANAGER_INFORMATION_CLASS = 4;
12057pub type _TRANSACTIONMANAGER_INFORMATION_CLASS = core::ffi::c_int;
12058pub use self::_TRANSACTIONMANAGER_INFORMATION_CLASS as TRANSACTIONMANAGER_INFORMATION_CLASS;
12059pub const _RESOURCEMANAGER_INFORMATION_CLASS_ResourceManagerBasicInformation:
12060_RESOURCEMANAGER_INFORMATION_CLASS = 0;
12061pub const _RESOURCEMANAGER_INFORMATION_CLASS_ResourceManagerCompletionInformation:
12062_RESOURCEMANAGER_INFORMATION_CLASS = 1;
12063pub type _RESOURCEMANAGER_INFORMATION_CLASS = core::ffi::c_int;
12064pub use self::_RESOURCEMANAGER_INFORMATION_CLASS as RESOURCEMANAGER_INFORMATION_CLASS;
12065#[repr(C)]
12066#[derive(Debug, Copy, Clone)]
12067pub struct _ENLISTMENT_BASIC_INFORMATION {
12068 pub EnlistmentId: GUID,
12069 pub TransactionId: GUID,
12070 pub ResourceManagerId: GUID,
12071}
12072pub type ENLISTMENT_BASIC_INFORMATION = _ENLISTMENT_BASIC_INFORMATION;
12073pub type PENLISTMENT_BASIC_INFORMATION = *mut _ENLISTMENT_BASIC_INFORMATION;
12074#[repr(C)]
12075#[derive(Debug, Copy, Clone)]
12076pub struct _ENLISTMENT_CRM_INFORMATION {
12077 pub CrmTransactionManagerId: GUID,
12078 pub CrmResourceManagerId: GUID,
12079 pub CrmEnlistmentId: GUID,
12080}
12081pub type ENLISTMENT_CRM_INFORMATION = _ENLISTMENT_CRM_INFORMATION;
12082pub type PENLISTMENT_CRM_INFORMATION = *mut _ENLISTMENT_CRM_INFORMATION;
12083pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentBasicInformation: _ENLISTMENT_INFORMATION_CLASS =
12084 0;
12085pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentRecoveryInformation:
12086_ENLISTMENT_INFORMATION_CLASS = 1;
12087pub const _ENLISTMENT_INFORMATION_CLASS_EnlistmentCrmInformation: _ENLISTMENT_INFORMATION_CLASS = 2;
12088pub type _ENLISTMENT_INFORMATION_CLASS = core::ffi::c_int;
12089pub use self::_ENLISTMENT_INFORMATION_CLASS as ENLISTMENT_INFORMATION_CLASS;
12090#[repr(C)]
12091#[derive(Debug, Copy, Clone)]
12092pub struct _TRANSACTION_LIST_ENTRY {
12093 pub UOW: UOW,
12094}
12095pub type TRANSACTION_LIST_ENTRY = _TRANSACTION_LIST_ENTRY;
12096pub type PTRANSACTION_LIST_ENTRY = *mut _TRANSACTION_LIST_ENTRY;
12097#[repr(C)]
12098#[derive(Debug, Copy, Clone)]
12099pub struct _TRANSACTION_LIST_INFORMATION {
12100 pub NumberOfTransactions: ULONG,
12101 pub TransactionInformation: [TRANSACTION_LIST_ENTRY; 1usize],
12102}
12103pub type TRANSACTION_LIST_INFORMATION = _TRANSACTION_LIST_INFORMATION;
12104pub type PTRANSACTION_LIST_INFORMATION = *mut _TRANSACTION_LIST_INFORMATION;
12105pub const _KTMOBJECT_TYPE_KTMOBJECT_TRANSACTION: _KTMOBJECT_TYPE = 0;
12106pub const _KTMOBJECT_TYPE_KTMOBJECT_TRANSACTION_MANAGER: _KTMOBJECT_TYPE = 1;
12107pub const _KTMOBJECT_TYPE_KTMOBJECT_RESOURCE_MANAGER: _KTMOBJECT_TYPE = 2;
12108pub const _KTMOBJECT_TYPE_KTMOBJECT_ENLISTMENT: _KTMOBJECT_TYPE = 3;
12109pub const _KTMOBJECT_TYPE_KTMOBJECT_INVALID: _KTMOBJECT_TYPE = 4;
12110pub type _KTMOBJECT_TYPE = core::ffi::c_int;
12111pub use self::_KTMOBJECT_TYPE as KTMOBJECT_TYPE;
12112pub type PKTMOBJECT_TYPE = *mut _KTMOBJECT_TYPE;
12113#[repr(C)]
12114#[derive(Debug, Copy, Clone)]
12115pub struct _KTMOBJECT_CURSOR {
12116 pub LastQuery: GUID,
12117 pub ObjectIdCount: ULONG,
12118 pub ObjectIds: [GUID; 1usize],
12119}
12120pub type KTMOBJECT_CURSOR = _KTMOBJECT_CURSOR;
12121pub type PKTMOBJECT_CURSOR = *mut _KTMOBJECT_CURSOR;
12122unsafe extern "C" {
12123 pub fn NtCreateTransactionManager(
12124 TmHandle: PHANDLE,
12125 DesiredAccess: ACCESS_MASK,
12126 ObjectAttributes: POBJECT_ATTRIBUTES,
12127 LogFileName: PUNICODE_STRING,
12128 CreateOptions: ULONG,
12129 CommitStrength: ULONG,
12130 ) -> NTSTATUS;
12131}
12132unsafe extern "C" {
12133 pub fn NtOpenTransactionManager(
12134 TmHandle: PHANDLE,
12135 DesiredAccess: ACCESS_MASK,
12136 ObjectAttributes: POBJECT_ATTRIBUTES,
12137 LogFileName: PUNICODE_STRING,
12138 TmIdentity: LPGUID,
12139 OpenOptions: ULONG,
12140 ) -> NTSTATUS;
12141}
12142unsafe extern "C" {
12143 pub fn NtRenameTransactionManager(
12144 LogFileName: PUNICODE_STRING,
12145 ExistingTransactionManagerGuid: LPGUID,
12146 ) -> NTSTATUS;
12147}
12148unsafe extern "C" {
12149 pub fn NtRollforwardTransactionManager(
12150 TransactionManagerHandle: HANDLE,
12151 TmVirtualClock: PLARGE_INTEGER,
12152 ) -> NTSTATUS;
12153}
12154unsafe extern "C" {
12155 pub fn NtRecoverTransactionManager(TransactionManagerHandle: HANDLE) -> NTSTATUS;
12156}
12157unsafe extern "C" {
12158 pub fn NtQueryInformationTransactionManager(
12159 TransactionManagerHandle: HANDLE,
12160 TransactionManagerInformationClass: TRANSACTIONMANAGER_INFORMATION_CLASS,
12161 TransactionManagerInformation: PVOID,
12162 TransactionManagerInformationLength: ULONG,
12163 ReturnLength: PULONG,
12164 ) -> NTSTATUS;
12165}
12166unsafe extern "C" {
12167 pub fn NtSetInformationTransactionManager(
12168 TmHandle: HANDLE,
12169 TransactionManagerInformationClass: TRANSACTIONMANAGER_INFORMATION_CLASS,
12170 TransactionManagerInformation: PVOID,
12171 TransactionManagerInformationLength: ULONG,
12172 ) -> NTSTATUS;
12173}
12174unsafe extern "C" {
12175 pub fn NtEnumerateTransactionObject(
12176 RootObjectHandle: HANDLE,
12177 QueryType: KTMOBJECT_TYPE,
12178 ObjectCursor: PKTMOBJECT_CURSOR,
12179 ObjectCursorLength: ULONG,
12180 ReturnLength: PULONG,
12181 ) -> NTSTATUS;
12182}
12183pub type PFN_NT_CREATE_TRANSACTION = ::core::option::Option<
12184 unsafe extern "C" fn(
12185 TransactionHandle: PHANDLE,
12186 DesiredAccess: ACCESS_MASK,
12187 ObjectAttributes: POBJECT_ATTRIBUTES,
12188 Uow: LPGUID,
12189 TmHandle: HANDLE,
12190 CreateOptions: ULONG,
12191 IsolationLevel: ULONG,
12192 IsolationFlags: ULONG,
12193 Timeout: PLARGE_INTEGER,
12194 Description: PUNICODE_STRING,
12195 ) -> NTSTATUS,
12196>;
12197unsafe extern "C" {
12198 pub fn NtCreateTransaction(
12199 TransactionHandle: PHANDLE,
12200 DesiredAccess: ACCESS_MASK,
12201 ObjectAttributes: POBJECT_ATTRIBUTES,
12202 Uow: LPGUID,
12203 TmHandle: HANDLE,
12204 CreateOptions: ULONG,
12205 IsolationLevel: ULONG,
12206 IsolationFlags: ULONG,
12207 Timeout: PLARGE_INTEGER,
12208 Description: PUNICODE_STRING,
12209 ) -> NTSTATUS;
12210}
12211pub type PFN_NT_OPEN_TRANSACTION = ::core::option::Option<
12212 unsafe extern "C" fn(
12213 TransactionHandle: PHANDLE,
12214 DesiredAccess: ACCESS_MASK,
12215 ObjectAttributes: POBJECT_ATTRIBUTES,
12216 Uow: LPGUID,
12217 TmHandle: HANDLE,
12218 ) -> NTSTATUS,
12219>;
12220unsafe extern "C" {
12221 pub fn NtOpenTransaction(
12222 TransactionHandle: PHANDLE,
12223 DesiredAccess: ACCESS_MASK,
12224 ObjectAttributes: POBJECT_ATTRIBUTES,
12225 Uow: LPGUID,
12226 TmHandle: HANDLE,
12227 ) -> NTSTATUS;
12228}
12229pub type PFN_NT_QUERY_INFORMATION_TRANSACTION = ::core::option::Option<
12230 unsafe extern "C" fn(
12231 TransactionHandle: HANDLE,
12232 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
12233 TransactionInformation: PVOID,
12234 TransactionInformationLength: ULONG,
12235 ReturnLength: PULONG,
12236 ) -> NTSTATUS,
12237>;
12238unsafe extern "C" {
12239 pub fn NtQueryInformationTransaction(
12240 TransactionHandle: HANDLE,
12241 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
12242 TransactionInformation: PVOID,
12243 TransactionInformationLength: ULONG,
12244 ReturnLength: PULONG,
12245 ) -> NTSTATUS;
12246}
12247pub type PFN_NT_SET_INFORMATION_TRANSACTION = ::core::option::Option<
12248 unsafe extern "C" fn(
12249 TransactionHandle: HANDLE,
12250 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
12251 TransactionInformation: PVOID,
12252 TransactionInformationLength: ULONG,
12253 ) -> NTSTATUS,
12254>;
12255unsafe extern "C" {
12256 pub fn NtSetInformationTransaction(
12257 TransactionHandle: HANDLE,
12258 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
12259 TransactionInformation: PVOID,
12260 TransactionInformationLength: ULONG,
12261 ) -> NTSTATUS;
12262}
12263pub type PFN_NT_COMMIT_TRANSACTION = ::core::option::Option<
12264 unsafe extern "C" fn(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS,
12265>;
12266unsafe extern "C" {
12267 pub fn NtCommitTransaction(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS;
12268}
12269pub type PFN_NT_ROLLBACK_TRANSACTION = ::core::option::Option<
12270 unsafe extern "C" fn(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS,
12271>;
12272unsafe extern "C" {
12273 pub fn NtRollbackTransaction(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS;
12274}
12275unsafe extern "C" {
12276 pub fn NtCreateEnlistment(
12277 EnlistmentHandle: PHANDLE,
12278 DesiredAccess: ACCESS_MASK,
12279 ResourceManagerHandle: HANDLE,
12280 TransactionHandle: HANDLE,
12281 ObjectAttributes: POBJECT_ATTRIBUTES,
12282 CreateOptions: ULONG,
12283 NotificationMask: NOTIFICATION_MASK,
12284 EnlistmentKey: PVOID,
12285 ) -> NTSTATUS;
12286}
12287unsafe extern "C" {
12288 pub fn NtOpenEnlistment(
12289 EnlistmentHandle: PHANDLE,
12290 DesiredAccess: ACCESS_MASK,
12291 ResourceManagerHandle: HANDLE,
12292 EnlistmentGuid: LPGUID,
12293 ObjectAttributes: POBJECT_ATTRIBUTES,
12294 ) -> NTSTATUS;
12295}
12296unsafe extern "C" {
12297 pub fn NtQueryInformationEnlistment(
12298 EnlistmentHandle: HANDLE,
12299 EnlistmentInformationClass: ENLISTMENT_INFORMATION_CLASS,
12300 EnlistmentInformation: PVOID,
12301 EnlistmentInformationLength: ULONG,
12302 ReturnLength: PULONG,
12303 ) -> NTSTATUS;
12304}
12305unsafe extern "C" {
12306 pub fn NtSetInformationEnlistment(
12307 EnlistmentHandle: HANDLE,
12308 EnlistmentInformationClass: ENLISTMENT_INFORMATION_CLASS,
12309 EnlistmentInformation: PVOID,
12310 EnlistmentInformationLength: ULONG,
12311 ) -> NTSTATUS;
12312}
12313unsafe extern "C" {
12314 pub fn NtRecoverEnlistment(EnlistmentHandle: HANDLE, EnlistmentKey: PVOID) -> NTSTATUS;
12315}
12316unsafe extern "C" {
12317 pub fn NtPrePrepareEnlistment(
12318 EnlistmentHandle: HANDLE,
12319 TmVirtualClock: PLARGE_INTEGER,
12320 ) -> NTSTATUS;
12321}
12322unsafe extern "C" {
12323 pub fn NtPrepareEnlistment(
12324 EnlistmentHandle: HANDLE,
12325 TmVirtualClock: PLARGE_INTEGER,
12326 ) -> NTSTATUS;
12327}
12328unsafe extern "C" {
12329 pub fn NtCommitEnlistment(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER)
12330 -> NTSTATUS;
12331}
12332unsafe extern "C" {
12333 pub fn NtRollbackEnlistment(
12334 EnlistmentHandle: HANDLE,
12335 TmVirtualClock: PLARGE_INTEGER,
12336 ) -> NTSTATUS;
12337}
12338unsafe extern "C" {
12339 pub fn NtPrePrepareComplete(
12340 EnlistmentHandle: HANDLE,
12341 TmVirtualClock: PLARGE_INTEGER,
12342 ) -> NTSTATUS;
12343}
12344unsafe extern "C" {
12345 pub fn NtPrepareComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
12346}
12347unsafe extern "C" {
12348 pub fn NtCommitComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
12349}
12350unsafe extern "C" {
12351 pub fn NtReadOnlyEnlistment(
12352 EnlistmentHandle: HANDLE,
12353 TmVirtualClock: PLARGE_INTEGER,
12354 ) -> NTSTATUS;
12355}
12356unsafe extern "C" {
12357 pub fn NtRollbackComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER)
12358 -> NTSTATUS;
12359}
12360unsafe extern "C" {
12361 pub fn NtSinglePhaseReject(
12362 EnlistmentHandle: HANDLE,
12363 TmVirtualClock: PLARGE_INTEGER,
12364 ) -> NTSTATUS;
12365}
12366unsafe extern "C" {
12367 pub fn NtCreateResourceManager(
12368 ResourceManagerHandle: PHANDLE,
12369 DesiredAccess: ACCESS_MASK,
12370 TmHandle: HANDLE,
12371 RmGuid: LPGUID,
12372 ObjectAttributes: POBJECT_ATTRIBUTES,
12373 CreateOptions: ULONG,
12374 Description: PUNICODE_STRING,
12375 ) -> NTSTATUS;
12376}
12377unsafe extern "C" {
12378 pub fn NtOpenResourceManager(
12379 ResourceManagerHandle: PHANDLE,
12380 DesiredAccess: ACCESS_MASK,
12381 TmHandle: HANDLE,
12382 ResourceManagerGuid: LPGUID,
12383 ObjectAttributes: POBJECT_ATTRIBUTES,
12384 ) -> NTSTATUS;
12385}
12386unsafe extern "C" {
12387 pub fn NtRecoverResourceManager(ResourceManagerHandle: HANDLE) -> NTSTATUS;
12388}
12389unsafe extern "C" {
12390 pub fn NtGetNotificationResourceManager(
12391 ResourceManagerHandle: HANDLE,
12392 TransactionNotification: PTRANSACTION_NOTIFICATION,
12393 NotificationLength: ULONG,
12394 Timeout: PLARGE_INTEGER,
12395 ReturnLength: PULONG,
12396 Asynchronous: ULONG,
12397 AsynchronousContext: ULONG_PTR,
12398 ) -> NTSTATUS;
12399}
12400unsafe extern "C" {
12401 pub fn NtQueryInformationResourceManager(
12402 ResourceManagerHandle: HANDLE,
12403 ResourceManagerInformationClass: RESOURCEMANAGER_INFORMATION_CLASS,
12404 ResourceManagerInformation: PVOID,
12405 ResourceManagerInformationLength: ULONG,
12406 ReturnLength: PULONG,
12407 ) -> NTSTATUS;
12408}
12409unsafe extern "C" {
12410 pub fn NtSetInformationResourceManager(
12411 ResourceManagerHandle: HANDLE,
12412 ResourceManagerInformationClass: RESOURCEMANAGER_INFORMATION_CLASS,
12413 ResourceManagerInformation: PVOID,
12414 ResourceManagerInformationLength: ULONG,
12415 ) -> NTSTATUS;
12416}
12417unsafe extern "C" {
12418 pub fn NtRegisterProtocolAddressInformation(
12419 ResourceManager: HANDLE,
12420 ProtocolId: PCRM_PROTOCOL_ID,
12421 ProtocolInformationSize: ULONG,
12422 ProtocolInformation: PVOID,
12423 CreateOptions: ULONG,
12424 ) -> NTSTATUS;
12425}
12426unsafe extern "C" {
12427 pub fn NtPropagationComplete(
12428 ResourceManagerHandle: HANDLE,
12429 RequestCookie: ULONG,
12430 BufferLength: ULONG,
12431 Buffer: PVOID,
12432 ) -> NTSTATUS;
12433}
12434unsafe extern "C" {
12435 pub fn NtPropagationFailed(
12436 ResourceManagerHandle: HANDLE,
12437 RequestCookie: ULONG,
12438 PropStatus: NTSTATUS,
12439 ) -> NTSTATUS;
12440}
12441unsafe extern "C" {
12442 pub static mut NtGlobalFlag: ULONG;
12443}
12444unsafe extern "C" {
12445 pub static mut NtGlobalFlag2: ULONG;
12446}
12447pub use self::_POOL_TYPE as POOL_TYPE;
12448pub type POOL_FLAGS = ULONG64;
12449pub type ALLOCATE_FUNCTION = ::core::option::Option<
12450 unsafe extern "C" fn(PoolType: POOL_TYPE, NumberOfBytes: SIZE_T, Tag: ULONG) -> PVOID,
12451>;
12452pub type PALLOCATE_FUNCTION = ALLOCATE_FUNCTION;
12453pub type FREE_FUNCTION = ::core::option::Option<unsafe extern "C" fn(Buffer: PVOID)>;
12454pub type PFREE_FUNCTION = FREE_FUNCTION;
12455pub type PLOOKASIDE_LIST_EX = *mut _LOOKASIDE_LIST_EX;
12456pub type ALLOCATE_FUNCTION_EX = ::core::option::Option<
12457 unsafe extern "C" fn(
12458 PoolType: POOL_TYPE,
12459 NumberOfBytes: SIZE_T,
12460 Tag: ULONG,
12461 Lookaside: PLOOKASIDE_LIST_EX,
12462 ) -> PVOID,
12463>;
12464pub type PALLOCATE_FUNCTION_EX = ALLOCATE_FUNCTION_EX;
12465pub type FREE_FUNCTION_EX =
12466::core::option::Option<unsafe extern "C" fn(Buffer: PVOID, Lookaside: PLOOKASIDE_LIST_EX)>;
12467pub type PFREE_FUNCTION_EX = FREE_FUNCTION_EX;
12468#[repr(C)]
12469#[repr(align(64))]
12470#[derive(Copy, Clone)]
12471pub struct _GENERAL_LOOKASIDE {
12472 pub __bindgen_anon_1: _GENERAL_LOOKASIDE__bindgen_ty_1,
12473 pub Depth: USHORT,
12474 pub MaximumDepth: USHORT,
12475 pub TotalAllocates: ULONG,
12476 pub __bindgen_anon_2: _GENERAL_LOOKASIDE__bindgen_ty_2,
12477 pub TotalFrees: ULONG,
12478 pub __bindgen_anon_3: _GENERAL_LOOKASIDE__bindgen_ty_3,
12479 pub Type: POOL_TYPE,
12480 pub Tag: ULONG,
12481 pub Size: ULONG,
12482 pub __bindgen_anon_4: _GENERAL_LOOKASIDE__bindgen_ty_4,
12483 pub __bindgen_anon_5: _GENERAL_LOOKASIDE__bindgen_ty_5,
12484 pub ListEntry: LIST_ENTRY,
12485 pub LastTotalAllocates: ULONG,
12486 pub __bindgen_anon_6: _GENERAL_LOOKASIDE__bindgen_ty_6,
12487 pub Future: [ULONG; 2usize],
12488}
12489#[repr(C)]
12490#[repr(align(16))]
12491#[derive(Copy, Clone)]
12492pub union _GENERAL_LOOKASIDE__bindgen_ty_1 {
12493 pub ListHead: SLIST_HEADER,
12494 pub SingleListHead: SINGLE_LIST_ENTRY,
12495}
12496#[repr(C)]
12497#[derive(Copy, Clone)]
12498pub union _GENERAL_LOOKASIDE__bindgen_ty_2 {
12499 pub AllocateMisses: ULONG,
12500 pub AllocateHits: ULONG,
12501}
12502#[repr(C)]
12503#[derive(Copy, Clone)]
12504pub union _GENERAL_LOOKASIDE__bindgen_ty_3 {
12505 pub FreeMisses: ULONG,
12506 pub FreeHits: ULONG,
12507}
12508#[repr(C)]
12509#[derive(Copy, Clone)]
12510pub union _GENERAL_LOOKASIDE__bindgen_ty_4 {
12511 pub AllocateEx: PALLOCATE_FUNCTION_EX,
12512 pub Allocate: PALLOCATE_FUNCTION,
12513}
12514#[repr(C)]
12515#[derive(Copy, Clone)]
12516pub union _GENERAL_LOOKASIDE__bindgen_ty_5 {
12517 pub FreeEx: PFREE_FUNCTION_EX,
12518 pub Free: PFREE_FUNCTION,
12519}
12520#[repr(C)]
12521#[derive(Copy, Clone)]
12522pub union _GENERAL_LOOKASIDE__bindgen_ty_6 {
12523 pub LastAllocateMisses: ULONG,
12524 pub LastAllocateHits: ULONG,
12525}
12526pub type GENERAL_LOOKASIDE = _GENERAL_LOOKASIDE;
12527pub type PGENERAL_LOOKASIDE = *mut GENERAL_LOOKASIDE;
12528#[repr(C)]
12529#[repr(align(16))]
12530#[derive(Copy, Clone)]
12531pub struct _GENERAL_LOOKASIDE_POOL {
12532 pub __bindgen_anon_1: _GENERAL_LOOKASIDE_POOL__bindgen_ty_1,
12533 pub Depth: USHORT,
12534 pub MaximumDepth: USHORT,
12535 pub TotalAllocates: ULONG,
12536 pub __bindgen_anon_2: _GENERAL_LOOKASIDE_POOL__bindgen_ty_2,
12537 pub TotalFrees: ULONG,
12538 pub __bindgen_anon_3: _GENERAL_LOOKASIDE_POOL__bindgen_ty_3,
12539 pub Type: POOL_TYPE,
12540 pub Tag: ULONG,
12541 pub Size: ULONG,
12542 pub __bindgen_anon_4: _GENERAL_LOOKASIDE_POOL__bindgen_ty_4,
12543 pub __bindgen_anon_5: _GENERAL_LOOKASIDE_POOL__bindgen_ty_5,
12544 pub ListEntry: LIST_ENTRY,
12545 pub LastTotalAllocates: ULONG,
12546 pub __bindgen_anon_6: _GENERAL_LOOKASIDE_POOL__bindgen_ty_6,
12547 pub Future: [ULONG; 2usize],
12548}
12549#[repr(C)]
12550#[repr(align(16))]
12551#[derive(Copy, Clone)]
12552pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_1 {
12553 pub ListHead: SLIST_HEADER,
12554 pub SingleListHead: SINGLE_LIST_ENTRY,
12555}
12556#[repr(C)]
12557#[derive(Copy, Clone)]
12558pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_2 {
12559 pub AllocateMisses: ULONG,
12560 pub AllocateHits: ULONG,
12561}
12562#[repr(C)]
12563#[derive(Copy, Clone)]
12564pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_3 {
12565 pub FreeMisses: ULONG,
12566 pub FreeHits: ULONG,
12567}
12568#[repr(C)]
12569#[derive(Copy, Clone)]
12570pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_4 {
12571 pub AllocateEx: PALLOCATE_FUNCTION_EX,
12572 pub Allocate: PALLOCATE_FUNCTION,
12573}
12574#[repr(C)]
12575#[derive(Copy, Clone)]
12576pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_5 {
12577 pub FreeEx: PFREE_FUNCTION_EX,
12578 pub Free: PFREE_FUNCTION,
12579}
12580#[repr(C)]
12581#[derive(Copy, Clone)]
12582pub union _GENERAL_LOOKASIDE_POOL__bindgen_ty_6 {
12583 pub LastAllocateMisses: ULONG,
12584 pub LastAllocateHits: ULONG,
12585}
12586pub type GENERAL_LOOKASIDE_POOL = _GENERAL_LOOKASIDE_POOL;
12587pub type PGENERAL_LOOKASIDE_POOL = *mut _GENERAL_LOOKASIDE_POOL;
12588pub type KPROCESSOR_MODE = CCHAR;
12589pub const _MODE_KernelMode: _MODE = 0;
12590pub const _MODE_UserMode: _MODE = 1;
12591pub const _MODE_MaximumMode: _MODE = 2;
12592pub type _MODE = core::ffi::c_int;
12593pub use self::_MODE as MODE;
12594pub type KSYNCHRONIZE_ROUTINE =
12595::core::option::Option<unsafe extern "C" fn(SynchronizeContext: PVOID) -> BOOLEAN>;
12596pub type PKSYNCHRONIZE_ROUTINE = KSYNCHRONIZE_ROUTINE;
12597#[repr(C)]
12598#[derive(Debug, Copy, Clone)]
12599pub struct _KAPC {
12600 pub Type: UCHAR,
12601 pub AllFlags: UCHAR,
12602 pub Size: UCHAR,
12603 pub SpareByte1: UCHAR,
12604 pub SpareLong0: ULONG,
12605 pub Thread: *mut _KTHREAD,
12606 pub ApcListEntry: LIST_ENTRY,
12607 pub Reserved: [PVOID; 3usize],
12608 pub NormalContext: PVOID,
12609 pub SystemArgument1: PVOID,
12610 pub SystemArgument2: PVOID,
12611 pub ApcStateIndex: CCHAR,
12612 pub ApcMode: KPROCESSOR_MODE,
12613 pub Inserted: BOOLEAN,
12614}
12615pub type KAPC = _KAPC;
12616pub type PKAPC = *mut _KAPC;
12617pub type PRKAPC = *mut _KAPC;
12618pub type KDEFERRED_ROUTINE = ::core::option::Option<
12619 unsafe extern "C" fn(
12620 Dpc: *mut _KDPC,
12621 DeferredContext: PVOID,
12622 SystemArgument1: PVOID,
12623 SystemArgument2: PVOID,
12624 ),
12625>;
12626pub type PKDEFERRED_ROUTINE = KDEFERRED_ROUTINE;
12627pub const _KDPC_IMPORTANCE_LowImportance: _KDPC_IMPORTANCE = 0;
12628pub const _KDPC_IMPORTANCE_MediumImportance: _KDPC_IMPORTANCE = 1;
12629pub const _KDPC_IMPORTANCE_HighImportance: _KDPC_IMPORTANCE = 2;
12630pub const _KDPC_IMPORTANCE_MediumHighImportance: _KDPC_IMPORTANCE = 3;
12631pub type _KDPC_IMPORTANCE = core::ffi::c_int;
12632pub use self::_KDPC_IMPORTANCE as KDPC_IMPORTANCE;
12633#[repr(C)]
12634#[derive(Copy, Clone)]
12635pub struct _KDPC {
12636 pub __bindgen_anon_1: _KDPC__bindgen_ty_1,
12637 pub DpcListEntry: SINGLE_LIST_ENTRY,
12638 pub ProcessorHistory: KAFFINITY,
12639 pub DeferredRoutine: PKDEFERRED_ROUTINE,
12640 pub DeferredContext: PVOID,
12641 pub SystemArgument1: PVOID,
12642 pub SystemArgument2: PVOID,
12643 pub DpcData: PVOID,
12644}
12645#[repr(C)]
12646#[derive(Copy, Clone)]
12647pub union _KDPC__bindgen_ty_1 {
12648 pub TargetInfoAsUlong: ULONG,
12649 pub __bindgen_anon_1: _KDPC__bindgen_ty_1__bindgen_ty_1,
12650}
12651#[repr(C)]
12652#[derive(Debug, Copy, Clone)]
12653pub struct _KDPC__bindgen_ty_1__bindgen_ty_1 {
12654 pub Type: UCHAR,
12655 pub Importance: UCHAR,
12656 pub Number: USHORT,
12657}
12658pub type KDPC = _KDPC;
12659pub type PKDPC = *mut _KDPC;
12660pub type PRKDPC = *mut _KDPC;
12661#[repr(C)]
12662#[derive(Debug, Copy, Clone)]
12663pub struct _MDL {
12664 pub Next: *mut _MDL,
12665 pub Size: CSHORT,
12666 pub MdlFlags: CSHORT,
12667 pub Process: *mut _EPROCESS,
12668 pub MappedSystemVa: PVOID,
12669 pub StartVa: PVOID,
12670 pub ByteCount: ULONG,
12671 pub ByteOffset: ULONG,
12672}
12673pub type MDL = _MDL;
12674pub type PMDL = *mut _MDL;
12675pub type PMDLX = *mut MDL;
12676#[repr(C)]
12677#[derive(Copy, Clone)]
12678pub struct _DISPATCHER_HEADER {
12679 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1,
12680 pub SignalState: LONG,
12681 pub WaitListHead: LIST_ENTRY,
12682}
12683#[repr(C)]
12684#[derive(Copy, Clone)]
12685pub union _DISPATCHER_HEADER__bindgen_ty_1 {
12686 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_1,
12687 pub __bindgen_anon_2: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_2,
12688 pub __bindgen_anon_3: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3,
12689 pub __bindgen_anon_4: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4,
12690 pub __bindgen_anon_5: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5,
12691 pub __bindgen_anon_6: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6,
12692 pub __bindgen_anon_7: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_7,
12693}
12694#[repr(C)]
12695#[derive(Copy, Clone)]
12696pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_1 {
12697 pub Lock: LONG,
12698 pub LockNV: LONG,
12699}
12700#[repr(C)]
12701#[derive(Debug, Copy, Clone)]
12702pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_2 {
12703 pub Type: UCHAR,
12704 pub Signalling: UCHAR,
12705 pub Size: UCHAR,
12706 pub Reserved1: UCHAR,
12707}
12708#[repr(C)]
12709#[derive(Copy, Clone)]
12710pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3 {
12711 pub TimerType: UCHAR,
12712 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1,
12713 pub Hand: UCHAR,
12714 pub __bindgen_anon_2: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_2,
12715}
12716#[repr(C)]
12717#[derive(Copy, Clone)]
12718pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1 {
12719 pub TimerControlFlags: UCHAR,
12720 pub __bindgen_anon_1:
12721 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
12722}
12723#[repr(C)]
12724#[derive(Debug, Copy, Clone)]
12725pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
12726 pub _bitfield_align_1: [u8; 0],
12727 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
12728}
12729impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
12730 #[inline]
12731 pub fn Absolute(&self) -> UCHAR {
12732 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
12733 }
12734 #[inline]
12735 pub fn set_Absolute(&mut self, val: UCHAR) {
12736 unsafe {
12737 let val: u8 = ::core::mem::transmute(val);
12738 self._bitfield_1.set(0usize, 1u8, val as u64)
12739 }
12740 }
12741 #[inline]
12742 pub unsafe fn Absolute_raw(this: *const Self) -> UCHAR {
12743 unsafe {
12744 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12745 ::core::ptr::addr_of!((*this)._bitfield_1),
12746 0usize,
12747 1u8,
12748 ) as u8)
12749 }
12750 }
12751 #[inline]
12752 pub unsafe fn set_Absolute_raw(this: *mut Self, val: UCHAR) {
12753 unsafe {
12754 let val: u8 = ::core::mem::transmute(val);
12755 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12756 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12757 0usize,
12758 1u8,
12759 val as u64,
12760 )
12761 }
12762 }
12763 #[inline]
12764 pub fn Wake(&self) -> UCHAR {
12765 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
12766 }
12767 #[inline]
12768 pub fn set_Wake(&mut self, val: UCHAR) {
12769 unsafe {
12770 let val: u8 = ::core::mem::transmute(val);
12771 self._bitfield_1.set(1usize, 1u8, val as u64)
12772 }
12773 }
12774 #[inline]
12775 pub unsafe fn Wake_raw(this: *const Self) -> UCHAR {
12776 unsafe {
12777 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12778 ::core::ptr::addr_of!((*this)._bitfield_1),
12779 1usize,
12780 1u8,
12781 ) as u8)
12782 }
12783 }
12784 #[inline]
12785 pub unsafe fn set_Wake_raw(this: *mut Self, val: UCHAR) {
12786 unsafe {
12787 let val: u8 = ::core::mem::transmute(val);
12788 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12789 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12790 1usize,
12791 1u8,
12792 val as u64,
12793 )
12794 }
12795 }
12796 #[inline]
12797 pub fn EncodedTolerableDelay(&self) -> UCHAR {
12798 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u8) }
12799 }
12800 #[inline]
12801 pub fn set_EncodedTolerableDelay(&mut self, val: UCHAR) {
12802 unsafe {
12803 let val: u8 = ::core::mem::transmute(val);
12804 self._bitfield_1.set(2usize, 6u8, val as u64)
12805 }
12806 }
12807 #[inline]
12808 pub unsafe fn EncodedTolerableDelay_raw(this: *const Self) -> UCHAR {
12809 unsafe {
12810 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12811 ::core::ptr::addr_of!((*this)._bitfield_1),
12812 2usize,
12813 6u8,
12814 ) as u8)
12815 }
12816 }
12817 #[inline]
12818 pub unsafe fn set_EncodedTolerableDelay_raw(this: *mut Self, val: UCHAR) {
12819 unsafe {
12820 let val: u8 = ::core::mem::transmute(val);
12821 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12822 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12823 2usize,
12824 6u8,
12825 val as u64,
12826 )
12827 }
12828 }
12829 #[inline]
12830 pub fn new_bitfield_1(
12831 Absolute: UCHAR,
12832 Wake: UCHAR,
12833 EncodedTolerableDelay: UCHAR,
12834 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
12835 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
12836 __bindgen_bitfield_unit.set(0usize, 1u8, {
12837 let Absolute: u8 = unsafe { ::core::mem::transmute(Absolute) };
12838 Absolute as u64
12839 });
12840 __bindgen_bitfield_unit.set(1usize, 1u8, {
12841 let Wake: u8 = unsafe { ::core::mem::transmute(Wake) };
12842 Wake as u64
12843 });
12844 __bindgen_bitfield_unit.set(2usize, 6u8, {
12845 let EncodedTolerableDelay: u8 =
12846 unsafe { ::core::mem::transmute(EncodedTolerableDelay) };
12847 EncodedTolerableDelay as u64
12848 });
12849 __bindgen_bitfield_unit
12850 }
12851}
12852#[repr(C)]
12853#[derive(Copy, Clone)]
12854pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_2 {
12855 pub TimerMiscFlags: UCHAR,
12856 pub __bindgen_anon_1:
12857 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_2__bindgen_ty_1,
12858}
12859#[repr(C)]
12860#[derive(Debug, Copy, Clone)]
12861pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_2__bindgen_ty_1 {
12862 pub _bitfield_align_1: [u8; 0],
12863 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
12864}
12865impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_3__bindgen_ty_2__bindgen_ty_1 {
12866 #[inline]
12867 pub fn Index(&self) -> UCHAR {
12868 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 6u8) as u8) }
12869 }
12870 #[inline]
12871 pub fn set_Index(&mut self, val: UCHAR) {
12872 unsafe {
12873 let val: u8 = ::core::mem::transmute(val);
12874 self._bitfield_1.set(0usize, 6u8, val as u64)
12875 }
12876 }
12877 #[inline]
12878 pub unsafe fn Index_raw(this: *const Self) -> UCHAR {
12879 unsafe {
12880 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12881 ::core::ptr::addr_of!((*this)._bitfield_1),
12882 0usize,
12883 6u8,
12884 ) as u8)
12885 }
12886 }
12887 #[inline]
12888 pub unsafe fn set_Index_raw(this: *mut Self, val: UCHAR) {
12889 unsafe {
12890 let val: u8 = ::core::mem::transmute(val);
12891 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12892 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12893 0usize,
12894 6u8,
12895 val as u64,
12896 )
12897 }
12898 }
12899 #[inline]
12900 pub fn Inserted(&self) -> UCHAR {
12901 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
12902 }
12903 #[inline]
12904 pub fn set_Inserted(&mut self, val: UCHAR) {
12905 unsafe {
12906 let val: u8 = ::core::mem::transmute(val);
12907 self._bitfield_1.set(6usize, 1u8, val as u64)
12908 }
12909 }
12910 #[inline]
12911 pub unsafe fn Inserted_raw(this: *const Self) -> UCHAR {
12912 unsafe {
12913 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12914 ::core::ptr::addr_of!((*this)._bitfield_1),
12915 6usize,
12916 1u8,
12917 ) as u8)
12918 }
12919 }
12920 #[inline]
12921 pub unsafe fn set_Inserted_raw(this: *mut Self, val: UCHAR) {
12922 unsafe {
12923 let val: u8 = ::core::mem::transmute(val);
12924 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12925 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12926 6usize,
12927 1u8,
12928 val as u64,
12929 )
12930 }
12931 }
12932 #[inline]
12933 pub fn Expired(&self) -> UCHAR {
12934 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
12935 }
12936 #[inline]
12937 pub fn set_Expired(&mut self, val: UCHAR) {
12938 unsafe {
12939 let val: u8 = ::core::mem::transmute(val);
12940 self._bitfield_1.set(7usize, 1u8, val as u64)
12941 }
12942 }
12943 #[inline]
12944 pub unsafe fn Expired_raw(this: *const Self) -> UCHAR {
12945 unsafe {
12946 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
12947 ::core::ptr::addr_of!((*this)._bitfield_1),
12948 7usize,
12949 1u8,
12950 ) as u8)
12951 }
12952 }
12953 #[inline]
12954 pub unsafe fn set_Expired_raw(this: *mut Self, val: UCHAR) {
12955 unsafe {
12956 let val: u8 = ::core::mem::transmute(val);
12957 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
12958 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
12959 7usize,
12960 1u8,
12961 val as u64,
12962 )
12963 }
12964 }
12965 #[inline]
12966 pub fn new_bitfield_1(
12967 Index: UCHAR,
12968 Inserted: UCHAR,
12969 Expired: UCHAR,
12970 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
12971 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
12972 __bindgen_bitfield_unit.set(0usize, 6u8, {
12973 let Index: u8 = unsafe { ::core::mem::transmute(Index) };
12974 Index as u64
12975 });
12976 __bindgen_bitfield_unit.set(6usize, 1u8, {
12977 let Inserted: u8 = unsafe { ::core::mem::transmute(Inserted) };
12978 Inserted as u64
12979 });
12980 __bindgen_bitfield_unit.set(7usize, 1u8, {
12981 let Expired: u8 = unsafe { ::core::mem::transmute(Expired) };
12982 Expired as u64
12983 });
12984 __bindgen_bitfield_unit
12985 }
12986}
12987#[repr(C)]
12988#[derive(Copy, Clone)]
12989pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4 {
12990 pub Timer2Type: UCHAR,
12991 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1,
12992 pub Timer2ComponentId: UCHAR,
12993 pub Timer2RelativeId: UCHAR,
12994}
12995#[repr(C)]
12996#[derive(Copy, Clone)]
12997pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1 {
12998 pub Timer2Flags: UCHAR,
12999 pub __bindgen_anon_1:
13000 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
13001}
13002#[repr(C)]
13003#[derive(Debug, Copy, Clone)]
13004pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
13005 pub _bitfield_align_1: [u8; 0],
13006 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
13007}
13008impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
13009 #[inline]
13010 pub fn Timer2Inserted(&self) -> UCHAR {
13011 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
13012 }
13013 #[inline]
13014 pub fn set_Timer2Inserted(&mut self, val: UCHAR) {
13015 unsafe {
13016 let val: u8 = ::core::mem::transmute(val);
13017 self._bitfield_1.set(0usize, 1u8, val as u64)
13018 }
13019 }
13020 #[inline]
13021 pub unsafe fn Timer2Inserted_raw(this: *const Self) -> UCHAR {
13022 unsafe {
13023 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13024 ::core::ptr::addr_of!((*this)._bitfield_1),
13025 0usize,
13026 1u8,
13027 ) as u8)
13028 }
13029 }
13030 #[inline]
13031 pub unsafe fn set_Timer2Inserted_raw(this: *mut Self, val: UCHAR) {
13032 unsafe {
13033 let val: u8 = ::core::mem::transmute(val);
13034 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13035 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13036 0usize,
13037 1u8,
13038 val as u64,
13039 )
13040 }
13041 }
13042 #[inline]
13043 pub fn Timer2Expiring(&self) -> UCHAR {
13044 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
13045 }
13046 #[inline]
13047 pub fn set_Timer2Expiring(&mut self, val: UCHAR) {
13048 unsafe {
13049 let val: u8 = ::core::mem::transmute(val);
13050 self._bitfield_1.set(1usize, 1u8, val as u64)
13051 }
13052 }
13053 #[inline]
13054 pub unsafe fn Timer2Expiring_raw(this: *const Self) -> UCHAR {
13055 unsafe {
13056 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13057 ::core::ptr::addr_of!((*this)._bitfield_1),
13058 1usize,
13059 1u8,
13060 ) as u8)
13061 }
13062 }
13063 #[inline]
13064 pub unsafe fn set_Timer2Expiring_raw(this: *mut Self, val: UCHAR) {
13065 unsafe {
13066 let val: u8 = ::core::mem::transmute(val);
13067 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13068 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13069 1usize,
13070 1u8,
13071 val as u64,
13072 )
13073 }
13074 }
13075 #[inline]
13076 pub fn Timer2CancelPending(&self) -> UCHAR {
13077 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
13078 }
13079 #[inline]
13080 pub fn set_Timer2CancelPending(&mut self, val: UCHAR) {
13081 unsafe {
13082 let val: u8 = ::core::mem::transmute(val);
13083 self._bitfield_1.set(2usize, 1u8, val as u64)
13084 }
13085 }
13086 #[inline]
13087 pub unsafe fn Timer2CancelPending_raw(this: *const Self) -> UCHAR {
13088 unsafe {
13089 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13090 ::core::ptr::addr_of!((*this)._bitfield_1),
13091 2usize,
13092 1u8,
13093 ) as u8)
13094 }
13095 }
13096 #[inline]
13097 pub unsafe fn set_Timer2CancelPending_raw(this: *mut Self, val: UCHAR) {
13098 unsafe {
13099 let val: u8 = ::core::mem::transmute(val);
13100 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13101 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13102 2usize,
13103 1u8,
13104 val as u64,
13105 )
13106 }
13107 }
13108 #[inline]
13109 pub fn Timer2SetPending(&self) -> UCHAR {
13110 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
13111 }
13112 #[inline]
13113 pub fn set_Timer2SetPending(&mut self, val: UCHAR) {
13114 unsafe {
13115 let val: u8 = ::core::mem::transmute(val);
13116 self._bitfield_1.set(3usize, 1u8, val as u64)
13117 }
13118 }
13119 #[inline]
13120 pub unsafe fn Timer2SetPending_raw(this: *const Self) -> UCHAR {
13121 unsafe {
13122 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13123 ::core::ptr::addr_of!((*this)._bitfield_1),
13124 3usize,
13125 1u8,
13126 ) as u8)
13127 }
13128 }
13129 #[inline]
13130 pub unsafe fn set_Timer2SetPending_raw(this: *mut Self, val: UCHAR) {
13131 unsafe {
13132 let val: u8 = ::core::mem::transmute(val);
13133 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13134 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13135 3usize,
13136 1u8,
13137 val as u64,
13138 )
13139 }
13140 }
13141 #[inline]
13142 pub fn Timer2Running(&self) -> UCHAR {
13143 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
13144 }
13145 #[inline]
13146 pub fn set_Timer2Running(&mut self, val: UCHAR) {
13147 unsafe {
13148 let val: u8 = ::core::mem::transmute(val);
13149 self._bitfield_1.set(4usize, 1u8, val as u64)
13150 }
13151 }
13152 #[inline]
13153 pub unsafe fn Timer2Running_raw(this: *const Self) -> UCHAR {
13154 unsafe {
13155 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13156 ::core::ptr::addr_of!((*this)._bitfield_1),
13157 4usize,
13158 1u8,
13159 ) as u8)
13160 }
13161 }
13162 #[inline]
13163 pub unsafe fn set_Timer2Running_raw(this: *mut Self, val: UCHAR) {
13164 unsafe {
13165 let val: u8 = ::core::mem::transmute(val);
13166 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13167 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13168 4usize,
13169 1u8,
13170 val as u64,
13171 )
13172 }
13173 }
13174 #[inline]
13175 pub fn Timer2Disabled(&self) -> UCHAR {
13176 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
13177 }
13178 #[inline]
13179 pub fn set_Timer2Disabled(&mut self, val: UCHAR) {
13180 unsafe {
13181 let val: u8 = ::core::mem::transmute(val);
13182 self._bitfield_1.set(5usize, 1u8, val as u64)
13183 }
13184 }
13185 #[inline]
13186 pub unsafe fn Timer2Disabled_raw(this: *const Self) -> UCHAR {
13187 unsafe {
13188 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13189 ::core::ptr::addr_of!((*this)._bitfield_1),
13190 5usize,
13191 1u8,
13192 ) as u8)
13193 }
13194 }
13195 #[inline]
13196 pub unsafe fn set_Timer2Disabled_raw(this: *mut Self, val: UCHAR) {
13197 unsafe {
13198 let val: u8 = ::core::mem::transmute(val);
13199 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13200 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13201 5usize,
13202 1u8,
13203 val as u64,
13204 )
13205 }
13206 }
13207 #[inline]
13208 pub fn Timer2ReservedFlags(&self) -> UCHAR {
13209 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
13210 }
13211 #[inline]
13212 pub fn set_Timer2ReservedFlags(&mut self, val: UCHAR) {
13213 unsafe {
13214 let val: u8 = ::core::mem::transmute(val);
13215 self._bitfield_1.set(6usize, 2u8, val as u64)
13216 }
13217 }
13218 #[inline]
13219 pub unsafe fn Timer2ReservedFlags_raw(this: *const Self) -> UCHAR {
13220 unsafe {
13221 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13222 ::core::ptr::addr_of!((*this)._bitfield_1),
13223 6usize,
13224 2u8,
13225 ) as u8)
13226 }
13227 }
13228 #[inline]
13229 pub unsafe fn set_Timer2ReservedFlags_raw(this: *mut Self, val: UCHAR) {
13230 unsafe {
13231 let val: u8 = ::core::mem::transmute(val);
13232 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13233 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13234 6usize,
13235 2u8,
13236 val as u64,
13237 )
13238 }
13239 }
13240 #[inline]
13241 pub fn new_bitfield_1(
13242 Timer2Inserted: UCHAR,
13243 Timer2Expiring: UCHAR,
13244 Timer2CancelPending: UCHAR,
13245 Timer2SetPending: UCHAR,
13246 Timer2Running: UCHAR,
13247 Timer2Disabled: UCHAR,
13248 Timer2ReservedFlags: UCHAR,
13249 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
13250 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
13251 __bindgen_bitfield_unit.set(0usize, 1u8, {
13252 let Timer2Inserted: u8 = unsafe { ::core::mem::transmute(Timer2Inserted) };
13253 Timer2Inserted as u64
13254 });
13255 __bindgen_bitfield_unit.set(1usize, 1u8, {
13256 let Timer2Expiring: u8 = unsafe { ::core::mem::transmute(Timer2Expiring) };
13257 Timer2Expiring as u64
13258 });
13259 __bindgen_bitfield_unit.set(2usize, 1u8, {
13260 let Timer2CancelPending: u8 = unsafe { ::core::mem::transmute(Timer2CancelPending) };
13261 Timer2CancelPending as u64
13262 });
13263 __bindgen_bitfield_unit.set(3usize, 1u8, {
13264 let Timer2SetPending: u8 = unsafe { ::core::mem::transmute(Timer2SetPending) };
13265 Timer2SetPending as u64
13266 });
13267 __bindgen_bitfield_unit.set(4usize, 1u8, {
13268 let Timer2Running: u8 = unsafe { ::core::mem::transmute(Timer2Running) };
13269 Timer2Running as u64
13270 });
13271 __bindgen_bitfield_unit.set(5usize, 1u8, {
13272 let Timer2Disabled: u8 = unsafe { ::core::mem::transmute(Timer2Disabled) };
13273 Timer2Disabled as u64
13274 });
13275 __bindgen_bitfield_unit.set(6usize, 2u8, {
13276 let Timer2ReservedFlags: u8 = unsafe { ::core::mem::transmute(Timer2ReservedFlags) };
13277 Timer2ReservedFlags as u64
13278 });
13279 __bindgen_bitfield_unit
13280 }
13281}
13282#[repr(C)]
13283#[derive(Copy, Clone)]
13284pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5 {
13285 pub QueueType: UCHAR,
13286 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1,
13287 pub QueueSize: UCHAR,
13288 pub QueueReserved: UCHAR,
13289}
13290#[repr(C)]
13291#[derive(Copy, Clone)]
13292pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1 {
13293 pub QueueControlFlags: UCHAR,
13294 pub __bindgen_anon_1:
13295 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1,
13296}
13297#[repr(C)]
13298#[derive(Debug, Copy, Clone)]
13299pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
13300 pub _bitfield_align_1: [u8; 0],
13301 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
13302}
13303impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_5__bindgen_ty_1__bindgen_ty_1 {
13304 #[inline]
13305 pub fn Abandoned(&self) -> UCHAR {
13306 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
13307 }
13308 #[inline]
13309 pub fn set_Abandoned(&mut self, val: UCHAR) {
13310 unsafe {
13311 let val: u8 = ::core::mem::transmute(val);
13312 self._bitfield_1.set(0usize, 1u8, val as u64)
13313 }
13314 }
13315 #[inline]
13316 pub unsafe fn Abandoned_raw(this: *const Self) -> UCHAR {
13317 unsafe {
13318 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13319 ::core::ptr::addr_of!((*this)._bitfield_1),
13320 0usize,
13321 1u8,
13322 ) as u8)
13323 }
13324 }
13325 #[inline]
13326 pub unsafe fn set_Abandoned_raw(this: *mut Self, val: UCHAR) {
13327 unsafe {
13328 let val: u8 = ::core::mem::transmute(val);
13329 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13330 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13331 0usize,
13332 1u8,
13333 val as u64,
13334 )
13335 }
13336 }
13337 #[inline]
13338 pub fn DisableIncrement(&self) -> UCHAR {
13339 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
13340 }
13341 #[inline]
13342 pub fn set_DisableIncrement(&mut self, val: UCHAR) {
13343 unsafe {
13344 let val: u8 = ::core::mem::transmute(val);
13345 self._bitfield_1.set(1usize, 1u8, val as u64)
13346 }
13347 }
13348 #[inline]
13349 pub unsafe fn DisableIncrement_raw(this: *const Self) -> UCHAR {
13350 unsafe {
13351 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13352 ::core::ptr::addr_of!((*this)._bitfield_1),
13353 1usize,
13354 1u8,
13355 ) as u8)
13356 }
13357 }
13358 #[inline]
13359 pub unsafe fn set_DisableIncrement_raw(this: *mut Self, val: UCHAR) {
13360 unsafe {
13361 let val: u8 = ::core::mem::transmute(val);
13362 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13363 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13364 1usize,
13365 1u8,
13366 val as u64,
13367 )
13368 }
13369 }
13370 #[inline]
13371 pub fn QueueReservedControlFlags(&self) -> UCHAR {
13372 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u8) }
13373 }
13374 #[inline]
13375 pub fn set_QueueReservedControlFlags(&mut self, val: UCHAR) {
13376 unsafe {
13377 let val: u8 = ::core::mem::transmute(val);
13378 self._bitfield_1.set(2usize, 6u8, val as u64)
13379 }
13380 }
13381 #[inline]
13382 pub unsafe fn QueueReservedControlFlags_raw(this: *const Self) -> UCHAR {
13383 unsafe {
13384 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13385 ::core::ptr::addr_of!((*this)._bitfield_1),
13386 2usize,
13387 6u8,
13388 ) as u8)
13389 }
13390 }
13391 #[inline]
13392 pub unsafe fn set_QueueReservedControlFlags_raw(this: *mut Self, val: UCHAR) {
13393 unsafe {
13394 let val: u8 = ::core::mem::transmute(val);
13395 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13396 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13397 2usize,
13398 6u8,
13399 val as u64,
13400 )
13401 }
13402 }
13403 #[inline]
13404 pub fn new_bitfield_1(
13405 Abandoned: UCHAR,
13406 DisableIncrement: UCHAR,
13407 QueueReservedControlFlags: UCHAR,
13408 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
13409 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
13410 __bindgen_bitfield_unit.set(0usize, 1u8, {
13411 let Abandoned: u8 = unsafe { ::core::mem::transmute(Abandoned) };
13412 Abandoned as u64
13413 });
13414 __bindgen_bitfield_unit.set(1usize, 1u8, {
13415 let DisableIncrement: u8 = unsafe { ::core::mem::transmute(DisableIncrement) };
13416 DisableIncrement as u64
13417 });
13418 __bindgen_bitfield_unit.set(2usize, 6u8, {
13419 let QueueReservedControlFlags: u8 =
13420 unsafe { ::core::mem::transmute(QueueReservedControlFlags) };
13421 QueueReservedControlFlags as u64
13422 });
13423 __bindgen_bitfield_unit
13424 }
13425}
13426#[repr(C)]
13427#[derive(Copy, Clone)]
13428pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6 {
13429 pub ThreadType: UCHAR,
13430 pub ThreadReserved: UCHAR,
13431 pub __bindgen_anon_1: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1,
13432 pub __bindgen_anon_2: _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2,
13433}
13434#[repr(C)]
13435#[derive(Copy, Clone)]
13436pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1 {
13437 pub ThreadControlFlags: UCHAR,
13438 pub __bindgen_anon_1:
13439 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1__bindgen_ty_1,
13440}
13441#[repr(C)]
13442#[derive(Debug, Copy, Clone)]
13443pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1__bindgen_ty_1 {
13444 pub _bitfield_align_1: [u8; 0],
13445 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
13446}
13447impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_1__bindgen_ty_1 {
13448 #[inline]
13449 pub fn CycleProfiling(&self) -> UCHAR {
13450 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
13451 }
13452 #[inline]
13453 pub fn set_CycleProfiling(&mut self, val: UCHAR) {
13454 unsafe {
13455 let val: u8 = ::core::mem::transmute(val);
13456 self._bitfield_1.set(0usize, 1u8, val as u64)
13457 }
13458 }
13459 #[inline]
13460 pub unsafe fn CycleProfiling_raw(this: *const Self) -> UCHAR {
13461 unsafe {
13462 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13463 ::core::ptr::addr_of!((*this)._bitfield_1),
13464 0usize,
13465 1u8,
13466 ) as u8)
13467 }
13468 }
13469 #[inline]
13470 pub unsafe fn set_CycleProfiling_raw(this: *mut Self, val: UCHAR) {
13471 unsafe {
13472 let val: u8 = ::core::mem::transmute(val);
13473 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13474 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13475 0usize,
13476 1u8,
13477 val as u64,
13478 )
13479 }
13480 }
13481 #[inline]
13482 pub fn CounterProfiling(&self) -> UCHAR {
13483 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
13484 }
13485 #[inline]
13486 pub fn set_CounterProfiling(&mut self, val: UCHAR) {
13487 unsafe {
13488 let val: u8 = ::core::mem::transmute(val);
13489 self._bitfield_1.set(1usize, 1u8, val as u64)
13490 }
13491 }
13492 #[inline]
13493 pub unsafe fn CounterProfiling_raw(this: *const Self) -> UCHAR {
13494 unsafe {
13495 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13496 ::core::ptr::addr_of!((*this)._bitfield_1),
13497 1usize,
13498 1u8,
13499 ) as u8)
13500 }
13501 }
13502 #[inline]
13503 pub unsafe fn set_CounterProfiling_raw(this: *mut Self, val: UCHAR) {
13504 unsafe {
13505 let val: u8 = ::core::mem::transmute(val);
13506 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13507 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13508 1usize,
13509 1u8,
13510 val as u64,
13511 )
13512 }
13513 }
13514 #[inline]
13515 pub fn GroupScheduling(&self) -> UCHAR {
13516 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
13517 }
13518 #[inline]
13519 pub fn set_GroupScheduling(&mut self, val: UCHAR) {
13520 unsafe {
13521 let val: u8 = ::core::mem::transmute(val);
13522 self._bitfield_1.set(2usize, 1u8, val as u64)
13523 }
13524 }
13525 #[inline]
13526 pub unsafe fn GroupScheduling_raw(this: *const Self) -> UCHAR {
13527 unsafe {
13528 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13529 ::core::ptr::addr_of!((*this)._bitfield_1),
13530 2usize,
13531 1u8,
13532 ) as u8)
13533 }
13534 }
13535 #[inline]
13536 pub unsafe fn set_GroupScheduling_raw(this: *mut Self, val: UCHAR) {
13537 unsafe {
13538 let val: u8 = ::core::mem::transmute(val);
13539 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13540 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13541 2usize,
13542 1u8,
13543 val as u64,
13544 )
13545 }
13546 }
13547 #[inline]
13548 pub fn AffinitySet(&self) -> UCHAR {
13549 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
13550 }
13551 #[inline]
13552 pub fn set_AffinitySet(&mut self, val: UCHAR) {
13553 unsafe {
13554 let val: u8 = ::core::mem::transmute(val);
13555 self._bitfield_1.set(3usize, 1u8, val as u64)
13556 }
13557 }
13558 #[inline]
13559 pub unsafe fn AffinitySet_raw(this: *const Self) -> UCHAR {
13560 unsafe {
13561 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13562 ::core::ptr::addr_of!((*this)._bitfield_1),
13563 3usize,
13564 1u8,
13565 ) as u8)
13566 }
13567 }
13568 #[inline]
13569 pub unsafe fn set_AffinitySet_raw(this: *mut Self, val: UCHAR) {
13570 unsafe {
13571 let val: u8 = ::core::mem::transmute(val);
13572 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13573 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13574 3usize,
13575 1u8,
13576 val as u64,
13577 )
13578 }
13579 }
13580 #[inline]
13581 pub fn Tagged(&self) -> UCHAR {
13582 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
13583 }
13584 #[inline]
13585 pub fn set_Tagged(&mut self, val: UCHAR) {
13586 unsafe {
13587 let val: u8 = ::core::mem::transmute(val);
13588 self._bitfield_1.set(4usize, 1u8, val as u64)
13589 }
13590 }
13591 #[inline]
13592 pub unsafe fn Tagged_raw(this: *const Self) -> UCHAR {
13593 unsafe {
13594 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13595 ::core::ptr::addr_of!((*this)._bitfield_1),
13596 4usize,
13597 1u8,
13598 ) as u8)
13599 }
13600 }
13601 #[inline]
13602 pub unsafe fn set_Tagged_raw(this: *mut Self, val: UCHAR) {
13603 unsafe {
13604 let val: u8 = ::core::mem::transmute(val);
13605 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13606 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13607 4usize,
13608 1u8,
13609 val as u64,
13610 )
13611 }
13612 }
13613 #[inline]
13614 pub fn EnergyProfiling(&self) -> UCHAR {
13615 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
13616 }
13617 #[inline]
13618 pub fn set_EnergyProfiling(&mut self, val: UCHAR) {
13619 unsafe {
13620 let val: u8 = ::core::mem::transmute(val);
13621 self._bitfield_1.set(5usize, 1u8, val as u64)
13622 }
13623 }
13624 #[inline]
13625 pub unsafe fn EnergyProfiling_raw(this: *const Self) -> UCHAR {
13626 unsafe {
13627 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13628 ::core::ptr::addr_of!((*this)._bitfield_1),
13629 5usize,
13630 1u8,
13631 ) as u8)
13632 }
13633 }
13634 #[inline]
13635 pub unsafe fn set_EnergyProfiling_raw(this: *mut Self, val: UCHAR) {
13636 unsafe {
13637 let val: u8 = ::core::mem::transmute(val);
13638 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13639 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13640 5usize,
13641 1u8,
13642 val as u64,
13643 )
13644 }
13645 }
13646 #[inline]
13647 pub fn SchedulerAssist(&self) -> UCHAR {
13648 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
13649 }
13650 #[inline]
13651 pub fn set_SchedulerAssist(&mut self, val: UCHAR) {
13652 unsafe {
13653 let val: u8 = ::core::mem::transmute(val);
13654 self._bitfield_1.set(6usize, 1u8, val as u64)
13655 }
13656 }
13657 #[inline]
13658 pub unsafe fn SchedulerAssist_raw(this: *const Self) -> UCHAR {
13659 unsafe {
13660 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13661 ::core::ptr::addr_of!((*this)._bitfield_1),
13662 6usize,
13663 1u8,
13664 ) as u8)
13665 }
13666 }
13667 #[inline]
13668 pub unsafe fn set_SchedulerAssist_raw(this: *mut Self, val: UCHAR) {
13669 unsafe {
13670 let val: u8 = ::core::mem::transmute(val);
13671 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13672 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13673 6usize,
13674 1u8,
13675 val as u64,
13676 )
13677 }
13678 }
13679 #[inline]
13680 pub fn ThreadReservedControlFlags(&self) -> UCHAR {
13681 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
13682 }
13683 #[inline]
13684 pub fn set_ThreadReservedControlFlags(&mut self, val: UCHAR) {
13685 unsafe {
13686 let val: u8 = ::core::mem::transmute(val);
13687 self._bitfield_1.set(7usize, 1u8, val as u64)
13688 }
13689 }
13690 #[inline]
13691 pub unsafe fn ThreadReservedControlFlags_raw(this: *const Self) -> UCHAR {
13692 unsafe {
13693 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13694 ::core::ptr::addr_of!((*this)._bitfield_1),
13695 7usize,
13696 1u8,
13697 ) as u8)
13698 }
13699 }
13700 #[inline]
13701 pub unsafe fn set_ThreadReservedControlFlags_raw(this: *mut Self, val: UCHAR) {
13702 unsafe {
13703 let val: u8 = ::core::mem::transmute(val);
13704 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13705 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13706 7usize,
13707 1u8,
13708 val as u64,
13709 )
13710 }
13711 }
13712 #[inline]
13713 pub fn new_bitfield_1(
13714 CycleProfiling: UCHAR,
13715 CounterProfiling: UCHAR,
13716 GroupScheduling: UCHAR,
13717 AffinitySet: UCHAR,
13718 Tagged: UCHAR,
13719 EnergyProfiling: UCHAR,
13720 SchedulerAssist: UCHAR,
13721 ThreadReservedControlFlags: UCHAR,
13722 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
13723 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
13724 __bindgen_bitfield_unit.set(0usize, 1u8, {
13725 let CycleProfiling: u8 = unsafe { ::core::mem::transmute(CycleProfiling) };
13726 CycleProfiling as u64
13727 });
13728 __bindgen_bitfield_unit.set(1usize, 1u8, {
13729 let CounterProfiling: u8 = unsafe { ::core::mem::transmute(CounterProfiling) };
13730 CounterProfiling as u64
13731 });
13732 __bindgen_bitfield_unit.set(2usize, 1u8, {
13733 let GroupScheduling: u8 = unsafe { ::core::mem::transmute(GroupScheduling) };
13734 GroupScheduling as u64
13735 });
13736 __bindgen_bitfield_unit.set(3usize, 1u8, {
13737 let AffinitySet: u8 = unsafe { ::core::mem::transmute(AffinitySet) };
13738 AffinitySet as u64
13739 });
13740 __bindgen_bitfield_unit.set(4usize, 1u8, {
13741 let Tagged: u8 = unsafe { ::core::mem::transmute(Tagged) };
13742 Tagged as u64
13743 });
13744 __bindgen_bitfield_unit.set(5usize, 1u8, {
13745 let EnergyProfiling: u8 = unsafe { ::core::mem::transmute(EnergyProfiling) };
13746 EnergyProfiling as u64
13747 });
13748 __bindgen_bitfield_unit.set(6usize, 1u8, {
13749 let SchedulerAssist: u8 = unsafe { ::core::mem::transmute(SchedulerAssist) };
13750 SchedulerAssist as u64
13751 });
13752 __bindgen_bitfield_unit.set(7usize, 1u8, {
13753 let ThreadReservedControlFlags: u8 =
13754 unsafe { ::core::mem::transmute(ThreadReservedControlFlags) };
13755 ThreadReservedControlFlags as u64
13756 });
13757 __bindgen_bitfield_unit
13758 }
13759}
13760#[repr(C)]
13761#[derive(Copy, Clone)]
13762pub union _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2 {
13763 pub DebugActive: UCHAR,
13764 pub __bindgen_anon_1:
13765 _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2__bindgen_ty_1,
13766}
13767#[repr(C)]
13768#[derive(Debug, Copy, Clone)]
13769pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2__bindgen_ty_1 {
13770 pub _bitfield_align_1: [u8; 0],
13771 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
13772}
13773impl _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_6__bindgen_ty_2__bindgen_ty_1 {
13774 #[inline]
13775 pub fn ActiveDR7(&self) -> BOOLEAN {
13776 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
13777 }
13778 #[inline]
13779 pub fn set_ActiveDR7(&mut self, val: BOOLEAN) {
13780 unsafe {
13781 let val: u8 = ::core::mem::transmute(val);
13782 self._bitfield_1.set(0usize, 1u8, val as u64)
13783 }
13784 }
13785 #[inline]
13786 pub unsafe fn ActiveDR7_raw(this: *const Self) -> BOOLEAN {
13787 unsafe {
13788 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13789 ::core::ptr::addr_of!((*this)._bitfield_1),
13790 0usize,
13791 1u8,
13792 ) as u8)
13793 }
13794 }
13795 #[inline]
13796 pub unsafe fn set_ActiveDR7_raw(this: *mut Self, val: BOOLEAN) {
13797 unsafe {
13798 let val: u8 = ::core::mem::transmute(val);
13799 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13800 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13801 0usize,
13802 1u8,
13803 val as u64,
13804 )
13805 }
13806 }
13807 #[inline]
13808 pub fn Instrumented(&self) -> BOOLEAN {
13809 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
13810 }
13811 #[inline]
13812 pub fn set_Instrumented(&mut self, val: BOOLEAN) {
13813 unsafe {
13814 let val: u8 = ::core::mem::transmute(val);
13815 self._bitfield_1.set(1usize, 1u8, val as u64)
13816 }
13817 }
13818 #[inline]
13819 pub unsafe fn Instrumented_raw(this: *const Self) -> BOOLEAN {
13820 unsafe {
13821 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13822 ::core::ptr::addr_of!((*this)._bitfield_1),
13823 1usize,
13824 1u8,
13825 ) as u8)
13826 }
13827 }
13828 #[inline]
13829 pub unsafe fn set_Instrumented_raw(this: *mut Self, val: BOOLEAN) {
13830 unsafe {
13831 let val: u8 = ::core::mem::transmute(val);
13832 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13833 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13834 1usize,
13835 1u8,
13836 val as u64,
13837 )
13838 }
13839 }
13840 #[inline]
13841 pub fn Minimal(&self) -> BOOLEAN {
13842 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
13843 }
13844 #[inline]
13845 pub fn set_Minimal(&mut self, val: BOOLEAN) {
13846 unsafe {
13847 let val: u8 = ::core::mem::transmute(val);
13848 self._bitfield_1.set(2usize, 1u8, val as u64)
13849 }
13850 }
13851 #[inline]
13852 pub unsafe fn Minimal_raw(this: *const Self) -> BOOLEAN {
13853 unsafe {
13854 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13855 ::core::ptr::addr_of!((*this)._bitfield_1),
13856 2usize,
13857 1u8,
13858 ) as u8)
13859 }
13860 }
13861 #[inline]
13862 pub unsafe fn set_Minimal_raw(this: *mut Self, val: BOOLEAN) {
13863 unsafe {
13864 let val: u8 = ::core::mem::transmute(val);
13865 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13866 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13867 2usize,
13868 1u8,
13869 val as u64,
13870 )
13871 }
13872 }
13873 #[inline]
13874 pub fn Reserved4(&self) -> BOOLEAN {
13875 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 2u8) as u8) }
13876 }
13877 #[inline]
13878 pub fn set_Reserved4(&mut self, val: BOOLEAN) {
13879 unsafe {
13880 let val: u8 = ::core::mem::transmute(val);
13881 self._bitfield_1.set(3usize, 2u8, val as u64)
13882 }
13883 }
13884 #[inline]
13885 pub unsafe fn Reserved4_raw(this: *const Self) -> BOOLEAN {
13886 unsafe {
13887 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13888 ::core::ptr::addr_of!((*this)._bitfield_1),
13889 3usize,
13890 2u8,
13891 ) as u8)
13892 }
13893 }
13894 #[inline]
13895 pub unsafe fn set_Reserved4_raw(this: *mut Self, val: BOOLEAN) {
13896 unsafe {
13897 let val: u8 = ::core::mem::transmute(val);
13898 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13899 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13900 3usize,
13901 2u8,
13902 val as u64,
13903 )
13904 }
13905 }
13906 #[inline]
13907 pub fn AltSyscall(&self) -> BOOLEAN {
13908 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
13909 }
13910 #[inline]
13911 pub fn set_AltSyscall(&mut self, val: BOOLEAN) {
13912 unsafe {
13913 let val: u8 = ::core::mem::transmute(val);
13914 self._bitfield_1.set(5usize, 1u8, val as u64)
13915 }
13916 }
13917 #[inline]
13918 pub unsafe fn AltSyscall_raw(this: *const Self) -> BOOLEAN {
13919 unsafe {
13920 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13921 ::core::ptr::addr_of!((*this)._bitfield_1),
13922 5usize,
13923 1u8,
13924 ) as u8)
13925 }
13926 }
13927 #[inline]
13928 pub unsafe fn set_AltSyscall_raw(this: *mut Self, val: BOOLEAN) {
13929 unsafe {
13930 let val: u8 = ::core::mem::transmute(val);
13931 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13932 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13933 5usize,
13934 1u8,
13935 val as u64,
13936 )
13937 }
13938 }
13939 #[inline]
13940 pub fn Emulation(&self) -> BOOLEAN {
13941 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
13942 }
13943 #[inline]
13944 pub fn set_Emulation(&mut self, val: BOOLEAN) {
13945 unsafe {
13946 let val: u8 = ::core::mem::transmute(val);
13947 self._bitfield_1.set(6usize, 1u8, val as u64)
13948 }
13949 }
13950 #[inline]
13951 pub unsafe fn Emulation_raw(this: *const Self) -> BOOLEAN {
13952 unsafe {
13953 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13954 ::core::ptr::addr_of!((*this)._bitfield_1),
13955 6usize,
13956 1u8,
13957 ) as u8)
13958 }
13959 }
13960 #[inline]
13961 pub unsafe fn set_Emulation_raw(this: *mut Self, val: BOOLEAN) {
13962 unsafe {
13963 let val: u8 = ::core::mem::transmute(val);
13964 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13965 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13966 6usize,
13967 1u8,
13968 val as u64,
13969 )
13970 }
13971 }
13972 #[inline]
13973 pub fn Reserved5(&self) -> BOOLEAN {
13974 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
13975 }
13976 #[inline]
13977 pub fn set_Reserved5(&mut self, val: BOOLEAN) {
13978 unsafe {
13979 let val: u8 = ::core::mem::transmute(val);
13980 self._bitfield_1.set(7usize, 1u8, val as u64)
13981 }
13982 }
13983 #[inline]
13984 pub unsafe fn Reserved5_raw(this: *const Self) -> BOOLEAN {
13985 unsafe {
13986 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
13987 ::core::ptr::addr_of!((*this)._bitfield_1),
13988 7usize,
13989 1u8,
13990 ) as u8)
13991 }
13992 }
13993 #[inline]
13994 pub unsafe fn set_Reserved5_raw(this: *mut Self, val: BOOLEAN) {
13995 unsafe {
13996 let val: u8 = ::core::mem::transmute(val);
13997 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
13998 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
13999 7usize,
14000 1u8,
14001 val as u64,
14002 )
14003 }
14004 }
14005 #[inline]
14006 pub fn new_bitfield_1(
14007 ActiveDR7: BOOLEAN,
14008 Instrumented: BOOLEAN,
14009 Minimal: BOOLEAN,
14010 Reserved4: BOOLEAN,
14011 AltSyscall: BOOLEAN,
14012 Emulation: BOOLEAN,
14013 Reserved5: BOOLEAN,
14014 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
14015 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
14016 __bindgen_bitfield_unit.set(0usize, 1u8, {
14017 let ActiveDR7: u8 = unsafe { ::core::mem::transmute(ActiveDR7) };
14018 ActiveDR7 as u64
14019 });
14020 __bindgen_bitfield_unit.set(1usize, 1u8, {
14021 let Instrumented: u8 = unsafe { ::core::mem::transmute(Instrumented) };
14022 Instrumented as u64
14023 });
14024 __bindgen_bitfield_unit.set(2usize, 1u8, {
14025 let Minimal: u8 = unsafe { ::core::mem::transmute(Minimal) };
14026 Minimal as u64
14027 });
14028 __bindgen_bitfield_unit.set(3usize, 2u8, {
14029 let Reserved4: u8 = unsafe { ::core::mem::transmute(Reserved4) };
14030 Reserved4 as u64
14031 });
14032 __bindgen_bitfield_unit.set(5usize, 1u8, {
14033 let AltSyscall: u8 = unsafe { ::core::mem::transmute(AltSyscall) };
14034 AltSyscall as u64
14035 });
14036 __bindgen_bitfield_unit.set(6usize, 1u8, {
14037 let Emulation: u8 = unsafe { ::core::mem::transmute(Emulation) };
14038 Emulation as u64
14039 });
14040 __bindgen_bitfield_unit.set(7usize, 1u8, {
14041 let Reserved5: u8 = unsafe { ::core::mem::transmute(Reserved5) };
14042 Reserved5 as u64
14043 });
14044 __bindgen_bitfield_unit
14045 }
14046}
14047#[repr(C)]
14048#[derive(Debug, Copy, Clone)]
14049pub struct _DISPATCHER_HEADER__bindgen_ty_1__bindgen_ty_7 {
14050 pub MutantType: UCHAR,
14051 pub MutantSize: UCHAR,
14052 pub DpcActive: BOOLEAN,
14053 pub MutantReserved: UCHAR,
14054}
14055pub type DISPATCHER_HEADER = _DISPATCHER_HEADER;
14056pub type PDISPATCHER_HEADER = *mut _DISPATCHER_HEADER;
14057#[repr(C)]
14058#[derive(Copy, Clone)]
14059pub struct _KEVENT {
14060 pub Header: DISPATCHER_HEADER,
14061}
14062pub type KEVENT = _KEVENT;
14063pub type PKEVENT = *mut _KEVENT;
14064pub type PRKEVENT = *mut _KEVENT;
14065#[repr(C)]
14066#[derive(Copy, Clone)]
14067pub struct _KGATE {
14068 pub Header: DISPATCHER_HEADER,
14069}
14070pub type KGATE = _KGATE;
14071pub type PKGATE = *mut _KGATE;
14072#[repr(C)]
14073#[derive(Copy, Clone)]
14074pub struct _KTIMER {
14075 pub Header: DISPATCHER_HEADER,
14076 pub DueTime: ULARGE_INTEGER,
14077 pub TimerListEntry: LIST_ENTRY,
14078 pub Dpc: *mut _KDPC,
14079 pub Processor: USHORT,
14080 pub TimerType: USHORT,
14081 pub Period: ULONG,
14082}
14083pub type KTIMER = _KTIMER;
14084pub type PKTIMER = *mut _KTIMER;
14085pub type PRKTIMER = *mut _KTIMER;
14086pub const _LOCK_OPERATION_IoReadAccess: _LOCK_OPERATION = 0;
14087pub const _LOCK_OPERATION_IoWriteAccess: _LOCK_OPERATION = 1;
14088pub const _LOCK_OPERATION_IoModifyAccess: _LOCK_OPERATION = 2;
14089pub type _LOCK_OPERATION = core::ffi::c_int;
14090pub use self::_LOCK_OPERATION as LOCK_OPERATION;
14091#[repr(C)]
14092#[derive(Copy, Clone)]
14093pub struct _FAST_MUTEX {
14094 pub Count: LONG,
14095 pub Owner: PVOID,
14096 pub Contention: ULONG,
14097 pub Event: KEVENT,
14098 pub OldIrql: ULONG,
14099}
14100pub type FAST_MUTEX = _FAST_MUTEX;
14101pub type PFAST_MUTEX = *mut _FAST_MUTEX;
14102pub type KGUARDED_MUTEX = _FAST_MUTEX;
14103pub type PKGUARDED_MUTEX = *mut _FAST_MUTEX;
14104unsafe extern "C" {
14105 pub fn __inbyte(Port: USHORT) -> UCHAR;
14106}
14107unsafe extern "C" {
14108 pub fn __inword(Port: USHORT) -> USHORT;
14109}
14110unsafe extern "C" {
14111 pub fn __indword(Port: USHORT) -> ULONG;
14112}
14113unsafe extern "C" {
14114 pub fn __outbyte(Port: USHORT, Data: UCHAR);
14115}
14116unsafe extern "C" {
14117 pub fn __outword(Port: USHORT, Data: USHORT);
14118}
14119unsafe extern "C" {
14120 pub fn __outdword(Port: USHORT, Data: ULONG);
14121}
14122unsafe extern "C" {
14123 pub fn __inbytestring(Port: USHORT, Buffer: PUCHAR, Count: ULONG);
14124}
14125unsafe extern "C" {
14126 pub fn __inwordstring(Port: USHORT, Buffer: PUSHORT, Count: ULONG);
14127}
14128unsafe extern "C" {
14129 pub fn __indwordstring(Port: USHORT, Buffer: PULONG, Count: ULONG);
14130}
14131unsafe extern "C" {
14132 pub fn __outbytestring(Port: USHORT, Buffer: PUCHAR, Count: ULONG);
14133}
14134unsafe extern "C" {
14135 pub fn __outwordstring(Port: USHORT, Buffer: PUSHORT, Count: ULONG);
14136}
14137unsafe extern "C" {
14138 pub fn __outdwordstring(Port: USHORT, Buffer: PULONG, Count: ULONG);
14139}
14140pub type PFN_COUNT = ULONG;
14141pub type SPFN_NUMBER = LONG64;
14142pub type PSPFN_NUMBER = *mut LONG64;
14143pub type PFN_NUMBER = ULONG64;
14144pub type PPFN_NUMBER = *mut ULONG64;
14145unsafe extern "C" {
14146 pub fn __readcr8() -> ULONG64;
14147}
14148unsafe extern "C" {
14149 pub fn __writecr8(Data: ULONG64);
14150}
14151unsafe extern "C" {
14152 pub fn KeFlushIoBuffers(Mdl: PMDL, ReadOperation: BOOLEAN, DmaOperation: BOOLEAN);
14153}
14154#[repr(C)]
14155#[derive(Debug, Copy, Clone)]
14156pub struct _KFLOATING_SAVE {
14157 pub Dummy: ULONG,
14158}
14159pub type KFLOATING_SAVE = _KFLOATING_SAVE;
14160pub type PKFLOATING_SAVE = *mut _KFLOATING_SAVE;
14161unsafe extern "C" {
14162 pub fn KeGetCurrentIrql() -> KIRQL;
14163}
14164unsafe extern "C" {
14165 pub fn KeLowerIrql(NewIrql: KIRQL);
14166}
14167unsafe extern "C" {
14168 pub fn KfRaiseIrql(NewIrql: KIRQL) -> KIRQL;
14169}
14170pub const _FIRMWARE_TYPE_FirmwareTypeUnknown: _FIRMWARE_TYPE = 0;
14171pub const _FIRMWARE_TYPE_FirmwareTypeBios: _FIRMWARE_TYPE = 1;
14172pub const _FIRMWARE_TYPE_FirmwareTypeUefi: _FIRMWARE_TYPE = 2;
14173pub const _FIRMWARE_TYPE_FirmwareTypeMax: _FIRMWARE_TYPE = 3;
14174pub type _FIRMWARE_TYPE = core::ffi::c_int;
14175pub use self::_FIRMWARE_TYPE as FIRMWARE_TYPE;
14176pub type PFIRMWARE_TYPE = *mut _FIRMWARE_TYPE;
14177pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorCore: _LOGICAL_PROCESSOR_RELATIONSHIP =
14178 0;
14179pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationNumaNode: _LOGICAL_PROCESSOR_RELATIONSHIP = 1;
14180pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationCache: _LOGICAL_PROCESSOR_RELATIONSHIP = 2;
14181pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorPackage:
14182_LOGICAL_PROCESSOR_RELATIONSHIP = 3;
14183pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationGroup: _LOGICAL_PROCESSOR_RELATIONSHIP = 4;
14184pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorDie: _LOGICAL_PROCESSOR_RELATIONSHIP = 5;
14185pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationNumaNodeEx: _LOGICAL_PROCESSOR_RELATIONSHIP = 6;
14186pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorModule: _LOGICAL_PROCESSOR_RELATIONSHIP =
14187 7;
14188pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationAll: _LOGICAL_PROCESSOR_RELATIONSHIP = 65535;
14189pub type _LOGICAL_PROCESSOR_RELATIONSHIP = core::ffi::c_int;
14190pub use self::_LOGICAL_PROCESSOR_RELATIONSHIP as LOGICAL_PROCESSOR_RELATIONSHIP;
14191pub const _PROCESSOR_CACHE_TYPE_CacheUnified: _PROCESSOR_CACHE_TYPE = 0;
14192pub const _PROCESSOR_CACHE_TYPE_CacheInstruction: _PROCESSOR_CACHE_TYPE = 1;
14193pub const _PROCESSOR_CACHE_TYPE_CacheData: _PROCESSOR_CACHE_TYPE = 2;
14194pub const _PROCESSOR_CACHE_TYPE_CacheTrace: _PROCESSOR_CACHE_TYPE = 3;
14195pub type _PROCESSOR_CACHE_TYPE = core::ffi::c_int;
14196pub use self::_PROCESSOR_CACHE_TYPE as PROCESSOR_CACHE_TYPE;
14197#[repr(C)]
14198#[derive(Debug, Copy, Clone)]
14199pub struct _CACHE_DESCRIPTOR {
14200 pub Level: UCHAR,
14201 pub Associativity: UCHAR,
14202 pub LineSize: USHORT,
14203 pub Size: ULONG,
14204 pub Type: PROCESSOR_CACHE_TYPE,
14205}
14206pub type CACHE_DESCRIPTOR = _CACHE_DESCRIPTOR;
14207pub type PCACHE_DESCRIPTOR = *mut _CACHE_DESCRIPTOR;
14208#[repr(C)]
14209#[derive(Copy, Clone)]
14210pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION {
14211 pub ProcessorMask: ULONG_PTR,
14212 pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
14213 pub __bindgen_anon_1: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1,
14214}
14215#[repr(C)]
14216#[derive(Copy, Clone)]
14217pub union _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1 {
14218 pub ProcessorCore: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1,
14219 pub NumaNode: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2,
14220 pub Cache: CACHE_DESCRIPTOR,
14221 pub Reserved: [ULONGLONG; 2usize],
14222}
14223#[repr(C)]
14224#[derive(Debug, Copy, Clone)]
14225pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
14226 pub Flags: UCHAR,
14227}
14228#[repr(C)]
14229#[derive(Debug, Copy, Clone)]
14230pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION__bindgen_ty_1__bindgen_ty_2 {
14231 pub NodeNumber: ULONG,
14232}
14233pub type SYSTEM_LOGICAL_PROCESSOR_INFORMATION = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
14234pub type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = *mut _SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
14235#[repr(C)]
14236#[derive(Debug, Copy, Clone)]
14237pub struct _PROCESSOR_RELATIONSHIP {
14238 pub Flags: UCHAR,
14239 pub EfficiencyClass: UCHAR,
14240 pub Reserved: [UCHAR; 20usize],
14241 pub GroupCount: USHORT,
14242 pub GroupMask: [GROUP_AFFINITY; 1usize],
14243}
14244pub type PROCESSOR_RELATIONSHIP = _PROCESSOR_RELATIONSHIP;
14245pub type PPROCESSOR_RELATIONSHIP = *mut _PROCESSOR_RELATIONSHIP;
14246#[repr(C)]
14247#[derive(Copy, Clone)]
14248pub struct _NUMA_NODE_RELATIONSHIP {
14249 pub NodeNumber: ULONG,
14250 pub Reserved: [UCHAR; 18usize],
14251 pub GroupCount: USHORT,
14252 pub __bindgen_anon_1: _NUMA_NODE_RELATIONSHIP__bindgen_ty_1,
14253}
14254#[repr(C)]
14255#[derive(Copy, Clone)]
14256pub union _NUMA_NODE_RELATIONSHIP__bindgen_ty_1 {
14257 pub GroupMask: GROUP_AFFINITY,
14258 pub GroupMasks: [GROUP_AFFINITY; 1usize],
14259}
14260pub type NUMA_NODE_RELATIONSHIP = _NUMA_NODE_RELATIONSHIP;
14261pub type PNUMA_NODE_RELATIONSHIP = *mut _NUMA_NODE_RELATIONSHIP;
14262#[repr(C)]
14263#[derive(Copy, Clone)]
14264pub struct _CACHE_RELATIONSHIP {
14265 pub Level: UCHAR,
14266 pub Associativity: UCHAR,
14267 pub LineSize: USHORT,
14268 pub CacheSize: ULONG,
14269 pub Type: PROCESSOR_CACHE_TYPE,
14270 pub Reserved: [UCHAR; 18usize],
14271 pub GroupCount: USHORT,
14272 pub __bindgen_anon_1: _CACHE_RELATIONSHIP__bindgen_ty_1,
14273}
14274#[repr(C)]
14275#[derive(Copy, Clone)]
14276pub union _CACHE_RELATIONSHIP__bindgen_ty_1 {
14277 pub GroupMask: GROUP_AFFINITY,
14278 pub GroupMasks: [GROUP_AFFINITY; 1usize],
14279}
14280pub type CACHE_RELATIONSHIP = _CACHE_RELATIONSHIP;
14281pub type PCACHE_RELATIONSHIP = *mut _CACHE_RELATIONSHIP;
14282#[repr(C)]
14283#[derive(Debug, Copy, Clone)]
14284pub struct _PROCESSOR_GROUP_INFO {
14285 pub MaximumProcessorCount: UCHAR,
14286 pub ActiveProcessorCount: UCHAR,
14287 pub Reserved: [UCHAR; 38usize],
14288 pub ActiveProcessorMask: KAFFINITY,
14289}
14290pub type PROCESSOR_GROUP_INFO = _PROCESSOR_GROUP_INFO;
14291pub type PPROCESSOR_GROUP_INFO = *mut _PROCESSOR_GROUP_INFO;
14292#[repr(C)]
14293#[derive(Debug, Copy, Clone)]
14294pub struct _GROUP_RELATIONSHIP {
14295 pub MaximumGroupCount: USHORT,
14296 pub ActiveGroupCount: USHORT,
14297 pub Reserved: [UCHAR; 20usize],
14298 pub GroupInfo: [PROCESSOR_GROUP_INFO; 1usize],
14299}
14300pub type GROUP_RELATIONSHIP = _GROUP_RELATIONSHIP;
14301pub type PGROUP_RELATIONSHIP = *mut _GROUP_RELATIONSHIP;
14302#[repr(C)]
14303#[derive(Copy, Clone)]
14304pub struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX {
14305 pub Relationship: LOGICAL_PROCESSOR_RELATIONSHIP,
14306 pub Size: ULONG,
14307 pub __bindgen_anon_1: _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1,
14308}
14309#[repr(C)]
14310#[derive(Copy, Clone)]
14311pub union _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX__bindgen_ty_1 {
14312 pub Processor: PROCESSOR_RELATIONSHIP,
14313 pub NumaNode: NUMA_NODE_RELATIONSHIP,
14314 pub Cache: CACHE_RELATIONSHIP,
14315 pub Group: GROUP_RELATIONSHIP,
14316}
14317pub type SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
14318pub type PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = *mut _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
14319pub const _CPU_SET_INFORMATION_TYPE_CpuSetInformation: _CPU_SET_INFORMATION_TYPE = 0;
14320pub type _CPU_SET_INFORMATION_TYPE = core::ffi::c_int;
14321pub use self::_CPU_SET_INFORMATION_TYPE as CPU_SET_INFORMATION_TYPE;
14322pub type PCPU_SET_INFORMATION_TYPE = *mut _CPU_SET_INFORMATION_TYPE;
14323#[repr(C)]
14324#[derive(Copy, Clone)]
14325pub struct _SYSTEM_CPU_SET_INFORMATION {
14326 pub Size: ULONG,
14327 pub Type: CPU_SET_INFORMATION_TYPE,
14328 pub __bindgen_anon_1: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1,
14329}
14330#[repr(C)]
14331#[derive(Copy, Clone)]
14332pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1 {
14333 pub CpuSet: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1,
14334}
14335#[repr(C)]
14336#[derive(Copy, Clone)]
14337pub struct _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
14338 pub Id: ULONG,
14339 pub Group: USHORT,
14340 pub LogicalProcessorIndex: UCHAR,
14341 pub CoreIndex: UCHAR,
14342 pub LastLevelCacheIndex: UCHAR,
14343 pub NumaNodeIndex: UCHAR,
14344 pub EfficiencyClass: UCHAR,
14345 pub __bindgen_anon_1: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
14346 pub __bindgen_anon_2: _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2,
14347 pub AllocationTag: ULONG64,
14348}
14349#[repr(C)]
14350#[derive(Copy, Clone)]
14351pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
14352 pub AllFlags: UCHAR,
14353 pub __bindgen_anon_1:
14354 _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
14355}
14356#[repr(C)]
14357#[derive(Debug, Copy, Clone)]
14358pub struct _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
14359 pub _bitfield_align_1: [u8; 0],
14360 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
14361}
14362impl _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
14363 #[inline]
14364 pub fn Parked(&self) -> UCHAR {
14365 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
14366 }
14367 #[inline]
14368 pub fn set_Parked(&mut self, val: UCHAR) {
14369 unsafe {
14370 let val: u8 = ::core::mem::transmute(val);
14371 self._bitfield_1.set(0usize, 1u8, val as u64)
14372 }
14373 }
14374 #[inline]
14375 pub unsafe fn Parked_raw(this: *const Self) -> UCHAR {
14376 unsafe {
14377 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14378 ::core::ptr::addr_of!((*this)._bitfield_1),
14379 0usize,
14380 1u8,
14381 ) as u8)
14382 }
14383 }
14384 #[inline]
14385 pub unsafe fn set_Parked_raw(this: *mut Self, val: UCHAR) {
14386 unsafe {
14387 let val: u8 = ::core::mem::transmute(val);
14388 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14389 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14390 0usize,
14391 1u8,
14392 val as u64,
14393 )
14394 }
14395 }
14396 #[inline]
14397 pub fn Allocated(&self) -> UCHAR {
14398 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
14399 }
14400 #[inline]
14401 pub fn set_Allocated(&mut self, val: UCHAR) {
14402 unsafe {
14403 let val: u8 = ::core::mem::transmute(val);
14404 self._bitfield_1.set(1usize, 1u8, val as u64)
14405 }
14406 }
14407 #[inline]
14408 pub unsafe fn Allocated_raw(this: *const Self) -> UCHAR {
14409 unsafe {
14410 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14411 ::core::ptr::addr_of!((*this)._bitfield_1),
14412 1usize,
14413 1u8,
14414 ) as u8)
14415 }
14416 }
14417 #[inline]
14418 pub unsafe fn set_Allocated_raw(this: *mut Self, val: UCHAR) {
14419 unsafe {
14420 let val: u8 = ::core::mem::transmute(val);
14421 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14422 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14423 1usize,
14424 1u8,
14425 val as u64,
14426 )
14427 }
14428 }
14429 #[inline]
14430 pub fn AllocatedToTargetProcess(&self) -> UCHAR {
14431 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
14432 }
14433 #[inline]
14434 pub fn set_AllocatedToTargetProcess(&mut self, val: UCHAR) {
14435 unsafe {
14436 let val: u8 = ::core::mem::transmute(val);
14437 self._bitfield_1.set(2usize, 1u8, val as u64)
14438 }
14439 }
14440 #[inline]
14441 pub unsafe fn AllocatedToTargetProcess_raw(this: *const Self) -> UCHAR {
14442 unsafe {
14443 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14444 ::core::ptr::addr_of!((*this)._bitfield_1),
14445 2usize,
14446 1u8,
14447 ) as u8)
14448 }
14449 }
14450 #[inline]
14451 pub unsafe fn set_AllocatedToTargetProcess_raw(this: *mut Self, val: UCHAR) {
14452 unsafe {
14453 let val: u8 = ::core::mem::transmute(val);
14454 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14455 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14456 2usize,
14457 1u8,
14458 val as u64,
14459 )
14460 }
14461 }
14462 #[inline]
14463 pub fn RealTime(&self) -> UCHAR {
14464 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
14465 }
14466 #[inline]
14467 pub fn set_RealTime(&mut self, val: UCHAR) {
14468 unsafe {
14469 let val: u8 = ::core::mem::transmute(val);
14470 self._bitfield_1.set(3usize, 1u8, val as u64)
14471 }
14472 }
14473 #[inline]
14474 pub unsafe fn RealTime_raw(this: *const Self) -> UCHAR {
14475 unsafe {
14476 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14477 ::core::ptr::addr_of!((*this)._bitfield_1),
14478 3usize,
14479 1u8,
14480 ) as u8)
14481 }
14482 }
14483 #[inline]
14484 pub unsafe fn set_RealTime_raw(this: *mut Self, val: UCHAR) {
14485 unsafe {
14486 let val: u8 = ::core::mem::transmute(val);
14487 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14488 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14489 3usize,
14490 1u8,
14491 val as u64,
14492 )
14493 }
14494 }
14495 #[inline]
14496 pub fn ReservedFlags(&self) -> UCHAR {
14497 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u8) }
14498 }
14499 #[inline]
14500 pub fn set_ReservedFlags(&mut self, val: UCHAR) {
14501 unsafe {
14502 let val: u8 = ::core::mem::transmute(val);
14503 self._bitfield_1.set(4usize, 4u8, val as u64)
14504 }
14505 }
14506 #[inline]
14507 pub unsafe fn ReservedFlags_raw(this: *const Self) -> UCHAR {
14508 unsafe {
14509 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14510 ::core::ptr::addr_of!((*this)._bitfield_1),
14511 4usize,
14512 4u8,
14513 ) as u8)
14514 }
14515 }
14516 #[inline]
14517 pub unsafe fn set_ReservedFlags_raw(this: *mut Self, val: UCHAR) {
14518 unsafe {
14519 let val: u8 = ::core::mem::transmute(val);
14520 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14521 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14522 4usize,
14523 4u8,
14524 val as u64,
14525 )
14526 }
14527 }
14528 #[inline]
14529 pub fn new_bitfield_1(
14530 Parked: UCHAR,
14531 Allocated: UCHAR,
14532 AllocatedToTargetProcess: UCHAR,
14533 RealTime: UCHAR,
14534 ReservedFlags: UCHAR,
14535 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
14536 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
14537 __bindgen_bitfield_unit.set(0usize, 1u8, {
14538 let Parked: u8 = unsafe { ::core::mem::transmute(Parked) };
14539 Parked as u64
14540 });
14541 __bindgen_bitfield_unit.set(1usize, 1u8, {
14542 let Allocated: u8 = unsafe { ::core::mem::transmute(Allocated) };
14543 Allocated as u64
14544 });
14545 __bindgen_bitfield_unit.set(2usize, 1u8, {
14546 let AllocatedToTargetProcess: u8 =
14547 unsafe { ::core::mem::transmute(AllocatedToTargetProcess) };
14548 AllocatedToTargetProcess as u64
14549 });
14550 __bindgen_bitfield_unit.set(3usize, 1u8, {
14551 let RealTime: u8 = unsafe { ::core::mem::transmute(RealTime) };
14552 RealTime as u64
14553 });
14554 __bindgen_bitfield_unit.set(4usize, 4u8, {
14555 let ReservedFlags: u8 = unsafe { ::core::mem::transmute(ReservedFlags) };
14556 ReservedFlags as u64
14557 });
14558 __bindgen_bitfield_unit
14559 }
14560}
14561#[repr(C)]
14562#[derive(Copy, Clone)]
14563pub union _SYSTEM_CPU_SET_INFORMATION__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 {
14564 pub Reserved: ULONG,
14565 pub SchedulingClass: UCHAR,
14566}
14567pub type SYSTEM_CPU_SET_INFORMATION = _SYSTEM_CPU_SET_INFORMATION;
14568pub type PSYSTEM_CPU_SET_INFORMATION = *mut _SYSTEM_CPU_SET_INFORMATION;
14569#[repr(C)]
14570#[derive(Debug, Copy, Clone)]
14571pub struct _SYSTEM_POOL_ZEROING_INFORMATION {
14572 pub PoolZeroingSupportPresent: BOOLEAN,
14573}
14574pub type SYSTEM_POOL_ZEROING_INFORMATION = _SYSTEM_POOL_ZEROING_INFORMATION;
14575pub type PSYSTEM_POOL_ZEROING_INFORMATION = *mut _SYSTEM_POOL_ZEROING_INFORMATION;
14576pub const _ALTERNATIVE_ARCHITECTURE_TYPE_StandardDesign: _ALTERNATIVE_ARCHITECTURE_TYPE = 0;
14577pub const _ALTERNATIVE_ARCHITECTURE_TYPE_NEC98x86: _ALTERNATIVE_ARCHITECTURE_TYPE = 1;
14578pub const _ALTERNATIVE_ARCHITECTURE_TYPE_EndAlternatives: _ALTERNATIVE_ARCHITECTURE_TYPE = 2;
14579pub type _ALTERNATIVE_ARCHITECTURE_TYPE = core::ffi::c_int;
14580pub use self::_ALTERNATIVE_ARCHITECTURE_TYPE as ALTERNATIVE_ARCHITECTURE_TYPE;
14581#[repr(C)]
14582#[derive(Debug, Copy, Clone)]
14583pub struct _EXCEPTION_RECORD {
14584 pub ExceptionCode: NTSTATUS,
14585 pub ExceptionFlags: ULONG,
14586 pub ExceptionRecord: *mut _EXCEPTION_RECORD,
14587 pub ExceptionAddress: PVOID,
14588 pub NumberParameters: ULONG,
14589 pub ExceptionInformation: [ULONG_PTR; 15usize],
14590}
14591pub type EXCEPTION_RECORD = _EXCEPTION_RECORD;
14592pub type PEXCEPTION_RECORD = *mut EXCEPTION_RECORD;
14593#[repr(C)]
14594#[derive(Debug, Copy, Clone)]
14595pub struct _EXCEPTION_RECORD32 {
14596 pub ExceptionCode: NTSTATUS,
14597 pub ExceptionFlags: ULONG,
14598 pub ExceptionRecord: ULONG,
14599 pub ExceptionAddress: ULONG,
14600 pub NumberParameters: ULONG,
14601 pub ExceptionInformation: [ULONG; 15usize],
14602}
14603pub type EXCEPTION_RECORD32 = _EXCEPTION_RECORD32;
14604pub type PEXCEPTION_RECORD32 = *mut _EXCEPTION_RECORD32;
14605#[repr(C)]
14606#[derive(Debug, Copy, Clone)]
14607pub struct _EXCEPTION_RECORD64 {
14608 pub ExceptionCode: NTSTATUS,
14609 pub ExceptionFlags: ULONG,
14610 pub ExceptionRecord: ULONG64,
14611 pub ExceptionAddress: ULONG64,
14612 pub NumberParameters: ULONG,
14613 pub __unusedAlignment: ULONG,
14614 pub ExceptionInformation: [ULONG64; 15usize],
14615}
14616pub type EXCEPTION_RECORD64 = _EXCEPTION_RECORD64;
14617pub type PEXCEPTION_RECORD64 = *mut _EXCEPTION_RECORD64;
14618#[repr(C)]
14619#[derive(Debug, Copy, Clone)]
14620pub struct _EXCEPTION_POINTERS {
14621 pub ExceptionRecord: PEXCEPTION_RECORD,
14622 pub ContextRecord: PCONTEXT,
14623}
14624pub type EXCEPTION_POINTERS = _EXCEPTION_POINTERS;
14625pub type PEXCEPTION_POINTERS = *mut _EXCEPTION_POINTERS;
14626pub const _KINTERRUPT_MODE_LevelSensitive: _KINTERRUPT_MODE = 0;
14627pub const _KINTERRUPT_MODE_Latched: _KINTERRUPT_MODE = 1;
14628pub type _KINTERRUPT_MODE = core::ffi::c_int;
14629pub use self::_KINTERRUPT_MODE as KINTERRUPT_MODE;
14630pub const _KINTERRUPT_POLARITY_InterruptPolarityUnknown: _KINTERRUPT_POLARITY = 0;
14631pub const _KINTERRUPT_POLARITY_InterruptActiveHigh: _KINTERRUPT_POLARITY = 1;
14632pub const _KINTERRUPT_POLARITY_InterruptRisingEdge: _KINTERRUPT_POLARITY = 1;
14633pub const _KINTERRUPT_POLARITY_InterruptActiveLow: _KINTERRUPT_POLARITY = 2;
14634pub const _KINTERRUPT_POLARITY_InterruptFallingEdge: _KINTERRUPT_POLARITY = 2;
14635pub const _KINTERRUPT_POLARITY_InterruptActiveBoth: _KINTERRUPT_POLARITY = 3;
14636pub const _KINTERRUPT_POLARITY_InterruptActiveBothTriggerLow: _KINTERRUPT_POLARITY = 3;
14637pub const _KINTERRUPT_POLARITY_InterruptActiveBothTriggerHigh: _KINTERRUPT_POLARITY = 4;
14638pub type _KINTERRUPT_POLARITY = core::ffi::c_int;
14639pub use self::_KINTERRUPT_POLARITY as KINTERRUPT_POLARITY;
14640pub type PKINTERRUPT_POLARITY = *mut _KINTERRUPT_POLARITY;
14641pub const _KWAIT_REASON_Executive: _KWAIT_REASON = 0;
14642pub const _KWAIT_REASON_FreePage: _KWAIT_REASON = 1;
14643pub const _KWAIT_REASON_PageIn: _KWAIT_REASON = 2;
14644pub const _KWAIT_REASON_PoolAllocation: _KWAIT_REASON = 3;
14645pub const _KWAIT_REASON_DelayExecution: _KWAIT_REASON = 4;
14646pub const _KWAIT_REASON_Suspended: _KWAIT_REASON = 5;
14647pub const _KWAIT_REASON_UserRequest: _KWAIT_REASON = 6;
14648pub const _KWAIT_REASON_WrExecutive: _KWAIT_REASON = 7;
14649pub const _KWAIT_REASON_WrFreePage: _KWAIT_REASON = 8;
14650pub const _KWAIT_REASON_WrPageIn: _KWAIT_REASON = 9;
14651pub const _KWAIT_REASON_WrPoolAllocation: _KWAIT_REASON = 10;
14652pub const _KWAIT_REASON_WrDelayExecution: _KWAIT_REASON = 11;
14653pub const _KWAIT_REASON_WrSuspended: _KWAIT_REASON = 12;
14654pub const _KWAIT_REASON_WrUserRequest: _KWAIT_REASON = 13;
14655pub const _KWAIT_REASON_WrSpare0: _KWAIT_REASON = 14;
14656pub const _KWAIT_REASON_WrQueue: _KWAIT_REASON = 15;
14657pub const _KWAIT_REASON_WrLpcReceive: _KWAIT_REASON = 16;
14658pub const _KWAIT_REASON_WrLpcReply: _KWAIT_REASON = 17;
14659pub const _KWAIT_REASON_WrVirtualMemory: _KWAIT_REASON = 18;
14660pub const _KWAIT_REASON_WrPageOut: _KWAIT_REASON = 19;
14661pub const _KWAIT_REASON_WrRendezvous: _KWAIT_REASON = 20;
14662pub const _KWAIT_REASON_WrKeyedEvent: _KWAIT_REASON = 21;
14663pub const _KWAIT_REASON_WrTerminated: _KWAIT_REASON = 22;
14664pub const _KWAIT_REASON_WrProcessInSwap: _KWAIT_REASON = 23;
14665pub const _KWAIT_REASON_WrCpuRateControl: _KWAIT_REASON = 24;
14666pub const _KWAIT_REASON_WrCalloutStack: _KWAIT_REASON = 25;
14667pub const _KWAIT_REASON_WrKernel: _KWAIT_REASON = 26;
14668pub const _KWAIT_REASON_WrResource: _KWAIT_REASON = 27;
14669pub const _KWAIT_REASON_WrPushLock: _KWAIT_REASON = 28;
14670pub const _KWAIT_REASON_WrMutex: _KWAIT_REASON = 29;
14671pub const _KWAIT_REASON_WrQuantumEnd: _KWAIT_REASON = 30;
14672pub const _KWAIT_REASON_WrDispatchInt: _KWAIT_REASON = 31;
14673pub const _KWAIT_REASON_WrPreempted: _KWAIT_REASON = 32;
14674pub const _KWAIT_REASON_WrYieldExecution: _KWAIT_REASON = 33;
14675pub const _KWAIT_REASON_WrFastMutex: _KWAIT_REASON = 34;
14676pub const _KWAIT_REASON_WrGuardedMutex: _KWAIT_REASON = 35;
14677pub const _KWAIT_REASON_WrRundown: _KWAIT_REASON = 36;
14678pub const _KWAIT_REASON_WrAlertByThreadId: _KWAIT_REASON = 37;
14679pub const _KWAIT_REASON_WrDeferredPreempt: _KWAIT_REASON = 38;
14680pub const _KWAIT_REASON_WrPhysicalFault: _KWAIT_REASON = 39;
14681pub const _KWAIT_REASON_WrIoRing: _KWAIT_REASON = 40;
14682pub const _KWAIT_REASON_WrMdlCache: _KWAIT_REASON = 41;
14683pub const _KWAIT_REASON_MaximumWaitReason: _KWAIT_REASON = 42;
14684pub type _KWAIT_REASON = core::ffi::c_int;
14685pub use self::_KWAIT_REASON as KWAIT_REASON;
14686#[repr(C)]
14687#[derive(Copy, Clone)]
14688pub struct _KWAIT_BLOCK {
14689 pub WaitListEntry: LIST_ENTRY,
14690 pub WaitType: UCHAR,
14691 pub BlockState: UCHAR,
14692 pub WaitKey: USHORT,
14693 pub SpareLong: LONG,
14694 pub __bindgen_anon_1: _KWAIT_BLOCK__bindgen_ty_1,
14695 pub Object: PVOID,
14696 pub SparePtr: PVOID,
14697}
14698#[repr(C)]
14699#[derive(Copy, Clone)]
14700pub union _KWAIT_BLOCK__bindgen_ty_1 {
14701 pub Thread: *mut _KTHREAD,
14702 pub NotificationQueue: *mut _KQUEUE,
14703 pub Dpc: *mut _KDPC,
14704}
14705pub type KWAIT_BLOCK = _KWAIT_BLOCK;
14706pub type PKWAIT_BLOCK = *mut _KWAIT_BLOCK;
14707pub type PRKWAIT_BLOCK = *mut _KWAIT_BLOCK;
14708pub type KSTART_ROUTINE = ::core::option::Option<unsafe extern "C" fn(StartContext: PVOID)>;
14709pub type PKSTART_ROUTINE = KSTART_ROUTINE;
14710#[repr(C)]
14711#[derive(Copy, Clone)]
14712pub struct _KDEVICE_QUEUE {
14713 pub Type: CSHORT,
14714 pub Size: CSHORT,
14715 pub DeviceListHead: LIST_ENTRY,
14716 pub Lock: KSPIN_LOCK,
14717 pub __bindgen_anon_1: _KDEVICE_QUEUE__bindgen_ty_1,
14718}
14719#[repr(C)]
14720#[derive(Copy, Clone)]
14721pub union _KDEVICE_QUEUE__bindgen_ty_1 {
14722 pub Busy: BOOLEAN,
14723 pub __bindgen_anon_1: _KDEVICE_QUEUE__bindgen_ty_1__bindgen_ty_1,
14724}
14725#[repr(C)]
14726#[derive(Debug, Copy, Clone)]
14727pub struct _KDEVICE_QUEUE__bindgen_ty_1__bindgen_ty_1 {
14728 pub _bitfield_align_1: [u64; 0],
14729 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
14730}
14731impl _KDEVICE_QUEUE__bindgen_ty_1__bindgen_ty_1 {
14732 #[inline]
14733 pub fn Reserved(&self) -> LONG64 {
14734 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u64) }
14735 }
14736 #[inline]
14737 pub fn set_Reserved(&mut self, val: LONG64) {
14738 unsafe {
14739 let val: u64 = ::core::mem::transmute(val);
14740 self._bitfield_1.set(0usize, 8u8, val as u64)
14741 }
14742 }
14743 #[inline]
14744 pub unsafe fn Reserved_raw(this: *const Self) -> LONG64 {
14745 unsafe {
14746 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
14747 ::core::ptr::addr_of!((*this)._bitfield_1),
14748 0usize,
14749 8u8,
14750 ) as u64)
14751 }
14752 }
14753 #[inline]
14754 pub unsafe fn set_Reserved_raw(this: *mut Self, val: LONG64) {
14755 unsafe {
14756 let val: u64 = ::core::mem::transmute(val);
14757 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
14758 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14759 0usize,
14760 8u8,
14761 val as u64,
14762 )
14763 }
14764 }
14765 #[inline]
14766 pub fn Hint(&self) -> LONG64 {
14767 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 56u8) as u64) }
14768 }
14769 #[inline]
14770 pub fn set_Hint(&mut self, val: LONG64) {
14771 unsafe {
14772 let val: u64 = ::core::mem::transmute(val);
14773 self._bitfield_1.set(8usize, 56u8, val as u64)
14774 }
14775 }
14776 #[inline]
14777 pub unsafe fn Hint_raw(this: *const Self) -> LONG64 {
14778 unsafe {
14779 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
14780 ::core::ptr::addr_of!((*this)._bitfield_1),
14781 8usize,
14782 56u8,
14783 ) as u64)
14784 }
14785 }
14786 #[inline]
14787 pub unsafe fn set_Hint_raw(this: *mut Self, val: LONG64) {
14788 unsafe {
14789 let val: u64 = ::core::mem::transmute(val);
14790 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
14791 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14792 8usize,
14793 56u8,
14794 val as u64,
14795 )
14796 }
14797 }
14798 #[inline]
14799 pub fn new_bitfield_1(Reserved: LONG64, Hint: LONG64) -> __BindgenBitfieldUnit<[u8; 8usize]> {
14800 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
14801 __bindgen_bitfield_unit.set(0usize, 8u8, {
14802 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
14803 Reserved as u64
14804 });
14805 __bindgen_bitfield_unit.set(8usize, 56u8, {
14806 let Hint: u64 = unsafe { ::core::mem::transmute(Hint) };
14807 Hint as u64
14808 });
14809 __bindgen_bitfield_unit
14810 }
14811}
14812pub type KDEVICE_QUEUE = _KDEVICE_QUEUE;
14813pub type PKDEVICE_QUEUE = *mut _KDEVICE_QUEUE;
14814pub type PRKDEVICE_QUEUE = *mut _KDEVICE_QUEUE;
14815#[repr(C)]
14816#[derive(Debug, Copy, Clone)]
14817pub struct _KDEVICE_QUEUE_ENTRY {
14818 pub DeviceListEntry: LIST_ENTRY,
14819 pub SortKey: ULONG,
14820 pub Inserted: BOOLEAN,
14821}
14822pub type KDEVICE_QUEUE_ENTRY = _KDEVICE_QUEUE_ENTRY;
14823pub type PKDEVICE_QUEUE_ENTRY = *mut _KDEVICE_QUEUE_ENTRY;
14824pub type PRKDEVICE_QUEUE_ENTRY = *mut _KDEVICE_QUEUE_ENTRY;
14825pub type KSERVICE_ROUTINE = ::core::option::Option<
14826 unsafe extern "C" fn(Interrupt: *mut _KINTERRUPT, ServiceContext: PVOID) -> BOOLEAN,
14827>;
14828pub type PKSERVICE_ROUTINE = KSERVICE_ROUTINE;
14829pub type KMESSAGE_SERVICE_ROUTINE = ::core::option::Option<
14830 unsafe extern "C" fn(
14831 Interrupt: *mut _KINTERRUPT,
14832 ServiceContext: PVOID,
14833 MessageID: ULONG,
14834 ) -> BOOLEAN,
14835>;
14836pub type PKMESSAGE_SERVICE_ROUTINE = KMESSAGE_SERVICE_ROUTINE;
14837#[repr(C)]
14838#[derive(Copy, Clone)]
14839pub struct _KMUTANT {
14840 pub Header: DISPATCHER_HEADER,
14841 pub MutantListEntry: LIST_ENTRY,
14842 pub OwnerThread: *mut _KTHREAD,
14843 pub __bindgen_anon_1: _KMUTANT__bindgen_ty_1,
14844 pub ApcDisable: UCHAR,
14845}
14846#[repr(C)]
14847#[derive(Copy, Clone)]
14848pub union _KMUTANT__bindgen_ty_1 {
14849 pub MutantFlags: UCHAR,
14850 pub __bindgen_anon_1: _KMUTANT__bindgen_ty_1__bindgen_ty_1,
14851}
14852#[repr(C)]
14853#[derive(Debug, Copy, Clone)]
14854pub struct _KMUTANT__bindgen_ty_1__bindgen_ty_1 {
14855 pub _bitfield_align_1: [u8; 0],
14856 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
14857}
14858impl _KMUTANT__bindgen_ty_1__bindgen_ty_1 {
14859 #[inline]
14860 pub fn Abandoned(&self) -> UCHAR {
14861 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
14862 }
14863 #[inline]
14864 pub fn set_Abandoned(&mut self, val: UCHAR) {
14865 unsafe {
14866 let val: u8 = ::core::mem::transmute(val);
14867 self._bitfield_1.set(0usize, 1u8, val as u64)
14868 }
14869 }
14870 #[inline]
14871 pub unsafe fn Abandoned_raw(this: *const Self) -> UCHAR {
14872 unsafe {
14873 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14874 ::core::ptr::addr_of!((*this)._bitfield_1),
14875 0usize,
14876 1u8,
14877 ) as u8)
14878 }
14879 }
14880 #[inline]
14881 pub unsafe fn set_Abandoned_raw(this: *mut Self, val: UCHAR) {
14882 unsafe {
14883 let val: u8 = ::core::mem::transmute(val);
14884 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14885 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14886 0usize,
14887 1u8,
14888 val as u64,
14889 )
14890 }
14891 }
14892 #[inline]
14893 pub fn Spare1(&self) -> UCHAR {
14894 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) }
14895 }
14896 #[inline]
14897 pub fn set_Spare1(&mut self, val: UCHAR) {
14898 unsafe {
14899 let val: u8 = ::core::mem::transmute(val);
14900 self._bitfield_1.set(1usize, 7u8, val as u64)
14901 }
14902 }
14903 #[inline]
14904 pub unsafe fn Spare1_raw(this: *const Self) -> UCHAR {
14905 unsafe {
14906 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
14907 ::core::ptr::addr_of!((*this)._bitfield_1),
14908 1usize,
14909 7u8,
14910 ) as u8)
14911 }
14912 }
14913 #[inline]
14914 pub unsafe fn set_Spare1_raw(this: *mut Self, val: UCHAR) {
14915 unsafe {
14916 let val: u8 = ::core::mem::transmute(val);
14917 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
14918 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
14919 1usize,
14920 7u8,
14921 val as u64,
14922 )
14923 }
14924 }
14925 #[inline]
14926 pub fn new_bitfield_1(Abandoned: UCHAR, Spare1: UCHAR) -> __BindgenBitfieldUnit<[u8; 1usize]> {
14927 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
14928 __bindgen_bitfield_unit.set(0usize, 1u8, {
14929 let Abandoned: u8 = unsafe { ::core::mem::transmute(Abandoned) };
14930 Abandoned as u64
14931 });
14932 __bindgen_bitfield_unit.set(1usize, 7u8, {
14933 let Spare1: u8 = unsafe { ::core::mem::transmute(Spare1) };
14934 Spare1 as u64
14935 });
14936 __bindgen_bitfield_unit
14937 }
14938}
14939pub type KMUTANT = _KMUTANT;
14940pub type PKMUTANT = *mut _KMUTANT;
14941pub type PRKMUTANT = *mut _KMUTANT;
14942pub type KMUTEX = _KMUTANT;
14943pub type PKMUTEX = *mut _KMUTANT;
14944pub type PRKMUTEX = *mut _KMUTANT;
14945#[repr(C)]
14946#[derive(Copy, Clone)]
14947pub struct _KSEMAPHORE {
14948 pub Header: DISPATCHER_HEADER,
14949 pub Limit: LONG,
14950}
14951pub type KSEMAPHORE = _KSEMAPHORE;
14952pub type PKSEMAPHORE = *mut _KSEMAPHORE;
14953pub type PRKSEMAPHORE = *mut _KSEMAPHORE;
14954unsafe extern "C" {
14955 pub fn KeInitializeDpc(
14956 Dpc: PRKDPC,
14957 DeferredRoutine: PKDEFERRED_ROUTINE,
14958 DeferredContext: PVOID,
14959 );
14960}
14961unsafe extern "C" {
14962 pub fn KeInitializeThreadedDpc(
14963 Dpc: PRKDPC,
14964 DeferredRoutine: PKDEFERRED_ROUTINE,
14965 DeferredContext: PVOID,
14966 );
14967}
14968unsafe extern "C" {
14969 pub fn KeInsertQueueDpc(Dpc: PRKDPC, SystemArgument1: PVOID, SystemArgument2: PVOID)
14970 -> BOOLEAN;
14971}
14972unsafe extern "C" {
14973 pub fn KeRemoveQueueDpc(Dpc: PRKDPC) -> BOOLEAN;
14974}
14975unsafe extern "C" {
14976 pub fn KeRemoveQueueDpcEx(Dpc: PRKDPC, WaitIfActive: BOOLEAN) -> BOOLEAN;
14977}
14978unsafe extern "C" {
14979 pub fn KeInitializeCrashDumpHeader(
14980 DumpType: ULONG,
14981 Flags: ULONG,
14982 Buffer: PVOID,
14983 BufferSize: ULONG,
14984 BufferNeeded: PULONG,
14985 ) -> NTSTATUS;
14986}
14987unsafe extern "C" {
14988 pub fn KeSetImportanceDpc(Dpc: PRKDPC, Importance: KDPC_IMPORTANCE);
14989}
14990unsafe extern "C" {
14991 pub fn KeSetTargetProcessorDpc(Dpc: PRKDPC, Number: CCHAR);
14992}
14993unsafe extern "C" {
14994 pub fn KeFlushQueuedDpcs();
14995}
14996unsafe extern "C" {
14997 pub fn KeInitializeDeviceQueue(DeviceQueue: PKDEVICE_QUEUE);
14998}
14999unsafe extern "C" {
15000 pub fn KeInsertDeviceQueue(
15001 DeviceQueue: PKDEVICE_QUEUE,
15002 DeviceQueueEntry: PKDEVICE_QUEUE_ENTRY,
15003 ) -> BOOLEAN;
15004}
15005unsafe extern "C" {
15006 pub fn KeInsertByKeyDeviceQueue(
15007 DeviceQueue: PKDEVICE_QUEUE,
15008 DeviceQueueEntry: PKDEVICE_QUEUE_ENTRY,
15009 SortKey: ULONG,
15010 ) -> BOOLEAN;
15011}
15012unsafe extern "C" {
15013 pub fn KeRemoveDeviceQueue(DeviceQueue: PKDEVICE_QUEUE) -> PKDEVICE_QUEUE_ENTRY;
15014}
15015unsafe extern "C" {
15016 pub fn KeRemoveByKeyDeviceQueue(
15017 DeviceQueue: PKDEVICE_QUEUE,
15018 SortKey: ULONG,
15019 ) -> PKDEVICE_QUEUE_ENTRY;
15020}
15021unsafe extern "C" {
15022 pub fn KeRemoveByKeyDeviceQueueIfBusy(
15023 DeviceQueue: PKDEVICE_QUEUE,
15024 SortKey: ULONG,
15025 ) -> PKDEVICE_QUEUE_ENTRY;
15026}
15027unsafe extern "C" {
15028 pub fn KeRemoveEntryDeviceQueue(
15029 DeviceQueue: PKDEVICE_QUEUE,
15030 DeviceQueueEntry: PKDEVICE_QUEUE_ENTRY,
15031 ) -> BOOLEAN;
15032}
15033unsafe extern "C" {
15034 pub fn KeSynchronizeExecution(
15035 Interrupt: PKINTERRUPT,
15036 SynchronizeRoutine: PKSYNCHRONIZE_ROUTINE,
15037 SynchronizeContext: PVOID,
15038 ) -> BOOLEAN;
15039}
15040unsafe extern "C" {
15041 pub fn KeAcquireInterruptSpinLock(Interrupt: PKINTERRUPT) -> KIRQL;
15042}
15043unsafe extern "C" {
15044 pub fn KeReleaseInterruptSpinLock(Interrupt: PKINTERRUPT, OldIrql: KIRQL);
15045}
15046unsafe extern "C" {
15047 pub fn KeInitializeEvent(Event: PRKEVENT, Type: EVENT_TYPE, State: BOOLEAN);
15048}
15049unsafe extern "C" {
15050 pub fn KeClearEvent(Event: PRKEVENT);
15051}
15052unsafe extern "C" {
15053 pub fn KeReadStateEvent(Event: PRKEVENT) -> LONG;
15054}
15055unsafe extern "C" {
15056 pub fn KeResetEvent(Event: PRKEVENT) -> LONG;
15057}
15058unsafe extern "C" {
15059 pub fn KeSetEvent(Event: PRKEVENT, Increment: KPRIORITY, Wait: BOOLEAN) -> LONG;
15060}
15061unsafe extern "C" {
15062 pub fn KeInitializeMutex(Mutex: PRKMUTEX, Level: ULONG);
15063}
15064unsafe extern "C" {
15065 pub fn KeReadStateMutex(Mutex: PRKMUTEX) -> LONG;
15066}
15067unsafe extern "C" {
15068 pub fn KeReleaseMutex(Mutex: PRKMUTEX, Wait: BOOLEAN) -> LONG;
15069}
15070unsafe extern "C" {
15071 pub fn KeInitializeSemaphore(Semaphore: PRKSEMAPHORE, Count: LONG, Limit: LONG);
15072}
15073unsafe extern "C" {
15074 pub fn KeReadStateSemaphore(Semaphore: PRKSEMAPHORE) -> LONG;
15075}
15076unsafe extern "C" {
15077 pub fn KeReleaseSemaphore(
15078 Semaphore: PRKSEMAPHORE,
15079 Increment: KPRIORITY,
15080 Adjustment: LONG,
15081 Wait: BOOLEAN,
15082 ) -> LONG;
15083}
15084unsafe extern "C" {
15085 pub fn KeDelayExecutionThread(
15086 WaitMode: KPROCESSOR_MODE,
15087 Alertable: BOOLEAN,
15088 Interval: PLARGE_INTEGER,
15089 ) -> NTSTATUS;
15090}
15091unsafe extern "C" {
15092 pub fn KeQueryPriorityThread(Thread: PKTHREAD) -> KPRIORITY;
15093}
15094unsafe extern "C" {
15095 pub fn KeQueryRuntimeThread(Thread: PKTHREAD, UserTime: PULONG) -> ULONG;
15096}
15097unsafe extern "C" {
15098 pub fn KeQueryTotalCycleTimeThread(Thread: PKTHREAD, CycleTimeStamp: PULONG64) -> ULONG64;
15099}
15100unsafe extern "C" {
15101 pub fn KeSetTargetProcessorDpcEx(Dpc: PKDPC, ProcNumber: PPROCESSOR_NUMBER) -> NTSTATUS;
15102}
15103unsafe extern "C" {
15104 pub fn KeRevertToUserAffinityThread();
15105}
15106unsafe extern "C" {
15107 pub fn KeSetSystemAffinityThread(Affinity: KAFFINITY);
15108}
15109unsafe extern "C" {
15110 pub fn KeRevertToUserAffinityThreadEx(Affinity: KAFFINITY);
15111}
15112unsafe extern "C" {
15113 pub fn KeSetSystemGroupAffinityThread(
15114 Affinity: PGROUP_AFFINITY,
15115 PreviousAffinity: PGROUP_AFFINITY,
15116 );
15117}
15118unsafe extern "C" {
15119 pub fn KeRevertToUserGroupAffinityThread(PreviousAffinity: PGROUP_AFFINITY);
15120}
15121unsafe extern "C" {
15122 pub fn KeSetSystemAffinityThreadEx(Affinity: KAFFINITY) -> KAFFINITY;
15123}
15124unsafe extern "C" {
15125 pub fn KeSetPriorityThread(Thread: PKTHREAD, Priority: KPRIORITY) -> KPRIORITY;
15126}
15127unsafe extern "C" {
15128 pub fn KeEnterCriticalRegion();
15129}
15130unsafe extern "C" {
15131 pub fn KeLeaveCriticalRegion();
15132}
15133unsafe extern "C" {
15134 pub fn KeEnterGuardedRegion();
15135}
15136unsafe extern "C" {
15137 pub fn KeLeaveGuardedRegion();
15138}
15139unsafe extern "C" {
15140 pub fn KeAreApcsDisabled() -> BOOLEAN;
15141}
15142unsafe extern "C" {
15143 pub fn KeInitializeTimer(Timer: PKTIMER);
15144}
15145unsafe extern "C" {
15146 pub fn KeInitializeTimerEx(Timer: PKTIMER, Type: TIMER_TYPE);
15147}
15148unsafe extern "C" {
15149 pub fn KeCancelTimer(arg1: PKTIMER) -> BOOLEAN;
15150}
15151unsafe extern "C" {
15152 pub fn KeReadStateTimer(Timer: PKTIMER) -> BOOLEAN;
15153}
15154unsafe extern "C" {
15155 pub fn KeSetTimer(Timer: PKTIMER, DueTime: LARGE_INTEGER, Dpc: PKDPC) -> BOOLEAN;
15156}
15157unsafe extern "C" {
15158 pub fn KeSetTimerEx(
15159 Timer: PKTIMER,
15160 DueTime: LARGE_INTEGER,
15161 Period: LONG,
15162 Dpc: PKDPC,
15163 ) -> BOOLEAN;
15164}
15165unsafe extern "C" {
15166 pub fn KeSetCoalescableTimer(
15167 Timer: PKTIMER,
15168 DueTime: LARGE_INTEGER,
15169 Period: ULONG,
15170 TolerableDelay: ULONG,
15171 Dpc: PKDPC,
15172 ) -> BOOLEAN;
15173}
15174unsafe extern "C" {
15175 pub fn KeWaitForMultipleObjects(
15176 Count: ULONG,
15177 Object: *mut PVOID,
15178 WaitType: WAIT_TYPE,
15179 WaitReason: KWAIT_REASON,
15180 WaitMode: KPROCESSOR_MODE,
15181 Alertable: BOOLEAN,
15182 Timeout: PLARGE_INTEGER,
15183 WaitBlockArray: PKWAIT_BLOCK,
15184 ) -> NTSTATUS;
15185}
15186unsafe extern "C" {
15187 pub fn KeWaitForSingleObject(
15188 Object: PVOID,
15189 WaitReason: KWAIT_REASON,
15190 WaitMode: KPROCESSOR_MODE,
15191 Alertable: BOOLEAN,
15192 Timeout: PLARGE_INTEGER,
15193 ) -> NTSTATUS;
15194}
15195pub type KIPI_BROADCAST_WORKER =
15196::core::option::Option<unsafe extern "C" fn(Argument: ULONG_PTR) -> ULONG_PTR>;
15197pub type PKIPI_BROADCAST_WORKER = KIPI_BROADCAST_WORKER;
15198unsafe extern "C" {
15199 pub fn KeIpiGenericCall(
15200 BroadcastFunction: PKIPI_BROADCAST_WORKER,
15201 Context: ULONG_PTR,
15202 ) -> ULONG_PTR;
15203}
15204unsafe extern "C" {
15205 pub fn KeInitializeSpinLock(SpinLock: PKSPIN_LOCK);
15206}
15207unsafe extern "C" {
15208 pub fn KeTestSpinLock(SpinLock: PKSPIN_LOCK) -> BOOLEAN;
15209}
15210unsafe extern "C" {
15211 pub fn KeTryToAcquireSpinLockAtDpcLevel(SpinLock: PKSPIN_LOCK) -> BOOLEAN;
15212}
15213unsafe extern "C" {
15214 pub fn KeAcquireSpinLockAtDpcLevel(SpinLock: PKSPIN_LOCK);
15215}
15216unsafe extern "C" {
15217 pub fn KeAcquireSpinLockRaiseToDpc(SpinLock: PKSPIN_LOCK) -> KIRQL;
15218}
15219unsafe extern "C" {
15220 pub fn KeReleaseSpinLock(SpinLock: PKSPIN_LOCK, NewIrql: KIRQL);
15221}
15222unsafe extern "C" {
15223 pub fn KeReleaseSpinLockFromDpcLevel(SpinLock: PKSPIN_LOCK);
15224}
15225unsafe extern "C" {
15226 pub fn KeAcquireSpinLockForDpc(SpinLock: PKSPIN_LOCK) -> KIRQL;
15227}
15228unsafe extern "C" {
15229 pub fn KeReleaseSpinLockForDpc(SpinLock: PKSPIN_LOCK, OldIrql: KIRQL);
15230}
15231unsafe extern "C" {
15232 pub fn KeAcquireInStackQueuedSpinLock(SpinLock: PKSPIN_LOCK, LockHandle: PKLOCK_QUEUE_HANDLE);
15233}
15234unsafe extern "C" {
15235 pub fn KeReleaseInStackQueuedSpinLock(LockHandle: PKLOCK_QUEUE_HANDLE);
15236}
15237unsafe extern "C" {
15238 pub fn KeAcquireInStackQueuedSpinLockAtDpcLevel(
15239 SpinLock: PKSPIN_LOCK,
15240 LockHandle: PKLOCK_QUEUE_HANDLE,
15241 );
15242}
15243unsafe extern "C" {
15244 pub fn KeReleaseInStackQueuedSpinLockFromDpcLevel(LockHandle: PKLOCK_QUEUE_HANDLE);
15245}
15246unsafe extern "C" {
15247 pub fn KeAcquireInStackQueuedSpinLockForDpc(
15248 SpinLock: PKSPIN_LOCK,
15249 LockHandle: PKLOCK_QUEUE_HANDLE,
15250 );
15251}
15252unsafe extern "C" {
15253 pub fn KeReleaseInStackQueuedSpinLockForDpc(LockHandle: PKLOCK_QUEUE_HANDLE);
15254}
15255#[repr(C)]
15256#[derive(Debug, Copy, Clone)]
15257pub struct _KDPC_WATCHDOG_INFORMATION {
15258 pub DpcTimeLimit: ULONG,
15259 pub DpcTimeCount: ULONG,
15260 pub DpcWatchdogLimit: ULONG,
15261 pub DpcWatchdogCount: ULONG,
15262 pub Reserved: ULONG,
15263}
15264pub type KDPC_WATCHDOG_INFORMATION = _KDPC_WATCHDOG_INFORMATION;
15265pub type PKDPC_WATCHDOG_INFORMATION = *mut _KDPC_WATCHDOG_INFORMATION;
15266unsafe extern "C" {
15267 pub fn KeQueryDpcWatchdogInformation(
15268 WatchdogInformation: PKDPC_WATCHDOG_INFORMATION,
15269 ) -> NTSTATUS;
15270}
15271unsafe extern "C" {
15272 pub fn KeIsExecutingDpc() -> LOGICAL;
15273}
15274pub const _KBUGCHECK_BUFFER_DUMP_STATE_BufferEmpty: _KBUGCHECK_BUFFER_DUMP_STATE = 0;
15275pub const _KBUGCHECK_BUFFER_DUMP_STATE_BufferInserted: _KBUGCHECK_BUFFER_DUMP_STATE = 1;
15276pub const _KBUGCHECK_BUFFER_DUMP_STATE_BufferStarted: _KBUGCHECK_BUFFER_DUMP_STATE = 2;
15277pub const _KBUGCHECK_BUFFER_DUMP_STATE_BufferFinished: _KBUGCHECK_BUFFER_DUMP_STATE = 3;
15278pub const _KBUGCHECK_BUFFER_DUMP_STATE_BufferIncomplete: _KBUGCHECK_BUFFER_DUMP_STATE = 4;
15279pub type _KBUGCHECK_BUFFER_DUMP_STATE = core::ffi::c_int;
15280pub use self::_KBUGCHECK_BUFFER_DUMP_STATE as KBUGCHECK_BUFFER_DUMP_STATE;
15281pub type KBUGCHECK_CALLBACK_ROUTINE =
15282::core::option::Option<unsafe extern "C" fn(Buffer: PVOID, Length: ULONG)>;
15283pub type PKBUGCHECK_CALLBACK_ROUTINE = KBUGCHECK_CALLBACK_ROUTINE;
15284#[repr(C)]
15285#[derive(Debug, Copy, Clone)]
15286pub struct _KBUGCHECK_CALLBACK_RECORD {
15287 pub Entry: LIST_ENTRY,
15288 pub CallbackRoutine: PKBUGCHECK_CALLBACK_ROUTINE,
15289 pub Buffer: PVOID,
15290 pub Length: ULONG,
15291 pub Component: PUCHAR,
15292 pub Checksum: ULONG_PTR,
15293 pub State: UCHAR,
15294}
15295pub type KBUGCHECK_CALLBACK_RECORD = _KBUGCHECK_CALLBACK_RECORD;
15296pub type PKBUGCHECK_CALLBACK_RECORD = *mut _KBUGCHECK_CALLBACK_RECORD;
15297unsafe extern "C" {
15298 pub fn KeDeregisterBugCheckCallback(CallbackRecord: PKBUGCHECK_CALLBACK_RECORD) -> BOOLEAN;
15299}
15300unsafe extern "C" {
15301 pub fn KeRegisterBugCheckCallback(
15302 CallbackRecord: PKBUGCHECK_CALLBACK_RECORD,
15303 CallbackRoutine: PKBUGCHECK_CALLBACK_ROUTINE,
15304 Buffer: PVOID,
15305 Length: ULONG,
15306 Component: PUCHAR,
15307 ) -> BOOLEAN;
15308}
15309pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackInvalid: _KBUGCHECK_CALLBACK_REASON = 0;
15310pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackReserved1: _KBUGCHECK_CALLBACK_REASON = 1;
15311pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackSecondaryDumpData: _KBUGCHECK_CALLBACK_REASON = 2;
15312pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackDumpIo: _KBUGCHECK_CALLBACK_REASON = 3;
15313pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackAddPages: _KBUGCHECK_CALLBACK_REASON = 4;
15314pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackSecondaryMultiPartDumpData:
15315_KBUGCHECK_CALLBACK_REASON = 5;
15316pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackRemovePages: _KBUGCHECK_CALLBACK_REASON = 6;
15317pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackTriageDumpData: _KBUGCHECK_CALLBACK_REASON = 7;
15318pub const _KBUGCHECK_CALLBACK_REASON_KbCallbackReserved2: _KBUGCHECK_CALLBACK_REASON = 8;
15319pub type _KBUGCHECK_CALLBACK_REASON = core::ffi::c_int;
15320pub use self::_KBUGCHECK_CALLBACK_REASON as KBUGCHECK_CALLBACK_REASON;
15321#[repr(C)]
15322#[derive(Debug, Copy, Clone)]
15323pub struct _KBUGCHECK_REASON_CALLBACK_RECORD {
15324 _unused: [u8; 0],
15325}
15326pub type KBUGCHECK_REASON_CALLBACK_ROUTINE = ::core::option::Option<
15327 unsafe extern "C" fn(
15328 Reason: KBUGCHECK_CALLBACK_REASON,
15329 Record: *mut _KBUGCHECK_REASON_CALLBACK_RECORD,
15330 ReasonSpecificData: PVOID,
15331 ReasonSpecificDataLength: ULONG,
15332 ),
15333>;
15334pub type PKBUGCHECK_REASON_CALLBACK_ROUTINE = KBUGCHECK_REASON_CALLBACK_ROUTINE;
15335unsafe extern "C" {
15336 pub fn BugCheckSecondaryMultiPartDumpDataCallback(
15337 Reason: KBUGCHECK_CALLBACK_REASON,
15338 Record: *mut _KBUGCHECK_REASON_CALLBACK_RECORD,
15339 ReasonSpecificData: PVOID,
15340 ReasonSpecificDataLength: ULONG,
15341 );
15342}
15343pub type KBUGCHECK_REASON_CALLBACK_RECORD = _KBUGCHECK_REASON_CALLBACK_RECORD;
15344pub type PKBUGCHECK_REASON_CALLBACK_RECORD = *mut _KBUGCHECK_REASON_CALLBACK_RECORD;
15345#[repr(C)]
15346#[derive(Debug, Copy, Clone)]
15347pub struct _KBUGCHECK_SECONDARY_DUMP_DATA {
15348 pub InBuffer: PVOID,
15349 pub InBufferLength: ULONG,
15350 pub MaximumAllowed: ULONG,
15351 pub Guid: GUID,
15352 pub OutBuffer: PVOID,
15353 pub OutBufferLength: ULONG,
15354}
15355pub type KBUGCHECK_SECONDARY_DUMP_DATA = _KBUGCHECK_SECONDARY_DUMP_DATA;
15356pub type PKBUGCHECK_SECONDARY_DUMP_DATA = *mut _KBUGCHECK_SECONDARY_DUMP_DATA;
15357#[repr(C)]
15358#[derive(Debug, Copy, Clone)]
15359pub struct _KBUGCHECK_SECONDARY_DUMP_DATA_EX {
15360 pub InBuffer: PVOID,
15361 pub InBufferLength: ULONG,
15362 pub MaximumAllowed: ULONG,
15363 pub Guid: GUID,
15364 pub OutBuffer: PVOID,
15365 pub OutBufferLength: ULONG,
15366 pub Context: PVOID,
15367 pub Flags: ULONG,
15368 pub DumpType: ULONG,
15369 pub BugCheckCode: ULONG,
15370 pub BugCheckParameter1: ULONG_PTR,
15371 pub BugCheckParameter2: ULONG_PTR,
15372 pub BugCheckParameter3: ULONG_PTR,
15373 pub BugCheckParameter4: ULONG_PTR,
15374}
15375pub type KBUGCHECK_SECONDARY_DUMP_DATA_EX = _KBUGCHECK_SECONDARY_DUMP_DATA_EX;
15376pub type PKBUGCHECK_SECONDARY_DUMP_DATA_EX = *mut _KBUGCHECK_SECONDARY_DUMP_DATA_EX;
15377pub const _KBUGCHECK_DUMP_IO_TYPE_KbDumpIoInvalid: _KBUGCHECK_DUMP_IO_TYPE = 0;
15378pub const _KBUGCHECK_DUMP_IO_TYPE_KbDumpIoHeader: _KBUGCHECK_DUMP_IO_TYPE = 1;
15379pub const _KBUGCHECK_DUMP_IO_TYPE_KbDumpIoBody: _KBUGCHECK_DUMP_IO_TYPE = 2;
15380pub const _KBUGCHECK_DUMP_IO_TYPE_KbDumpIoSecondaryData: _KBUGCHECK_DUMP_IO_TYPE = 3;
15381pub const _KBUGCHECK_DUMP_IO_TYPE_KbDumpIoComplete: _KBUGCHECK_DUMP_IO_TYPE = 4;
15382pub type _KBUGCHECK_DUMP_IO_TYPE = core::ffi::c_int;
15383pub use self::_KBUGCHECK_DUMP_IO_TYPE as KBUGCHECK_DUMP_IO_TYPE;
15384#[repr(C)]
15385#[derive(Debug, Copy, Clone)]
15386pub struct _KBUGCHECK_DUMP_IO {
15387 pub Offset: ULONG64,
15388 pub Buffer: PVOID,
15389 pub BufferLength: ULONG,
15390 pub Type: KBUGCHECK_DUMP_IO_TYPE,
15391}
15392pub type KBUGCHECK_DUMP_IO = _KBUGCHECK_DUMP_IO;
15393pub type PKBUGCHECK_DUMP_IO = *mut _KBUGCHECK_DUMP_IO;
15394#[repr(C)]
15395#[derive(Debug, Copy, Clone)]
15396pub struct _KBUGCHECK_ADD_PAGES {
15397 pub Context: PVOID,
15398 pub Flags: ULONG,
15399 pub BugCheckCode: ULONG,
15400 pub Address: ULONG_PTR,
15401 pub Count: ULONG_PTR,
15402}
15403pub type KBUGCHECK_ADD_PAGES = _KBUGCHECK_ADD_PAGES;
15404pub type PKBUGCHECK_ADD_PAGES = *mut _KBUGCHECK_ADD_PAGES;
15405#[repr(C)]
15406#[derive(Debug, Copy, Clone)]
15407pub struct _KBUGCHECK_REMOVE_PAGES {
15408 pub Context: PVOID,
15409 pub Flags: ULONG,
15410 pub BugCheckCode: ULONG,
15411 pub Address: ULONG_PTR,
15412 pub Count: ULONG_PTR,
15413}
15414pub type KBUGCHECK_REMOVE_PAGES = _KBUGCHECK_REMOVE_PAGES;
15415pub type PKBUGCHECK_REMOVE_PAGES = *mut _KBUGCHECK_REMOVE_PAGES;
15416#[repr(C)]
15417#[derive(Debug, Copy, Clone)]
15418pub struct _KADDRESS_RANGE {
15419 pub Address: PVOID,
15420 pub Size: SIZE_T,
15421}
15422pub type KADDRESS_RANGE = _KADDRESS_RANGE;
15423pub type PKADDRESS_RANGE = *mut _KADDRESS_RANGE;
15424#[repr(C)]
15425#[derive(Debug, Copy, Clone)]
15426pub struct _KADDRESS_RANGE_DESCRIPTOR {
15427 pub AddressRanges: *const KADDRESS_RANGE,
15428 pub AddressRangeCount: SIZE_T,
15429}
15430pub type KADDRESS_RANGE_DESCRIPTOR = _KADDRESS_RANGE_DESCRIPTOR;
15431pub type PKADDRESS_RANGE_DESCRIPTOR = *mut _KADDRESS_RANGE_DESCRIPTOR;
15432#[repr(C)]
15433#[derive(Debug, Copy, Clone)]
15434pub struct _KTRIAGE_DUMP_DATA_ARRAY {
15435 pub List: LIST_ENTRY,
15436 pub NumBlocksUsed: ULONG,
15437 pub NumBlocksTotal: ULONG,
15438 pub DataSize: ULONG,
15439 pub MaxDataSize: ULONG,
15440 pub ComponentNameBufferLength: ULONG,
15441 pub ComponentName: PUCHAR,
15442 pub Blocks: [KADDRESS_RANGE; 1usize],
15443}
15444pub type KTRIAGE_DUMP_DATA_ARRAY = _KTRIAGE_DUMP_DATA_ARRAY;
15445pub type PKTRIAGE_DUMP_DATA_ARRAY = *mut _KTRIAGE_DUMP_DATA_ARRAY;
15446#[repr(C)]
15447#[derive(Debug, Copy, Clone)]
15448pub struct _KBUGCHECK_TRIAGE_DUMP_DATA {
15449 pub DataArray: PKTRIAGE_DUMP_DATA_ARRAY,
15450 pub Flags: ULONG,
15451 pub MaxVirtMemSize: ULONG,
15452 pub BugCheckCode: ULONG,
15453 pub BugCheckParameter1: ULONG_PTR,
15454 pub BugCheckParameter2: ULONG_PTR,
15455 pub BugCheckParameter3: ULONG_PTR,
15456 pub BugCheckParameter4: ULONG_PTR,
15457}
15458pub type KBUGCHECK_TRIAGE_DUMP_DATA = _KBUGCHECK_TRIAGE_DUMP_DATA;
15459pub type PKBUGCHECK_TRIAGE_DUMP_DATA = *mut _KBUGCHECK_TRIAGE_DUMP_DATA;
15460unsafe extern "C" {
15461 pub fn KeInitializeTriageDumpDataArray(
15462 KtriageDumpDataArray: PKTRIAGE_DUMP_DATA_ARRAY,
15463 Size: ULONG,
15464 ) -> NTSTATUS;
15465}
15466unsafe extern "C" {
15467 pub fn KeAddTriageDumpDataBlock(
15468 KtriageDumpDataArray: PKTRIAGE_DUMP_DATA_ARRAY,
15469 Address: PVOID,
15470 Size: SIZE_T,
15471 ) -> NTSTATUS;
15472}
15473unsafe extern "C" {
15474 pub fn KeDeregisterBugCheckReasonCallback(
15475 CallbackRecord: PKBUGCHECK_REASON_CALLBACK_RECORD,
15476 ) -> BOOLEAN;
15477}
15478unsafe extern "C" {
15479 pub fn KeRegisterBugCheckReasonCallback(
15480 CallbackRecord: PKBUGCHECK_REASON_CALLBACK_RECORD,
15481 CallbackRoutine: PKBUGCHECK_REASON_CALLBACK_ROUTINE,
15482 Reason: KBUGCHECK_CALLBACK_REASON,
15483 Component: PUCHAR,
15484 ) -> BOOLEAN;
15485}
15486pub type NMI_CALLBACK =
15487::core::option::Option<unsafe extern "C" fn(Context: PVOID, Handled: BOOLEAN) -> BOOLEAN>;
15488pub type PNMI_CALLBACK = NMI_CALLBACK;
15489unsafe extern "C" {
15490 pub fn KeRegisterNmiCallback(CallbackRoutine: PNMI_CALLBACK, Context: PVOID) -> PVOID;
15491}
15492unsafe extern "C" {
15493 pub fn KeDeregisterNmiCallback(Handle: PVOID) -> NTSTATUS;
15494}
15495pub const _BOUND_CALLBACK_STATUS_BoundExceptionContinueSearch: _BOUND_CALLBACK_STATUS = 0;
15496pub const _BOUND_CALLBACK_STATUS_BoundExceptionHandled: _BOUND_CALLBACK_STATUS = 1;
15497pub const _BOUND_CALLBACK_STATUS_BoundExceptionError: _BOUND_CALLBACK_STATUS = 2;
15498pub const _BOUND_CALLBACK_STATUS_BoundExceptionMaximum: _BOUND_CALLBACK_STATUS = 3;
15499pub type _BOUND_CALLBACK_STATUS = core::ffi::c_int;
15500pub use self::_BOUND_CALLBACK_STATUS as BOUND_CALLBACK_STATUS;
15501pub type PBOUND_CALLBACK_STATUS = *mut _BOUND_CALLBACK_STATUS;
15502pub type BOUND_CALLBACK = ::core::option::Option<unsafe extern "C" fn() -> BOUND_CALLBACK_STATUS>;
15503pub type PBOUND_CALLBACK = BOUND_CALLBACK;
15504unsafe extern "C" {
15505 pub fn KeRegisterBoundCallback(CallbackRoutine: PBOUND_CALLBACK) -> PVOID;
15506}
15507unsafe extern "C" {
15508 pub fn KeDeregisterBoundCallback(Handle: PVOID) -> NTSTATUS;
15509}
15510unsafe extern "C" {
15511 pub fn KeBugCheckEx(
15512 BugCheckCode: ULONG,
15513 BugCheckParameter1: ULONG_PTR,
15514 BugCheckParameter2: ULONG_PTR,
15515 BugCheckParameter3: ULONG_PTR,
15516 BugCheckParameter4: ULONG_PTR,
15517 ) -> !;
15518}
15519unsafe extern "C" {
15520 pub fn KeQuerySystemTimePrecise(CurrentTime: PLARGE_INTEGER);
15521}
15522unsafe extern "C" {
15523 pub fn KeQueryInterruptTimePrecise(QpcTimeStamp: PULONG64) -> ULONG64;
15524}
15525unsafe extern "C" {
15526 pub fn KeQueryUnbiasedInterruptTimePrecise(QpcTimeStamp: PULONG64) -> ULONG64;
15527}
15528unsafe extern "C" {
15529 pub fn KeQueryTimeIncrement() -> ULONG;
15530}
15531unsafe extern "C" {
15532 pub fn KeQueryUnbiasedInterruptTime() -> ULONGLONG;
15533}
15534unsafe extern "C" {
15535 pub fn KeGetRecommendedSharedDataAlignment() -> ULONG;
15536}
15537unsafe extern "C" {
15538 pub fn KeQueryActiveProcessors() -> KAFFINITY;
15539}
15540unsafe extern "C" {
15541 pub fn KeQueryActiveProcessorCount(ActiveProcessors: PKAFFINITY) -> ULONG;
15542}
15543unsafe extern "C" {
15544 pub fn KeQueryActiveProcessorCountEx(GroupNumber: USHORT) -> ULONG;
15545}
15546unsafe extern "C" {
15547 pub fn KeQueryMaximumProcessorCount() -> ULONG;
15548}
15549unsafe extern "C" {
15550 pub fn KeQueryMaximumProcessorCountEx(GroupNumber: USHORT) -> ULONG;
15551}
15552unsafe extern "C" {
15553 pub fn KeQueryActiveGroupCount() -> USHORT;
15554}
15555unsafe extern "C" {
15556 pub fn KeQueryMaximumGroupCount() -> USHORT;
15557}
15558unsafe extern "C" {
15559 pub fn KeQueryGroupAffinity(GroupNumber: USHORT) -> KAFFINITY;
15560}
15561unsafe extern "C" {
15562 pub fn KeGetCurrentProcessorNumberEx(ProcNumber: PPROCESSOR_NUMBER) -> ULONG;
15563}
15564unsafe extern "C" {
15565 pub fn KeQueryNodeActiveAffinity(NodeNumber: USHORT, Affinity: PGROUP_AFFINITY, Count: PUSHORT);
15566}
15567unsafe extern "C" {
15568 pub fn KeQueryNodeMaximumProcessorCount(NodeNumber: USHORT) -> USHORT;
15569}
15570unsafe extern "C" {
15571 pub fn KeQueryHighestNodeNumber() -> USHORT;
15572}
15573unsafe extern "C" {
15574 pub fn KeGetCurrentNodeNumber() -> USHORT;
15575}
15576unsafe extern "C" {
15577 pub fn KeQueryLogicalProcessorRelationship(
15578 ProcessorNumber: PPROCESSOR_NUMBER,
15579 RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP,
15580 Information: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX,
15581 Length: PULONG,
15582 ) -> NTSTATUS;
15583}
15584unsafe extern "C" {
15585 pub fn KeShouldYieldProcessor() -> LOGICAL;
15586}
15587unsafe extern "C" {
15588 pub fn KeQueryNodeActiveAffinity2(
15589 NodeNumber: USHORT,
15590 GroupAffinities: PGROUP_AFFINITY,
15591 GroupAffinitiesCount: USHORT,
15592 GroupAffinitiesRequired: PUSHORT,
15593 ) -> NTSTATUS;
15594}
15595unsafe extern "C" {
15596 pub fn KeQueryNodeActiveProcessorCount(NodeNumber: USHORT) -> ULONG;
15597}
15598pub const _MEMORY_CACHING_TYPE_ORIG_MmFrameBufferCached: _MEMORY_CACHING_TYPE_ORIG = 2;
15599pub type _MEMORY_CACHING_TYPE_ORIG = core::ffi::c_int;
15600pub use self::_MEMORY_CACHING_TYPE_ORIG as MEMORY_CACHING_TYPE_ORIG;
15601pub const _MEMORY_CACHING_TYPE_MmNonCached: _MEMORY_CACHING_TYPE = 0;
15602pub const _MEMORY_CACHING_TYPE_MmCached: _MEMORY_CACHING_TYPE = 1;
15603pub const _MEMORY_CACHING_TYPE_MmWriteCombined: _MEMORY_CACHING_TYPE = 2;
15604pub const _MEMORY_CACHING_TYPE_MmHardwareCoherentCached: _MEMORY_CACHING_TYPE = 3;
15605pub const _MEMORY_CACHING_TYPE_MmNonCachedUnordered: _MEMORY_CACHING_TYPE = 4;
15606pub const _MEMORY_CACHING_TYPE_MmUSWCCached: _MEMORY_CACHING_TYPE = 5;
15607pub const _MEMORY_CACHING_TYPE_MmMaximumCacheType: _MEMORY_CACHING_TYPE = 6;
15608pub const _MEMORY_CACHING_TYPE_MmNotMapped: _MEMORY_CACHING_TYPE = -1;
15609pub type _MEMORY_CACHING_TYPE = core::ffi::c_int;
15610pub use self::_MEMORY_CACHING_TYPE as MEMORY_CACHING_TYPE;
15611unsafe extern "C" {
15612 pub fn KeAreAllApcsDisabled() -> BOOLEAN;
15613}
15614unsafe extern "C" {
15615 pub fn KeInitializeGuardedMutex(Mutex: PKGUARDED_MUTEX);
15616}
15617unsafe extern "C" {
15618 pub fn KeAcquireGuardedMutex(Mutex: PKGUARDED_MUTEX);
15619}
15620unsafe extern "C" {
15621 pub fn KeReleaseGuardedMutex(Mutex: PKGUARDED_MUTEX);
15622}
15623unsafe extern "C" {
15624 pub fn KeTryToAcquireGuardedMutex(Mutex: PKGUARDED_MUTEX) -> BOOLEAN;
15625}
15626unsafe extern "C" {
15627 pub fn KeAcquireGuardedMutexUnsafe(FastMutex: PKGUARDED_MUTEX);
15628}
15629unsafe extern "C" {
15630 pub fn KeReleaseGuardedMutexUnsafe(FastMutex: PKGUARDED_MUTEX);
15631}
15632pub const KE_PROCESSOR_CHANGE_NOTIFY_STATE_KeProcessorAddStartNotify:
15633KE_PROCESSOR_CHANGE_NOTIFY_STATE = 0;
15634pub const KE_PROCESSOR_CHANGE_NOTIFY_STATE_KeProcessorAddCompleteNotify:
15635KE_PROCESSOR_CHANGE_NOTIFY_STATE = 1;
15636pub const KE_PROCESSOR_CHANGE_NOTIFY_STATE_KeProcessorAddFailureNotify:
15637KE_PROCESSOR_CHANGE_NOTIFY_STATE = 2;
15638pub type KE_PROCESSOR_CHANGE_NOTIFY_STATE = core::ffi::c_int;
15639#[repr(C)]
15640#[derive(Debug, Copy, Clone)]
15641pub struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
15642 pub State: KE_PROCESSOR_CHANGE_NOTIFY_STATE,
15643 pub NtNumber: ULONG,
15644 pub Status: NTSTATUS,
15645 pub ProcNumber: PROCESSOR_NUMBER,
15646}
15647pub type KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT = _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
15648pub type PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT = *mut _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
15649pub type PROCESSOR_CALLBACK_FUNCTION = ::core::option::Option<
15650 unsafe extern "C" fn(
15651 CallbackContext: PVOID,
15652 ChangeContext: PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT,
15653 OperationStatus: PNTSTATUS,
15654 ),
15655>;
15656pub type PPROCESSOR_CALLBACK_FUNCTION = PROCESSOR_CALLBACK_FUNCTION;
15657unsafe extern "C" {
15658 pub fn KeRegisterProcessorChangeCallback(
15659 CallbackFunction: PPROCESSOR_CALLBACK_FUNCTION,
15660 CallbackContext: PVOID,
15661 Flags: ULONG,
15662 ) -> PVOID;
15663}
15664unsafe extern "C" {
15665 pub fn KeDeregisterProcessorChangeCallback(CallbackHandle: PVOID);
15666}
15667unsafe extern "C" {
15668 pub fn KeGetProcessorNumberFromIndex(
15669 ProcIndex: ULONG,
15670 ProcNumber: PPROCESSOR_NUMBER,
15671 ) -> NTSTATUS;
15672}
15673unsafe extern "C" {
15674 pub fn KeGetProcessorIndexFromNumber(ProcNumber: PPROCESSOR_NUMBER) -> ULONG;
15675}
15676#[repr(C)]
15677#[derive(Debug, Copy, Clone)]
15678pub struct _XSTATE_SAVE {
15679 pub Prev: *mut _XSTATE_SAVE,
15680 pub Thread: *mut _KTHREAD,
15681 pub Level: UCHAR,
15682 pub XStateContext: XSTATE_CONTEXT,
15683}
15684pub type XSTATE_SAVE = _XSTATE_SAVE;
15685pub type PXSTATE_SAVE = *mut _XSTATE_SAVE;
15686unsafe extern "C" {
15687 pub fn KeSaveExtendedProcessorState(Mask: ULONG64, XStateSave: PXSTATE_SAVE) -> NTSTATUS;
15688}
15689unsafe extern "C" {
15690 pub fn KeRestoreExtendedProcessorState(XStateSave: PXSTATE_SAVE);
15691}
15692#[repr(C)]
15693#[derive(Debug, Copy, Clone)]
15694pub struct _EXT_SET_PARAMETERS_V0 {
15695 pub Version: ULONG,
15696 pub Reserved: ULONG,
15697 pub NoWakeTolerance: LONGLONG,
15698}
15699pub type EXT_SET_PARAMETERS = _EXT_SET_PARAMETERS_V0;
15700pub type PEXT_SET_PARAMETERS = *mut _EXT_SET_PARAMETERS_V0;
15701pub type KT2_SET_PARAMETERS = EXT_SET_PARAMETERS;
15702pub type PKT2_SET_PARAMETERS = *mut EXT_SET_PARAMETERS;
15703unsafe extern "C" {
15704 pub fn KeConvertAuxiliaryCounterToPerformanceCounter(
15705 AuxiliaryCounterValue: ULONG64,
15706 PerformanceCounterValue: PULONG64,
15707 ConversionError: PULONG64,
15708 ) -> NTSTATUS;
15709}
15710unsafe extern "C" {
15711 pub fn KeConvertPerformanceCounterToAuxiliaryCounter(
15712 PerformanceCounterValue: ULONG64,
15713 AuxiliaryCounterValue: PULONG64,
15714 ConversionError: PULONG64,
15715 ) -> NTSTATUS;
15716}
15717unsafe extern "C" {
15718 pub fn KeQueryAuxiliaryCounterFrequency(AuxiliaryCounterFrequency: PULONG64) -> NTSTATUS;
15719}
15720#[repr(C)]
15721#[derive(Debug, Copy, Clone)]
15722pub struct _KWAIT_CHAIN {
15723 pub Head: PVOID,
15724}
15725pub type KWAIT_CHAIN = _KWAIT_CHAIN;
15726pub type PKWAIT_CHAIN = *mut _KWAIT_CHAIN;
15727unsafe extern "C" {
15728 pub static mut KdDebuggerNotPresent: PBOOLEAN;
15729}
15730unsafe extern "C" {
15731 pub static mut KdDebuggerEnabled: PBOOLEAN;
15732}
15733unsafe extern "C" {
15734 pub fn KdDisableDebugger() -> NTSTATUS;
15735}
15736unsafe extern "C" {
15737 pub fn KdEnableDebugger() -> NTSTATUS;
15738}
15739unsafe extern "C" {
15740 pub fn KdRefreshDebuggerNotPresent() -> BOOLEAN;
15741}
15742pub const _KD_OPTION_KD_OPTION_SET_BLOCK_ENABLE: _KD_OPTION = 0;
15743pub type _KD_OPTION = core::ffi::c_int;
15744pub use self::_KD_OPTION as KD_OPTION;
15745unsafe extern "C" {
15746 pub fn KdChangeOption(
15747 Option: KD_OPTION,
15748 InBufferBytes: ULONG,
15749 InBuffer: PVOID,
15750 OutBufferBytes: ULONG,
15751 OutBuffer: PVOID,
15752 OutBufferNeeded: PULONG,
15753 ) -> NTSTATUS;
15754}
15755pub const _POOL_TYPE_NonPagedPool: _POOL_TYPE = 0;
15756pub const _POOL_TYPE_NonPagedPoolExecute: _POOL_TYPE = 0;
15757pub const _POOL_TYPE_PagedPool: _POOL_TYPE = 1;
15758pub const _POOL_TYPE_NonPagedPoolMustSucceed: _POOL_TYPE = 2;
15759pub const _POOL_TYPE_DontUseThisType: _POOL_TYPE = 3;
15760pub const _POOL_TYPE_NonPagedPoolCacheAligned: _POOL_TYPE = 4;
15761pub const _POOL_TYPE_PagedPoolCacheAligned: _POOL_TYPE = 5;
15762pub const _POOL_TYPE_NonPagedPoolCacheAlignedMustS: _POOL_TYPE = 6;
15763pub const _POOL_TYPE_MaxPoolType: _POOL_TYPE = 7;
15764pub const _POOL_TYPE_NonPagedPoolBase: _POOL_TYPE = 0;
15765pub const _POOL_TYPE_NonPagedPoolBaseMustSucceed: _POOL_TYPE = 2;
15766pub const _POOL_TYPE_NonPagedPoolBaseCacheAligned: _POOL_TYPE = 4;
15767pub const _POOL_TYPE_NonPagedPoolBaseCacheAlignedMustS: _POOL_TYPE = 6;
15768pub const _POOL_TYPE_NonPagedPoolSession: _POOL_TYPE = 32;
15769pub const _POOL_TYPE_PagedPoolSession: _POOL_TYPE = 33;
15770pub const _POOL_TYPE_NonPagedPoolMustSucceedSession: _POOL_TYPE = 34;
15771pub const _POOL_TYPE_DontUseThisTypeSession: _POOL_TYPE = 35;
15772pub const _POOL_TYPE_NonPagedPoolCacheAlignedSession: _POOL_TYPE = 36;
15773pub const _POOL_TYPE_PagedPoolCacheAlignedSession: _POOL_TYPE = 37;
15774pub const _POOL_TYPE_NonPagedPoolCacheAlignedMustSSession: _POOL_TYPE = 38;
15775pub const _POOL_TYPE_NonPagedPoolNx: _POOL_TYPE = 512;
15776pub const _POOL_TYPE_NonPagedPoolNxCacheAligned: _POOL_TYPE = 516;
15777pub const _POOL_TYPE_NonPagedPoolSessionNx: _POOL_TYPE = 544;
15778pub type _POOL_TYPE = core::ffi::c_int;
15779unsafe extern "C" {
15780 pub fn ExAllocatePool(PoolType: POOL_TYPE, NumberOfBytes: SIZE_T) -> PVOID;
15781}
15782unsafe extern "C" {
15783 pub fn ExAllocatePoolWithQuota(PoolType: POOL_TYPE, NumberOfBytes: SIZE_T) -> PVOID;
15784}
15785unsafe extern "C" {
15786 pub fn ExAllocatePoolWithTag(PoolType: POOL_TYPE, NumberOfBytes: SIZE_T, Tag: ULONG) -> PVOID;
15787}
15788pub const _EX_POOL_PRIORITY_LowPoolPriority: _EX_POOL_PRIORITY = 0;
15789pub const _EX_POOL_PRIORITY_LowPoolPrioritySpecialPoolOverrun: _EX_POOL_PRIORITY = 8;
15790pub const _EX_POOL_PRIORITY_LowPoolPrioritySpecialPoolUnderrun: _EX_POOL_PRIORITY = 9;
15791pub const _EX_POOL_PRIORITY_NormalPoolPriority: _EX_POOL_PRIORITY = 16;
15792pub const _EX_POOL_PRIORITY_NormalPoolPrioritySpecialPoolOverrun: _EX_POOL_PRIORITY = 24;
15793pub const _EX_POOL_PRIORITY_NormalPoolPrioritySpecialPoolUnderrun: _EX_POOL_PRIORITY = 25;
15794pub const _EX_POOL_PRIORITY_HighPoolPriority: _EX_POOL_PRIORITY = 32;
15795pub const _EX_POOL_PRIORITY_HighPoolPrioritySpecialPoolOverrun: _EX_POOL_PRIORITY = 40;
15796pub const _EX_POOL_PRIORITY_HighPoolPrioritySpecialPoolUnderrun: _EX_POOL_PRIORITY = 41;
15797pub type _EX_POOL_PRIORITY = core::ffi::c_int;
15798pub use self::_EX_POOL_PRIORITY as EX_POOL_PRIORITY;
15799unsafe extern "C" {
15800 pub fn ExAllocatePoolWithTagPriority(
15801 PoolType: POOL_TYPE,
15802 NumberOfBytes: SIZE_T,
15803 Tag: ULONG,
15804 Priority: EX_POOL_PRIORITY,
15805 ) -> PVOID;
15806}
15807pub const POOL_EXTENDED_PARAMETER_TYPE_PoolExtendedParameterInvalidType:
15808POOL_EXTENDED_PARAMETER_TYPE = 0;
15809pub const POOL_EXTENDED_PARAMETER_TYPE_PoolExtendedParameterPriority: POOL_EXTENDED_PARAMETER_TYPE =
15810 1;
15811pub const POOL_EXTENDED_PARAMETER_TYPE_PoolExtendedParameterSecurePool:
15812POOL_EXTENDED_PARAMETER_TYPE = 2;
15813pub const POOL_EXTENDED_PARAMETER_TYPE_PoolExtendedParameterNumaNode: POOL_EXTENDED_PARAMETER_TYPE =
15814 3;
15815pub const POOL_EXTENDED_PARAMETER_TYPE_PoolExtendedParameterMax: POOL_EXTENDED_PARAMETER_TYPE = 4;
15816pub type POOL_EXTENDED_PARAMETER_TYPE = core::ffi::c_int;
15817pub type PPOOL_EXTENDED_PARAMETER_TYPE = *mut POOL_EXTENDED_PARAMETER_TYPE;
15818#[repr(C)]
15819#[derive(Debug, Copy, Clone)]
15820pub struct _POOL_EXTENDED_PARAMS_SECURE_POOL {
15821 pub SecurePoolHandle: HANDLE,
15822 pub Buffer: PVOID,
15823 pub Cookie: ULONG_PTR,
15824 pub SecurePoolFlags: ULONG,
15825}
15826pub type POOL_EXTENDED_PARAMS_SECURE_POOL = _POOL_EXTENDED_PARAMS_SECURE_POOL;
15827pub type POOL_NODE_REQUIREMENT = ULONG;
15828#[repr(C)]
15829#[derive(Copy, Clone)]
15830pub struct _POOL_EXTENDED_PARAMETER {
15831 pub __bindgen_anon_1: _POOL_EXTENDED_PARAMETER__bindgen_ty_1,
15832 pub __bindgen_anon_2: _POOL_EXTENDED_PARAMETER__bindgen_ty_2,
15833}
15834#[repr(C)]
15835#[derive(Debug, Copy, Clone)]
15836pub struct _POOL_EXTENDED_PARAMETER__bindgen_ty_1 {
15837 pub _bitfield_align_1: [u64; 0],
15838 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
15839}
15840impl _POOL_EXTENDED_PARAMETER__bindgen_ty_1 {
15841 #[inline]
15842 pub fn Type(&self) -> ULONG64 {
15843 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u64) }
15844 }
15845 #[inline]
15846 pub fn set_Type(&mut self, val: ULONG64) {
15847 unsafe {
15848 let val: u64 = ::core::mem::transmute(val);
15849 self._bitfield_1.set(0usize, 8u8, val as u64)
15850 }
15851 }
15852 #[inline]
15853 pub unsafe fn Type_raw(this: *const Self) -> ULONG64 {
15854 unsafe {
15855 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
15856 ::core::ptr::addr_of!((*this)._bitfield_1),
15857 0usize,
15858 8u8,
15859 ) as u64)
15860 }
15861 }
15862 #[inline]
15863 pub unsafe fn set_Type_raw(this: *mut Self, val: ULONG64) {
15864 unsafe {
15865 let val: u64 = ::core::mem::transmute(val);
15866 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
15867 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
15868 0usize,
15869 8u8,
15870 val as u64,
15871 )
15872 }
15873 }
15874 #[inline]
15875 pub fn Optional(&self) -> ULONG64 {
15876 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u64) }
15877 }
15878 #[inline]
15879 pub fn set_Optional(&mut self, val: ULONG64) {
15880 unsafe {
15881 let val: u64 = ::core::mem::transmute(val);
15882 self._bitfield_1.set(8usize, 1u8, val as u64)
15883 }
15884 }
15885 #[inline]
15886 pub unsafe fn Optional_raw(this: *const Self) -> ULONG64 {
15887 unsafe {
15888 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
15889 ::core::ptr::addr_of!((*this)._bitfield_1),
15890 8usize,
15891 1u8,
15892 ) as u64)
15893 }
15894 }
15895 #[inline]
15896 pub unsafe fn set_Optional_raw(this: *mut Self, val: ULONG64) {
15897 unsafe {
15898 let val: u64 = ::core::mem::transmute(val);
15899 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
15900 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
15901 8usize,
15902 1u8,
15903 val as u64,
15904 )
15905 }
15906 }
15907 #[inline]
15908 pub fn Reserved(&self) -> ULONG64 {
15909 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 55u8) as u64) }
15910 }
15911 #[inline]
15912 pub fn set_Reserved(&mut self, val: ULONG64) {
15913 unsafe {
15914 let val: u64 = ::core::mem::transmute(val);
15915 self._bitfield_1.set(9usize, 55u8, val as u64)
15916 }
15917 }
15918 #[inline]
15919 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG64 {
15920 unsafe {
15921 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
15922 ::core::ptr::addr_of!((*this)._bitfield_1),
15923 9usize,
15924 55u8,
15925 ) as u64)
15926 }
15927 }
15928 #[inline]
15929 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG64) {
15930 unsafe {
15931 let val: u64 = ::core::mem::transmute(val);
15932 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
15933 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
15934 9usize,
15935 55u8,
15936 val as u64,
15937 )
15938 }
15939 }
15940 #[inline]
15941 pub fn new_bitfield_1(
15942 Type: ULONG64,
15943 Optional: ULONG64,
15944 Reserved: ULONG64,
15945 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
15946 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
15947 __bindgen_bitfield_unit.set(0usize, 8u8, {
15948 let Type: u64 = unsafe { ::core::mem::transmute(Type) };
15949 Type as u64
15950 });
15951 __bindgen_bitfield_unit.set(8usize, 1u8, {
15952 let Optional: u64 = unsafe { ::core::mem::transmute(Optional) };
15953 Optional as u64
15954 });
15955 __bindgen_bitfield_unit.set(9usize, 55u8, {
15956 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
15957 Reserved as u64
15958 });
15959 __bindgen_bitfield_unit
15960 }
15961}
15962#[repr(C)]
15963#[derive(Copy, Clone)]
15964pub union _POOL_EXTENDED_PARAMETER__bindgen_ty_2 {
15965 pub Reserved2: ULONG64,
15966 pub Reserved3: PVOID,
15967 pub Priority: EX_POOL_PRIORITY,
15968 pub SecurePoolParams: *mut POOL_EXTENDED_PARAMS_SECURE_POOL,
15969 pub PreferredNode: POOL_NODE_REQUIREMENT,
15970}
15971pub type POOL_EXTENDED_PARAMETER = _POOL_EXTENDED_PARAMETER;
15972pub type PPOOL_EXTENDED_PARAMETER = *mut _POOL_EXTENDED_PARAMETER;
15973pub type PCPOOL_EXTENDED_PARAMETER = *const POOL_EXTENDED_PARAMETER;
15974unsafe extern "C" {
15975 pub fn ExAllocatePool2(Flags: POOL_FLAGS, NumberOfBytes: SIZE_T, Tag: ULONG) -> PVOID;
15976}
15977unsafe extern "C" {
15978 pub fn ExAllocatePool3(
15979 Flags: POOL_FLAGS,
15980 NumberOfBytes: SIZE_T,
15981 Tag: ULONG,
15982 ExtendedParameters: PCPOOL_EXTENDED_PARAMETER,
15983 ExtendedParametersCount: ULONG,
15984 ) -> PVOID;
15985}
15986unsafe extern "C" {
15987 pub fn ExFreePool2(
15988 P: PVOID,
15989 Tag: ULONG,
15990 ExtendedParameters: PCPOOL_EXTENDED_PARAMETER,
15991 ExtendedParametersCount: ULONG,
15992 );
15993}
15994#[repr(C)]
15995#[derive(Debug, Copy, Clone)]
15996pub struct _POOL_CREATE_EXTENDED_PARAMS {
15997 pub Version: ULONG,
15998}
15999pub type POOL_CREATE_EXTENDED_PARAMS = _POOL_CREATE_EXTENDED_PARAMS;
16000pub type PPOOL_CREATE_EXTENDED_PARAMS = *mut _POOL_CREATE_EXTENDED_PARAMS;
16001unsafe extern "C" {
16002 pub fn ExCreatePool(
16003 Flags: ULONG,
16004 Tag: ULONG_PTR,
16005 Params: *mut POOL_CREATE_EXTENDED_PARAMS,
16006 PoolHandle: *mut HANDLE,
16007 ) -> NTSTATUS;
16008}
16009unsafe extern "C" {
16010 pub fn ExDestroyPool(PoolHandle: HANDLE);
16011}
16012unsafe extern "C" {
16013 pub fn ExSecurePoolUpdate(
16014 SecurePoolHandle: HANDLE,
16015 Tag: ULONG,
16016 Allocation: PVOID,
16017 Cookie: ULONG_PTR,
16018 Offset: SIZE_T,
16019 Size: SIZE_T,
16020 Buffer: PVOID,
16021 ) -> NTSTATUS;
16022}
16023unsafe extern "C" {
16024 pub fn ExSecurePoolValidate(
16025 SecurePoolHandle: HANDLE,
16026 Tag: ULONG,
16027 Allocation: PVOID,
16028 Cookie: ULONG_PTR,
16029 ) -> LOGICAL;
16030}
16031unsafe extern "C" {
16032 pub fn ExAllocatePoolWithQuotaTag(
16033 PoolType: POOL_TYPE,
16034 NumberOfBytes: SIZE_T,
16035 Tag: ULONG,
16036 ) -> PVOID;
16037}
16038pub const ExPoolZeroingNativelySupported: BOOLEAN = 0;
16039unsafe extern "C" {
16040 pub fn ExFreePool(P: PVOID);
16041}
16042unsafe extern "C" {
16043 pub fn ExFreePoolWithTag(P: PVOID, Tag: ULONG);
16044}
16045unsafe extern "C" {
16046 pub fn ExAcquireFastMutexUnsafe(FastMutex: PFAST_MUTEX);
16047}
16048unsafe extern "C" {
16049 pub fn ExReleaseFastMutexUnsafe(FastMutex: PFAST_MUTEX);
16050}
16051unsafe extern "C" {
16052 pub fn ExAcquireFastMutex(FastMutex: PFAST_MUTEX);
16053}
16054unsafe extern "C" {
16055 pub fn ExReleaseFastMutex(FastMutex: PFAST_MUTEX);
16056}
16057unsafe extern "C" {
16058 pub fn ExTryToAcquireFastMutex(FastMutex: PFAST_MUTEX) -> BOOLEAN;
16059}
16060unsafe extern "C" {
16061 pub fn ExInterlockedAddLargeInteger(
16062 Addend: PLARGE_INTEGER,
16063 Increment: LARGE_INTEGER,
16064 Lock: PKSPIN_LOCK,
16065 ) -> LARGE_INTEGER;
16066}
16067unsafe extern "C" {
16068 pub fn ExInterlockedAddUlong(Addend: PULONG, Increment: ULONG, Lock: PKSPIN_LOCK) -> ULONG;
16069}
16070unsafe extern "C" {
16071 pub fn ExInterlockedInsertHeadList(
16072 ListHead: PLIST_ENTRY,
16073 ListEntry: PLIST_ENTRY,
16074 Lock: PKSPIN_LOCK,
16075 ) -> PLIST_ENTRY;
16076}
16077unsafe extern "C" {
16078 pub fn ExInterlockedInsertTailList(
16079 ListHead: PLIST_ENTRY,
16080 ListEntry: PLIST_ENTRY,
16081 Lock: PKSPIN_LOCK,
16082 ) -> PLIST_ENTRY;
16083}
16084unsafe extern "C" {
16085 pub fn ExInterlockedRemoveHeadList(ListHead: PLIST_ENTRY, Lock: PKSPIN_LOCK) -> PLIST_ENTRY;
16086}
16087unsafe extern "C" {
16088 pub fn ExInterlockedPopEntryList(
16089 ListHead: PSINGLE_LIST_ENTRY,
16090 Lock: PKSPIN_LOCK,
16091 ) -> PSINGLE_LIST_ENTRY;
16092}
16093unsafe extern "C" {
16094 pub fn ExInterlockedPushEntryList(
16095 ListHead: PSINGLE_LIST_ENTRY,
16096 ListEntry: PSINGLE_LIST_ENTRY,
16097 Lock: PKSPIN_LOCK,
16098 ) -> PSINGLE_LIST_ENTRY;
16099}
16100unsafe extern "C" {
16101 pub fn InitializeSListHead(SListHead: PSLIST_HEADER);
16102}
16103unsafe extern "C" {
16104 pub fn FirstEntrySList(SListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
16105}
16106unsafe extern "C" {
16107 pub fn ExQueryDepthSList(SListHead: PSLIST_HEADER) -> USHORT;
16108}
16109unsafe extern "C" {
16110 pub fn ExpInterlockedPopEntrySList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
16111}
16112unsafe extern "C" {
16113 pub fn ExpInterlockedPushEntrySList(
16114 ListHead: PSLIST_HEADER,
16115 ListEntry: PSLIST_ENTRY,
16116 ) -> PSLIST_ENTRY;
16117}
16118unsafe extern "C" {
16119 pub fn ExpInterlockedFlushSList(ListHead: PSLIST_HEADER) -> PSLIST_ENTRY;
16120}
16121#[repr(C)]
16122#[repr(align(16))]
16123#[derive(Copy, Clone)]
16124pub struct _LOOKASIDE_LIST_EX {
16125 pub L: GENERAL_LOOKASIDE_POOL,
16126}
16127pub type LOOKASIDE_LIST_EX = _LOOKASIDE_LIST_EX;
16128unsafe extern "C" {
16129 pub fn ExInitializeLookasideListEx(
16130 Lookaside: PLOOKASIDE_LIST_EX,
16131 Allocate: PALLOCATE_FUNCTION_EX,
16132 Free: PFREE_FUNCTION_EX,
16133 PoolType: POOL_TYPE,
16134 Flags: ULONG,
16135 Size: SIZE_T,
16136 Tag: ULONG,
16137 Depth: USHORT,
16138 ) -> NTSTATUS;
16139}
16140unsafe extern "C" {
16141 pub fn ExDeleteLookasideListEx(Lookaside: PLOOKASIDE_LIST_EX);
16142}
16143unsafe extern "C" {
16144 pub fn ExFlushLookasideListEx(Lookaside: PLOOKASIDE_LIST_EX);
16145}
16146#[repr(C)]
16147#[repr(align(64))]
16148#[derive(Copy, Clone)]
16149pub struct _NPAGED_LOOKASIDE_LIST {
16150 pub L: GENERAL_LOOKASIDE,
16151}
16152pub type NPAGED_LOOKASIDE_LIST = _NPAGED_LOOKASIDE_LIST;
16153pub type PNPAGED_LOOKASIDE_LIST = *mut _NPAGED_LOOKASIDE_LIST;
16154unsafe extern "C" {
16155 pub fn ExInitializeNPagedLookasideList(
16156 Lookaside: PNPAGED_LOOKASIDE_LIST,
16157 Allocate: PALLOCATE_FUNCTION,
16158 Free: PFREE_FUNCTION,
16159 Flags: ULONG,
16160 Size: SIZE_T,
16161 Tag: ULONG,
16162 Depth: USHORT,
16163 );
16164}
16165unsafe extern "C" {
16166 pub fn ExDeleteNPagedLookasideList(Lookaside: PNPAGED_LOOKASIDE_LIST);
16167}
16168#[repr(C)]
16169#[repr(align(64))]
16170#[derive(Copy, Clone)]
16171pub struct _PAGED_LOOKASIDE_LIST {
16172 pub L: GENERAL_LOOKASIDE,
16173}
16174pub type PAGED_LOOKASIDE_LIST = _PAGED_LOOKASIDE_LIST;
16175pub type PPAGED_LOOKASIDE_LIST = *mut _PAGED_LOOKASIDE_LIST;
16176unsafe extern "C" {
16177 pub fn ExInitializePagedLookasideList(
16178 Lookaside: PPAGED_LOOKASIDE_LIST,
16179 Allocate: PALLOCATE_FUNCTION,
16180 Free: PFREE_FUNCTION,
16181 Flags: ULONG,
16182 Size: SIZE_T,
16183 Tag: ULONG,
16184 Depth: USHORT,
16185 );
16186}
16187unsafe extern "C" {
16188 pub fn ExDeletePagedLookasideList(Lookaside: PPAGED_LOOKASIDE_LIST);
16189}
16190unsafe extern "C" {
16191 pub fn ProbeForRead(Address: *mut core::ffi::c_void, Length: SIZE_T, Alignment: ULONG);
16192}
16193unsafe extern "C" {
16194 pub fn ExRaiseStatus(Status: NTSTATUS) -> !;
16195}
16196unsafe extern "C" {
16197 pub fn ProbeForWrite(Address: *mut core::ffi::c_void, Length: SIZE_T, Alignment: ULONG);
16198}
16199pub const _WORK_QUEUE_TYPE_CriticalWorkQueue: _WORK_QUEUE_TYPE = 0;
16200pub const _WORK_QUEUE_TYPE_DelayedWorkQueue: _WORK_QUEUE_TYPE = 1;
16201pub const _WORK_QUEUE_TYPE_HyperCriticalWorkQueue: _WORK_QUEUE_TYPE = 2;
16202pub const _WORK_QUEUE_TYPE_NormalWorkQueue: _WORK_QUEUE_TYPE = 3;
16203pub const _WORK_QUEUE_TYPE_BackgroundWorkQueue: _WORK_QUEUE_TYPE = 4;
16204pub const _WORK_QUEUE_TYPE_RealTimeWorkQueue: _WORK_QUEUE_TYPE = 5;
16205pub const _WORK_QUEUE_TYPE_SuperCriticalWorkQueue: _WORK_QUEUE_TYPE = 6;
16206pub const _WORK_QUEUE_TYPE_MaximumWorkQueue: _WORK_QUEUE_TYPE = 7;
16207pub const _WORK_QUEUE_TYPE_CustomPriorityWorkQueue: _WORK_QUEUE_TYPE = 32;
16208pub type _WORK_QUEUE_TYPE = core::ffi::c_int;
16209pub use self::_WORK_QUEUE_TYPE as WORK_QUEUE_TYPE;
16210pub type WORKER_THREAD_ROUTINE = ::core::option::Option<unsafe extern "C" fn(Parameter: PVOID)>;
16211pub type PWORKER_THREAD_ROUTINE = WORKER_THREAD_ROUTINE;
16212#[repr(C)]
16213#[derive(Debug, Copy, Clone)]
16214pub struct _WORK_QUEUE_ITEM {
16215 pub List: LIST_ENTRY,
16216 pub WorkerRoutine: PWORKER_THREAD_ROUTINE,
16217 pub Parameter: PVOID,
16218}
16219pub type WORK_QUEUE_ITEM = _WORK_QUEUE_ITEM;
16220pub type PWORK_QUEUE_ITEM = *mut _WORK_QUEUE_ITEM;
16221unsafe extern "C" {
16222 pub fn ExQueueWorkItem(WorkItem: PWORK_QUEUE_ITEM, QueueType: WORK_QUEUE_TYPE);
16223}
16224unsafe extern "C" {
16225 pub fn ExIsProcessorFeaturePresent(ProcessorFeature: ULONG) -> BOOLEAN;
16226}
16227pub type ERESOURCE_THREAD = ULONG_PTR;
16228pub type PERESOURCE_THREAD = *mut ERESOURCE_THREAD;
16229#[repr(C)]
16230#[derive(Copy, Clone)]
16231pub struct _OWNER_ENTRY {
16232 pub OwnerThread: ERESOURCE_THREAD,
16233 pub __bindgen_anon_1: _OWNER_ENTRY__bindgen_ty_1,
16234}
16235#[repr(C)]
16236#[derive(Copy, Clone)]
16237pub union _OWNER_ENTRY__bindgen_ty_1 {
16238 pub __bindgen_anon_1: _OWNER_ENTRY__bindgen_ty_1__bindgen_ty_1,
16239 pub TableSize: ULONG,
16240}
16241#[repr(C)]
16242#[derive(Debug, Copy, Clone)]
16243pub struct _OWNER_ENTRY__bindgen_ty_1__bindgen_ty_1 {
16244 pub _bitfield_align_1: [u32; 0],
16245 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
16246}
16247impl _OWNER_ENTRY__bindgen_ty_1__bindgen_ty_1 {
16248 #[inline]
16249 pub fn IoPriorityBoosted(&self) -> ULONG {
16250 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
16251 }
16252 #[inline]
16253 pub fn set_IoPriorityBoosted(&mut self, val: ULONG) {
16254 unsafe {
16255 let val: u32 = ::core::mem::transmute(val);
16256 self._bitfield_1.set(0usize, 1u8, val as u64)
16257 }
16258 }
16259 #[inline]
16260 pub unsafe fn IoPriorityBoosted_raw(this: *const Self) -> ULONG {
16261 unsafe {
16262 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
16263 ::core::ptr::addr_of!((*this)._bitfield_1),
16264 0usize,
16265 1u8,
16266 ) as u32)
16267 }
16268 }
16269 #[inline]
16270 pub unsafe fn set_IoPriorityBoosted_raw(this: *mut Self, val: ULONG) {
16271 unsafe {
16272 let val: u32 = ::core::mem::transmute(val);
16273 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
16274 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
16275 0usize,
16276 1u8,
16277 val as u64,
16278 )
16279 }
16280 }
16281 #[inline]
16282 pub fn OwnerReferenced(&self) -> ULONG {
16283 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
16284 }
16285 #[inline]
16286 pub fn set_OwnerReferenced(&mut self, val: ULONG) {
16287 unsafe {
16288 let val: u32 = ::core::mem::transmute(val);
16289 self._bitfield_1.set(1usize, 1u8, val as u64)
16290 }
16291 }
16292 #[inline]
16293 pub unsafe fn OwnerReferenced_raw(this: *const Self) -> ULONG {
16294 unsafe {
16295 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
16296 ::core::ptr::addr_of!((*this)._bitfield_1),
16297 1usize,
16298 1u8,
16299 ) as u32)
16300 }
16301 }
16302 #[inline]
16303 pub unsafe fn set_OwnerReferenced_raw(this: *mut Self, val: ULONG) {
16304 unsafe {
16305 let val: u32 = ::core::mem::transmute(val);
16306 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
16307 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
16308 1usize,
16309 1u8,
16310 val as u64,
16311 )
16312 }
16313 }
16314 #[inline]
16315 pub fn IoQoSPriorityBoosted(&self) -> ULONG {
16316 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
16317 }
16318 #[inline]
16319 pub fn set_IoQoSPriorityBoosted(&mut self, val: ULONG) {
16320 unsafe {
16321 let val: u32 = ::core::mem::transmute(val);
16322 self._bitfield_1.set(2usize, 1u8, val as u64)
16323 }
16324 }
16325 #[inline]
16326 pub unsafe fn IoQoSPriorityBoosted_raw(this: *const Self) -> ULONG {
16327 unsafe {
16328 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
16329 ::core::ptr::addr_of!((*this)._bitfield_1),
16330 2usize,
16331 1u8,
16332 ) as u32)
16333 }
16334 }
16335 #[inline]
16336 pub unsafe fn set_IoQoSPriorityBoosted_raw(this: *mut Self, val: ULONG) {
16337 unsafe {
16338 let val: u32 = ::core::mem::transmute(val);
16339 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
16340 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
16341 2usize,
16342 1u8,
16343 val as u64,
16344 )
16345 }
16346 }
16347 #[inline]
16348 pub fn OwnerCount(&self) -> ULONG {
16349 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
16350 }
16351 #[inline]
16352 pub fn set_OwnerCount(&mut self, val: ULONG) {
16353 unsafe {
16354 let val: u32 = ::core::mem::transmute(val);
16355 self._bitfield_1.set(3usize, 29u8, val as u64)
16356 }
16357 }
16358 #[inline]
16359 pub unsafe fn OwnerCount_raw(this: *const Self) -> ULONG {
16360 unsafe {
16361 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
16362 ::core::ptr::addr_of!((*this)._bitfield_1),
16363 3usize,
16364 29u8,
16365 ) as u32)
16366 }
16367 }
16368 #[inline]
16369 pub unsafe fn set_OwnerCount_raw(this: *mut Self, val: ULONG) {
16370 unsafe {
16371 let val: u32 = ::core::mem::transmute(val);
16372 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
16373 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
16374 3usize,
16375 29u8,
16376 val as u64,
16377 )
16378 }
16379 }
16380 #[inline]
16381 pub fn new_bitfield_1(
16382 IoPriorityBoosted: ULONG,
16383 OwnerReferenced: ULONG,
16384 IoQoSPriorityBoosted: ULONG,
16385 OwnerCount: ULONG,
16386 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
16387 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
16388 __bindgen_bitfield_unit.set(0usize, 1u8, {
16389 let IoPriorityBoosted: u32 = unsafe { ::core::mem::transmute(IoPriorityBoosted) };
16390 IoPriorityBoosted as u64
16391 });
16392 __bindgen_bitfield_unit.set(1usize, 1u8, {
16393 let OwnerReferenced: u32 = unsafe { ::core::mem::transmute(OwnerReferenced) };
16394 OwnerReferenced as u64
16395 });
16396 __bindgen_bitfield_unit.set(2usize, 1u8, {
16397 let IoQoSPriorityBoosted: u32 = unsafe { ::core::mem::transmute(IoQoSPriorityBoosted) };
16398 IoQoSPriorityBoosted as u64
16399 });
16400 __bindgen_bitfield_unit.set(3usize, 29u8, {
16401 let OwnerCount: u32 = unsafe { ::core::mem::transmute(OwnerCount) };
16402 OwnerCount as u64
16403 });
16404 __bindgen_bitfield_unit
16405 }
16406}
16407pub type OWNER_ENTRY = _OWNER_ENTRY;
16408pub type POWNER_ENTRY = *mut _OWNER_ENTRY;
16409#[repr(C)]
16410#[derive(Copy, Clone)]
16411pub struct _ERESOURCE {
16412 pub SystemResourcesList: LIST_ENTRY,
16413 pub OwnerTable: POWNER_ENTRY,
16414 pub ActiveCount: SHORT,
16415 pub __bindgen_anon_1: _ERESOURCE__bindgen_ty_1,
16416 pub SharedWaiters: PVOID,
16417 pub ExclusiveWaiters: PVOID,
16418 pub OwnerEntry: OWNER_ENTRY,
16419 pub ActiveEntries: ULONG,
16420 pub ContentionCount: ULONG,
16421 pub NumberOfSharedWaiters: ULONG,
16422 pub NumberOfExclusiveWaiters: ULONG,
16423 pub Reserved2: PVOID,
16424 pub __bindgen_anon_2: _ERESOURCE__bindgen_ty_2,
16425 pub SpinLock: KSPIN_LOCK,
16426}
16427#[repr(C)]
16428#[derive(Copy, Clone)]
16429pub union _ERESOURCE__bindgen_ty_1 {
16430 pub Flag: USHORT,
16431 pub __bindgen_anon_1: _ERESOURCE__bindgen_ty_1__bindgen_ty_1,
16432}
16433#[repr(C)]
16434#[derive(Debug, Copy, Clone)]
16435pub struct _ERESOURCE__bindgen_ty_1__bindgen_ty_1 {
16436 pub ReservedLowFlags: UCHAR,
16437 pub WaiterPriority: UCHAR,
16438}
16439#[repr(C)]
16440#[derive(Copy, Clone)]
16441pub union _ERESOURCE__bindgen_ty_2 {
16442 pub Address: PVOID,
16443 pub CreatorBackTraceIndex: ULONG_PTR,
16444}
16445pub type ERESOURCE = _ERESOURCE;
16446pub type PERESOURCE = *mut _ERESOURCE;
16447#[repr(C)]
16448#[derive(Debug, Copy, Clone)]
16449pub struct _RESOURCE_HASH_ENTRY {
16450 pub ListEntry: LIST_ENTRY,
16451 pub Address: PVOID,
16452 pub ContentionCount: ULONG,
16453 pub Number: ULONG,
16454}
16455pub type RESOURCE_HASH_ENTRY = _RESOURCE_HASH_ENTRY;
16456pub type PRESOURCE_HASH_ENTRY = *mut _RESOURCE_HASH_ENTRY;
16457#[repr(C)]
16458#[derive(Debug, Copy, Clone)]
16459pub struct _RESOURCE_PERFORMANCE_DATA {
16460 pub ActiveResourceCount: ULONG,
16461 pub TotalResourceCount: ULONG,
16462 pub ExclusiveAcquire: ULONG,
16463 pub SharedFirstLevel: ULONG,
16464 pub SharedSecondLevel: ULONG,
16465 pub StarveFirstLevel: ULONG,
16466 pub StarveSecondLevel: ULONG,
16467 pub WaitForExclusive: ULONG,
16468 pub OwnerTableExpands: ULONG,
16469 pub MaximumTableExpand: ULONG,
16470 pub HashTable: [LIST_ENTRY; 64usize],
16471}
16472pub type RESOURCE_PERFORMANCE_DATA = _RESOURCE_PERFORMANCE_DATA;
16473pub type PRESOURCE_PERFORMANCE_DATA = *mut _RESOURCE_PERFORMANCE_DATA;
16474unsafe extern "C" {
16475 pub fn ExInitializeResourceLite(Resource: PERESOURCE) -> NTSTATUS;
16476}
16477unsafe extern "C" {
16478 pub fn ExReinitializeResourceLite(Resource: PERESOURCE) -> NTSTATUS;
16479}
16480unsafe extern "C" {
16481 pub fn ExAcquireResourceSharedLite(Resource: PERESOURCE, Wait: BOOLEAN) -> BOOLEAN;
16482}
16483unsafe extern "C" {
16484 pub fn ExEnterCriticalRegionAndAcquireResourceShared(Resource: PERESOURCE) -> PVOID;
16485}
16486unsafe extern "C" {
16487 pub fn ExAcquireResourceExclusiveLite(Resource: PERESOURCE, Wait: BOOLEAN) -> BOOLEAN;
16488}
16489unsafe extern "C" {
16490 pub fn ExEnterCriticalRegionAndAcquireResourceExclusive(Resource: PERESOURCE) -> PVOID;
16491}
16492unsafe extern "C" {
16493 pub fn ExAcquireSharedStarveExclusive(Resource: PERESOURCE, Wait: BOOLEAN) -> BOOLEAN;
16494}
16495unsafe extern "C" {
16496 pub fn ExAcquireSharedWaitForExclusive(Resource: PERESOURCE, Wait: BOOLEAN) -> BOOLEAN;
16497}
16498unsafe extern "C" {
16499 pub fn ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(Resource: PERESOURCE) -> PVOID;
16500}
16501unsafe extern "C" {
16502 pub fn ExReleaseResourceLite(Resource: PERESOURCE);
16503}
16504unsafe extern "C" {
16505 pub fn ExReleaseResourceAndLeaveCriticalRegion(Resource: PERESOURCE);
16506}
16507unsafe extern "C" {
16508 pub fn ExReleaseResourceForThreadLite(Resource: PERESOURCE, ResourceThreadId: ERESOURCE_THREAD);
16509}
16510unsafe extern "C" {
16511 pub fn ExSetResourceOwnerPointer(Resource: PERESOURCE, OwnerPointer: PVOID);
16512}
16513unsafe extern "C" {
16514 pub fn ExSetResourceOwnerPointerEx(Resource: PERESOURCE, OwnerPointer: PVOID, Flags: ULONG);
16515}
16516unsafe extern "C" {
16517 pub fn ExConvertExclusiveToSharedLite(Resource: PERESOURCE);
16518}
16519unsafe extern "C" {
16520 pub fn ExDeleteResourceLite(Resource: PERESOURCE) -> NTSTATUS;
16521}
16522unsafe extern "C" {
16523 pub fn ExGetExclusiveWaiterCount(Resource: PERESOURCE) -> ULONG;
16524}
16525unsafe extern "C" {
16526 pub fn ExGetSharedWaiterCount(Resource: PERESOURCE) -> ULONG;
16527}
16528unsafe extern "C" {
16529 pub fn ExIsResourceAcquiredExclusiveLite(Resource: PERESOURCE) -> BOOLEAN;
16530}
16531unsafe extern "C" {
16532 pub fn ExIsResourceAcquiredSharedLite(Resource: PERESOURCE) -> ULONG;
16533}
16534#[repr(C)]
16535#[derive(Copy, Clone)]
16536pub struct _EX_RUNDOWN_REF {
16537 pub __bindgen_anon_1: _EX_RUNDOWN_REF__bindgen_ty_1,
16538}
16539#[repr(C)]
16540#[derive(Copy, Clone)]
16541pub union _EX_RUNDOWN_REF__bindgen_ty_1 {
16542 pub Count: ULONG_PTR,
16543 pub Ptr: PVOID,
16544}
16545pub type EX_RUNDOWN_REF = _EX_RUNDOWN_REF;
16546pub type PEX_RUNDOWN_REF = *mut _EX_RUNDOWN_REF;
16547#[repr(C)]
16548#[derive(Debug, Copy, Clone)]
16549pub struct _EX_RUNDOWN_REF_CACHE_AWARE {
16550 _unused: [u8; 0],
16551}
16552pub type PEX_RUNDOWN_REF_CACHE_AWARE = *mut _EX_RUNDOWN_REF_CACHE_AWARE;
16553unsafe extern "C" {
16554 pub fn ExGetPreviousMode() -> KPROCESSOR_MODE;
16555}
16556unsafe extern "C" {
16557 pub fn ExSetTimerResolution(DesiredTime: ULONG, SetResolution: BOOLEAN) -> ULONG;
16558}
16559unsafe extern "C" {
16560 pub fn ExQueryTimerResolution(MaximumTime: PULONG, MinimumTime: PULONG, CurrentTime: PULONG);
16561}
16562unsafe extern "C" {
16563 pub fn ExSystemTimeToLocalTime(SystemTime: PLARGE_INTEGER, LocalTime: PLARGE_INTEGER);
16564}
16565unsafe extern "C" {
16566 pub fn ExLocalTimeToSystemTime(LocalTime: PLARGE_INTEGER, SystemTime: PLARGE_INTEGER);
16567}
16568#[repr(C)]
16569#[derive(Debug, Copy, Clone)]
16570pub struct _EX_TIMER {
16571 _unused: [u8; 0],
16572}
16573pub type PEX_TIMER = *mut _EX_TIMER;
16574pub type EXT_CALLBACK =
16575::core::option::Option<unsafe extern "C" fn(Timer: PEX_TIMER, Context: PVOID)>;
16576pub type PEXT_CALLBACK = EXT_CALLBACK;
16577pub type EXT_DELETE_CALLBACK = ::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
16578pub type PEXT_DELETE_CALLBACK = EXT_DELETE_CALLBACK;
16579pub type PEXT_CANCEL_PARAMETERS = PVOID;
16580#[repr(C)]
16581#[derive(Debug, Copy, Clone)]
16582pub struct _EXT_DELETE_PARAMETERS {
16583 pub Version: ULONG,
16584 pub Reserved: ULONG,
16585 pub DeleteCallback: PEXT_DELETE_CALLBACK,
16586 pub DeleteContext: PVOID,
16587}
16588pub type EXT_DELETE_PARAMETERS = _EXT_DELETE_PARAMETERS;
16589pub type PEXT_DELETE_PARAMETERS = *mut _EXT_DELETE_PARAMETERS;
16590unsafe extern "C" {
16591 pub fn ExAllocateTimer(
16592 Callback: PEXT_CALLBACK,
16593 CallbackContext: PVOID,
16594 Attributes: ULONG,
16595 ) -> PEX_TIMER;
16596}
16597unsafe extern "C" {
16598 pub fn ExSetTimer(
16599 Timer: PEX_TIMER,
16600 DueTime: LONGLONG,
16601 Period: LONGLONG,
16602 Parameters: PEXT_SET_PARAMETERS,
16603 ) -> BOOLEAN;
16604}
16605unsafe extern "C" {
16606 pub fn ExCancelTimer(Timer: PEX_TIMER, Parameters: PEXT_CANCEL_PARAMETERS) -> BOOLEAN;
16607}
16608unsafe extern "C" {
16609 pub fn ExDeleteTimer(
16610 Timer: PEX_TIMER,
16611 Cancel: BOOLEAN,
16612 Wait: BOOLEAN,
16613 Parameters: PEXT_DELETE_PARAMETERS,
16614 ) -> BOOLEAN;
16615}
16616pub type CALLBACK_FUNCTION = ::core::option::Option<
16617 unsafe extern "C" fn(CallbackContext: PVOID, Argument1: PVOID, Argument2: PVOID),
16618>;
16619pub type PCALLBACK_FUNCTION = CALLBACK_FUNCTION;
16620unsafe extern "C" {
16621 pub fn ExCreateCallback(
16622 CallbackObject: *mut PCALLBACK_OBJECT,
16623 ObjectAttributes: POBJECT_ATTRIBUTES,
16624 Create: BOOLEAN,
16625 AllowMultipleCallbacks: BOOLEAN,
16626 ) -> NTSTATUS;
16627}
16628unsafe extern "C" {
16629 pub fn ExRegisterCallback(
16630 CallbackObject: PCALLBACK_OBJECT,
16631 CallbackFunction: PCALLBACK_FUNCTION,
16632 CallbackContext: PVOID,
16633 ) -> PVOID;
16634}
16635unsafe extern "C" {
16636 pub fn ExUnregisterCallback(CallbackRegistration: PVOID);
16637}
16638unsafe extern "C" {
16639 pub fn ExNotifyCallback(CallbackObject: PVOID, Argument1: PVOID, Argument2: PVOID);
16640}
16641unsafe extern "C" {
16642 pub fn ExVerifySuite(SuiteType: SUITE_TYPE) -> BOOLEAN;
16643}
16644unsafe extern "C" {
16645 pub fn ExInitializeRundownProtection(RunRef: PEX_RUNDOWN_REF);
16646}
16647unsafe extern "C" {
16648 pub fn ExReInitializeRundownProtection(RunRef: PEX_RUNDOWN_REF);
16649}
16650unsafe extern "C" {
16651 pub fn ExAcquireRundownProtection(RunRef: PEX_RUNDOWN_REF) -> BOOLEAN;
16652}
16653unsafe extern "C" {
16654 pub fn ExAcquireRundownProtectionEx(RunRef: PEX_RUNDOWN_REF, Count: ULONG) -> BOOLEAN;
16655}
16656unsafe extern "C" {
16657 pub fn ExReleaseRundownProtection(RunRef: PEX_RUNDOWN_REF);
16658}
16659unsafe extern "C" {
16660 pub fn ExReleaseRundownProtectionEx(RunRef: PEX_RUNDOWN_REF, Count: ULONG);
16661}
16662unsafe extern "C" {
16663 pub fn ExRundownCompleted(RunRef: PEX_RUNDOWN_REF);
16664}
16665unsafe extern "C" {
16666 pub fn ExWaitForRundownProtectionRelease(RunRef: PEX_RUNDOWN_REF);
16667}
16668unsafe extern "C" {
16669 pub fn ExAllocateCacheAwareRundownProtection(
16670 PoolType: POOL_TYPE,
16671 PoolTag: ULONG,
16672 ) -> PEX_RUNDOWN_REF_CACHE_AWARE;
16673}
16674unsafe extern "C" {
16675 pub fn ExSizeOfRundownProtectionCacheAware() -> SIZE_T;
16676}
16677unsafe extern "C" {
16678 pub fn ExInitializeRundownProtectionCacheAware(
16679 RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE,
16680 RunRefSize: SIZE_T,
16681 );
16682}
16683unsafe extern "C" {
16684 pub fn ExFreeCacheAwareRundownProtection(RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE);
16685}
16686unsafe extern "C" {
16687 pub fn ExAcquireRundownProtectionCacheAware(
16688 RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE,
16689 ) -> BOOLEAN;
16690}
16691unsafe extern "C" {
16692 pub fn ExReleaseRundownProtectionCacheAware(RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE);
16693}
16694unsafe extern "C" {
16695 pub fn ExAcquireRundownProtectionCacheAwareEx(
16696 RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE,
16697 Count: ULONG,
16698 ) -> BOOLEAN;
16699}
16700unsafe extern "C" {
16701 pub fn ExReleaseRundownProtectionCacheAwareEx(
16702 RunRef: PEX_RUNDOWN_REF_CACHE_AWARE,
16703 Count: ULONG,
16704 );
16705}
16706unsafe extern "C" {
16707 pub fn ExWaitForRundownProtectionReleaseCacheAware(RunRef: PEX_RUNDOWN_REF_CACHE_AWARE);
16708}
16709unsafe extern "C" {
16710 pub fn ExReInitializeRundownProtectionCacheAware(RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE);
16711}
16712unsafe extern "C" {
16713 pub fn ExRundownCompletedCacheAware(RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE);
16714}
16715unsafe extern "C" {
16716 pub fn ExInitializeRundownProtectionCacheAwareEx(
16717 RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE,
16718 Flags: ULONG,
16719 );
16720}
16721unsafe extern "C" {
16722 pub fn ExCleanupRundownProtectionCacheAware(RunRefCacheAware: PEX_RUNDOWN_REF_CACHE_AWARE);
16723}
16724unsafe extern "C" {
16725 pub fn ExInitializePushLock(PushLock: PULONG_PTR);
16726}
16727unsafe extern "C" {
16728 pub fn ExAcquirePushLockExclusiveEx(PushLock: PULONG_PTR, Flags: ULONG);
16729}
16730unsafe extern "C" {
16731 pub fn ExAcquirePushLockSharedEx(PushLock: PULONG_PTR, Flags: ULONG);
16732}
16733unsafe extern "C" {
16734 pub fn ExReleasePushLockExclusiveEx(PushLock: PULONG_PTR, Flags: ULONG);
16735}
16736unsafe extern "C" {
16737 pub fn ExReleasePushLockSharedEx(PushLock: PULONG_PTR, Flags: ULONG);
16738}
16739unsafe extern "C" {
16740 pub fn ExInitializeDeviceAts(
16741 PhysicalDeviceObject: *mut __BindgenOpaqueArray<u8, 0usize>,
16742 Flags: ULONG,
16743 ) -> NTSTATUS;
16744}
16745pub type EX_SPIN_LOCK = LONG;
16746pub type PEX_SPIN_LOCK = *mut LONG;
16747unsafe extern "C" {
16748 pub fn ExAcquireSpinLockSharedAtDpcLevel(SpinLock: PEX_SPIN_LOCK);
16749}
16750unsafe extern "C" {
16751 pub fn ExAcquireSpinLockShared(SpinLock: PEX_SPIN_LOCK) -> KIRQL;
16752}
16753unsafe extern "C" {
16754 pub fn ExReleaseSpinLockSharedFromDpcLevel(SpinLock: PEX_SPIN_LOCK);
16755}
16756unsafe extern "C" {
16757 pub fn ExReleaseSpinLockShared(SpinLock: PEX_SPIN_LOCK, OldIrql: KIRQL);
16758}
16759unsafe extern "C" {
16760 pub fn ExTryConvertSharedSpinLockExclusive(SpinLock: PEX_SPIN_LOCK) -> LOGICAL;
16761}
16762unsafe extern "C" {
16763 pub fn ExAcquireSpinLockExclusiveAtDpcLevel(SpinLock: PEX_SPIN_LOCK);
16764}
16765unsafe extern "C" {
16766 pub fn ExAcquireSpinLockExclusive(SpinLock: PEX_SPIN_LOCK) -> KIRQL;
16767}
16768unsafe extern "C" {
16769 pub fn ExReleaseSpinLockExclusiveFromDpcLevel(SpinLock: PEX_SPIN_LOCK);
16770}
16771unsafe extern "C" {
16772 pub fn ExReleaseSpinLockExclusive(SpinLock: PEX_SPIN_LOCK, OldIrql: KIRQL);
16773}
16774unsafe extern "C" {
16775 pub fn ExTryAcquireSpinLockSharedAtDpcLevel(SpinLock: PEX_SPIN_LOCK) -> LOGICAL;
16776}
16777unsafe extern "C" {
16778 pub fn ExTryAcquireSpinLockExclusiveAtDpcLevel(SpinLock: PEX_SPIN_LOCK) -> LOGICAL;
16779}
16780pub type EX_CALLBACK_FUNCTION = ::core::option::Option<
16781 unsafe extern "C" fn(CallbackContext: PVOID, Argument1: PVOID, Argument2: PVOID) -> NTSTATUS,
16782>;
16783pub type PEX_CALLBACK_FUNCTION = EX_CALLBACK_FUNCTION;
16784unsafe extern "C" {
16785 pub fn ExGetFirmwareEnvironmentVariable(
16786 VariableName: PUNICODE_STRING,
16787 VendorGuid: LPGUID,
16788 Value: PVOID,
16789 ValueLength: PULONG,
16790 Attributes: PULONG,
16791 ) -> NTSTATUS;
16792}
16793unsafe extern "C" {
16794 pub fn ExSetFirmwareEnvironmentVariable(
16795 VariableName: PUNICODE_STRING,
16796 VendorGuid: LPGUID,
16797 Value: PVOID,
16798 ValueLength: ULONG,
16799 Attributes: ULONG,
16800 ) -> NTSTATUS;
16801}
16802unsafe extern "C" {
16803 pub fn ExIsManufacturingModeEnabled() -> BOOLEAN;
16804}
16805unsafe extern "C" {
16806 pub fn ExIsSoftBoot() -> BOOLEAN;
16807}
16808unsafe extern "C" {
16809 pub fn ExGetFirmwareType() -> FIRMWARE_TYPE;
16810}
16811unsafe extern "C" {
16812 pub fn ExEnumerateSystemFirmwareTables(
16813 FirmwareTableProviderSignature: ULONG,
16814 FirmwareTableBuffer: PVOID,
16815 BufferLength: ULONG,
16816 ReturnLength: PULONG,
16817 ) -> NTSTATUS;
16818}
16819unsafe extern "C" {
16820 pub fn ExGetSystemFirmwareTable(
16821 FirmwareTableProviderSignature: ULONG,
16822 FirmwareTableID: ULONG,
16823 FirmwareTableBuffer: PVOID,
16824 BufferLength: ULONG,
16825 ReturnLength: PULONG,
16826 ) -> NTSTATUS;
16827}
16828pub const _REG_NOTIFY_CLASS_RegNtDeleteKey: _REG_NOTIFY_CLASS = 0;
16829pub const _REG_NOTIFY_CLASS_RegNtPreDeleteKey: _REG_NOTIFY_CLASS = 0;
16830pub const _REG_NOTIFY_CLASS_RegNtSetValueKey: _REG_NOTIFY_CLASS = 1;
16831pub const _REG_NOTIFY_CLASS_RegNtPreSetValueKey: _REG_NOTIFY_CLASS = 1;
16832pub const _REG_NOTIFY_CLASS_RegNtDeleteValueKey: _REG_NOTIFY_CLASS = 2;
16833pub const _REG_NOTIFY_CLASS_RegNtPreDeleteValueKey: _REG_NOTIFY_CLASS = 2;
16834pub const _REG_NOTIFY_CLASS_RegNtSetInformationKey: _REG_NOTIFY_CLASS = 3;
16835pub const _REG_NOTIFY_CLASS_RegNtPreSetInformationKey: _REG_NOTIFY_CLASS = 3;
16836pub const _REG_NOTIFY_CLASS_RegNtRenameKey: _REG_NOTIFY_CLASS = 4;
16837pub const _REG_NOTIFY_CLASS_RegNtPreRenameKey: _REG_NOTIFY_CLASS = 4;
16838pub const _REG_NOTIFY_CLASS_RegNtEnumerateKey: _REG_NOTIFY_CLASS = 5;
16839pub const _REG_NOTIFY_CLASS_RegNtPreEnumerateKey: _REG_NOTIFY_CLASS = 5;
16840pub const _REG_NOTIFY_CLASS_RegNtEnumerateValueKey: _REG_NOTIFY_CLASS = 6;
16841pub const _REG_NOTIFY_CLASS_RegNtPreEnumerateValueKey: _REG_NOTIFY_CLASS = 6;
16842pub const _REG_NOTIFY_CLASS_RegNtQueryKey: _REG_NOTIFY_CLASS = 7;
16843pub const _REG_NOTIFY_CLASS_RegNtPreQueryKey: _REG_NOTIFY_CLASS = 7;
16844pub const _REG_NOTIFY_CLASS_RegNtQueryValueKey: _REG_NOTIFY_CLASS = 8;
16845pub const _REG_NOTIFY_CLASS_RegNtPreQueryValueKey: _REG_NOTIFY_CLASS = 8;
16846pub const _REG_NOTIFY_CLASS_RegNtQueryMultipleValueKey: _REG_NOTIFY_CLASS = 9;
16847pub const _REG_NOTIFY_CLASS_RegNtPreQueryMultipleValueKey: _REG_NOTIFY_CLASS = 9;
16848pub const _REG_NOTIFY_CLASS_RegNtPreCreateKey: _REG_NOTIFY_CLASS = 10;
16849pub const _REG_NOTIFY_CLASS_RegNtPostCreateKey: _REG_NOTIFY_CLASS = 11;
16850pub const _REG_NOTIFY_CLASS_RegNtPreOpenKey: _REG_NOTIFY_CLASS = 12;
16851pub const _REG_NOTIFY_CLASS_RegNtPostOpenKey: _REG_NOTIFY_CLASS = 13;
16852pub const _REG_NOTIFY_CLASS_RegNtKeyHandleClose: _REG_NOTIFY_CLASS = 14;
16853pub const _REG_NOTIFY_CLASS_RegNtPreKeyHandleClose: _REG_NOTIFY_CLASS = 14;
16854pub const _REG_NOTIFY_CLASS_RegNtPostDeleteKey: _REG_NOTIFY_CLASS = 15;
16855pub const _REG_NOTIFY_CLASS_RegNtPostSetValueKey: _REG_NOTIFY_CLASS = 16;
16856pub const _REG_NOTIFY_CLASS_RegNtPostDeleteValueKey: _REG_NOTIFY_CLASS = 17;
16857pub const _REG_NOTIFY_CLASS_RegNtPostSetInformationKey: _REG_NOTIFY_CLASS = 18;
16858pub const _REG_NOTIFY_CLASS_RegNtPostRenameKey: _REG_NOTIFY_CLASS = 19;
16859pub const _REG_NOTIFY_CLASS_RegNtPostEnumerateKey: _REG_NOTIFY_CLASS = 20;
16860pub const _REG_NOTIFY_CLASS_RegNtPostEnumerateValueKey: _REG_NOTIFY_CLASS = 21;
16861pub const _REG_NOTIFY_CLASS_RegNtPostQueryKey: _REG_NOTIFY_CLASS = 22;
16862pub const _REG_NOTIFY_CLASS_RegNtPostQueryValueKey: _REG_NOTIFY_CLASS = 23;
16863pub const _REG_NOTIFY_CLASS_RegNtPostQueryMultipleValueKey: _REG_NOTIFY_CLASS = 24;
16864pub const _REG_NOTIFY_CLASS_RegNtPostKeyHandleClose: _REG_NOTIFY_CLASS = 25;
16865pub const _REG_NOTIFY_CLASS_RegNtPreCreateKeyEx: _REG_NOTIFY_CLASS = 26;
16866pub const _REG_NOTIFY_CLASS_RegNtPostCreateKeyEx: _REG_NOTIFY_CLASS = 27;
16867pub const _REG_NOTIFY_CLASS_RegNtPreOpenKeyEx: _REG_NOTIFY_CLASS = 28;
16868pub const _REG_NOTIFY_CLASS_RegNtPostOpenKeyEx: _REG_NOTIFY_CLASS = 29;
16869pub const _REG_NOTIFY_CLASS_RegNtPreFlushKey: _REG_NOTIFY_CLASS = 30;
16870pub const _REG_NOTIFY_CLASS_RegNtPostFlushKey: _REG_NOTIFY_CLASS = 31;
16871pub const _REG_NOTIFY_CLASS_RegNtPreLoadKey: _REG_NOTIFY_CLASS = 32;
16872pub const _REG_NOTIFY_CLASS_RegNtPostLoadKey: _REG_NOTIFY_CLASS = 33;
16873pub const _REG_NOTIFY_CLASS_RegNtPreUnLoadKey: _REG_NOTIFY_CLASS = 34;
16874pub const _REG_NOTIFY_CLASS_RegNtPostUnLoadKey: _REG_NOTIFY_CLASS = 35;
16875pub const _REG_NOTIFY_CLASS_RegNtPreQueryKeySecurity: _REG_NOTIFY_CLASS = 36;
16876pub const _REG_NOTIFY_CLASS_RegNtPostQueryKeySecurity: _REG_NOTIFY_CLASS = 37;
16877pub const _REG_NOTIFY_CLASS_RegNtPreSetKeySecurity: _REG_NOTIFY_CLASS = 38;
16878pub const _REG_NOTIFY_CLASS_RegNtPostSetKeySecurity: _REG_NOTIFY_CLASS = 39;
16879pub const _REG_NOTIFY_CLASS_RegNtCallbackObjectContextCleanup: _REG_NOTIFY_CLASS = 40;
16880pub const _REG_NOTIFY_CLASS_RegNtPreRestoreKey: _REG_NOTIFY_CLASS = 41;
16881pub const _REG_NOTIFY_CLASS_RegNtPostRestoreKey: _REG_NOTIFY_CLASS = 42;
16882pub const _REG_NOTIFY_CLASS_RegNtPreSaveKey: _REG_NOTIFY_CLASS = 43;
16883pub const _REG_NOTIFY_CLASS_RegNtPostSaveKey: _REG_NOTIFY_CLASS = 44;
16884pub const _REG_NOTIFY_CLASS_RegNtPreReplaceKey: _REG_NOTIFY_CLASS = 45;
16885pub const _REG_NOTIFY_CLASS_RegNtPostReplaceKey: _REG_NOTIFY_CLASS = 46;
16886pub const _REG_NOTIFY_CLASS_RegNtPreQueryKeyName: _REG_NOTIFY_CLASS = 47;
16887pub const _REG_NOTIFY_CLASS_RegNtPostQueryKeyName: _REG_NOTIFY_CLASS = 48;
16888pub const _REG_NOTIFY_CLASS_RegNtPreSaveMergedKey: _REG_NOTIFY_CLASS = 49;
16889pub const _REG_NOTIFY_CLASS_RegNtPostSaveMergedKey: _REG_NOTIFY_CLASS = 50;
16890pub const _REG_NOTIFY_CLASS_MaxRegNtNotifyClass: _REG_NOTIFY_CLASS = 51;
16891pub type _REG_NOTIFY_CLASS = core::ffi::c_int;
16892pub use self::_REG_NOTIFY_CLASS as REG_NOTIFY_CLASS;
16893#[repr(C)]
16894#[derive(Debug, Copy, Clone)]
16895pub struct _REG_DELETE_KEY_INFORMATION {
16896 pub Object: PVOID,
16897 pub CallContext: PVOID,
16898 pub ObjectContext: PVOID,
16899 pub Reserved: PVOID,
16900}
16901pub type REG_DELETE_KEY_INFORMATION = _REG_DELETE_KEY_INFORMATION;
16902pub type PREG_DELETE_KEY_INFORMATION = *mut _REG_DELETE_KEY_INFORMATION;
16903pub type REG_FLUSH_KEY_INFORMATION = _REG_DELETE_KEY_INFORMATION;
16904pub type PREG_FLUSH_KEY_INFORMATION = *mut _REG_DELETE_KEY_INFORMATION;
16905#[repr(C)]
16906#[derive(Debug, Copy, Clone)]
16907pub struct _REG_SET_VALUE_KEY_INFORMATION {
16908 pub Object: PVOID,
16909 pub ValueName: PUNICODE_STRING,
16910 pub TitleIndex: ULONG,
16911 pub Type: ULONG,
16912 pub Data: PVOID,
16913 pub DataSize: ULONG,
16914 pub CallContext: PVOID,
16915 pub ObjectContext: PVOID,
16916 pub Reserved: PVOID,
16917}
16918pub type REG_SET_VALUE_KEY_INFORMATION = _REG_SET_VALUE_KEY_INFORMATION;
16919pub type PREG_SET_VALUE_KEY_INFORMATION = *mut _REG_SET_VALUE_KEY_INFORMATION;
16920#[repr(C)]
16921#[derive(Debug, Copy, Clone)]
16922pub struct _REG_DELETE_VALUE_KEY_INFORMATION {
16923 pub Object: PVOID,
16924 pub ValueName: PUNICODE_STRING,
16925 pub CallContext: PVOID,
16926 pub ObjectContext: PVOID,
16927 pub Reserved: PVOID,
16928}
16929pub type REG_DELETE_VALUE_KEY_INFORMATION = _REG_DELETE_VALUE_KEY_INFORMATION;
16930pub type PREG_DELETE_VALUE_KEY_INFORMATION = *mut _REG_DELETE_VALUE_KEY_INFORMATION;
16931#[repr(C)]
16932#[derive(Debug, Copy, Clone)]
16933pub struct _REG_SET_INFORMATION_KEY_INFORMATION {
16934 pub Object: PVOID,
16935 pub KeySetInformationClass: KEY_SET_INFORMATION_CLASS,
16936 pub KeySetInformation: PVOID,
16937 pub KeySetInformationLength: ULONG,
16938 pub CallContext: PVOID,
16939 pub ObjectContext: PVOID,
16940 pub Reserved: PVOID,
16941}
16942pub type REG_SET_INFORMATION_KEY_INFORMATION = _REG_SET_INFORMATION_KEY_INFORMATION;
16943pub type PREG_SET_INFORMATION_KEY_INFORMATION = *mut _REG_SET_INFORMATION_KEY_INFORMATION;
16944#[repr(C)]
16945#[derive(Debug, Copy, Clone)]
16946pub struct _REG_ENUMERATE_KEY_INFORMATION {
16947 pub Object: PVOID,
16948 pub Index: ULONG,
16949 pub KeyInformationClass: KEY_INFORMATION_CLASS,
16950 pub KeyInformation: PVOID,
16951 pub Length: ULONG,
16952 pub ResultLength: PULONG,
16953 pub CallContext: PVOID,
16954 pub ObjectContext: PVOID,
16955 pub Reserved: PVOID,
16956}
16957pub type REG_ENUMERATE_KEY_INFORMATION = _REG_ENUMERATE_KEY_INFORMATION;
16958pub type PREG_ENUMERATE_KEY_INFORMATION = *mut _REG_ENUMERATE_KEY_INFORMATION;
16959#[repr(C)]
16960#[derive(Debug, Copy, Clone)]
16961pub struct _REG_ENUMERATE_VALUE_KEY_INFORMATION {
16962 pub Object: PVOID,
16963 pub Index: ULONG,
16964 pub KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS,
16965 pub KeyValueInformation: PVOID,
16966 pub Length: ULONG,
16967 pub ResultLength: PULONG,
16968 pub CallContext: PVOID,
16969 pub ObjectContext: PVOID,
16970 pub Reserved: PVOID,
16971}
16972pub type REG_ENUMERATE_VALUE_KEY_INFORMATION = _REG_ENUMERATE_VALUE_KEY_INFORMATION;
16973pub type PREG_ENUMERATE_VALUE_KEY_INFORMATION = *mut _REG_ENUMERATE_VALUE_KEY_INFORMATION;
16974#[repr(C)]
16975#[derive(Debug, Copy, Clone)]
16976pub struct _REG_QUERY_KEY_INFORMATION {
16977 pub Object: PVOID,
16978 pub KeyInformationClass: KEY_INFORMATION_CLASS,
16979 pub KeyInformation: PVOID,
16980 pub Length: ULONG,
16981 pub ResultLength: PULONG,
16982 pub CallContext: PVOID,
16983 pub ObjectContext: PVOID,
16984 pub Reserved: PVOID,
16985}
16986pub type REG_QUERY_KEY_INFORMATION = _REG_QUERY_KEY_INFORMATION;
16987pub type PREG_QUERY_KEY_INFORMATION = *mut _REG_QUERY_KEY_INFORMATION;
16988#[repr(C)]
16989#[derive(Debug, Copy, Clone)]
16990pub struct _REG_QUERY_VALUE_KEY_INFORMATION {
16991 pub Object: PVOID,
16992 pub ValueName: PUNICODE_STRING,
16993 pub KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS,
16994 pub KeyValueInformation: PVOID,
16995 pub Length: ULONG,
16996 pub ResultLength: PULONG,
16997 pub CallContext: PVOID,
16998 pub ObjectContext: PVOID,
16999 pub Reserved: PVOID,
17000}
17001pub type REG_QUERY_VALUE_KEY_INFORMATION = _REG_QUERY_VALUE_KEY_INFORMATION;
17002pub type PREG_QUERY_VALUE_KEY_INFORMATION = *mut _REG_QUERY_VALUE_KEY_INFORMATION;
17003#[repr(C)]
17004#[derive(Debug, Copy, Clone)]
17005pub struct _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION {
17006 pub Object: PVOID,
17007 pub ValueEntries: PKEY_VALUE_ENTRY,
17008 pub EntryCount: ULONG,
17009 pub ValueBuffer: PVOID,
17010 pub BufferLength: PULONG,
17011 pub RequiredBufferLength: PULONG,
17012 pub CallContext: PVOID,
17013 pub ObjectContext: PVOID,
17014 pub Reserved: PVOID,
17015}
17016pub type REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION = _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
17017pub type PREG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION = *mut _REG_QUERY_MULTIPLE_VALUE_KEY_INFORMATION;
17018#[repr(C)]
17019#[derive(Debug, Copy, Clone)]
17020pub struct _REG_RENAME_KEY_INFORMATION {
17021 pub Object: PVOID,
17022 pub NewName: PUNICODE_STRING,
17023 pub CallContext: PVOID,
17024 pub ObjectContext: PVOID,
17025 pub Reserved: PVOID,
17026}
17027pub type REG_RENAME_KEY_INFORMATION = _REG_RENAME_KEY_INFORMATION;
17028pub type PREG_RENAME_KEY_INFORMATION = *mut _REG_RENAME_KEY_INFORMATION;
17029#[repr(C)]
17030#[derive(Debug, Copy, Clone)]
17031pub struct _REG_KEY_HANDLE_CLOSE_INFORMATION {
17032 pub Object: PVOID,
17033 pub CallContext: PVOID,
17034 pub ObjectContext: PVOID,
17035 pub Reserved: PVOID,
17036}
17037pub type REG_KEY_HANDLE_CLOSE_INFORMATION = _REG_KEY_HANDLE_CLOSE_INFORMATION;
17038pub type PREG_KEY_HANDLE_CLOSE_INFORMATION = *mut _REG_KEY_HANDLE_CLOSE_INFORMATION;
17039#[repr(C)]
17040#[derive(Debug, Copy, Clone)]
17041pub struct _REG_CREATE_KEY_INFORMATION {
17042 pub CompleteName: PUNICODE_STRING,
17043 pub RootObject: PVOID,
17044 pub ObjectType: PVOID,
17045 pub CreateOptions: ULONG,
17046 pub Class: PUNICODE_STRING,
17047 pub SecurityDescriptor: PVOID,
17048 pub SecurityQualityOfService: PVOID,
17049 pub DesiredAccess: ACCESS_MASK,
17050 pub GrantedAccess: ACCESS_MASK,
17051 pub Disposition: PULONG,
17052 pub ResultObject: *mut PVOID,
17053 pub CallContext: PVOID,
17054 pub RootObjectContext: PVOID,
17055 pub Transaction: PVOID,
17056 pub Reserved: PVOID,
17057}
17058pub type REG_CREATE_KEY_INFORMATION = _REG_CREATE_KEY_INFORMATION;
17059pub type REG_OPEN_KEY_INFORMATION = _REG_CREATE_KEY_INFORMATION;
17060pub type PREG_CREATE_KEY_INFORMATION = *mut _REG_CREATE_KEY_INFORMATION;
17061pub type PREG_OPEN_KEY_INFORMATION = *mut _REG_CREATE_KEY_INFORMATION;
17062#[repr(C)]
17063#[derive(Debug, Copy, Clone)]
17064pub struct _REG_CREATE_KEY_INFORMATION_V1 {
17065 pub CompleteName: PUNICODE_STRING,
17066 pub RootObject: PVOID,
17067 pub ObjectType: PVOID,
17068 pub Options: ULONG,
17069 pub Class: PUNICODE_STRING,
17070 pub SecurityDescriptor: PVOID,
17071 pub SecurityQualityOfService: PVOID,
17072 pub DesiredAccess: ACCESS_MASK,
17073 pub GrantedAccess: ACCESS_MASK,
17074 pub Disposition: PULONG,
17075 pub ResultObject: *mut PVOID,
17076 pub CallContext: PVOID,
17077 pub RootObjectContext: PVOID,
17078 pub Transaction: PVOID,
17079 pub Version: ULONG_PTR,
17080 pub RemainingName: PUNICODE_STRING,
17081 pub Wow64Flags: ULONG,
17082 pub Attributes: ULONG,
17083 pub CheckAccessMode: KPROCESSOR_MODE,
17084}
17085pub type REG_CREATE_KEY_INFORMATION_V1 = _REG_CREATE_KEY_INFORMATION_V1;
17086pub type REG_OPEN_KEY_INFORMATION_V1 = _REG_CREATE_KEY_INFORMATION_V1;
17087pub type PREG_CREATE_KEY_INFORMATION_V1 = *mut _REG_CREATE_KEY_INFORMATION_V1;
17088pub type PREG_OPEN_KEY_INFORMATION_V1 = *mut _REG_CREATE_KEY_INFORMATION_V1;
17089#[repr(C)]
17090#[derive(Debug, Copy, Clone)]
17091pub struct _REG_POST_OPERATION_INFORMATION {
17092 pub Object: PVOID,
17093 pub Status: NTSTATUS,
17094 pub PreInformation: PVOID,
17095 pub ReturnStatus: NTSTATUS,
17096 pub CallContext: PVOID,
17097 pub ObjectContext: PVOID,
17098 pub Reserved: PVOID,
17099}
17100pub type REG_POST_OPERATION_INFORMATION = _REG_POST_OPERATION_INFORMATION;
17101pub type PREG_POST_OPERATION_INFORMATION = *mut _REG_POST_OPERATION_INFORMATION;
17102#[repr(C)]
17103#[derive(Debug, Copy, Clone)]
17104pub struct _REG_PRE_CREATE_KEY_INFORMATION {
17105 pub CompleteName: PUNICODE_STRING,
17106}
17107pub type REG_PRE_CREATE_KEY_INFORMATION = _REG_PRE_CREATE_KEY_INFORMATION;
17108pub type REG_PRE_OPEN_KEY_INFORMATION = _REG_PRE_CREATE_KEY_INFORMATION;
17109pub type PREG_PRE_CREATE_KEY_INFORMATION = *mut _REG_PRE_CREATE_KEY_INFORMATION;
17110pub type PREG_PRE_OPEN_KEY_INFORMATION = *mut _REG_PRE_CREATE_KEY_INFORMATION;
17111#[repr(C)]
17112#[derive(Debug, Copy, Clone)]
17113pub struct _REG_POST_CREATE_KEY_INFORMATION {
17114 pub CompleteName: PUNICODE_STRING,
17115 pub Object: PVOID,
17116 pub Status: NTSTATUS,
17117}
17118pub type REG_POST_CREATE_KEY_INFORMATION = _REG_POST_CREATE_KEY_INFORMATION;
17119pub type REG_POST_OPEN_KEY_INFORMATION = _REG_POST_CREATE_KEY_INFORMATION;
17120pub type PREG_POST_CREATE_KEY_INFORMATION = *mut _REG_POST_CREATE_KEY_INFORMATION;
17121pub type PREG_POST_OPEN_KEY_INFORMATION = *mut _REG_POST_CREATE_KEY_INFORMATION;
17122#[repr(C)]
17123#[derive(Debug, Copy, Clone)]
17124pub struct _REG_LOAD_KEY_INFORMATION {
17125 pub Object: PVOID,
17126 pub KeyName: PUNICODE_STRING,
17127 pub SourceFile: PUNICODE_STRING,
17128 pub Flags: ULONG,
17129 pub TrustClassObject: PVOID,
17130 pub UserEvent: PVOID,
17131 pub DesiredAccess: ACCESS_MASK,
17132 pub RootHandle: PHANDLE,
17133 pub CallContext: PVOID,
17134 pub ObjectContext: PVOID,
17135 pub Reserved: PVOID,
17136}
17137pub type REG_LOAD_KEY_INFORMATION = _REG_LOAD_KEY_INFORMATION;
17138pub type PREG_LOAD_KEY_INFORMATION = *mut _REG_LOAD_KEY_INFORMATION;
17139#[repr(C)]
17140#[derive(Debug, Copy, Clone)]
17141pub struct _REG_UNLOAD_KEY_INFORMATION {
17142 pub Object: PVOID,
17143 pub UserEvent: PVOID,
17144 pub CallContext: PVOID,
17145 pub ObjectContext: PVOID,
17146 pub Reserved: PVOID,
17147}
17148pub type REG_UNLOAD_KEY_INFORMATION = _REG_UNLOAD_KEY_INFORMATION;
17149pub type PREG_UNLOAD_KEY_INFORMATION = *mut _REG_UNLOAD_KEY_INFORMATION;
17150#[repr(C)]
17151#[derive(Debug, Copy, Clone)]
17152pub struct _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION {
17153 pub Object: PVOID,
17154 pub ObjectContext: PVOID,
17155 pub Reserved: PVOID,
17156}
17157pub type REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION = _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION;
17158pub type PREG_CALLBACK_CONTEXT_CLEANUP_INFORMATION = *mut _REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION;
17159#[repr(C)]
17160#[derive(Debug, Copy, Clone)]
17161pub struct _REG_QUERY_KEY_SECURITY_INFORMATION {
17162 pub Object: PVOID,
17163 pub SecurityInformation: PSECURITY_INFORMATION,
17164 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
17165 pub Length: PULONG,
17166 pub CallContext: PVOID,
17167 pub ObjectContext: PVOID,
17168 pub Reserved: PVOID,
17169}
17170pub type REG_QUERY_KEY_SECURITY_INFORMATION = _REG_QUERY_KEY_SECURITY_INFORMATION;
17171pub type PREG_QUERY_KEY_SECURITY_INFORMATION = *mut _REG_QUERY_KEY_SECURITY_INFORMATION;
17172#[repr(C)]
17173#[derive(Debug, Copy, Clone)]
17174pub struct _REG_SET_KEY_SECURITY_INFORMATION {
17175 pub Object: PVOID,
17176 pub SecurityInformation: PSECURITY_INFORMATION,
17177 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
17178 pub CallContext: PVOID,
17179 pub ObjectContext: PVOID,
17180 pub Reserved: PVOID,
17181}
17182pub type REG_SET_KEY_SECURITY_INFORMATION = _REG_SET_KEY_SECURITY_INFORMATION;
17183pub type PREG_SET_KEY_SECURITY_INFORMATION = *mut _REG_SET_KEY_SECURITY_INFORMATION;
17184#[repr(C)]
17185#[derive(Debug, Copy, Clone)]
17186pub struct _REG_RESTORE_KEY_INFORMATION {
17187 pub Object: PVOID,
17188 pub FileHandle: HANDLE,
17189 pub Flags: ULONG,
17190 pub CallContext: PVOID,
17191 pub ObjectContext: PVOID,
17192 pub Reserved: PVOID,
17193}
17194pub type REG_RESTORE_KEY_INFORMATION = _REG_RESTORE_KEY_INFORMATION;
17195pub type PREG_RESTORE_KEY_INFORMATION = *mut _REG_RESTORE_KEY_INFORMATION;
17196#[repr(C)]
17197#[derive(Debug, Copy, Clone)]
17198pub struct _REG_SAVE_KEY_INFORMATION {
17199 pub Object: PVOID,
17200 pub FileHandle: HANDLE,
17201 pub Format: ULONG,
17202 pub CallContext: PVOID,
17203 pub ObjectContext: PVOID,
17204 pub Reserved: PVOID,
17205}
17206pub type REG_SAVE_KEY_INFORMATION = _REG_SAVE_KEY_INFORMATION;
17207pub type PREG_SAVE_KEY_INFORMATION = *mut _REG_SAVE_KEY_INFORMATION;
17208#[repr(C)]
17209#[derive(Debug, Copy, Clone)]
17210pub struct _REG_REPLACE_KEY_INFORMATION {
17211 pub Object: PVOID,
17212 pub OldFileName: PUNICODE_STRING,
17213 pub NewFileName: PUNICODE_STRING,
17214 pub CallContext: PVOID,
17215 pub ObjectContext: PVOID,
17216 pub Reserved: PVOID,
17217}
17218pub type REG_REPLACE_KEY_INFORMATION = _REG_REPLACE_KEY_INFORMATION;
17219pub type PREG_REPLACE_KEY_INFORMATION = *mut _REG_REPLACE_KEY_INFORMATION;
17220#[repr(C)]
17221#[derive(Debug, Copy, Clone)]
17222pub struct _REG_QUERY_KEY_NAME {
17223 pub Object: PVOID,
17224 pub ObjectNameInfo: POBJECT_NAME_INFORMATION,
17225 pub Length: ULONG,
17226 pub ReturnLength: PULONG,
17227 pub CallContext: PVOID,
17228 pub ObjectContext: PVOID,
17229 pub Reserved: PVOID,
17230}
17231pub type REG_QUERY_KEY_NAME = _REG_QUERY_KEY_NAME;
17232pub type PREG_QUERY_KEY_NAME = *mut _REG_QUERY_KEY_NAME;
17233unsafe extern "C" {
17234 pub fn CmRegisterCallback(
17235 Function: PEX_CALLBACK_FUNCTION,
17236 Context: PVOID,
17237 Cookie: PLARGE_INTEGER,
17238 ) -> NTSTATUS;
17239}
17240unsafe extern "C" {
17241 pub fn CmUnRegisterCallback(Cookie: LARGE_INTEGER) -> NTSTATUS;
17242}
17243unsafe extern "C" {
17244 pub fn CmRegisterCallbackEx(
17245 Function: PEX_CALLBACK_FUNCTION,
17246 Altitude: PCUNICODE_STRING,
17247 Driver: PVOID,
17248 Context: PVOID,
17249 Cookie: PLARGE_INTEGER,
17250 Reserved: PVOID,
17251 ) -> NTSTATUS;
17252}
17253unsafe extern "C" {
17254 pub fn CmGetCallbackVersion(Major: PULONG, Minor: PULONG);
17255}
17256unsafe extern "C" {
17257 pub fn CmSetCallbackObjectContext(
17258 Object: PVOID,
17259 Cookie: PLARGE_INTEGER,
17260 NewContext: PVOID,
17261 OldContext: *mut PVOID,
17262 ) -> NTSTATUS;
17263}
17264unsafe extern "C" {
17265 pub fn CmCallbackGetKeyObjectID(
17266 Cookie: PLARGE_INTEGER,
17267 Object: PVOID,
17268 ObjectID: PULONG_PTR,
17269 ObjectName: *mut PCUNICODE_STRING,
17270 ) -> NTSTATUS;
17271}
17272unsafe extern "C" {
17273 pub fn CmGetBoundTransaction(Cookie: PLARGE_INTEGER, Object: PVOID) -> PVOID;
17274}
17275#[repr(C)]
17276#[derive(Debug, Copy, Clone)]
17277pub struct _REG_LOAD_KEY_INFORMATION_V2 {
17278 pub Object: PVOID,
17279 pub KeyName: PUNICODE_STRING,
17280 pub SourceFile: PUNICODE_STRING,
17281 pub Flags: ULONG,
17282 pub TrustClassObject: PVOID,
17283 pub UserEvent: PVOID,
17284 pub DesiredAccess: ACCESS_MASK,
17285 pub RootHandle: PHANDLE,
17286 pub CallContext: PVOID,
17287 pub ObjectContext: PVOID,
17288 pub Version: ULONG_PTR,
17289 pub FileAccessToken: PVOID,
17290}
17291pub type REG_LOAD_KEY_INFORMATION_V2 = _REG_LOAD_KEY_INFORMATION_V2;
17292pub type PREG_LOAD_KEY_INFORMATION_V2 = *mut _REG_LOAD_KEY_INFORMATION_V2;
17293unsafe extern "C" {
17294 pub fn CmCallbackGetKeyObjectIDEx(
17295 Cookie: PLARGE_INTEGER,
17296 Object: PVOID,
17297 ObjectID: PULONG_PTR,
17298 ObjectName: *mut PCUNICODE_STRING,
17299 Flags: ULONG,
17300 ) -> NTSTATUS;
17301}
17302unsafe extern "C" {
17303 pub fn CmCallbackReleaseKeyObjectIDEx(ObjectName: PCUNICODE_STRING);
17304}
17305#[repr(C)]
17306#[derive(Debug, Copy, Clone)]
17307pub struct _REG_SAVE_MERGED_KEY_INFORMATION {
17308 pub Object: PVOID,
17309 pub FileHandle: HANDLE,
17310 pub HighKeyObject: PVOID,
17311 pub LowKeyObject: PVOID,
17312 pub CallContext: PVOID,
17313 pub ObjectContext: PVOID,
17314 pub Reserved: PVOID,
17315}
17316pub type REG_SAVE_MERGED_KEY_INFORMATION = _REG_SAVE_MERGED_KEY_INFORMATION;
17317pub type PREG_SAVE_MERGED_KEY_INFORMATION = *mut _REG_SAVE_MERGED_KEY_INFORMATION;
17318unsafe extern "C" {
17319 pub static mut Mm64BitPhysicalAddress: PBOOLEAN;
17320}
17321unsafe extern "C" {
17322 pub static mut MmBadPointer: PVOID;
17323}
17324pub const _MM_SYSTEM_SIZE_MmSmallSystem: _MM_SYSTEM_SIZE = 0;
17325pub const _MM_SYSTEM_SIZE_MmMediumSystem: _MM_SYSTEM_SIZE = 1;
17326pub const _MM_SYSTEM_SIZE_MmLargeSystem: _MM_SYSTEM_SIZE = 2;
17327pub type _MM_SYSTEM_SIZE = core::ffi::c_int;
17328pub use self::_MM_SYSTEM_SIZE as MM_SYSTEMSIZE;
17329unsafe extern "C" {
17330 pub fn MmQuerySystemSize() -> MM_SYSTEMSIZE;
17331}
17332unsafe extern "C" {
17333 pub fn MmIsVerifierEnabled(VerifierFlags: PULONG) -> NTSTATUS;
17334}
17335unsafe extern "C" {
17336 pub fn MmAddVerifierThunks(ThunkBuffer: PVOID, ThunkBufferSize: ULONG) -> NTSTATUS;
17337}
17338unsafe extern "C" {
17339 pub fn MmAddVerifierSpecialThunks(
17340 EntryRoutine: ULONG_PTR,
17341 ThunkBuffer: PVOID,
17342 ThunkBufferSize: ULONG,
17343 ) -> NTSTATUS;
17344}
17345unsafe extern "C" {
17346 pub fn MmProbeAndLockSelectedPages(
17347 MemoryDescriptorList: PMDL,
17348 SegmentArray: PFILE_SEGMENT_ELEMENT,
17349 AccessMode: KPROCESSOR_MODE,
17350 Operation: LOCK_OPERATION,
17351 );
17352}
17353unsafe extern "C" {
17354 pub fn MmProbeAndLockProcessPages(
17355 MemoryDescriptorList: PMDL,
17356 Process: PEPROCESS,
17357 AccessMode: KPROCESSOR_MODE,
17358 Operation: LOCK_OPERATION,
17359 );
17360}
17361unsafe extern "C" {
17362 pub fn MmProbeAndLockPages(
17363 MemoryDescriptorList: PMDL,
17364 AccessMode: KPROCESSOR_MODE,
17365 Operation: LOCK_OPERATION,
17366 );
17367}
17368unsafe extern "C" {
17369 pub fn MmUnlockPages(MemoryDescriptorList: PMDL);
17370}
17371unsafe extern "C" {
17372 pub fn MmBuildMdlForNonPagedPool(MemoryDescriptorList: PMDL);
17373}
17374#[repr(C)]
17375#[derive(Copy, Clone)]
17376pub struct _MM_PHYSICAL_ADDRESS_LIST {
17377 pub PhysicalAddress: PHYSICAL_ADDRESS,
17378 pub NumberOfBytes: SIZE_T,
17379}
17380pub type MM_PHYSICAL_ADDRESS_LIST = _MM_PHYSICAL_ADDRESS_LIST;
17381pub type PMM_PHYSICAL_ADDRESS_LIST = *mut _MM_PHYSICAL_ADDRESS_LIST;
17382unsafe extern "C" {
17383 pub fn MmAllocateMdlForIoSpace(
17384 PhysicalAddressList: PMM_PHYSICAL_ADDRESS_LIST,
17385 NumberOfEntries: SIZE_T,
17386 NewMdl: *mut PMDL,
17387 ) -> NTSTATUS;
17388}
17389unsafe extern "C" {
17390 pub fn MmAreMdlPagesCached(MemoryDescriptorList: PMDL) -> LOGICAL;
17391}
17392unsafe extern "C" {
17393 pub fn MmSetPermanentCacheAttribute(
17394 StartAddress: PHYSICAL_ADDRESS,
17395 NumberOfBytes: LARGE_INTEGER,
17396 CacheType: MEMORY_CACHING_TYPE,
17397 Flags: ULONG,
17398 ) -> NTSTATUS;
17399}
17400unsafe extern "C" {
17401 pub fn MmMapLockedPages(MemoryDescriptorList: PMDL, AccessMode: KPROCESSOR_MODE) -> PVOID;
17402}
17403pub type MM_MDL_ROUTINE =
17404::core::option::Option<unsafe extern "C" fn(DriverContext: PVOID, MappedVa: PVOID)>;
17405pub type PMM_MDL_ROUTINE = MM_MDL_ROUTINE;
17406unsafe extern "C" {
17407 pub fn MmMapMdl(
17408 MemoryDescriptorList: PMDL,
17409 Protection: ULONG,
17410 DriverRoutine: PMM_MDL_ROUTINE,
17411 DriverContext: PVOID,
17412 ) -> NTSTATUS;
17413}
17414unsafe extern "C" {
17415 pub fn MmMapMemoryDumpMdlEx(
17416 Va: PVOID,
17417 PageTotal: PFN_NUMBER,
17418 MemoryDumpMdl: PMDL,
17419 Flags: ULONG,
17420 ) -> NTSTATUS;
17421}
17422unsafe extern "C" {
17423 pub fn MmIsIoSpaceActive(StartAddress: PHYSICAL_ADDRESS, NumberOfBytes: SIZE_T) -> LOGICAL;
17424}
17425pub type PMM_GET_SYSTEM_ROUTINE_ADDRESS_EX = ::core::option::Option<
17426 unsafe extern "C" fn(ModuleName: PUNICODE_STRING, FunctionName: PSTR) -> PVOID,
17427>;
17428unsafe extern "C" {
17429 pub fn MmAdvanceMdl(Mdl: PMDL, NumberOfBytes: ULONG) -> NTSTATUS;
17430}
17431unsafe extern "C" {
17432 pub fn MmProtectMdlSystemAddress(MemoryDescriptorList: PMDL, NewProtect: ULONG) -> NTSTATUS;
17433}
17434pub const _MM_PAGE_PRIORITY_LowPagePriority: _MM_PAGE_PRIORITY = 0;
17435pub const _MM_PAGE_PRIORITY_NormalPagePriority: _MM_PAGE_PRIORITY = 16;
17436pub const _MM_PAGE_PRIORITY_HighPagePriority: _MM_PAGE_PRIORITY = 32;
17437pub type _MM_PAGE_PRIORITY = core::ffi::c_int;
17438pub use self::_MM_PAGE_PRIORITY as MM_PAGE_PRIORITY;
17439unsafe extern "C" {
17440 pub fn MmMapLockedPagesSpecifyCache(
17441 MemoryDescriptorList: PMDL,
17442 AccessMode: KPROCESSOR_MODE,
17443 CacheType: MEMORY_CACHING_TYPE,
17444 RequestedAddress: PVOID,
17445 BugCheckOnFailure: ULONG,
17446 Priority: ULONG,
17447 ) -> PVOID;
17448}
17449unsafe extern "C" {
17450 pub fn MmUnmapLockedPages(BaseAddress: PVOID, MemoryDescriptorList: PMDL);
17451}
17452unsafe extern "C" {
17453 pub fn MmAllocateMappingAddressEx(NumberOfBytes: SIZE_T, PoolTag: ULONG, Flags: ULONG)
17454 -> PVOID;
17455}
17456unsafe extern "C" {
17457 pub fn MmAllocateMappingAddress(NumberOfBytes: SIZE_T, PoolTag: ULONG) -> PVOID;
17458}
17459unsafe extern "C" {
17460 pub fn MmFreeMappingAddress(BaseAddress: PVOID, PoolTag: ULONG);
17461}
17462unsafe extern "C" {
17463 pub fn MmMapLockedPagesWithReservedMapping(
17464 MappingAddress: PVOID,
17465 PoolTag: ULONG,
17466 MemoryDescriptorList: PMDL,
17467 CacheType: MEMORY_CACHING_TYPE,
17468 ) -> PVOID;
17469}
17470unsafe extern "C" {
17471 pub fn MmUnmapReservedMapping(BaseAddress: PVOID, PoolTag: ULONG, MemoryDescriptorList: PMDL);
17472}
17473unsafe extern "C" {
17474 pub fn MmAllocateNodePagesForMdlEx(
17475 LowAddress: PHYSICAL_ADDRESS,
17476 HighAddress: PHYSICAL_ADDRESS,
17477 SkipBytes: PHYSICAL_ADDRESS,
17478 TotalBytes: SIZE_T,
17479 CacheType: MEMORY_CACHING_TYPE,
17480 IdealNode: ULONG,
17481 Flags: ULONG,
17482 ) -> PMDL;
17483}
17484pub type MM_NODE_NUMBER_ZERO_BASED = ULONG;
17485pub type MM_NODE_NUMBER_ONE_BASED = ULONG;
17486unsafe extern "C" {
17487 pub fn MmAllocatePartitionNodePagesForMdlEx(
17488 LowAddress: PHYSICAL_ADDRESS,
17489 HighAddress: PHYSICAL_ADDRESS,
17490 SkipBytes: PHYSICAL_ADDRESS,
17491 TotalBytes: SIZE_T,
17492 CacheType: MEMORY_CACHING_TYPE,
17493 IdealNode: MM_NODE_NUMBER_ZERO_BASED,
17494 Flags: ULONG,
17495 PartitionObject: PVOID,
17496 ) -> PMDL;
17497}
17498unsafe extern "C" {
17499 pub fn MmAllocatePagesForMdlEx(
17500 LowAddress: PHYSICAL_ADDRESS,
17501 HighAddress: PHYSICAL_ADDRESS,
17502 SkipBytes: PHYSICAL_ADDRESS,
17503 TotalBytes: SIZE_T,
17504 CacheType: MEMORY_CACHING_TYPE,
17505 Flags: ULONG,
17506 ) -> PMDL;
17507}
17508unsafe extern "C" {
17509 pub fn MmAllocatePagesForMdl(
17510 LowAddress: PHYSICAL_ADDRESS,
17511 HighAddress: PHYSICAL_ADDRESS,
17512 SkipBytes: PHYSICAL_ADDRESS,
17513 TotalBytes: SIZE_T,
17514 ) -> PMDL;
17515}
17516unsafe extern "C" {
17517 pub fn MmFreePagesFromMdlEx(MemoryDescriptorList: PMDL, Flags: ULONG);
17518}
17519unsafe extern "C" {
17520 pub fn MmFreePagesFromMdl(MemoryDescriptorList: PMDL);
17521}
17522unsafe extern "C" {
17523 pub fn MmMapIoSpace(
17524 PhysicalAddress: PHYSICAL_ADDRESS,
17525 NumberOfBytes: SIZE_T,
17526 CacheType: MEMORY_CACHING_TYPE,
17527 ) -> PVOID;
17528}
17529unsafe extern "C" {
17530 pub fn MmUnmapIoSpace(BaseAddress: PVOID, NumberOfBytes: SIZE_T);
17531}
17532unsafe extern "C" {
17533 pub fn MmMapIoSpaceEx(
17534 PhysicalAddress: PHYSICAL_ADDRESS,
17535 NumberOfBytes: SIZE_T,
17536 Protect: ULONG,
17537 ) -> PVOID;
17538}
17539unsafe extern "C" {
17540 pub fn MmAllocateContiguousMemory(
17541 NumberOfBytes: SIZE_T,
17542 HighestAcceptableAddress: PHYSICAL_ADDRESS,
17543 ) -> PVOID;
17544}
17545unsafe extern "C" {
17546 pub fn MmAllocateContiguousMemorySpecifyCache(
17547 NumberOfBytes: SIZE_T,
17548 LowestAcceptableAddress: PHYSICAL_ADDRESS,
17549 HighestAcceptableAddress: PHYSICAL_ADDRESS,
17550 BoundaryAddressMultiple: PHYSICAL_ADDRESS,
17551 CacheType: MEMORY_CACHING_TYPE,
17552 ) -> PVOID;
17553}
17554pub type NODE_REQUIREMENT = ULONG;
17555unsafe extern "C" {
17556 pub fn MmAllocateContiguousMemorySpecifyCacheNode(
17557 NumberOfBytes: SIZE_T,
17558 LowestAcceptableAddress: PHYSICAL_ADDRESS,
17559 HighestAcceptableAddress: PHYSICAL_ADDRESS,
17560 BoundaryAddressMultiple: PHYSICAL_ADDRESS,
17561 CacheType: MEMORY_CACHING_TYPE,
17562 PreferredNode: NODE_REQUIREMENT,
17563 ) -> PVOID;
17564}
17565unsafe extern "C" {
17566 pub fn MmAllocateContiguousNodeMemory(
17567 NumberOfBytes: SIZE_T,
17568 LowestAcceptableAddress: PHYSICAL_ADDRESS,
17569 HighestAcceptableAddress: PHYSICAL_ADDRESS,
17570 BoundaryAddressMultiple: PHYSICAL_ADDRESS,
17571 Protect: ULONG,
17572 PreferredNode: NODE_REQUIREMENT,
17573 ) -> PVOID;
17574}
17575unsafe extern "C" {
17576 pub fn MmAllocateContiguousMemoryEx(
17577 NumberOfBytes: PSIZE_T,
17578 LowestAcceptableAddress: PHYSICAL_ADDRESS,
17579 HighestAcceptableAddress: PHYSICAL_ADDRESS,
17580 BoundaryAddressMultiple: PHYSICAL_ADDRESS,
17581 PreferredNode: NODE_REQUIREMENT,
17582 Protect: ULONG,
17583 PartitionObject: PVOID,
17584 Tag: ULONG,
17585 Flags: ULONG,
17586 BaseAddress: *mut PVOID,
17587 ) -> NTSTATUS;
17588}
17589unsafe extern "C" {
17590 pub fn MmFreeContiguousMemory(BaseAddress: PVOID);
17591}
17592unsafe extern "C" {
17593 pub fn MmFreeContiguousMemorySpecifyCache(
17594 BaseAddress: PVOID,
17595 NumberOfBytes: SIZE_T,
17596 CacheType: MEMORY_CACHING_TYPE,
17597 );
17598}
17599unsafe extern "C" {
17600 pub fn MmSizeOfMdl(Base: PVOID, Length: SIZE_T) -> SIZE_T;
17601}
17602unsafe extern "C" {
17603 pub fn MmCreateMdl(MemoryDescriptorList: PMDL, Base: PVOID, Length: SIZE_T) -> PMDL;
17604}
17605pub const _MM_MDL_PAGE_CONTENTS_STATE_MmMdlPageContentsDynamic: _MM_MDL_PAGE_CONTENTS_STATE = 0;
17606pub const _MM_MDL_PAGE_CONTENTS_STATE_MmMdlPageContentsInvariant: _MM_MDL_PAGE_CONTENTS_STATE = 1;
17607pub const _MM_MDL_PAGE_CONTENTS_STATE_MmMdlPageContentsQuery: _MM_MDL_PAGE_CONTENTS_STATE = 2;
17608pub type _MM_MDL_PAGE_CONTENTS_STATE = core::ffi::c_int;
17609pub use self::_MM_MDL_PAGE_CONTENTS_STATE as MM_MDL_PAGE_CONTENTS_STATE;
17610pub use self::_MM_MDL_PAGE_CONTENTS_STATE as PMM_MDL_PAGE_CONTENTS_STATE;
17611unsafe extern "C" {
17612 pub fn MmMdlPageContentsState(
17613 MemoryDescriptorList: PMDL,
17614 State: MM_MDL_PAGE_CONTENTS_STATE,
17615 ) -> MM_MDL_PAGE_CONTENTS_STATE;
17616}
17617unsafe extern "C" {
17618 pub fn MmLockPagableDataSection(AddressWithinSection: PVOID) -> PVOID;
17619}
17620unsafe extern "C" {
17621 pub fn MmResetDriverPaging(AddressWithinSection: PVOID);
17622}
17623unsafe extern "C" {
17624 pub fn MmPageEntireDriver(AddressWithinSection: PVOID) -> PVOID;
17625}
17626unsafe extern "C" {
17627 pub fn MmUnlockPagableImageSection(ImageSectionHandle: PVOID);
17628}
17629pub type PMM_DLL_INITIALIZE =
17630::core::option::Option<unsafe extern "C" fn(RegistryPath: PUNICODE_STRING) -> NTSTATUS>;
17631pub type PMM_DLL_UNLOAD = ::core::option::Option<unsafe extern "C" fn() -> NTSTATUS>;
17632unsafe extern "C" {
17633 pub fn MmIsDriverSuspectForVerifier(DriverObject: *mut _DRIVER_OBJECT) -> LOGICAL;
17634}
17635unsafe extern "C" {
17636 pub fn MmIsDriverVerifying(DriverObject: *mut _DRIVER_OBJECT) -> LOGICAL;
17637}
17638unsafe extern "C" {
17639 pub fn MmIsDriverVerifyingByAddress(AddressWithinSection: PVOID) -> LOGICAL;
17640}
17641unsafe extern "C" {
17642 pub fn MmProtectDriverSection(
17643 AddressWithinSection: PVOID,
17644 Size: SIZE_T,
17645 Flags: ULONG,
17646 ) -> NTSTATUS;
17647}
17648pub const _SECURITY_OPERATION_CODE_SetSecurityDescriptor: _SECURITY_OPERATION_CODE = 0;
17649pub const _SECURITY_OPERATION_CODE_QuerySecurityDescriptor: _SECURITY_OPERATION_CODE = 1;
17650pub const _SECURITY_OPERATION_CODE_DeleteSecurityDescriptor: _SECURITY_OPERATION_CODE = 2;
17651pub const _SECURITY_OPERATION_CODE_AssignSecurityDescriptor: _SECURITY_OPERATION_CODE = 3;
17652pub type _SECURITY_OPERATION_CODE = core::ffi::c_int;
17653pub use self::_SECURITY_OPERATION_CODE as SECURITY_OPERATION_CODE;
17654pub type PSECURITY_OPERATION_CODE = *mut _SECURITY_OPERATION_CODE;
17655#[repr(C)]
17656#[derive(Debug, Copy, Clone)]
17657pub struct _SECURITY_SUBJECT_CONTEXT {
17658 pub ClientToken: PACCESS_TOKEN,
17659 pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
17660 pub PrimaryToken: PACCESS_TOKEN,
17661 pub ProcessAuditId: PVOID,
17662}
17663pub type SECURITY_SUBJECT_CONTEXT = _SECURITY_SUBJECT_CONTEXT;
17664pub type PSECURITY_SUBJECT_CONTEXT = *mut _SECURITY_SUBJECT_CONTEXT;
17665#[repr(C)]
17666#[derive(Debug, Copy, Clone)]
17667pub struct _INITIAL_PRIVILEGE_SET {
17668 pub PrivilegeCount: ULONG,
17669 pub Control: ULONG,
17670 pub Privilege: [LUID_AND_ATTRIBUTES; 3usize],
17671}
17672pub type INITIAL_PRIVILEGE_SET = _INITIAL_PRIVILEGE_SET;
17673pub type PINITIAL_PRIVILEGE_SET = *mut _INITIAL_PRIVILEGE_SET;
17674#[repr(C)]
17675#[derive(Copy, Clone)]
17676pub struct _ACCESS_STATE {
17677 pub OperationID: LUID,
17678 pub SecurityEvaluated: BOOLEAN,
17679 pub GenerateAudit: BOOLEAN,
17680 pub GenerateOnClose: BOOLEAN,
17681 pub PrivilegesAllocated: BOOLEAN,
17682 pub Flags: ULONG,
17683 pub RemainingDesiredAccess: ACCESS_MASK,
17684 pub PreviouslyGrantedAccess: ACCESS_MASK,
17685 pub OriginalDesiredAccess: ACCESS_MASK,
17686 pub SubjectSecurityContext: SECURITY_SUBJECT_CONTEXT,
17687 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
17688 pub AuxData: PVOID,
17689 pub Privileges: _ACCESS_STATE__bindgen_ty_1,
17690 pub AuditPrivileges: BOOLEAN,
17691 pub ObjectName: UNICODE_STRING,
17692 pub ObjectTypeName: UNICODE_STRING,
17693}
17694#[repr(C)]
17695#[derive(Copy, Clone)]
17696pub union _ACCESS_STATE__bindgen_ty_1 {
17697 pub InitialPrivilegeSet: INITIAL_PRIVILEGE_SET,
17698 pub PrivilegeSet: PRIVILEGE_SET,
17699}
17700pub type ACCESS_STATE = _ACCESS_STATE;
17701pub type NTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR = ::core::option::Option<
17702 unsafe extern "C" fn(Vcb: PVOID, SecurityDescriptor: PSECURITY_DESCRIPTOR),
17703>;
17704pub type PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR = NTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR;
17705unsafe extern "C" {
17706 pub fn SeCaptureSubjectContext(SubjectContext: PSECURITY_SUBJECT_CONTEXT);
17707}
17708unsafe extern "C" {
17709 pub fn SeLockSubjectContext(SubjectContext: PSECURITY_SUBJECT_CONTEXT);
17710}
17711unsafe extern "C" {
17712 pub fn SeUnlockSubjectContext(SubjectContext: PSECURITY_SUBJECT_CONTEXT);
17713}
17714unsafe extern "C" {
17715 pub fn SeReleaseSubjectContext(SubjectContext: PSECURITY_SUBJECT_CONTEXT);
17716}
17717unsafe extern "C" {
17718 pub fn SeAssignSecurity(
17719 ParentDescriptor: PSECURITY_DESCRIPTOR,
17720 ExplicitDescriptor: PSECURITY_DESCRIPTOR,
17721 NewDescriptor: *mut PSECURITY_DESCRIPTOR,
17722 IsDirectoryObject: BOOLEAN,
17723 SubjectContext: PSECURITY_SUBJECT_CONTEXT,
17724 GenericMapping: PGENERIC_MAPPING,
17725 PoolType: POOL_TYPE,
17726 ) -> NTSTATUS;
17727}
17728unsafe extern "C" {
17729 pub fn SeComputeAutoInheritByObjectType(
17730 ObjectType: PVOID,
17731 SecurityDescriptor: PSECURITY_DESCRIPTOR,
17732 ParentSecurityDescriptor: PSECURITY_DESCRIPTOR,
17733 ) -> ULONG;
17734}
17735unsafe extern "C" {
17736 pub fn SeAssignSecurityEx(
17737 ParentDescriptor: PSECURITY_DESCRIPTOR,
17738 ExplicitDescriptor: PSECURITY_DESCRIPTOR,
17739 NewDescriptor: *mut PSECURITY_DESCRIPTOR,
17740 ObjectType: *mut GUID,
17741 IsDirectoryObject: BOOLEAN,
17742 AutoInheritFlags: ULONG,
17743 SubjectContext: PSECURITY_SUBJECT_CONTEXT,
17744 GenericMapping: PGENERIC_MAPPING,
17745 PoolType: POOL_TYPE,
17746 ) -> NTSTATUS;
17747}
17748unsafe extern "C" {
17749 pub fn SeDeassignSecurity(SecurityDescriptor: *mut PSECURITY_DESCRIPTOR) -> NTSTATUS;
17750}
17751unsafe extern "C" {
17752 pub fn SeObjectCreateSaclAccessBits(SecurityDescriptor: PSECURITY_DESCRIPTOR) -> ULONG;
17753}
17754unsafe extern "C" {
17755 pub fn SeAccessCheck(
17756 SecurityDescriptor: PSECURITY_DESCRIPTOR,
17757 SubjectSecurityContext: PSECURITY_SUBJECT_CONTEXT,
17758 SubjectContextLocked: BOOLEAN,
17759 DesiredAccess: ACCESS_MASK,
17760 PreviouslyGrantedAccess: ACCESS_MASK,
17761 Privileges: *mut PPRIVILEGE_SET,
17762 GenericMapping: PGENERIC_MAPPING,
17763 AccessMode: KPROCESSOR_MODE,
17764 GrantedAccess: PACCESS_MASK,
17765 AccessStatus: PNTSTATUS,
17766 ) -> BOOLEAN;
17767}
17768unsafe extern "C" {
17769 pub fn SeSetAuditParameter(
17770 AuditParameters: PSE_ADT_PARAMETER_ARRAY,
17771 Type: SE_ADT_PARAMETER_TYPE,
17772 Index: ULONG,
17773 Data: PVOID,
17774 ) -> NTSTATUS;
17775}
17776unsafe extern "C" {
17777 pub fn SeReportSecurityEvent(
17778 Flags: ULONG,
17779 SourceName: PUNICODE_STRING,
17780 UserSid: PSID,
17781 AuditParameters: PSE_ADT_PARAMETER_ARRAY,
17782 ) -> NTSTATUS;
17783}
17784unsafe extern "C" {
17785 pub fn SeValidSecurityDescriptor(
17786 Length: ULONG,
17787 SecurityDescriptor: PSECURITY_DESCRIPTOR,
17788 ) -> BOOLEAN;
17789}
17790pub const _SE_IMAGE_TYPE_SeImageTypeElamDriver: _SE_IMAGE_TYPE = 0;
17791pub const _SE_IMAGE_TYPE_SeImageTypeDriver: _SE_IMAGE_TYPE = 1;
17792pub const _SE_IMAGE_TYPE_SeImageTypePlatformSecureFile: _SE_IMAGE_TYPE = 2;
17793pub const _SE_IMAGE_TYPE_SeImageTypeDynamicCodeFile: _SE_IMAGE_TYPE = 3;
17794pub const _SE_IMAGE_TYPE_SeImageTypeMax: _SE_IMAGE_TYPE = 4;
17795pub type _SE_IMAGE_TYPE = core::ffi::c_int;
17796pub use self::_SE_IMAGE_TYPE as SE_IMAGE_TYPE;
17797pub type PSE_IMAGE_TYPE = *mut _SE_IMAGE_TYPE;
17798#[repr(C)]
17799#[derive(Debug, Copy, Clone)]
17800pub struct _BDCB_IMAGE_INFORMATION {
17801 _unused: [u8; 0],
17802}
17803pub type PBDCB_IMAGE_INFORMATION = *mut _BDCB_IMAGE_INFORMATION;
17804pub type SE_IMAGE_VERIFICATION_CALLBACK_FUNCTION = ::core::option::Option<
17805 unsafe extern "C" fn(
17806 CallbackContext: PVOID,
17807 ImageType: SE_IMAGE_TYPE,
17808 ImageInformation: PBDCB_IMAGE_INFORMATION,
17809 ),
17810>;
17811pub type PSE_IMAGE_VERIFICATION_CALLBACK_FUNCTION = SE_IMAGE_VERIFICATION_CALLBACK_FUNCTION;
17812pub const _SE_IMAGE_VERIFICATION_CALLBACK_TYPE_SeImageVerificationCallbackInformational:
17813_SE_IMAGE_VERIFICATION_CALLBACK_TYPE = 0;
17814pub type _SE_IMAGE_VERIFICATION_CALLBACK_TYPE = core::ffi::c_int;
17815pub use self::_SE_IMAGE_VERIFICATION_CALLBACK_TYPE as SE_IMAGE_VERIFICATION_CALLBACK_TYPE;
17816pub type PSE_IMAGE_VERIFICATION_CALLBACK_TYPE = *mut _SE_IMAGE_VERIFICATION_CALLBACK_TYPE;
17817pub type SE_IMAGE_VERIFICATION_CALLBACK_TOKEN = PVOID;
17818pub type PSE_IMAGE_VERIFICATION_CALLBACK_TOKEN = *mut PVOID;
17819unsafe extern "C" {
17820 pub fn SeRegisterImageVerificationCallback(
17821 ImageType: SE_IMAGE_TYPE,
17822 CallbackType: SE_IMAGE_VERIFICATION_CALLBACK_TYPE,
17823 CallbackFunction: PSE_IMAGE_VERIFICATION_CALLBACK_FUNCTION,
17824 CallbackContext: PVOID,
17825 Token: SE_IMAGE_VERIFICATION_CALLBACK_TOKEN,
17826 CallbackHandle: *mut PVOID,
17827 ) -> NTSTATUS;
17828}
17829unsafe extern "C" {
17830 pub fn SeUnregisterImageVerificationCallback(CallbackHandle: PVOID);
17831}
17832unsafe extern "C" {
17833 pub fn PsCreateSystemThread(
17834 ThreadHandle: PHANDLE,
17835 DesiredAccess: ULONG,
17836 ObjectAttributes: POBJECT_ATTRIBUTES,
17837 ProcessHandle: HANDLE,
17838 ClientId: PCLIENT_ID,
17839 StartRoutine: PKSTART_ROUTINE,
17840 StartContext: PVOID,
17841 ) -> NTSTATUS;
17842}
17843unsafe extern "C" {
17844 pub fn PsTerminateSystemThread(ExitStatus: NTSTATUS) -> NTSTATUS;
17845}
17846unsafe extern "C" {
17847 pub fn PsWrapApcWow64Thread(ApcContext: *mut PVOID, ApcRoutine: *mut PVOID) -> NTSTATUS;
17848}
17849unsafe extern "C" {
17850 pub fn PsGetVersion(
17851 MajorVersion: PULONG,
17852 MinorVersion: PULONG,
17853 BuildNumber: PULONG,
17854 CSDVersion: PUNICODE_STRING,
17855 ) -> BOOLEAN;
17856}
17857unsafe extern "C" {
17858 pub fn PsQueryTotalCycleTimeProcess(Process: PEPROCESS, CycleTimeStamp: PULONG64) -> ULONG64;
17859}
17860#[repr(C)]
17861#[derive(Debug, Copy, Clone)]
17862pub struct _AFFINITY_TOKEN {
17863 _unused: [u8; 0],
17864}
17865pub type PAFFINITY_TOKEN = *mut _AFFINITY_TOKEN;
17866unsafe extern "C" {
17867 pub fn PsAllocateAffinityToken(AffinityToken: *mut PAFFINITY_TOKEN) -> NTSTATUS;
17868}
17869unsafe extern "C" {
17870 pub fn PsFreeAffinityToken(AffinityToken: PAFFINITY_TOKEN);
17871}
17872unsafe extern "C" {
17873 pub fn PsSetSystemMultipleGroupAffinityThread(
17874 GroupAffinities: PGROUP_AFFINITY,
17875 GroupCount: USHORT,
17876 AffinityToken: PAFFINITY_TOKEN,
17877 ) -> NTSTATUS;
17878}
17879unsafe extern "C" {
17880 pub fn PsRevertToUserMultipleGroupAffinityThread(AffinityToken: PAFFINITY_TOKEN);
17881}
17882pub const _CREATE_FILE_TYPE_CreateFileTypeNone: _CREATE_FILE_TYPE = 0;
17883pub const _CREATE_FILE_TYPE_CreateFileTypeNamedPipe: _CREATE_FILE_TYPE = 1;
17884pub const _CREATE_FILE_TYPE_CreateFileTypeMailslot: _CREATE_FILE_TYPE = 2;
17885pub type _CREATE_FILE_TYPE = core::ffi::c_int;
17886pub use self::_CREATE_FILE_TYPE as CREATE_FILE_TYPE;
17887#[repr(C)]
17888#[derive(Copy, Clone)]
17889pub struct _NAMED_PIPE_CREATE_PARAMETERS {
17890 pub NamedPipeType: ULONG,
17891 pub ReadMode: ULONG,
17892 pub CompletionMode: ULONG,
17893 pub MaximumInstances: ULONG,
17894 pub InboundQuota: ULONG,
17895 pub OutboundQuota: ULONG,
17896 pub DefaultTimeout: LARGE_INTEGER,
17897 pub TimeoutSpecified: BOOLEAN,
17898}
17899pub type NAMED_PIPE_CREATE_PARAMETERS = _NAMED_PIPE_CREATE_PARAMETERS;
17900pub type PNAMED_PIPE_CREATE_PARAMETERS = *mut _NAMED_PIPE_CREATE_PARAMETERS;
17901#[repr(C)]
17902#[derive(Copy, Clone)]
17903pub struct _MAILSLOT_CREATE_PARAMETERS {
17904 pub MailslotQuota: ULONG,
17905 pub MaximumMessageSize: ULONG,
17906 pub ReadTimeout: LARGE_INTEGER,
17907 pub TimeoutSpecified: BOOLEAN,
17908}
17909pub type MAILSLOT_CREATE_PARAMETERS = _MAILSLOT_CREATE_PARAMETERS;
17910pub type PMAILSLOT_CREATE_PARAMETERS = *mut _MAILSLOT_CREATE_PARAMETERS;
17911#[repr(C)]
17912#[derive(Debug, Copy, Clone)]
17913pub struct _DRIVE_LAYOUT_INFORMATION {
17914 _unused: [u8; 0],
17915}
17916#[repr(C)]
17917#[derive(Debug, Copy, Clone)]
17918pub struct _DISK_PARTITION {
17919 _unused: [u8; 0],
17920}
17921#[repr(C)]
17922#[derive(Debug, Copy, Clone)]
17923pub struct _SCSI_REQUEST_BLOCK {
17924 _unused: [u8; 0],
17925}
17926pub type IO_DPC_ROUTINE = ::core::option::Option<
17927 unsafe extern "C" fn(
17928 Dpc: PKDPC,
17929 DeviceObject: *mut _DEVICE_OBJECT,
17930 Irp: *mut _IRP,
17931 Context: PVOID,
17932 ),
17933>;
17934pub type PIO_DPC_ROUTINE = IO_DPC_ROUTINE;
17935pub type IO_TIMER_ROUTINE =
17936::core::option::Option<unsafe extern "C" fn(DeviceObject: *mut _DEVICE_OBJECT, Context: PVOID)>;
17937pub type PIO_TIMER_ROUTINE = IO_TIMER_ROUTINE;
17938pub type DRIVER_INITIALIZE = ::core::option::Option<
17939 unsafe extern "C" fn(
17940 DriverObject: *mut _DRIVER_OBJECT,
17941 RegistryPath: PUNICODE_STRING,
17942 ) -> NTSTATUS,
17943>;
17944pub type PDRIVER_INITIALIZE = DRIVER_INITIALIZE;
17945pub type DRIVER_CANCEL =
17946::core::option::Option<unsafe extern "C" fn(DeviceObject: *mut _DEVICE_OBJECT, Irp: *mut _IRP)>;
17947pub type PDRIVER_CANCEL = DRIVER_CANCEL;
17948pub type DRIVER_DISPATCH = ::core::option::Option<
17949 unsafe extern "C" fn(DeviceObject: *mut _DEVICE_OBJECT, Irp: *mut _IRP) -> NTSTATUS,
17950>;
17951pub type PDRIVER_DISPATCH = DRIVER_DISPATCH;
17952pub type DRIVER_DISPATCH_RAISED = DRIVER_DISPATCH;
17953pub type DRIVER_DISPATCH_PAGED = ::core::option::Option<
17954 unsafe extern "C" fn(DeviceObject: *mut _DEVICE_OBJECT, Irp: *mut _IRP) -> NTSTATUS,
17955>;
17956pub type PDRIVER_DISPATCH_PAGED = DRIVER_DISPATCH_PAGED;
17957pub type DRIVER_STARTIO =
17958::core::option::Option<unsafe extern "C" fn(DeviceObject: *mut _DEVICE_OBJECT, Irp: *mut _IRP)>;
17959pub type PDRIVER_STARTIO = DRIVER_STARTIO;
17960pub type DRIVER_UNLOAD =
17961::core::option::Option<unsafe extern "C" fn(DriverObject: *mut _DRIVER_OBJECT)>;
17962pub type PDRIVER_UNLOAD = DRIVER_UNLOAD;
17963pub type DRIVER_ADD_DEVICE = ::core::option::Option<
17964 unsafe extern "C" fn(
17965 DriverObject: *mut _DRIVER_OBJECT,
17966 PhysicalDeviceObject: *mut _DEVICE_OBJECT,
17967 ) -> NTSTATUS,
17968>;
17969pub type PDRIVER_ADD_DEVICE = DRIVER_ADD_DEVICE;
17970pub type FAST_IO_CHECK_IF_POSSIBLE = ::core::option::Option<
17971 unsafe extern "C" fn(
17972 FileObject: *mut _FILE_OBJECT,
17973 FileOffset: PLARGE_INTEGER,
17974 Length: ULONG,
17975 Wait: BOOLEAN,
17976 LockKey: ULONG,
17977 CheckForReadOperation: BOOLEAN,
17978 IoStatus: PIO_STATUS_BLOCK,
17979 DeviceObject: *mut _DEVICE_OBJECT,
17980 ) -> BOOLEAN,
17981>;
17982pub type PFAST_IO_CHECK_IF_POSSIBLE = FAST_IO_CHECK_IF_POSSIBLE;
17983pub type FAST_IO_READ = ::core::option::Option<
17984 unsafe extern "C" fn(
17985 FileObject: *mut _FILE_OBJECT,
17986 FileOffset: PLARGE_INTEGER,
17987 Length: ULONG,
17988 Wait: BOOLEAN,
17989 LockKey: ULONG,
17990 Buffer: PVOID,
17991 IoStatus: PIO_STATUS_BLOCK,
17992 DeviceObject: *mut _DEVICE_OBJECT,
17993 ) -> BOOLEAN,
17994>;
17995pub type PFAST_IO_READ = FAST_IO_READ;
17996pub type FAST_IO_WRITE = ::core::option::Option<
17997 unsafe extern "C" fn(
17998 FileObject: *mut _FILE_OBJECT,
17999 FileOffset: PLARGE_INTEGER,
18000 Length: ULONG,
18001 Wait: BOOLEAN,
18002 LockKey: ULONG,
18003 Buffer: PVOID,
18004 IoStatus: PIO_STATUS_BLOCK,
18005 DeviceObject: *mut _DEVICE_OBJECT,
18006 ) -> BOOLEAN,
18007>;
18008pub type PFAST_IO_WRITE = FAST_IO_WRITE;
18009pub type FAST_IO_QUERY_BASIC_INFO = ::core::option::Option<
18010 unsafe extern "C" fn(
18011 FileObject: *mut _FILE_OBJECT,
18012 Wait: BOOLEAN,
18013 Buffer: PFILE_BASIC_INFORMATION,
18014 IoStatus: PIO_STATUS_BLOCK,
18015 DeviceObject: *mut _DEVICE_OBJECT,
18016 ) -> BOOLEAN,
18017>;
18018pub type PFAST_IO_QUERY_BASIC_INFO = FAST_IO_QUERY_BASIC_INFO;
18019pub type FAST_IO_QUERY_STANDARD_INFO = ::core::option::Option<
18020 unsafe extern "C" fn(
18021 FileObject: *mut _FILE_OBJECT,
18022 Wait: BOOLEAN,
18023 Buffer: PFILE_STANDARD_INFORMATION,
18024 IoStatus: PIO_STATUS_BLOCK,
18025 DeviceObject: *mut _DEVICE_OBJECT,
18026 ) -> BOOLEAN,
18027>;
18028pub type PFAST_IO_QUERY_STANDARD_INFO = FAST_IO_QUERY_STANDARD_INFO;
18029pub type FAST_IO_LOCK = ::core::option::Option<
18030 unsafe extern "C" fn(
18031 FileObject: *mut _FILE_OBJECT,
18032 FileOffset: PLARGE_INTEGER,
18033 Length: PLARGE_INTEGER,
18034 ProcessId: PEPROCESS,
18035 Key: ULONG,
18036 FailImmediately: BOOLEAN,
18037 ExclusiveLock: BOOLEAN,
18038 IoStatus: PIO_STATUS_BLOCK,
18039 DeviceObject: *mut _DEVICE_OBJECT,
18040 ) -> BOOLEAN,
18041>;
18042pub type PFAST_IO_LOCK = FAST_IO_LOCK;
18043pub type FAST_IO_UNLOCK_SINGLE = ::core::option::Option<
18044 unsafe extern "C" fn(
18045 FileObject: *mut _FILE_OBJECT,
18046 FileOffset: PLARGE_INTEGER,
18047 Length: PLARGE_INTEGER,
18048 ProcessId: PEPROCESS,
18049 Key: ULONG,
18050 IoStatus: PIO_STATUS_BLOCK,
18051 DeviceObject: *mut _DEVICE_OBJECT,
18052 ) -> BOOLEAN,
18053>;
18054pub type PFAST_IO_UNLOCK_SINGLE = FAST_IO_UNLOCK_SINGLE;
18055pub type FAST_IO_UNLOCK_ALL = ::core::option::Option<
18056 unsafe extern "C" fn(
18057 FileObject: *mut _FILE_OBJECT,
18058 ProcessId: PEPROCESS,
18059 IoStatus: PIO_STATUS_BLOCK,
18060 DeviceObject: *mut _DEVICE_OBJECT,
18061 ) -> BOOLEAN,
18062>;
18063pub type PFAST_IO_UNLOCK_ALL = FAST_IO_UNLOCK_ALL;
18064pub type FAST_IO_UNLOCK_ALL_BY_KEY = ::core::option::Option<
18065 unsafe extern "C" fn(
18066 FileObject: *mut _FILE_OBJECT,
18067 ProcessId: PVOID,
18068 Key: ULONG,
18069 IoStatus: PIO_STATUS_BLOCK,
18070 DeviceObject: *mut _DEVICE_OBJECT,
18071 ) -> BOOLEAN,
18072>;
18073pub type PFAST_IO_UNLOCK_ALL_BY_KEY = FAST_IO_UNLOCK_ALL_BY_KEY;
18074pub type FAST_IO_DEVICE_CONTROL = ::core::option::Option<
18075 unsafe extern "C" fn(
18076 FileObject: *mut _FILE_OBJECT,
18077 Wait: BOOLEAN,
18078 InputBuffer: PVOID,
18079 InputBufferLength: ULONG,
18080 OutputBuffer: PVOID,
18081 OutputBufferLength: ULONG,
18082 IoControlCode: ULONG,
18083 IoStatus: PIO_STATUS_BLOCK,
18084 DeviceObject: *mut _DEVICE_OBJECT,
18085 ) -> BOOLEAN,
18086>;
18087pub type PFAST_IO_DEVICE_CONTROL = FAST_IO_DEVICE_CONTROL;
18088pub type FAST_IO_ACQUIRE_FILE =
18089::core::option::Option<unsafe extern "C" fn(FileObject: *mut _FILE_OBJECT)>;
18090pub type PFAST_IO_ACQUIRE_FILE = FAST_IO_ACQUIRE_FILE;
18091pub type FAST_IO_RELEASE_FILE =
18092::core::option::Option<unsafe extern "C" fn(FileObject: *mut _FILE_OBJECT)>;
18093pub type PFAST_IO_RELEASE_FILE = FAST_IO_RELEASE_FILE;
18094pub type FAST_IO_DETACH_DEVICE = ::core::option::Option<
18095 unsafe extern "C" fn(SourceDevice: *mut _DEVICE_OBJECT, TargetDevice: *mut _DEVICE_OBJECT),
18096>;
18097pub type PFAST_IO_DETACH_DEVICE = FAST_IO_DETACH_DEVICE;
18098pub type FAST_IO_QUERY_NETWORK_OPEN_INFO = ::core::option::Option<
18099 unsafe extern "C" fn(
18100 FileObject: *mut _FILE_OBJECT,
18101 Wait: BOOLEAN,
18102 Buffer: *mut _FILE_NETWORK_OPEN_INFORMATION,
18103 IoStatus: *mut _IO_STATUS_BLOCK,
18104 DeviceObject: *mut _DEVICE_OBJECT,
18105 ) -> BOOLEAN,
18106>;
18107pub type PFAST_IO_QUERY_NETWORK_OPEN_INFO = FAST_IO_QUERY_NETWORK_OPEN_INFO;
18108pub type FAST_IO_MDL_READ = ::core::option::Option<
18109 unsafe extern "C" fn(
18110 FileObject: *mut _FILE_OBJECT,
18111 FileOffset: PLARGE_INTEGER,
18112 Length: ULONG,
18113 LockKey: ULONG,
18114 MdlChain: *mut PMDL,
18115 IoStatus: PIO_STATUS_BLOCK,
18116 DeviceObject: *mut _DEVICE_OBJECT,
18117 ) -> BOOLEAN,
18118>;
18119pub type PFAST_IO_MDL_READ = FAST_IO_MDL_READ;
18120pub type FAST_IO_MDL_READ_COMPLETE = ::core::option::Option<
18121 unsafe extern "C" fn(
18122 FileObject: *mut _FILE_OBJECT,
18123 MdlChain: PMDL,
18124 DeviceObject: *mut _DEVICE_OBJECT,
18125 ) -> BOOLEAN,
18126>;
18127pub type PFAST_IO_MDL_READ_COMPLETE = FAST_IO_MDL_READ_COMPLETE;
18128pub type FAST_IO_PREPARE_MDL_WRITE = ::core::option::Option<
18129 unsafe extern "C" fn(
18130 FileObject: *mut _FILE_OBJECT,
18131 FileOffset: PLARGE_INTEGER,
18132 Length: ULONG,
18133 LockKey: ULONG,
18134 MdlChain: *mut PMDL,
18135 IoStatus: PIO_STATUS_BLOCK,
18136 DeviceObject: *mut _DEVICE_OBJECT,
18137 ) -> BOOLEAN,
18138>;
18139pub type PFAST_IO_PREPARE_MDL_WRITE = FAST_IO_PREPARE_MDL_WRITE;
18140pub type FAST_IO_MDL_WRITE_COMPLETE = ::core::option::Option<
18141 unsafe extern "C" fn(
18142 FileObject: *mut _FILE_OBJECT,
18143 FileOffset: PLARGE_INTEGER,
18144 MdlChain: PMDL,
18145 DeviceObject: *mut _DEVICE_OBJECT,
18146 ) -> BOOLEAN,
18147>;
18148pub type PFAST_IO_MDL_WRITE_COMPLETE = FAST_IO_MDL_WRITE_COMPLETE;
18149pub type FAST_IO_ACQUIRE_FOR_MOD_WRITE = ::core::option::Option<
18150 unsafe extern "C" fn(
18151 FileObject: *mut _FILE_OBJECT,
18152 EndingOffset: PLARGE_INTEGER,
18153 ResourceToRelease: *mut *mut _ERESOURCE,
18154 DeviceObject: *mut _DEVICE_OBJECT,
18155 ) -> NTSTATUS,
18156>;
18157pub type PFAST_IO_ACQUIRE_FOR_MOD_WRITE = FAST_IO_ACQUIRE_FOR_MOD_WRITE;
18158pub type FAST_IO_RELEASE_FOR_MOD_WRITE = ::core::option::Option<
18159 unsafe extern "C" fn(
18160 FileObject: *mut _FILE_OBJECT,
18161 ResourceToRelease: *mut _ERESOURCE,
18162 DeviceObject: *mut _DEVICE_OBJECT,
18163 ) -> NTSTATUS,
18164>;
18165pub type PFAST_IO_RELEASE_FOR_MOD_WRITE = FAST_IO_RELEASE_FOR_MOD_WRITE;
18166pub type FAST_IO_ACQUIRE_FOR_CCFLUSH = ::core::option::Option<
18167 unsafe extern "C" fn(
18168 FileObject: *mut _FILE_OBJECT,
18169 DeviceObject: *mut _DEVICE_OBJECT,
18170 ) -> NTSTATUS,
18171>;
18172pub type PFAST_IO_ACQUIRE_FOR_CCFLUSH = FAST_IO_ACQUIRE_FOR_CCFLUSH;
18173pub type FAST_IO_RELEASE_FOR_CCFLUSH = ::core::option::Option<
18174 unsafe extern "C" fn(
18175 FileObject: *mut _FILE_OBJECT,
18176 DeviceObject: *mut _DEVICE_OBJECT,
18177 ) -> NTSTATUS,
18178>;
18179pub type PFAST_IO_RELEASE_FOR_CCFLUSH = FAST_IO_RELEASE_FOR_CCFLUSH;
18180#[repr(C)]
18181#[derive(Debug, Copy, Clone)]
18182pub struct _COMPRESSED_DATA_INFO {
18183 _unused: [u8; 0],
18184}
18185pub type FAST_IO_READ_COMPRESSED = ::core::option::Option<
18186 unsafe extern "C" fn(
18187 FileObject: *mut _FILE_OBJECT,
18188 FileOffset: PLARGE_INTEGER,
18189 Length: ULONG,
18190 LockKey: ULONG,
18191 Buffer: PVOID,
18192 MdlChain: *mut PMDL,
18193 IoStatus: PIO_STATUS_BLOCK,
18194 CompressedDataInfo: *mut _COMPRESSED_DATA_INFO,
18195 CompressedDataInfoLength: ULONG,
18196 DeviceObject: *mut _DEVICE_OBJECT,
18197 ) -> BOOLEAN,
18198>;
18199pub type PFAST_IO_READ_COMPRESSED = FAST_IO_READ_COMPRESSED;
18200pub type FAST_IO_WRITE_COMPRESSED = ::core::option::Option<
18201 unsafe extern "C" fn(
18202 FileObject: *mut _FILE_OBJECT,
18203 FileOffset: PLARGE_INTEGER,
18204 Length: ULONG,
18205 LockKey: ULONG,
18206 Buffer: PVOID,
18207 MdlChain: *mut PMDL,
18208 IoStatus: PIO_STATUS_BLOCK,
18209 CompressedDataInfo: *mut _COMPRESSED_DATA_INFO,
18210 CompressedDataInfoLength: ULONG,
18211 DeviceObject: *mut _DEVICE_OBJECT,
18212 ) -> BOOLEAN,
18213>;
18214pub type PFAST_IO_WRITE_COMPRESSED = FAST_IO_WRITE_COMPRESSED;
18215pub type FAST_IO_MDL_READ_COMPLETE_COMPRESSED = ::core::option::Option<
18216 unsafe extern "C" fn(
18217 FileObject: *mut _FILE_OBJECT,
18218 MdlChain: PMDL,
18219 DeviceObject: *mut _DEVICE_OBJECT,
18220 ) -> BOOLEAN,
18221>;
18222pub type PFAST_IO_MDL_READ_COMPLETE_COMPRESSED = FAST_IO_MDL_READ_COMPLETE_COMPRESSED;
18223pub type FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED = ::core::option::Option<
18224 unsafe extern "C" fn(
18225 FileObject: *mut _FILE_OBJECT,
18226 FileOffset: PLARGE_INTEGER,
18227 MdlChain: PMDL,
18228 DeviceObject: *mut _DEVICE_OBJECT,
18229 ) -> BOOLEAN,
18230>;
18231pub type PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED = FAST_IO_MDL_WRITE_COMPLETE_COMPRESSED;
18232pub type FAST_IO_QUERY_OPEN = ::core::option::Option<
18233 unsafe extern "C" fn(
18234 Irp: *mut _IRP,
18235 NetworkInformation: PFILE_NETWORK_OPEN_INFORMATION,
18236 DeviceObject: *mut _DEVICE_OBJECT,
18237 ) -> BOOLEAN,
18238>;
18239pub type PFAST_IO_QUERY_OPEN = FAST_IO_QUERY_OPEN;
18240#[repr(C)]
18241#[derive(Debug, Copy, Clone)]
18242pub struct _FAST_IO_DISPATCH {
18243 pub SizeOfFastIoDispatch: ULONG,
18244 pub FastIoCheckIfPossible: PFAST_IO_CHECK_IF_POSSIBLE,
18245 pub FastIoRead: PFAST_IO_READ,
18246 pub FastIoWrite: PFAST_IO_WRITE,
18247 pub FastIoQueryBasicInfo: PFAST_IO_QUERY_BASIC_INFO,
18248 pub FastIoQueryStandardInfo: PFAST_IO_QUERY_STANDARD_INFO,
18249 pub FastIoLock: PFAST_IO_LOCK,
18250 pub FastIoUnlockSingle: PFAST_IO_UNLOCK_SINGLE,
18251 pub FastIoUnlockAll: PFAST_IO_UNLOCK_ALL,
18252 pub FastIoUnlockAllByKey: PFAST_IO_UNLOCK_ALL_BY_KEY,
18253 pub FastIoDeviceControl: PFAST_IO_DEVICE_CONTROL,
18254 pub AcquireFileForNtCreateSection: PFAST_IO_ACQUIRE_FILE,
18255 pub ReleaseFileForNtCreateSection: PFAST_IO_RELEASE_FILE,
18256 pub FastIoDetachDevice: PFAST_IO_DETACH_DEVICE,
18257 pub FastIoQueryNetworkOpenInfo: PFAST_IO_QUERY_NETWORK_OPEN_INFO,
18258 pub AcquireForModWrite: PFAST_IO_ACQUIRE_FOR_MOD_WRITE,
18259 pub MdlRead: PFAST_IO_MDL_READ,
18260 pub MdlReadComplete: PFAST_IO_MDL_READ_COMPLETE,
18261 pub PrepareMdlWrite: PFAST_IO_PREPARE_MDL_WRITE,
18262 pub MdlWriteComplete: PFAST_IO_MDL_WRITE_COMPLETE,
18263 pub FastIoReadCompressed: PFAST_IO_READ_COMPRESSED,
18264 pub FastIoWriteCompressed: PFAST_IO_WRITE_COMPRESSED,
18265 pub MdlReadCompleteCompressed: PFAST_IO_MDL_READ_COMPLETE_COMPRESSED,
18266 pub MdlWriteCompleteCompressed: PFAST_IO_MDL_WRITE_COMPLETE_COMPRESSED,
18267 pub FastIoQueryOpen: PFAST_IO_QUERY_OPEN,
18268 pub ReleaseForModWrite: PFAST_IO_RELEASE_FOR_MOD_WRITE,
18269 pub AcquireForCcFlush: PFAST_IO_ACQUIRE_FOR_CCFLUSH,
18270 pub ReleaseForCcFlush: PFAST_IO_RELEASE_FOR_CCFLUSH,
18271}
18272pub type FAST_IO_DISPATCH = _FAST_IO_DISPATCH;
18273pub type PFAST_IO_DISPATCH = *mut _FAST_IO_DISPATCH;
18274pub const _IO_ALLOCATION_ACTION_KeepObject: _IO_ALLOCATION_ACTION = 1;
18275pub const _IO_ALLOCATION_ACTION_DeallocateObject: _IO_ALLOCATION_ACTION = 2;
18276pub const _IO_ALLOCATION_ACTION_DeallocateObjectKeepRegisters: _IO_ALLOCATION_ACTION = 3;
18277pub type _IO_ALLOCATION_ACTION = core::ffi::c_int;
18278pub use self::_IO_ALLOCATION_ACTION as IO_ALLOCATION_ACTION;
18279pub type PIO_ALLOCATION_ACTION = *mut _IO_ALLOCATION_ACTION;
18280pub type DRIVER_CONTROL = ::core::option::Option<
18281 unsafe extern "C" fn(
18282 DeviceObject: *mut _DEVICE_OBJECT,
18283 Irp: *mut _IRP,
18284 MapRegisterBase: PVOID,
18285 Context: PVOID,
18286 ) -> IO_ALLOCATION_ACTION,
18287>;
18288pub type PDRIVER_CONTROL = DRIVER_CONTROL;
18289#[repr(C)]
18290#[derive(Debug, Copy, Clone)]
18291pub struct _IO_SECURITY_CONTEXT {
18292 pub SecurityQos: PSECURITY_QUALITY_OF_SERVICE,
18293 pub AccessState: PACCESS_STATE,
18294 pub DesiredAccess: ACCESS_MASK,
18295 pub FullCreateOptions: ULONG,
18296}
18297pub type IO_SECURITY_CONTEXT = _IO_SECURITY_CONTEXT;
18298pub type PIO_SECURITY_CONTEXT = *mut _IO_SECURITY_CONTEXT;
18299#[repr(C)]
18300#[derive(Debug, Copy, Clone)]
18301pub struct _VPB {
18302 pub Type: CSHORT,
18303 pub Size: CSHORT,
18304 pub Flags: USHORT,
18305 pub VolumeLabelLength: USHORT,
18306 pub DeviceObject: *mut _DEVICE_OBJECT,
18307 pub RealDevice: *mut _DEVICE_OBJECT,
18308 pub SerialNumber: ULONG,
18309 pub ReferenceCount: ULONG,
18310 pub VolumeLabel: [WCHAR; 32usize],
18311}
18312pub type VPB = _VPB;
18313pub type PADAPTER_OBJECT = *mut _DMA_ADAPTER;
18314#[repr(C)]
18315#[derive(Copy, Clone)]
18316pub struct _WAIT_CONTEXT_BLOCK {
18317 pub __bindgen_anon_1: _WAIT_CONTEXT_BLOCK__bindgen_ty_1,
18318 pub DeviceRoutine: PDRIVER_CONTROL,
18319 pub DeviceContext: PVOID,
18320 pub NumberOfMapRegisters: ULONG,
18321 pub DeviceObject: PVOID,
18322 pub CurrentIrp: PVOID,
18323 pub BufferChainingDpc: PKDPC,
18324}
18325#[repr(C)]
18326#[derive(Copy, Clone)]
18327pub union _WAIT_CONTEXT_BLOCK__bindgen_ty_1 {
18328 pub WaitQueueEntry: KDEVICE_QUEUE_ENTRY,
18329 pub __bindgen_anon_1: _WAIT_CONTEXT_BLOCK__bindgen_ty_1__bindgen_ty_1,
18330}
18331#[repr(C)]
18332#[derive(Debug, Copy, Clone)]
18333pub struct _WAIT_CONTEXT_BLOCK__bindgen_ty_1__bindgen_ty_1 {
18334 pub DmaWaitEntry: LIST_ENTRY,
18335 pub NumberOfChannels: ULONG,
18336 pub _bitfield_align_1: [u32; 0],
18337 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
18338}
18339impl _WAIT_CONTEXT_BLOCK__bindgen_ty_1__bindgen_ty_1 {
18340 #[inline]
18341 pub fn SyncCallback(&self) -> ULONG {
18342 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
18343 }
18344 #[inline]
18345 pub fn set_SyncCallback(&mut self, val: ULONG) {
18346 unsafe {
18347 let val: u32 = ::core::mem::transmute(val);
18348 self._bitfield_1.set(0usize, 1u8, val as u64)
18349 }
18350 }
18351 #[inline]
18352 pub unsafe fn SyncCallback_raw(this: *const Self) -> ULONG {
18353 unsafe {
18354 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18355 ::core::ptr::addr_of!((*this)._bitfield_1),
18356 0usize,
18357 1u8,
18358 ) as u32)
18359 }
18360 }
18361 #[inline]
18362 pub unsafe fn set_SyncCallback_raw(this: *mut Self, val: ULONG) {
18363 unsafe {
18364 let val: u32 = ::core::mem::transmute(val);
18365 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18366 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18367 0usize,
18368 1u8,
18369 val as u64,
18370 )
18371 }
18372 }
18373 #[inline]
18374 pub fn DmaContext(&self) -> ULONG {
18375 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
18376 }
18377 #[inline]
18378 pub fn set_DmaContext(&mut self, val: ULONG) {
18379 unsafe {
18380 let val: u32 = ::core::mem::transmute(val);
18381 self._bitfield_1.set(1usize, 1u8, val as u64)
18382 }
18383 }
18384 #[inline]
18385 pub unsafe fn DmaContext_raw(this: *const Self) -> ULONG {
18386 unsafe {
18387 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18388 ::core::ptr::addr_of!((*this)._bitfield_1),
18389 1usize,
18390 1u8,
18391 ) as u32)
18392 }
18393 }
18394 #[inline]
18395 pub unsafe fn set_DmaContext_raw(this: *mut Self, val: ULONG) {
18396 unsafe {
18397 let val: u32 = ::core::mem::transmute(val);
18398 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18399 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18400 1usize,
18401 1u8,
18402 val as u64,
18403 )
18404 }
18405 }
18406 #[inline]
18407 pub fn ZeroMapRegisters(&self) -> ULONG {
18408 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
18409 }
18410 #[inline]
18411 pub fn set_ZeroMapRegisters(&mut self, val: ULONG) {
18412 unsafe {
18413 let val: u32 = ::core::mem::transmute(val);
18414 self._bitfield_1.set(2usize, 1u8, val as u64)
18415 }
18416 }
18417 #[inline]
18418 pub unsafe fn ZeroMapRegisters_raw(this: *const Self) -> ULONG {
18419 unsafe {
18420 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18421 ::core::ptr::addr_of!((*this)._bitfield_1),
18422 2usize,
18423 1u8,
18424 ) as u32)
18425 }
18426 }
18427 #[inline]
18428 pub unsafe fn set_ZeroMapRegisters_raw(this: *mut Self, val: ULONG) {
18429 unsafe {
18430 let val: u32 = ::core::mem::transmute(val);
18431 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18432 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18433 2usize,
18434 1u8,
18435 val as u64,
18436 )
18437 }
18438 }
18439 #[inline]
18440 pub fn Reserved(&self) -> ULONG {
18441 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 9u8) as u32) }
18442 }
18443 #[inline]
18444 pub fn set_Reserved(&mut self, val: ULONG) {
18445 unsafe {
18446 let val: u32 = ::core::mem::transmute(val);
18447 self._bitfield_1.set(3usize, 9u8, val as u64)
18448 }
18449 }
18450 #[inline]
18451 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
18452 unsafe {
18453 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18454 ::core::ptr::addr_of!((*this)._bitfield_1),
18455 3usize,
18456 9u8,
18457 ) as u32)
18458 }
18459 }
18460 #[inline]
18461 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
18462 unsafe {
18463 let val: u32 = ::core::mem::transmute(val);
18464 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18465 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18466 3usize,
18467 9u8,
18468 val as u64,
18469 )
18470 }
18471 }
18472 #[inline]
18473 pub fn NumberOfRemapPages(&self) -> ULONG {
18474 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
18475 }
18476 #[inline]
18477 pub fn set_NumberOfRemapPages(&mut self, val: ULONG) {
18478 unsafe {
18479 let val: u32 = ::core::mem::transmute(val);
18480 self._bitfield_1.set(12usize, 20u8, val as u64)
18481 }
18482 }
18483 #[inline]
18484 pub unsafe fn NumberOfRemapPages_raw(this: *const Self) -> ULONG {
18485 unsafe {
18486 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18487 ::core::ptr::addr_of!((*this)._bitfield_1),
18488 12usize,
18489 20u8,
18490 ) as u32)
18491 }
18492 }
18493 #[inline]
18494 pub unsafe fn set_NumberOfRemapPages_raw(this: *mut Self, val: ULONG) {
18495 unsafe {
18496 let val: u32 = ::core::mem::transmute(val);
18497 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18498 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18499 12usize,
18500 20u8,
18501 val as u64,
18502 )
18503 }
18504 }
18505 #[inline]
18506 pub fn new_bitfield_1(
18507 SyncCallback: ULONG,
18508 DmaContext: ULONG,
18509 ZeroMapRegisters: ULONG,
18510 Reserved: ULONG,
18511 NumberOfRemapPages: ULONG,
18512 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
18513 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
18514 __bindgen_bitfield_unit.set(0usize, 1u8, {
18515 let SyncCallback: u32 = unsafe { ::core::mem::transmute(SyncCallback) };
18516 SyncCallback as u64
18517 });
18518 __bindgen_bitfield_unit.set(1usize, 1u8, {
18519 let DmaContext: u32 = unsafe { ::core::mem::transmute(DmaContext) };
18520 DmaContext as u64
18521 });
18522 __bindgen_bitfield_unit.set(2usize, 1u8, {
18523 let ZeroMapRegisters: u32 = unsafe { ::core::mem::transmute(ZeroMapRegisters) };
18524 ZeroMapRegisters as u64
18525 });
18526 __bindgen_bitfield_unit.set(3usize, 9u8, {
18527 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
18528 Reserved as u64
18529 });
18530 __bindgen_bitfield_unit.set(12usize, 20u8, {
18531 let NumberOfRemapPages: u32 = unsafe { ::core::mem::transmute(NumberOfRemapPages) };
18532 NumberOfRemapPages as u64
18533 });
18534 __bindgen_bitfield_unit
18535 }
18536}
18537pub type WAIT_CONTEXT_BLOCK = _WAIT_CONTEXT_BLOCK;
18538pub type PWAIT_CONTEXT_BLOCK = *mut _WAIT_CONTEXT_BLOCK;
18539#[repr(C)]
18540#[repr(align(16))]
18541#[derive(Copy, Clone)]
18542pub struct _DEVICE_OBJECT {
18543 pub Type: CSHORT,
18544 pub Size: USHORT,
18545 pub ReferenceCount: LONG,
18546 pub DriverObject: *mut _DRIVER_OBJECT,
18547 pub NextDevice: *mut _DEVICE_OBJECT,
18548 pub AttachedDevice: *mut _DEVICE_OBJECT,
18549 pub CurrentIrp: *mut _IRP,
18550 pub Timer: PIO_TIMER,
18551 pub Flags: ULONG,
18552 pub Characteristics: ULONG,
18553 pub Vpb: PVPB,
18554 pub DeviceExtension: PVOID,
18555 pub DeviceType: ULONG,
18556 pub StackSize: CCHAR,
18557 pub Queue: _DEVICE_OBJECT__bindgen_ty_1,
18558 pub AlignmentRequirement: ULONG,
18559 pub DeviceQueue: KDEVICE_QUEUE,
18560 pub Dpc: KDPC,
18561 pub ActiveThreadCount: ULONG,
18562 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
18563 pub DeviceLock: KEVENT,
18564 pub SectorSize: USHORT,
18565 pub Spare1: USHORT,
18566 pub DeviceObjectExtension: *mut _DEVOBJ_EXTENSION,
18567 pub Reserved: PVOID,
18568}
18569#[repr(C)]
18570#[derive(Copy, Clone)]
18571pub union _DEVICE_OBJECT__bindgen_ty_1 {
18572 pub ListEntry: LIST_ENTRY,
18573 pub Wcb: WAIT_CONTEXT_BLOCK,
18574}
18575pub type DEVICE_OBJECT = _DEVICE_OBJECT;
18576pub type PDEVICE_OBJECT = *mut _DEVICE_OBJECT;
18577#[repr(C)]
18578#[derive(Debug, Copy, Clone)]
18579pub struct _DEVICE_OBJECT_POWER_EXTENSION {
18580 _unused: [u8; 0],
18581}
18582#[repr(C)]
18583#[derive(Debug, Copy, Clone)]
18584pub struct _DEVOBJ_EXTENSION {
18585 pub Type: CSHORT,
18586 pub Size: USHORT,
18587 pub DeviceObject: PDEVICE_OBJECT,
18588 pub PowerFlags: ULONG,
18589 pub Dope: *mut _DEVICE_OBJECT_POWER_EXTENSION,
18590 pub ExtensionFlags: ULONG,
18591 pub DeviceNode: PVOID,
18592 pub AttachedTo: PDEVICE_OBJECT,
18593 pub StartIoCount: LONG,
18594 pub StartIoKey: LONG,
18595 pub StartIoFlags: ULONG,
18596 pub Vpb: PVPB,
18597 pub DependencyNode: PVOID,
18598 pub InterruptContext: PVOID,
18599 pub InterruptCount: LONG,
18600 pub VerifierContext: PVOID,
18601}
18602pub type DEVOBJ_EXTENSION = _DEVOBJ_EXTENSION;
18603pub type PDEVOBJ_EXTENSION = *mut _DEVOBJ_EXTENSION;
18604#[repr(C)]
18605#[derive(Debug, Copy, Clone)]
18606pub struct _DRIVER_EXTENSION {
18607 pub DriverObject: *mut _DRIVER_OBJECT,
18608 pub AddDevice: PDRIVER_ADD_DEVICE,
18609 pub Count: ULONG,
18610 pub ServiceKeyName: UNICODE_STRING,
18611}
18612pub type DRIVER_EXTENSION = _DRIVER_EXTENSION;
18613pub type PDRIVER_EXTENSION = *mut _DRIVER_EXTENSION;
18614#[repr(C)]
18615#[derive(Debug, Copy, Clone)]
18616pub struct _DRIVER_OBJECT {
18617 pub Type: CSHORT,
18618 pub Size: CSHORT,
18619 pub DeviceObject: PDEVICE_OBJECT,
18620 pub Flags: ULONG,
18621 pub DriverStart: PVOID,
18622 pub DriverSize: ULONG,
18623 pub DriverSection: PVOID,
18624 pub DriverExtension: PDRIVER_EXTENSION,
18625 pub DriverName: UNICODE_STRING,
18626 pub HardwareDatabase: PUNICODE_STRING,
18627 pub FastIoDispatch: PFAST_IO_DISPATCH,
18628 pub DriverInit: PDRIVER_INITIALIZE,
18629 pub DriverStartIo: PDRIVER_STARTIO,
18630 pub DriverUnload: PDRIVER_UNLOAD,
18631 pub MajorFunction: [PDRIVER_DISPATCH; 28usize],
18632}
18633pub type DRIVER_OBJECT = _DRIVER_OBJECT;
18634pub type PDRIVER_OBJECT = *mut _DRIVER_OBJECT;
18635#[repr(C)]
18636#[derive(Debug, Copy, Clone)]
18637pub struct _SECTION_OBJECT_POINTERS {
18638 pub DataSectionObject: PVOID,
18639 pub SharedCacheMap: PVOID,
18640 pub ImageSectionObject: PVOID,
18641}
18642pub type SECTION_OBJECT_POINTERS = _SECTION_OBJECT_POINTERS;
18643pub type PSECTION_OBJECT_POINTERS = *mut SECTION_OBJECT_POINTERS;
18644#[repr(C)]
18645#[derive(Debug, Copy, Clone)]
18646pub struct _IO_COMPLETION_CONTEXT {
18647 pub Port: PVOID,
18648 pub Key: PVOID,
18649 pub UsageCount: LONG_PTR,
18650}
18651pub type IO_COMPLETION_CONTEXT = _IO_COMPLETION_CONTEXT;
18652pub type PIO_COMPLETION_CONTEXT = *mut _IO_COMPLETION_CONTEXT;
18653#[repr(C)]
18654#[derive(Copy, Clone)]
18655pub struct _FILE_OBJECT {
18656 pub Type: CSHORT,
18657 pub Size: CSHORT,
18658 pub DeviceObject: PDEVICE_OBJECT,
18659 pub Vpb: PVPB,
18660 pub FsContext: PVOID,
18661 pub FsContext2: PVOID,
18662 pub SectionObjectPointer: PSECTION_OBJECT_POINTERS,
18663 pub PrivateCacheMap: PVOID,
18664 pub FinalStatus: NTSTATUS,
18665 pub RelatedFileObject: *mut _FILE_OBJECT,
18666 pub LockOperation: BOOLEAN,
18667 pub DeletePending: BOOLEAN,
18668 pub ReadAccess: BOOLEAN,
18669 pub WriteAccess: BOOLEAN,
18670 pub DeleteAccess: BOOLEAN,
18671 pub SharedRead: BOOLEAN,
18672 pub SharedWrite: BOOLEAN,
18673 pub SharedDelete: BOOLEAN,
18674 pub Flags: ULONG,
18675 pub FileName: UNICODE_STRING,
18676 pub CurrentByteOffset: LARGE_INTEGER,
18677 pub Waiters: ULONG,
18678 pub Busy: ULONG,
18679 pub LastLock: PVOID,
18680 pub Lock: KEVENT,
18681 pub Event: KEVENT,
18682 pub CompletionContext: PIO_COMPLETION_CONTEXT,
18683 pub IrpListLock: KSPIN_LOCK,
18684 pub IrpList: LIST_ENTRY,
18685 pub FileObjectExtension: PVOID,
18686}
18687pub type FILE_OBJECT = _FILE_OBJECT;
18688pub type PFILE_OBJECT = *mut _FILE_OBJECT;
18689#[repr(C)]
18690#[repr(align(16))]
18691#[derive(Copy, Clone)]
18692pub struct _IRP {
18693 pub Type: CSHORT,
18694 pub Size: USHORT,
18695 pub MdlAddress: PMDL,
18696 pub Flags: ULONG,
18697 pub AssociatedIrp: _IRP__bindgen_ty_1,
18698 pub ThreadListEntry: LIST_ENTRY,
18699 pub IoStatus: IO_STATUS_BLOCK,
18700 pub RequestorMode: KPROCESSOR_MODE,
18701 pub PendingReturned: BOOLEAN,
18702 pub StackCount: CHAR,
18703 pub CurrentLocation: CHAR,
18704 pub Cancel: BOOLEAN,
18705 pub CancelIrql: KIRQL,
18706 pub ApcEnvironment: CCHAR,
18707 pub AllocationFlags: UCHAR,
18708 pub __bindgen_anon_1: _IRP__bindgen_ty_2,
18709 pub UserEvent: PKEVENT,
18710 pub Overlay: _IRP__bindgen_ty_3,
18711 pub CancelRoutine: PDRIVER_CANCEL,
18712 pub UserBuffer: PVOID,
18713 pub Tail: _IRP__bindgen_ty_4,
18714}
18715#[repr(C)]
18716#[derive(Copy, Clone)]
18717pub union _IRP__bindgen_ty_1 {
18718 pub MasterIrp: *mut _IRP,
18719 pub IrpCount: LONG,
18720 pub SystemBuffer: PVOID,
18721}
18722#[repr(C)]
18723#[derive(Copy, Clone)]
18724pub union _IRP__bindgen_ty_2 {
18725 pub UserIosb: PIO_STATUS_BLOCK,
18726 pub IoRingContext: PVOID,
18727}
18728#[repr(C)]
18729#[derive(Copy, Clone)]
18730pub union _IRP__bindgen_ty_3 {
18731 pub AsynchronousParameters: _IRP__bindgen_ty_3__bindgen_ty_1,
18732 pub AllocationSize: LARGE_INTEGER,
18733}
18734#[repr(C)]
18735#[derive(Copy, Clone)]
18736pub struct _IRP__bindgen_ty_3__bindgen_ty_1 {
18737 pub __bindgen_anon_1: _IRP__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1,
18738 pub __bindgen_anon_2: _IRP__bindgen_ty_3__bindgen_ty_1__bindgen_ty_2,
18739}
18740#[repr(C)]
18741#[derive(Copy, Clone)]
18742pub union _IRP__bindgen_ty_3__bindgen_ty_1__bindgen_ty_1 {
18743 pub UserApcRoutine: PIO_APC_ROUTINE,
18744 pub IssuingProcess: PVOID,
18745}
18746#[repr(C)]
18747#[derive(Copy, Clone)]
18748pub union _IRP__bindgen_ty_3__bindgen_ty_1__bindgen_ty_2 {
18749 pub UserApcContext: PVOID,
18750 pub IoRing: *mut _IORING_OBJECT,
18751}
18752#[repr(C)]
18753#[derive(Copy, Clone)]
18754pub union _IRP__bindgen_ty_4 {
18755 pub Overlay: _IRP__bindgen_ty_4__bindgen_ty_1,
18756 pub Apc: KAPC,
18757 pub CompletionKey: PVOID,
18758}
18759#[repr(C)]
18760#[derive(Copy, Clone)]
18761pub struct _IRP__bindgen_ty_4__bindgen_ty_1 {
18762 pub __bindgen_anon_1: _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1,
18763 pub Thread: PETHREAD,
18764 pub AuxiliaryBuffer: PCHAR,
18765 pub __bindgen_anon_2: _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2,
18766 pub OriginalFileObject: PFILE_OBJECT,
18767}
18768#[repr(C)]
18769#[derive(Copy, Clone)]
18770pub union _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1 {
18771 pub DeviceQueueEntry: KDEVICE_QUEUE_ENTRY,
18772 pub __bindgen_anon_1: _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1,
18773}
18774#[repr(C)]
18775#[derive(Debug, Copy, Clone)]
18776pub struct _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {
18777 pub DriverContext: [PVOID; 4usize],
18778}
18779#[repr(C)]
18780#[derive(Copy, Clone)]
18781pub struct _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2 {
18782 pub ListEntry: LIST_ENTRY,
18783 pub __bindgen_anon_1: _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1,
18784}
18785#[repr(C)]
18786#[derive(Copy, Clone)]
18787pub union _IRP__bindgen_ty_4__bindgen_ty_1__bindgen_ty_2__bindgen_ty_1 {
18788 pub CurrentStackLocation: *mut _IO_STACK_LOCATION,
18789 pub PacketType: ULONG,
18790}
18791pub type IRP = _IRP;
18792pub type PIRP = *mut IRP;
18793pub type IO_COMPLETION_ROUTINE = ::core::option::Option<
18794 unsafe extern "C" fn(DeviceObject: PDEVICE_OBJECT, Irp: PIRP, Context: PVOID) -> NTSTATUS,
18795>;
18796pub type PIO_COMPLETION_ROUTINE = IO_COMPLETION_ROUTINE;
18797pub const _DEVICE_RELATION_TYPE_BusRelations: _DEVICE_RELATION_TYPE = 0;
18798pub const _DEVICE_RELATION_TYPE_EjectionRelations: _DEVICE_RELATION_TYPE = 1;
18799pub const _DEVICE_RELATION_TYPE_PowerRelations: _DEVICE_RELATION_TYPE = 2;
18800pub const _DEVICE_RELATION_TYPE_RemovalRelations: _DEVICE_RELATION_TYPE = 3;
18801pub const _DEVICE_RELATION_TYPE_TargetDeviceRelation: _DEVICE_RELATION_TYPE = 4;
18802pub const _DEVICE_RELATION_TYPE_SingleBusRelations: _DEVICE_RELATION_TYPE = 5;
18803pub const _DEVICE_RELATION_TYPE_TransportRelations: _DEVICE_RELATION_TYPE = 6;
18804pub type _DEVICE_RELATION_TYPE = core::ffi::c_int;
18805pub use self::_DEVICE_RELATION_TYPE as DEVICE_RELATION_TYPE;
18806pub type PDEVICE_RELATION_TYPE = *mut _DEVICE_RELATION_TYPE;
18807#[repr(C)]
18808#[derive(Debug, Copy, Clone)]
18809pub struct _DEVICE_RELATIONS {
18810 pub Count: ULONG,
18811 pub Objects: [PDEVICE_OBJECT; 1usize],
18812}
18813pub type DEVICE_RELATIONS = _DEVICE_RELATIONS;
18814pub type PDEVICE_RELATIONS = *mut _DEVICE_RELATIONS;
18815pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypeUndefined:
18816_DEVICE_USAGE_NOTIFICATION_TYPE = 0;
18817pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypePaging: _DEVICE_USAGE_NOTIFICATION_TYPE =
18818 1;
18819pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypeHibernation:
18820_DEVICE_USAGE_NOTIFICATION_TYPE = 2;
18821pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypeDumpFile: _DEVICE_USAGE_NOTIFICATION_TYPE =
18822 3;
18823pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypeBoot: _DEVICE_USAGE_NOTIFICATION_TYPE = 4;
18824pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypePostDisplay:
18825_DEVICE_USAGE_NOTIFICATION_TYPE = 5;
18826pub const _DEVICE_USAGE_NOTIFICATION_TYPE_DeviceUsageTypeGuestAssigned:
18827_DEVICE_USAGE_NOTIFICATION_TYPE = 6;
18828pub type _DEVICE_USAGE_NOTIFICATION_TYPE = core::ffi::c_int;
18829pub use self::_DEVICE_USAGE_NOTIFICATION_TYPE as DEVICE_USAGE_NOTIFICATION_TYPE;
18830#[repr(C)]
18831#[derive(Debug, Copy, Clone)]
18832pub struct _INTERFACE {
18833 pub Size: USHORT,
18834 pub Version: USHORT,
18835 pub Context: PVOID,
18836 pub InterfaceReference: PINTERFACE_REFERENCE,
18837 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
18838}
18839pub type INTERFACE = _INTERFACE;
18840pub type PINTERFACE = *mut _INTERFACE;
18841#[repr(C)]
18842#[derive(Debug, Copy, Clone)]
18843pub struct _DEVICE_CAPABILITIES {
18844 pub Size: USHORT,
18845 pub Version: USHORT,
18846 pub _bitfield_align_1: [u16; 0],
18847 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
18848 pub Address: ULONG,
18849 pub UINumber: ULONG,
18850 pub DeviceState: [DEVICE_POWER_STATE; 7usize],
18851 pub SystemWake: SYSTEM_POWER_STATE,
18852 pub DeviceWake: DEVICE_POWER_STATE,
18853 pub D1Latency: ULONG,
18854 pub D2Latency: ULONG,
18855 pub D3Latency: ULONG,
18856}
18857impl _DEVICE_CAPABILITIES {
18858 #[inline]
18859 pub fn DeviceD1(&self) -> ULONG {
18860 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
18861 }
18862 #[inline]
18863 pub fn set_DeviceD1(&mut self, val: ULONG) {
18864 unsafe {
18865 let val: u32 = ::core::mem::transmute(val);
18866 self._bitfield_1.set(0usize, 1u8, val as u64)
18867 }
18868 }
18869 #[inline]
18870 pub unsafe fn DeviceD1_raw(this: *const Self) -> ULONG {
18871 unsafe {
18872 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18873 ::core::ptr::addr_of!((*this)._bitfield_1),
18874 0usize,
18875 1u8,
18876 ) as u32)
18877 }
18878 }
18879 #[inline]
18880 pub unsafe fn set_DeviceD1_raw(this: *mut Self, val: ULONG) {
18881 unsafe {
18882 let val: u32 = ::core::mem::transmute(val);
18883 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18884 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18885 0usize,
18886 1u8,
18887 val as u64,
18888 )
18889 }
18890 }
18891 #[inline]
18892 pub fn DeviceD2(&self) -> ULONG {
18893 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
18894 }
18895 #[inline]
18896 pub fn set_DeviceD2(&mut self, val: ULONG) {
18897 unsafe {
18898 let val: u32 = ::core::mem::transmute(val);
18899 self._bitfield_1.set(1usize, 1u8, val as u64)
18900 }
18901 }
18902 #[inline]
18903 pub unsafe fn DeviceD2_raw(this: *const Self) -> ULONG {
18904 unsafe {
18905 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18906 ::core::ptr::addr_of!((*this)._bitfield_1),
18907 1usize,
18908 1u8,
18909 ) as u32)
18910 }
18911 }
18912 #[inline]
18913 pub unsafe fn set_DeviceD2_raw(this: *mut Self, val: ULONG) {
18914 unsafe {
18915 let val: u32 = ::core::mem::transmute(val);
18916 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18917 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18918 1usize,
18919 1u8,
18920 val as u64,
18921 )
18922 }
18923 }
18924 #[inline]
18925 pub fn LockSupported(&self) -> ULONG {
18926 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
18927 }
18928 #[inline]
18929 pub fn set_LockSupported(&mut self, val: ULONG) {
18930 unsafe {
18931 let val: u32 = ::core::mem::transmute(val);
18932 self._bitfield_1.set(2usize, 1u8, val as u64)
18933 }
18934 }
18935 #[inline]
18936 pub unsafe fn LockSupported_raw(this: *const Self) -> ULONG {
18937 unsafe {
18938 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18939 ::core::ptr::addr_of!((*this)._bitfield_1),
18940 2usize,
18941 1u8,
18942 ) as u32)
18943 }
18944 }
18945 #[inline]
18946 pub unsafe fn set_LockSupported_raw(this: *mut Self, val: ULONG) {
18947 unsafe {
18948 let val: u32 = ::core::mem::transmute(val);
18949 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18950 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18951 2usize,
18952 1u8,
18953 val as u64,
18954 )
18955 }
18956 }
18957 #[inline]
18958 pub fn EjectSupported(&self) -> ULONG {
18959 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
18960 }
18961 #[inline]
18962 pub fn set_EjectSupported(&mut self, val: ULONG) {
18963 unsafe {
18964 let val: u32 = ::core::mem::transmute(val);
18965 self._bitfield_1.set(3usize, 1u8, val as u64)
18966 }
18967 }
18968 #[inline]
18969 pub unsafe fn EjectSupported_raw(this: *const Self) -> ULONG {
18970 unsafe {
18971 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
18972 ::core::ptr::addr_of!((*this)._bitfield_1),
18973 3usize,
18974 1u8,
18975 ) as u32)
18976 }
18977 }
18978 #[inline]
18979 pub unsafe fn set_EjectSupported_raw(this: *mut Self, val: ULONG) {
18980 unsafe {
18981 let val: u32 = ::core::mem::transmute(val);
18982 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
18983 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
18984 3usize,
18985 1u8,
18986 val as u64,
18987 )
18988 }
18989 }
18990 #[inline]
18991 pub fn Removable(&self) -> ULONG {
18992 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
18993 }
18994 #[inline]
18995 pub fn set_Removable(&mut self, val: ULONG) {
18996 unsafe {
18997 let val: u32 = ::core::mem::transmute(val);
18998 self._bitfield_1.set(4usize, 1u8, val as u64)
18999 }
19000 }
19001 #[inline]
19002 pub unsafe fn Removable_raw(this: *const Self) -> ULONG {
19003 unsafe {
19004 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19005 ::core::ptr::addr_of!((*this)._bitfield_1),
19006 4usize,
19007 1u8,
19008 ) as u32)
19009 }
19010 }
19011 #[inline]
19012 pub unsafe fn set_Removable_raw(this: *mut Self, val: ULONG) {
19013 unsafe {
19014 let val: u32 = ::core::mem::transmute(val);
19015 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19016 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19017 4usize,
19018 1u8,
19019 val as u64,
19020 )
19021 }
19022 }
19023 #[inline]
19024 pub fn DockDevice(&self) -> ULONG {
19025 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
19026 }
19027 #[inline]
19028 pub fn set_DockDevice(&mut self, val: ULONG) {
19029 unsafe {
19030 let val: u32 = ::core::mem::transmute(val);
19031 self._bitfield_1.set(5usize, 1u8, val as u64)
19032 }
19033 }
19034 #[inline]
19035 pub unsafe fn DockDevice_raw(this: *const Self) -> ULONG {
19036 unsafe {
19037 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19038 ::core::ptr::addr_of!((*this)._bitfield_1),
19039 5usize,
19040 1u8,
19041 ) as u32)
19042 }
19043 }
19044 #[inline]
19045 pub unsafe fn set_DockDevice_raw(this: *mut Self, val: ULONG) {
19046 unsafe {
19047 let val: u32 = ::core::mem::transmute(val);
19048 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19049 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19050 5usize,
19051 1u8,
19052 val as u64,
19053 )
19054 }
19055 }
19056 #[inline]
19057 pub fn UniqueID(&self) -> ULONG {
19058 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
19059 }
19060 #[inline]
19061 pub fn set_UniqueID(&mut self, val: ULONG) {
19062 unsafe {
19063 let val: u32 = ::core::mem::transmute(val);
19064 self._bitfield_1.set(6usize, 1u8, val as u64)
19065 }
19066 }
19067 #[inline]
19068 pub unsafe fn UniqueID_raw(this: *const Self) -> ULONG {
19069 unsafe {
19070 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19071 ::core::ptr::addr_of!((*this)._bitfield_1),
19072 6usize,
19073 1u8,
19074 ) as u32)
19075 }
19076 }
19077 #[inline]
19078 pub unsafe fn set_UniqueID_raw(this: *mut Self, val: ULONG) {
19079 unsafe {
19080 let val: u32 = ::core::mem::transmute(val);
19081 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19082 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19083 6usize,
19084 1u8,
19085 val as u64,
19086 )
19087 }
19088 }
19089 #[inline]
19090 pub fn SilentInstall(&self) -> ULONG {
19091 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
19092 }
19093 #[inline]
19094 pub fn set_SilentInstall(&mut self, val: ULONG) {
19095 unsafe {
19096 let val: u32 = ::core::mem::transmute(val);
19097 self._bitfield_1.set(7usize, 1u8, val as u64)
19098 }
19099 }
19100 #[inline]
19101 pub unsafe fn SilentInstall_raw(this: *const Self) -> ULONG {
19102 unsafe {
19103 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19104 ::core::ptr::addr_of!((*this)._bitfield_1),
19105 7usize,
19106 1u8,
19107 ) as u32)
19108 }
19109 }
19110 #[inline]
19111 pub unsafe fn set_SilentInstall_raw(this: *mut Self, val: ULONG) {
19112 unsafe {
19113 let val: u32 = ::core::mem::transmute(val);
19114 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19115 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19116 7usize,
19117 1u8,
19118 val as u64,
19119 )
19120 }
19121 }
19122 #[inline]
19123 pub fn RawDeviceOK(&self) -> ULONG {
19124 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
19125 }
19126 #[inline]
19127 pub fn set_RawDeviceOK(&mut self, val: ULONG) {
19128 unsafe {
19129 let val: u32 = ::core::mem::transmute(val);
19130 self._bitfield_1.set(8usize, 1u8, val as u64)
19131 }
19132 }
19133 #[inline]
19134 pub unsafe fn RawDeviceOK_raw(this: *const Self) -> ULONG {
19135 unsafe {
19136 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19137 ::core::ptr::addr_of!((*this)._bitfield_1),
19138 8usize,
19139 1u8,
19140 ) as u32)
19141 }
19142 }
19143 #[inline]
19144 pub unsafe fn set_RawDeviceOK_raw(this: *mut Self, val: ULONG) {
19145 unsafe {
19146 let val: u32 = ::core::mem::transmute(val);
19147 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19148 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19149 8usize,
19150 1u8,
19151 val as u64,
19152 )
19153 }
19154 }
19155 #[inline]
19156 pub fn SurpriseRemovalOK(&self) -> ULONG {
19157 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
19158 }
19159 #[inline]
19160 pub fn set_SurpriseRemovalOK(&mut self, val: ULONG) {
19161 unsafe {
19162 let val: u32 = ::core::mem::transmute(val);
19163 self._bitfield_1.set(9usize, 1u8, val as u64)
19164 }
19165 }
19166 #[inline]
19167 pub unsafe fn SurpriseRemovalOK_raw(this: *const Self) -> ULONG {
19168 unsafe {
19169 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19170 ::core::ptr::addr_of!((*this)._bitfield_1),
19171 9usize,
19172 1u8,
19173 ) as u32)
19174 }
19175 }
19176 #[inline]
19177 pub unsafe fn set_SurpriseRemovalOK_raw(this: *mut Self, val: ULONG) {
19178 unsafe {
19179 let val: u32 = ::core::mem::transmute(val);
19180 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19181 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19182 9usize,
19183 1u8,
19184 val as u64,
19185 )
19186 }
19187 }
19188 #[inline]
19189 pub fn WakeFromD0(&self) -> ULONG {
19190 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
19191 }
19192 #[inline]
19193 pub fn set_WakeFromD0(&mut self, val: ULONG) {
19194 unsafe {
19195 let val: u32 = ::core::mem::transmute(val);
19196 self._bitfield_1.set(10usize, 1u8, val as u64)
19197 }
19198 }
19199 #[inline]
19200 pub unsafe fn WakeFromD0_raw(this: *const Self) -> ULONG {
19201 unsafe {
19202 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19203 ::core::ptr::addr_of!((*this)._bitfield_1),
19204 10usize,
19205 1u8,
19206 ) as u32)
19207 }
19208 }
19209 #[inline]
19210 pub unsafe fn set_WakeFromD0_raw(this: *mut Self, val: ULONG) {
19211 unsafe {
19212 let val: u32 = ::core::mem::transmute(val);
19213 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19214 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19215 10usize,
19216 1u8,
19217 val as u64,
19218 )
19219 }
19220 }
19221 #[inline]
19222 pub fn WakeFromD1(&self) -> ULONG {
19223 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
19224 }
19225 #[inline]
19226 pub fn set_WakeFromD1(&mut self, val: ULONG) {
19227 unsafe {
19228 let val: u32 = ::core::mem::transmute(val);
19229 self._bitfield_1.set(11usize, 1u8, val as u64)
19230 }
19231 }
19232 #[inline]
19233 pub unsafe fn WakeFromD1_raw(this: *const Self) -> ULONG {
19234 unsafe {
19235 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19236 ::core::ptr::addr_of!((*this)._bitfield_1),
19237 11usize,
19238 1u8,
19239 ) as u32)
19240 }
19241 }
19242 #[inline]
19243 pub unsafe fn set_WakeFromD1_raw(this: *mut Self, val: ULONG) {
19244 unsafe {
19245 let val: u32 = ::core::mem::transmute(val);
19246 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19247 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19248 11usize,
19249 1u8,
19250 val as u64,
19251 )
19252 }
19253 }
19254 #[inline]
19255 pub fn WakeFromD2(&self) -> ULONG {
19256 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
19257 }
19258 #[inline]
19259 pub fn set_WakeFromD2(&mut self, val: ULONG) {
19260 unsafe {
19261 let val: u32 = ::core::mem::transmute(val);
19262 self._bitfield_1.set(12usize, 1u8, val as u64)
19263 }
19264 }
19265 #[inline]
19266 pub unsafe fn WakeFromD2_raw(this: *const Self) -> ULONG {
19267 unsafe {
19268 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19269 ::core::ptr::addr_of!((*this)._bitfield_1),
19270 12usize,
19271 1u8,
19272 ) as u32)
19273 }
19274 }
19275 #[inline]
19276 pub unsafe fn set_WakeFromD2_raw(this: *mut Self, val: ULONG) {
19277 unsafe {
19278 let val: u32 = ::core::mem::transmute(val);
19279 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19280 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19281 12usize,
19282 1u8,
19283 val as u64,
19284 )
19285 }
19286 }
19287 #[inline]
19288 pub fn WakeFromD3(&self) -> ULONG {
19289 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
19290 }
19291 #[inline]
19292 pub fn set_WakeFromD3(&mut self, val: ULONG) {
19293 unsafe {
19294 let val: u32 = ::core::mem::transmute(val);
19295 self._bitfield_1.set(13usize, 1u8, val as u64)
19296 }
19297 }
19298 #[inline]
19299 pub unsafe fn WakeFromD3_raw(this: *const Self) -> ULONG {
19300 unsafe {
19301 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19302 ::core::ptr::addr_of!((*this)._bitfield_1),
19303 13usize,
19304 1u8,
19305 ) as u32)
19306 }
19307 }
19308 #[inline]
19309 pub unsafe fn set_WakeFromD3_raw(this: *mut Self, val: ULONG) {
19310 unsafe {
19311 let val: u32 = ::core::mem::transmute(val);
19312 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19313 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19314 13usize,
19315 1u8,
19316 val as u64,
19317 )
19318 }
19319 }
19320 #[inline]
19321 pub fn HardwareDisabled(&self) -> ULONG {
19322 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
19323 }
19324 #[inline]
19325 pub fn set_HardwareDisabled(&mut self, val: ULONG) {
19326 unsafe {
19327 let val: u32 = ::core::mem::transmute(val);
19328 self._bitfield_1.set(14usize, 1u8, val as u64)
19329 }
19330 }
19331 #[inline]
19332 pub unsafe fn HardwareDisabled_raw(this: *const Self) -> ULONG {
19333 unsafe {
19334 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19335 ::core::ptr::addr_of!((*this)._bitfield_1),
19336 14usize,
19337 1u8,
19338 ) as u32)
19339 }
19340 }
19341 #[inline]
19342 pub unsafe fn set_HardwareDisabled_raw(this: *mut Self, val: ULONG) {
19343 unsafe {
19344 let val: u32 = ::core::mem::transmute(val);
19345 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19346 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19347 14usize,
19348 1u8,
19349 val as u64,
19350 )
19351 }
19352 }
19353 #[inline]
19354 pub fn NonDynamic(&self) -> ULONG {
19355 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
19356 }
19357 #[inline]
19358 pub fn set_NonDynamic(&mut self, val: ULONG) {
19359 unsafe {
19360 let val: u32 = ::core::mem::transmute(val);
19361 self._bitfield_1.set(15usize, 1u8, val as u64)
19362 }
19363 }
19364 #[inline]
19365 pub unsafe fn NonDynamic_raw(this: *const Self) -> ULONG {
19366 unsafe {
19367 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19368 ::core::ptr::addr_of!((*this)._bitfield_1),
19369 15usize,
19370 1u8,
19371 ) as u32)
19372 }
19373 }
19374 #[inline]
19375 pub unsafe fn set_NonDynamic_raw(this: *mut Self, val: ULONG) {
19376 unsafe {
19377 let val: u32 = ::core::mem::transmute(val);
19378 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19379 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19380 15usize,
19381 1u8,
19382 val as u64,
19383 )
19384 }
19385 }
19386 #[inline]
19387 pub fn WarmEjectSupported(&self) -> ULONG {
19388 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
19389 }
19390 #[inline]
19391 pub fn set_WarmEjectSupported(&mut self, val: ULONG) {
19392 unsafe {
19393 let val: u32 = ::core::mem::transmute(val);
19394 self._bitfield_1.set(16usize, 1u8, val as u64)
19395 }
19396 }
19397 #[inline]
19398 pub unsafe fn WarmEjectSupported_raw(this: *const Self) -> ULONG {
19399 unsafe {
19400 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19401 ::core::ptr::addr_of!((*this)._bitfield_1),
19402 16usize,
19403 1u8,
19404 ) as u32)
19405 }
19406 }
19407 #[inline]
19408 pub unsafe fn set_WarmEjectSupported_raw(this: *mut Self, val: ULONG) {
19409 unsafe {
19410 let val: u32 = ::core::mem::transmute(val);
19411 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19412 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19413 16usize,
19414 1u8,
19415 val as u64,
19416 )
19417 }
19418 }
19419 #[inline]
19420 pub fn NoDisplayInUI(&self) -> ULONG {
19421 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
19422 }
19423 #[inline]
19424 pub fn set_NoDisplayInUI(&mut self, val: ULONG) {
19425 unsafe {
19426 let val: u32 = ::core::mem::transmute(val);
19427 self._bitfield_1.set(17usize, 1u8, val as u64)
19428 }
19429 }
19430 #[inline]
19431 pub unsafe fn NoDisplayInUI_raw(this: *const Self) -> ULONG {
19432 unsafe {
19433 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19434 ::core::ptr::addr_of!((*this)._bitfield_1),
19435 17usize,
19436 1u8,
19437 ) as u32)
19438 }
19439 }
19440 #[inline]
19441 pub unsafe fn set_NoDisplayInUI_raw(this: *mut Self, val: ULONG) {
19442 unsafe {
19443 let val: u32 = ::core::mem::transmute(val);
19444 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19445 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19446 17usize,
19447 1u8,
19448 val as u64,
19449 )
19450 }
19451 }
19452 #[inline]
19453 pub fn Reserved1(&self) -> ULONG {
19454 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
19455 }
19456 #[inline]
19457 pub fn set_Reserved1(&mut self, val: ULONG) {
19458 unsafe {
19459 let val: u32 = ::core::mem::transmute(val);
19460 self._bitfield_1.set(18usize, 1u8, val as u64)
19461 }
19462 }
19463 #[inline]
19464 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
19465 unsafe {
19466 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19467 ::core::ptr::addr_of!((*this)._bitfield_1),
19468 18usize,
19469 1u8,
19470 ) as u32)
19471 }
19472 }
19473 #[inline]
19474 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
19475 unsafe {
19476 let val: u32 = ::core::mem::transmute(val);
19477 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19478 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19479 18usize,
19480 1u8,
19481 val as u64,
19482 )
19483 }
19484 }
19485 #[inline]
19486 pub fn WakeFromInterrupt(&self) -> ULONG {
19487 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
19488 }
19489 #[inline]
19490 pub fn set_WakeFromInterrupt(&mut self, val: ULONG) {
19491 unsafe {
19492 let val: u32 = ::core::mem::transmute(val);
19493 self._bitfield_1.set(19usize, 1u8, val as u64)
19494 }
19495 }
19496 #[inline]
19497 pub unsafe fn WakeFromInterrupt_raw(this: *const Self) -> ULONG {
19498 unsafe {
19499 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19500 ::core::ptr::addr_of!((*this)._bitfield_1),
19501 19usize,
19502 1u8,
19503 ) as u32)
19504 }
19505 }
19506 #[inline]
19507 pub unsafe fn set_WakeFromInterrupt_raw(this: *mut Self, val: ULONG) {
19508 unsafe {
19509 let val: u32 = ::core::mem::transmute(val);
19510 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19511 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19512 19usize,
19513 1u8,
19514 val as u64,
19515 )
19516 }
19517 }
19518 #[inline]
19519 pub fn SecureDevice(&self) -> ULONG {
19520 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
19521 }
19522 #[inline]
19523 pub fn set_SecureDevice(&mut self, val: ULONG) {
19524 unsafe {
19525 let val: u32 = ::core::mem::transmute(val);
19526 self._bitfield_1.set(20usize, 1u8, val as u64)
19527 }
19528 }
19529 #[inline]
19530 pub unsafe fn SecureDevice_raw(this: *const Self) -> ULONG {
19531 unsafe {
19532 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19533 ::core::ptr::addr_of!((*this)._bitfield_1),
19534 20usize,
19535 1u8,
19536 ) as u32)
19537 }
19538 }
19539 #[inline]
19540 pub unsafe fn set_SecureDevice_raw(this: *mut Self, val: ULONG) {
19541 unsafe {
19542 let val: u32 = ::core::mem::transmute(val);
19543 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19544 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19545 20usize,
19546 1u8,
19547 val as u64,
19548 )
19549 }
19550 }
19551 #[inline]
19552 pub fn ChildOfVgaEnabledBridge(&self) -> ULONG {
19553 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
19554 }
19555 #[inline]
19556 pub fn set_ChildOfVgaEnabledBridge(&mut self, val: ULONG) {
19557 unsafe {
19558 let val: u32 = ::core::mem::transmute(val);
19559 self._bitfield_1.set(21usize, 1u8, val as u64)
19560 }
19561 }
19562 #[inline]
19563 pub unsafe fn ChildOfVgaEnabledBridge_raw(this: *const Self) -> ULONG {
19564 unsafe {
19565 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19566 ::core::ptr::addr_of!((*this)._bitfield_1),
19567 21usize,
19568 1u8,
19569 ) as u32)
19570 }
19571 }
19572 #[inline]
19573 pub unsafe fn set_ChildOfVgaEnabledBridge_raw(this: *mut Self, val: ULONG) {
19574 unsafe {
19575 let val: u32 = ::core::mem::transmute(val);
19576 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19577 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19578 21usize,
19579 1u8,
19580 val as u64,
19581 )
19582 }
19583 }
19584 #[inline]
19585 pub fn DecodeIoOnBoot(&self) -> ULONG {
19586 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
19587 }
19588 #[inline]
19589 pub fn set_DecodeIoOnBoot(&mut self, val: ULONG) {
19590 unsafe {
19591 let val: u32 = ::core::mem::transmute(val);
19592 self._bitfield_1.set(22usize, 1u8, val as u64)
19593 }
19594 }
19595 #[inline]
19596 pub unsafe fn DecodeIoOnBoot_raw(this: *const Self) -> ULONG {
19597 unsafe {
19598 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19599 ::core::ptr::addr_of!((*this)._bitfield_1),
19600 22usize,
19601 1u8,
19602 ) as u32)
19603 }
19604 }
19605 #[inline]
19606 pub unsafe fn set_DecodeIoOnBoot_raw(this: *mut Self, val: ULONG) {
19607 unsafe {
19608 let val: u32 = ::core::mem::transmute(val);
19609 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19610 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19611 22usize,
19612 1u8,
19613 val as u64,
19614 )
19615 }
19616 }
19617 #[inline]
19618 pub fn Reserved(&self) -> ULONG {
19619 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 9u8) as u32) }
19620 }
19621 #[inline]
19622 pub fn set_Reserved(&mut self, val: ULONG) {
19623 unsafe {
19624 let val: u32 = ::core::mem::transmute(val);
19625 self._bitfield_1.set(23usize, 9u8, val as u64)
19626 }
19627 }
19628 #[inline]
19629 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
19630 unsafe {
19631 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
19632 ::core::ptr::addr_of!((*this)._bitfield_1),
19633 23usize,
19634 9u8,
19635 ) as u32)
19636 }
19637 }
19638 #[inline]
19639 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
19640 unsafe {
19641 let val: u32 = ::core::mem::transmute(val);
19642 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
19643 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
19644 23usize,
19645 9u8,
19646 val as u64,
19647 )
19648 }
19649 }
19650 #[inline]
19651 pub fn new_bitfield_1(
19652 DeviceD1: ULONG,
19653 DeviceD2: ULONG,
19654 LockSupported: ULONG,
19655 EjectSupported: ULONG,
19656 Removable: ULONG,
19657 DockDevice: ULONG,
19658 UniqueID: ULONG,
19659 SilentInstall: ULONG,
19660 RawDeviceOK: ULONG,
19661 SurpriseRemovalOK: ULONG,
19662 WakeFromD0: ULONG,
19663 WakeFromD1: ULONG,
19664 WakeFromD2: ULONG,
19665 WakeFromD3: ULONG,
19666 HardwareDisabled: ULONG,
19667 NonDynamic: ULONG,
19668 WarmEjectSupported: ULONG,
19669 NoDisplayInUI: ULONG,
19670 Reserved1: ULONG,
19671 WakeFromInterrupt: ULONG,
19672 SecureDevice: ULONG,
19673 ChildOfVgaEnabledBridge: ULONG,
19674 DecodeIoOnBoot: ULONG,
19675 Reserved: ULONG,
19676 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
19677 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
19678 __bindgen_bitfield_unit.set(0usize, 1u8, {
19679 let DeviceD1: u32 = unsafe { ::core::mem::transmute(DeviceD1) };
19680 DeviceD1 as u64
19681 });
19682 __bindgen_bitfield_unit.set(1usize, 1u8, {
19683 let DeviceD2: u32 = unsafe { ::core::mem::transmute(DeviceD2) };
19684 DeviceD2 as u64
19685 });
19686 __bindgen_bitfield_unit.set(2usize, 1u8, {
19687 let LockSupported: u32 = unsafe { ::core::mem::transmute(LockSupported) };
19688 LockSupported as u64
19689 });
19690 __bindgen_bitfield_unit.set(3usize, 1u8, {
19691 let EjectSupported: u32 = unsafe { ::core::mem::transmute(EjectSupported) };
19692 EjectSupported as u64
19693 });
19694 __bindgen_bitfield_unit.set(4usize, 1u8, {
19695 let Removable: u32 = unsafe { ::core::mem::transmute(Removable) };
19696 Removable as u64
19697 });
19698 __bindgen_bitfield_unit.set(5usize, 1u8, {
19699 let DockDevice: u32 = unsafe { ::core::mem::transmute(DockDevice) };
19700 DockDevice as u64
19701 });
19702 __bindgen_bitfield_unit.set(6usize, 1u8, {
19703 let UniqueID: u32 = unsafe { ::core::mem::transmute(UniqueID) };
19704 UniqueID as u64
19705 });
19706 __bindgen_bitfield_unit.set(7usize, 1u8, {
19707 let SilentInstall: u32 = unsafe { ::core::mem::transmute(SilentInstall) };
19708 SilentInstall as u64
19709 });
19710 __bindgen_bitfield_unit.set(8usize, 1u8, {
19711 let RawDeviceOK: u32 = unsafe { ::core::mem::transmute(RawDeviceOK) };
19712 RawDeviceOK as u64
19713 });
19714 __bindgen_bitfield_unit.set(9usize, 1u8, {
19715 let SurpriseRemovalOK: u32 = unsafe { ::core::mem::transmute(SurpriseRemovalOK) };
19716 SurpriseRemovalOK as u64
19717 });
19718 __bindgen_bitfield_unit.set(10usize, 1u8, {
19719 let WakeFromD0: u32 = unsafe { ::core::mem::transmute(WakeFromD0) };
19720 WakeFromD0 as u64
19721 });
19722 __bindgen_bitfield_unit.set(11usize, 1u8, {
19723 let WakeFromD1: u32 = unsafe { ::core::mem::transmute(WakeFromD1) };
19724 WakeFromD1 as u64
19725 });
19726 __bindgen_bitfield_unit.set(12usize, 1u8, {
19727 let WakeFromD2: u32 = unsafe { ::core::mem::transmute(WakeFromD2) };
19728 WakeFromD2 as u64
19729 });
19730 __bindgen_bitfield_unit.set(13usize, 1u8, {
19731 let WakeFromD3: u32 = unsafe { ::core::mem::transmute(WakeFromD3) };
19732 WakeFromD3 as u64
19733 });
19734 __bindgen_bitfield_unit.set(14usize, 1u8, {
19735 let HardwareDisabled: u32 = unsafe { ::core::mem::transmute(HardwareDisabled) };
19736 HardwareDisabled as u64
19737 });
19738 __bindgen_bitfield_unit.set(15usize, 1u8, {
19739 let NonDynamic: u32 = unsafe { ::core::mem::transmute(NonDynamic) };
19740 NonDynamic as u64
19741 });
19742 __bindgen_bitfield_unit.set(16usize, 1u8, {
19743 let WarmEjectSupported: u32 = unsafe { ::core::mem::transmute(WarmEjectSupported) };
19744 WarmEjectSupported as u64
19745 });
19746 __bindgen_bitfield_unit.set(17usize, 1u8, {
19747 let NoDisplayInUI: u32 = unsafe { ::core::mem::transmute(NoDisplayInUI) };
19748 NoDisplayInUI as u64
19749 });
19750 __bindgen_bitfield_unit.set(18usize, 1u8, {
19751 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
19752 Reserved1 as u64
19753 });
19754 __bindgen_bitfield_unit.set(19usize, 1u8, {
19755 let WakeFromInterrupt: u32 = unsafe { ::core::mem::transmute(WakeFromInterrupt) };
19756 WakeFromInterrupt as u64
19757 });
19758 __bindgen_bitfield_unit.set(20usize, 1u8, {
19759 let SecureDevice: u32 = unsafe { ::core::mem::transmute(SecureDevice) };
19760 SecureDevice as u64
19761 });
19762 __bindgen_bitfield_unit.set(21usize, 1u8, {
19763 let ChildOfVgaEnabledBridge: u32 =
19764 unsafe { ::core::mem::transmute(ChildOfVgaEnabledBridge) };
19765 ChildOfVgaEnabledBridge as u64
19766 });
19767 __bindgen_bitfield_unit.set(22usize, 1u8, {
19768 let DecodeIoOnBoot: u32 = unsafe { ::core::mem::transmute(DecodeIoOnBoot) };
19769 DecodeIoOnBoot as u64
19770 });
19771 __bindgen_bitfield_unit.set(23usize, 9u8, {
19772 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
19773 Reserved as u64
19774 });
19775 __bindgen_bitfield_unit
19776 }
19777}
19778pub type DEVICE_CAPABILITIES = _DEVICE_CAPABILITIES;
19779pub type PDEVICE_CAPABILITIES = *mut _DEVICE_CAPABILITIES;
19780#[repr(C)]
19781#[derive(Debug, Copy, Clone)]
19782pub struct _POWER_SEQUENCE {
19783 pub SequenceD1: ULONG,
19784 pub SequenceD2: ULONG,
19785 pub SequenceD3: ULONG,
19786}
19787pub type POWER_SEQUENCE = _POWER_SEQUENCE;
19788pub type PPOWER_SEQUENCE = *mut _POWER_SEQUENCE;
19789pub const BUS_QUERY_ID_TYPE_BusQueryDeviceID: BUS_QUERY_ID_TYPE = 0;
19790pub const BUS_QUERY_ID_TYPE_BusQueryHardwareIDs: BUS_QUERY_ID_TYPE = 1;
19791pub const BUS_QUERY_ID_TYPE_BusQueryCompatibleIDs: BUS_QUERY_ID_TYPE = 2;
19792pub const BUS_QUERY_ID_TYPE_BusQueryInstanceID: BUS_QUERY_ID_TYPE = 3;
19793pub const BUS_QUERY_ID_TYPE_BusQueryDeviceSerialNumber: BUS_QUERY_ID_TYPE = 4;
19794pub const BUS_QUERY_ID_TYPE_BusQueryContainerID: BUS_QUERY_ID_TYPE = 5;
19795pub type BUS_QUERY_ID_TYPE = core::ffi::c_int;
19796pub type PBUS_QUERY_ID_TYPE = *mut BUS_QUERY_ID_TYPE;
19797pub type PNP_DEVICE_STATE = ULONG;
19798pub type PPNP_DEVICE_STATE = *mut ULONG;
19799pub const DEVICE_TEXT_TYPE_DeviceTextDescription: DEVICE_TEXT_TYPE = 0;
19800pub const DEVICE_TEXT_TYPE_DeviceTextLocationInformation: DEVICE_TEXT_TYPE = 1;
19801pub type DEVICE_TEXT_TYPE = core::ffi::c_int;
19802pub type PDEVICE_TEXT_TYPE = *mut DEVICE_TEXT_TYPE;
19803#[repr(C)]
19804#[derive(Copy, Clone)]
19805pub struct _IO_STACK_LOCATION {
19806 pub MajorFunction: UCHAR,
19807 pub MinorFunction: UCHAR,
19808 pub Flags: UCHAR,
19809 pub Control: UCHAR,
19810 pub Parameters: _IO_STACK_LOCATION__bindgen_ty_1,
19811 pub DeviceObject: PDEVICE_OBJECT,
19812 pub FileObject: PFILE_OBJECT,
19813 pub CompletionRoutine: PIO_COMPLETION_ROUTINE,
19814 pub Context: PVOID,
19815}
19816#[repr(C)]
19817#[derive(Copy, Clone)]
19818pub union _IO_STACK_LOCATION__bindgen_ty_1 {
19819 pub Create: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_1,
19820 pub CreatePipe: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_2,
19821 pub CreateMailslot: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_3,
19822 pub Read: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_4,
19823 pub Write: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_5,
19824 pub QueryDirectory: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_6,
19825 pub NotifyDirectory: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_7,
19826 pub NotifyDirectoryEx: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_8,
19827 pub QueryFile: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_9,
19828 pub SetFile: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10,
19829 pub QueryEa: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_11,
19830 pub SetEa: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_12,
19831 pub QueryVolume: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_13,
19832 pub SetVolume: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_14,
19833 pub FileSystemControl: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_15,
19834 pub LockControl: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_16,
19835 pub DeviceIoControl: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_17,
19836 pub QuerySecurity: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_18,
19837 pub SetSecurity: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_19,
19838 pub MountVolume: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_20,
19839 pub VerifyVolume: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_21,
19840 pub Scsi: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_22,
19841 pub QueryQuota: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_23,
19842 pub SetQuota: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_24,
19843 pub QueryDeviceRelations: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_25,
19844 pub QueryInterface: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_26,
19845 pub DeviceCapabilities: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_27,
19846 pub FilterResourceRequirements: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_28,
19847 pub ReadWriteConfig: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_29,
19848 pub SetLock: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_30,
19849 pub QueryId: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_31,
19850 pub QueryDeviceText: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_32,
19851 pub UsageNotification: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_33,
19852 pub WaitWake: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_34,
19853 pub PowerSequence: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_35,
19854 pub Power: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_36,
19855 pub StartDevice: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_37,
19856 pub WMI: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_38,
19857 pub Others: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_39,
19858}
19859#[repr(C)]
19860#[derive(Debug, Copy, Clone)]
19861pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_1 {
19862 pub SecurityContext: PIO_SECURITY_CONTEXT,
19863 pub Options: ULONG,
19864 pub __bindgen_padding_0: [u16; 2usize],
19865 pub FileAttributes: USHORT,
19866 pub ShareAccess: USHORT,
19867 pub __bindgen_padding_1: u32,
19868 pub EaLength: ULONG,
19869}
19870#[repr(C)]
19871#[derive(Debug, Copy, Clone)]
19872pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_2 {
19873 pub SecurityContext: PIO_SECURITY_CONTEXT,
19874 pub Options: ULONG,
19875 pub __bindgen_padding_0: [u16; 2usize],
19876 pub Reserved: USHORT,
19877 pub ShareAccess: USHORT,
19878 pub Parameters: PNAMED_PIPE_CREATE_PARAMETERS,
19879}
19880#[repr(C)]
19881#[derive(Debug, Copy, Clone)]
19882pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_3 {
19883 pub SecurityContext: PIO_SECURITY_CONTEXT,
19884 pub Options: ULONG,
19885 pub __bindgen_padding_0: [u16; 2usize],
19886 pub Reserved: USHORT,
19887 pub ShareAccess: USHORT,
19888 pub Parameters: PMAILSLOT_CREATE_PARAMETERS,
19889}
19890#[repr(C)]
19891#[derive(Copy, Clone)]
19892pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_4 {
19893 pub Length: ULONG,
19894 pub __bindgen_padding_0: u32,
19895 pub Key: ULONG,
19896 pub Flags: ULONG,
19897 pub ByteOffset: LARGE_INTEGER,
19898}
19899#[repr(C)]
19900#[derive(Copy, Clone)]
19901pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_5 {
19902 pub Length: ULONG,
19903 pub __bindgen_padding_0: u32,
19904 pub Key: ULONG,
19905 pub Flags: ULONG,
19906 pub ByteOffset: LARGE_INTEGER,
19907}
19908#[repr(C)]
19909#[derive(Debug, Copy, Clone)]
19910pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_6 {
19911 pub Length: ULONG,
19912 pub FileName: PUNICODE_STRING,
19913 pub FileInformationClass: FILE_INFORMATION_CLASS,
19914 pub __bindgen_padding_0: u32,
19915 pub FileIndex: ULONG,
19916}
19917#[repr(C)]
19918#[repr(align(8))]
19919#[derive(Debug, Copy, Clone)]
19920pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_7 {
19921 pub Length: ULONG,
19922 pub __bindgen_padding_0: u32,
19923 pub CompletionFilter: ULONG,
19924}
19925#[repr(C)]
19926#[repr(align(8))]
19927#[derive(Debug, Copy, Clone)]
19928pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_8 {
19929 pub Length: ULONG,
19930 pub __bindgen_padding_0: u32,
19931 pub CompletionFilter: ULONG,
19932 pub __bindgen_padding_1: u32,
19933 pub DirectoryNotifyInformationClass: DIRECTORY_NOTIFY_INFORMATION_CLASS,
19934}
19935#[repr(C)]
19936#[repr(align(8))]
19937#[derive(Debug, Copy, Clone)]
19938pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_9 {
19939 pub Length: ULONG,
19940 pub __bindgen_padding_0: u32,
19941 pub FileInformationClass: FILE_INFORMATION_CLASS,
19942}
19943#[repr(C)]
19944#[derive(Copy, Clone)]
19945pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10 {
19946 pub Length: ULONG,
19947 pub __bindgen_padding_0: u32,
19948 pub FileInformationClass: FILE_INFORMATION_CLASS,
19949 pub FileObject: PFILE_OBJECT,
19950 pub __bindgen_anon_1: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10__bindgen_ty_1,
19951}
19952#[repr(C)]
19953#[derive(Copy, Clone)]
19954pub union _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10__bindgen_ty_1 {
19955 pub __bindgen_anon_1:
19956 _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10__bindgen_ty_1__bindgen_ty_1,
19957 pub ClusterCount: ULONG,
19958 pub DeleteHandle: HANDLE,
19959}
19960#[repr(C)]
19961#[derive(Debug, Copy, Clone)]
19962pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_10__bindgen_ty_1__bindgen_ty_1 {
19963 pub ReplaceIfExists: BOOLEAN,
19964 pub AdvanceOnly: BOOLEAN,
19965}
19966#[repr(C)]
19967#[derive(Debug, Copy, Clone)]
19968pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_11 {
19969 pub Length: ULONG,
19970 pub EaList: PVOID,
19971 pub EaListLength: ULONG,
19972 pub __bindgen_padding_0: u32,
19973 pub EaIndex: ULONG,
19974}
19975#[repr(C)]
19976#[derive(Debug, Copy, Clone)]
19977pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_12 {
19978 pub Length: ULONG,
19979}
19980#[repr(C)]
19981#[repr(align(8))]
19982#[derive(Debug, Copy, Clone)]
19983pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_13 {
19984 pub Length: ULONG,
19985 pub __bindgen_padding_0: u32,
19986 pub FsInformationClass: FS_INFORMATION_CLASS,
19987}
19988#[repr(C)]
19989#[repr(align(8))]
19990#[derive(Debug, Copy, Clone)]
19991pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_14 {
19992 pub Length: ULONG,
19993 pub __bindgen_padding_0: u32,
19994 pub FsInformationClass: FS_INFORMATION_CLASS,
19995}
19996#[repr(C)]
19997#[derive(Debug, Copy, Clone)]
19998pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_15 {
19999 pub OutputBufferLength: ULONG,
20000 pub __bindgen_padding_0: u32,
20001 pub InputBufferLength: ULONG,
20002 pub __bindgen_padding_1: u32,
20003 pub FsControlCode: ULONG,
20004 pub Type3InputBuffer: PVOID,
20005}
20006#[repr(C)]
20007#[derive(Copy, Clone)]
20008pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_16 {
20009 pub Length: PLARGE_INTEGER,
20010 pub Key: ULONG,
20011 pub ByteOffset: LARGE_INTEGER,
20012}
20013#[repr(C)]
20014#[derive(Debug, Copy, Clone)]
20015pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_17 {
20016 pub OutputBufferLength: ULONG,
20017 pub __bindgen_padding_0: u32,
20018 pub InputBufferLength: ULONG,
20019 pub __bindgen_padding_1: u32,
20020 pub IoControlCode: ULONG,
20021 pub Type3InputBuffer: PVOID,
20022}
20023#[repr(C)]
20024#[repr(align(8))]
20025#[derive(Debug, Copy, Clone)]
20026pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_18 {
20027 pub SecurityInformation: SECURITY_INFORMATION,
20028 pub __bindgen_padding_0: u32,
20029 pub Length: ULONG,
20030}
20031#[repr(C)]
20032#[derive(Debug, Copy, Clone)]
20033pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_19 {
20034 pub SecurityInformation: SECURITY_INFORMATION,
20035 pub SecurityDescriptor: PSECURITY_DESCRIPTOR,
20036}
20037#[repr(C)]
20038#[derive(Debug, Copy, Clone)]
20039pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_20 {
20040 pub Vpb: PVPB,
20041 pub DeviceObject: PDEVICE_OBJECT,
20042 pub OutputBufferLength: ULONG,
20043}
20044#[repr(C)]
20045#[derive(Debug, Copy, Clone)]
20046pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_21 {
20047 pub Vpb: PVPB,
20048 pub DeviceObject: PDEVICE_OBJECT,
20049}
20050#[repr(C)]
20051#[derive(Debug, Copy, Clone)]
20052pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_22 {
20053 pub Srb: *mut _SCSI_REQUEST_BLOCK,
20054}
20055#[repr(C)]
20056#[derive(Debug, Copy, Clone)]
20057pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_23 {
20058 pub Length: ULONG,
20059 pub StartSid: PSID,
20060 pub SidList: PFILE_GET_QUOTA_INFORMATION,
20061 pub SidListLength: ULONG,
20062}
20063#[repr(C)]
20064#[derive(Debug, Copy, Clone)]
20065pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_24 {
20066 pub Length: ULONG,
20067}
20068#[repr(C)]
20069#[derive(Debug, Copy, Clone)]
20070pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_25 {
20071 pub Type: DEVICE_RELATION_TYPE,
20072}
20073#[repr(C)]
20074#[derive(Debug, Copy, Clone)]
20075pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_26 {
20076 pub InterfaceType: *const GUID,
20077 pub Size: USHORT,
20078 pub Version: USHORT,
20079 pub Interface: PINTERFACE,
20080 pub InterfaceSpecificData: PVOID,
20081}
20082#[repr(C)]
20083#[derive(Debug, Copy, Clone)]
20084pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_27 {
20085 pub Capabilities: PDEVICE_CAPABILITIES,
20086}
20087#[repr(C)]
20088#[derive(Debug, Copy, Clone)]
20089pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_28 {
20090 pub IoResourceRequirementList: PIO_RESOURCE_REQUIREMENTS_LIST,
20091}
20092#[repr(C)]
20093#[derive(Debug, Copy, Clone)]
20094pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_29 {
20095 pub WhichSpace: ULONG,
20096 pub Buffer: PVOID,
20097 pub Offset: ULONG,
20098 pub __bindgen_padding_0: u32,
20099 pub Length: ULONG,
20100}
20101#[repr(C)]
20102#[derive(Debug, Copy, Clone)]
20103pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_30 {
20104 pub Lock: BOOLEAN,
20105}
20106#[repr(C)]
20107#[derive(Debug, Copy, Clone)]
20108pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_31 {
20109 pub IdType: BUS_QUERY_ID_TYPE,
20110}
20111#[repr(C)]
20112#[repr(align(8))]
20113#[derive(Debug, Copy, Clone)]
20114pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_32 {
20115 pub DeviceTextType: DEVICE_TEXT_TYPE,
20116 pub __bindgen_padding_0: u32,
20117 pub LocaleId: LCID,
20118}
20119#[repr(C)]
20120#[repr(align(8))]
20121#[derive(Debug, Copy, Clone)]
20122pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_33 {
20123 pub InPath: BOOLEAN,
20124 pub Reserved: [BOOLEAN; 3usize],
20125 pub __bindgen_padding_0: u32,
20126 pub Type: DEVICE_USAGE_NOTIFICATION_TYPE,
20127}
20128#[repr(C)]
20129#[derive(Debug, Copy, Clone)]
20130pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_34 {
20131 pub PowerState: SYSTEM_POWER_STATE,
20132}
20133#[repr(C)]
20134#[derive(Debug, Copy, Clone)]
20135pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_35 {
20136 pub PowerSequence: PPOWER_SEQUENCE,
20137}
20138#[repr(C)]
20139#[repr(align(8))]
20140#[derive(Copy, Clone)]
20141pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_36 {
20142 pub __bindgen_anon_1: _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_36__bindgen_ty_1,
20143 pub __bindgen_padding_0: u32,
20144 pub Type: POWER_STATE_TYPE,
20145 pub __bindgen_padding_1: u32,
20146 pub State: POWER_STATE,
20147 pub __bindgen_padding_2: u32,
20148 pub ShutdownType: POWER_ACTION,
20149}
20150#[repr(C)]
20151#[derive(Copy, Clone)]
20152pub union _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_36__bindgen_ty_1 {
20153 pub SystemContext: ULONG,
20154 pub SystemPowerStateContext: SYSTEM_POWER_STATE_CONTEXT,
20155}
20156#[repr(C)]
20157#[derive(Debug, Copy, Clone)]
20158pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_37 {
20159 pub AllocatedResources: PCM_RESOURCE_LIST,
20160 pub AllocatedResourcesTranslated: PCM_RESOURCE_LIST,
20161}
20162#[repr(C)]
20163#[derive(Debug, Copy, Clone)]
20164pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_38 {
20165 pub ProviderId: ULONG_PTR,
20166 pub DataPath: PVOID,
20167 pub BufferSize: ULONG,
20168 pub Buffer: PVOID,
20169}
20170#[repr(C)]
20171#[derive(Debug, Copy, Clone)]
20172pub struct _IO_STACK_LOCATION__bindgen_ty_1__bindgen_ty_39 {
20173 pub Argument1: PVOID,
20174 pub Argument2: PVOID,
20175 pub Argument3: PVOID,
20176 pub Argument4: PVOID,
20177}
20178pub type IO_STACK_LOCATION = _IO_STACK_LOCATION;
20179#[repr(C)]
20180#[derive(Debug, Copy, Clone)]
20181pub struct _SHARE_ACCESS {
20182 pub OpenCount: ULONG,
20183 pub Readers: ULONG,
20184 pub Writers: ULONG,
20185 pub Deleters: ULONG,
20186 pub SharedRead: ULONG,
20187 pub SharedWrite: ULONG,
20188 pub SharedDelete: ULONG,
20189}
20190pub type SHARE_ACCESS = _SHARE_ACCESS;
20191pub type PSHARE_ACCESS = *mut _SHARE_ACCESS;
20192#[repr(C)]
20193#[derive(Debug, Copy, Clone)]
20194pub struct _LINK_SHARE_ACCESS {
20195 pub OpenCount: ULONG,
20196 pub Deleters: ULONG,
20197 pub SharedDelete: ULONG,
20198}
20199pub type LINK_SHARE_ACCESS = _LINK_SHARE_ACCESS;
20200pub type PLINK_SHARE_ACCESS = *mut _LINK_SHARE_ACCESS;
20201unsafe extern "C" {
20202 pub fn IoAcquireCancelSpinLock(Irql: PKIRQL);
20203}
20204unsafe extern "C" {
20205 pub fn IoAllocateDriverObjectExtension(
20206 DriverObject: PDRIVER_OBJECT,
20207 ClientIdentificationAddress: PVOID,
20208 DriverObjectExtensionSize: ULONG,
20209 DriverObjectExtension: *mut PVOID,
20210 ) -> NTSTATUS;
20211}
20212unsafe extern "C" {
20213 pub fn IoAllocateErrorLogEntry(IoObject: PVOID, EntrySize: UCHAR) -> PVOID;
20214}
20215unsafe extern "C" {
20216 pub fn IoAllocateIrp(StackSize: CCHAR, ChargeQuota: BOOLEAN) -> PIRP;
20217}
20218unsafe extern "C" {
20219 pub fn IoAllocateIrpEx(
20220 DeviceObject: PDEVICE_OBJECT,
20221 StackSize: CCHAR,
20222 ChargeQuota: BOOLEAN,
20223 ) -> PIRP;
20224}
20225unsafe extern "C" {
20226 pub fn IoAllocateMdl(
20227 VirtualAddress: PVOID,
20228 Length: ULONG,
20229 SecondaryBuffer: BOOLEAN,
20230 ChargeQuota: BOOLEAN,
20231 Irp: PIRP,
20232 ) -> PMDL;
20233}
20234pub const _IO_PAGING_PRIORITY_IoPagingPriorityInvalid: _IO_PAGING_PRIORITY = 0;
20235pub const _IO_PAGING_PRIORITY_IoPagingPriorityNormal: _IO_PAGING_PRIORITY = 1;
20236pub const _IO_PAGING_PRIORITY_IoPagingPriorityHigh: _IO_PAGING_PRIORITY = 2;
20237pub const _IO_PAGING_PRIORITY_IoPagingPriorityReserved1: _IO_PAGING_PRIORITY = 3;
20238pub const _IO_PAGING_PRIORITY_IoPagingPriorityReserved2: _IO_PAGING_PRIORITY = 4;
20239pub type _IO_PAGING_PRIORITY = core::ffi::c_int;
20240pub use self::_IO_PAGING_PRIORITY as IO_PAGING_PRIORITY;
20241unsafe extern "C" {
20242 pub fn IoAttachDevice(
20243 SourceDevice: PDEVICE_OBJECT,
20244 TargetDevice: PUNICODE_STRING,
20245 AttachedDevice: *mut PDEVICE_OBJECT,
20246 ) -> NTSTATUS;
20247}
20248unsafe extern "C" {
20249 pub fn IoAttachDeviceToDeviceStack(
20250 SourceDevice: PDEVICE_OBJECT,
20251 TargetDevice: PDEVICE_OBJECT,
20252 ) -> PDEVICE_OBJECT;
20253}
20254unsafe extern "C" {
20255 pub fn IoBuildAsynchronousFsdRequest(
20256 MajorFunction: ULONG,
20257 DeviceObject: PDEVICE_OBJECT,
20258 Buffer: PVOID,
20259 Length: ULONG,
20260 StartingOffset: PLARGE_INTEGER,
20261 IoStatusBlock: PIO_STATUS_BLOCK,
20262 ) -> PIRP;
20263}
20264unsafe extern "C" {
20265 pub fn IoBuildDeviceIoControlRequest(
20266 IoControlCode: ULONG,
20267 DeviceObject: PDEVICE_OBJECT,
20268 InputBuffer: PVOID,
20269 InputBufferLength: ULONG,
20270 OutputBuffer: PVOID,
20271 OutputBufferLength: ULONG,
20272 InternalDeviceIoControl: BOOLEAN,
20273 Event: PKEVENT,
20274 IoStatusBlock: PIO_STATUS_BLOCK,
20275 ) -> PIRP;
20276}
20277unsafe extern "C" {
20278 pub fn IoBuildPartialMdl(
20279 SourceMdl: PMDL,
20280 TargetMdl: PMDL,
20281 VirtualAddress: PVOID,
20282 Length: ULONG,
20283 );
20284}
20285#[repr(C)]
20286#[derive(Debug, Copy, Clone)]
20287pub struct _BOOTDISK_INFORMATION {
20288 pub BootPartitionOffset: LONGLONG,
20289 pub SystemPartitionOffset: LONGLONG,
20290 pub BootDeviceSignature: ULONG,
20291 pub SystemDeviceSignature: ULONG,
20292}
20293pub type BOOTDISK_INFORMATION = _BOOTDISK_INFORMATION;
20294pub type PBOOTDISK_INFORMATION = *mut _BOOTDISK_INFORMATION;
20295#[repr(C)]
20296#[derive(Debug, Copy, Clone)]
20297pub struct _BOOTDISK_INFORMATION_EX {
20298 pub BootPartitionOffset: LONGLONG,
20299 pub SystemPartitionOffset: LONGLONG,
20300 pub BootDeviceSignature: ULONG,
20301 pub SystemDeviceSignature: ULONG,
20302 pub BootDeviceGuid: GUID,
20303 pub SystemDeviceGuid: GUID,
20304 pub BootDeviceIsGpt: BOOLEAN,
20305 pub SystemDeviceIsGpt: BOOLEAN,
20306}
20307pub type BOOTDISK_INFORMATION_EX = _BOOTDISK_INFORMATION_EX;
20308pub type PBOOTDISK_INFORMATION_EX = *mut _BOOTDISK_INFORMATION_EX;
20309#[repr(C)]
20310#[derive(Copy, Clone)]
20311pub struct _LOADER_PARTITION_INFORMATION_EX {
20312 pub PartitionStyle: ULONG,
20313 pub PartitionNumber: ULONG,
20314 pub __bindgen_anon_1: _LOADER_PARTITION_INFORMATION_EX__bindgen_ty_1,
20315 pub Flags: ULONG,
20316}
20317#[repr(C)]
20318#[derive(Copy, Clone)]
20319pub union _LOADER_PARTITION_INFORMATION_EX__bindgen_ty_1 {
20320 pub Signature: ULONG,
20321 pub DeviceId: GUID,
20322}
20323pub type LOADER_PARTITION_INFORMATION_EX = _LOADER_PARTITION_INFORMATION_EX;
20324pub type PLOADER_PARTITION_INFORMATION_EX = *mut _LOADER_PARTITION_INFORMATION_EX;
20325#[repr(C)]
20326#[derive(Copy, Clone)]
20327pub struct _BOOTDISK_INFORMATION_LITE {
20328 pub NumberEntries: ULONG,
20329 pub Entries: [LOADER_PARTITION_INFORMATION_EX; 1usize],
20330}
20331pub type BOOTDISK_INFORMATION_LITE = _BOOTDISK_INFORMATION_LITE;
20332pub type PBOOTDISK_INFORMATION_LITE = *mut _BOOTDISK_INFORMATION_LITE;
20333unsafe extern "C" {
20334 pub fn IoGetBootDiskInformation(
20335 BootDiskInformation: PBOOTDISK_INFORMATION,
20336 Size: ULONG,
20337 ) -> NTSTATUS;
20338}
20339unsafe extern "C" {
20340 pub fn IoGetBootDiskInformationLite(
20341 BootDiskInformation: *mut PBOOTDISK_INFORMATION_LITE,
20342 ) -> NTSTATUS;
20343}
20344unsafe extern "C" {
20345 pub fn IoBuildSynchronousFsdRequest(
20346 MajorFunction: ULONG,
20347 DeviceObject: PDEVICE_OBJECT,
20348 Buffer: PVOID,
20349 Length: ULONG,
20350 StartingOffset: PLARGE_INTEGER,
20351 Event: PKEVENT,
20352 IoStatusBlock: PIO_STATUS_BLOCK,
20353 ) -> PIRP;
20354}
20355unsafe extern "C" {
20356 pub fn IofCallDriver(DeviceObject: PDEVICE_OBJECT, Irp: PIRP) -> NTSTATUS;
20357}
20358unsafe extern "C" {
20359 pub fn IoCancelIrp(Irp: PIRP) -> BOOLEAN;
20360}
20361unsafe extern "C" {
20362 pub fn IoCheckShareAccess(
20363 DesiredAccess: ACCESS_MASK,
20364 DesiredShareAccess: ULONG,
20365 FileObject: PFILE_OBJECT,
20366 ShareAccess: PSHARE_ACCESS,
20367 Update: BOOLEAN,
20368 ) -> NTSTATUS;
20369}
20370unsafe extern "C" {
20371 pub fn IoCheckShareAccessEx(
20372 DesiredAccess: ACCESS_MASK,
20373 DesiredShareAccess: ULONG,
20374 FileObject: PFILE_OBJECT,
20375 ShareAccess: PSHARE_ACCESS,
20376 Update: BOOLEAN,
20377 WritePermission: PBOOLEAN,
20378 ) -> NTSTATUS;
20379}
20380unsafe extern "C" {
20381 pub fn IoCheckLinkShareAccess(
20382 DesiredAccess: ACCESS_MASK,
20383 DesiredShareAccess: ULONG,
20384 FileObject: PFILE_OBJECT,
20385 ShareAccess: PSHARE_ACCESS,
20386 LinkShareAccess: PLINK_SHARE_ACCESS,
20387 IoShareAccessFlags: ULONG,
20388 ) -> NTSTATUS;
20389}
20390pub const _IO_COMPLETION_ROUTINE_RESULT_ContinueCompletion: _IO_COMPLETION_ROUTINE_RESULT = 0;
20391pub const _IO_COMPLETION_ROUTINE_RESULT_StopCompletion: _IO_COMPLETION_ROUTINE_RESULT = -1073741802;
20392pub type _IO_COMPLETION_ROUTINE_RESULT = core::ffi::c_int;
20393pub use self::_IO_COMPLETION_ROUTINE_RESULT as IO_COMPLETION_ROUTINE_RESULT;
20394pub type PIO_COMPLETION_ROUTINE_RESULT = *mut _IO_COMPLETION_ROUTINE_RESULT;
20395unsafe extern "C" {
20396 pub fn IofCompleteRequest(Irp: PIRP, PriorityBoost: CCHAR);
20397}
20398unsafe extern "C" {
20399 pub fn IoConnectInterrupt(
20400 InterruptObject: *mut PKINTERRUPT,
20401 ServiceRoutine: PKSERVICE_ROUTINE,
20402 ServiceContext: PVOID,
20403 SpinLock: PKSPIN_LOCK,
20404 Vector: ULONG,
20405 Irql: KIRQL,
20406 SynchronizeIrql: KIRQL,
20407 InterruptMode: KINTERRUPT_MODE,
20408 ShareVector: BOOLEAN,
20409 ProcessorEnableMask: KAFFINITY,
20410 FloatingSave: BOOLEAN,
20411 ) -> NTSTATUS;
20412}
20413#[repr(C)]
20414#[derive(Copy, Clone)]
20415pub struct _IO_INTERRUPT_MESSAGE_INFO_ENTRY {
20416 pub MessageAddress: PHYSICAL_ADDRESS,
20417 pub TargetProcessorSet: KAFFINITY,
20418 pub InterruptObject: PKINTERRUPT,
20419 pub MessageData: ULONG,
20420 pub Vector: ULONG,
20421 pub Irql: KIRQL,
20422 pub Mode: KINTERRUPT_MODE,
20423 pub Polarity: KINTERRUPT_POLARITY,
20424}
20425pub type IO_INTERRUPT_MESSAGE_INFO_ENTRY = _IO_INTERRUPT_MESSAGE_INFO_ENTRY;
20426pub type PIO_INTERRUPT_MESSAGE_INFO_ENTRY = *mut _IO_INTERRUPT_MESSAGE_INFO_ENTRY;
20427#[repr(C)]
20428#[derive(Copy, Clone)]
20429pub struct _IO_INTERRUPT_MESSAGE_INFO {
20430 pub UnifiedIrql: KIRQL,
20431 pub MessageCount: ULONG,
20432 pub MessageInfo: [IO_INTERRUPT_MESSAGE_INFO_ENTRY; 1usize],
20433}
20434pub type IO_INTERRUPT_MESSAGE_INFO = _IO_INTERRUPT_MESSAGE_INFO;
20435pub type PIO_INTERRUPT_MESSAGE_INFO = *mut _IO_INTERRUPT_MESSAGE_INFO;
20436#[repr(C)]
20437#[derive(Debug, Copy, Clone)]
20438pub struct _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS {
20439 pub PhysicalDeviceObject: PDEVICE_OBJECT,
20440 pub InterruptObject: *mut PKINTERRUPT,
20441 pub ServiceRoutine: PKSERVICE_ROUTINE,
20442 pub ServiceContext: PVOID,
20443 pub SpinLock: PKSPIN_LOCK,
20444 pub SynchronizeIrql: KIRQL,
20445 pub FloatingSave: BOOLEAN,
20446 pub ShareVector: BOOLEAN,
20447 pub Vector: ULONG,
20448 pub Irql: KIRQL,
20449 pub InterruptMode: KINTERRUPT_MODE,
20450 pub ProcessorEnableMask: KAFFINITY,
20451 pub Group: USHORT,
20452}
20453pub type IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS =
20454_IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS;
20455pub type PIO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS =
20456*mut _IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS;
20457#[repr(C)]
20458#[derive(Debug, Copy, Clone)]
20459pub struct _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS {
20460 pub PhysicalDeviceObject: PDEVICE_OBJECT,
20461 pub InterruptObject: *mut PKINTERRUPT,
20462 pub ServiceRoutine: PKSERVICE_ROUTINE,
20463 pub ServiceContext: PVOID,
20464 pub SpinLock: PKSPIN_LOCK,
20465 pub SynchronizeIrql: KIRQL,
20466 pub FloatingSave: BOOLEAN,
20467}
20468pub type IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS = _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS;
20469pub type PIO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS =
20470*mut _IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS;
20471#[repr(C)]
20472#[derive(Copy, Clone)]
20473pub struct _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS {
20474 pub PhysicalDeviceObject: PDEVICE_OBJECT,
20475 pub ConnectionContext: _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS__bindgen_ty_1,
20476 pub MessageServiceRoutine: PKMESSAGE_SERVICE_ROUTINE,
20477 pub ServiceContext: PVOID,
20478 pub SpinLock: PKSPIN_LOCK,
20479 pub SynchronizeIrql: KIRQL,
20480 pub FloatingSave: BOOLEAN,
20481 pub FallBackServiceRoutine: PKSERVICE_ROUTINE,
20482}
20483#[repr(C)]
20484#[derive(Copy, Clone)]
20485pub union _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS__bindgen_ty_1 {
20486 pub Generic: *mut PVOID,
20487 pub InterruptMessageTable: *mut PIO_INTERRUPT_MESSAGE_INFO,
20488 pub InterruptObject: *mut PKINTERRUPT,
20489}
20490pub type IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS =
20491_IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS;
20492pub type PIO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS =
20493*mut _IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS;
20494#[repr(C)]
20495#[derive(Copy, Clone)]
20496pub struct _IO_CONNECT_INTERRUPT_PARAMETERS {
20497 pub Version: ULONG,
20498 pub __bindgen_anon_1: _IO_CONNECT_INTERRUPT_PARAMETERS__bindgen_ty_1,
20499}
20500#[repr(C)]
20501#[derive(Copy, Clone)]
20502pub union _IO_CONNECT_INTERRUPT_PARAMETERS__bindgen_ty_1 {
20503 pub FullySpecified: IO_CONNECT_INTERRUPT_FULLY_SPECIFIED_PARAMETERS,
20504 pub LineBased: IO_CONNECT_INTERRUPT_LINE_BASED_PARAMETERS,
20505 pub MessageBased: IO_CONNECT_INTERRUPT_MESSAGE_BASED_PARAMETERS,
20506}
20507pub type IO_CONNECT_INTERRUPT_PARAMETERS = _IO_CONNECT_INTERRUPT_PARAMETERS;
20508pub type PIO_CONNECT_INTERRUPT_PARAMETERS = *mut _IO_CONNECT_INTERRUPT_PARAMETERS;
20509unsafe extern "C" {
20510 pub fn IoConnectInterruptEx(Parameters: PIO_CONNECT_INTERRUPT_PARAMETERS) -> NTSTATUS;
20511}
20512unsafe extern "C" {
20513 pub fn IoCreateDevice(
20514 DriverObject: PDRIVER_OBJECT,
20515 DeviceExtensionSize: ULONG,
20516 DeviceName: PUNICODE_STRING,
20517 DeviceType: ULONG,
20518 DeviceCharacteristics: ULONG,
20519 Exclusive: BOOLEAN,
20520 DeviceObject: *mut PDEVICE_OBJECT,
20521 ) -> NTSTATUS;
20522}
20523unsafe extern "C" {
20524 pub fn IoIsWdmVersionAvailable(MajorVersion: UCHAR, MinorVersion: UCHAR) -> BOOLEAN;
20525}
20526unsafe extern "C" {
20527 pub fn IoCreateFile(
20528 FileHandle: PHANDLE,
20529 DesiredAccess: ACCESS_MASK,
20530 ObjectAttributes: POBJECT_ATTRIBUTES,
20531 IoStatusBlock: PIO_STATUS_BLOCK,
20532 AllocationSize: PLARGE_INTEGER,
20533 FileAttributes: ULONG,
20534 ShareAccess: ULONG,
20535 Disposition: ULONG,
20536 CreateOptions: ULONG,
20537 EaBuffer: PVOID,
20538 EaLength: ULONG,
20539 CreateFileType: CREATE_FILE_TYPE,
20540 InternalParameters: PVOID,
20541 Options: ULONG,
20542 ) -> NTSTATUS;
20543}
20544unsafe extern "C" {
20545 pub fn IoCreateNotificationEvent(EventName: PUNICODE_STRING, EventHandle: PHANDLE) -> PKEVENT;
20546}
20547unsafe extern "C" {
20548 pub fn IoCreateSymbolicLink(
20549 SymbolicLinkName: PUNICODE_STRING,
20550 DeviceName: PUNICODE_STRING,
20551 ) -> NTSTATUS;
20552}
20553unsafe extern "C" {
20554 pub fn IoCreateSynchronizationEvent(
20555 EventName: PUNICODE_STRING,
20556 EventHandle: PHANDLE,
20557 ) -> PKEVENT;
20558}
20559unsafe extern "C" {
20560 pub fn IoCreateUnprotectedSymbolicLink(
20561 SymbolicLinkName: PUNICODE_STRING,
20562 DeviceName: PUNICODE_STRING,
20563 ) -> NTSTATUS;
20564}
20565unsafe extern "C" {
20566 pub fn IoDeleteDevice(DeviceObject: PDEVICE_OBJECT);
20567}
20568unsafe extern "C" {
20569 pub fn IoDeleteSymbolicLink(SymbolicLinkName: PUNICODE_STRING) -> NTSTATUS;
20570}
20571unsafe extern "C" {
20572 pub fn IoDetachDevice(TargetDevice: PDEVICE_OBJECT);
20573}
20574unsafe extern "C" {
20575 pub fn IoDisconnectInterrupt(InterruptObject: PKINTERRUPT);
20576}
20577#[repr(C)]
20578#[derive(Copy, Clone)]
20579pub struct _IO_DISCONNECT_INTERRUPT_PARAMETERS {
20580 pub Version: ULONG,
20581 pub ConnectionContext: _IO_DISCONNECT_INTERRUPT_PARAMETERS__bindgen_ty_1,
20582}
20583#[repr(C)]
20584#[derive(Copy, Clone)]
20585pub union _IO_DISCONNECT_INTERRUPT_PARAMETERS__bindgen_ty_1 {
20586 pub Generic: PVOID,
20587 pub InterruptObject: PKINTERRUPT,
20588 pub InterruptMessageTable: PIO_INTERRUPT_MESSAGE_INFO,
20589}
20590pub type IO_DISCONNECT_INTERRUPT_PARAMETERS = _IO_DISCONNECT_INTERRUPT_PARAMETERS;
20591pub type PIO_DISCONNECT_INTERRUPT_PARAMETERS = *mut _IO_DISCONNECT_INTERRUPT_PARAMETERS;
20592unsafe extern "C" {
20593 pub fn IoDisconnectInterruptEx(Parameters: PIO_DISCONNECT_INTERRUPT_PARAMETERS);
20594}
20595#[repr(C)]
20596#[derive(Copy, Clone)]
20597pub struct _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS {
20598 pub Version: ULONG,
20599 pub ConnectionContext: _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS__bindgen_ty_1,
20600}
20601#[repr(C)]
20602#[derive(Copy, Clone)]
20603pub union _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS__bindgen_ty_1 {
20604 pub Generic: PVOID,
20605 pub InterruptObject: PKINTERRUPT,
20606 pub InterruptMessageTable: PIO_INTERRUPT_MESSAGE_INFO,
20607}
20608pub type IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS = _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS;
20609pub type PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS =
20610*mut _IO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS;
20611unsafe extern "C" {
20612 pub fn IoReportInterruptActive(Parameters: PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS);
20613}
20614unsafe extern "C" {
20615 pub fn IoReportInterruptInactive(Parameters: PIO_REPORT_INTERRUPT_ACTIVE_STATE_PARAMETERS);
20616}
20617unsafe extern "C" {
20618 pub fn IoGetAffinityInterrupt(
20619 InterruptObject: PKINTERRUPT,
20620 GroupAffinity: PGROUP_AFFINITY,
20621 ) -> NTSTATUS;
20622}
20623unsafe extern "C" {
20624 pub fn IoFreeIrp(Irp: PIRP);
20625}
20626unsafe extern "C" {
20627 pub fn IoFreeMdl(Mdl: PMDL);
20628}
20629unsafe extern "C" {
20630 pub fn IoGetAttachedDeviceReference(DeviceObject: PDEVICE_OBJECT) -> PDEVICE_OBJECT;
20631}
20632unsafe extern "C" {
20633 pub fn IoGetDriverObjectExtension(
20634 DriverObject: PDRIVER_OBJECT,
20635 ClientIdentificationAddress: PVOID,
20636 ) -> PVOID;
20637}
20638unsafe extern "C" {
20639 pub fn IoGetCurrentProcess() -> PEPROCESS;
20640}
20641unsafe extern "C" {
20642 pub fn IoGetDeviceObjectPointer(
20643 ObjectName: PUNICODE_STRING,
20644 DesiredAccess: ACCESS_MASK,
20645 FileObject: *mut PFILE_OBJECT,
20646 DeviceObject: *mut PDEVICE_OBJECT,
20647 ) -> NTSTATUS;
20648}
20649unsafe extern "C" {
20650 pub fn IoGetDmaAdapter(
20651 PhysicalDeviceObject: PDEVICE_OBJECT,
20652 DeviceDescription: *mut _DEVICE_DESCRIPTION,
20653 NumberOfMapRegisters: PULONG,
20654 ) -> *mut _DMA_ADAPTER;
20655}
20656pub type DMA_IOMMU_INTERFACE = _DMA_IOMMU_INTERFACE;
20657pub type PDMA_IOMMU_INTERFACE = *mut _DMA_IOMMU_INTERFACE;
20658unsafe extern "C" {
20659 pub fn IoGetIommuInterface(Version: ULONG, InterfaceOut: PDMA_IOMMU_INTERFACE) -> NTSTATUS;
20660}
20661pub type DMA_IOMMU_INTERFACE_EX = _DMA_IOMMU_INTERFACE_EX;
20662pub type PDMA_IOMMU_INTERFACE_EX = *mut _DMA_IOMMU_INTERFACE_EX;
20663unsafe extern "C" {
20664 pub fn IoGetIommuInterfaceEx(
20665 Version: ULONG,
20666 Flags: ULONGLONG,
20667 InterfaceOut: PDMA_IOMMU_INTERFACE_EX,
20668 ) -> NTSTATUS;
20669}
20670unsafe extern "C" {
20671 pub fn IoForwardIrpSynchronously(DeviceObject: PDEVICE_OBJECT, Irp: PIRP) -> BOOLEAN;
20672}
20673unsafe extern "C" {
20674 pub fn IoSynchronousCallDriver(DeviceObject: PDEVICE_OBJECT, Irp: PIRP) -> NTSTATUS;
20675}
20676unsafe extern "C" {
20677 pub fn IoGetInitialStack() -> PVOID;
20678}
20679unsafe extern "C" {
20680 pub fn IoGetStackLimits(LowLimit: PULONG_PTR, HighLimit: PULONG_PTR);
20681}
20682unsafe extern "C" {
20683 pub fn IoWithinStackLimits(RegionStart: ULONG_PTR, RegionSize: SIZE_T) -> LOGICAL;
20684}
20685unsafe extern "C" {
20686 pub fn IoGetRelatedDeviceObject(FileObject: PFILE_OBJECT) -> PDEVICE_OBJECT;
20687}
20688unsafe extern "C" {
20689 pub fn IoGetTopLevelIrp() -> PIRP;
20690}
20691unsafe extern "C" {
20692 pub fn IoInitializeIrp(Irp: PIRP, PacketSize: USHORT, StackSize: CCHAR);
20693}
20694unsafe extern "C" {
20695 pub fn IoCleanupIrp(Irp: PIRP);
20696}
20697unsafe extern "C" {
20698 pub fn IoInitializeIrpEx(
20699 Irp: PIRP,
20700 DeviceObject: PDEVICE_OBJECT,
20701 PacketSize: USHORT,
20702 StackSize: CCHAR,
20703 );
20704}
20705unsafe extern "C" {
20706 pub fn IoInitializeTimer(
20707 DeviceObject: PDEVICE_OBJECT,
20708 TimerRoutine: PIO_TIMER_ROUTINE,
20709 Context: PVOID,
20710 ) -> NTSTATUS;
20711}
20712unsafe extern "C" {
20713 pub fn IoReuseIrp(Irp: PIRP, Iostatus: NTSTATUS);
20714}
20715unsafe extern "C" {
20716 pub fn IoRegisterShutdownNotification(DeviceObject: PDEVICE_OBJECT) -> NTSTATUS;
20717}
20718unsafe extern "C" {
20719 pub fn IoRegisterLastChanceShutdownNotification(DeviceObject: PDEVICE_OBJECT) -> NTSTATUS;
20720}
20721unsafe extern "C" {
20722 pub fn IoReleaseCancelSpinLock(Irql: KIRQL);
20723}
20724unsafe extern "C" {
20725 pub fn IoRemoveShareAccess(FileObject: PFILE_OBJECT, ShareAccess: PSHARE_ACCESS);
20726}
20727unsafe extern "C" {
20728 pub fn IoRemoveLinkShareAccess(
20729 FileObject: PFILE_OBJECT,
20730 ShareAccess: PSHARE_ACCESS,
20731 LinkShareAccess: PLINK_SHARE_ACCESS,
20732 );
20733}
20734unsafe extern "C" {
20735 pub fn IoRemoveLinkShareAccessEx(
20736 FileObject: PFILE_OBJECT,
20737 ShareAccess: PSHARE_ACCESS,
20738 LinkShareAccess: PLINK_SHARE_ACCESS,
20739 IoShareAccessFlags: ULONG,
20740 );
20741}
20742unsafe extern "C" {
20743 pub fn IoSetCompletionRoutineEx(
20744 DeviceObject: PDEVICE_OBJECT,
20745 Irp: PIRP,
20746 CompletionRoutine: PIO_COMPLETION_ROUTINE,
20747 Context: PVOID,
20748 InvokeOnSuccess: BOOLEAN,
20749 InvokeOnError: BOOLEAN,
20750 InvokeOnCancel: BOOLEAN,
20751 ) -> NTSTATUS;
20752}
20753unsafe extern "C" {
20754 pub fn IoSetShareAccess(
20755 DesiredAccess: ACCESS_MASK,
20756 DesiredShareAccess: ULONG,
20757 FileObject: PFILE_OBJECT,
20758 ShareAccess: PSHARE_ACCESS,
20759 );
20760}
20761unsafe extern "C" {
20762 pub fn IoSetShareAccessEx(
20763 DesiredAccess: ACCESS_MASK,
20764 DesiredShareAccess: ULONG,
20765 FileObject: PFILE_OBJECT,
20766 ShareAccess: PSHARE_ACCESS,
20767 WritePermission: PBOOLEAN,
20768 );
20769}
20770unsafe extern "C" {
20771 pub fn IoSetLinkShareAccess(
20772 DesiredAccess: ACCESS_MASK,
20773 DesiredShareAccess: ULONG,
20774 FileObject: PFILE_OBJECT,
20775 ShareAccess: PSHARE_ACCESS,
20776 LinkShareAccess: PLINK_SHARE_ACCESS,
20777 IoShareAccessFlags: ULONG,
20778 );
20779}
20780unsafe extern "C" {
20781 pub fn IoSetTopLevelIrp(Irp: PIRP);
20782}
20783#[repr(C)]
20784#[derive(Debug, Copy, Clone)]
20785pub struct _IO_REMOVE_LOCK_TRACKING_BLOCK {
20786 _unused: [u8; 0],
20787}
20788pub type PIO_REMOVE_LOCK_TRACKING_BLOCK = *mut _IO_REMOVE_LOCK_TRACKING_BLOCK;
20789#[repr(C)]
20790#[derive(Copy, Clone)]
20791pub struct _IO_REMOVE_LOCK_COMMON_BLOCK {
20792 pub Removed: BOOLEAN,
20793 pub Reserved: [BOOLEAN; 3usize],
20794 pub IoCount: LONG,
20795 pub RemoveEvent: KEVENT,
20796}
20797pub type IO_REMOVE_LOCK_COMMON_BLOCK = _IO_REMOVE_LOCK_COMMON_BLOCK;
20798#[repr(C)]
20799#[derive(Debug, Copy, Clone)]
20800pub struct _IO_REMOVE_LOCK_DBG_BLOCK {
20801 pub Signature: LONG,
20802 pub HighWatermark: ULONG,
20803 pub MaxLockedTicks: LONGLONG,
20804 pub AllocateTag: LONG,
20805 pub LockList: LIST_ENTRY,
20806 pub Spin: KSPIN_LOCK,
20807 pub LowMemoryCount: LONG,
20808 pub Reserved1: [ULONG; 4usize],
20809 pub Reserved2: PVOID,
20810 pub Blocks: PIO_REMOVE_LOCK_TRACKING_BLOCK,
20811}
20812pub type IO_REMOVE_LOCK_DBG_BLOCK = _IO_REMOVE_LOCK_DBG_BLOCK;
20813#[repr(C)]
20814#[derive(Copy, Clone)]
20815pub struct _IO_REMOVE_LOCK {
20816 pub Common: IO_REMOVE_LOCK_COMMON_BLOCK,
20817}
20818pub type IO_REMOVE_LOCK = _IO_REMOVE_LOCK;
20819pub type PIO_REMOVE_LOCK = *mut _IO_REMOVE_LOCK;
20820unsafe extern "C" {
20821 pub fn IoInitializeRemoveLockEx(
20822 Lock: PIO_REMOVE_LOCK,
20823 AllocateTag: ULONG,
20824 MaxLockedMinutes: ULONG,
20825 HighWatermark: ULONG,
20826 RemlockSize: ULONG,
20827 );
20828}
20829unsafe extern "C" {
20830 pub fn IoAcquireRemoveLockEx(
20831 RemoveLock: PIO_REMOVE_LOCK,
20832 Tag: PVOID,
20833 File: PCSTR,
20834 Line: ULONG,
20835 RemlockSize: ULONG,
20836 ) -> NTSTATUS;
20837}
20838unsafe extern "C" {
20839 pub fn IoReleaseRemoveLockEx(RemoveLock: PIO_REMOVE_LOCK, Tag: PVOID, RemlockSize: ULONG);
20840}
20841unsafe extern "C" {
20842 pub fn IoReleaseRemoveLockAndWaitEx(
20843 RemoveLock: PIO_REMOVE_LOCK,
20844 Tag: PVOID,
20845 RemlockSize: ULONG,
20846 );
20847}
20848unsafe extern "C" {
20849 pub fn IoSizeOfIrpEx(DeviceObject: PDEVICE_OBJECT, StackSize: CCHAR) -> USHORT;
20850}
20851unsafe extern "C" {
20852 pub fn IoStartNextPacket(DeviceObject: PDEVICE_OBJECT, Cancelable: BOOLEAN);
20853}
20854unsafe extern "C" {
20855 pub fn IoStartNextPacketByKey(DeviceObject: PDEVICE_OBJECT, Cancelable: BOOLEAN, Key: ULONG);
20856}
20857unsafe extern "C" {
20858 pub fn IoStartPacket(
20859 DeviceObject: PDEVICE_OBJECT,
20860 Irp: PIRP,
20861 Key: PULONG,
20862 CancelFunction: PDRIVER_CANCEL,
20863 );
20864}
20865unsafe extern "C" {
20866 pub fn IoSetStartIoAttributes(
20867 DeviceObject: PDEVICE_OBJECT,
20868 DeferredStartIo: BOOLEAN,
20869 NonCancelable: BOOLEAN,
20870 );
20871}
20872unsafe extern "C" {
20873 pub fn IoStartTimer(DeviceObject: PDEVICE_OBJECT);
20874}
20875unsafe extern "C" {
20876 pub fn IoStopTimer(DeviceObject: PDEVICE_OBJECT);
20877}
20878unsafe extern "C" {
20879 pub fn IoUnregisterShutdownNotification(DeviceObject: PDEVICE_OBJECT);
20880}
20881unsafe extern "C" {
20882 pub fn IoUpdateShareAccess(FileObject: PFILE_OBJECT, ShareAccess: PSHARE_ACCESS);
20883}
20884unsafe extern "C" {
20885 pub fn IoUpdateLinkShareAccess(
20886 FileObject: PFILE_OBJECT,
20887 ShareAccess: PSHARE_ACCESS,
20888 LinkShareAccess: PLINK_SHARE_ACCESS,
20889 );
20890}
20891unsafe extern "C" {
20892 pub fn IoUpdateLinkShareAccessEx(
20893 FileObject: PFILE_OBJECT,
20894 ShareAccess: PSHARE_ACCESS,
20895 LinkShareAccess: PLINK_SHARE_ACCESS,
20896 IoShareAccessFlags: ULONG,
20897 );
20898}
20899unsafe extern "C" {
20900 pub fn IoWriteErrorLogEntry(ElEntry: PVOID);
20901}
20902unsafe extern "C" {
20903 pub fn IoCreateSystemThread(
20904 IoObject: PVOID,
20905 ThreadHandle: PHANDLE,
20906 DesiredAccess: ULONG,
20907 ObjectAttributes: POBJECT_ATTRIBUTES,
20908 ProcessHandle: HANDLE,
20909 ClientId: PCLIENT_ID,
20910 StartRoutine: PKSTART_ROUTINE,
20911 StartContext: PVOID,
20912 ) -> NTSTATUS;
20913}
20914#[repr(C)]
20915#[derive(Debug, Copy, Clone)]
20916pub struct _IO_WORKITEM {
20917 _unused: [u8; 0],
20918}
20919pub type PIO_WORKITEM = *mut _IO_WORKITEM;
20920pub type IO_WORKITEM_ROUTINE =
20921::core::option::Option<unsafe extern "C" fn(DeviceObject: PDEVICE_OBJECT, Context: PVOID)>;
20922pub type PIO_WORKITEM_ROUTINE = IO_WORKITEM_ROUTINE;
20923unsafe extern "C" {
20924 pub fn IoAllocateWorkItem(DeviceObject: PDEVICE_OBJECT) -> PIO_WORKITEM;
20925}
20926unsafe extern "C" {
20927 pub fn IoFreeWorkItem(IoWorkItem: PIO_WORKITEM);
20928}
20929unsafe extern "C" {
20930 pub fn IoQueueWorkItem(
20931 IoWorkItem: PIO_WORKITEM,
20932 WorkerRoutine: PIO_WORKITEM_ROUTINE,
20933 QueueType: WORK_QUEUE_TYPE,
20934 Context: PVOID,
20935 );
20936}
20937pub type IO_WORKITEM_ROUTINE_EX = ::core::option::Option<
20938 unsafe extern "C" fn(IoObject: PVOID, Context: PVOID, IoWorkItem: PIO_WORKITEM),
20939>;
20940pub type PIO_WORKITEM_ROUTINE_EX = IO_WORKITEM_ROUTINE_EX;
20941unsafe extern "C" {
20942 pub fn IoQueueWorkItemEx(
20943 IoWorkItem: PIO_WORKITEM,
20944 WorkerRoutine: PIO_WORKITEM_ROUTINE_EX,
20945 QueueType: WORK_QUEUE_TYPE,
20946 Context: PVOID,
20947 );
20948}
20949unsafe extern "C" {
20950 pub fn IoSizeofWorkItem() -> ULONG;
20951}
20952unsafe extern "C" {
20953 pub fn IoInitializeWorkItem(IoObject: PVOID, IoWorkItem: PIO_WORKITEM);
20954}
20955unsafe extern "C" {
20956 pub fn IoUninitializeWorkItem(IoWorkItem: PIO_WORKITEM);
20957}
20958unsafe extern "C" {
20959 pub fn IoTryQueueWorkItem(
20960 IoWorkItem: PIO_WORKITEM,
20961 WorkerRoutine: PIO_WORKITEM_ROUTINE_EX,
20962 QueueType: WORK_QUEUE_TYPE,
20963 Context: PVOID,
20964 ) -> BOOLEAN;
20965}
20966unsafe extern "C" {
20967 pub fn IoWMIRegistrationControl(DeviceObject: PDEVICE_OBJECT, Action: ULONG) -> NTSTATUS;
20968}
20969unsafe extern "C" {
20970 pub fn IoWMIAllocateInstanceIds(
20971 Guid: LPCGUID,
20972 InstanceCount: ULONG,
20973 FirstInstanceId: *mut ULONG,
20974 ) -> NTSTATUS;
20975}
20976unsafe extern "C" {
20977 pub fn IoWMISuggestInstanceName(
20978 PhysicalDeviceObject: PDEVICE_OBJECT,
20979 SymbolicLinkName: PUNICODE_STRING,
20980 CombineNames: BOOLEAN,
20981 SuggestedInstanceName: PUNICODE_STRING,
20982 ) -> NTSTATUS;
20983}
20984unsafe extern "C" {
20985 pub fn IoWMIWriteEvent(WnodeEventItem: PVOID) -> NTSTATUS;
20986}
20987unsafe extern "C" {
20988 pub fn IoWMIDeviceObjectToProviderId(DeviceObject: PDEVICE_OBJECT) -> ULONG;
20989}
20990unsafe extern "C" {
20991 pub fn IoWMIOpenBlock(
20992 Guid: LPCGUID,
20993 DesiredAccess: ULONG,
20994 DataBlockObject: *mut PVOID,
20995 ) -> NTSTATUS;
20996}
20997unsafe extern "C" {
20998 pub fn IoWMIQueryAllData(
20999 DataBlockObject: PVOID,
21000 InOutBufferSize: PULONG,
21001 OutBuffer: PVOID,
21002 ) -> NTSTATUS;
21003}
21004unsafe extern "C" {
21005 pub fn IoWMIQueryAllDataMultiple(
21006 DataBlockObjectList: *mut PVOID,
21007 ObjectCount: ULONG,
21008 InOutBufferSize: PULONG,
21009 OutBuffer: PVOID,
21010 ) -> NTSTATUS;
21011}
21012unsafe extern "C" {
21013 pub fn IoWMIQuerySingleInstance(
21014 DataBlockObject: PVOID,
21015 InstanceName: PUNICODE_STRING,
21016 InOutBufferSize: PULONG,
21017 OutBuffer: PVOID,
21018 ) -> NTSTATUS;
21019}
21020unsafe extern "C" {
21021 pub fn IoWMIQuerySingleInstanceMultiple(
21022 DataBlockObjectList: *mut PVOID,
21023 InstanceNames: PUNICODE_STRING,
21024 ObjectCount: ULONG,
21025 InOutBufferSize: PULONG,
21026 OutBuffer: PVOID,
21027 ) -> NTSTATUS;
21028}
21029unsafe extern "C" {
21030 pub fn IoWMISetSingleInstance(
21031 DataBlockObject: PVOID,
21032 InstanceName: PUNICODE_STRING,
21033 Version: ULONG,
21034 ValueBufferSize: ULONG,
21035 ValueBuffer: PVOID,
21036 ) -> NTSTATUS;
21037}
21038unsafe extern "C" {
21039 pub fn IoWMISetSingleItem(
21040 DataBlockObject: PVOID,
21041 InstanceName: PUNICODE_STRING,
21042 DataItemId: ULONG,
21043 Version: ULONG,
21044 ValueBufferSize: ULONG,
21045 ValueBuffer: PVOID,
21046 ) -> NTSTATUS;
21047}
21048unsafe extern "C" {
21049 pub fn IoWMIExecuteMethod(
21050 DataBlockObject: PVOID,
21051 InstanceName: PUNICODE_STRING,
21052 MethodId: ULONG,
21053 InBufferSize: ULONG,
21054 OutBufferSize: PULONG,
21055 InOutBuffer: PUCHAR,
21056 ) -> NTSTATUS;
21057}
21058pub type FWMI_NOTIFICATION_CALLBACK =
21059::core::option::Option<unsafe extern "C" fn(Wnode: PVOID, Context: PVOID)>;
21060pub type WMI_NOTIFICATION_CALLBACK = FWMI_NOTIFICATION_CALLBACK;
21061unsafe extern "C" {
21062 pub fn IoWMISetNotificationCallback(
21063 Object: PVOID,
21064 Callback: WMI_NOTIFICATION_CALLBACK,
21065 Context: PVOID,
21066 ) -> NTSTATUS;
21067}
21068unsafe extern "C" {
21069 pub fn IoWMIHandleToInstanceName(
21070 DataBlockObject: PVOID,
21071 FileHandle: HANDLE,
21072 InstanceName: PUNICODE_STRING,
21073 ) -> NTSTATUS;
21074}
21075unsafe extern "C" {
21076 pub fn IoWMIDeviceObjectToInstanceName(
21077 DataBlockObject: PVOID,
21078 DeviceObject: PDEVICE_OBJECT,
21079 InstanceName: PUNICODE_STRING,
21080 ) -> NTSTATUS;
21081}
21082unsafe extern "C" {
21083 pub fn IoIs32bitProcess(Irp: PIRP) -> BOOLEAN;
21084}
21085unsafe extern "C" {
21086 pub fn IoIsInitiator32bitProcess(Irp: PIRP) -> BOOLEAN;
21087}
21088unsafe extern "C" {
21089 pub fn IoFreeErrorLogEntry(ElEntry: PVOID);
21090}
21091pub type IO_CSQ = _IO_CSQ;
21092pub type PIO_CSQ = *mut _IO_CSQ;
21093#[repr(C)]
21094#[derive(Debug, Copy, Clone)]
21095pub struct _IO_CSQ_IRP_CONTEXT {
21096 pub Type: ULONG,
21097 pub Irp: PIRP,
21098 pub Csq: PIO_CSQ,
21099}
21100pub type IO_CSQ_IRP_CONTEXT = _IO_CSQ_IRP_CONTEXT;
21101pub type PIO_CSQ_IRP_CONTEXT = *mut _IO_CSQ_IRP_CONTEXT;
21102pub type IO_CSQ_INSERT_IRP =
21103::core::option::Option<unsafe extern "C" fn(Csq: *mut _IO_CSQ, Irp: PIRP)>;
21104pub type PIO_CSQ_INSERT_IRP = IO_CSQ_INSERT_IRP;
21105pub type IO_CSQ_INSERT_IRP_EX = ::core::option::Option<
21106 unsafe extern "C" fn(Csq: *mut _IO_CSQ, Irp: PIRP, InsertContext: PVOID) -> NTSTATUS,
21107>;
21108pub type PIO_CSQ_INSERT_IRP_EX = IO_CSQ_INSERT_IRP_EX;
21109pub type IO_CSQ_REMOVE_IRP = ::core::option::Option<unsafe extern "C" fn(Csq: PIO_CSQ, Irp: PIRP)>;
21110pub type PIO_CSQ_REMOVE_IRP = IO_CSQ_REMOVE_IRP;
21111pub type IO_CSQ_PEEK_NEXT_IRP = ::core::option::Option<
21112 unsafe extern "C" fn(Csq: PIO_CSQ, Irp: PIRP, PeekContext: PVOID) -> PIRP,
21113>;
21114pub type PIO_CSQ_PEEK_NEXT_IRP = IO_CSQ_PEEK_NEXT_IRP;
21115pub type IO_CSQ_ACQUIRE_LOCK =
21116::core::option::Option<unsafe extern "C" fn(Csq: PIO_CSQ, Irql: PKIRQL)>;
21117pub type PIO_CSQ_ACQUIRE_LOCK = IO_CSQ_ACQUIRE_LOCK;
21118pub type IO_CSQ_RELEASE_LOCK =
21119::core::option::Option<unsafe extern "C" fn(Csq: PIO_CSQ, Irql: KIRQL)>;
21120pub type PIO_CSQ_RELEASE_LOCK = IO_CSQ_RELEASE_LOCK;
21121pub type IO_CSQ_COMPLETE_CANCELED_IRP =
21122::core::option::Option<unsafe extern "C" fn(Csq: PIO_CSQ, Irp: PIRP)>;
21123pub type PIO_CSQ_COMPLETE_CANCELED_IRP = IO_CSQ_COMPLETE_CANCELED_IRP;
21124#[repr(C)]
21125#[derive(Debug, Copy, Clone)]
21126pub struct _IO_CSQ {
21127 pub Type: ULONG,
21128 pub CsqInsertIrp: PIO_CSQ_INSERT_IRP,
21129 pub CsqRemoveIrp: PIO_CSQ_REMOVE_IRP,
21130 pub CsqPeekNextIrp: PIO_CSQ_PEEK_NEXT_IRP,
21131 pub CsqAcquireLock: PIO_CSQ_ACQUIRE_LOCK,
21132 pub CsqReleaseLock: PIO_CSQ_RELEASE_LOCK,
21133 pub CsqCompleteCanceledIrp: PIO_CSQ_COMPLETE_CANCELED_IRP,
21134 pub ReservePointer: PVOID,
21135}
21136unsafe extern "C" {
21137 pub fn IoCsqInitialize(
21138 Csq: PIO_CSQ,
21139 CsqInsertIrp: PIO_CSQ_INSERT_IRP,
21140 CsqRemoveIrp: PIO_CSQ_REMOVE_IRP,
21141 CsqPeekNextIrp: PIO_CSQ_PEEK_NEXT_IRP,
21142 CsqAcquireLock: PIO_CSQ_ACQUIRE_LOCK,
21143 CsqReleaseLock: PIO_CSQ_RELEASE_LOCK,
21144 CsqCompleteCanceledIrp: PIO_CSQ_COMPLETE_CANCELED_IRP,
21145 ) -> NTSTATUS;
21146}
21147unsafe extern "C" {
21148 pub fn IoCsqInitializeEx(
21149 Csq: PIO_CSQ,
21150 CsqInsertIrp: PIO_CSQ_INSERT_IRP_EX,
21151 CsqRemoveIrp: PIO_CSQ_REMOVE_IRP,
21152 CsqPeekNextIrp: PIO_CSQ_PEEK_NEXT_IRP,
21153 CsqAcquireLock: PIO_CSQ_ACQUIRE_LOCK,
21154 CsqReleaseLock: PIO_CSQ_RELEASE_LOCK,
21155 CsqCompleteCanceledIrp: PIO_CSQ_COMPLETE_CANCELED_IRP,
21156 ) -> NTSTATUS;
21157}
21158unsafe extern "C" {
21159 pub fn IoCsqInsertIrp(Csq: PIO_CSQ, Irp: PIRP, Context: PIO_CSQ_IRP_CONTEXT);
21160}
21161unsafe extern "C" {
21162 pub fn IoCsqInsertIrpEx(
21163 Csq: PIO_CSQ,
21164 Irp: PIRP,
21165 Context: PIO_CSQ_IRP_CONTEXT,
21166 InsertContext: PVOID,
21167 ) -> NTSTATUS;
21168}
21169unsafe extern "C" {
21170 pub fn IoCsqRemoveNextIrp(Csq: PIO_CSQ, PeekContext: PVOID) -> PIRP;
21171}
21172unsafe extern "C" {
21173 pub fn IoCsqRemoveIrp(Csq: PIO_CSQ, Context: PIO_CSQ_IRP_CONTEXT) -> PIRP;
21174}
21175unsafe extern "C" {
21176 pub fn IoValidateDeviceIoControlAccess(Irp: PIRP, RequiredAccess: ULONG) -> NTSTATUS;
21177}
21178unsafe extern "C" {
21179 pub fn IoGetIoPriorityHint(Irp: PIRP) -> IO_PRIORITY_HINT;
21180}
21181unsafe extern "C" {
21182 pub fn IoSetIoPriorityHint(Irp: PIRP, PriorityHint: IO_PRIORITY_HINT) -> NTSTATUS;
21183}
21184unsafe extern "C" {
21185 pub fn IoAllocateSfioStreamIdentifier(
21186 FileObject: PFILE_OBJECT,
21187 Length: ULONG,
21188 Signature: PVOID,
21189 StreamIdentifier: *mut PVOID,
21190 ) -> NTSTATUS;
21191}
21192unsafe extern "C" {
21193 pub fn IoGetSfioStreamIdentifier(FileObject: PFILE_OBJECT, Signature: PVOID) -> PVOID;
21194}
21195unsafe extern "C" {
21196 pub fn IoFreeSfioStreamIdentifier(FileObject: PFILE_OBJECT, Signature: PVOID) -> NTSTATUS;
21197}
21198unsafe extern "C" {
21199 pub fn IoGetIoAttributionHandle(Irp: PIRP, IoAttributionHandle: *mut PVOID) -> NTSTATUS;
21200}
21201#[repr(C)]
21202#[derive(Copy, Clone)]
21203pub struct _IO_ATTRIBUTION_INFORMATION {
21204 pub Version: ULONG,
21205 pub Flags: _IO_ATTRIBUTION_INFORMATION__bindgen_ty_1,
21206 pub Length: ULONG,
21207 pub ServiceStartTime: ULONGLONG,
21208 pub CurrentTime: ULONGLONG,
21209}
21210#[repr(C)]
21211#[derive(Copy, Clone)]
21212pub union _IO_ATTRIBUTION_INFORMATION__bindgen_ty_1 {
21213 pub __bindgen_anon_1: _IO_ATTRIBUTION_INFORMATION__bindgen_ty_1__bindgen_ty_1,
21214 pub AllFlags: ULONG,
21215}
21216#[repr(C)]
21217#[derive(Debug, Copy, Clone)]
21218pub struct _IO_ATTRIBUTION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
21219 pub _bitfield_align_1: [u32; 0],
21220 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
21221}
21222impl _IO_ATTRIBUTION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
21223 #[inline]
21224 pub fn MajorCode(&self) -> ULONG {
21225 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
21226 }
21227 #[inline]
21228 pub fn set_MajorCode(&mut self, val: ULONG) {
21229 unsafe {
21230 let val: u32 = ::core::mem::transmute(val);
21231 self._bitfield_1.set(0usize, 8u8, val as u64)
21232 }
21233 }
21234 #[inline]
21235 pub unsafe fn MajorCode_raw(this: *const Self) -> ULONG {
21236 unsafe {
21237 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21238 ::core::ptr::addr_of!((*this)._bitfield_1),
21239 0usize,
21240 8u8,
21241 ) as u32)
21242 }
21243 }
21244 #[inline]
21245 pub unsafe fn set_MajorCode_raw(this: *mut Self, val: ULONG) {
21246 unsafe {
21247 let val: u32 = ::core::mem::transmute(val);
21248 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21249 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21250 0usize,
21251 8u8,
21252 val as u64,
21253 )
21254 }
21255 }
21256 #[inline]
21257 pub fn IoStart(&self) -> ULONG {
21258 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
21259 }
21260 #[inline]
21261 pub fn set_IoStart(&mut self, val: ULONG) {
21262 unsafe {
21263 let val: u32 = ::core::mem::transmute(val);
21264 self._bitfield_1.set(8usize, 1u8, val as u64)
21265 }
21266 }
21267 #[inline]
21268 pub unsafe fn IoStart_raw(this: *const Self) -> ULONG {
21269 unsafe {
21270 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21271 ::core::ptr::addr_of!((*this)._bitfield_1),
21272 8usize,
21273 1u8,
21274 ) as u32)
21275 }
21276 }
21277 #[inline]
21278 pub unsafe fn set_IoStart_raw(this: *mut Self, val: ULONG) {
21279 unsafe {
21280 let val: u32 = ::core::mem::transmute(val);
21281 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21282 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21283 8usize,
21284 1u8,
21285 val as u64,
21286 )
21287 }
21288 }
21289 #[inline]
21290 pub fn QueueOnly(&self) -> ULONG {
21291 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
21292 }
21293 #[inline]
21294 pub fn set_QueueOnly(&mut self, val: ULONG) {
21295 unsafe {
21296 let val: u32 = ::core::mem::transmute(val);
21297 self._bitfield_1.set(9usize, 1u8, val as u64)
21298 }
21299 }
21300 #[inline]
21301 pub unsafe fn QueueOnly_raw(this: *const Self) -> ULONG {
21302 unsafe {
21303 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21304 ::core::ptr::addr_of!((*this)._bitfield_1),
21305 9usize,
21306 1u8,
21307 ) as u32)
21308 }
21309 }
21310 #[inline]
21311 pub unsafe fn set_QueueOnly_raw(this: *mut Self, val: ULONG) {
21312 unsafe {
21313 let val: u32 = ::core::mem::transmute(val);
21314 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21315 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21316 9usize,
21317 1u8,
21318 val as u64,
21319 )
21320 }
21321 }
21322 #[inline]
21323 pub fn IoFailed(&self) -> ULONG {
21324 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
21325 }
21326 #[inline]
21327 pub fn set_IoFailed(&mut self, val: ULONG) {
21328 unsafe {
21329 let val: u32 = ::core::mem::transmute(val);
21330 self._bitfield_1.set(10usize, 1u8, val as u64)
21331 }
21332 }
21333 #[inline]
21334 pub unsafe fn IoFailed_raw(this: *const Self) -> ULONG {
21335 unsafe {
21336 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21337 ::core::ptr::addr_of!((*this)._bitfield_1),
21338 10usize,
21339 1u8,
21340 ) as u32)
21341 }
21342 }
21343 #[inline]
21344 pub unsafe fn set_IoFailed_raw(this: *mut Self, val: ULONG) {
21345 unsafe {
21346 let val: u32 = ::core::mem::transmute(val);
21347 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21348 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21349 10usize,
21350 1u8,
21351 val as u64,
21352 )
21353 }
21354 }
21355 #[inline]
21356 pub fn VirtualDevice(&self) -> ULONG {
21357 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
21358 }
21359 #[inline]
21360 pub fn set_VirtualDevice(&mut self, val: ULONG) {
21361 unsafe {
21362 let val: u32 = ::core::mem::transmute(val);
21363 self._bitfield_1.set(11usize, 1u8, val as u64)
21364 }
21365 }
21366 #[inline]
21367 pub unsafe fn VirtualDevice_raw(this: *const Self) -> ULONG {
21368 unsafe {
21369 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21370 ::core::ptr::addr_of!((*this)._bitfield_1),
21371 11usize,
21372 1u8,
21373 ) as u32)
21374 }
21375 }
21376 #[inline]
21377 pub unsafe fn set_VirtualDevice_raw(this: *mut Self, val: ULONG) {
21378 unsafe {
21379 let val: u32 = ::core::mem::transmute(val);
21380 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21381 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21382 11usize,
21383 1u8,
21384 val as u64,
21385 )
21386 }
21387 }
21388 #[inline]
21389 pub fn Spare(&self) -> ULONG {
21390 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
21391 }
21392 #[inline]
21393 pub fn set_Spare(&mut self, val: ULONG) {
21394 unsafe {
21395 let val: u32 = ::core::mem::transmute(val);
21396 self._bitfield_1.set(12usize, 20u8, val as u64)
21397 }
21398 }
21399 #[inline]
21400 pub unsafe fn Spare_raw(this: *const Self) -> ULONG {
21401 unsafe {
21402 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
21403 ::core::ptr::addr_of!((*this)._bitfield_1),
21404 12usize,
21405 20u8,
21406 ) as u32)
21407 }
21408 }
21409 #[inline]
21410 pub unsafe fn set_Spare_raw(this: *mut Self, val: ULONG) {
21411 unsafe {
21412 let val: u32 = ::core::mem::transmute(val);
21413 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
21414 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
21415 12usize,
21416 20u8,
21417 val as u64,
21418 )
21419 }
21420 }
21421 #[inline]
21422 pub fn new_bitfield_1(
21423 MajorCode: ULONG,
21424 IoStart: ULONG,
21425 QueueOnly: ULONG,
21426 IoFailed: ULONG,
21427 VirtualDevice: ULONG,
21428 Spare: ULONG,
21429 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
21430 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
21431 __bindgen_bitfield_unit.set(0usize, 8u8, {
21432 let MajorCode: u32 = unsafe { ::core::mem::transmute(MajorCode) };
21433 MajorCode as u64
21434 });
21435 __bindgen_bitfield_unit.set(8usize, 1u8, {
21436 let IoStart: u32 = unsafe { ::core::mem::transmute(IoStart) };
21437 IoStart as u64
21438 });
21439 __bindgen_bitfield_unit.set(9usize, 1u8, {
21440 let QueueOnly: u32 = unsafe { ::core::mem::transmute(QueueOnly) };
21441 QueueOnly as u64
21442 });
21443 __bindgen_bitfield_unit.set(10usize, 1u8, {
21444 let IoFailed: u32 = unsafe { ::core::mem::transmute(IoFailed) };
21445 IoFailed as u64
21446 });
21447 __bindgen_bitfield_unit.set(11usize, 1u8, {
21448 let VirtualDevice: u32 = unsafe { ::core::mem::transmute(VirtualDevice) };
21449 VirtualDevice as u64
21450 });
21451 __bindgen_bitfield_unit.set(12usize, 20u8, {
21452 let Spare: u32 = unsafe { ::core::mem::transmute(Spare) };
21453 Spare as u64
21454 });
21455 __bindgen_bitfield_unit
21456 }
21457}
21458pub type IO_ATTRIBUTION_INFORMATION = _IO_ATTRIBUTION_INFORMATION;
21459pub type PIO_ATTRIBUTION_INFORMATION = *mut _IO_ATTRIBUTION_INFORMATION;
21460unsafe extern "C" {
21461 pub fn IoRecordIoAttribution(
21462 OpaqueHandle: PVOID,
21463 AttributionInformation: *mut IO_ATTRIBUTION_INFORMATION,
21464 ) -> NTSTATUS;
21465}
21466unsafe extern "C" {
21467 pub fn IoSetIoAttributionIrp(Irp: PIRP, AttributionSource: PVOID, Flags: ULONG) -> NTSTATUS;
21468}
21469pub const _IO_ACCESS_TYPE_ReadAccess: _IO_ACCESS_TYPE = 0;
21470pub const _IO_ACCESS_TYPE_WriteAccess: _IO_ACCESS_TYPE = 1;
21471pub const _IO_ACCESS_TYPE_ModifyAccess: _IO_ACCESS_TYPE = 2;
21472pub type _IO_ACCESS_TYPE = core::ffi::c_int;
21473pub use self::_IO_ACCESS_TYPE as IO_ACCESS_TYPE;
21474pub const _IO_ACCESS_MODE_SequentialAccess: _IO_ACCESS_MODE = 0;
21475pub const _IO_ACCESS_MODE_RandomAccess: _IO_ACCESS_MODE = 1;
21476pub type _IO_ACCESS_MODE = core::ffi::c_int;
21477pub use self::_IO_ACCESS_MODE as IO_ACCESS_MODE;
21478pub const _IO_CONTAINER_NOTIFICATION_CLASS_IoSessionStateNotification:
21479_IO_CONTAINER_NOTIFICATION_CLASS = 0;
21480pub const _IO_CONTAINER_NOTIFICATION_CLASS_IoMaxContainerNotificationClass:
21481_IO_CONTAINER_NOTIFICATION_CLASS = 1;
21482pub type _IO_CONTAINER_NOTIFICATION_CLASS = core::ffi::c_int;
21483pub use self::_IO_CONTAINER_NOTIFICATION_CLASS as IO_CONTAINER_NOTIFICATION_CLASS;
21484#[repr(C)]
21485#[derive(Debug, Copy, Clone)]
21486pub struct _IO_SESSION_STATE_NOTIFICATION {
21487 pub Size: ULONG,
21488 pub Flags: ULONG,
21489 pub IoObject: PVOID,
21490 pub EventMask: ULONG,
21491 pub Context: PVOID,
21492}
21493pub type IO_SESSION_STATE_NOTIFICATION = _IO_SESSION_STATE_NOTIFICATION;
21494pub type PIO_SESSION_STATE_NOTIFICATION = *mut _IO_SESSION_STATE_NOTIFICATION;
21495pub const _IO_CONTAINER_INFORMATION_CLASS_IoSessionStateInformation:
21496_IO_CONTAINER_INFORMATION_CLASS = 0;
21497pub const _IO_CONTAINER_INFORMATION_CLASS_IoMaxContainerInformationClass:
21498_IO_CONTAINER_INFORMATION_CLASS = 1;
21499pub type _IO_CONTAINER_INFORMATION_CLASS = core::ffi::c_int;
21500pub use self::_IO_CONTAINER_INFORMATION_CLASS as IO_CONTAINER_INFORMATION_CLASS;
21501#[repr(C)]
21502#[derive(Debug, Copy, Clone)]
21503pub struct _IO_SESSION_STATE_INFORMATION {
21504 pub SessionId: ULONG,
21505 pub SessionState: IO_SESSION_STATE,
21506 pub LocalSession: BOOLEAN,
21507}
21508pub type IO_SESSION_STATE_INFORMATION = _IO_SESSION_STATE_INFORMATION;
21509pub type PIO_SESSION_STATE_INFORMATION = *mut _IO_SESSION_STATE_INFORMATION;
21510unsafe extern "C" {
21511 pub fn IoGetContainerInformation(
21512 InformationClass: IO_CONTAINER_INFORMATION_CLASS,
21513 ContainerObject: PVOID,
21514 Buffer: PVOID,
21515 BufferLength: ULONG,
21516 ) -> NTSTATUS;
21517}
21518pub type PIO_CONTAINER_NOTIFICATION_FUNCTION =
21519::core::option::Option<unsafe extern "C" fn() -> NTSTATUS>;
21520pub type IO_SESSION_NOTIFICATION_FUNCTION = ::core::option::Option<
21521 unsafe extern "C" fn(
21522 SessionObject: PVOID,
21523 IoObject: PVOID,
21524 Event: ULONG,
21525 Context: PVOID,
21526 NotificationPayload: PVOID,
21527 PayloadLength: ULONG,
21528 ) -> NTSTATUS,
21529>;
21530pub type PIO_SESSION_NOTIFICATION_FUNCTION = IO_SESSION_NOTIFICATION_FUNCTION;
21531unsafe extern "C" {
21532 pub fn IoRegisterContainerNotification(
21533 NotificationClass: IO_CONTAINER_NOTIFICATION_CLASS,
21534 CallbackFunction: PIO_CONTAINER_NOTIFICATION_FUNCTION,
21535 NotificationInformation: PVOID,
21536 NotificationInformationLength: ULONG,
21537 CallbackRegistration: PVOID,
21538 ) -> NTSTATUS;
21539}
21540unsafe extern "C" {
21541 pub fn IoUnregisterContainerNotification(CallbackRegistration: PVOID);
21542}
21543unsafe extern "C" {
21544 pub fn IoReserveKsrPersistentMemory(
21545 DriverObject: PDRIVER_OBJECT,
21546 PhysicalDeviceObject: PDEVICE_OBJECT,
21547 Size: SIZE_T,
21548 Flags: ULONG,
21549 DataHandle: *mut PVOID,
21550 ) -> NTSTATUS;
21551}
21552unsafe extern "C" {
21553 pub fn IoFreeKsrPersistentMemory(DataHandle: PVOID) -> NTSTATUS;
21554}
21555unsafe extern "C" {
21556 pub fn IoQueryKsrPersistentMemorySize(
21557 DriverObject: PDRIVER_OBJECT,
21558 PhysicalDeviceObject: PDEVICE_OBJECT,
21559 BufferSize: PSIZE_T,
21560 ) -> NTSTATUS;
21561}
21562unsafe extern "C" {
21563 pub fn IoAcquireKsrPersistentMemory(
21564 DriverObject: PDRIVER_OBJECT,
21565 PhysicalDeviceObject: PDEVICE_OBJECT,
21566 Buffer: PVOID,
21567 Size: PSIZE_T,
21568 ) -> NTSTATUS;
21569}
21570unsafe extern "C" {
21571 pub fn IoWriteKsrPersistentMemory(DataHandle: PVOID, Buffer: PVOID, Size: SIZE_T) -> NTSTATUS;
21572}
21573pub type IO_PERSISTED_MEMORY_ENUMERATION_CALLBACK = ::core::option::Option<
21574 unsafe extern "C" fn(
21575 DriverObject: PDRIVER_OBJECT,
21576 PhysicalDeviceObject: PDEVICE_OBJECT,
21577 PhysicalDeviceId: PUNICODE_STRING,
21578 DataTag: PUSHORT,
21579 DataVersion: PULONG,
21580 Context: PVOID,
21581 ) -> NTSTATUS,
21582>;
21583pub type PIO_PERSISTED_MEMORY_ENUMERATION_CALLBACK = IO_PERSISTED_MEMORY_ENUMERATION_CALLBACK;
21584unsafe extern "C" {
21585 pub fn IoEnumerateKsrPersistentMemoryEx(
21586 DriverObject: PDRIVER_OBJECT,
21587 PhysicalDeviceObject: PDEVICE_OBJECT,
21588 PhysicalDeviceId: PUNICODE_STRING,
21589 Callback: PIO_PERSISTED_MEMORY_ENUMERATION_CALLBACK,
21590 CallbackContext: PVOID,
21591 ) -> NTSTATUS;
21592}
21593unsafe extern "C" {
21594 pub fn IoReserveKsrPersistentMemoryEx(
21595 DriverObject: PDRIVER_OBJECT,
21596 PhysicalDeviceObject: PDEVICE_OBJECT,
21597 PhysicalDeviceId: PUNICODE_STRING,
21598 DataTag: PUSHORT,
21599 DataVersion: ULONG,
21600 Size: SIZE_T,
21601 Flags: ULONG,
21602 DataHandle: *mut PVOID,
21603 ) -> NTSTATUS;
21604}
21605unsafe extern "C" {
21606 pub fn IoQueryKsrPersistentMemorySizeEx(
21607 DriverObject: PDRIVER_OBJECT,
21608 PhysicalDeviceObject: PDEVICE_OBJECT,
21609 PhysicalDeviceId: PUNICODE_STRING,
21610 DataTag: PUSHORT,
21611 DataVersion: PULONG,
21612 BufferSize: PSIZE_T,
21613 ) -> NTSTATUS;
21614}
21615unsafe extern "C" {
21616 pub fn IoAcquireKsrPersistentMemoryEx(
21617 DriverObject: PDRIVER_OBJECT,
21618 PhysicalDeviceObject: PDEVICE_OBJECT,
21619 PhysicalDeviceId: PUNICODE_STRING,
21620 DataTag: PUSHORT,
21621 DataVersion: PULONG,
21622 Buffer: PVOID,
21623 Size: PSIZE_T,
21624 ) -> NTSTATUS;
21625}
21626pub type TRACEHANDLE = ULONG64;
21627pub type PTRACEHANDLE = *mut ULONG64;
21628#[repr(C)]
21629#[derive(Debug, Copy, Clone)]
21630pub struct _ETW_TRACE_SESSION_SETTINGS {
21631 pub Version: ULONG,
21632 pub BufferSize: ULONG,
21633 pub MinimumBuffers: ULONG,
21634 pub MaximumBuffers: ULONG,
21635 pub LoggerMode: ULONG,
21636 pub FlushTimer: ULONG,
21637 pub FlushThreshold: ULONG,
21638 pub ClockType: ULONG,
21639}
21640pub type ETW_TRACE_SESSION_SETTINGS = _ETW_TRACE_SESSION_SETTINGS;
21641pub type PETW_TRACE_SESSION_SETTINGS = *mut _ETW_TRACE_SESSION_SETTINGS;
21642pub const _TRACE_INFORMATION_CLASS_TraceIdClass: _TRACE_INFORMATION_CLASS = 0;
21643pub const _TRACE_INFORMATION_CLASS_TraceHandleClass: _TRACE_INFORMATION_CLASS = 1;
21644pub const _TRACE_INFORMATION_CLASS_TraceEnableFlagsClass: _TRACE_INFORMATION_CLASS = 2;
21645pub const _TRACE_INFORMATION_CLASS_TraceEnableLevelClass: _TRACE_INFORMATION_CLASS = 3;
21646pub const _TRACE_INFORMATION_CLASS_GlobalLoggerHandleClass: _TRACE_INFORMATION_CLASS = 4;
21647pub const _TRACE_INFORMATION_CLASS_EventLoggerHandleClass: _TRACE_INFORMATION_CLASS = 5;
21648pub const _TRACE_INFORMATION_CLASS_AllLoggerHandlesClass: _TRACE_INFORMATION_CLASS = 6;
21649pub const _TRACE_INFORMATION_CLASS_TraceHandleByNameClass: _TRACE_INFORMATION_CLASS = 7;
21650pub const _TRACE_INFORMATION_CLASS_LoggerEventsLostClass: _TRACE_INFORMATION_CLASS = 8;
21651pub const _TRACE_INFORMATION_CLASS_TraceSessionSettingsClass: _TRACE_INFORMATION_CLASS = 9;
21652pub const _TRACE_INFORMATION_CLASS_LoggerEventsLoggedClass: _TRACE_INFORMATION_CLASS = 10;
21653pub const _TRACE_INFORMATION_CLASS_DiskIoNotifyRoutinesClass: _TRACE_INFORMATION_CLASS = 11;
21654pub const _TRACE_INFORMATION_CLASS_TraceInformationClassReserved1: _TRACE_INFORMATION_CLASS = 12;
21655pub const _TRACE_INFORMATION_CLASS_FltIoNotifyRoutinesClass: _TRACE_INFORMATION_CLASS = 13;
21656pub const _TRACE_INFORMATION_CLASS_TraceInformationClassReserved2: _TRACE_INFORMATION_CLASS = 14;
21657pub const _TRACE_INFORMATION_CLASS_WdfNotifyRoutinesClass: _TRACE_INFORMATION_CLASS = 15;
21658pub const _TRACE_INFORMATION_CLASS_MaxTraceInformationClass: _TRACE_INFORMATION_CLASS = 16;
21659pub type _TRACE_INFORMATION_CLASS = core::ffi::c_int;
21660pub use self::_TRACE_INFORMATION_CLASS as TRACE_INFORMATION_CLASS;
21661unsafe extern "C" {
21662 pub fn WmiQueryTraceInformation(
21663 TraceInformationClass: TRACE_INFORMATION_CLASS,
21664 TraceInformation: PVOID,
21665 TraceInformationLength: ULONG,
21666 RequiredLength: PULONG,
21667 Buffer: PVOID,
21668 ) -> NTSTATUS;
21669}
21670pub type REGHANDLE = ULONGLONG;
21671pub type PREGHANDLE = *mut ULONGLONG;
21672#[repr(C)]
21673#[derive(Copy, Clone)]
21674pub struct _EVENT_DATA_DESCRIPTOR {
21675 pub Ptr: ULONGLONG,
21676 pub Size: ULONG,
21677 pub __bindgen_anon_1: _EVENT_DATA_DESCRIPTOR__bindgen_ty_1,
21678}
21679#[repr(C)]
21680#[derive(Copy, Clone)]
21681pub union _EVENT_DATA_DESCRIPTOR__bindgen_ty_1 {
21682 pub Reserved: ULONG,
21683 pub __bindgen_anon_1: _EVENT_DATA_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1,
21684}
21685#[repr(C)]
21686#[derive(Debug, Copy, Clone)]
21687pub struct _EVENT_DATA_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 {
21688 pub Type: UCHAR,
21689 pub Reserved1: UCHAR,
21690 pub Reserved2: USHORT,
21691}
21692pub type EVENT_DATA_DESCRIPTOR = _EVENT_DATA_DESCRIPTOR;
21693pub type PEVENT_DATA_DESCRIPTOR = *mut _EVENT_DATA_DESCRIPTOR;
21694#[repr(C)]
21695#[derive(Debug, Copy, Clone)]
21696pub struct _EVENT_DESCRIPTOR {
21697 pub Id: USHORT,
21698 pub Version: UCHAR,
21699 pub Channel: UCHAR,
21700 pub Level: UCHAR,
21701 pub Opcode: UCHAR,
21702 pub Task: USHORT,
21703 pub Keyword: ULONGLONG,
21704}
21705pub type EVENT_DESCRIPTOR = _EVENT_DESCRIPTOR;
21706pub type PEVENT_DESCRIPTOR = *mut _EVENT_DESCRIPTOR;
21707pub type PCEVENT_DESCRIPTOR = *const EVENT_DESCRIPTOR;
21708#[repr(C)]
21709#[derive(Debug, Copy, Clone)]
21710pub struct _EVENT_FILTER_DESCRIPTOR {
21711 pub Ptr: ULONGLONG,
21712 pub Size: ULONG,
21713 pub Type: ULONG,
21714}
21715pub type EVENT_FILTER_DESCRIPTOR = _EVENT_FILTER_DESCRIPTOR;
21716pub type PEVENT_FILTER_DESCRIPTOR = *mut _EVENT_FILTER_DESCRIPTOR;
21717#[repr(C)]
21718#[derive(Debug, Copy, Clone)]
21719pub struct _EVENT_FILTER_HEADER {
21720 pub Id: USHORT,
21721 pub Version: UCHAR,
21722 pub Reserved: [UCHAR; 5usize],
21723 pub InstanceId: ULONGLONG,
21724 pub Size: ULONG,
21725 pub NextOffset: ULONG,
21726}
21727pub type EVENT_FILTER_HEADER = _EVENT_FILTER_HEADER;
21728pub type PEVENT_FILTER_HEADER = *mut _EVENT_FILTER_HEADER;
21729#[repr(C)]
21730#[derive(Debug, Copy, Clone)]
21731pub struct _EVENT_FILTER_EVENT_ID {
21732 pub FilterIn: BOOLEAN,
21733 pub Reserved: UCHAR,
21734 pub Count: USHORT,
21735 pub Events: [USHORT; 1usize],
21736}
21737pub type EVENT_FILTER_EVENT_ID = _EVENT_FILTER_EVENT_ID;
21738pub type PEVENT_FILTER_EVENT_ID = *mut _EVENT_FILTER_EVENT_ID;
21739#[repr(C)]
21740#[derive(Debug, Copy, Clone)]
21741pub struct _EVENT_FILTER_EVENT_NAME {
21742 pub MatchAnyKeyword: ULONGLONG,
21743 pub MatchAllKeyword: ULONGLONG,
21744 pub Level: UCHAR,
21745 pub FilterIn: BOOLEAN,
21746 pub NameCount: USHORT,
21747 pub Names: [UCHAR; 1usize],
21748}
21749pub type EVENT_FILTER_EVENT_NAME = _EVENT_FILTER_EVENT_NAME;
21750pub type PEVENT_FILTER_EVENT_NAME = *mut _EVENT_FILTER_EVENT_NAME;
21751#[repr(C)]
21752#[derive(Debug, Copy, Clone)]
21753pub struct _EVENT_FILTER_LEVEL_KW {
21754 pub MatchAnyKeyword: ULONGLONG,
21755 pub MatchAllKeyword: ULONGLONG,
21756 pub Level: UCHAR,
21757 pub FilterIn: BOOLEAN,
21758}
21759pub type EVENT_FILTER_LEVEL_KW = _EVENT_FILTER_LEVEL_KW;
21760pub type PEVENT_FILTER_LEVEL_KW = *mut _EVENT_FILTER_LEVEL_KW;
21761pub const _EVENT_INFO_CLASS_EventProviderBinaryTrackInfo: _EVENT_INFO_CLASS = 0;
21762pub const _EVENT_INFO_CLASS_EventProviderSetReserved1: _EVENT_INFO_CLASS = 1;
21763pub const _EVENT_INFO_CLASS_EventProviderSetTraits: _EVENT_INFO_CLASS = 2;
21764pub const _EVENT_INFO_CLASS_EventProviderUseDescriptorType: _EVENT_INFO_CLASS = 3;
21765pub const _EVENT_INFO_CLASS_MaxEventInfo: _EVENT_INFO_CLASS = 4;
21766pub type _EVENT_INFO_CLASS = core::ffi::c_int;
21767pub use self::_EVENT_INFO_CLASS as EVENT_INFO_CLASS;
21768pub type PETWENABLECALLBACK = ::core::option::Option<
21769 unsafe extern "C" fn(
21770 arg1: LPCGUID,
21771 arg2: ULONG,
21772 arg3: UCHAR,
21773 arg4: ULONGLONG,
21774 arg5: ULONGLONG,
21775 arg6: PEVENT_FILTER_DESCRIPTOR,
21776 arg7: PVOID,
21777 ),
21778>;
21779unsafe extern "C" {
21780 pub fn EtwRegister(
21781 ProviderId: LPCGUID,
21782 EnableCallback: PETWENABLECALLBACK,
21783 CallbackContext: PVOID,
21784 RegHandle: PREGHANDLE,
21785 ) -> NTSTATUS;
21786}
21787unsafe extern "C" {
21788 pub fn EtwUnregister(RegHandle: REGHANDLE) -> NTSTATUS;
21789}
21790unsafe extern "C" {
21791 pub fn EtwSetInformation(
21792 RegHandle: REGHANDLE,
21793 InformationClass: EVENT_INFO_CLASS,
21794 EventInformation: PVOID,
21795 InformationLength: ULONG,
21796 ) -> NTSTATUS;
21797}
21798unsafe extern "C" {
21799 pub fn EtwEventEnabled(RegHandle: REGHANDLE, EventDescriptor: PCEVENT_DESCRIPTOR) -> BOOLEAN;
21800}
21801unsafe extern "C" {
21802 pub fn EtwProviderEnabled(RegHandle: REGHANDLE, Level: UCHAR, Keyword: ULONGLONG) -> BOOLEAN;
21803}
21804unsafe extern "C" {
21805 pub fn EtwActivityIdControl(ControlCode: ULONG, ActivityId: LPGUID) -> NTSTATUS;
21806}
21807unsafe extern "C" {
21808 pub fn EtwWrite(
21809 RegHandle: REGHANDLE,
21810 EventDescriptor: PCEVENT_DESCRIPTOR,
21811 ActivityId: LPCGUID,
21812 UserDataCount: ULONG,
21813 UserData: PEVENT_DATA_DESCRIPTOR,
21814 ) -> NTSTATUS;
21815}
21816unsafe extern "C" {
21817 pub fn EtwWriteTransfer(
21818 RegHandle: REGHANDLE,
21819 EventDescriptor: PCEVENT_DESCRIPTOR,
21820 ActivityId: LPCGUID,
21821 RelatedActivityId: LPCGUID,
21822 UserDataCount: ULONG,
21823 UserData: PEVENT_DATA_DESCRIPTOR,
21824 ) -> NTSTATUS;
21825}
21826unsafe extern "C" {
21827 pub fn EtwWriteString(
21828 RegHandle: REGHANDLE,
21829 Level: UCHAR,
21830 Keyword: ULONGLONG,
21831 ActivityId: LPCGUID,
21832 String: PCWSTR,
21833 ) -> NTSTATUS;
21834}
21835unsafe extern "C" {
21836 pub fn EtwWriteEx(
21837 RegHandle: REGHANDLE,
21838 EventDescriptor: PCEVENT_DESCRIPTOR,
21839 Filter: ULONG64,
21840 Flags: ULONG,
21841 ActivityId: LPCGUID,
21842 RelatedActivityId: LPCGUID,
21843 UserDataCount: ULONG,
21844 UserData: PEVENT_DATA_DESCRIPTOR,
21845 ) -> NTSTATUS;
21846}
21847unsafe extern "C" {
21848 pub fn SeEtwWriteKMCveEvent(
21849 CveId: PCUNICODE_STRING,
21850 AdditionalDetails: PCUNICODE_STRING,
21851 ) -> NTSTATUS;
21852}
21853pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyDeviceDescription: DEVICE_REGISTRY_PROPERTY = 0;
21854pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyHardwareID: DEVICE_REGISTRY_PROPERTY = 1;
21855pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyCompatibleIDs: DEVICE_REGISTRY_PROPERTY = 2;
21856pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyBootConfiguration: DEVICE_REGISTRY_PROPERTY = 3;
21857pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyBootConfigurationTranslated:
21858DEVICE_REGISTRY_PROPERTY = 4;
21859pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyClassName: DEVICE_REGISTRY_PROPERTY = 5;
21860pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyClassGuid: DEVICE_REGISTRY_PROPERTY = 6;
21861pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyDriverKeyName: DEVICE_REGISTRY_PROPERTY = 7;
21862pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyManufacturer: DEVICE_REGISTRY_PROPERTY = 8;
21863pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyFriendlyName: DEVICE_REGISTRY_PROPERTY = 9;
21864pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyLocationInformation: DEVICE_REGISTRY_PROPERTY = 10;
21865pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyPhysicalDeviceObjectName:
21866DEVICE_REGISTRY_PROPERTY = 11;
21867pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyBusTypeGuid: DEVICE_REGISTRY_PROPERTY = 12;
21868pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyLegacyBusType: DEVICE_REGISTRY_PROPERTY = 13;
21869pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyBusNumber: DEVICE_REGISTRY_PROPERTY = 14;
21870pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyEnumeratorName: DEVICE_REGISTRY_PROPERTY = 15;
21871pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyAddress: DEVICE_REGISTRY_PROPERTY = 16;
21872pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyUINumber: DEVICE_REGISTRY_PROPERTY = 17;
21873pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyInstallState: DEVICE_REGISTRY_PROPERTY = 18;
21874pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyRemovalPolicy: DEVICE_REGISTRY_PROPERTY = 19;
21875pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyResourceRequirements: DEVICE_REGISTRY_PROPERTY =
21876 20;
21877pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyAllocatedResources: DEVICE_REGISTRY_PROPERTY = 21;
21878pub const DEVICE_REGISTRY_PROPERTY_DevicePropertyContainerID: DEVICE_REGISTRY_PROPERTY = 22;
21879pub type DEVICE_REGISTRY_PROPERTY = core::ffi::c_int;
21880pub type TRANSLATE_BUS_ADDRESS = ::core::option::Option<
21881 unsafe extern "C" fn(
21882 Context: PVOID,
21883 BusAddress: PHYSICAL_ADDRESS,
21884 Length: ULONG,
21885 AddressSpace: PULONG,
21886 TranslatedAddress: PPHYSICAL_ADDRESS,
21887 ) -> BOOLEAN,
21888>;
21889pub type PTRANSLATE_BUS_ADDRESS = TRANSLATE_BUS_ADDRESS;
21890pub type GET_DMA_ADAPTER = ::core::option::Option<
21891 unsafe extern "C" fn(
21892 Context: PVOID,
21893 DeviceDescriptor: *mut _DEVICE_DESCRIPTION,
21894 NumberOfMapRegisters: PULONG,
21895 ) -> *mut _DMA_ADAPTER,
21896>;
21897pub type PGET_DMA_ADAPTER = GET_DMA_ADAPTER;
21898pub type GET_SET_DEVICE_DATA = ::core::option::Option<
21899 unsafe extern "C" fn(
21900 Context: PVOID,
21901 DataType: ULONG,
21902 Buffer: PVOID,
21903 Offset: ULONG,
21904 Length: ULONG,
21905 ) -> ULONG,
21906>;
21907pub type PGET_SET_DEVICE_DATA = GET_SET_DEVICE_DATA;
21908pub const _DEVICE_INSTALL_STATE_InstallStateInstalled: _DEVICE_INSTALL_STATE = 0;
21909pub const _DEVICE_INSTALL_STATE_InstallStateNeedsReinstall: _DEVICE_INSTALL_STATE = 1;
21910pub const _DEVICE_INSTALL_STATE_InstallStateFailedInstall: _DEVICE_INSTALL_STATE = 2;
21911pub const _DEVICE_INSTALL_STATE_InstallStateFinishInstall: _DEVICE_INSTALL_STATE = 3;
21912pub type _DEVICE_INSTALL_STATE = core::ffi::c_int;
21913pub use self::_DEVICE_INSTALL_STATE as DEVICE_INSTALL_STATE;
21914pub type PDEVICE_INSTALL_STATE = *mut _DEVICE_INSTALL_STATE;
21915#[repr(C)]
21916#[derive(Debug, Copy, Clone)]
21917pub struct _PNP_BUS_INFORMATION {
21918 pub BusTypeGuid: GUID,
21919 pub LegacyBusType: INTERFACE_TYPE,
21920 pub BusNumber: ULONG,
21921}
21922pub type PNP_BUS_INFORMATION = _PNP_BUS_INFORMATION;
21923pub type PPNP_BUS_INFORMATION = *mut _PNP_BUS_INFORMATION;
21924#[repr(C)]
21925#[derive(Debug, Copy, Clone)]
21926pub struct _LEGACY_BUS_INFORMATION {
21927 pub BusTypeGuid: GUID,
21928 pub LegacyBusType: INTERFACE_TYPE,
21929 pub BusNumber: ULONG,
21930}
21931pub type LEGACY_BUS_INFORMATION = _LEGACY_BUS_INFORMATION;
21932pub type PLEGACY_BUS_INFORMATION = *mut _LEGACY_BUS_INFORMATION;
21933pub const _DEVICE_REMOVAL_POLICY_RemovalPolicyExpectNoRemoval: _DEVICE_REMOVAL_POLICY = 1;
21934pub const _DEVICE_REMOVAL_POLICY_RemovalPolicyExpectOrderlyRemoval: _DEVICE_REMOVAL_POLICY = 2;
21935pub const _DEVICE_REMOVAL_POLICY_RemovalPolicyExpectSurpriseRemoval: _DEVICE_REMOVAL_POLICY = 3;
21936pub type _DEVICE_REMOVAL_POLICY = core::ffi::c_int;
21937pub use self::_DEVICE_REMOVAL_POLICY as DEVICE_REMOVAL_POLICY;
21938pub type PDEVICE_REMOVAL_POLICY = *mut _DEVICE_REMOVAL_POLICY;
21939#[repr(C)]
21940#[derive(Debug, Copy, Clone)]
21941pub struct _BUS_INTERFACE_STANDARD {
21942 pub Size: USHORT,
21943 pub Version: USHORT,
21944 pub Context: PVOID,
21945 pub InterfaceReference: PINTERFACE_REFERENCE,
21946 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
21947 pub TranslateBusAddress: PTRANSLATE_BUS_ADDRESS,
21948 pub GetDmaAdapter: PGET_DMA_ADAPTER,
21949 pub SetBusData: PGET_SET_DEVICE_DATA,
21950 pub GetBusData: PGET_SET_DEVICE_DATA,
21951}
21952pub type BUS_INTERFACE_STANDARD = _BUS_INTERFACE_STANDARD;
21953pub type PBUS_INTERFACE_STANDARD = *mut _BUS_INTERFACE_STANDARD;
21954pub type GET_VIRTUAL_DEVICE_DATA = ::core::option::Option<
21955 unsafe extern "C" fn(
21956 Context: PVOID,
21957 VirtualFunction: USHORT,
21958 Buffer: PVOID,
21959 Offset: ULONG,
21960 Length: ULONG,
21961 ) -> ULONG,
21962>;
21963pub type PGET_VIRTUAL_DEVICE_DATA = GET_VIRTUAL_DEVICE_DATA;
21964pub type SET_VIRTUAL_DEVICE_DATA = ::core::option::Option<
21965 unsafe extern "C" fn(
21966 Context: PVOID,
21967 VirtualFunction: USHORT,
21968 Buffer: PVOID,
21969 Offset: ULONG,
21970 Length: ULONG,
21971 ) -> ULONG,
21972>;
21973pub type PSET_VIRTUAL_DEVICE_DATA = SET_VIRTUAL_DEVICE_DATA;
21974pub type GET_VIRTUAL_DEVICE_LOCATION = ::core::option::Option<
21975 unsafe extern "C" fn(
21976 Context: PVOID,
21977 VirtualFunction: USHORT,
21978 SegmentNumber: PUINT16,
21979 BusNumber: PUINT8,
21980 FunctionNumber: PUINT8,
21981 ) -> NTSTATUS,
21982>;
21983pub type PGET_VIRTUAL_DEVICE_LOCATION = GET_VIRTUAL_DEVICE_LOCATION;
21984pub type GET_VIRTUAL_DEVICE_RESOURCES =
21985::core::option::Option<unsafe extern "C" fn(Context: PVOID, CapturedBusNumbers: PUINT8)>;
21986pub type PGET_VIRTUAL_DEVICE_RESOURCES = GET_VIRTUAL_DEVICE_RESOURCES;
21987pub type ENABLE_VIRTUALIZATION = ::core::option::Option<
21988 unsafe extern "C" fn(
21989 Context: PVOID,
21990 NumVFs: UINT16,
21991 EnableVfMigration: BOOLEAN,
21992 EnableMigrationInterrupt: BOOLEAN,
21993 EnableVirtualization: BOOLEAN,
21994 ) -> NTSTATUS,
21995>;
21996pub type PENABLE_VIRTUALIZATION = ENABLE_VIRTUALIZATION;
21997pub type GET_VIRTUAL_FUNCTION_PROBED_BARS = ::core::option::Option<
21998 unsafe extern "C" fn(Context: PVOID, BaseRegisterValues: PULONG) -> NTSTATUS,
21999>;
22000pub type PGET_VIRTUAL_FUNCTION_PROBED_BARS = GET_VIRTUAL_FUNCTION_PROBED_BARS;
22001#[repr(C)]
22002#[derive(Debug, Copy, Clone)]
22003pub struct _PCI_VIRTUALIZATION_INTERFACE {
22004 pub Size: USHORT,
22005 pub Version: USHORT,
22006 pub Context: PVOID,
22007 pub InterfaceReference: PINTERFACE_REFERENCE,
22008 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22009 pub SetVirtualFunctionData: PSET_VIRTUAL_DEVICE_DATA,
22010 pub GetVirtualFunctionData: PGET_VIRTUAL_DEVICE_DATA,
22011 pub GetLocation: PGET_VIRTUAL_DEVICE_LOCATION,
22012 pub GetResources: PGET_VIRTUAL_DEVICE_RESOURCES,
22013 pub EnableVirtualization: PENABLE_VIRTUALIZATION,
22014 pub GetVirtualFunctionProbedBars: PGET_VIRTUAL_FUNCTION_PROBED_BARS,
22015}
22016pub type PCI_VIRTUALIZATION_INTERFACE = _PCI_VIRTUALIZATION_INTERFACE;
22017pub type PPCI_VIRTUALIZATION_INTERFACE = *mut _PCI_VIRTUALIZATION_INTERFACE;
22018pub const _PCI_ACS_BIT_PciAcsReserved: _PCI_ACS_BIT = 0;
22019pub const _PCI_ACS_BIT_PciAcsBitEnable: _PCI_ACS_BIT = 1;
22020pub const _PCI_ACS_BIT_PciAcsBitDisable: _PCI_ACS_BIT = 2;
22021pub const _PCI_ACS_BIT_PciAcsBitDontCare: _PCI_ACS_BIT = 3;
22022pub type _PCI_ACS_BIT = core::ffi::c_int;
22023pub use self::_PCI_ACS_BIT as PCI_ACS_BIT;
22024pub type PPCI_ACS_BIT = *mut _PCI_ACS_BIT;
22025pub type PCI_SET_ACS = ::core::option::Option<
22026 unsafe extern "C" fn(
22027 Context: PVOID,
22028 EnableSourceValidation: PCI_ACS_BIT,
22029 EnableTranslationBlocking: PCI_ACS_BIT,
22030 EnableP2PRequestRedirect: PCI_ACS_BIT,
22031 EnableCompletionRedirect: PCI_ACS_BIT,
22032 EnableUpstreamForwarding: PCI_ACS_BIT,
22033 EnableEgressControl: PCI_ACS_BIT,
22034 EnableDirectTranslatedP2P: PCI_ACS_BIT,
22035 ) -> NTSTATUS,
22036>;
22037pub type PPCI_SET_ACS = PCI_SET_ACS;
22038#[repr(C)]
22039#[derive(Debug, Copy, Clone)]
22040pub struct _PCI_SECURITY_INTERFACE {
22041 pub Size: USHORT,
22042 pub Version: USHORT,
22043 pub Context: PVOID,
22044 pub InterfaceReference: PINTERFACE_REFERENCE,
22045 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22046 pub SetAccessControlServices: PPCI_SET_ACS,
22047}
22048pub type PCI_SECURITY_INTERFACE = _PCI_SECURITY_INTERFACE;
22049pub type PPCI_SECURITY_INTERFACE = *mut _PCI_SECURITY_INTERFACE;
22050pub type PCI_SET_ACS2 = ::core::option::Option<
22051 unsafe extern "C" fn(
22052 Context: PVOID,
22053 ScenariosToModify: ULONG,
22054 ScenarioState: ULONG,
22055 ) -> NTSTATUS,
22056>;
22057pub type PPCI_SET_ACS2 = PCI_SET_ACS2;
22058#[repr(C)]
22059#[derive(Debug, Copy, Clone)]
22060pub struct _PCI_SECURITY_INTERFACE2 {
22061 pub Size: USHORT,
22062 pub Version: USHORT,
22063 pub Context: PVOID,
22064 pub InterfaceReference: PINTERFACE_REFERENCE,
22065 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22066 pub Flags: ULONG,
22067 pub SupportedScenarios: ULONG,
22068 pub SetAccessControlServices: PPCI_SET_ACS2,
22069}
22070pub type PCI_SECURITY_INTERFACE2 = _PCI_SECURITY_INTERFACE2;
22071pub type PPCI_SECURITY_INTERFACE2 = *mut _PCI_SECURITY_INTERFACE2;
22072pub type PCI_SET_ATS =
22073::core::option::Option<unsafe extern "C" fn(Context: PVOID, EnableAts: BOOLEAN) -> NTSTATUS>;
22074pub type PPCI_SET_ATS = PCI_SET_ATS;
22075#[repr(C)]
22076#[derive(Debug, Copy, Clone)]
22077pub struct _PCI_ATS_INTERFACE {
22078 pub Size: USHORT,
22079 pub Version: USHORT,
22080 pub Context: PVOID,
22081 pub InterfaceReference: PINTERFACE_REFERENCE,
22082 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22083 pub SetAddressTranslationServices: PPCI_SET_ATS,
22084 pub InvalidateQueueDepth: UCHAR,
22085}
22086pub type PCI_ATS_INTERFACE = _PCI_ATS_INTERFACE;
22087pub type PPCI_ATS_INTERFACE = *mut _PCI_ATS_INTERFACE;
22088pub type PREENUMERATE_SELF = ::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
22089#[repr(C)]
22090#[derive(Debug, Copy, Clone)]
22091pub struct _REENUMERATE_SELF_INTERFACE_STANDARD {
22092 pub Size: USHORT,
22093 pub Version: USHORT,
22094 pub Context: PVOID,
22095 pub InterfaceReference: PINTERFACE_REFERENCE,
22096 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22097 pub SurpriseRemoveAndReenumerateSelf: PREENUMERATE_SELF,
22098}
22099pub type REENUMERATE_SELF_INTERFACE_STANDARD = _REENUMERATE_SELF_INTERFACE_STANDARD;
22100pub type PREENUMERATE_SELF_INTERFACE_STANDARD = *mut _REENUMERATE_SELF_INTERFACE_STANDARD;
22101pub type PQUERYEXTENDEDADDRESS =
22102::core::option::Option<unsafe extern "C" fn(Context: PVOID, ExtendedAddress: PULONG64)>;
22103#[repr(C)]
22104#[derive(Debug, Copy, Clone)]
22105pub struct _PNP_EXTENDED_ADDRESS_INTERFACE {
22106 pub Size: USHORT,
22107 pub Version: USHORT,
22108 pub Context: PVOID,
22109 pub InterfaceReference: PINTERFACE_REFERENCE,
22110 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22111 pub QueryExtendedAddress: PQUERYEXTENDEDADDRESS,
22112}
22113pub type PNP_EXTENDED_ADDRESS_INTERFACE = _PNP_EXTENDED_ADDRESS_INTERFACE;
22114pub type PPNP_EXTENDED_ADDRESS_INTERFACE = *mut _PNP_EXTENDED_ADDRESS_INTERFACE;
22115pub type SET_D3COLD_SUPPORT =
22116::core::option::Option<unsafe extern "C" fn(Context: PVOID, D3ColdSupport: BOOLEAN)>;
22117pub type PSET_D3COLD_SUPPORT = SET_D3COLD_SUPPORT;
22118pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthNotWakeable: _DEVICE_WAKE_DEPTH = 0;
22119pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthD0: _DEVICE_WAKE_DEPTH = 1;
22120pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthD1: _DEVICE_WAKE_DEPTH = 2;
22121pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthD2: _DEVICE_WAKE_DEPTH = 3;
22122pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthD3hot: _DEVICE_WAKE_DEPTH = 4;
22123pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthD3cold: _DEVICE_WAKE_DEPTH = 5;
22124pub const _DEVICE_WAKE_DEPTH_DeviceWakeDepthMaximum: _DEVICE_WAKE_DEPTH = 6;
22125pub type _DEVICE_WAKE_DEPTH = core::ffi::c_int;
22126pub use self::_DEVICE_WAKE_DEPTH as DEVICE_WAKE_DEPTH;
22127pub type PDEVICE_WAKE_DEPTH = *mut _DEVICE_WAKE_DEPTH;
22128pub type GET_IDLE_WAKE_INFO = ::core::option::Option<
22129 unsafe extern "C" fn(
22130 Context: PVOID,
22131 SystemPowerState: SYSTEM_POWER_STATE,
22132 DeepestWakeableDstate: PDEVICE_WAKE_DEPTH,
22133 ) -> NTSTATUS,
22134>;
22135pub type PGET_IDLE_WAKE_INFO = GET_IDLE_WAKE_INFO;
22136pub type GET_D3COLD_CAPABILITY = ::core::option::Option<
22137 unsafe extern "C" fn(Context: PVOID, D3ColdSupported: PBOOLEAN) -> NTSTATUS,
22138>;
22139pub type PGET_D3COLD_CAPABILITY = GET_D3COLD_CAPABILITY;
22140pub const _D3COLD_LAST_TRANSITION_STATUS_LastDStateTransitionStatusUnknown:
22141_D3COLD_LAST_TRANSITION_STATUS = 0;
22142pub const _D3COLD_LAST_TRANSITION_STATUS_LastDStateTransitionD3hot: _D3COLD_LAST_TRANSITION_STATUS =
22143 1;
22144pub const _D3COLD_LAST_TRANSITION_STATUS_LastDStateTransitionD3cold:
22145_D3COLD_LAST_TRANSITION_STATUS = 2;
22146pub type _D3COLD_LAST_TRANSITION_STATUS = core::ffi::c_int;
22147pub use self::_D3COLD_LAST_TRANSITION_STATUS as D3COLD_LAST_TRANSITION_STATUS;
22148pub type PD3COLD_LAST_TRANSITION_STATUS = *mut _D3COLD_LAST_TRANSITION_STATUS;
22149pub type GET_D3COLD_LAST_TRANSITION_STATUS = ::core::option::Option<
22150 unsafe extern "C" fn(Context: PVOID, LastTransitionStatus: PD3COLD_LAST_TRANSITION_STATUS),
22151>;
22152pub type PGET_D3COLD_LAST_TRANSITION_STATUS = GET_D3COLD_LAST_TRANSITION_STATUS;
22153#[repr(C)]
22154#[derive(Debug, Copy, Clone)]
22155pub struct _D3COLD_SUPPORT_INTERFACE {
22156 pub Size: USHORT,
22157 pub Version: USHORT,
22158 pub Context: PVOID,
22159 pub InterfaceReference: PINTERFACE_REFERENCE,
22160 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22161 pub SetD3ColdSupport: PSET_D3COLD_SUPPORT,
22162 pub GetIdleWakeInfo: PGET_IDLE_WAKE_INFO,
22163 pub GetD3ColdCapability: PGET_D3COLD_CAPABILITY,
22164 pub GetBusDriverD3ColdSupport: PGET_D3COLD_CAPABILITY,
22165 pub GetLastTransitionStatus: PGET_D3COLD_LAST_TRANSITION_STATUS,
22166}
22167pub type D3COLD_SUPPORT_INTERFACE = _D3COLD_SUPPORT_INTERFACE;
22168pub type PD3COLD_SUPPORT_INTERFACE = *mut _D3COLD_SUPPORT_INTERFACE;
22169pub type D3COLD_REQUEST_CORE_POWER_RAIL =
22170::core::option::Option<unsafe extern "C" fn(Context: PVOID, CorePowerRailNeeded: BOOLEAN)>;
22171pub type PD3COLD_REQUEST_CORE_POWER_RAIL = D3COLD_REQUEST_CORE_POWER_RAIL;
22172pub type D3COLD_REQUEST_AUX_POWER = ::core::option::Option<
22173 unsafe extern "C" fn(
22174 Context: PVOID,
22175 AuxPowerInMilliWatts: ULONG,
22176 RetryInSeconds: PULONG,
22177 ) -> NTSTATUS,
22178>;
22179pub type PD3COLD_REQUEST_AUX_POWER = D3COLD_REQUEST_AUX_POWER;
22180pub type D3COLD_REQUEST_PERST_DELAY = ::core::option::Option<
22181 unsafe extern "C" fn(Context: PVOID, DelayInMicroSeconds: ULONG) -> NTSTATUS,
22182>;
22183pub type PD3COLD_REQUEST_PERST_DELAY = D3COLD_REQUEST_PERST_DELAY;
22184#[repr(C)]
22185#[derive(Debug, Copy, Clone)]
22186pub struct _D3COLD_AUX_POWER_AND_TIMING_INTERFACE {
22187 pub Size: USHORT,
22188 pub Version: USHORT,
22189 pub Context: PVOID,
22190 pub InterfaceReference: PINTERFACE_REFERENCE,
22191 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22192 pub RequestCorePowerRail: PD3COLD_REQUEST_CORE_POWER_RAIL,
22193 pub RequestAuxPower: PD3COLD_REQUEST_AUX_POWER,
22194 pub RequestPerstDelay: PD3COLD_REQUEST_PERST_DELAY,
22195}
22196pub type D3COLD_AUX_POWER_AND_TIMING_INTERFACE = _D3COLD_AUX_POWER_AND_TIMING_INTERFACE;
22197pub type PD3COLD_AUX_POWER_AND_TIMING_INTERFACE = *mut _D3COLD_AUX_POWER_AND_TIMING_INTERFACE;
22198pub type FPGA_BUS_SCAN = ::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
22199pub type PFPGA_BUS_SCAN = FPGA_BUS_SCAN;
22200pub type FPGA_CONTROL_LINK =
22201::core::option::Option<unsafe extern "C" fn(Context: PVOID, Enable: BOOLEAN) -> NTSTATUS>;
22202pub type PFPGA_CONTROL_LINK = FPGA_CONTROL_LINK;
22203pub type FPGA_CONTROL_CONFIG_SPACE =
22204::core::option::Option<unsafe extern "C" fn(Context: PVOID, Enable: BOOLEAN) -> NTSTATUS>;
22205pub type PFPGA_CONTROL_CONFIG_SPACE = FPGA_CONTROL_CONFIG_SPACE;
22206pub type FPGA_CONTROL_ERROR_REPORTING = ::core::option::Option<
22207 unsafe extern "C" fn(
22208 Context: PVOID,
22209 UncorrectableMask: ULONG,
22210 CorrectableMask: ULONG,
22211 DisableErrorReporting: BOOLEAN,
22212 ) -> NTSTATUS,
22213>;
22214pub type PFPGA_CONTROL_ERROR_REPORTING = FPGA_CONTROL_ERROR_REPORTING;
22215#[repr(C)]
22216#[derive(Debug, Copy, Clone)]
22217pub struct _FPGA_CONTROL_INTERFACE {
22218 pub Size: USHORT,
22219 pub Version: USHORT,
22220 pub Context: PVOID,
22221 pub InterfaceReference: PINTERFACE_REFERENCE,
22222 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22223 pub BusScan: PFPGA_BUS_SCAN,
22224 pub ControlLink: PFPGA_CONTROL_LINK,
22225 pub ControlConfigSpace: PFPGA_CONTROL_CONFIG_SPACE,
22226 pub ControlErrorReporting: PFPGA_CONTROL_ERROR_REPORTING,
22227}
22228pub type FPGA_CONTROL_INTERFACE = _FPGA_CONTROL_INTERFACE;
22229pub type PFPGA_CONTROL_INTERFACE = *mut _FPGA_CONTROL_INTERFACE;
22230pub type PTM_DEVICE_QUERY_GRANULARITY =
22231::core::option::Option<unsafe extern "C" fn(Context: PVOID, Granularity: PUCHAR) -> NTSTATUS>;
22232pub type PPTM_DEVICE_QUERY_GRANULARITY = PTM_DEVICE_QUERY_GRANULARITY;
22233pub type PTM_DEVICE_QUERY_TIME_SOURCE =
22234::core::option::Option<unsafe extern "C" fn(Context: PVOID, TimeSource: PULONG) -> NTSTATUS>;
22235pub type PPTM_DEVICE_QUERY_TIME_SOURCE = PTM_DEVICE_QUERY_TIME_SOURCE;
22236pub type PTM_DEVICE_ENABLE =
22237::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
22238pub type PPTM_DEVICE_ENABLE = PTM_DEVICE_ENABLE;
22239pub type PTM_DEVICE_DISABLE =
22240::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
22241pub type PPTM_DEVICE_DISABLE = PTM_DEVICE_DISABLE;
22242#[repr(C)]
22243#[derive(Debug, Copy, Clone)]
22244pub struct _PTM_CONTROL_INTERFACE {
22245 pub Size: USHORT,
22246 pub Version: USHORT,
22247 pub Context: PVOID,
22248 pub InterfaceReference: PINTERFACE_REFERENCE,
22249 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22250 pub QueryGranularity: PPTM_DEVICE_QUERY_GRANULARITY,
22251 pub QueryTimeSource: PPTM_DEVICE_QUERY_TIME_SOURCE,
22252 pub Enable: PPTM_DEVICE_ENABLE,
22253 pub Disable: PPTM_DEVICE_DISABLE,
22254}
22255pub type PTM_CONTROL_INTERFACE = _PTM_CONTROL_INTERFACE;
22256pub type PPTM_CONTROL_INTERFACE = *mut _PTM_CONTROL_INTERFACE;
22257pub type GET_UPDATED_BUS_RESOURCE = ::core::option::Option<
22258 unsafe extern "C" fn(
22259 Context: PVOID,
22260 UpdatedResourceList: *mut PCM_RESOURCE_LIST,
22261 UpdatedTranslatedResourceList: *mut PCM_RESOURCE_LIST,
22262 ) -> NTSTATUS,
22263>;
22264pub type PGET_UPDATED_BUS_RESOURCE = GET_UPDATED_BUS_RESOURCE;
22265#[repr(C)]
22266#[derive(Debug, Copy, Clone)]
22267pub struct _BUS_RESOURCE_UPDATE_INTERFACE {
22268 pub Size: USHORT,
22269 pub Version: USHORT,
22270 pub Context: PVOID,
22271 pub InterfaceReference: PINTERFACE_REFERENCE,
22272 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22273 pub GetUpdatedBusResource: PGET_UPDATED_BUS_RESOURCE,
22274}
22275pub type BUS_RESOURCE_UPDATE_INTERFACE = _BUS_RESOURCE_UPDATE_INTERFACE;
22276pub type PBUS_RESOURCE_UPDATE_INTERFACE = *mut _BUS_RESOURCE_UPDATE_INTERFACE;
22277pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_InitiateReset: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 1;
22278pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_OkControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 2;
22279pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_LocateControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 3;
22280pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_FailControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 4;
22281pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_RebuildControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 5;
22282pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_PFAControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT = 6;
22283pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_HotSpareControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT =
22284 7;
22285pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_InACriticalArrayControl:
22286_NPEM_CONTROL_STANDARD_CONTROL_BIT = 8;
22287pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_InAFailedArrayControl:
22288_NPEM_CONTROL_STANDARD_CONTROL_BIT = 9;
22289pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_InvalidDeviceTypeControl:
22290_NPEM_CONTROL_STANDARD_CONTROL_BIT = 10;
22291pub const _NPEM_CONTROL_STANDARD_CONTROL_BIT_DisabledControl: _NPEM_CONTROL_STANDARD_CONTROL_BIT =
22292 11;
22293pub type _NPEM_CONTROL_STANDARD_CONTROL_BIT = core::ffi::c_int;
22294pub use self::_NPEM_CONTROL_STANDARD_CONTROL_BIT as NPEM_CONTROL_STANDARD_CONTROL_BIT;
22295pub type PNPEM_CONTROL_STANDARD_CONTROL_BIT = *mut _NPEM_CONTROL_STANDARD_CONTROL_BIT;
22296#[repr(C)]
22297#[derive(Copy, Clone)]
22298pub union _NPEM_CAPABILITY_STANDARD {
22299 pub __bindgen_anon_1: _NPEM_CAPABILITY_STANDARD__bindgen_ty_1,
22300 pub AsULONG: ULONG,
22301}
22302#[repr(C)]
22303#[derive(Debug, Copy, Clone)]
22304pub struct _NPEM_CAPABILITY_STANDARD__bindgen_ty_1 {
22305 pub _bitfield_align_1: [u32; 0],
22306 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
22307}
22308impl _NPEM_CAPABILITY_STANDARD__bindgen_ty_1 {
22309 #[inline]
22310 pub fn Capable(&self) -> ULONG {
22311 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
22312 }
22313 #[inline]
22314 pub fn set_Capable(&mut self, val: ULONG) {
22315 unsafe {
22316 let val: u32 = ::core::mem::transmute(val);
22317 self._bitfield_1.set(0usize, 1u8, val as u64)
22318 }
22319 }
22320 #[inline]
22321 pub unsafe fn Capable_raw(this: *const Self) -> ULONG {
22322 unsafe {
22323 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22324 ::core::ptr::addr_of!((*this)._bitfield_1),
22325 0usize,
22326 1u8,
22327 ) as u32)
22328 }
22329 }
22330 #[inline]
22331 pub unsafe fn set_Capable_raw(this: *mut Self, val: ULONG) {
22332 unsafe {
22333 let val: u32 = ::core::mem::transmute(val);
22334 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22335 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22336 0usize,
22337 1u8,
22338 val as u64,
22339 )
22340 }
22341 }
22342 #[inline]
22343 pub fn ResetCapable(&self) -> ULONG {
22344 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
22345 }
22346 #[inline]
22347 pub fn set_ResetCapable(&mut self, val: ULONG) {
22348 unsafe {
22349 let val: u32 = ::core::mem::transmute(val);
22350 self._bitfield_1.set(1usize, 1u8, val as u64)
22351 }
22352 }
22353 #[inline]
22354 pub unsafe fn ResetCapable_raw(this: *const Self) -> ULONG {
22355 unsafe {
22356 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22357 ::core::ptr::addr_of!((*this)._bitfield_1),
22358 1usize,
22359 1u8,
22360 ) as u32)
22361 }
22362 }
22363 #[inline]
22364 pub unsafe fn set_ResetCapable_raw(this: *mut Self, val: ULONG) {
22365 unsafe {
22366 let val: u32 = ::core::mem::transmute(val);
22367 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22368 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22369 1usize,
22370 1u8,
22371 val as u64,
22372 )
22373 }
22374 }
22375 #[inline]
22376 pub fn OkCapable(&self) -> ULONG {
22377 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
22378 }
22379 #[inline]
22380 pub fn set_OkCapable(&mut self, val: ULONG) {
22381 unsafe {
22382 let val: u32 = ::core::mem::transmute(val);
22383 self._bitfield_1.set(2usize, 1u8, val as u64)
22384 }
22385 }
22386 #[inline]
22387 pub unsafe fn OkCapable_raw(this: *const Self) -> ULONG {
22388 unsafe {
22389 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22390 ::core::ptr::addr_of!((*this)._bitfield_1),
22391 2usize,
22392 1u8,
22393 ) as u32)
22394 }
22395 }
22396 #[inline]
22397 pub unsafe fn set_OkCapable_raw(this: *mut Self, val: ULONG) {
22398 unsafe {
22399 let val: u32 = ::core::mem::transmute(val);
22400 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22401 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22402 2usize,
22403 1u8,
22404 val as u64,
22405 )
22406 }
22407 }
22408 #[inline]
22409 pub fn LocateCapable(&self) -> ULONG {
22410 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
22411 }
22412 #[inline]
22413 pub fn set_LocateCapable(&mut self, val: ULONG) {
22414 unsafe {
22415 let val: u32 = ::core::mem::transmute(val);
22416 self._bitfield_1.set(3usize, 1u8, val as u64)
22417 }
22418 }
22419 #[inline]
22420 pub unsafe fn LocateCapable_raw(this: *const Self) -> ULONG {
22421 unsafe {
22422 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22423 ::core::ptr::addr_of!((*this)._bitfield_1),
22424 3usize,
22425 1u8,
22426 ) as u32)
22427 }
22428 }
22429 #[inline]
22430 pub unsafe fn set_LocateCapable_raw(this: *mut Self, val: ULONG) {
22431 unsafe {
22432 let val: u32 = ::core::mem::transmute(val);
22433 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22434 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22435 3usize,
22436 1u8,
22437 val as u64,
22438 )
22439 }
22440 }
22441 #[inline]
22442 pub fn FailCapable(&self) -> ULONG {
22443 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
22444 }
22445 #[inline]
22446 pub fn set_FailCapable(&mut self, val: ULONG) {
22447 unsafe {
22448 let val: u32 = ::core::mem::transmute(val);
22449 self._bitfield_1.set(4usize, 1u8, val as u64)
22450 }
22451 }
22452 #[inline]
22453 pub unsafe fn FailCapable_raw(this: *const Self) -> ULONG {
22454 unsafe {
22455 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22456 ::core::ptr::addr_of!((*this)._bitfield_1),
22457 4usize,
22458 1u8,
22459 ) as u32)
22460 }
22461 }
22462 #[inline]
22463 pub unsafe fn set_FailCapable_raw(this: *mut Self, val: ULONG) {
22464 unsafe {
22465 let val: u32 = ::core::mem::transmute(val);
22466 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22467 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22468 4usize,
22469 1u8,
22470 val as u64,
22471 )
22472 }
22473 }
22474 #[inline]
22475 pub fn RebuildCapable(&self) -> ULONG {
22476 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
22477 }
22478 #[inline]
22479 pub fn set_RebuildCapable(&mut self, val: ULONG) {
22480 unsafe {
22481 let val: u32 = ::core::mem::transmute(val);
22482 self._bitfield_1.set(5usize, 1u8, val as u64)
22483 }
22484 }
22485 #[inline]
22486 pub unsafe fn RebuildCapable_raw(this: *const Self) -> ULONG {
22487 unsafe {
22488 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22489 ::core::ptr::addr_of!((*this)._bitfield_1),
22490 5usize,
22491 1u8,
22492 ) as u32)
22493 }
22494 }
22495 #[inline]
22496 pub unsafe fn set_RebuildCapable_raw(this: *mut Self, val: ULONG) {
22497 unsafe {
22498 let val: u32 = ::core::mem::transmute(val);
22499 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22500 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22501 5usize,
22502 1u8,
22503 val as u64,
22504 )
22505 }
22506 }
22507 #[inline]
22508 pub fn PFACapable(&self) -> ULONG {
22509 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
22510 }
22511 #[inline]
22512 pub fn set_PFACapable(&mut self, val: ULONG) {
22513 unsafe {
22514 let val: u32 = ::core::mem::transmute(val);
22515 self._bitfield_1.set(6usize, 1u8, val as u64)
22516 }
22517 }
22518 #[inline]
22519 pub unsafe fn PFACapable_raw(this: *const Self) -> ULONG {
22520 unsafe {
22521 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22522 ::core::ptr::addr_of!((*this)._bitfield_1),
22523 6usize,
22524 1u8,
22525 ) as u32)
22526 }
22527 }
22528 #[inline]
22529 pub unsafe fn set_PFACapable_raw(this: *mut Self, val: ULONG) {
22530 unsafe {
22531 let val: u32 = ::core::mem::transmute(val);
22532 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22533 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22534 6usize,
22535 1u8,
22536 val as u64,
22537 )
22538 }
22539 }
22540 #[inline]
22541 pub fn HotSpareCapable(&self) -> ULONG {
22542 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
22543 }
22544 #[inline]
22545 pub fn set_HotSpareCapable(&mut self, val: ULONG) {
22546 unsafe {
22547 let val: u32 = ::core::mem::transmute(val);
22548 self._bitfield_1.set(7usize, 1u8, val as u64)
22549 }
22550 }
22551 #[inline]
22552 pub unsafe fn HotSpareCapable_raw(this: *const Self) -> ULONG {
22553 unsafe {
22554 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22555 ::core::ptr::addr_of!((*this)._bitfield_1),
22556 7usize,
22557 1u8,
22558 ) as u32)
22559 }
22560 }
22561 #[inline]
22562 pub unsafe fn set_HotSpareCapable_raw(this: *mut Self, val: ULONG) {
22563 unsafe {
22564 let val: u32 = ::core::mem::transmute(val);
22565 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22566 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22567 7usize,
22568 1u8,
22569 val as u64,
22570 )
22571 }
22572 }
22573 #[inline]
22574 pub fn InACriticalArrayCapable(&self) -> ULONG {
22575 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
22576 }
22577 #[inline]
22578 pub fn set_InACriticalArrayCapable(&mut self, val: ULONG) {
22579 unsafe {
22580 let val: u32 = ::core::mem::transmute(val);
22581 self._bitfield_1.set(8usize, 1u8, val as u64)
22582 }
22583 }
22584 #[inline]
22585 pub unsafe fn InACriticalArrayCapable_raw(this: *const Self) -> ULONG {
22586 unsafe {
22587 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22588 ::core::ptr::addr_of!((*this)._bitfield_1),
22589 8usize,
22590 1u8,
22591 ) as u32)
22592 }
22593 }
22594 #[inline]
22595 pub unsafe fn set_InACriticalArrayCapable_raw(this: *mut Self, val: ULONG) {
22596 unsafe {
22597 let val: u32 = ::core::mem::transmute(val);
22598 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22599 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22600 8usize,
22601 1u8,
22602 val as u64,
22603 )
22604 }
22605 }
22606 #[inline]
22607 pub fn InAFailedArrayCapable(&self) -> ULONG {
22608 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
22609 }
22610 #[inline]
22611 pub fn set_InAFailedArrayCapable(&mut self, val: ULONG) {
22612 unsafe {
22613 let val: u32 = ::core::mem::transmute(val);
22614 self._bitfield_1.set(9usize, 1u8, val as u64)
22615 }
22616 }
22617 #[inline]
22618 pub unsafe fn InAFailedArrayCapable_raw(this: *const Self) -> ULONG {
22619 unsafe {
22620 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22621 ::core::ptr::addr_of!((*this)._bitfield_1),
22622 9usize,
22623 1u8,
22624 ) as u32)
22625 }
22626 }
22627 #[inline]
22628 pub unsafe fn set_InAFailedArrayCapable_raw(this: *mut Self, val: ULONG) {
22629 unsafe {
22630 let val: u32 = ::core::mem::transmute(val);
22631 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22632 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22633 9usize,
22634 1u8,
22635 val as u64,
22636 )
22637 }
22638 }
22639 #[inline]
22640 pub fn InvalidDeviceTypeCapable(&self) -> ULONG {
22641 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
22642 }
22643 #[inline]
22644 pub fn set_InvalidDeviceTypeCapable(&mut self, val: ULONG) {
22645 unsafe {
22646 let val: u32 = ::core::mem::transmute(val);
22647 self._bitfield_1.set(10usize, 1u8, val as u64)
22648 }
22649 }
22650 #[inline]
22651 pub unsafe fn InvalidDeviceTypeCapable_raw(this: *const Self) -> ULONG {
22652 unsafe {
22653 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22654 ::core::ptr::addr_of!((*this)._bitfield_1),
22655 10usize,
22656 1u8,
22657 ) as u32)
22658 }
22659 }
22660 #[inline]
22661 pub unsafe fn set_InvalidDeviceTypeCapable_raw(this: *mut Self, val: ULONG) {
22662 unsafe {
22663 let val: u32 = ::core::mem::transmute(val);
22664 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22665 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22666 10usize,
22667 1u8,
22668 val as u64,
22669 )
22670 }
22671 }
22672 #[inline]
22673 pub fn DisabledCapable(&self) -> ULONG {
22674 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
22675 }
22676 #[inline]
22677 pub fn set_DisabledCapable(&mut self, val: ULONG) {
22678 unsafe {
22679 let val: u32 = ::core::mem::transmute(val);
22680 self._bitfield_1.set(11usize, 1u8, val as u64)
22681 }
22682 }
22683 #[inline]
22684 pub unsafe fn DisabledCapable_raw(this: *const Self) -> ULONG {
22685 unsafe {
22686 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22687 ::core::ptr::addr_of!((*this)._bitfield_1),
22688 11usize,
22689 1u8,
22690 ) as u32)
22691 }
22692 }
22693 #[inline]
22694 pub unsafe fn set_DisabledCapable_raw(this: *mut Self, val: ULONG) {
22695 unsafe {
22696 let val: u32 = ::core::mem::transmute(val);
22697 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22698 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22699 11usize,
22700 1u8,
22701 val as u64,
22702 )
22703 }
22704 }
22705 #[inline]
22706 pub fn Rsvd(&self) -> ULONG {
22707 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
22708 }
22709 #[inline]
22710 pub fn set_Rsvd(&mut self, val: ULONG) {
22711 unsafe {
22712 let val: u32 = ::core::mem::transmute(val);
22713 self._bitfield_1.set(12usize, 20u8, val as u64)
22714 }
22715 }
22716 #[inline]
22717 pub unsafe fn Rsvd_raw(this: *const Self) -> ULONG {
22718 unsafe {
22719 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
22720 ::core::ptr::addr_of!((*this)._bitfield_1),
22721 12usize,
22722 20u8,
22723 ) as u32)
22724 }
22725 }
22726 #[inline]
22727 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: ULONG) {
22728 unsafe {
22729 let val: u32 = ::core::mem::transmute(val);
22730 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
22731 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
22732 12usize,
22733 20u8,
22734 val as u64,
22735 )
22736 }
22737 }
22738 #[inline]
22739 pub fn new_bitfield_1(
22740 Capable: ULONG,
22741 ResetCapable: ULONG,
22742 OkCapable: ULONG,
22743 LocateCapable: ULONG,
22744 FailCapable: ULONG,
22745 RebuildCapable: ULONG,
22746 PFACapable: ULONG,
22747 HotSpareCapable: ULONG,
22748 InACriticalArrayCapable: ULONG,
22749 InAFailedArrayCapable: ULONG,
22750 InvalidDeviceTypeCapable: ULONG,
22751 DisabledCapable: ULONG,
22752 Rsvd: ULONG,
22753 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
22754 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
22755 __bindgen_bitfield_unit.set(0usize, 1u8, {
22756 let Capable: u32 = unsafe { ::core::mem::transmute(Capable) };
22757 Capable as u64
22758 });
22759 __bindgen_bitfield_unit.set(1usize, 1u8, {
22760 let ResetCapable: u32 = unsafe { ::core::mem::transmute(ResetCapable) };
22761 ResetCapable as u64
22762 });
22763 __bindgen_bitfield_unit.set(2usize, 1u8, {
22764 let OkCapable: u32 = unsafe { ::core::mem::transmute(OkCapable) };
22765 OkCapable as u64
22766 });
22767 __bindgen_bitfield_unit.set(3usize, 1u8, {
22768 let LocateCapable: u32 = unsafe { ::core::mem::transmute(LocateCapable) };
22769 LocateCapable as u64
22770 });
22771 __bindgen_bitfield_unit.set(4usize, 1u8, {
22772 let FailCapable: u32 = unsafe { ::core::mem::transmute(FailCapable) };
22773 FailCapable as u64
22774 });
22775 __bindgen_bitfield_unit.set(5usize, 1u8, {
22776 let RebuildCapable: u32 = unsafe { ::core::mem::transmute(RebuildCapable) };
22777 RebuildCapable as u64
22778 });
22779 __bindgen_bitfield_unit.set(6usize, 1u8, {
22780 let PFACapable: u32 = unsafe { ::core::mem::transmute(PFACapable) };
22781 PFACapable as u64
22782 });
22783 __bindgen_bitfield_unit.set(7usize, 1u8, {
22784 let HotSpareCapable: u32 = unsafe { ::core::mem::transmute(HotSpareCapable) };
22785 HotSpareCapable as u64
22786 });
22787 __bindgen_bitfield_unit.set(8usize, 1u8, {
22788 let InACriticalArrayCapable: u32 =
22789 unsafe { ::core::mem::transmute(InACriticalArrayCapable) };
22790 InACriticalArrayCapable as u64
22791 });
22792 __bindgen_bitfield_unit.set(9usize, 1u8, {
22793 let InAFailedArrayCapable: u32 =
22794 unsafe { ::core::mem::transmute(InAFailedArrayCapable) };
22795 InAFailedArrayCapable as u64
22796 });
22797 __bindgen_bitfield_unit.set(10usize, 1u8, {
22798 let InvalidDeviceTypeCapable: u32 =
22799 unsafe { ::core::mem::transmute(InvalidDeviceTypeCapable) };
22800 InvalidDeviceTypeCapable as u64
22801 });
22802 __bindgen_bitfield_unit.set(11usize, 1u8, {
22803 let DisabledCapable: u32 = unsafe { ::core::mem::transmute(DisabledCapable) };
22804 DisabledCapable as u64
22805 });
22806 __bindgen_bitfield_unit.set(12usize, 20u8, {
22807 let Rsvd: u32 = unsafe { ::core::mem::transmute(Rsvd) };
22808 Rsvd as u64
22809 });
22810 __bindgen_bitfield_unit
22811 }
22812}
22813pub type NPEM_CAPABILITY_STANDARD = _NPEM_CAPABILITY_STANDARD;
22814pub type PNPEM_CAPABILITY_STANDARD = *mut _NPEM_CAPABILITY_STANDARD;
22815pub type NPEM_CONTROL_ENABLE_DISABLE =
22816::core::option::Option<unsafe extern "C" fn(Context: PVOID, EnableNpem: BOOLEAN) -> NTSTATUS>;
22817pub type PNPEM_CONTROL_ENABLE_DISABLE = NPEM_CONTROL_ENABLE_DISABLE;
22818pub type NPEM_CONTROL_QUERY_STANDARD_CAPABILITIES = ::core::option::Option<
22819 unsafe extern "C" fn(
22820 Context: PVOID,
22821 StandardCapabilities: PNPEM_CAPABILITY_STANDARD,
22822 ) -> NTSTATUS,
22823>;
22824pub type PNPEM_CONTROL_QUERY_STANDARD_CAPABILITIES = NPEM_CONTROL_QUERY_STANDARD_CAPABILITIES;
22825pub type NPEM_CONTROL_SET_STANDARD_CONTROL = ::core::option::Option<
22826 unsafe extern "C" fn(
22827 Context: PVOID,
22828 StandardControl: NPEM_CONTROL_STANDARD_CONTROL_BIT,
22829 Set: BOOLEAN,
22830 ) -> NTSTATUS,
22831>;
22832pub type PNPEM_CONTROL_SET_STANDARD_CONTROL = NPEM_CONTROL_SET_STANDARD_CONTROL;
22833pub type NPEM_CONTROL_QUERY_CONTROL =
22834::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> ULONG>;
22835pub type PNPEM_CONTROL_QUERY_CONTROL = NPEM_CONTROL_QUERY_CONTROL;
22836#[repr(C)]
22837#[derive(Debug, Copy, Clone)]
22838pub struct _NPEM_CONTROL_INTERFACE {
22839 pub Size: USHORT,
22840 pub Version: USHORT,
22841 pub Context: PVOID,
22842 pub InterfaceReference: PINTERFACE_REFERENCE,
22843 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22844 pub SetNpemSupportState: PNPEM_CONTROL_ENABLE_DISABLE,
22845 pub QueryStandardCapabilities: PNPEM_CONTROL_QUERY_STANDARD_CAPABILITIES,
22846 pub SetStandardControl: PNPEM_CONTROL_SET_STANDARD_CONTROL,
22847 pub QueryNpemControl: PNPEM_CONTROL_QUERY_CONTROL,
22848}
22849pub type NPEM_CONTROL_INTERFACE = _NPEM_CONTROL_INTERFACE;
22850pub type PNPEM_CONTROL_INTERFACE = *mut _NPEM_CONTROL_INTERFACE;
22851pub type PGPE_SERVICE_ROUTINE =
22852::core::option::Option<unsafe extern "C" fn(arg1: PVOID, arg2: PVOID) -> BOOLEAN>;
22853pub type PGPE_CONNECT_VECTOR = ::core::option::Option<
22854 unsafe extern "C" fn(
22855 arg1: PDEVICE_OBJECT,
22856 arg2: ULONG,
22857 arg3: KINTERRUPT_MODE,
22858 arg4: BOOLEAN,
22859 arg5: PGPE_SERVICE_ROUTINE,
22860 arg6: PVOID,
22861 arg7: PVOID,
22862 ) -> NTSTATUS,
22863>;
22864pub type PGPE_DISCONNECT_VECTOR =
22865::core::option::Option<unsafe extern "C" fn(arg1: PVOID) -> NTSTATUS>;
22866pub type PGPE_ENABLE_EVENT =
22867::core::option::Option<unsafe extern "C" fn(arg1: PDEVICE_OBJECT, arg2: PVOID) -> NTSTATUS>;
22868pub type PGPE_DISABLE_EVENT =
22869::core::option::Option<unsafe extern "C" fn(arg1: PDEVICE_OBJECT, arg2: PVOID) -> NTSTATUS>;
22870pub type PGPE_CLEAR_STATUS =
22871::core::option::Option<unsafe extern "C" fn(arg1: PDEVICE_OBJECT, arg2: PVOID) -> NTSTATUS>;
22872pub type PDEVICE_NOTIFY_CALLBACK =
22873::core::option::Option<unsafe extern "C" fn(arg1: PVOID, arg2: ULONG)>;
22874pub type PREGISTER_FOR_DEVICE_NOTIFICATIONS = ::core::option::Option<
22875 unsafe extern "C" fn(
22876 arg1: PDEVICE_OBJECT,
22877 arg2: PDEVICE_NOTIFY_CALLBACK,
22878 arg3: PVOID,
22879 ) -> NTSTATUS,
22880>;
22881pub type PUNREGISTER_FOR_DEVICE_NOTIFICATIONS = ::core::option::Option<
22882 unsafe extern "C" fn(arg1: PDEVICE_OBJECT, arg2: PDEVICE_NOTIFY_CALLBACK),
22883>;
22884#[repr(C)]
22885#[derive(Debug, Copy, Clone)]
22886pub struct _ACPI_INTERFACE_STANDARD {
22887 pub Size: USHORT,
22888 pub Version: USHORT,
22889 pub Context: PVOID,
22890 pub InterfaceReference: PINTERFACE_REFERENCE,
22891 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22892 pub GpeConnectVector: PGPE_CONNECT_VECTOR,
22893 pub GpeDisconnectVector: PGPE_DISCONNECT_VECTOR,
22894 pub GpeEnableEvent: PGPE_ENABLE_EVENT,
22895 pub GpeDisableEvent: PGPE_DISABLE_EVENT,
22896 pub GpeClearStatus: PGPE_CLEAR_STATUS,
22897 pub RegisterForDeviceNotifications: PREGISTER_FOR_DEVICE_NOTIFICATIONS,
22898 pub UnregisterForDeviceNotifications: PUNREGISTER_FOR_DEVICE_NOTIFICATIONS,
22899}
22900pub type ACPI_INTERFACE_STANDARD = _ACPI_INTERFACE_STANDARD;
22901pub type PACPI_INTERFACE_STANDARD = *mut _ACPI_INTERFACE_STANDARD;
22902pub type PGPE_SERVICE_ROUTINE2 = ::core::option::Option<
22903 unsafe extern "C" fn(ObjectContext: PVOID, ServiceContext: PVOID) -> BOOLEAN,
22904>;
22905pub type PGPE_CONNECT_VECTOR2 = ::core::option::Option<
22906 unsafe extern "C" fn(
22907 Context: PVOID,
22908 GpeNumber: ULONG,
22909 Mode: KINTERRUPT_MODE,
22910 Shareable: BOOLEAN,
22911 ServiceRoutine: PGPE_SERVICE_ROUTINE,
22912 ServiceContext: PVOID,
22913 ObjectContext: *mut PVOID,
22914 ) -> NTSTATUS,
22915>;
22916pub type PGPE_DISCONNECT_VECTOR2 =
22917::core::option::Option<unsafe extern "C" fn(Context: PVOID, ObjectContext: PVOID) -> NTSTATUS>;
22918pub type PGPE_ENABLE_EVENT2 =
22919::core::option::Option<unsafe extern "C" fn(Context: PVOID, ObjectContext: PVOID) -> NTSTATUS>;
22920pub type PGPE_DISABLE_EVENT2 =
22921::core::option::Option<unsafe extern "C" fn(Context: PVOID, ObjectContext: PVOID) -> NTSTATUS>;
22922pub type PGPE_CLEAR_STATUS2 =
22923::core::option::Option<unsafe extern "C" fn(Context: PVOID, ObjectContext: PVOID) -> NTSTATUS>;
22924pub type PDEVICE_NOTIFY_CALLBACK2 =
22925::core::option::Option<unsafe extern "C" fn(NotificationContext: PVOID, NotifyCode: ULONG)>;
22926pub type PREGISTER_FOR_DEVICE_NOTIFICATIONS2 = ::core::option::Option<
22927 unsafe extern "C" fn(
22928 Context: PVOID,
22929 NotificationHandler: PDEVICE_NOTIFY_CALLBACK2,
22930 NotificationContext: PVOID,
22931 ) -> NTSTATUS,
22932>;
22933pub type PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2 =
22934::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
22935#[repr(C)]
22936#[derive(Debug, Copy, Clone)]
22937pub struct ACPI_INTERFACE_STANDARD2 {
22938 pub Size: USHORT,
22939 pub Version: USHORT,
22940 pub Context: PVOID,
22941 pub InterfaceReference: PINTERFACE_REFERENCE,
22942 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
22943 pub GpeConnectVector: PGPE_CONNECT_VECTOR2,
22944 pub GpeDisconnectVector: PGPE_DISCONNECT_VECTOR2,
22945 pub GpeEnableEvent: PGPE_ENABLE_EVENT2,
22946 pub GpeDisableEvent: PGPE_DISABLE_EVENT2,
22947 pub GpeClearStatus: PGPE_CLEAR_STATUS2,
22948 pub RegisterForDeviceNotifications: PREGISTER_FOR_DEVICE_NOTIFICATIONS2,
22949 pub UnregisterForDeviceNotifications: PUNREGISTER_FOR_DEVICE_NOTIFICATIONS2,
22950}
22951pub type PACPI_INTERFACE_STANDARD2 = *mut ACPI_INTERFACE_STANDARD2;
22952unsafe extern "C" {
22953 pub fn IoInvalidateDeviceRelations(DeviceObject: PDEVICE_OBJECT, Type: DEVICE_RELATION_TYPE);
22954}
22955unsafe extern "C" {
22956 pub fn IoRequestDeviceEject(PhysicalDeviceObject: PDEVICE_OBJECT);
22957}
22958pub type PIO_DEVICE_EJECT_CALLBACK =
22959::core::option::Option<unsafe extern "C" fn(Status: NTSTATUS, Context: PVOID)>;
22960unsafe extern "C" {
22961 pub fn IoRequestDeviceEjectEx(
22962 PhysicalDeviceObject: PDEVICE_OBJECT,
22963 Callback: PIO_DEVICE_EJECT_CALLBACK,
22964 Context: PVOID,
22965 DriverObject: PDRIVER_OBJECT,
22966 ) -> NTSTATUS;
22967}
22968unsafe extern "C" {
22969 pub fn IoGetDeviceProperty(
22970 DeviceObject: PDEVICE_OBJECT,
22971 DeviceProperty: DEVICE_REGISTRY_PROPERTY,
22972 BufferLength: ULONG,
22973 PropertyBuffer: PVOID,
22974 ResultLength: PULONG,
22975 ) -> NTSTATUS;
22976}
22977unsafe extern "C" {
22978 pub fn IoOpenDeviceRegistryKey(
22979 DeviceObject: PDEVICE_OBJECT,
22980 DevInstKeyType: ULONG,
22981 DesiredAccess: ACCESS_MASK,
22982 DeviceRegKey: PHANDLE,
22983 ) -> NTSTATUS;
22984}
22985unsafe extern "C" {
22986 pub fn IoRegisterDeviceInterface(
22987 PhysicalDeviceObject: PDEVICE_OBJECT,
22988 InterfaceClassGuid: *const GUID,
22989 ReferenceString: PUNICODE_STRING,
22990 SymbolicLinkName: PUNICODE_STRING,
22991 ) -> NTSTATUS;
22992}
22993unsafe extern "C" {
22994 pub fn IoOpenDeviceInterfaceRegistryKey(
22995 SymbolicLinkName: PUNICODE_STRING,
22996 DesiredAccess: ACCESS_MASK,
22997 DeviceInterfaceRegKey: PHANDLE,
22998 ) -> NTSTATUS;
22999}
23000unsafe extern "C" {
23001 pub fn IoSetDeviceInterfaceState(
23002 SymbolicLinkName: PUNICODE_STRING,
23003 Enable: BOOLEAN,
23004 ) -> NTSTATUS;
23005}
23006unsafe extern "C" {
23007 pub fn IoGetDeviceInterfaces(
23008 InterfaceClassGuid: *const GUID,
23009 PhysicalDeviceObject: PDEVICE_OBJECT,
23010 Flags: ULONG,
23011 SymbolicLinkList: *mut PZZWSTR,
23012 ) -> NTSTATUS;
23013}
23014unsafe extern "C" {
23015 pub fn IoGetDeviceInterfaceAlias(
23016 SymbolicLinkName: PUNICODE_STRING,
23017 AliasInterfaceClassGuid: *const GUID,
23018 AliasSymbolicLinkName: PUNICODE_STRING,
23019 ) -> NTSTATUS;
23020}
23021pub const _IO_NOTIFICATION_EVENT_CATEGORY_EventCategoryReserved: _IO_NOTIFICATION_EVENT_CATEGORY =
23022 0;
23023pub const _IO_NOTIFICATION_EVENT_CATEGORY_EventCategoryHardwareProfileChange:
23024_IO_NOTIFICATION_EVENT_CATEGORY = 1;
23025pub const _IO_NOTIFICATION_EVENT_CATEGORY_EventCategoryDeviceInterfaceChange:
23026_IO_NOTIFICATION_EVENT_CATEGORY = 2;
23027pub const _IO_NOTIFICATION_EVENT_CATEGORY_EventCategoryTargetDeviceChange:
23028_IO_NOTIFICATION_EVENT_CATEGORY = 3;
23029pub const _IO_NOTIFICATION_EVENT_CATEGORY_EventCategoryKernelSoftRestart:
23030_IO_NOTIFICATION_EVENT_CATEGORY = 4;
23031pub type _IO_NOTIFICATION_EVENT_CATEGORY = core::ffi::c_int;
23032pub use self::_IO_NOTIFICATION_EVENT_CATEGORY as IO_NOTIFICATION_EVENT_CATEGORY;
23033pub type DRIVER_NOTIFICATION_CALLBACK_ROUTINE = ::core::option::Option<
23034 unsafe extern "C" fn(NotificationStructure: PVOID, Context: PVOID) -> NTSTATUS,
23035>;
23036pub type PDRIVER_NOTIFICATION_CALLBACK_ROUTINE = DRIVER_NOTIFICATION_CALLBACK_ROUTINE;
23037unsafe extern "C" {
23038 pub fn IoRegisterPlugPlayNotification(
23039 EventCategory: IO_NOTIFICATION_EVENT_CATEGORY,
23040 EventCategoryFlags: ULONG,
23041 EventCategoryData: PVOID,
23042 DriverObject: PDRIVER_OBJECT,
23043 CallbackRoutine: PDRIVER_NOTIFICATION_CALLBACK_ROUTINE,
23044 Context: PVOID,
23045 NotificationEntry: *mut PVOID,
23046 ) -> NTSTATUS;
23047}
23048unsafe extern "C" {
23049 pub fn IoUnregisterPlugPlayNotification(NotificationEntry: PVOID) -> NTSTATUS;
23050}
23051unsafe extern "C" {
23052 pub fn IoUnregisterPlugPlayNotificationEx(NotificationEntry: PVOID) -> NTSTATUS;
23053}
23054unsafe extern "C" {
23055 pub fn IoReportTargetDeviceChange(
23056 PhysicalDeviceObject: PDEVICE_OBJECT,
23057 NotificationStructure: PVOID,
23058 ) -> NTSTATUS;
23059}
23060pub type DEVICE_CHANGE_COMPLETE_CALLBACK =
23061::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
23062pub type PDEVICE_CHANGE_COMPLETE_CALLBACK = DEVICE_CHANGE_COMPLETE_CALLBACK;
23063unsafe extern "C" {
23064 pub fn IoInvalidateDeviceState(PhysicalDeviceObject: PDEVICE_OBJECT);
23065}
23066unsafe extern "C" {
23067 pub fn IoReportTargetDeviceChangeAsynchronous(
23068 PhysicalDeviceObject: PDEVICE_OBJECT,
23069 NotificationStructure: PVOID,
23070 Callback: PDEVICE_CHANGE_COMPLETE_CALLBACK,
23071 Context: PVOID,
23072 ) -> NTSTATUS;
23073}
23074pub const _DRIVER_DIRECTORY_TYPE_DriverDirectoryImage: _DRIVER_DIRECTORY_TYPE = 0;
23075pub const _DRIVER_DIRECTORY_TYPE_DriverDirectoryData: _DRIVER_DIRECTORY_TYPE = 1;
23076pub const _DRIVER_DIRECTORY_TYPE_DriverDirectorySharedData: _DRIVER_DIRECTORY_TYPE = 2;
23077pub type _DRIVER_DIRECTORY_TYPE = core::ffi::c_int;
23078pub use self::_DRIVER_DIRECTORY_TYPE as DRIVER_DIRECTORY_TYPE;
23079pub type PDRIVER_DIRECTORY_TYPE = *mut _DRIVER_DIRECTORY_TYPE;
23080unsafe extern "C" {
23081 pub fn IoGetDriverDirectory(
23082 DriverObject: PDRIVER_OBJECT,
23083 DirectoryType: DRIVER_DIRECTORY_TYPE,
23084 Flags: ULONG,
23085 DriverDirectoryHandle: PHANDLE,
23086 ) -> NTSTATUS;
23087}
23088pub const _DEVICE_DIRECTORY_TYPE_DeviceDirectoryData: _DEVICE_DIRECTORY_TYPE = 0;
23089pub type _DEVICE_DIRECTORY_TYPE = core::ffi::c_int;
23090pub use self::_DEVICE_DIRECTORY_TYPE as DEVICE_DIRECTORY_TYPE;
23091pub type PDEVICE_DIRECTORY_TYPE = *mut _DEVICE_DIRECTORY_TYPE;
23092unsafe extern "C" {
23093 pub fn IoGetDeviceDirectory(
23094 PhysicalDeviceObject: PDEVICE_OBJECT,
23095 DirectoryType: DEVICE_DIRECTORY_TYPE,
23096 Flags: ULONG,
23097 Reserved: PVOID,
23098 DeviceDirectoryHandle: PHANDLE,
23099 ) -> NTSTATUS;
23100}
23101pub const _DRIVER_REGKEY_TYPE_DriverRegKeyParameters: _DRIVER_REGKEY_TYPE = 0;
23102pub const _DRIVER_REGKEY_TYPE_DriverRegKeyPersistentState: _DRIVER_REGKEY_TYPE = 1;
23103pub const _DRIVER_REGKEY_TYPE_DriverRegKeySharedPersistentState: _DRIVER_REGKEY_TYPE = 2;
23104pub type _DRIVER_REGKEY_TYPE = core::ffi::c_int;
23105pub use self::_DRIVER_REGKEY_TYPE as DRIVER_REGKEY_TYPE;
23106pub type PDRIVER_REGKEY_TYPE = *mut _DRIVER_REGKEY_TYPE;
23107unsafe extern "C" {
23108 pub fn IoOpenDriverRegistryKey(
23109 DriverObject: PDRIVER_OBJECT,
23110 RegKeyType: DRIVER_REGKEY_TYPE,
23111 DesiredAccess: ACCESS_MASK,
23112 Flags: ULONG,
23113 DriverRegKey: PHANDLE,
23114 ) -> NTSTATUS;
23115}
23116#[repr(C)]
23117#[derive(Debug, Copy, Clone)]
23118pub struct _PLUGPLAY_NOTIFICATION_HEADER {
23119 pub Version: USHORT,
23120 pub Size: USHORT,
23121 pub Event: GUID,
23122}
23123pub type PLUGPLAY_NOTIFICATION_HEADER = _PLUGPLAY_NOTIFICATION_HEADER;
23124pub type PPLUGPLAY_NOTIFICATION_HEADER = *mut _PLUGPLAY_NOTIFICATION_HEADER;
23125#[repr(C)]
23126#[derive(Debug, Copy, Clone)]
23127pub struct _HWPROFILE_CHANGE_NOTIFICATION {
23128 pub Version: USHORT,
23129 pub Size: USHORT,
23130 pub Event: GUID,
23131}
23132pub type HWPROFILE_CHANGE_NOTIFICATION = _HWPROFILE_CHANGE_NOTIFICATION;
23133pub type PHWPROFILE_CHANGE_NOTIFICATION = *mut _HWPROFILE_CHANGE_NOTIFICATION;
23134#[repr(C)]
23135#[derive(Debug, Copy, Clone)]
23136pub struct _DEVICE_INTERFACE_CHANGE_NOTIFICATION {
23137 pub Version: USHORT,
23138 pub Size: USHORT,
23139 pub Event: GUID,
23140 pub InterfaceClassGuid: GUID,
23141 pub SymbolicLinkName: PUNICODE_STRING,
23142}
23143pub type DEVICE_INTERFACE_CHANGE_NOTIFICATION = _DEVICE_INTERFACE_CHANGE_NOTIFICATION;
23144pub type PDEVICE_INTERFACE_CHANGE_NOTIFICATION = *mut _DEVICE_INTERFACE_CHANGE_NOTIFICATION;
23145#[repr(C)]
23146#[derive(Debug, Copy, Clone)]
23147pub struct _TARGET_DEVICE_REMOVAL_NOTIFICATION {
23148 pub Version: USHORT,
23149 pub Size: USHORT,
23150 pub Event: GUID,
23151 pub FileObject: PFILE_OBJECT,
23152}
23153pub type TARGET_DEVICE_REMOVAL_NOTIFICATION = _TARGET_DEVICE_REMOVAL_NOTIFICATION;
23154pub type PTARGET_DEVICE_REMOVAL_NOTIFICATION = *mut _TARGET_DEVICE_REMOVAL_NOTIFICATION;
23155#[repr(C)]
23156#[derive(Debug, Copy, Clone)]
23157pub struct _KERNEL_SOFT_RESTART_NOTIFICATION {
23158 pub Version: USHORT,
23159 pub Size: USHORT,
23160 pub Event: GUID,
23161}
23162pub type KERNEL_SOFT_RESTART_NOTIFICATION = _KERNEL_SOFT_RESTART_NOTIFICATION;
23163pub type PKERNEL_SOFT_RESTART_NOTIFICATION = *mut _KERNEL_SOFT_RESTART_NOTIFICATION;
23164#[repr(C)]
23165#[derive(Debug, Copy, Clone)]
23166pub struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
23167 pub Version: USHORT,
23168 pub Size: USHORT,
23169 pub Event: GUID,
23170 pub FileObject: PFILE_OBJECT,
23171 pub NameBufferOffset: LONG,
23172 pub CustomDataBuffer: [UCHAR; 1usize],
23173}
23174pub type TARGET_DEVICE_CUSTOM_NOTIFICATION = _TARGET_DEVICE_CUSTOM_NOTIFICATION;
23175pub type PTARGET_DEVICE_CUSTOM_NOTIFICATION = *mut _TARGET_DEVICE_CUSTOM_NOTIFICATION;
23176pub type DEVPROPTYPE = ULONG;
23177pub type PDEVPROPTYPE = *mut ULONG;
23178pub type DEVPROP_BOOLEAN = CHAR;
23179pub type PDEVPROP_BOOLEAN = *mut CHAR;
23180pub type DEVPROPGUID = GUID;
23181pub type PDEVPROPGUID = *mut GUID;
23182pub type DEVPROPID = ULONG;
23183pub type PDEVPROPID = *mut ULONG;
23184#[repr(C)]
23185#[derive(Debug, Copy, Clone)]
23186pub struct _DEVPROPKEY {
23187 pub fmtid: DEVPROPGUID,
23188 pub pid: DEVPROPID,
23189}
23190pub type DEVPROPKEY = _DEVPROPKEY;
23191pub type PDEVPROPKEY = *mut _DEVPROPKEY;
23192pub const _DEVPROPSTORE_DEVPROP_STORE_SYSTEM: _DEVPROPSTORE = 0;
23193pub const _DEVPROPSTORE_DEVPROP_STORE_USER: _DEVPROPSTORE = 1;
23194pub type _DEVPROPSTORE = core::ffi::c_int;
23195pub use self::_DEVPROPSTORE as DEVPROPSTORE;
23196pub type PDEVPROPSTORE = *mut _DEVPROPSTORE;
23197#[repr(C)]
23198#[derive(Debug, Copy, Clone)]
23199pub struct _DEVPROPCOMPKEY {
23200 pub Key: DEVPROPKEY,
23201 pub Store: DEVPROPSTORE,
23202 pub LocaleName: PCWSTR,
23203}
23204pub type DEVPROPCOMPKEY = _DEVPROPCOMPKEY;
23205pub type PDEVPROPCOMPKEY = *mut _DEVPROPCOMPKEY;
23206#[repr(C)]
23207#[derive(Debug, Copy, Clone)]
23208pub struct _DEVPROPERTY {
23209 pub CompKey: DEVPROPCOMPKEY,
23210 pub Type: DEVPROPTYPE,
23211 pub BufferSize: ULONG,
23212 pub Buffer: PVOID,
23213}
23214pub type DEVPROPERTY = _DEVPROPERTY;
23215pub type PDEVPROPERTY = *mut _DEVPROPERTY;
23216unsafe extern "C" {
23217 pub fn IoSetDevicePropertyData(
23218 Pdo: PDEVICE_OBJECT,
23219 PropertyKey: *const DEVPROPKEY,
23220 Lcid: LCID,
23221 Flags: ULONG,
23222 Type: DEVPROPTYPE,
23223 Size: ULONG,
23224 Data: PVOID,
23225 ) -> NTSTATUS;
23226}
23227unsafe extern "C" {
23228 pub fn IoGetDevicePropertyData(
23229 Pdo: PDEVICE_OBJECT,
23230 PropertyKey: *const DEVPROPKEY,
23231 Lcid: LCID,
23232 Flags: ULONG,
23233 Size: ULONG,
23234 Data: PVOID,
23235 RequiredSize: PULONG,
23236 Type: PDEVPROPTYPE,
23237 ) -> NTSTATUS;
23238}
23239unsafe extern "C" {
23240 pub fn IoSetDeviceInterfacePropertyData(
23241 SymbolicLinkName: PUNICODE_STRING,
23242 PropertyKey: *const DEVPROPKEY,
23243 Lcid: LCID,
23244 Flags: ULONG,
23245 Type: DEVPROPTYPE,
23246 Size: ULONG,
23247 Data: PVOID,
23248 ) -> NTSTATUS;
23249}
23250unsafe extern "C" {
23251 pub fn IoGetDeviceInterfacePropertyData(
23252 SymbolicLinkName: PUNICODE_STRING,
23253 PropertyKey: *const DEVPROPKEY,
23254 Lcid: LCID,
23255 Flags: ULONG,
23256 Size: ULONG,
23257 Data: PVOID,
23258 RequiredSize: PULONG,
23259 Type: PDEVPROPTYPE,
23260 ) -> NTSTATUS;
23261}
23262unsafe extern "C" {
23263 pub fn IoGetDeviceNumaNode(Pdo: PDEVICE_OBJECT, NodeNumber: PUSHORT) -> NTSTATUS;
23264}
23265unsafe extern "C" {
23266 pub fn IoReplacePartitionUnit(
23267 TargetPdo: PDEVICE_OBJECT,
23268 SparePdo: PDEVICE_OBJECT,
23269 Flags: ULONG,
23270 ) -> NTSTATUS;
23271}
23272pub type PPNP_REPLACE_DRIVER_INTERFACE = *mut _PNP_REPLACE_DRIVER_INTERFACE;
23273pub type PREPLACE_DRIVER_INIT = ::core::option::Option<
23274 unsafe extern "C" fn(Interface: PPNP_REPLACE_DRIVER_INTERFACE, Unused: PVOID) -> NTSTATUS,
23275>;
23276pub type PREPLACE_MAP_MEMORY = ::core::option::Option<
23277 unsafe extern "C" fn(
23278 TargetPhysicalAddress: PHYSICAL_ADDRESS,
23279 SparePhysicalAddress: PHYSICAL_ADDRESS,
23280 NumberOfBytes: PLARGE_INTEGER,
23281 TargetAddress: *mut PVOID,
23282 SpareAddress: *mut PVOID,
23283 ) -> NTSTATUS,
23284>;
23285#[repr(C)]
23286#[derive(Copy, Clone)]
23287pub struct _PNP_REPLACE_MEMORY_LIST {
23288 pub AllocatedCount: ULONG,
23289 pub Count: ULONG,
23290 pub TotalLength: ULONGLONG,
23291 pub Ranges: [_PNP_REPLACE_MEMORY_LIST__bindgen_ty_1; 1usize],
23292}
23293#[repr(C)]
23294#[derive(Copy, Clone)]
23295pub struct _PNP_REPLACE_MEMORY_LIST__bindgen_ty_1 {
23296 pub Address: PHYSICAL_ADDRESS,
23297 pub Length: ULONGLONG,
23298}
23299pub type PNP_REPLACE_MEMORY_LIST = _PNP_REPLACE_MEMORY_LIST;
23300pub type PPNP_REPLACE_MEMORY_LIST = *mut _PNP_REPLACE_MEMORY_LIST;
23301#[repr(C)]
23302#[derive(Debug, Copy, Clone)]
23303pub struct _PNP_REPLACE_PROCESSOR_LIST {
23304 pub Affinity: PKAFFINITY,
23305 pub GroupCount: ULONG,
23306 pub AllocatedCount: ULONG,
23307 pub Count: ULONG,
23308 pub ApicIds: [ULONG; 1usize],
23309}
23310pub type PNP_REPLACE_PROCESSOR_LIST = _PNP_REPLACE_PROCESSOR_LIST;
23311pub type PPNP_REPLACE_PROCESSOR_LIST = *mut _PNP_REPLACE_PROCESSOR_LIST;
23312#[repr(C)]
23313#[derive(Debug, Copy, Clone)]
23314pub struct _PNP_REPLACE_PROCESSOR_LIST_V1 {
23315 pub AffinityMask: KAFFINITY,
23316 pub AllocatedCount: ULONG,
23317 pub Count: ULONG,
23318 pub ApicIds: [ULONG; 1usize],
23319}
23320pub type PNP_REPLACE_PROCESSOR_LIST_V1 = _PNP_REPLACE_PROCESSOR_LIST_V1;
23321pub type PPNP_REPLACE_PROCESSOR_LIST_V1 = *mut _PNP_REPLACE_PROCESSOR_LIST_V1;
23322#[repr(C)]
23323#[derive(Debug, Copy, Clone)]
23324pub struct _PNP_REPLACE_PARAMETERS {
23325 pub Size: ULONG,
23326 pub Version: ULONG,
23327 pub Target: ULONG64,
23328 pub Spare: ULONG64,
23329 pub TargetProcessors: PPNP_REPLACE_PROCESSOR_LIST,
23330 pub SpareProcessors: PPNP_REPLACE_PROCESSOR_LIST,
23331 pub TargetMemory: PPNP_REPLACE_MEMORY_LIST,
23332 pub SpareMemory: PPNP_REPLACE_MEMORY_LIST,
23333 pub MapMemory: PREPLACE_MAP_MEMORY,
23334}
23335pub type PNP_REPLACE_PARAMETERS = _PNP_REPLACE_PARAMETERS;
23336pub type PPNP_REPLACE_PARAMETERS = *mut _PNP_REPLACE_PARAMETERS;
23337pub type PREPLACE_UNLOAD = ::core::option::Option<unsafe extern "C" fn()>;
23338pub type PREPLACE_BEGIN = ::core::option::Option<
23339 unsafe extern "C" fn(Parameters: PPNP_REPLACE_PARAMETERS, Context: *mut PVOID) -> NTSTATUS,
23340>;
23341pub type PREPLACE_END = ::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
23342pub type PREPLACE_MIRROR_PHYSICAL_MEMORY = ::core::option::Option<
23343 unsafe extern "C" fn(
23344 Context: PVOID,
23345 PhysicalAddress: PHYSICAL_ADDRESS,
23346 ByteCount: LARGE_INTEGER,
23347 ) -> NTSTATUS,
23348>;
23349pub type PREPLACE_SET_PROCESSOR_ID = ::core::option::Option<
23350 unsafe extern "C" fn(Context: PVOID, ApicId: ULONG, Target: BOOLEAN) -> NTSTATUS,
23351>;
23352pub type PREPLACE_SWAP = ::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
23353pub type PREPLACE_INITIATE_HARDWARE_MIRROR =
23354::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
23355pub type PREPLACE_MIRROR_PLATFORM_MEMORY =
23356::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
23357pub type PREPLACE_GET_MEMORY_DESTINATION = ::core::option::Option<
23358 unsafe extern "C" fn(
23359 Context: PVOID,
23360 SourceAddress: PHYSICAL_ADDRESS,
23361 DestinationAddress: PPHYSICAL_ADDRESS,
23362 ) -> NTSTATUS,
23363>;
23364pub type PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE =
23365::core::option::Option<unsafe extern "C" fn(Context: PVOID, Enable: BOOLEAN) -> NTSTATUS>;
23366#[repr(C)]
23367#[derive(Debug, Copy, Clone)]
23368pub struct _PNP_REPLACE_DRIVER_INTERFACE {
23369 pub Size: ULONG,
23370 pub Version: ULONG,
23371 pub Flags: ULONG,
23372 pub Unload: PREPLACE_UNLOAD,
23373 pub BeginReplace: PREPLACE_BEGIN,
23374 pub EndReplace: PREPLACE_END,
23375 pub MirrorPhysicalMemory: PREPLACE_MIRROR_PHYSICAL_MEMORY,
23376 pub SetProcessorId: PREPLACE_SET_PROCESSOR_ID,
23377 pub Swap: PREPLACE_SWAP,
23378 pub InitiateHardwareMirror: PREPLACE_INITIATE_HARDWARE_MIRROR,
23379 pub MirrorPlatformMemory: PREPLACE_MIRROR_PLATFORM_MEMORY,
23380 pub GetMemoryDestination: PREPLACE_GET_MEMORY_DESTINATION,
23381 pub EnableDisableHardwareQuiesce: PREPLACE_ENABLE_DISABLE_HARDWARE_QUIESCE,
23382}
23383pub type PNP_REPLACE_DRIVER_INTERFACE = _PNP_REPLACE_DRIVER_INTERFACE;
23384pub type PCRASHDUMP_POWER_ON =
23385::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
23386#[repr(C)]
23387#[derive(Debug, Copy, Clone)]
23388pub struct _CRASHDUMP_FUNCTIONS_INTERFACE {
23389 pub Size: USHORT,
23390 pub Version: USHORT,
23391 pub Context: PVOID,
23392 pub InterfaceReference: PINTERFACE_REFERENCE,
23393 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
23394 pub PowerOn: PCRASHDUMP_POWER_ON,
23395}
23396pub type CRASHDUMP_FUNCTIONS_INTERFACE = _CRASHDUMP_FUNCTIONS_INTERFACE;
23397pub type PCRASHDUMP_FUNCTIONS_INTERFACE = *mut _CRASHDUMP_FUNCTIONS_INTERFACE;
23398pub const _DEVICE_RESET_TYPE_FunctionLevelDeviceReset: _DEVICE_RESET_TYPE = 0;
23399pub const _DEVICE_RESET_TYPE_PlatformLevelDeviceReset: _DEVICE_RESET_TYPE = 1;
23400pub type _DEVICE_RESET_TYPE = core::ffi::c_int;
23401pub use self::_DEVICE_RESET_TYPE as DEVICE_RESET_TYPE;
23402#[repr(C)]
23403#[derive(Copy, Clone)]
23404pub union _DEVICE_BUS_SPECIFIC_RESET_TYPE {
23405 pub Pci: _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_1,
23406 pub Acpi: _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_2,
23407 pub AsULONGLONG: ULONGLONG,
23408}
23409#[repr(C)]
23410#[derive(Debug, Copy, Clone)]
23411pub struct _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_1 {
23412 pub _bitfield_align_1: [u64; 0],
23413 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
23414}
23415impl _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_1 {
23416 #[inline]
23417 pub fn FunctionLevelDeviceReset(&self) -> ULONGLONG {
23418 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
23419 }
23420 #[inline]
23421 pub fn set_FunctionLevelDeviceReset(&mut self, val: ULONGLONG) {
23422 unsafe {
23423 let val: u64 = ::core::mem::transmute(val);
23424 self._bitfield_1.set(0usize, 1u8, val as u64)
23425 }
23426 }
23427 #[inline]
23428 pub unsafe fn FunctionLevelDeviceReset_raw(this: *const Self) -> ULONGLONG {
23429 unsafe {
23430 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23431 ::core::ptr::addr_of!((*this)._bitfield_1),
23432 0usize,
23433 1u8,
23434 ) as u64)
23435 }
23436 }
23437 #[inline]
23438 pub unsafe fn set_FunctionLevelDeviceReset_raw(this: *mut Self, val: ULONGLONG) {
23439 unsafe {
23440 let val: u64 = ::core::mem::transmute(val);
23441 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23442 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23443 0usize,
23444 1u8,
23445 val as u64,
23446 )
23447 }
23448 }
23449 #[inline]
23450 pub fn PlatformLevelDeviceReset(&self) -> ULONGLONG {
23451 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
23452 }
23453 #[inline]
23454 pub fn set_PlatformLevelDeviceReset(&mut self, val: ULONGLONG) {
23455 unsafe {
23456 let val: u64 = ::core::mem::transmute(val);
23457 self._bitfield_1.set(1usize, 1u8, val as u64)
23458 }
23459 }
23460 #[inline]
23461 pub unsafe fn PlatformLevelDeviceReset_raw(this: *const Self) -> ULONGLONG {
23462 unsafe {
23463 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23464 ::core::ptr::addr_of!((*this)._bitfield_1),
23465 1usize,
23466 1u8,
23467 ) as u64)
23468 }
23469 }
23470 #[inline]
23471 pub unsafe fn set_PlatformLevelDeviceReset_raw(this: *mut Self, val: ULONGLONG) {
23472 unsafe {
23473 let val: u64 = ::core::mem::transmute(val);
23474 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23475 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23476 1usize,
23477 1u8,
23478 val as u64,
23479 )
23480 }
23481 }
23482 #[inline]
23483 pub fn SecondaryBusReset(&self) -> ULONGLONG {
23484 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u64) }
23485 }
23486 #[inline]
23487 pub fn set_SecondaryBusReset(&mut self, val: ULONGLONG) {
23488 unsafe {
23489 let val: u64 = ::core::mem::transmute(val);
23490 self._bitfield_1.set(2usize, 1u8, val as u64)
23491 }
23492 }
23493 #[inline]
23494 pub unsafe fn SecondaryBusReset_raw(this: *const Self) -> ULONGLONG {
23495 unsafe {
23496 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23497 ::core::ptr::addr_of!((*this)._bitfield_1),
23498 2usize,
23499 1u8,
23500 ) as u64)
23501 }
23502 }
23503 #[inline]
23504 pub unsafe fn set_SecondaryBusReset_raw(this: *mut Self, val: ULONGLONG) {
23505 unsafe {
23506 let val: u64 = ::core::mem::transmute(val);
23507 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23508 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23509 2usize,
23510 1u8,
23511 val as u64,
23512 )
23513 }
23514 }
23515 #[inline]
23516 pub fn Reserved(&self) -> ULONGLONG {
23517 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 61u8) as u64) }
23518 }
23519 #[inline]
23520 pub fn set_Reserved(&mut self, val: ULONGLONG) {
23521 unsafe {
23522 let val: u64 = ::core::mem::transmute(val);
23523 self._bitfield_1.set(3usize, 61u8, val as u64)
23524 }
23525 }
23526 #[inline]
23527 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
23528 unsafe {
23529 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23530 ::core::ptr::addr_of!((*this)._bitfield_1),
23531 3usize,
23532 61u8,
23533 ) as u64)
23534 }
23535 }
23536 #[inline]
23537 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
23538 unsafe {
23539 let val: u64 = ::core::mem::transmute(val);
23540 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23541 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23542 3usize,
23543 61u8,
23544 val as u64,
23545 )
23546 }
23547 }
23548 #[inline]
23549 pub fn new_bitfield_1(
23550 FunctionLevelDeviceReset: ULONGLONG,
23551 PlatformLevelDeviceReset: ULONGLONG,
23552 SecondaryBusReset: ULONGLONG,
23553 Reserved: ULONGLONG,
23554 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
23555 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
23556 __bindgen_bitfield_unit.set(0usize, 1u8, {
23557 let FunctionLevelDeviceReset: u64 =
23558 unsafe { ::core::mem::transmute(FunctionLevelDeviceReset) };
23559 FunctionLevelDeviceReset as u64
23560 });
23561 __bindgen_bitfield_unit.set(1usize, 1u8, {
23562 let PlatformLevelDeviceReset: u64 =
23563 unsafe { ::core::mem::transmute(PlatformLevelDeviceReset) };
23564 PlatformLevelDeviceReset as u64
23565 });
23566 __bindgen_bitfield_unit.set(2usize, 1u8, {
23567 let SecondaryBusReset: u64 = unsafe { ::core::mem::transmute(SecondaryBusReset) };
23568 SecondaryBusReset as u64
23569 });
23570 __bindgen_bitfield_unit.set(3usize, 61u8, {
23571 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
23572 Reserved as u64
23573 });
23574 __bindgen_bitfield_unit
23575 }
23576}
23577#[repr(C)]
23578#[derive(Debug, Copy, Clone)]
23579pub struct _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_2 {
23580 pub _bitfield_align_1: [u64; 0],
23581 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
23582}
23583impl _DEVICE_BUS_SPECIFIC_RESET_TYPE__bindgen_ty_2 {
23584 #[inline]
23585 pub fn FunctionLevelDeviceReset(&self) -> ULONGLONG {
23586 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
23587 }
23588 #[inline]
23589 pub fn set_FunctionLevelDeviceReset(&mut self, val: ULONGLONG) {
23590 unsafe {
23591 let val: u64 = ::core::mem::transmute(val);
23592 self._bitfield_1.set(0usize, 1u8, val as u64)
23593 }
23594 }
23595 #[inline]
23596 pub unsafe fn FunctionLevelDeviceReset_raw(this: *const Self) -> ULONGLONG {
23597 unsafe {
23598 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23599 ::core::ptr::addr_of!((*this)._bitfield_1),
23600 0usize,
23601 1u8,
23602 ) as u64)
23603 }
23604 }
23605 #[inline]
23606 pub unsafe fn set_FunctionLevelDeviceReset_raw(this: *mut Self, val: ULONGLONG) {
23607 unsafe {
23608 let val: u64 = ::core::mem::transmute(val);
23609 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23610 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23611 0usize,
23612 1u8,
23613 val as u64,
23614 )
23615 }
23616 }
23617 #[inline]
23618 pub fn PlatformLevelDeviceReset(&self) -> ULONGLONG {
23619 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
23620 }
23621 #[inline]
23622 pub fn set_PlatformLevelDeviceReset(&mut self, val: ULONGLONG) {
23623 unsafe {
23624 let val: u64 = ::core::mem::transmute(val);
23625 self._bitfield_1.set(1usize, 1u8, val as u64)
23626 }
23627 }
23628 #[inline]
23629 pub unsafe fn PlatformLevelDeviceReset_raw(this: *const Self) -> ULONGLONG {
23630 unsafe {
23631 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23632 ::core::ptr::addr_of!((*this)._bitfield_1),
23633 1usize,
23634 1u8,
23635 ) as u64)
23636 }
23637 }
23638 #[inline]
23639 pub unsafe fn set_PlatformLevelDeviceReset_raw(this: *mut Self, val: ULONGLONG) {
23640 unsafe {
23641 let val: u64 = ::core::mem::transmute(val);
23642 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23643 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23644 1usize,
23645 1u8,
23646 val as u64,
23647 )
23648 }
23649 }
23650 #[inline]
23651 pub fn Reserved(&self) -> ULONGLONG {
23652 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 62u8) as u64) }
23653 }
23654 #[inline]
23655 pub fn set_Reserved(&mut self, val: ULONGLONG) {
23656 unsafe {
23657 let val: u64 = ::core::mem::transmute(val);
23658 self._bitfield_1.set(2usize, 62u8, val as u64)
23659 }
23660 }
23661 #[inline]
23662 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
23663 unsafe {
23664 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23665 ::core::ptr::addr_of!((*this)._bitfield_1),
23666 2usize,
23667 62u8,
23668 ) as u64)
23669 }
23670 }
23671 #[inline]
23672 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
23673 unsafe {
23674 let val: u64 = ::core::mem::transmute(val);
23675 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23676 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23677 2usize,
23678 62u8,
23679 val as u64,
23680 )
23681 }
23682 }
23683 #[inline]
23684 pub fn new_bitfield_1(
23685 FunctionLevelDeviceReset: ULONGLONG,
23686 PlatformLevelDeviceReset: ULONGLONG,
23687 Reserved: ULONGLONG,
23688 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
23689 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
23690 __bindgen_bitfield_unit.set(0usize, 1u8, {
23691 let FunctionLevelDeviceReset: u64 =
23692 unsafe { ::core::mem::transmute(FunctionLevelDeviceReset) };
23693 FunctionLevelDeviceReset as u64
23694 });
23695 __bindgen_bitfield_unit.set(1usize, 1u8, {
23696 let PlatformLevelDeviceReset: u64 =
23697 unsafe { ::core::mem::transmute(PlatformLevelDeviceReset) };
23698 PlatformLevelDeviceReset as u64
23699 });
23700 __bindgen_bitfield_unit.set(2usize, 62u8, {
23701 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
23702 Reserved as u64
23703 });
23704 __bindgen_bitfield_unit
23705 }
23706}
23707pub type DEVICE_BUS_SPECIFIC_RESET_TYPE = _DEVICE_BUS_SPECIFIC_RESET_TYPE;
23708pub type PDEVICE_BUS_SPECIFIC_RESET_TYPE = *mut _DEVICE_BUS_SPECIFIC_RESET_TYPE;
23709pub type DEVICE_RESET_COMPLETION =
23710::core::option::Option<unsafe extern "C" fn(Status: NTSTATUS, Context: PVOID)>;
23711pub type PDEVICE_RESET_COMPLETION = DEVICE_RESET_COMPLETION;
23712#[repr(C)]
23713#[derive(Debug, Copy, Clone)]
23714pub struct _FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS {
23715 pub Size: ULONG,
23716 pub DeviceResetCompletion: PDEVICE_RESET_COMPLETION,
23717 pub CompletionContext: PVOID,
23718}
23719pub type FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS = _FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS;
23720pub type PFUNCTION_LEVEL_DEVICE_RESET_PARAMETERS = *mut _FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS;
23721pub type DEVICE_RESET_HANDLER = ::core::option::Option<
23722 unsafe extern "C" fn(
23723 InterfaceContext: PVOID,
23724 ResetType: DEVICE_RESET_TYPE,
23725 Flags: ULONG,
23726 ResetParameters: PVOID,
23727 ) -> NTSTATUS,
23728>;
23729pub type PDEVICE_RESET_HANDLER = DEVICE_RESET_HANDLER;
23730#[repr(C)]
23731#[derive(Copy, Clone)]
23732pub struct _DEVICE_BUS_SPECIFIC_RESET_INFO {
23733 pub BusTypeGuid: GUID,
23734 pub ResetTypeSupported: DEVICE_BUS_SPECIFIC_RESET_TYPE,
23735}
23736pub type DEVICE_BUS_SPECIFIC_RESET_INFO = _DEVICE_BUS_SPECIFIC_RESET_INFO;
23737pub type PDEVICE_BUS_SPECIFIC_RESET_INFO = *mut _DEVICE_BUS_SPECIFIC_RESET_INFO;
23738pub type DEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option<
23739 unsafe extern "C" fn(
23740 InterfaceContext: PVOID,
23741 ResetInfoCount: PULONG,
23742 ResetInfoSupported: PDEVICE_BUS_SPECIFIC_RESET_INFO,
23743 ) -> NTSTATUS,
23744>;
23745pub type PDEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER = DEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER;
23746#[repr(C)]
23747#[derive(Copy, Clone)]
23748pub union _BUS_SPECIFIC_RESET_FLAGS {
23749 pub u: _BUS_SPECIFIC_RESET_FLAGS__bindgen_ty_1,
23750 pub AsUlonglong: ULONGLONG,
23751}
23752#[repr(C)]
23753#[derive(Debug, Copy, Clone)]
23754pub struct _BUS_SPECIFIC_RESET_FLAGS__bindgen_ty_1 {
23755 pub _bitfield_align_1: [u64; 0],
23756 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
23757}
23758impl _BUS_SPECIFIC_RESET_FLAGS__bindgen_ty_1 {
23759 #[inline]
23760 pub fn KeepStackReset(&self) -> ULONGLONG {
23761 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
23762 }
23763 #[inline]
23764 pub fn set_KeepStackReset(&mut self, val: ULONGLONG) {
23765 unsafe {
23766 let val: u64 = ::core::mem::transmute(val);
23767 self._bitfield_1.set(0usize, 1u8, val as u64)
23768 }
23769 }
23770 #[inline]
23771 pub unsafe fn KeepStackReset_raw(this: *const Self) -> ULONGLONG {
23772 unsafe {
23773 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23774 ::core::ptr::addr_of!((*this)._bitfield_1),
23775 0usize,
23776 1u8,
23777 ) as u64)
23778 }
23779 }
23780 #[inline]
23781 pub unsafe fn set_KeepStackReset_raw(this: *mut Self, val: ULONGLONG) {
23782 unsafe {
23783 let val: u64 = ::core::mem::transmute(val);
23784 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23785 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23786 0usize,
23787 1u8,
23788 val as u64,
23789 )
23790 }
23791 }
23792 #[inline]
23793 pub fn Reserved(&self) -> ULONGLONG {
23794 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 63u8) as u64) }
23795 }
23796 #[inline]
23797 pub fn set_Reserved(&mut self, val: ULONGLONG) {
23798 unsafe {
23799 let val: u64 = ::core::mem::transmute(val);
23800 self._bitfield_1.set(1usize, 63u8, val as u64)
23801 }
23802 }
23803 #[inline]
23804 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
23805 unsafe {
23806 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23807 ::core::ptr::addr_of!((*this)._bitfield_1),
23808 1usize,
23809 63u8,
23810 ) as u64)
23811 }
23812 }
23813 #[inline]
23814 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
23815 unsafe {
23816 let val: u64 = ::core::mem::transmute(val);
23817 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23818 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23819 1usize,
23820 63u8,
23821 val as u64,
23822 )
23823 }
23824 }
23825 #[inline]
23826 pub fn new_bitfield_1(
23827 KeepStackReset: ULONGLONG,
23828 Reserved: ULONGLONG,
23829 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
23830 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
23831 __bindgen_bitfield_unit.set(0usize, 1u8, {
23832 let KeepStackReset: u64 = unsafe { ::core::mem::transmute(KeepStackReset) };
23833 KeepStackReset as u64
23834 });
23835 __bindgen_bitfield_unit.set(1usize, 63u8, {
23836 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
23837 Reserved as u64
23838 });
23839 __bindgen_bitfield_unit
23840 }
23841}
23842pub type BUS_SPECIFIC_RESET_FLAGS = _BUS_SPECIFIC_RESET_FLAGS;
23843pub type PBUS_SPECIFIC_RESET_FLAGS = *mut _BUS_SPECIFIC_RESET_FLAGS;
23844pub type DEVICE_BUS_SPECIFIC_RESET_HANDLER = ::core::option::Option<
23845 unsafe extern "C" fn(
23846 InterfaceContext: PVOID,
23847 BusType: *const GUID,
23848 ResetTypeSelected: DEVICE_BUS_SPECIFIC_RESET_TYPE,
23849 Flags: PBUS_SPECIFIC_RESET_FLAGS,
23850 ResetParameters: PVOID,
23851 ) -> NTSTATUS,
23852>;
23853pub type PDEVICE_BUS_SPECIFIC_RESET_HANDLER = DEVICE_BUS_SPECIFIC_RESET_HANDLER;
23854#[repr(C)]
23855#[derive(Copy, Clone)]
23856pub union _DEVICE_RESET_STATUS_FLAGS {
23857 pub u: _DEVICE_RESET_STATUS_FLAGS__bindgen_ty_1,
23858 pub AsUlonglong: ULONGLONG,
23859}
23860#[repr(C)]
23861#[derive(Debug, Copy, Clone)]
23862pub struct _DEVICE_RESET_STATUS_FLAGS__bindgen_ty_1 {
23863 pub _bitfield_align_1: [u64; 0],
23864 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
23865}
23866impl _DEVICE_RESET_STATUS_FLAGS__bindgen_ty_1 {
23867 #[inline]
23868 pub fn KeepStackReset(&self) -> ULONGLONG {
23869 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u64) }
23870 }
23871 #[inline]
23872 pub fn set_KeepStackReset(&mut self, val: ULONGLONG) {
23873 unsafe {
23874 let val: u64 = ::core::mem::transmute(val);
23875 self._bitfield_1.set(0usize, 1u8, val as u64)
23876 }
23877 }
23878 #[inline]
23879 pub unsafe fn KeepStackReset_raw(this: *const Self) -> ULONGLONG {
23880 unsafe {
23881 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23882 ::core::ptr::addr_of!((*this)._bitfield_1),
23883 0usize,
23884 1u8,
23885 ) as u64)
23886 }
23887 }
23888 #[inline]
23889 pub unsafe fn set_KeepStackReset_raw(this: *mut Self, val: ULONGLONG) {
23890 unsafe {
23891 let val: u64 = ::core::mem::transmute(val);
23892 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23893 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23894 0usize,
23895 1u8,
23896 val as u64,
23897 )
23898 }
23899 }
23900 #[inline]
23901 pub fn RecoveringFromBusError(&self) -> ULONGLONG {
23902 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u64) }
23903 }
23904 #[inline]
23905 pub fn set_RecoveringFromBusError(&mut self, val: ULONGLONG) {
23906 unsafe {
23907 let val: u64 = ::core::mem::transmute(val);
23908 self._bitfield_1.set(1usize, 1u8, val as u64)
23909 }
23910 }
23911 #[inline]
23912 pub unsafe fn RecoveringFromBusError_raw(this: *const Self) -> ULONGLONG {
23913 unsafe {
23914 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23915 ::core::ptr::addr_of!((*this)._bitfield_1),
23916 1usize,
23917 1u8,
23918 ) as u64)
23919 }
23920 }
23921 #[inline]
23922 pub unsafe fn set_RecoveringFromBusError_raw(this: *mut Self, val: ULONGLONG) {
23923 unsafe {
23924 let val: u64 = ::core::mem::transmute(val);
23925 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23926 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23927 1usize,
23928 1u8,
23929 val as u64,
23930 )
23931 }
23932 }
23933 #[inline]
23934 pub fn Reserved(&self) -> ULONGLONG {
23935 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 62u8) as u64) }
23936 }
23937 #[inline]
23938 pub fn set_Reserved(&mut self, val: ULONGLONG) {
23939 unsafe {
23940 let val: u64 = ::core::mem::transmute(val);
23941 self._bitfield_1.set(2usize, 62u8, val as u64)
23942 }
23943 }
23944 #[inline]
23945 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
23946 unsafe {
23947 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
23948 ::core::ptr::addr_of!((*this)._bitfield_1),
23949 2usize,
23950 62u8,
23951 ) as u64)
23952 }
23953 }
23954 #[inline]
23955 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
23956 unsafe {
23957 let val: u64 = ::core::mem::transmute(val);
23958 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
23959 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
23960 2usize,
23961 62u8,
23962 val as u64,
23963 )
23964 }
23965 }
23966 #[inline]
23967 pub fn new_bitfield_1(
23968 KeepStackReset: ULONGLONG,
23969 RecoveringFromBusError: ULONGLONG,
23970 Reserved: ULONGLONG,
23971 ) -> __BindgenBitfieldUnit<[u8; 8usize]> {
23972 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
23973 __bindgen_bitfield_unit.set(0usize, 1u8, {
23974 let KeepStackReset: u64 = unsafe { ::core::mem::transmute(KeepStackReset) };
23975 KeepStackReset as u64
23976 });
23977 __bindgen_bitfield_unit.set(1usize, 1u8, {
23978 let RecoveringFromBusError: u64 =
23979 unsafe { ::core::mem::transmute(RecoveringFromBusError) };
23980 RecoveringFromBusError as u64
23981 });
23982 __bindgen_bitfield_unit.set(2usize, 62u8, {
23983 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
23984 Reserved as u64
23985 });
23986 __bindgen_bitfield_unit
23987 }
23988}
23989pub type DEVICE_RESET_STATUS_FLAGS = _DEVICE_RESET_STATUS_FLAGS;
23990pub type PDEVICE_RESET_STATUS_FLAGS = *mut _DEVICE_RESET_STATUS_FLAGS;
23991pub type GET_DEVICE_RESET_STATUS = ::core::option::Option<
23992 unsafe extern "C" fn(
23993 InterfaceContext: PVOID,
23994 IsResetting: PBOOLEAN,
23995 ResetTypeSelected: PDEVICE_BUS_SPECIFIC_RESET_TYPE,
23996 Flags: PDEVICE_RESET_STATUS_FLAGS,
23997 ) -> NTSTATUS,
23998>;
23999pub type PGET_DEVICE_RESET_STATUS = GET_DEVICE_RESET_STATUS;
24000#[repr(C)]
24001#[derive(Debug, Copy, Clone)]
24002pub struct _DEVICE_RESET_INTERFACE_STANDARD {
24003 pub Size: USHORT,
24004 pub Version: USHORT,
24005 pub Context: PVOID,
24006 pub InterfaceReference: PINTERFACE_REFERENCE,
24007 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
24008 pub DeviceReset: PDEVICE_RESET_HANDLER,
24009 pub SupportedResetTypes: ULONG,
24010 pub Reserved: PVOID,
24011 pub QueryBusSpecificResetInfo: PDEVICE_QUERY_BUS_SPECIFIC_RESET_HANDLER,
24012 pub DeviceBusSpecificReset: PDEVICE_BUS_SPECIFIC_RESET_HANDLER,
24013 pub GetDeviceResetStatus: PGET_DEVICE_RESET_STATUS,
24014}
24015pub type DEVICE_RESET_INTERFACE_STANDARD = _DEVICE_RESET_INTERFACE_STANDARD;
24016pub type PDEVICE_RESET_INTERFACE_STANDARD = *mut _DEVICE_RESET_INTERFACE_STANDARD;
24017pub type SECURE_DRIVER_PROCESS_REFERENCE =
24018::core::option::Option<unsafe extern "C" fn(InterfaceContext: PVOID) -> PEPROCESS>;
24019pub type PSECURE_DRIVER_PROCESS_REFERENCE = SECURE_DRIVER_PROCESS_REFERENCE;
24020pub type SECURE_DRIVER_PROCESS_DEREFERENCE =
24021::core::option::Option<unsafe extern "C" fn(InterfaceContext: PVOID, Process: PEPROCESS)>;
24022pub type PSECURE_DRIVER_PROCESS_DEREFERENCE = SECURE_DRIVER_PROCESS_DEREFERENCE;
24023#[repr(C)]
24024#[derive(Debug, Copy, Clone)]
24025pub struct _SECURE_DRIVER_INTERFACE {
24026 pub InterfaceHeader: INTERFACE,
24027 pub ProcessReference: PSECURE_DRIVER_PROCESS_REFERENCE,
24028 pub ProcessDereference: PSECURE_DRIVER_PROCESS_DEREFERENCE,
24029 pub Reserved: ULONG,
24030}
24031pub type SECURE_DRIVER_INTERFACE = _SECURE_DRIVER_INTERFACE;
24032pub type PSECURE_DRIVER_INTERFACE = *mut _SECURE_DRIVER_INTERFACE;
24033pub type GET_SDEV_IDENTIFIER =
24034::core::option::Option<unsafe extern "C" fn(InterfaceContext: PVOID) -> ULONGLONG>;
24035pub type PGET_SDEV_IDENTIFIER = GET_SDEV_IDENTIFIER;
24036#[repr(C)]
24037#[derive(Debug, Copy, Clone)]
24038pub struct _SDEV_IDENTIFIER_INTERFACE {
24039 pub InterfaceHeader: INTERFACE,
24040 pub GetIdentifier: PGET_SDEV_IDENTIFIER,
24041}
24042pub type SDEV_IDENTIFIER_INTERFACE = _SDEV_IDENTIFIER_INTERFACE;
24043pub type PSDEV_IDENTIFIER_INTERFACE = *mut _SDEV_IDENTIFIER_INTERFACE;
24044#[repr(C)]
24045#[derive(Copy, Clone)]
24046pub struct _DEVICE_DESCRIPTION {
24047 pub Version: ULONG,
24048 pub Master: BOOLEAN,
24049 pub ScatterGather: BOOLEAN,
24050 pub DemandMode: BOOLEAN,
24051 pub AutoInitialize: BOOLEAN,
24052 pub Dma32BitAddresses: BOOLEAN,
24053 pub IgnoreCount: BOOLEAN,
24054 pub Reserved1: BOOLEAN,
24055 pub Dma64BitAddresses: BOOLEAN,
24056 pub BusNumber: ULONG,
24057 pub DmaChannel: ULONG,
24058 pub InterfaceType: INTERFACE_TYPE,
24059 pub DmaWidth: DMA_WIDTH,
24060 pub DmaSpeed: DMA_SPEED,
24061 pub MaximumLength: ULONG,
24062 pub DmaPort: ULONG,
24063 pub DmaAddressWidth: ULONG,
24064 pub DmaControllerInstance: ULONG,
24065 pub DmaRequestLine: ULONG,
24066 pub DeviceAddress: PHYSICAL_ADDRESS,
24067}
24068pub type DEVICE_DESCRIPTION = _DEVICE_DESCRIPTION;
24069pub type PDEVICE_DESCRIPTION = *mut _DEVICE_DESCRIPTION;
24070#[repr(C)]
24071#[derive(Debug, Copy, Clone)]
24072pub struct _DMA_ADAPTER_INFO_V1 {
24073 pub ReadDmaCounterAvailable: ULONG,
24074 pub ScatterGatherLimit: ULONG,
24075 pub DmaAddressWidth: ULONG,
24076 pub Flags: ULONG,
24077 pub MinimumTransferUnit: ULONG,
24078}
24079pub type DMA_ADAPTER_INFO_V1 = _DMA_ADAPTER_INFO_V1;
24080pub type PDMA_ADAPTER_INFO_V1 = *mut _DMA_ADAPTER_INFO_V1;
24081#[repr(C)]
24082#[derive(Copy, Clone)]
24083pub struct _DMA_ADAPTER_INFO_CRASHDUMP {
24084 pub DeviceDescription: DEVICE_DESCRIPTION,
24085 pub DeviceIdSize: SIZE_T,
24086 pub DeviceId: PVOID,
24087}
24088pub type DMA_ADAPTER_INFO_CRASHDUMP = _DMA_ADAPTER_INFO_CRASHDUMP;
24089pub type PDMA_ADAPTER_INFO_CRASHDUMP = *mut _DMA_ADAPTER_INFO_CRASHDUMP;
24090#[repr(C)]
24091#[derive(Copy, Clone)]
24092pub struct _DMA_ADAPTER_INFO {
24093 pub Version: ULONG,
24094 pub __bindgen_anon_1: _DMA_ADAPTER_INFO__bindgen_ty_1,
24095}
24096#[repr(C)]
24097#[derive(Copy, Clone)]
24098pub union _DMA_ADAPTER_INFO__bindgen_ty_1 {
24099 pub V1: DMA_ADAPTER_INFO_V1,
24100 pub Crashdump: DMA_ADAPTER_INFO_CRASHDUMP,
24101}
24102pub type DMA_ADAPTER_INFO = _DMA_ADAPTER_INFO;
24103pub type PDMA_ADAPTER_INFO = *mut _DMA_ADAPTER_INFO;
24104#[repr(C)]
24105#[derive(Debug, Copy, Clone)]
24106pub struct _DMA_TRANSFER_INFO_V1 {
24107 pub MapRegisterCount: ULONG,
24108 pub ScatterGatherElementCount: ULONG,
24109 pub ScatterGatherListSize: ULONG,
24110}
24111pub type DMA_TRANSFER_INFO_V1 = _DMA_TRANSFER_INFO_V1;
24112pub type PDMA_TRANSFER_INFO_V1 = *mut _DMA_TRANSFER_INFO_V1;
24113#[repr(C)]
24114#[derive(Debug, Copy, Clone)]
24115pub struct _DMA_TRANSFER_INFO_V2 {
24116 pub MapRegisterCount: ULONG,
24117 pub ScatterGatherElementCount: ULONG,
24118 pub ScatterGatherListSize: ULONG,
24119 pub LogicalPageCount: ULONG,
24120}
24121pub type DMA_TRANSFER_INFO_V2 = _DMA_TRANSFER_INFO_V2;
24122pub type PDMA_TRANSFER_INFO_V2 = *mut _DMA_TRANSFER_INFO_V2;
24123#[repr(C)]
24124#[derive(Copy, Clone)]
24125pub struct _DMA_TRANSFER_INFO {
24126 pub Version: ULONG,
24127 pub __bindgen_anon_1: _DMA_TRANSFER_INFO__bindgen_ty_1,
24128}
24129#[repr(C)]
24130#[derive(Copy, Clone)]
24131pub union _DMA_TRANSFER_INFO__bindgen_ty_1 {
24132 pub V1: DMA_TRANSFER_INFO_V1,
24133 pub V2: DMA_TRANSFER_INFO_V2,
24134}
24135pub type DMA_TRANSFER_INFO = _DMA_TRANSFER_INFO;
24136pub type PDMA_TRANSFER_INFO = *mut _DMA_TRANSFER_INFO;
24137unsafe extern "C" {
24138 pub fn KeFlushWriteBuffer();
24139}
24140unsafe extern "C" {
24141 pub fn KeQueryPerformanceCounter(PerformanceFrequency: PLARGE_INTEGER) -> LARGE_INTEGER;
24142}
24143unsafe extern "C" {
24144 pub fn KeStallExecutionProcessor(MicroSeconds: ULONG);
24145}
24146pub type PROCESSOR_HALT_ROUTINE =
24147::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
24148pub type PPROCESSOR_HALT_ROUTINE = PROCESSOR_HALT_ROUTINE;
24149#[repr(C)]
24150#[derive(Debug, Copy, Clone)]
24151pub struct _IOMMU_DMA_DEVICE {
24152 _unused: [u8; 0],
24153}
24154pub type IOMMU_DMA_DEVICE = _IOMMU_DMA_DEVICE;
24155pub type PIOMMU_DMA_DEVICE = *mut _IOMMU_DMA_DEVICE;
24156#[repr(C)]
24157#[derive(Copy, Clone)]
24158pub struct _SCATTER_GATHER_ELEMENT {
24159 pub Address: PHYSICAL_ADDRESS,
24160 pub Length: ULONG,
24161 pub Reserved: ULONG_PTR,
24162}
24163pub type SCATTER_GATHER_ELEMENT = _SCATTER_GATHER_ELEMENT;
24164pub type PSCATTER_GATHER_ELEMENT = *mut _SCATTER_GATHER_ELEMENT;
24165#[repr(C)]
24166pub struct _SCATTER_GATHER_LIST {
24167 pub NumberOfElements: ULONG,
24168 pub Reserved: ULONG_PTR,
24169 pub Elements: __IncompleteArrayField<SCATTER_GATHER_ELEMENT>,
24170}
24171pub type SCATTER_GATHER_LIST = _SCATTER_GATHER_LIST;
24172pub type PSCATTER_GATHER_LIST = *mut _SCATTER_GATHER_LIST;
24173pub type PDMA_OPERATIONS = *mut _DMA_OPERATIONS;
24174#[repr(C)]
24175#[derive(Debug, Copy, Clone)]
24176pub struct _DMA_ADAPTER {
24177 pub Version: USHORT,
24178 pub Size: USHORT,
24179 pub DmaOperations: PDMA_OPERATIONS,
24180}
24181pub type DMA_ADAPTER = _DMA_ADAPTER;
24182pub type PDMA_ADAPTER = *mut _DMA_ADAPTER;
24183pub const DMA_COMPLETION_STATUS_DmaComplete: DMA_COMPLETION_STATUS = 0;
24184pub const DMA_COMPLETION_STATUS_DmaAborted: DMA_COMPLETION_STATUS = 1;
24185pub const DMA_COMPLETION_STATUS_DmaError: DMA_COMPLETION_STATUS = 2;
24186pub const DMA_COMPLETION_STATUS_DmaCancelled: DMA_COMPLETION_STATUS = 3;
24187pub type DMA_COMPLETION_STATUS = core::ffi::c_int;
24188pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE_CommonBufferConfigTypeLogicalAddressLimits : _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 0 ;
24189pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE_CommonBufferConfigTypeSubSection:
24190_DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 1;
24191pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE_CommonBufferConfigTypeHardwareAccessPermissions : _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 2 ;
24192pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE_CommonBufferConfigTypeMax:
24193_DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = 3;
24194pub type _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE = core::ffi::c_int;
24195pub use self::_DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE as DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE;
24196pub type PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE =
24197*mut _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE;
24198pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE_CommonBufferHardwareAccessReadOnly : _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 0 ;
24199pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE_CommonBufferHardwareAccessWriteOnly : _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 1 ;
24200pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE_CommonBufferHardwareAccessReadWrite : _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 2 ;
24201pub const _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE_CommonBufferHardwareAccessMax:
24202_DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = 3;
24203pub type _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE = core::ffi::c_int;
24204pub use self::_DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE as DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE;
24205pub type PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE =
24206*mut _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE;
24207#[repr(C)]
24208#[derive(Copy, Clone)]
24209pub struct _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION {
24210 pub ConfigType: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE,
24211 pub __bindgen_anon_1: _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1,
24212}
24213#[repr(C)]
24214#[derive(Copy, Clone)]
24215pub union _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1 {
24216 pub LogicalAddressLimits: _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1__bindgen_ty_1,
24217 pub SubSection: _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1__bindgen_ty_2,
24218 pub HardwareAccessType: DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE,
24219 pub Reserved: [ULONGLONG; 4usize],
24220}
24221#[repr(C)]
24222#[derive(Copy, Clone)]
24223pub struct _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1__bindgen_ty_1 {
24224 pub MinimumAddress: PHYSICAL_ADDRESS,
24225 pub MaximumAddress: PHYSICAL_ADDRESS,
24226}
24227#[repr(C)]
24228#[derive(Debug, Copy, Clone)]
24229pub struct _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION__bindgen_ty_1__bindgen_ty_2 {
24230 pub Offset: ULONGLONG,
24231 pub Length: ULONG,
24232}
24233pub type DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION = _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION;
24234pub type PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION = *mut _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION;
24235pub type PPUT_DMA_ADAPTER = ::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER)>;
24236pub type PALLOCATE_COMMON_BUFFER = ::core::option::Option<
24237 unsafe extern "C" fn(
24238 DmaAdapter: PDMA_ADAPTER,
24239 Length: ULONG,
24240 LogicalAddress: PPHYSICAL_ADDRESS,
24241 CacheEnabled: BOOLEAN,
24242 ) -> PVOID,
24243>;
24244pub type PFREE_COMMON_BUFFER = ::core::option::Option<
24245 unsafe extern "C" fn(
24246 DmaAdapter: PDMA_ADAPTER,
24247 Length: ULONG,
24248 LogicalAddress: PHYSICAL_ADDRESS,
24249 VirtualAddress: PVOID,
24250 CacheEnabled: BOOLEAN,
24251 ),
24252>;
24253pub type PALLOCATE_ADAPTER_CHANNEL = ::core::option::Option<
24254 unsafe extern "C" fn(
24255 DmaAdapter: PDMA_ADAPTER,
24256 DeviceObject: PDEVICE_OBJECT,
24257 NumberOfMapRegisters: ULONG,
24258 ExecutionRoutine: PDRIVER_CONTROL,
24259 Context: PVOID,
24260 ) -> NTSTATUS,
24261>;
24262pub type PFLUSH_ADAPTER_BUFFERS = ::core::option::Option<
24263 unsafe extern "C" fn(
24264 DmaAdapter: PDMA_ADAPTER,
24265 Mdl: PMDL,
24266 MapRegisterBase: PVOID,
24267 CurrentVa: PVOID,
24268 Length: ULONG,
24269 WriteToDevice: BOOLEAN,
24270 ) -> BOOLEAN,
24271>;
24272pub type PFREE_ADAPTER_CHANNEL =
24273::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER)>;
24274pub type PFREE_ADAPTER_OBJECT = ::core::option::Option<
24275 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, AllocationAction: IO_ALLOCATION_ACTION),
24276>;
24277pub type PFREE_MAP_REGISTERS = ::core::option::Option<
24278 unsafe extern "C" fn(
24279 DmaAdapter: PDMA_ADAPTER,
24280 MapRegisterBase: PVOID,
24281 NumberOfMapRegisters: ULONG,
24282 ),
24283>;
24284pub type PMAP_TRANSFER = ::core::option::Option<
24285 unsafe extern "C" fn(
24286 DmaAdapter: PDMA_ADAPTER,
24287 Mdl: PMDL,
24288 MapRegisterBase: PVOID,
24289 CurrentVa: PVOID,
24290 Length: PULONG,
24291 WriteToDevice: BOOLEAN,
24292 ) -> PHYSICAL_ADDRESS,
24293>;
24294pub type PGET_DMA_ALIGNMENT =
24295::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER) -> ULONG>;
24296pub type PREAD_DMA_COUNTER =
24297::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER) -> ULONG>;
24298pub type DRIVER_LIST_CONTROL = ::core::option::Option<
24299 unsafe extern "C" fn(
24300 DeviceObject: *mut _DEVICE_OBJECT,
24301 Irp: *mut _IRP,
24302 ScatterGather: PSCATTER_GATHER_LIST,
24303 Context: PVOID,
24304 ),
24305>;
24306pub type PDRIVER_LIST_CONTROL = DRIVER_LIST_CONTROL;
24307pub type PGET_SCATTER_GATHER_LIST = ::core::option::Option<
24308 unsafe extern "C" fn(
24309 DmaAdapter: PDMA_ADAPTER,
24310 DeviceObject: PDEVICE_OBJECT,
24311 Mdl: PMDL,
24312 CurrentVa: PVOID,
24313 Length: ULONG,
24314 ExecutionRoutine: PDRIVER_LIST_CONTROL,
24315 Context: PVOID,
24316 WriteToDevice: BOOLEAN,
24317 ) -> NTSTATUS,
24318>;
24319pub type PPUT_SCATTER_GATHER_LIST = ::core::option::Option<
24320 unsafe extern "C" fn(
24321 DmaAdapter: PDMA_ADAPTER,
24322 ScatterGather: PSCATTER_GATHER_LIST,
24323 WriteToDevice: BOOLEAN,
24324 ),
24325>;
24326pub type PCALCULATE_SCATTER_GATHER_LIST_SIZE = ::core::option::Option<
24327 unsafe extern "C" fn(
24328 DmaAdapter: PDMA_ADAPTER,
24329 Mdl: PMDL,
24330 CurrentVa: PVOID,
24331 Length: ULONG,
24332 ScatterGatherListSize: PULONG,
24333 pNumberOfMapRegisters: PULONG,
24334 ) -> NTSTATUS,
24335>;
24336pub type PBUILD_SCATTER_GATHER_LIST = ::core::option::Option<
24337 unsafe extern "C" fn(
24338 DmaAdapter: PDMA_ADAPTER,
24339 DeviceObject: PDEVICE_OBJECT,
24340 Mdl: PMDL,
24341 CurrentVa: PVOID,
24342 Length: ULONG,
24343 ExecutionRoutine: PDRIVER_LIST_CONTROL,
24344 Context: PVOID,
24345 WriteToDevice: BOOLEAN,
24346 ScatterGatherBuffer: PVOID,
24347 ScatterGatherLength: ULONG,
24348 ) -> NTSTATUS,
24349>;
24350pub type PBUILD_MDL_FROM_SCATTER_GATHER_LIST = ::core::option::Option<
24351 unsafe extern "C" fn(
24352 DmaAdapter: PDMA_ADAPTER,
24353 ScatterGather: PSCATTER_GATHER_LIST,
24354 OriginalMdl: PMDL,
24355 TargetMdl: *mut PMDL,
24356 ) -> NTSTATUS,
24357>;
24358pub type PGET_DMA_ADAPTER_INFO = ::core::option::Option<
24359 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, AdapterInfo: PDMA_ADAPTER_INFO) -> NTSTATUS,
24360>;
24361pub type PGET_DMA_TRANSFER_INFO = ::core::option::Option<
24362 unsafe extern "C" fn(
24363 DmaAdapter: PDMA_ADAPTER,
24364 Mdl: PMDL,
24365 Offset: ULONGLONG,
24366 Length: ULONG,
24367 WriteOnly: BOOLEAN,
24368 TransferInfo: PDMA_TRANSFER_INFO,
24369 ) -> NTSTATUS,
24370>;
24371pub type PCONFIGURE_ADAPTER_CHANNEL = ::core::option::Option<
24372 unsafe extern "C" fn(
24373 DmaAdapter: PDMA_ADAPTER,
24374 FunctionNumber: ULONG,
24375 Context: PVOID,
24376 ) -> NTSTATUS,
24377>;
24378pub type PINITIALIZE_DMA_TRANSFER_CONTEXT = ::core::option::Option<
24379 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, DmaTransferContext: PVOID) -> NTSTATUS,
24380>;
24381pub type PALLOCATE_COMMON_BUFFER_EX = ::core::option::Option<
24382 unsafe extern "C" fn(
24383 DmaAdapter: PDMA_ADAPTER,
24384 MaximumAddress: PPHYSICAL_ADDRESS,
24385 Length: ULONG,
24386 LogicalAddress: PPHYSICAL_ADDRESS,
24387 CacheEnabled: BOOLEAN,
24388 PreferredNode: NODE_REQUIREMENT,
24389 ) -> PVOID,
24390>;
24391pub type PALLOCATE_ADAPTER_CHANNEL_EX = ::core::option::Option<
24392 unsafe extern "C" fn(
24393 DmaAdapter: PDMA_ADAPTER,
24394 DeviceObject: PDEVICE_OBJECT,
24395 DmaTransferContext: PVOID,
24396 NumberOfMapRegisters: ULONG,
24397 Flags: ULONG,
24398 ExecutionRoutine: PDRIVER_CONTROL,
24399 ExecutionContext: PVOID,
24400 MapRegisterBase: *mut PVOID,
24401 ) -> NTSTATUS,
24402>;
24403pub type DMA_COMPLETION_ROUTINE = ::core::option::Option<
24404 unsafe extern "C" fn(
24405 DmaAdapter: PDMA_ADAPTER,
24406 DeviceObject: PDEVICE_OBJECT,
24407 CompletionContext: PVOID,
24408 Status: DMA_COMPLETION_STATUS,
24409 ),
24410>;
24411pub type PDMA_COMPLETION_ROUTINE = DMA_COMPLETION_ROUTINE;
24412pub type PMAP_TRANSFER_EX = ::core::option::Option<
24413 unsafe extern "C" fn(
24414 DmaAdapter: PDMA_ADAPTER,
24415 Mdl: PMDL,
24416 MapRegisterBase: PVOID,
24417 Offset: ULONGLONG,
24418 DeviceOffset: ULONG,
24419 Length: PULONG,
24420 WriteToDevice: BOOLEAN,
24421 ScatterGatherBuffer: PSCATTER_GATHER_LIST,
24422 ScatterGatherBufferLength: ULONG,
24423 DmaCompletionRoutine: PDMA_COMPLETION_ROUTINE,
24424 CompletionContext: PVOID,
24425 ) -> NTSTATUS,
24426>;
24427pub type PCANCEL_ADAPTER_CHANNEL = ::core::option::Option<
24428 unsafe extern "C" fn(
24429 DmaAdapter: PDMA_ADAPTER,
24430 DeviceObject: PDEVICE_OBJECT,
24431 DmaTransferContext: PVOID,
24432 ) -> BOOLEAN,
24433>;
24434pub type PCANCEL_MAPPED_TRANSFER = ::core::option::Option<
24435 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, DmaTransferContext: PVOID) -> NTSTATUS,
24436>;
24437pub type PFLUSH_ADAPTER_BUFFERS_EX = ::core::option::Option<
24438 unsafe extern "C" fn(
24439 DmaAdapter: PDMA_ADAPTER,
24440 Mdl: PMDL,
24441 MapRegisterBase: PVOID,
24442 Offset: ULONGLONG,
24443 Length: ULONG,
24444 WriteToDevice: BOOLEAN,
24445 ) -> NTSTATUS,
24446>;
24447pub type PGET_SCATTER_GATHER_LIST_EX = ::core::option::Option<
24448 unsafe extern "C" fn(
24449 DmaAdapter: PDMA_ADAPTER,
24450 DeviceObject: PDEVICE_OBJECT,
24451 DmaTransferContext: PVOID,
24452 Mdl: PMDL,
24453 Offset: ULONGLONG,
24454 Length: ULONG,
24455 Flags: ULONG,
24456 ExecutionRoutine: PDRIVER_LIST_CONTROL,
24457 Context: PVOID,
24458 WriteToDevice: BOOLEAN,
24459 DmaCompletionRoutine: PDMA_COMPLETION_ROUTINE,
24460 CompletionContext: PVOID,
24461 ScatterGatherList: *mut PSCATTER_GATHER_LIST,
24462 ) -> NTSTATUS,
24463>;
24464pub type PBUILD_SCATTER_GATHER_LIST_EX = ::core::option::Option<
24465 unsafe extern "C" fn(
24466 DmaAdapter: PDMA_ADAPTER,
24467 DeviceObject: PDEVICE_OBJECT,
24468 DmaTransferContext: PVOID,
24469 Mdl: PMDL,
24470 Offset: ULONGLONG,
24471 Length: ULONG,
24472 Flags: ULONG,
24473 ExecutionRoutine: PDRIVER_LIST_CONTROL,
24474 Context: PVOID,
24475 WriteToDevice: BOOLEAN,
24476 ScatterGatherBuffer: PVOID,
24477 ScatterGatherLength: ULONG,
24478 DmaCompletionRoutine: PDMA_COMPLETION_ROUTINE,
24479 CompletionContext: PVOID,
24480 ScatterGatherList: PVOID,
24481 ) -> NTSTATUS,
24482>;
24483pub type PALLOCATE_DOMAIN_COMMON_BUFFER = ::core::option::Option<
24484 unsafe extern "C" fn(
24485 DmaAdapter: PDMA_ADAPTER,
24486 DomainHandle: HANDLE,
24487 MaximumAddress: PPHYSICAL_ADDRESS,
24488 Length: ULONG,
24489 Flags: ULONG,
24490 CacheType: *mut MEMORY_CACHING_TYPE,
24491 PreferredNode: NODE_REQUIREMENT,
24492 LogicalAddress: PPHYSICAL_ADDRESS,
24493 VirtualAddress: *mut PVOID,
24494 ) -> NTSTATUS,
24495>;
24496pub type PALLOCATE_COMMON_BUFFER_WITH_BOUNDS = ::core::option::Option<
24497 unsafe extern "C" fn(
24498 DmaAdapter: PDMA_ADAPTER,
24499 MinimumAddress: PPHYSICAL_ADDRESS,
24500 MaximumAddress: PPHYSICAL_ADDRESS,
24501 Length: ULONG,
24502 Flags: ULONG,
24503 CacheType: *mut MEMORY_CACHING_TYPE,
24504 PreferredNode: NODE_REQUIREMENT,
24505 LogicalAddress: PPHYSICAL_ADDRESS,
24506 ) -> PVOID,
24507>;
24508#[repr(C)]
24509#[derive(Debug, Copy, Clone)]
24510pub struct _DMA_COMMON_BUFFER_VECTOR {
24511 _unused: [u8; 0],
24512}
24513pub type DMA_COMMON_BUFFER_VECTOR = _DMA_COMMON_BUFFER_VECTOR;
24514pub type PDMA_COMMON_BUFFER_VECTOR = *mut _DMA_COMMON_BUFFER_VECTOR;
24515pub type PALLOCATE_COMMON_BUFFER_VECTOR = ::core::option::Option<
24516 unsafe extern "C" fn(
24517 DmaAdapter: PDMA_ADAPTER,
24518 LowAddress: PHYSICAL_ADDRESS,
24519 HighAddress: PHYSICAL_ADDRESS,
24520 CacheType: MEMORY_CACHING_TYPE,
24521 IdealNode: NODE_REQUIREMENT,
24522 Flags: ULONG,
24523 NumberOfElements: ULONG,
24524 SizeOfElements: ULONGLONG,
24525 VectorOut: *mut PDMA_COMMON_BUFFER_VECTOR,
24526 ) -> NTSTATUS,
24527>;
24528pub type PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX = ::core::option::Option<
24529 unsafe extern "C" fn(
24530 DmaAdapter: PDMA_ADAPTER,
24531 Vector: PDMA_COMMON_BUFFER_VECTOR,
24532 Index: ULONG,
24533 VirtualAddressOut: *mut PVOID,
24534 LogicalAddressOut: PPHYSICAL_ADDRESS,
24535 ),
24536>;
24537pub type PFREE_COMMON_BUFFER_FROM_VECTOR = ::core::option::Option<
24538 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, Vector: PDMA_COMMON_BUFFER_VECTOR, Index: ULONG),
24539>;
24540pub type PFREE_COMMON_BUFFER_VECTOR = ::core::option::Option<
24541 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, Vector: PDMA_COMMON_BUFFER_VECTOR),
24542>;
24543pub type PCREATE_COMMON_BUFFER_FROM_MDL = ::core::option::Option<
24544 unsafe extern "C" fn(
24545 DmaAdapter: PDMA_ADAPTER,
24546 Mdl: PMDL,
24547 ExtendedConfigs: PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION,
24548 ExtendedConfigsCount: ULONG,
24549 LogicalAddress: PPHYSICAL_ADDRESS,
24550 ) -> NTSTATUS,
24551>;
24552pub type PFLUSH_DMA_BUFFER = ::core::option::Option<
24553 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, Mdl: PMDL, ReadOperation: BOOLEAN) -> NTSTATUS,
24554>;
24555pub type PJOIN_DMA_DOMAIN = ::core::option::Option<
24556 unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER, DomainHandle: HANDLE) -> NTSTATUS,
24557>;
24558pub type PLEAVE_DMA_DOMAIN =
24559::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER) -> NTSTATUS>;
24560pub type PGET_DMA_DOMAIN =
24561::core::option::Option<unsafe extern "C" fn(DmaAdapter: PDMA_ADAPTER) -> HANDLE>;
24562#[repr(C)]
24563#[derive(Copy, Clone)]
24564pub struct _DMA_OPERATIONS {
24565 pub Size: ULONG,
24566 pub PutDmaAdapter: PPUT_DMA_ADAPTER,
24567 pub AllocateCommonBuffer: PALLOCATE_COMMON_BUFFER,
24568 pub FreeCommonBuffer: PFREE_COMMON_BUFFER,
24569 pub AllocateAdapterChannel: PALLOCATE_ADAPTER_CHANNEL,
24570 pub FlushAdapterBuffers: PFLUSH_ADAPTER_BUFFERS,
24571 pub FreeAdapterChannel: PFREE_ADAPTER_CHANNEL,
24572 pub FreeMapRegisters: PFREE_MAP_REGISTERS,
24573 pub MapTransfer: PMAP_TRANSFER,
24574 pub GetDmaAlignment: PGET_DMA_ALIGNMENT,
24575 pub ReadDmaCounter: PREAD_DMA_COUNTER,
24576 pub GetScatterGatherList: PGET_SCATTER_GATHER_LIST,
24577 pub PutScatterGatherList: PPUT_SCATTER_GATHER_LIST,
24578 pub CalculateScatterGatherList: PCALCULATE_SCATTER_GATHER_LIST_SIZE,
24579 pub BuildScatterGatherList: PBUILD_SCATTER_GATHER_LIST,
24580 pub BuildMdlFromScatterGatherList: PBUILD_MDL_FROM_SCATTER_GATHER_LIST,
24581 pub GetDmaAdapterInfo: PGET_DMA_ADAPTER_INFO,
24582 pub GetDmaTransferInfo: PGET_DMA_TRANSFER_INFO,
24583 pub InitializeDmaTransferContext: PINITIALIZE_DMA_TRANSFER_CONTEXT,
24584 pub AllocateCommonBufferEx: PALLOCATE_COMMON_BUFFER_EX,
24585 pub AllocateAdapterChannelEx: PALLOCATE_ADAPTER_CHANNEL_EX,
24586 pub ConfigureAdapterChannel: PCONFIGURE_ADAPTER_CHANNEL,
24587 pub CancelAdapterChannel: PCANCEL_ADAPTER_CHANNEL,
24588 pub MapTransferEx: PMAP_TRANSFER_EX,
24589 pub GetScatterGatherListEx: PGET_SCATTER_GATHER_LIST_EX,
24590 pub BuildScatterGatherListEx: PBUILD_SCATTER_GATHER_LIST_EX,
24591 pub FlushAdapterBuffersEx: PFLUSH_ADAPTER_BUFFERS_EX,
24592 pub FreeAdapterObject: PFREE_ADAPTER_OBJECT,
24593 pub CancelMappedTransfer: PCANCEL_MAPPED_TRANSFER,
24594 pub AllocateDomainCommonBuffer: PALLOCATE_DOMAIN_COMMON_BUFFER,
24595 pub FlushDmaBuffer: PFLUSH_DMA_BUFFER,
24596 pub JoinDmaDomain: PJOIN_DMA_DOMAIN,
24597 pub LeaveDmaDomain: PLEAVE_DMA_DOMAIN,
24598 pub GetDmaDomain: PGET_DMA_DOMAIN,
24599 pub AllocateCommonBufferWithBounds: PALLOCATE_COMMON_BUFFER_WITH_BOUNDS,
24600 pub AllocateCommonBufferVector: PALLOCATE_COMMON_BUFFER_VECTOR,
24601 pub GetCommonBufferFromVectorByIndex: PGET_COMMON_BUFFER_FROM_VECTOR_BY_INDEX,
24602 pub FreeCommonBufferFromVector: PFREE_COMMON_BUFFER_FROM_VECTOR,
24603 pub FreeCommonBufferVector: PFREE_COMMON_BUFFER_VECTOR,
24604 pub CreateCommonBufferFromMdl: PCREATE_COMMON_BUFFER_FROM_MDL,
24605}
24606pub type DMA_OPERATIONS = _DMA_OPERATIONS;
24607#[repr(C)]
24608#[derive(Debug, Copy, Clone)]
24609pub struct _IOMMU_DMA_DOMAIN {
24610 _unused: [u8; 0],
24611}
24612pub type IOMMU_DMA_DOMAIN = _IOMMU_DMA_DOMAIN;
24613pub type PIOMMU_DMA_DOMAIN = *mut _IOMMU_DMA_DOMAIN;
24614pub const _FAULT_INFORMATION_ARCH_FaultInformationInvalid: _FAULT_INFORMATION_ARCH = 0;
24615pub const _FAULT_INFORMATION_ARCH_FaultInformationArm64: _FAULT_INFORMATION_ARCH = 1;
24616pub const _FAULT_INFORMATION_ARCH_FaultInformationX64: _FAULT_INFORMATION_ARCH = 2;
24617pub type _FAULT_INFORMATION_ARCH = core::ffi::c_int;
24618pub use self::_FAULT_INFORMATION_ARCH as FAULT_INFORMATION_ARCH;
24619pub type PFAULT_INFORMATION_ARCH = *mut _FAULT_INFORMATION_ARCH;
24620pub const _FAULT_INFORMATION_ARM64_TYPE_UnsupportedUpstreamTransaction:
24621_FAULT_INFORMATION_ARM64_TYPE = 0;
24622pub const _FAULT_INFORMATION_ARM64_TYPE_AddressSizeFault: _FAULT_INFORMATION_ARM64_TYPE = 1;
24623pub const _FAULT_INFORMATION_ARM64_TYPE_TlbMatchConflict: _FAULT_INFORMATION_ARM64_TYPE = 2;
24624pub const _FAULT_INFORMATION_ARM64_TYPE_ExternalFault: _FAULT_INFORMATION_ARM64_TYPE = 3;
24625pub const _FAULT_INFORMATION_ARM64_TYPE_PermissionFault: _FAULT_INFORMATION_ARM64_TYPE = 4;
24626pub const _FAULT_INFORMATION_ARM64_TYPE_AccessFlagFault: _FAULT_INFORMATION_ARM64_TYPE = 5;
24627pub const _FAULT_INFORMATION_ARM64_TYPE_TranslationFault: _FAULT_INFORMATION_ARM64_TYPE = 6;
24628pub const _FAULT_INFORMATION_ARM64_TYPE_MaxFaultType: _FAULT_INFORMATION_ARM64_TYPE = 7;
24629pub type _FAULT_INFORMATION_ARM64_TYPE = core::ffi::c_int;
24630pub use self::_FAULT_INFORMATION_ARM64_TYPE as FAULT_INFORMATION_ARM64_TYPE;
24631pub type PFAULT_INFORMATION_ARM64_TYPE = *mut _FAULT_INFORMATION_ARM64_TYPE;
24632pub use self::_FAULT_INFORMATION_ARM64_TYPE as FAULT_INFORMATION_X64_TYPE;
24633pub type PFAULT_INFORMATION_X64_TYPE = *mut _FAULT_INFORMATION_ARM64_TYPE;
24634#[repr(C)]
24635#[derive(Debug, Copy, Clone)]
24636pub struct _FAULT_INFORMATION_X64_FLAGS {
24637 pub _bitfield_align_1: [u32; 0],
24638 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
24639}
24640impl _FAULT_INFORMATION_X64_FLAGS {
24641 #[inline]
24642 pub fn FaultAddressValid(&self) -> ULONG {
24643 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
24644 }
24645 #[inline]
24646 pub fn set_FaultAddressValid(&mut self, val: ULONG) {
24647 unsafe {
24648 let val: u32 = ::core::mem::transmute(val);
24649 self._bitfield_1.set(0usize, 1u8, val as u64)
24650 }
24651 }
24652 #[inline]
24653 pub unsafe fn FaultAddressValid_raw(this: *const Self) -> ULONG {
24654 unsafe {
24655 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24656 ::core::ptr::addr_of!((*this)._bitfield_1),
24657 0usize,
24658 1u8,
24659 ) as u32)
24660 }
24661 }
24662 #[inline]
24663 pub unsafe fn set_FaultAddressValid_raw(this: *mut Self, val: ULONG) {
24664 unsafe {
24665 let val: u32 = ::core::mem::transmute(val);
24666 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24667 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24668 0usize,
24669 1u8,
24670 val as u64,
24671 )
24672 }
24673 }
24674 #[inline]
24675 pub fn Reserved(&self) -> ULONG {
24676 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
24677 }
24678 #[inline]
24679 pub fn set_Reserved(&mut self, val: ULONG) {
24680 unsafe {
24681 let val: u32 = ::core::mem::transmute(val);
24682 self._bitfield_1.set(1usize, 31u8, val as u64)
24683 }
24684 }
24685 #[inline]
24686 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
24687 unsafe {
24688 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24689 ::core::ptr::addr_of!((*this)._bitfield_1),
24690 1usize,
24691 31u8,
24692 ) as u32)
24693 }
24694 }
24695 #[inline]
24696 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
24697 unsafe {
24698 let val: u32 = ::core::mem::transmute(val);
24699 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24700 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24701 1usize,
24702 31u8,
24703 val as u64,
24704 )
24705 }
24706 }
24707 #[inline]
24708 pub fn new_bitfield_1(
24709 FaultAddressValid: ULONG,
24710 Reserved: ULONG,
24711 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
24712 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
24713 __bindgen_bitfield_unit.set(0usize, 1u8, {
24714 let FaultAddressValid: u32 = unsafe { ::core::mem::transmute(FaultAddressValid) };
24715 FaultAddressValid as u64
24716 });
24717 __bindgen_bitfield_unit.set(1usize, 31u8, {
24718 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
24719 Reserved as u64
24720 });
24721 __bindgen_bitfield_unit
24722 }
24723}
24724pub type FAULT_INFORMATION_X64_FLAGS = _FAULT_INFORMATION_X64_FLAGS;
24725pub type PFAULT_INFORMATION_X64_FLAGS = *mut _FAULT_INFORMATION_X64_FLAGS;
24726#[repr(C)]
24727#[derive(Debug, Copy, Clone)]
24728pub struct _FAULT_INFORMATION_ARM64_FLAGS {
24729 pub _bitfield_align_1: [u32; 0],
24730 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
24731}
24732impl _FAULT_INFORMATION_ARM64_FLAGS {
24733 #[inline]
24734 pub fn WriteNotRead(&self) -> ULONG {
24735 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
24736 }
24737 #[inline]
24738 pub fn set_WriteNotRead(&mut self, val: ULONG) {
24739 unsafe {
24740 let val: u32 = ::core::mem::transmute(val);
24741 self._bitfield_1.set(0usize, 1u8, val as u64)
24742 }
24743 }
24744 #[inline]
24745 pub unsafe fn WriteNotRead_raw(this: *const Self) -> ULONG {
24746 unsafe {
24747 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24748 ::core::ptr::addr_of!((*this)._bitfield_1),
24749 0usize,
24750 1u8,
24751 ) as u32)
24752 }
24753 }
24754 #[inline]
24755 pub unsafe fn set_WriteNotRead_raw(this: *mut Self, val: ULONG) {
24756 unsafe {
24757 let val: u32 = ::core::mem::transmute(val);
24758 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24759 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24760 0usize,
24761 1u8,
24762 val as u64,
24763 )
24764 }
24765 }
24766 #[inline]
24767 pub fn InstructionNotData(&self) -> ULONG {
24768 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
24769 }
24770 #[inline]
24771 pub fn set_InstructionNotData(&mut self, val: ULONG) {
24772 unsafe {
24773 let val: u32 = ::core::mem::transmute(val);
24774 self._bitfield_1.set(1usize, 1u8, val as u64)
24775 }
24776 }
24777 #[inline]
24778 pub unsafe fn InstructionNotData_raw(this: *const Self) -> ULONG {
24779 unsafe {
24780 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24781 ::core::ptr::addr_of!((*this)._bitfield_1),
24782 1usize,
24783 1u8,
24784 ) as u32)
24785 }
24786 }
24787 #[inline]
24788 pub unsafe fn set_InstructionNotData_raw(this: *mut Self, val: ULONG) {
24789 unsafe {
24790 let val: u32 = ::core::mem::transmute(val);
24791 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24792 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24793 1usize,
24794 1u8,
24795 val as u64,
24796 )
24797 }
24798 }
24799 #[inline]
24800 pub fn Privileged(&self) -> ULONG {
24801 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
24802 }
24803 #[inline]
24804 pub fn set_Privileged(&mut self, val: ULONG) {
24805 unsafe {
24806 let val: u32 = ::core::mem::transmute(val);
24807 self._bitfield_1.set(2usize, 1u8, val as u64)
24808 }
24809 }
24810 #[inline]
24811 pub unsafe fn Privileged_raw(this: *const Self) -> ULONG {
24812 unsafe {
24813 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24814 ::core::ptr::addr_of!((*this)._bitfield_1),
24815 2usize,
24816 1u8,
24817 ) as u32)
24818 }
24819 }
24820 #[inline]
24821 pub unsafe fn set_Privileged_raw(this: *mut Self, val: ULONG) {
24822 unsafe {
24823 let val: u32 = ::core::mem::transmute(val);
24824 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24825 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24826 2usize,
24827 1u8,
24828 val as u64,
24829 )
24830 }
24831 }
24832 #[inline]
24833 pub fn FaultAddressValid(&self) -> ULONG {
24834 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
24835 }
24836 #[inline]
24837 pub fn set_FaultAddressValid(&mut self, val: ULONG) {
24838 unsafe {
24839 let val: u32 = ::core::mem::transmute(val);
24840 self._bitfield_1.set(3usize, 1u8, val as u64)
24841 }
24842 }
24843 #[inline]
24844 pub unsafe fn FaultAddressValid_raw(this: *const Self) -> ULONG {
24845 unsafe {
24846 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24847 ::core::ptr::addr_of!((*this)._bitfield_1),
24848 3usize,
24849 1u8,
24850 ) as u32)
24851 }
24852 }
24853 #[inline]
24854 pub unsafe fn set_FaultAddressValid_raw(this: *mut Self, val: ULONG) {
24855 unsafe {
24856 let val: u32 = ::core::mem::transmute(val);
24857 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24858 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24859 3usize,
24860 1u8,
24861 val as u64,
24862 )
24863 }
24864 }
24865 #[inline]
24866 pub fn Reserved(&self) -> ULONG {
24867 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 28u8) as u32) }
24868 }
24869 #[inline]
24870 pub fn set_Reserved(&mut self, val: ULONG) {
24871 unsafe {
24872 let val: u32 = ::core::mem::transmute(val);
24873 self._bitfield_1.set(4usize, 28u8, val as u64)
24874 }
24875 }
24876 #[inline]
24877 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
24878 unsafe {
24879 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
24880 ::core::ptr::addr_of!((*this)._bitfield_1),
24881 4usize,
24882 28u8,
24883 ) as u32)
24884 }
24885 }
24886 #[inline]
24887 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
24888 unsafe {
24889 let val: u32 = ::core::mem::transmute(val);
24890 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
24891 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
24892 4usize,
24893 28u8,
24894 val as u64,
24895 )
24896 }
24897 }
24898 #[inline]
24899 pub fn new_bitfield_1(
24900 WriteNotRead: ULONG,
24901 InstructionNotData: ULONG,
24902 Privileged: ULONG,
24903 FaultAddressValid: ULONG,
24904 Reserved: ULONG,
24905 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
24906 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
24907 __bindgen_bitfield_unit.set(0usize, 1u8, {
24908 let WriteNotRead: u32 = unsafe { ::core::mem::transmute(WriteNotRead) };
24909 WriteNotRead as u64
24910 });
24911 __bindgen_bitfield_unit.set(1usize, 1u8, {
24912 let InstructionNotData: u32 = unsafe { ::core::mem::transmute(InstructionNotData) };
24913 InstructionNotData as u64
24914 });
24915 __bindgen_bitfield_unit.set(2usize, 1u8, {
24916 let Privileged: u32 = unsafe { ::core::mem::transmute(Privileged) };
24917 Privileged as u64
24918 });
24919 __bindgen_bitfield_unit.set(3usize, 1u8, {
24920 let FaultAddressValid: u32 = unsafe { ::core::mem::transmute(FaultAddressValid) };
24921 FaultAddressValid as u64
24922 });
24923 __bindgen_bitfield_unit.set(4usize, 28u8, {
24924 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
24925 Reserved as u64
24926 });
24927 __bindgen_bitfield_unit
24928 }
24929}
24930pub type FAULT_INFORMATION_ARM64_FLAGS = _FAULT_INFORMATION_ARM64_FLAGS;
24931pub type PFAULT_INFORMATION_ARM64_FLAGS = *mut _FAULT_INFORMATION_ARM64_FLAGS;
24932#[repr(C)]
24933#[derive(Debug, Copy, Clone)]
24934pub struct _FAULT_INFORMATION_X64 {
24935 pub DomainHandle: PVOID,
24936 pub FaultAddress: PVOID,
24937 pub Flags: FAULT_INFORMATION_X64_FLAGS,
24938 pub Type: FAULT_INFORMATION_X64_TYPE,
24939 pub IommuBaseAddress: ULONG64,
24940 pub PciSegment: ULONG,
24941}
24942pub type FAULT_INFORMATION_X64 = _FAULT_INFORMATION_X64;
24943pub type PFAULT_INFORMATION_X64 = *mut _FAULT_INFORMATION_X64;
24944#[repr(C)]
24945#[derive(Debug, Copy, Clone)]
24946pub struct _FAULT_INFORMATION_ARM64 {
24947 pub DomainHandle: PVOID,
24948 pub FaultAddress: PVOID,
24949 pub PhysicalDeviceObject: PDEVICE_OBJECT,
24950 pub InputMappingId: ULONG,
24951 pub Flags: FAULT_INFORMATION_ARM64_FLAGS,
24952 pub Type: FAULT_INFORMATION_ARM64_TYPE,
24953 pub IommuBaseAddress: ULONG64,
24954}
24955pub type FAULT_INFORMATION_ARM64 = _FAULT_INFORMATION_ARM64;
24956pub type PFAULT_INFORMATION_ARM64 = *mut _FAULT_INFORMATION_ARM64;
24957#[repr(C)]
24958#[derive(Copy, Clone)]
24959pub struct _FAULT_INFORMATION {
24960 pub Type: FAULT_INFORMATION_ARCH,
24961 pub IsStage1: BOOLEAN,
24962 pub __bindgen_anon_1: _FAULT_INFORMATION__bindgen_ty_1,
24963}
24964#[repr(C)]
24965#[derive(Copy, Clone)]
24966pub union _FAULT_INFORMATION__bindgen_ty_1 {
24967 pub Arm64: FAULT_INFORMATION_ARM64,
24968 pub X64: FAULT_INFORMATION_X64,
24969}
24970pub type FAULT_INFORMATION = _FAULT_INFORMATION;
24971pub type PFAULT_INFORMATION = *mut _FAULT_INFORMATION;
24972pub const _DOMAIN_CONFIGURATION_ARCH_DomainConfigurationArm64: _DOMAIN_CONFIGURATION_ARCH = 0;
24973pub const _DOMAIN_CONFIGURATION_ARCH_DomainConfigurationX64: _DOMAIN_CONFIGURATION_ARCH = 1;
24974pub const _DOMAIN_CONFIGURATION_ARCH_DomainConfigurationInvalid: _DOMAIN_CONFIGURATION_ARCH = 2;
24975pub type _DOMAIN_CONFIGURATION_ARCH = core::ffi::c_int;
24976pub use self::_DOMAIN_CONFIGURATION_ARCH as DOMAIN_CONFIGURATION_ARCH;
24977pub type PDOMAIN_CONFIGURATION_ARCH = *mut _DOMAIN_CONFIGURATION_ARCH;
24978#[repr(C)]
24979#[derive(Copy, Clone)]
24980pub struct _DOMAIN_CONFIGURATION_ARM64 {
24981 pub Ttbr0: PHYSICAL_ADDRESS,
24982 pub Ttbr1: PHYSICAL_ADDRESS,
24983 pub Mair0: ULONG,
24984 pub Mair1: ULONG,
24985 pub InputSize0: UCHAR,
24986 pub InputSize1: UCHAR,
24987 pub CoherentTableWalks: BOOLEAN,
24988 pub TranslationEnabled: BOOLEAN,
24989}
24990pub type DOMAIN_CONFIGURATION_ARM64 = _DOMAIN_CONFIGURATION_ARM64;
24991pub type PDOMAIN_CONFIGURATION_ARM64 = *mut _DOMAIN_CONFIGURATION_ARM64;
24992#[repr(C)]
24993#[derive(Copy, Clone)]
24994pub struct _DOMAIN_CONFIGURATION_X64 {
24995 pub FirstLevelPageTableRoot: PHYSICAL_ADDRESS,
24996 pub TranslationEnabled: BOOLEAN,
24997}
24998pub type DOMAIN_CONFIGURATION_X64 = _DOMAIN_CONFIGURATION_X64;
24999pub type PDOMAIN_CONFIGURATION_X64 = *mut _DOMAIN_CONFIGURATION_X64;
25000#[repr(C)]
25001#[derive(Copy, Clone)]
25002pub struct _DOMAIN_CONFIGURATION {
25003 pub Type: DOMAIN_CONFIGURATION_ARCH,
25004 pub __bindgen_anon_1: _DOMAIN_CONFIGURATION__bindgen_ty_1,
25005}
25006#[repr(C)]
25007#[derive(Copy, Clone)]
25008pub union _DOMAIN_CONFIGURATION__bindgen_ty_1 {
25009 pub Arm64: DOMAIN_CONFIGURATION_ARM64,
25010 pub X64: DOMAIN_CONFIGURATION_X64,
25011}
25012pub type DOMAIN_CONFIGURATION = _DOMAIN_CONFIGURATION;
25013pub type PDOMAIN_CONFIGURATION = *mut _DOMAIN_CONFIGURATION;
25014pub type IOMMU_DEVICE_FAULT_HANDLER = ::core::option::Option<
25015 unsafe extern "C" fn(Context: PVOID, FaultInformation: PFAULT_INFORMATION),
25016>;
25017pub type PIOMMU_DEVICE_FAULT_HANDLER = IOMMU_DEVICE_FAULT_HANDLER;
25018#[repr(C)]
25019#[derive(Debug, Copy, Clone)]
25020pub struct _DEVICE_FAULT_CONFIGURATION {
25021 pub FaultHandler: PIOMMU_DEVICE_FAULT_HANDLER,
25022 pub FaultContext: PVOID,
25023}
25024pub type DEVICE_FAULT_CONFIGURATION = _DEVICE_FAULT_CONFIGURATION;
25025pub type PDEVICE_FAULT_CONFIGURATION = *mut _DEVICE_FAULT_CONFIGURATION;
25026pub type IOMMU_DMA_LOGICAL_ADDRESS = ULONGLONG;
25027pub type PIOMMU_DMA_LOGICAL_ADDRESS = *mut ULONGLONG;
25028pub const _IOMMU_DMA_DOMAIN_TYPE_DomainTypeTranslate: _IOMMU_DMA_DOMAIN_TYPE = 0;
25029pub const _IOMMU_DMA_DOMAIN_TYPE_DomainTypePassThrough: _IOMMU_DMA_DOMAIN_TYPE = 1;
25030pub const _IOMMU_DMA_DOMAIN_TYPE_DomainTypeUnmanaged: _IOMMU_DMA_DOMAIN_TYPE = 2;
25031pub const _IOMMU_DMA_DOMAIN_TYPE_DomainTypeTranslateS1: _IOMMU_DMA_DOMAIN_TYPE = 3;
25032pub const _IOMMU_DMA_DOMAIN_TYPE_DomainTypeMax: _IOMMU_DMA_DOMAIN_TYPE = 4;
25033pub type _IOMMU_DMA_DOMAIN_TYPE = core::ffi::c_int;
25034pub use self::_IOMMU_DMA_DOMAIN_TYPE as IOMMU_DMA_DOMAIN_TYPE;
25035pub type PIOMMU_DMA_DOMAIN_TYPE = *mut _IOMMU_DMA_DOMAIN_TYPE;
25036#[repr(C)]
25037#[derive(Copy, Clone)]
25038pub union _IOMMU_DMA_DOMAIN_CREATION_FLAGS {
25039 pub __bindgen_anon_1: _IOMMU_DMA_DOMAIN_CREATION_FLAGS__bindgen_ty_1,
25040 pub AsUlonglong: ULONGLONG,
25041}
25042#[repr(C)]
25043#[derive(Debug, Copy, Clone)]
25044pub struct _IOMMU_DMA_DOMAIN_CREATION_FLAGS__bindgen_ty_1 {
25045 pub _bitfield_align_1: [u64; 0],
25046 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 8usize]>,
25047}
25048impl _IOMMU_DMA_DOMAIN_CREATION_FLAGS__bindgen_ty_1 {
25049 #[inline]
25050 pub fn Reserved(&self) -> ULONGLONG {
25051 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 64u8) as u64) }
25052 }
25053 #[inline]
25054 pub fn set_Reserved(&mut self, val: ULONGLONG) {
25055 unsafe {
25056 let val: u64 = ::core::mem::transmute(val);
25057 self._bitfield_1.set(0usize, 64u8, val as u64)
25058 }
25059 }
25060 #[inline]
25061 pub unsafe fn Reserved_raw(this: *const Self) -> ULONGLONG {
25062 unsafe {
25063 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 8usize]>>::raw_get(
25064 ::core::ptr::addr_of!((*this)._bitfield_1),
25065 0usize,
25066 64u8,
25067 ) as u64)
25068 }
25069 }
25070 #[inline]
25071 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONGLONG) {
25072 unsafe {
25073 let val: u64 = ::core::mem::transmute(val);
25074 <__BindgenBitfieldUnit<[u8; 8usize]>>::raw_set(
25075 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
25076 0usize,
25077 64u8,
25078 val as u64,
25079 )
25080 }
25081 }
25082 #[inline]
25083 pub fn new_bitfield_1(Reserved: ULONGLONG) -> __BindgenBitfieldUnit<[u8; 8usize]> {
25084 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 8usize]> = Default::default();
25085 __bindgen_bitfield_unit.set(0usize, 64u8, {
25086 let Reserved: u64 = unsafe { ::core::mem::transmute(Reserved) };
25087 Reserved as u64
25088 });
25089 __bindgen_bitfield_unit
25090 }
25091}
25092pub type IOMMU_DMA_DOMAIN_CREATION_FLAGS = _IOMMU_DMA_DOMAIN_CREATION_FLAGS;
25093pub type PIOMMU_DMA_DOMAIN_CREATION_FLAGS = *mut _IOMMU_DMA_DOMAIN_CREATION_FLAGS;
25094pub const _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE_IommuDeviceCreationConfigTypeNone:
25095_IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 0;
25096pub const _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE_IommuDeviceCreationConfigTypeAcpi:
25097_IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 1;
25098pub const _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE_IommuDeviceCreationConfigTypeDeviceId:
25099_IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 2;
25100pub const _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE_IommuDeviceCreationConfigTypeMax:
25101_IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = 3;
25102pub type _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = core::ffi::c_int;
25103pub use self::_IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE as IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE;
25104pub type PIOMMU_DEVICE_CREATION_CONFIGURATION_TYPE = *mut _IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE;
25105#[repr(C)]
25106#[derive(Debug, Copy, Clone)]
25107pub struct _IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI {
25108 pub InputMappingBase: UINT32,
25109 pub MappingsCount: UINT32,
25110}
25111pub type IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI = _IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI;
25112pub type PIOMMU_DEVICE_CREATION_CONFIGURATION_ACPI = *mut _IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI;
25113#[repr(C)]
25114#[derive(Copy, Clone)]
25115pub struct _IOMMU_DEVICE_CREATION_CONFIGURATION {
25116 pub NextConfiguration: LIST_ENTRY,
25117 pub ConfigType: IOMMU_DEVICE_CREATION_CONFIGURATION_TYPE,
25118 pub __bindgen_anon_1: _IOMMU_DEVICE_CREATION_CONFIGURATION__bindgen_ty_1,
25119}
25120#[repr(C)]
25121#[derive(Copy, Clone)]
25122pub union _IOMMU_DEVICE_CREATION_CONFIGURATION__bindgen_ty_1 {
25123 pub Acpi: IOMMU_DEVICE_CREATION_CONFIGURATION_ACPI,
25124 pub DeviceId: PVOID,
25125}
25126pub type IOMMU_DEVICE_CREATION_CONFIGURATION = _IOMMU_DEVICE_CREATION_CONFIGURATION;
25127pub type PIOMMU_DEVICE_CREATION_CONFIGURATION = *mut _IOMMU_DEVICE_CREATION_CONFIGURATION;
25128pub const _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE_MapPhysicalAddressTypeMdl:
25129_IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 0;
25130pub const _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE_MapPhysicalAddressTypeContiguousRange:
25131_IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 1;
25132pub const _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE_MapPhysicalAddressTypePfn:
25133_IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 2;
25134pub const _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE_MapPhysicalAddressTypeMax:
25135_IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = 3;
25136pub type _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE = core::ffi::c_int;
25137pub use self::_IOMMU_MAP_PHYSICAL_ADDRESS_TYPE as IOMMU_MAP_PHYSICAL_ADDRESS_TYPE;
25138pub type PIOMMU_MAP_PHYSICAL_ADDRESS_TYPE = *mut _IOMMU_MAP_PHYSICAL_ADDRESS_TYPE;
25139#[repr(C)]
25140#[derive(Copy, Clone)]
25141pub struct _IOMMU_MAP_PHYSICAL_ADDRESS {
25142 pub MapType: IOMMU_MAP_PHYSICAL_ADDRESS_TYPE,
25143 pub __bindgen_anon_1: _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1,
25144}
25145#[repr(C)]
25146#[derive(Copy, Clone)]
25147pub union _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1 {
25148 pub Mdl: _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_1,
25149 pub ContiguousRange: _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_2,
25150 pub PfnArray: _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_3,
25151}
25152#[repr(C)]
25153#[derive(Debug, Copy, Clone)]
25154pub struct _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_1 {
25155 pub Mdl: PMDL,
25156}
25157#[repr(C)]
25158#[derive(Copy, Clone)]
25159pub struct _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_2 {
25160 pub Base: PHYSICAL_ADDRESS,
25161 pub Size: SIZE_T,
25162}
25163#[repr(C)]
25164#[derive(Debug, Copy, Clone)]
25165pub struct _IOMMU_MAP_PHYSICAL_ADDRESS__bindgen_ty_1__bindgen_ty_3 {
25166 pub PageFrame: PPFN_NUMBER,
25167 pub NumberOfPages: SIZE_T,
25168}
25169pub type IOMMU_MAP_PHYSICAL_ADDRESS = _IOMMU_MAP_PHYSICAL_ADDRESS;
25170pub type PIOMMU_MAP_PHYSICAL_ADDRESS = *mut _IOMMU_MAP_PHYSICAL_ADDRESS;
25171#[repr(C)]
25172#[derive(Debug, Copy, Clone)]
25173pub struct _IOMMU_DMA_RESERVED_REGION {
25174 pub RegionNext: *mut _IOMMU_DMA_RESERVED_REGION,
25175 pub Base: IOMMU_DMA_LOGICAL_ADDRESS,
25176 pub NumberOfPages: SIZE_T,
25177 pub ShouldMap: BOOLEAN,
25178}
25179pub type IOMMU_DMA_RESERVED_REGION = _IOMMU_DMA_RESERVED_REGION;
25180pub type PIOMMU_DMA_RESERVED_REGION = *mut _IOMMU_DMA_RESERVED_REGION;
25181pub const _IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE_IommuDmaLogicalAllocatorNone:
25182_IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 0;
25183pub const _IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE_IommuDmaLogicalAllocatorBuddy:
25184_IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 1;
25185pub const _IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE_IommuDmaLogicalAllocatorMax:
25186_IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = 2;
25187pub type _IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = core::ffi::c_int;
25188pub use self::_IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE as IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE;
25189pub type PIOMMU_DMA_LOGICAL_ALLOCATOR_TYPE = *mut _IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE;
25190#[repr(C)]
25191#[derive(Copy, Clone)]
25192pub struct _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG {
25193 pub LogicalAllocatorType: IOMMU_DMA_LOGICAL_ALLOCATOR_TYPE,
25194 pub __bindgen_anon_1: _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG__bindgen_ty_1,
25195}
25196#[repr(C)]
25197#[derive(Copy, Clone)]
25198pub union _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG__bindgen_ty_1 {
25199 pub BuddyAllocatorConfig: _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG__bindgen_ty_1__bindgen_ty_1,
25200}
25201#[repr(C)]
25202#[derive(Debug, Copy, Clone)]
25203pub struct _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG__bindgen_ty_1__bindgen_ty_1 {
25204 pub AddressWidth: ULONG,
25205}
25206pub type IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG = _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG;
25207pub type PIOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG = *mut _IOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG;
25208#[repr(C)]
25209#[derive(Debug, Copy, Clone)]
25210pub struct _IOMMU_DMA_LOGICAL_ADDRESS_TOKEN {
25211 pub LogicalAddressBase: IOMMU_DMA_LOGICAL_ADDRESS,
25212 pub Size: SIZE_T,
25213}
25214pub type IOMMU_DMA_LOGICAL_ADDRESS_TOKEN = _IOMMU_DMA_LOGICAL_ADDRESS_TOKEN;
25215pub type PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN = *mut _IOMMU_DMA_LOGICAL_ADDRESS_TOKEN;
25216#[repr(C)]
25217#[derive(Debug, Copy, Clone)]
25218pub struct _IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT {
25219 pub OwningToken: PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN,
25220 pub Offset: SIZE_T,
25221 pub Size: SIZE_T,
25222}
25223pub type IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT =
25224_IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT;
25225pub type PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT =
25226*mut _IOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT;
25227#[repr(C)]
25228#[derive(Copy, Clone)]
25229pub union _IOMMU_INTERFACE_STATE_CHANGE_FIELDS {
25230 pub __bindgen_anon_1: _IOMMU_INTERFACE_STATE_CHANGE_FIELDS__bindgen_ty_1,
25231 pub AsULONG: ULONG,
25232}
25233#[repr(C)]
25234#[derive(Debug, Copy, Clone)]
25235pub struct _IOMMU_INTERFACE_STATE_CHANGE_FIELDS__bindgen_ty_1 {
25236 pub _bitfield_align_1: [u32; 0],
25237 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
25238}
25239impl _IOMMU_INTERFACE_STATE_CHANGE_FIELDS__bindgen_ty_1 {
25240 #[inline]
25241 pub fn AvailableDomainTypes(&self) -> ULONG {
25242 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
25243 }
25244 #[inline]
25245 pub fn set_AvailableDomainTypes(&mut self, val: ULONG) {
25246 unsafe {
25247 let val: u32 = ::core::mem::transmute(val);
25248 self._bitfield_1.set(0usize, 1u8, val as u64)
25249 }
25250 }
25251 #[inline]
25252 pub unsafe fn AvailableDomainTypes_raw(this: *const Self) -> ULONG {
25253 unsafe {
25254 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
25255 ::core::ptr::addr_of!((*this)._bitfield_1),
25256 0usize,
25257 1u8,
25258 ) as u32)
25259 }
25260 }
25261 #[inline]
25262 pub unsafe fn set_AvailableDomainTypes_raw(this: *mut Self, val: ULONG) {
25263 unsafe {
25264 let val: u32 = ::core::mem::transmute(val);
25265 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
25266 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
25267 0usize,
25268 1u8,
25269 val as u64,
25270 )
25271 }
25272 }
25273 #[inline]
25274 pub fn Reserved(&self) -> ULONG {
25275 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
25276 }
25277 #[inline]
25278 pub fn set_Reserved(&mut self, val: ULONG) {
25279 unsafe {
25280 let val: u32 = ::core::mem::transmute(val);
25281 self._bitfield_1.set(1usize, 31u8, val as u64)
25282 }
25283 }
25284 #[inline]
25285 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
25286 unsafe {
25287 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
25288 ::core::ptr::addr_of!((*this)._bitfield_1),
25289 1usize,
25290 31u8,
25291 ) as u32)
25292 }
25293 }
25294 #[inline]
25295 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
25296 unsafe {
25297 let val: u32 = ::core::mem::transmute(val);
25298 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
25299 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
25300 1usize,
25301 31u8,
25302 val as u64,
25303 )
25304 }
25305 }
25306 #[inline]
25307 pub fn new_bitfield_1(
25308 AvailableDomainTypes: ULONG,
25309 Reserved: ULONG,
25310 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
25311 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
25312 __bindgen_bitfield_unit.set(0usize, 1u8, {
25313 let AvailableDomainTypes: u32 = unsafe { ::core::mem::transmute(AvailableDomainTypes) };
25314 AvailableDomainTypes as u64
25315 });
25316 __bindgen_bitfield_unit.set(1usize, 31u8, {
25317 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
25318 Reserved as u64
25319 });
25320 __bindgen_bitfield_unit
25321 }
25322}
25323pub type IOMMU_INTERFACE_STATE_CHANGE_FIELDS = _IOMMU_INTERFACE_STATE_CHANGE_FIELDS;
25324pub type PIOMMU_INTERFACE_STATE_CHANGE_FIELDS = *mut _IOMMU_INTERFACE_STATE_CHANGE_FIELDS;
25325#[repr(C)]
25326#[derive(Copy, Clone)]
25327pub struct _IOMMU_INTERFACE_STATE_CHANGE {
25328 pub PresentFields: IOMMU_INTERFACE_STATE_CHANGE_FIELDS,
25329 pub AvailableDomainTypes: ULONG,
25330}
25331pub type IOMMU_INTERFACE_STATE_CHANGE = _IOMMU_INTERFACE_STATE_CHANGE;
25332pub type PIOMMU_INTERFACE_STATE_CHANGE = *mut _IOMMU_INTERFACE_STATE_CHANGE;
25333pub type IOMMU_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option<
25334 unsafe extern "C" fn(StateChange: PIOMMU_INTERFACE_STATE_CHANGE, Context: PVOID),
25335>;
25336pub type PIOMMU_INTERFACE_STATE_CHANGE_CALLBACK = IOMMU_INTERFACE_STATE_CHANGE_CALLBACK;
25337pub type IOMMU_DOMAIN_CREATE = ::core::option::Option<
25338 unsafe extern "C" fn(
25339 OsManagedPageTable: BOOLEAN,
25340 DomainOut: *mut PIOMMU_DMA_DOMAIN,
25341 ) -> NTSTATUS,
25342>;
25343pub type PIOMMU_DOMAIN_CREATE = IOMMU_DOMAIN_CREATE;
25344pub type IOMMU_DOMAIN_DELETE =
25345::core::option::Option<unsafe extern "C" fn(Domain: PIOMMU_DMA_DOMAIN) -> NTSTATUS>;
25346pub type PIOMMU_DOMAIN_DELETE = IOMMU_DOMAIN_DELETE;
25347pub type IOMMU_DOMAIN_ATTACH_DEVICE = ::core::option::Option<
25348 unsafe extern "C" fn(
25349 Domain: PIOMMU_DMA_DOMAIN,
25350 PhysicalDeviceObject: PDEVICE_OBJECT,
25351 InputMappingIdBase: ULONG,
25352 MappingCount: ULONG,
25353 ) -> NTSTATUS,
25354>;
25355pub type PIOMMU_DOMAIN_ATTACH_DEVICE = IOMMU_DOMAIN_ATTACH_DEVICE;
25356pub type IOMMU_DOMAIN_DETACH_DEVICE = ::core::option::Option<
25357 unsafe extern "C" fn(
25358 Domain: PIOMMU_DMA_DOMAIN,
25359 PhysicalDeviceObject: PDEVICE_OBJECT,
25360 InputMappingId: ULONG,
25361 ) -> NTSTATUS,
25362>;
25363pub type PIOMMU_DOMAIN_DETACH_DEVICE = IOMMU_DOMAIN_DETACH_DEVICE;
25364pub type IOMMU_SET_DEVICE_FAULT_REPORTING = ::core::option::Option<
25365 unsafe extern "C" fn(
25366 PhysicalDeviceObject: PDEVICE_OBJECT,
25367 InputMappingIdBase: ULONG,
25368 Enable: BOOLEAN,
25369 FaultConfig: PDEVICE_FAULT_CONFIGURATION,
25370 ) -> NTSTATUS,
25371>;
25372pub type PIOMMU_SET_DEVICE_FAULT_REPORTING = IOMMU_SET_DEVICE_FAULT_REPORTING;
25373pub type IOMMU_DOMAIN_CONFIGURE = ::core::option::Option<
25374 unsafe extern "C" fn(
25375 Domain: PIOMMU_DMA_DOMAIN,
25376 Configuration: PDOMAIN_CONFIGURATION,
25377 ) -> NTSTATUS,
25378>;
25379pub type PIOMMU_DOMAIN_CONFIGURE = IOMMU_DOMAIN_CONFIGURE;
25380pub type IOMMU_FLUSH_DOMAIN =
25381::core::option::Option<unsafe extern "C" fn(Domain: PIOMMU_DMA_DOMAIN) -> NTSTATUS>;
25382pub type PIOMMU_FLUSH_DOMAIN = IOMMU_FLUSH_DOMAIN;
25383pub type IOMMU_FLUSH_DOMAIN_VA_LIST = ::core::option::Option<
25384 unsafe extern "C" fn(
25385 Domain: PIOMMU_DMA_DOMAIN,
25386 LastLevel: BOOLEAN,
25387 Number: ULONG,
25388 VaList: PVOID,
25389 ) -> NTSTATUS,
25390>;
25391pub type PIOMMU_FLUSH_DOMAIN_VA_LIST = IOMMU_FLUSH_DOMAIN_VA_LIST;
25392#[repr(C)]
25393#[derive(Debug, Copy, Clone)]
25394pub struct _INPUT_MAPPING_ELEMENT {
25395 pub InputMappingId: ULONG,
25396}
25397pub type INPUT_MAPPING_ELEMENT = _INPUT_MAPPING_ELEMENT;
25398pub type PINPUT_MAPPING_ELEMENT = *mut _INPUT_MAPPING_ELEMENT;
25399pub type IOMMU_QUERY_INPUT_MAPPINGS = ::core::option::Option<
25400 unsafe extern "C" fn(
25401 PhysicalDeviceObject: PDEVICE_OBJECT,
25402 Buffer: PINPUT_MAPPING_ELEMENT,
25403 BufferLength: ULONG,
25404 ReturnLength: PULONG,
25405 ) -> NTSTATUS,
25406>;
25407pub type PIOMMU_QUERY_INPUT_MAPPINGS = IOMMU_QUERY_INPUT_MAPPINGS;
25408pub type IOMMU_MAP_LOGICAL_RANGE = ::core::option::Option<
25409 unsafe extern "C" fn(
25410 Domain: PIOMMU_DMA_DOMAIN,
25411 Permissions: ULONG,
25412 Mdl: PMDL,
25413 LogicalAddress: ULONGLONG,
25414 ) -> NTSTATUS,
25415>;
25416pub type PIOMMU_MAP_LOGICAL_RANGE = IOMMU_MAP_LOGICAL_RANGE;
25417pub type IOMMU_UNMAP_LOGICAL_RANGE = ::core::option::Option<
25418 unsafe extern "C" fn(
25419 Domain: PIOMMU_DMA_DOMAIN,
25420 LogicalAddress: ULONGLONG,
25421 NumberOfPages: ULONGLONG,
25422 ) -> NTSTATUS,
25423>;
25424pub type PIOMMU_UNMAP_LOGICAL_RANGE = IOMMU_UNMAP_LOGICAL_RANGE;
25425pub type IOMMU_MAP_IDENTITY_RANGE = ::core::option::Option<
25426 unsafe extern "C" fn(Domain: PIOMMU_DMA_DOMAIN, Permissions: ULONG, Mdl: PMDL) -> NTSTATUS,
25427>;
25428pub type PIOMMU_MAP_IDENTITY_RANGE = IOMMU_MAP_IDENTITY_RANGE;
25429pub type IOMMU_UNMAP_IDENTITY_RANGE =
25430::core::option::Option<unsafe extern "C" fn(Domain: PIOMMU_DMA_DOMAIN, Mdl: PMDL) -> NTSTATUS>;
25431pub type PIOMMU_UNMAP_IDENTITY_RANGE = IOMMU_UNMAP_IDENTITY_RANGE;
25432pub type IOMMU_DOMAIN_CREATE_EX = ::core::option::Option<
25433 unsafe extern "C" fn(
25434 DomainType: IOMMU_DMA_DOMAIN_TYPE,
25435 Flags: IOMMU_DMA_DOMAIN_CREATION_FLAGS,
25436 LogicalAllocatorConfig: PIOMMU_DMA_LOGICAL_ALLOCATOR_CONFIG,
25437 ReservedRegions: PIOMMU_DMA_RESERVED_REGION,
25438 DomainOut: *mut PIOMMU_DMA_DOMAIN,
25439 ) -> NTSTATUS,
25440>;
25441pub type PIOMMU_DOMAIN_CREATE_EX = IOMMU_DOMAIN_CREATE_EX;
25442pub type IOMMU_DOMAIN_ATTACH_DEVICE_EX = ::core::option::Option<
25443 unsafe extern "C" fn(Domain: PIOMMU_DMA_DOMAIN, DmaDevice: PIOMMU_DMA_DEVICE) -> NTSTATUS,
25444>;
25445pub type PIOMMU_DOMAIN_ATTACH_DEVICE_EX = IOMMU_DOMAIN_ATTACH_DEVICE_EX;
25446pub type IOMMU_DOMAIN_DETACH_DEVICE_EX =
25447::core::option::Option<unsafe extern "C" fn(DmaDevice: PIOMMU_DMA_DEVICE) -> NTSTATUS>;
25448pub type PIOMMU_DOMAIN_DETACH_DEVICE_EX = IOMMU_DOMAIN_DETACH_DEVICE_EX;
25449pub type IOMMU_MAP_LOGICAL_RANGE_EX = ::core::option::Option<
25450 unsafe extern "C" fn(
25451 Domain: PIOMMU_DMA_DOMAIN,
25452 Permissions: ULONG,
25453 PhysicalAddressToMap: PIOMMU_MAP_PHYSICAL_ADDRESS,
25454 ExplicitLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25455 MinLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25456 MaxLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25457 LogicalAddressOut: PIOMMU_DMA_LOGICAL_ADDRESS,
25458 ) -> NTSTATUS,
25459>;
25460pub type PIOMMU_MAP_LOGICAL_RANGE_EX = IOMMU_MAP_LOGICAL_RANGE_EX;
25461pub type IOMMU_MAP_IDENTITY_RANGE_EX = ::core::option::Option<
25462 unsafe extern "C" fn(
25463 Domain: PIOMMU_DMA_DOMAIN,
25464 Permissions: ULONG,
25465 PhysicalAddressToMap: PIOMMU_MAP_PHYSICAL_ADDRESS,
25466 ) -> NTSTATUS,
25467>;
25468pub type PIOMMU_MAP_IDENTITY_RANGE_EX = IOMMU_MAP_IDENTITY_RANGE_EX;
25469pub type IOMMU_UNMAP_IDENTITY_RANGE_EX = ::core::option::Option<
25470 unsafe extern "C" fn(
25471 Domain: PIOMMU_DMA_DOMAIN,
25472 MappedPhysicalAddress: PIOMMU_MAP_PHYSICAL_ADDRESS,
25473 ) -> NTSTATUS,
25474>;
25475pub type PIOMMU_UNMAP_IDENTITY_RANGE_EX = IOMMU_UNMAP_IDENTITY_RANGE_EX;
25476pub type IOMMU_DEVICE_QUERY_DOMAIN_TYPES = ::core::option::Option<
25477 unsafe extern "C" fn(DmaDevice: PIOMMU_DMA_DEVICE, AvailableDomains: PULONG),
25478>;
25479pub type PIOMMU_DEVICE_QUERY_DOMAIN_TYPES = IOMMU_DEVICE_QUERY_DOMAIN_TYPES;
25480pub type IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option<
25481 unsafe extern "C" fn(
25482 StateChangeCallback: PIOMMU_INTERFACE_STATE_CHANGE_CALLBACK,
25483 Context: PVOID,
25484 DmaDevice: PIOMMU_DMA_DEVICE,
25485 StateFields: PIOMMU_INTERFACE_STATE_CHANGE_FIELDS,
25486 ) -> NTSTATUS,
25487>;
25488pub type PIOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK =
25489IOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK;
25490pub type IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK = ::core::option::Option<
25491 unsafe extern "C" fn(
25492 StateChangeCallback: PIOMMU_INTERFACE_STATE_CHANGE_CALLBACK,
25493 DmaDevice: PIOMMU_DMA_DEVICE,
25494 ) -> NTSTATUS,
25495>;
25496pub type PIOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK =
25497IOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK;
25498pub type IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE = ::core::option::Option<
25499 unsafe extern "C" fn(
25500 Domain: PIOMMU_DMA_DOMAIN,
25501 Size: SIZE_T,
25502 ExplicitLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25503 MinLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25504 MaxLogicalAddress: PIOMMU_DMA_LOGICAL_ADDRESS,
25505 LogicalAddressToken: *mut PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN,
25506 ) -> NTSTATUS,
25507>;
25508pub type PIOMMU_RESERVE_LOGICAL_ADDRESS_RANGE = IOMMU_RESERVE_LOGICAL_ADDRESS_RANGE;
25509pub type IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE = ::core::option::Option<
25510 unsafe extern "C" fn(LogicalAddressToken: PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN) -> NTSTATUS,
25511>;
25512pub type PIOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE = IOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE;
25513pub type IOMMU_MAP_RESERVED_LOGICAL_RANGE = ::core::option::Option<
25514 unsafe extern "C" fn(
25515 LogicalAddressToken: PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN,
25516 Offset: SIZE_T,
25517 Permissions: ULONG,
25518 PhysicalAddressToMap: PIOMMU_MAP_PHYSICAL_ADDRESS,
25519 MappedSegment: PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT,
25520 ) -> NTSTATUS,
25521>;
25522pub type PIOMMU_MAP_RESERVED_LOGICAL_RANGE = IOMMU_MAP_RESERVED_LOGICAL_RANGE;
25523pub type IOMMU_UNMAP_RESERVED_LOGICAL_RANGE = ::core::option::Option<
25524 unsafe extern "C" fn(
25525 MappedSegment: PIOMMU_DMA_LOGICAL_ADDRESS_TOKEN_MAPPED_SEGMENT,
25526 ) -> NTSTATUS,
25527>;
25528pub type PIOMMU_UNMAP_RESERVED_LOGICAL_RANGE = IOMMU_UNMAP_RESERVED_LOGICAL_RANGE;
25529pub type IOMMU_DEVICE_CREATE = ::core::option::Option<
25530 unsafe extern "C" fn(
25531 DeviceObject: PDEVICE_OBJECT,
25532 DeviceConfig: PIOMMU_DEVICE_CREATION_CONFIGURATION,
25533 DmaDeviceOut: *mut PIOMMU_DMA_DEVICE,
25534 ) -> NTSTATUS,
25535>;
25536pub type PIOMMU_DEVICE_CREATE = IOMMU_DEVICE_CREATE;
25537pub type IOMMU_DEVICE_DELETE =
25538::core::option::Option<unsafe extern "C" fn(DmaDevice: PIOMMU_DMA_DEVICE) -> NTSTATUS>;
25539pub type PIOMMU_DEVICE_DELETE = IOMMU_DEVICE_DELETE;
25540pub type IOMMU_SET_DEVICE_FAULT_REPORTING_EX = ::core::option::Option<
25541 unsafe extern "C" fn(
25542 DmaDevice: PIOMMU_DMA_DEVICE,
25543 InputMappingIdBase: ULONG,
25544 Enable: BOOLEAN,
25545 FaultConfig: PDEVICE_FAULT_CONFIGURATION,
25546 ) -> NTSTATUS,
25547>;
25548pub type PIOMMU_SET_DEVICE_FAULT_REPORTING_EX = IOMMU_SET_DEVICE_FAULT_REPORTING_EX;
25549#[repr(C)]
25550#[derive(Debug, Copy, Clone)]
25551pub struct _DMA_IOMMU_INTERFACE {
25552 pub Version: ULONG,
25553 pub CreateDomain: PIOMMU_DOMAIN_CREATE,
25554 pub DeleteDomain: PIOMMU_DOMAIN_DELETE,
25555 pub AttachDevice: PIOMMU_DOMAIN_ATTACH_DEVICE,
25556 pub DetachDevice: PIOMMU_DOMAIN_DETACH_DEVICE,
25557 pub FlushDomain: PIOMMU_FLUSH_DOMAIN,
25558 pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST,
25559 pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS,
25560 pub MapLogicalRange: PIOMMU_MAP_LOGICAL_RANGE,
25561 pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE,
25562 pub MapIdentityRange: PIOMMU_MAP_IDENTITY_RANGE,
25563 pub UnmapIdentityRange: PIOMMU_UNMAP_IDENTITY_RANGE,
25564 pub SetDeviceFaultReporting: PIOMMU_SET_DEVICE_FAULT_REPORTING,
25565 pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE,
25566}
25567#[repr(C)]
25568#[derive(Debug, Copy, Clone)]
25569pub struct _DMA_IOMMU_INTERFACE_V1 {
25570 pub CreateDomain: PIOMMU_DOMAIN_CREATE,
25571 pub DeleteDomain: PIOMMU_DOMAIN_DELETE,
25572 pub AttachDevice: PIOMMU_DOMAIN_ATTACH_DEVICE,
25573 pub DetachDevice: PIOMMU_DOMAIN_DETACH_DEVICE,
25574 pub FlushDomain: PIOMMU_FLUSH_DOMAIN,
25575 pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST,
25576 pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS,
25577 pub MapLogicalRange: PIOMMU_MAP_LOGICAL_RANGE,
25578 pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE,
25579 pub MapIdentityRange: PIOMMU_MAP_IDENTITY_RANGE,
25580 pub UnmapIdentityRange: PIOMMU_UNMAP_IDENTITY_RANGE,
25581 pub SetDeviceFaultReporting: PIOMMU_SET_DEVICE_FAULT_REPORTING,
25582 pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE,
25583}
25584pub type DMA_IOMMU_INTERFACE_V1 = _DMA_IOMMU_INTERFACE_V1;
25585pub type PDMA_IOMMU_INTERFACE_V1 = *mut _DMA_IOMMU_INTERFACE_V1;
25586#[repr(C)]
25587#[derive(Debug, Copy, Clone)]
25588pub struct _DMA_IOMMU_INTERFACE_V2 {
25589 pub CreateDomainEx: PIOMMU_DOMAIN_CREATE_EX,
25590 pub DeleteDomain: PIOMMU_DOMAIN_DELETE,
25591 pub AttachDeviceEx: PIOMMU_DOMAIN_ATTACH_DEVICE_EX,
25592 pub DetachDeviceEx: PIOMMU_DOMAIN_DETACH_DEVICE_EX,
25593 pub FlushDomain: PIOMMU_FLUSH_DOMAIN,
25594 pub FlushDomainByVaList: PIOMMU_FLUSH_DOMAIN_VA_LIST,
25595 pub QueryInputMappings: PIOMMU_QUERY_INPUT_MAPPINGS,
25596 pub MapLogicalRangeEx: PIOMMU_MAP_LOGICAL_RANGE_EX,
25597 pub UnmapLogicalRange: PIOMMU_UNMAP_LOGICAL_RANGE,
25598 pub MapIdentityRangeEx: PIOMMU_MAP_IDENTITY_RANGE_EX,
25599 pub UnmapIdentityRangeEx: PIOMMU_UNMAP_IDENTITY_RANGE_EX,
25600 pub SetDeviceFaultReportingEx: PIOMMU_SET_DEVICE_FAULT_REPORTING_EX,
25601 pub ConfigureDomain: PIOMMU_DOMAIN_CONFIGURE,
25602 pub QueryAvailableDomainTypes: PIOMMU_DEVICE_QUERY_DOMAIN_TYPES,
25603 pub RegisterInterfaceStateChangeCallback: PIOMMU_REGISTER_INTERFACE_STATE_CHANGE_CALLBACK,
25604 pub UnregisterInterfaceStateChangeCallback: PIOMMU_UNREGISTER_INTERFACE_STATE_CHANGE_CALLBACK,
25605 pub ReserveLogicalAddressRange: PIOMMU_RESERVE_LOGICAL_ADDRESS_RANGE,
25606 pub FreeReservedLogicalAddressRange: PIOMMU_FREE_RESERVED_LOGICAL_ADDRESS_RANGE,
25607 pub MapReservedLogicalRange: PIOMMU_MAP_RESERVED_LOGICAL_RANGE,
25608 pub UnmapReservedLogicalRange: PIOMMU_UNMAP_RESERVED_LOGICAL_RANGE,
25609 pub CreateDevice: PIOMMU_DEVICE_CREATE,
25610 pub DeleteDevice: PIOMMU_DEVICE_DELETE,
25611}
25612pub type DMA_IOMMU_INTERFACE_V2 = _DMA_IOMMU_INTERFACE_V2;
25613pub type PDMA_IOMMU_INTERFACE_V2 = *mut _DMA_IOMMU_INTERFACE_V2;
25614#[repr(C)]
25615#[derive(Copy, Clone)]
25616pub struct _DMA_IOMMU_INTERFACE_EX {
25617 pub Size: SIZE_T,
25618 pub Version: ULONG,
25619 pub __bindgen_anon_1: _DMA_IOMMU_INTERFACE_EX__bindgen_ty_1,
25620}
25621#[repr(C)]
25622#[derive(Copy, Clone)]
25623pub union _DMA_IOMMU_INTERFACE_EX__bindgen_ty_1 {
25624 pub V1: DMA_IOMMU_INTERFACE_V1,
25625 pub V2: DMA_IOMMU_INTERFACE_V2,
25626}
25627unsafe extern "C" {
25628 pub fn PoSetHiberRange(
25629 MemoryMap: PVOID,
25630 Flags: ULONG,
25631 Address: PVOID,
25632 Length: ULONG_PTR,
25633 Tag: ULONG,
25634 );
25635}
25636unsafe extern "C" {
25637 pub fn PoSetSystemState(Flags: EXECUTION_STATE);
25638}
25639unsafe extern "C" {
25640 pub fn PoRegisterSystemState(StateHandle: PVOID, Flags: EXECUTION_STATE) -> PVOID;
25641}
25642unsafe extern "C" {
25643 pub fn PoCreatePowerRequest(
25644 PowerRequest: *mut PVOID,
25645 DeviceObject: PDEVICE_OBJECT,
25646 Context: PCOUNTED_REASON_CONTEXT,
25647 ) -> NTSTATUS;
25648}
25649unsafe extern "C" {
25650 pub fn PoSetPowerRequest(PowerRequest: PVOID, Type: POWER_REQUEST_TYPE) -> NTSTATUS;
25651}
25652unsafe extern "C" {
25653 pub fn PoClearPowerRequest(PowerRequest: PVOID, Type: POWER_REQUEST_TYPE) -> NTSTATUS;
25654}
25655unsafe extern "C" {
25656 pub fn PoDeletePowerRequest(PowerRequest: PVOID);
25657}
25658pub type REQUEST_POWER_COMPLETE = ::core::option::Option<
25659 unsafe extern "C" fn(
25660 DeviceObject: PDEVICE_OBJECT,
25661 MinorFunction: UCHAR,
25662 PowerState: POWER_STATE,
25663 Context: PVOID,
25664 IoStatus: PIO_STATUS_BLOCK,
25665 ),
25666>;
25667pub type PREQUEST_POWER_COMPLETE = REQUEST_POWER_COMPLETE;
25668unsafe extern "C" {
25669 pub fn PoRequestPowerIrp(
25670 DeviceObject: PDEVICE_OBJECT,
25671 MinorFunction: UCHAR,
25672 PowerState: POWER_STATE,
25673 CompletionFunction: PREQUEST_POWER_COMPLETE,
25674 Context: PVOID,
25675 Irp: *mut PIRP,
25676 ) -> NTSTATUS;
25677}
25678unsafe extern "C" {
25679 pub fn PoSetSystemWake(Irp: PIRP);
25680}
25681unsafe extern "C" {
25682 pub fn PoSetSystemWakeDevice(DeviceObject: PDEVICE_OBJECT);
25683}
25684unsafe extern "C" {
25685 pub fn PoGetSystemWake(Irp: PIRP) -> BOOLEAN;
25686}
25687unsafe extern "C" {
25688 pub fn PoUnregisterSystemState(StateHandle: PVOID);
25689}
25690unsafe extern "C" {
25691 pub fn PoSetPowerState(
25692 DeviceObject: PDEVICE_OBJECT,
25693 Type: POWER_STATE_TYPE,
25694 State: POWER_STATE,
25695 ) -> POWER_STATE;
25696}
25697unsafe extern "C" {
25698 pub fn PoCallDriver(DeviceObject: PDEVICE_OBJECT, Irp: PIRP) -> NTSTATUS;
25699}
25700unsafe extern "C" {
25701 pub fn PoStartNextPowerIrp(Irp: PIRP);
25702}
25703unsafe extern "C" {
25704 pub fn PoRegisterDeviceForIdleDetection(
25705 DeviceObject: PDEVICE_OBJECT,
25706 ConservationIdleTime: ULONG,
25707 PerformanceIdleTime: ULONG,
25708 State: DEVICE_POWER_STATE,
25709 ) -> PULONG;
25710}
25711unsafe extern "C" {
25712 pub fn PoSetDeviceBusyEx(IdlePointer: PULONG);
25713}
25714unsafe extern "C" {
25715 pub fn PoStartDeviceBusy(IdlePointer: PULONG);
25716}
25717unsafe extern "C" {
25718 pub fn PoEndDeviceBusy(IdlePointer: PULONG);
25719}
25720unsafe extern "C" {
25721 pub fn PoQueryWatchdogTime(Pdo: PDEVICE_OBJECT, SecondsRemaining: PULONG) -> BOOLEAN;
25722}
25723pub type POWER_SETTING_CALLBACK = ::core::option::Option<
25724 unsafe extern "C" fn(
25725 SettingGuid: LPCGUID,
25726 Value: PVOID,
25727 ValueLength: ULONG,
25728 Context: PVOID,
25729 ) -> NTSTATUS,
25730>;
25731pub type PPOWER_SETTING_CALLBACK = POWER_SETTING_CALLBACK;
25732unsafe extern "C" {
25733 pub fn PoRegisterPowerSettingCallback(
25734 DeviceObject: PDEVICE_OBJECT,
25735 SettingGuid: LPCGUID,
25736 Callback: PPOWER_SETTING_CALLBACK,
25737 Context: PVOID,
25738 Handle: *mut PVOID,
25739 ) -> NTSTATUS;
25740}
25741unsafe extern "C" {
25742 pub fn PoUnregisterPowerSettingCallback(Handle: PVOID) -> NTSTATUS;
25743}
25744#[repr(C)]
25745#[derive(Debug, Copy, Clone)]
25746pub struct POHANDLE__ {
25747 pub unused: core::ffi::c_int,
25748}
25749pub type POHANDLE = *mut POHANDLE__;
25750pub type PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK =
25751::core::option::Option<unsafe extern "C" fn(Context: PVOID, Component: ULONG)>;
25752pub type PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK = PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK;
25753pub type PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK =
25754::core::option::Option<unsafe extern "C" fn(Context: PVOID, Component: ULONG)>;
25755pub type PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK = PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK;
25756pub type PO_FX_COMPONENT_IDLE_STATE_CALLBACK =
25757::core::option::Option<unsafe extern "C" fn(Context: PVOID, Component: ULONG, State: ULONG)>;
25758pub type PPO_FX_COMPONENT_IDLE_STATE_CALLBACK = PO_FX_COMPONENT_IDLE_STATE_CALLBACK;
25759pub type PO_FX_DEVICE_POWER_REQUIRED_CALLBACK =
25760::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
25761pub type PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK = PO_FX_DEVICE_POWER_REQUIRED_CALLBACK;
25762pub type PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK =
25763::core::option::Option<unsafe extern "C" fn(Context: PVOID)>;
25764pub type PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK = PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK;
25765pub type PO_FX_POWER_CONTROL_CALLBACK = ::core::option::Option<
25766 unsafe extern "C" fn(
25767 DeviceContext: PVOID,
25768 PowerControlCode: LPCGUID,
25769 InBuffer: PVOID,
25770 InBufferSize: SIZE_T,
25771 OutBuffer: PVOID,
25772 OutBufferSize: SIZE_T,
25773 BytesReturned: PSIZE_T,
25774 ) -> NTSTATUS,
25775>;
25776pub type PPO_FX_POWER_CONTROL_CALLBACK = PO_FX_POWER_CONTROL_CALLBACK;
25777pub type PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK =
25778::core::option::Option<unsafe extern "C" fn(Context: PVOID, Component: ULONG, Active: BOOLEAN)>;
25779pub type PPO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK =
25780PO_FX_COMPONENT_CRITICAL_TRANSITION_CALLBACK;
25781#[repr(C)]
25782#[derive(Debug, Copy, Clone)]
25783pub struct _PO_FX_COMPONENT_IDLE_STATE {
25784 pub TransitionLatency: ULONGLONG,
25785 pub ResidencyRequirement: ULONGLONG,
25786 pub NominalPower: ULONG,
25787}
25788pub type PO_FX_COMPONENT_IDLE_STATE = _PO_FX_COMPONENT_IDLE_STATE;
25789pub type PPO_FX_COMPONENT_IDLE_STATE = *mut _PO_FX_COMPONENT_IDLE_STATE;
25790#[repr(C)]
25791#[derive(Debug, Copy, Clone)]
25792pub struct _PO_FX_COMPONENT_V1 {
25793 pub Id: GUID,
25794 pub IdleStateCount: ULONG,
25795 pub DeepestWakeableIdleState: ULONG,
25796 pub IdleStates: PPO_FX_COMPONENT_IDLE_STATE,
25797}
25798pub type PO_FX_COMPONENT_V1 = _PO_FX_COMPONENT_V1;
25799pub type PPO_FX_COMPONENT_V1 = *mut _PO_FX_COMPONENT_V1;
25800#[repr(C)]
25801#[derive(Debug, Copy, Clone)]
25802pub struct _PO_FX_DEVICE_V1 {
25803 pub Version: ULONG,
25804 pub ComponentCount: ULONG,
25805 pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK,
25806 pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK,
25807 pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK,
25808 pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK,
25809 pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK,
25810 pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK,
25811 pub DeviceContext: PVOID,
25812 pub Components: [PO_FX_COMPONENT_V1; 1usize],
25813}
25814pub type PO_FX_DEVICE_V1 = _PO_FX_DEVICE_V1;
25815pub type PPO_FX_DEVICE_V1 = *mut _PO_FX_DEVICE_V1;
25816#[repr(C)]
25817#[derive(Debug, Copy, Clone)]
25818pub struct _PO_FX_COMPONENT_V2 {
25819 pub Id: GUID,
25820 pub Flags: ULONGLONG,
25821 pub DeepestWakeableIdleState: ULONG,
25822 pub IdleStateCount: ULONG,
25823 pub IdleStates: PPO_FX_COMPONENT_IDLE_STATE,
25824 pub ProviderCount: ULONG,
25825 pub Providers: PULONG,
25826}
25827pub type PO_FX_COMPONENT_V2 = _PO_FX_COMPONENT_V2;
25828pub type PPO_FX_COMPONENT_V2 = *mut _PO_FX_COMPONENT_V2;
25829#[repr(C)]
25830#[derive(Debug, Copy, Clone)]
25831pub struct _PO_FX_DEVICE_V2 {
25832 pub Version: ULONG,
25833 pub Flags: ULONGLONG,
25834 pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK,
25835 pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK,
25836 pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK,
25837 pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK,
25838 pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK,
25839 pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK,
25840 pub DeviceContext: PVOID,
25841 pub ComponentCount: ULONG,
25842 pub Components: [PO_FX_COMPONENT_V2; 1usize],
25843}
25844pub type PO_FX_DEVICE_V2 = _PO_FX_DEVICE_V2;
25845pub type PPO_FX_DEVICE_V2 = *mut _PO_FX_DEVICE_V2;
25846pub type PO_FX_DIRECTED_POWER_UP_CALLBACK =
25847::core::option::Option<unsafe extern "C" fn(Context: PVOID, Flags: ULONG)>;
25848pub type PPO_FX_DIRECTED_POWER_UP_CALLBACK = PO_FX_DIRECTED_POWER_UP_CALLBACK;
25849pub type PO_FX_DIRECTED_POWER_DOWN_CALLBACK =
25850::core::option::Option<unsafe extern "C" fn(Context: PVOID, Flags: ULONG)>;
25851pub type PPO_FX_DIRECTED_POWER_DOWN_CALLBACK = PO_FX_DIRECTED_POWER_DOWN_CALLBACK;
25852#[repr(C)]
25853#[derive(Debug, Copy, Clone)]
25854pub struct _PO_FX_DEVICE_V3 {
25855 pub Version: ULONG,
25856 pub Flags: ULONGLONG,
25857 pub ComponentActiveConditionCallback: PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK,
25858 pub ComponentIdleConditionCallback: PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK,
25859 pub ComponentIdleStateCallback: PPO_FX_COMPONENT_IDLE_STATE_CALLBACK,
25860 pub DevicePowerRequiredCallback: PPO_FX_DEVICE_POWER_REQUIRED_CALLBACK,
25861 pub DevicePowerNotRequiredCallback: PPO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK,
25862 pub PowerControlCallback: PPO_FX_POWER_CONTROL_CALLBACK,
25863 pub DirectedPowerUpCallback: PPO_FX_DIRECTED_POWER_UP_CALLBACK,
25864 pub DirectedPowerDownCallback: PPO_FX_DIRECTED_POWER_DOWN_CALLBACK,
25865 pub DirectedFxTimeoutInSeconds: ULONG,
25866 pub DeviceContext: PVOID,
25867 pub ComponentCount: ULONG,
25868 pub Components: [PO_FX_COMPONENT_V2; 1usize],
25869}
25870pub type PO_FX_DEVICE_V3 = _PO_FX_DEVICE_V3;
25871pub type PPO_FX_DEVICE_V3 = *mut _PO_FX_DEVICE_V3;
25872pub type PO_FX_COMPONENT = PO_FX_COMPONENT_V1;
25873pub type PPO_FX_COMPONENT = *mut PO_FX_COMPONENT_V1;
25874pub type PO_FX_DEVICE = PO_FX_DEVICE_V1;
25875pub type PPO_FX_DEVICE = *mut PO_FX_DEVICE_V1;
25876pub const _PO_FX_PERF_STATE_UNIT_PoFxPerfStateUnitOther: _PO_FX_PERF_STATE_UNIT = 0;
25877pub const _PO_FX_PERF_STATE_UNIT_PoFxPerfStateUnitFrequency: _PO_FX_PERF_STATE_UNIT = 1;
25878pub const _PO_FX_PERF_STATE_UNIT_PoFxPerfStateUnitBandwidth: _PO_FX_PERF_STATE_UNIT = 2;
25879pub const _PO_FX_PERF_STATE_UNIT_PoFxPerfStateUnitMaximum: _PO_FX_PERF_STATE_UNIT = 3;
25880pub type _PO_FX_PERF_STATE_UNIT = core::ffi::c_int;
25881pub use self::_PO_FX_PERF_STATE_UNIT as PO_FX_PERF_STATE_UNIT;
25882pub type PPO_FX_PERF_STATE_UNIT = *mut _PO_FX_PERF_STATE_UNIT;
25883pub const _PO_FX_PERF_STATE_TYPE_PoFxPerfStateTypeDiscrete: _PO_FX_PERF_STATE_TYPE = 0;
25884pub const _PO_FX_PERF_STATE_TYPE_PoFxPerfStateTypeRange: _PO_FX_PERF_STATE_TYPE = 1;
25885pub const _PO_FX_PERF_STATE_TYPE_PoFxPerfStateTypeMaximum: _PO_FX_PERF_STATE_TYPE = 2;
25886pub type _PO_FX_PERF_STATE_TYPE = core::ffi::c_int;
25887pub use self::_PO_FX_PERF_STATE_TYPE as PO_FX_PERF_STATE_TYPE;
25888pub type PPO_FX_PERF_STATE_TYPE = *mut _PO_FX_PERF_STATE_TYPE;
25889#[repr(C)]
25890#[derive(Debug, Copy, Clone)]
25891pub struct _PO_FX_PERF_STATE {
25892 pub Value: ULONGLONG,
25893 pub Context: PVOID,
25894}
25895pub type PO_FX_PERF_STATE = _PO_FX_PERF_STATE;
25896pub type PPO_FX_PERF_STATE = *mut _PO_FX_PERF_STATE;
25897#[repr(C)]
25898#[derive(Copy, Clone)]
25899pub struct _PO_FX_COMPONENT_PERF_SET {
25900 pub Name: UNICODE_STRING,
25901 pub Flags: ULONGLONG,
25902 pub Unit: PO_FX_PERF_STATE_UNIT,
25903 pub Type: PO_FX_PERF_STATE_TYPE,
25904 pub __bindgen_anon_1: _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1,
25905}
25906#[repr(C)]
25907#[derive(Copy, Clone)]
25908pub union _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1 {
25909 pub Discrete: _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1__bindgen_ty_1,
25910 pub Range: _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1__bindgen_ty_2,
25911}
25912#[repr(C)]
25913#[derive(Debug, Copy, Clone)]
25914pub struct _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1__bindgen_ty_1 {
25915 pub Count: ULONG,
25916 pub States: PPO_FX_PERF_STATE,
25917}
25918#[repr(C)]
25919#[derive(Debug, Copy, Clone)]
25920pub struct _PO_FX_COMPONENT_PERF_SET__bindgen_ty_1__bindgen_ty_2 {
25921 pub Minimum: ULONGLONG,
25922 pub Maximum: ULONGLONG,
25923}
25924pub type PO_FX_COMPONENT_PERF_SET = _PO_FX_COMPONENT_PERF_SET;
25925pub type PPO_FX_COMPONENT_PERF_SET = *mut _PO_FX_COMPONENT_PERF_SET;
25926#[repr(C)]
25927#[derive(Copy, Clone)]
25928pub struct _PO_FX_COMPONENT_PERF_INFO {
25929 pub PerfStateSetsCount: ULONG,
25930 pub PerfStateSets: [PO_FX_COMPONENT_PERF_SET; 1usize],
25931}
25932pub type PO_FX_COMPONENT_PERF_INFO = _PO_FX_COMPONENT_PERF_INFO;
25933pub type PPO_FX_COMPONENT_PERF_INFO = *mut _PO_FX_COMPONENT_PERF_INFO;
25934#[repr(C)]
25935#[derive(Copy, Clone)]
25936pub struct _PO_FX_PERF_STATE_CHANGE {
25937 pub Set: ULONG,
25938 pub __bindgen_anon_1: _PO_FX_PERF_STATE_CHANGE__bindgen_ty_1,
25939}
25940#[repr(C)]
25941#[derive(Copy, Clone)]
25942pub union _PO_FX_PERF_STATE_CHANGE__bindgen_ty_1 {
25943 pub StateIndex: ULONG,
25944 pub StateValue: ULONGLONG,
25945}
25946pub type PO_FX_PERF_STATE_CHANGE = _PO_FX_PERF_STATE_CHANGE;
25947pub type PPO_FX_PERF_STATE_CHANGE = *mut _PO_FX_PERF_STATE_CHANGE;
25948unsafe extern "C" {
25949 pub fn PoFxRegisterDevice(
25950 Pdo: PDEVICE_OBJECT,
25951 Device: PPO_FX_DEVICE,
25952 Handle: *mut POHANDLE,
25953 ) -> NTSTATUS;
25954}
25955unsafe extern "C" {
25956 pub fn PoFxStartDevicePowerManagement(Handle: POHANDLE);
25957}
25958unsafe extern "C" {
25959 pub fn PoFxUnregisterDevice(Handle: POHANDLE);
25960}
25961unsafe extern "C" {
25962 pub fn PoFxRegisterCrashdumpDevice(Handle: POHANDLE) -> NTSTATUS;
25963}
25964unsafe extern "C" {
25965 pub fn PoFxPowerOnCrashdumpDevice(Handle: POHANDLE, Context: PVOID) -> NTSTATUS;
25966}
25967unsafe extern "C" {
25968 pub fn PoFxActivateComponent(Handle: POHANDLE, Component: ULONG, Flags: ULONG);
25969}
25970unsafe extern "C" {
25971 pub fn PoFxCompleteDevicePowerNotRequired(Handle: POHANDLE);
25972}
25973unsafe extern "C" {
25974 pub fn PoFxCompleteIdleCondition(Handle: POHANDLE, Component: ULONG);
25975}
25976unsafe extern "C" {
25977 pub fn PoFxCompleteIdleState(Handle: POHANDLE, Component: ULONG);
25978}
25979unsafe extern "C" {
25980 pub fn PoFxIdleComponent(Handle: POHANDLE, Component: ULONG, Flags: ULONG);
25981}
25982unsafe extern "C" {
25983 pub fn PoFxSetComponentLatency(Handle: POHANDLE, Component: ULONG, Latency: ULONGLONG);
25984}
25985unsafe extern "C" {
25986 pub fn PoFxSetComponentResidency(Handle: POHANDLE, Component: ULONG, Residency: ULONGLONG);
25987}
25988unsafe extern "C" {
25989 pub fn PoFxSetComponentWake(Handle: POHANDLE, Component: ULONG, WakeHint: BOOLEAN);
25990}
25991unsafe extern "C" {
25992 pub fn PoFxSetDeviceIdleTimeout(Handle: POHANDLE, IdleTimeout: ULONGLONG);
25993}
25994unsafe extern "C" {
25995 pub fn PoFxReportDevicePoweredOn(Handle: POHANDLE);
25996}
25997unsafe extern "C" {
25998 pub fn PoFxPowerControl(
25999 Handle: POHANDLE,
26000 PowerControlCode: LPCGUID,
26001 InBuffer: PVOID,
26002 InBufferSize: SIZE_T,
26003 OutBuffer: PVOID,
26004 OutBufferSize: SIZE_T,
26005 BytesReturned: PSIZE_T,
26006 ) -> NTSTATUS;
26007}
26008unsafe extern "C" {
26009 pub fn PoFxNotifySurprisePowerOn(Pdo: PDEVICE_OBJECT);
26010}
26011pub type PO_FX_COMPONENT_PERF_STATE_CALLBACK = ::core::option::Option<
26012 unsafe extern "C" fn(
26013 Context: PVOID,
26014 Component: ULONG,
26015 Succeeded: BOOLEAN,
26016 RequestContext: PVOID,
26017 ),
26018>;
26019pub type PPO_FX_COMPONENT_PERF_STATE_CALLBACK = PO_FX_COMPONENT_PERF_STATE_CALLBACK;
26020unsafe extern "C" {
26021 pub fn PoFxRegisterComponentPerfStates(
26022 Handle: POHANDLE,
26023 Component: ULONG,
26024 Flags: ULONGLONG,
26025 ComponentPerfStateCallback: PPO_FX_COMPONENT_PERF_STATE_CALLBACK,
26026 InputStateInfo: PPO_FX_COMPONENT_PERF_INFO,
26027 OutputStateInfo: *mut PPO_FX_COMPONENT_PERF_INFO,
26028 ) -> NTSTATUS;
26029}
26030unsafe extern "C" {
26031 pub fn PoFxIssueComponentPerfStateChange(
26032 Handle: POHANDLE,
26033 Flags: ULONG,
26034 Component: ULONG,
26035 PerfChange: PPO_FX_PERF_STATE_CHANGE,
26036 Context: PVOID,
26037 );
26038}
26039unsafe extern "C" {
26040 pub fn PoFxIssueComponentPerfStateChangeMultiple(
26041 Handle: POHANDLE,
26042 Flags: ULONG,
26043 Component: ULONG,
26044 PerfChangesCount: ULONG,
26045 PerfChanges: *mut PO_FX_PERF_STATE_CHANGE,
26046 Context: PVOID,
26047 );
26048}
26049unsafe extern "C" {
26050 pub fn PoFxQueryCurrentComponentPerfState(
26051 Handle: POHANDLE,
26052 Flags: ULONG,
26053 Component: ULONG,
26054 SetIndex: ULONG,
26055 CurrentPerf: PULONGLONG,
26056 ) -> NTSTATUS;
26057}
26058unsafe extern "C" {
26059 pub fn PoFxSetTargetDripsDevicePowerState(
26060 Handle: POHANDLE,
26061 TargetState: DEVICE_POWER_STATE,
26062 ) -> NTSTATUS;
26063}
26064unsafe extern "C" {
26065 pub fn PoFxCompleteDirectedPowerDown(Handle: POHANDLE);
26066}
26067unsafe extern "C" {
26068 pub fn PoCreateThermalRequest(
26069 ThermalRequest: *mut PVOID,
26070 TargetDeviceObject: PDEVICE_OBJECT,
26071 PolicyDeviceObject: PDEVICE_OBJECT,
26072 Context: PCOUNTED_REASON_CONTEXT,
26073 Flags: ULONG,
26074 ) -> NTSTATUS;
26075}
26076pub const _PO_THERMAL_REQUEST_TYPE_PoThermalRequestPassive: _PO_THERMAL_REQUEST_TYPE = 0;
26077pub const _PO_THERMAL_REQUEST_TYPE_PoThermalRequestActive: _PO_THERMAL_REQUEST_TYPE = 1;
26078pub type _PO_THERMAL_REQUEST_TYPE = core::ffi::c_int;
26079pub use self::_PO_THERMAL_REQUEST_TYPE as PO_THERMAL_REQUEST_TYPE;
26080pub type PPO_THERMAL_REQUEST_TYPE = *mut _PO_THERMAL_REQUEST_TYPE;
26081unsafe extern "C" {
26082 pub fn PoGetThermalRequestSupport(
26083 ThermalRequest: PVOID,
26084 Type: PO_THERMAL_REQUEST_TYPE,
26085 ) -> BOOLEAN;
26086}
26087unsafe extern "C" {
26088 pub fn PoSetThermalPassiveCooling(ThermalRequest: PVOID, Throttle: UCHAR) -> NTSTATUS;
26089}
26090unsafe extern "C" {
26091 pub fn PoSetThermalActiveCooling(ThermalRequest: PVOID, Engaged: BOOLEAN) -> NTSTATUS;
26092}
26093unsafe extern "C" {
26094 pub fn PoDeleteThermalRequest(ThermalRequest: PVOID);
26095}
26096pub type PO_FX_DRIPS_WATCHDOG_CALLBACK = ::core::option::Option<
26097 unsafe extern "C" fn(Context: PVOID, PhysicalDeviceObject: PDEVICE_OBJECT, UniqueId: ULONG),
26098>;
26099pub type PPO_FX_DRIPS_WATCHDOG_CALLBACK = PO_FX_DRIPS_WATCHDOG_CALLBACK;
26100unsafe extern "C" {
26101 pub fn PoFxRegisterDripsWatchdogCallback(
26102 Handle: POHANDLE,
26103 Callback: PPO_FX_DRIPS_WATCHDOG_CALLBACK,
26104 IncludeChildDevices: BOOLEAN,
26105 MatchingDriverObject: PDRIVER_OBJECT,
26106 );
26107}
26108#[repr(C)]
26109#[derive(Debug, Copy, Clone)]
26110pub struct _OBJECT_HANDLE_INFORMATION {
26111 pub HandleAttributes: ULONG,
26112 pub GrantedAccess: ACCESS_MASK,
26113}
26114pub type OBJECT_HANDLE_INFORMATION = _OBJECT_HANDLE_INFORMATION;
26115pub type POBJECT_HANDLE_INFORMATION = *mut _OBJECT_HANDLE_INFORMATION;
26116unsafe extern "C" {
26117 pub fn ObReferenceObjectByHandle(
26118 Handle: HANDLE,
26119 DesiredAccess: ACCESS_MASK,
26120 ObjectType: POBJECT_TYPE,
26121 AccessMode: KPROCESSOR_MODE,
26122 Object: *mut PVOID,
26123 HandleInformation: POBJECT_HANDLE_INFORMATION,
26124 ) -> NTSTATUS;
26125}
26126unsafe extern "C" {
26127 pub fn ObReferenceObjectByHandleWithTag(
26128 Handle: HANDLE,
26129 DesiredAccess: ACCESS_MASK,
26130 ObjectType: POBJECT_TYPE,
26131 AccessMode: KPROCESSOR_MODE,
26132 Tag: ULONG,
26133 Object: *mut PVOID,
26134 HandleInformation: POBJECT_HANDLE_INFORMATION,
26135 ) -> NTSTATUS;
26136}
26137unsafe extern "C" {
26138 pub fn ObReferenceObjectSafe(Object: PVOID) -> BOOLEAN;
26139}
26140unsafe extern "C" {
26141 pub fn ObReferenceObjectSafeWithTag(Object: PVOID, Tag: ULONG) -> BOOLEAN;
26142}
26143unsafe extern "C" {
26144 pub fn ObCloseHandle(Handle: HANDLE, PreviousMode: KPROCESSOR_MODE) -> NTSTATUS;
26145}
26146unsafe extern "C" {
26147 pub fn ObfReferenceObject(Object: PVOID) -> LONG_PTR;
26148}
26149unsafe extern "C" {
26150 pub fn ObfReferenceObjectWithTag(Object: PVOID, Tag: ULONG) -> LONG_PTR;
26151}
26152unsafe extern "C" {
26153 pub fn ObReferenceObjectByPointer(
26154 Object: PVOID,
26155 DesiredAccess: ACCESS_MASK,
26156 ObjectType: POBJECT_TYPE,
26157 AccessMode: KPROCESSOR_MODE,
26158 ) -> NTSTATUS;
26159}
26160unsafe extern "C" {
26161 pub fn ObReferenceObjectByPointerWithTag(
26162 Object: PVOID,
26163 DesiredAccess: ACCESS_MASK,
26164 ObjectType: POBJECT_TYPE,
26165 AccessMode: KPROCESSOR_MODE,
26166 Tag: ULONG,
26167 ) -> NTSTATUS;
26168}
26169unsafe extern "C" {
26170 pub fn ObfDereferenceObject(Object: PVOID) -> LONG_PTR;
26171}
26172unsafe extern "C" {
26173 pub fn ObfDereferenceObjectWithTag(Object: PVOID, Tag: ULONG) -> LONG_PTR;
26174}
26175unsafe extern "C" {
26176 pub fn ObDereferenceObjectDeferDelete(Object: PVOID);
26177}
26178unsafe extern "C" {
26179 pub fn ObDereferenceObjectDeferDeleteWithTag(Object: PVOID, Tag: ULONG);
26180}
26181unsafe extern "C" {
26182 pub fn ObGetObjectSecurity(
26183 Object: PVOID,
26184 SecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
26185 MemoryAllocated: PBOOLEAN,
26186 ) -> NTSTATUS;
26187}
26188unsafe extern "C" {
26189 pub fn ObReleaseObjectSecurity(
26190 SecurityDescriptor: PSECURITY_DESCRIPTOR,
26191 MemoryAllocated: BOOLEAN,
26192 );
26193}
26194pub type OB_OPERATION = ULONG;
26195#[repr(C)]
26196#[derive(Debug, Copy, Clone)]
26197pub struct _OB_PRE_CREATE_HANDLE_INFORMATION {
26198 pub DesiredAccess: ACCESS_MASK,
26199 pub OriginalDesiredAccess: ACCESS_MASK,
26200}
26201pub type OB_PRE_CREATE_HANDLE_INFORMATION = _OB_PRE_CREATE_HANDLE_INFORMATION;
26202pub type POB_PRE_CREATE_HANDLE_INFORMATION = *mut _OB_PRE_CREATE_HANDLE_INFORMATION;
26203#[repr(C)]
26204#[derive(Debug, Copy, Clone)]
26205pub struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION {
26206 pub DesiredAccess: ACCESS_MASK,
26207 pub OriginalDesiredAccess: ACCESS_MASK,
26208 pub SourceProcess: PVOID,
26209 pub TargetProcess: PVOID,
26210}
26211pub type OB_PRE_DUPLICATE_HANDLE_INFORMATION = _OB_PRE_DUPLICATE_HANDLE_INFORMATION;
26212pub type POB_PRE_DUPLICATE_HANDLE_INFORMATION = *mut _OB_PRE_DUPLICATE_HANDLE_INFORMATION;
26213#[repr(C)]
26214#[derive(Copy, Clone)]
26215pub union _OB_PRE_OPERATION_PARAMETERS {
26216 pub CreateHandleInformation: OB_PRE_CREATE_HANDLE_INFORMATION,
26217 pub DuplicateHandleInformation: OB_PRE_DUPLICATE_HANDLE_INFORMATION,
26218}
26219pub type OB_PRE_OPERATION_PARAMETERS = _OB_PRE_OPERATION_PARAMETERS;
26220pub type POB_PRE_OPERATION_PARAMETERS = *mut _OB_PRE_OPERATION_PARAMETERS;
26221#[repr(C)]
26222#[derive(Copy, Clone)]
26223pub struct _OB_PRE_OPERATION_INFORMATION {
26224 pub Operation: OB_OPERATION,
26225 pub __bindgen_anon_1: _OB_PRE_OPERATION_INFORMATION__bindgen_ty_1,
26226 pub Object: PVOID,
26227 pub ObjectType: POBJECT_TYPE,
26228 pub CallContext: PVOID,
26229 pub Parameters: POB_PRE_OPERATION_PARAMETERS,
26230}
26231#[repr(C)]
26232#[derive(Copy, Clone)]
26233pub union _OB_PRE_OPERATION_INFORMATION__bindgen_ty_1 {
26234 pub Flags: ULONG,
26235 pub __bindgen_anon_1: _OB_PRE_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1,
26236}
26237#[repr(C)]
26238#[derive(Debug, Copy, Clone)]
26239pub struct _OB_PRE_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
26240 pub _bitfield_align_1: [u32; 0],
26241 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
26242}
26243impl _OB_PRE_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
26244 #[inline]
26245 pub fn KernelHandle(&self) -> ULONG {
26246 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
26247 }
26248 #[inline]
26249 pub fn set_KernelHandle(&mut self, val: ULONG) {
26250 unsafe {
26251 let val: u32 = ::core::mem::transmute(val);
26252 self._bitfield_1.set(0usize, 1u8, val as u64)
26253 }
26254 }
26255 #[inline]
26256 pub unsafe fn KernelHandle_raw(this: *const Self) -> ULONG {
26257 unsafe {
26258 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26259 ::core::ptr::addr_of!((*this)._bitfield_1),
26260 0usize,
26261 1u8,
26262 ) as u32)
26263 }
26264 }
26265 #[inline]
26266 pub unsafe fn set_KernelHandle_raw(this: *mut Self, val: ULONG) {
26267 unsafe {
26268 let val: u32 = ::core::mem::transmute(val);
26269 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26270 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26271 0usize,
26272 1u8,
26273 val as u64,
26274 )
26275 }
26276 }
26277 #[inline]
26278 pub fn Reserved(&self) -> ULONG {
26279 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
26280 }
26281 #[inline]
26282 pub fn set_Reserved(&mut self, val: ULONG) {
26283 unsafe {
26284 let val: u32 = ::core::mem::transmute(val);
26285 self._bitfield_1.set(1usize, 31u8, val as u64)
26286 }
26287 }
26288 #[inline]
26289 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
26290 unsafe {
26291 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26292 ::core::ptr::addr_of!((*this)._bitfield_1),
26293 1usize,
26294 31u8,
26295 ) as u32)
26296 }
26297 }
26298 #[inline]
26299 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
26300 unsafe {
26301 let val: u32 = ::core::mem::transmute(val);
26302 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26303 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26304 1usize,
26305 31u8,
26306 val as u64,
26307 )
26308 }
26309 }
26310 #[inline]
26311 pub fn new_bitfield_1(
26312 KernelHandle: ULONG,
26313 Reserved: ULONG,
26314 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
26315 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
26316 __bindgen_bitfield_unit.set(0usize, 1u8, {
26317 let KernelHandle: u32 = unsafe { ::core::mem::transmute(KernelHandle) };
26318 KernelHandle as u64
26319 });
26320 __bindgen_bitfield_unit.set(1usize, 31u8, {
26321 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
26322 Reserved as u64
26323 });
26324 __bindgen_bitfield_unit
26325 }
26326}
26327pub type OB_PRE_OPERATION_INFORMATION = _OB_PRE_OPERATION_INFORMATION;
26328pub type POB_PRE_OPERATION_INFORMATION = *mut _OB_PRE_OPERATION_INFORMATION;
26329#[repr(C)]
26330#[derive(Debug, Copy, Clone)]
26331pub struct _OB_POST_CREATE_HANDLE_INFORMATION {
26332 pub GrantedAccess: ACCESS_MASK,
26333}
26334pub type OB_POST_CREATE_HANDLE_INFORMATION = _OB_POST_CREATE_HANDLE_INFORMATION;
26335pub type POB_POST_CREATE_HANDLE_INFORMATION = *mut _OB_POST_CREATE_HANDLE_INFORMATION;
26336#[repr(C)]
26337#[derive(Debug, Copy, Clone)]
26338pub struct _OB_POST_DUPLICATE_HANDLE_INFORMATION {
26339 pub GrantedAccess: ACCESS_MASK,
26340}
26341pub type OB_POST_DUPLICATE_HANDLE_INFORMATION = _OB_POST_DUPLICATE_HANDLE_INFORMATION;
26342pub type POB_POST_DUPLICATE_HANDLE_INFORMATION = *mut _OB_POST_DUPLICATE_HANDLE_INFORMATION;
26343#[repr(C)]
26344#[derive(Copy, Clone)]
26345pub union _OB_POST_OPERATION_PARAMETERS {
26346 pub CreateHandleInformation: OB_POST_CREATE_HANDLE_INFORMATION,
26347 pub DuplicateHandleInformation: OB_POST_DUPLICATE_HANDLE_INFORMATION,
26348}
26349pub type OB_POST_OPERATION_PARAMETERS = _OB_POST_OPERATION_PARAMETERS;
26350pub type POB_POST_OPERATION_PARAMETERS = *mut _OB_POST_OPERATION_PARAMETERS;
26351#[repr(C)]
26352#[derive(Copy, Clone)]
26353pub struct _OB_POST_OPERATION_INFORMATION {
26354 pub Operation: OB_OPERATION,
26355 pub __bindgen_anon_1: _OB_POST_OPERATION_INFORMATION__bindgen_ty_1,
26356 pub Object: PVOID,
26357 pub ObjectType: POBJECT_TYPE,
26358 pub CallContext: PVOID,
26359 pub ReturnStatus: NTSTATUS,
26360 pub Parameters: POB_POST_OPERATION_PARAMETERS,
26361}
26362#[repr(C)]
26363#[derive(Copy, Clone)]
26364pub union _OB_POST_OPERATION_INFORMATION__bindgen_ty_1 {
26365 pub Flags: ULONG,
26366 pub __bindgen_anon_1: _OB_POST_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1,
26367}
26368#[repr(C)]
26369#[derive(Debug, Copy, Clone)]
26370pub struct _OB_POST_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
26371 pub _bitfield_align_1: [u32; 0],
26372 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
26373}
26374impl _OB_POST_OPERATION_INFORMATION__bindgen_ty_1__bindgen_ty_1 {
26375 #[inline]
26376 pub fn KernelHandle(&self) -> ULONG {
26377 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
26378 }
26379 #[inline]
26380 pub fn set_KernelHandle(&mut self, val: ULONG) {
26381 unsafe {
26382 let val: u32 = ::core::mem::transmute(val);
26383 self._bitfield_1.set(0usize, 1u8, val as u64)
26384 }
26385 }
26386 #[inline]
26387 pub unsafe fn KernelHandle_raw(this: *const Self) -> ULONG {
26388 unsafe {
26389 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26390 ::core::ptr::addr_of!((*this)._bitfield_1),
26391 0usize,
26392 1u8,
26393 ) as u32)
26394 }
26395 }
26396 #[inline]
26397 pub unsafe fn set_KernelHandle_raw(this: *mut Self, val: ULONG) {
26398 unsafe {
26399 let val: u32 = ::core::mem::transmute(val);
26400 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26401 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26402 0usize,
26403 1u8,
26404 val as u64,
26405 )
26406 }
26407 }
26408 #[inline]
26409 pub fn Reserved(&self) -> ULONG {
26410 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) }
26411 }
26412 #[inline]
26413 pub fn set_Reserved(&mut self, val: ULONG) {
26414 unsafe {
26415 let val: u32 = ::core::mem::transmute(val);
26416 self._bitfield_1.set(1usize, 31u8, val as u64)
26417 }
26418 }
26419 #[inline]
26420 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
26421 unsafe {
26422 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26423 ::core::ptr::addr_of!((*this)._bitfield_1),
26424 1usize,
26425 31u8,
26426 ) as u32)
26427 }
26428 }
26429 #[inline]
26430 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
26431 unsafe {
26432 let val: u32 = ::core::mem::transmute(val);
26433 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26434 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26435 1usize,
26436 31u8,
26437 val as u64,
26438 )
26439 }
26440 }
26441 #[inline]
26442 pub fn new_bitfield_1(
26443 KernelHandle: ULONG,
26444 Reserved: ULONG,
26445 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
26446 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
26447 __bindgen_bitfield_unit.set(0usize, 1u8, {
26448 let KernelHandle: u32 = unsafe { ::core::mem::transmute(KernelHandle) };
26449 KernelHandle as u64
26450 });
26451 __bindgen_bitfield_unit.set(1usize, 31u8, {
26452 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
26453 Reserved as u64
26454 });
26455 __bindgen_bitfield_unit
26456 }
26457}
26458pub type OB_POST_OPERATION_INFORMATION = _OB_POST_OPERATION_INFORMATION;
26459pub type POB_POST_OPERATION_INFORMATION = *mut _OB_POST_OPERATION_INFORMATION;
26460pub const _OB_PREOP_CALLBACK_STATUS_OB_PREOP_SUCCESS: _OB_PREOP_CALLBACK_STATUS = 0;
26461pub type _OB_PREOP_CALLBACK_STATUS = core::ffi::c_int;
26462pub use self::_OB_PREOP_CALLBACK_STATUS as OB_PREOP_CALLBACK_STATUS;
26463pub type POB_PREOP_CALLBACK_STATUS = *mut _OB_PREOP_CALLBACK_STATUS;
26464pub type POB_PRE_OPERATION_CALLBACK = ::core::option::Option<
26465 unsafe extern "C" fn(
26466 RegistrationContext: PVOID,
26467 OperationInformation: POB_PRE_OPERATION_INFORMATION,
26468 ) -> OB_PREOP_CALLBACK_STATUS,
26469>;
26470pub type POB_POST_OPERATION_CALLBACK = ::core::option::Option<
26471 unsafe extern "C" fn(
26472 RegistrationContext: PVOID,
26473 OperationInformation: POB_POST_OPERATION_INFORMATION,
26474 ),
26475>;
26476#[repr(C)]
26477#[derive(Debug, Copy, Clone)]
26478pub struct _OB_OPERATION_REGISTRATION {
26479 pub ObjectType: *mut POBJECT_TYPE,
26480 pub Operations: OB_OPERATION,
26481 pub PreOperation: POB_PRE_OPERATION_CALLBACK,
26482 pub PostOperation: POB_POST_OPERATION_CALLBACK,
26483}
26484pub type OB_OPERATION_REGISTRATION = _OB_OPERATION_REGISTRATION;
26485pub type POB_OPERATION_REGISTRATION = *mut _OB_OPERATION_REGISTRATION;
26486#[repr(C)]
26487#[derive(Debug, Copy, Clone)]
26488pub struct _OB_CALLBACK_REGISTRATION {
26489 pub Version: USHORT,
26490 pub OperationRegistrationCount: USHORT,
26491 pub Altitude: UNICODE_STRING,
26492 pub RegistrationContext: PVOID,
26493 pub OperationRegistration: *mut OB_OPERATION_REGISTRATION,
26494}
26495pub type OB_CALLBACK_REGISTRATION = _OB_CALLBACK_REGISTRATION;
26496pub type POB_CALLBACK_REGISTRATION = *mut _OB_CALLBACK_REGISTRATION;
26497unsafe extern "C" {
26498 pub fn ObRegisterCallbacks(
26499 CallbackRegistration: POB_CALLBACK_REGISTRATION,
26500 RegistrationHandle: *mut PVOID,
26501 ) -> NTSTATUS;
26502}
26503unsafe extern "C" {
26504 pub fn ObUnRegisterCallbacks(RegistrationHandle: PVOID);
26505}
26506unsafe extern "C" {
26507 pub fn ObGetFilterVersion() -> USHORT;
26508}
26509#[repr(C)]
26510#[derive(Copy, Clone)]
26511pub struct _PCI_SEGMENT_BUS_NUMBER {
26512 pub u: _PCI_SEGMENT_BUS_NUMBER__bindgen_ty_1,
26513}
26514#[repr(C)]
26515#[derive(Copy, Clone)]
26516pub union _PCI_SEGMENT_BUS_NUMBER__bindgen_ty_1 {
26517 pub bits: _PCI_SEGMENT_BUS_NUMBER__bindgen_ty_1__bindgen_ty_1,
26518 pub AsULONG: ULONG,
26519}
26520#[repr(C)]
26521#[repr(align(4))]
26522#[derive(Debug, Copy, Clone)]
26523pub struct _PCI_SEGMENT_BUS_NUMBER__bindgen_ty_1__bindgen_ty_1 {
26524 pub _bitfield_align_1: [u16; 0],
26525 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
26526}
26527impl _PCI_SEGMENT_BUS_NUMBER__bindgen_ty_1__bindgen_ty_1 {
26528 #[inline]
26529 pub fn BusNumber(&self) -> ULONG {
26530 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
26531 }
26532 #[inline]
26533 pub fn set_BusNumber(&mut self, val: ULONG) {
26534 unsafe {
26535 let val: u32 = ::core::mem::transmute(val);
26536 self._bitfield_1.set(0usize, 8u8, val as u64)
26537 }
26538 }
26539 #[inline]
26540 pub unsafe fn BusNumber_raw(this: *const Self) -> ULONG {
26541 unsafe {
26542 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26543 ::core::ptr::addr_of!((*this)._bitfield_1),
26544 0usize,
26545 8u8,
26546 ) as u32)
26547 }
26548 }
26549 #[inline]
26550 pub unsafe fn set_BusNumber_raw(this: *mut Self, val: ULONG) {
26551 unsafe {
26552 let val: u32 = ::core::mem::transmute(val);
26553 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26554 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26555 0usize,
26556 8u8,
26557 val as u64,
26558 )
26559 }
26560 }
26561 #[inline]
26562 pub fn SegmentNumber(&self) -> ULONG {
26563 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 16u8) as u32) }
26564 }
26565 #[inline]
26566 pub fn set_SegmentNumber(&mut self, val: ULONG) {
26567 unsafe {
26568 let val: u32 = ::core::mem::transmute(val);
26569 self._bitfield_1.set(8usize, 16u8, val as u64)
26570 }
26571 }
26572 #[inline]
26573 pub unsafe fn SegmentNumber_raw(this: *const Self) -> ULONG {
26574 unsafe {
26575 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26576 ::core::ptr::addr_of!((*this)._bitfield_1),
26577 8usize,
26578 16u8,
26579 ) as u32)
26580 }
26581 }
26582 #[inline]
26583 pub unsafe fn set_SegmentNumber_raw(this: *mut Self, val: ULONG) {
26584 unsafe {
26585 let val: u32 = ::core::mem::transmute(val);
26586 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26587 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26588 8usize,
26589 16u8,
26590 val as u64,
26591 )
26592 }
26593 }
26594 #[inline]
26595 pub fn Reserved(&self) -> ULONG {
26596 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
26597 }
26598 #[inline]
26599 pub fn set_Reserved(&mut self, val: ULONG) {
26600 unsafe {
26601 let val: u32 = ::core::mem::transmute(val);
26602 self._bitfield_1.set(24usize, 8u8, val as u64)
26603 }
26604 }
26605 #[inline]
26606 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
26607 unsafe {
26608 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26609 ::core::ptr::addr_of!((*this)._bitfield_1),
26610 24usize,
26611 8u8,
26612 ) as u32)
26613 }
26614 }
26615 #[inline]
26616 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
26617 unsafe {
26618 let val: u32 = ::core::mem::transmute(val);
26619 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26620 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26621 24usize,
26622 8u8,
26623 val as u64,
26624 )
26625 }
26626 }
26627 #[inline]
26628 pub fn new_bitfield_1(
26629 BusNumber: ULONG,
26630 SegmentNumber: ULONG,
26631 Reserved: ULONG,
26632 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
26633 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
26634 __bindgen_bitfield_unit.set(0usize, 8u8, {
26635 let BusNumber: u32 = unsafe { ::core::mem::transmute(BusNumber) };
26636 BusNumber as u64
26637 });
26638 __bindgen_bitfield_unit.set(8usize, 16u8, {
26639 let SegmentNumber: u32 = unsafe { ::core::mem::transmute(SegmentNumber) };
26640 SegmentNumber as u64
26641 });
26642 __bindgen_bitfield_unit.set(24usize, 8u8, {
26643 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
26644 Reserved as u64
26645 });
26646 __bindgen_bitfield_unit
26647 }
26648}
26649pub type PCI_SEGMENT_BUS_NUMBER = _PCI_SEGMENT_BUS_NUMBER;
26650pub type PPCI_SEGMENT_BUS_NUMBER = *mut _PCI_SEGMENT_BUS_NUMBER;
26651#[repr(C)]
26652#[derive(Copy, Clone)]
26653pub struct _PCI_SLOT_NUMBER {
26654 pub u: _PCI_SLOT_NUMBER__bindgen_ty_1,
26655}
26656#[repr(C)]
26657#[derive(Copy, Clone)]
26658pub union _PCI_SLOT_NUMBER__bindgen_ty_1 {
26659 pub bits: _PCI_SLOT_NUMBER__bindgen_ty_1__bindgen_ty_1,
26660 pub AsULONG: ULONG,
26661}
26662#[repr(C)]
26663#[derive(Debug, Copy, Clone)]
26664pub struct _PCI_SLOT_NUMBER__bindgen_ty_1__bindgen_ty_1 {
26665 pub _bitfield_align_1: [u32; 0],
26666 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
26667}
26668impl _PCI_SLOT_NUMBER__bindgen_ty_1__bindgen_ty_1 {
26669 #[inline]
26670 pub fn DeviceNumber(&self) -> ULONG {
26671 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) }
26672 }
26673 #[inline]
26674 pub fn set_DeviceNumber(&mut self, val: ULONG) {
26675 unsafe {
26676 let val: u32 = ::core::mem::transmute(val);
26677 self._bitfield_1.set(0usize, 5u8, val as u64)
26678 }
26679 }
26680 #[inline]
26681 pub unsafe fn DeviceNumber_raw(this: *const Self) -> ULONG {
26682 unsafe {
26683 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26684 ::core::ptr::addr_of!((*this)._bitfield_1),
26685 0usize,
26686 5u8,
26687 ) as u32)
26688 }
26689 }
26690 #[inline]
26691 pub unsafe fn set_DeviceNumber_raw(this: *mut Self, val: ULONG) {
26692 unsafe {
26693 let val: u32 = ::core::mem::transmute(val);
26694 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26695 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26696 0usize,
26697 5u8,
26698 val as u64,
26699 )
26700 }
26701 }
26702 #[inline]
26703 pub fn FunctionNumber(&self) -> ULONG {
26704 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 3u8) as u32) }
26705 }
26706 #[inline]
26707 pub fn set_FunctionNumber(&mut self, val: ULONG) {
26708 unsafe {
26709 let val: u32 = ::core::mem::transmute(val);
26710 self._bitfield_1.set(5usize, 3u8, val as u64)
26711 }
26712 }
26713 #[inline]
26714 pub unsafe fn FunctionNumber_raw(this: *const Self) -> ULONG {
26715 unsafe {
26716 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26717 ::core::ptr::addr_of!((*this)._bitfield_1),
26718 5usize,
26719 3u8,
26720 ) as u32)
26721 }
26722 }
26723 #[inline]
26724 pub unsafe fn set_FunctionNumber_raw(this: *mut Self, val: ULONG) {
26725 unsafe {
26726 let val: u32 = ::core::mem::transmute(val);
26727 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26728 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26729 5usize,
26730 3u8,
26731 val as u64,
26732 )
26733 }
26734 }
26735 #[inline]
26736 pub fn Reserved(&self) -> ULONG {
26737 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 24u8) as u32) }
26738 }
26739 #[inline]
26740 pub fn set_Reserved(&mut self, val: ULONG) {
26741 unsafe {
26742 let val: u32 = ::core::mem::transmute(val);
26743 self._bitfield_1.set(8usize, 24u8, val as u64)
26744 }
26745 }
26746 #[inline]
26747 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
26748 unsafe {
26749 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
26750 ::core::ptr::addr_of!((*this)._bitfield_1),
26751 8usize,
26752 24u8,
26753 ) as u32)
26754 }
26755 }
26756 #[inline]
26757 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
26758 unsafe {
26759 let val: u32 = ::core::mem::transmute(val);
26760 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
26761 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26762 8usize,
26763 24u8,
26764 val as u64,
26765 )
26766 }
26767 }
26768 #[inline]
26769 pub fn new_bitfield_1(
26770 DeviceNumber: ULONG,
26771 FunctionNumber: ULONG,
26772 Reserved: ULONG,
26773 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
26774 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
26775 __bindgen_bitfield_unit.set(0usize, 5u8, {
26776 let DeviceNumber: u32 = unsafe { ::core::mem::transmute(DeviceNumber) };
26777 DeviceNumber as u64
26778 });
26779 __bindgen_bitfield_unit.set(5usize, 3u8, {
26780 let FunctionNumber: u32 = unsafe { ::core::mem::transmute(FunctionNumber) };
26781 FunctionNumber as u64
26782 });
26783 __bindgen_bitfield_unit.set(8usize, 24u8, {
26784 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
26785 Reserved as u64
26786 });
26787 __bindgen_bitfield_unit
26788 }
26789}
26790pub type PCI_SLOT_NUMBER = _PCI_SLOT_NUMBER;
26791pub type PPCI_SLOT_NUMBER = *mut _PCI_SLOT_NUMBER;
26792#[repr(C)]
26793#[derive(Copy, Clone)]
26794pub struct _PCI_COMMON_HEADER {
26795 pub VendorID: USHORT,
26796 pub DeviceID: USHORT,
26797 pub Command: USHORT,
26798 pub Status: USHORT,
26799 pub RevisionID: UCHAR,
26800 pub ProgIf: UCHAR,
26801 pub SubClass: UCHAR,
26802 pub BaseClass: UCHAR,
26803 pub CacheLineSize: UCHAR,
26804 pub LatencyTimer: UCHAR,
26805 pub HeaderType: UCHAR,
26806 pub BIST: UCHAR,
26807 pub u: _PCI_COMMON_HEADER__bindgen_ty_1,
26808}
26809#[repr(C)]
26810#[derive(Copy, Clone)]
26811pub union _PCI_COMMON_HEADER__bindgen_ty_1 {
26812 pub type0: _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_0,
26813 pub type1: _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_1,
26814 pub type2: _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_2,
26815}
26816#[repr(C)]
26817#[derive(Debug, Copy, Clone)]
26818pub struct _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_0 {
26819 pub BaseAddresses: [ULONG; 6usize],
26820 pub CIS: ULONG,
26821 pub SubVendorID: USHORT,
26822 pub SubSystemID: USHORT,
26823 pub ROMBaseAddress: ULONG,
26824 pub CapabilitiesPtr: UCHAR,
26825 pub Reserved1: [UCHAR; 3usize],
26826 pub Reserved2: ULONG,
26827 pub InterruptLine: UCHAR,
26828 pub InterruptPin: UCHAR,
26829 pub MinimumGrant: UCHAR,
26830 pub MaximumLatency: UCHAR,
26831}
26832#[repr(C)]
26833#[derive(Debug, Copy, Clone)]
26834pub struct _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_1 {
26835 pub BaseAddresses: [ULONG; 2usize],
26836 pub PrimaryBus: UCHAR,
26837 pub SecondaryBus: UCHAR,
26838 pub SubordinateBus: UCHAR,
26839 pub SecondaryLatency: UCHAR,
26840 pub IOBase: UCHAR,
26841 pub IOLimit: UCHAR,
26842 pub SecondaryStatus: USHORT,
26843 pub MemoryBase: USHORT,
26844 pub MemoryLimit: USHORT,
26845 pub PrefetchBase: USHORT,
26846 pub PrefetchLimit: USHORT,
26847 pub PrefetchBaseUpper32: ULONG,
26848 pub PrefetchLimitUpper32: ULONG,
26849 pub IOBaseUpper16: USHORT,
26850 pub IOLimitUpper16: USHORT,
26851 pub CapabilitiesPtr: UCHAR,
26852 pub Reserved1: [UCHAR; 3usize],
26853 pub ROMBaseAddress: ULONG,
26854 pub InterruptLine: UCHAR,
26855 pub InterruptPin: UCHAR,
26856 pub BridgeControl: USHORT,
26857}
26858#[repr(C)]
26859#[derive(Debug, Copy, Clone)]
26860pub struct _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_2 {
26861 pub SocketRegistersBaseAddress: ULONG,
26862 pub CapabilitiesPtr: UCHAR,
26863 pub Reserved: UCHAR,
26864 pub SecondaryStatus: USHORT,
26865 pub PrimaryBus: UCHAR,
26866 pub SecondaryBus: UCHAR,
26867 pub SubordinateBus: UCHAR,
26868 pub SecondaryLatency: UCHAR,
26869 pub Range: [_PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_2__bindgen_ty_1; 4usize],
26870 pub InterruptLine: UCHAR,
26871 pub InterruptPin: UCHAR,
26872 pub BridgeControl: USHORT,
26873}
26874#[repr(C)]
26875#[derive(Debug, Copy, Clone)]
26876pub struct _PCI_COMMON_HEADER__bindgen_ty_1__PCI_HEADER_TYPE_2__bindgen_ty_1 {
26877 pub Base: ULONG,
26878 pub Limit: ULONG,
26879}
26880pub type PCI_COMMON_HEADER = _PCI_COMMON_HEADER;
26881pub type PPCI_COMMON_HEADER = *mut _PCI_COMMON_HEADER;
26882#[repr(C)]
26883#[repr(align(4))]
26884#[derive(Debug, Copy, Clone)]
26885pub struct _PCI_COMMON_CONFIG {
26886 pub __bindgen_padding_0: [u8; 64usize],
26887 pub DeviceSpecific: [UCHAR; 192usize],
26888}
26889pub type PCI_COMMON_CONFIG = _PCI_COMMON_CONFIG;
26890pub type PPCI_COMMON_CONFIG = *mut _PCI_COMMON_CONFIG;
26891#[repr(C)]
26892#[derive(Debug, Copy, Clone)]
26893pub struct _PCI_CAPABILITIES_HEADER {
26894 pub CapabilityID: UCHAR,
26895 pub Next: UCHAR,
26896}
26897pub type PCI_CAPABILITIES_HEADER = _PCI_CAPABILITIES_HEADER;
26898pub type PPCI_CAPABILITIES_HEADER = *mut _PCI_CAPABILITIES_HEADER;
26899#[repr(C)]
26900#[derive(Debug, Copy, Clone)]
26901pub struct _PCI_PMC {
26902 pub _bitfield_align_1: [u8; 0],
26903 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
26904 pub Support: _PCI_PMC__PM_SUPPORT,
26905}
26906#[repr(C)]
26907#[derive(Debug, Copy, Clone)]
26908pub struct _PCI_PMC__PM_SUPPORT {
26909 pub _bitfield_align_1: [u8; 0],
26910 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
26911}
26912impl _PCI_PMC__PM_SUPPORT {
26913 #[inline]
26914 pub fn Rsvd2(&self) -> UCHAR {
26915 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
26916 }
26917 #[inline]
26918 pub fn set_Rsvd2(&mut self, val: UCHAR) {
26919 unsafe {
26920 let val: u8 = ::core::mem::transmute(val);
26921 self._bitfield_1.set(0usize, 1u8, val as u64)
26922 }
26923 }
26924 #[inline]
26925 pub unsafe fn Rsvd2_raw(this: *const Self) -> UCHAR {
26926 unsafe {
26927 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
26928 ::core::ptr::addr_of!((*this)._bitfield_1),
26929 0usize,
26930 1u8,
26931 ) as u8)
26932 }
26933 }
26934 #[inline]
26935 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: UCHAR) {
26936 unsafe {
26937 let val: u8 = ::core::mem::transmute(val);
26938 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
26939 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26940 0usize,
26941 1u8,
26942 val as u64,
26943 )
26944 }
26945 }
26946 #[inline]
26947 pub fn D1(&self) -> UCHAR {
26948 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u8) }
26949 }
26950 #[inline]
26951 pub fn set_D1(&mut self, val: UCHAR) {
26952 unsafe {
26953 let val: u8 = ::core::mem::transmute(val);
26954 self._bitfield_1.set(1usize, 1u8, val as u64)
26955 }
26956 }
26957 #[inline]
26958 pub unsafe fn D1_raw(this: *const Self) -> UCHAR {
26959 unsafe {
26960 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
26961 ::core::ptr::addr_of!((*this)._bitfield_1),
26962 1usize,
26963 1u8,
26964 ) as u8)
26965 }
26966 }
26967 #[inline]
26968 pub unsafe fn set_D1_raw(this: *mut Self, val: UCHAR) {
26969 unsafe {
26970 let val: u8 = ::core::mem::transmute(val);
26971 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
26972 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
26973 1usize,
26974 1u8,
26975 val as u64,
26976 )
26977 }
26978 }
26979 #[inline]
26980 pub fn D2(&self) -> UCHAR {
26981 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u8) }
26982 }
26983 #[inline]
26984 pub fn set_D2(&mut self, val: UCHAR) {
26985 unsafe {
26986 let val: u8 = ::core::mem::transmute(val);
26987 self._bitfield_1.set(2usize, 1u8, val as u64)
26988 }
26989 }
26990 #[inline]
26991 pub unsafe fn D2_raw(this: *const Self) -> UCHAR {
26992 unsafe {
26993 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
26994 ::core::ptr::addr_of!((*this)._bitfield_1),
26995 2usize,
26996 1u8,
26997 ) as u8)
26998 }
26999 }
27000 #[inline]
27001 pub unsafe fn set_D2_raw(this: *mut Self, val: UCHAR) {
27002 unsafe {
27003 let val: u8 = ::core::mem::transmute(val);
27004 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27005 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27006 2usize,
27007 1u8,
27008 val as u64,
27009 )
27010 }
27011 }
27012 #[inline]
27013 pub fn PMED0(&self) -> UCHAR {
27014 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
27015 }
27016 #[inline]
27017 pub fn set_PMED0(&mut self, val: UCHAR) {
27018 unsafe {
27019 let val: u8 = ::core::mem::transmute(val);
27020 self._bitfield_1.set(3usize, 1u8, val as u64)
27021 }
27022 }
27023 #[inline]
27024 pub unsafe fn PMED0_raw(this: *const Self) -> UCHAR {
27025 unsafe {
27026 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27027 ::core::ptr::addr_of!((*this)._bitfield_1),
27028 3usize,
27029 1u8,
27030 ) as u8)
27031 }
27032 }
27033 #[inline]
27034 pub unsafe fn set_PMED0_raw(this: *mut Self, val: UCHAR) {
27035 unsafe {
27036 let val: u8 = ::core::mem::transmute(val);
27037 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27038 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27039 3usize,
27040 1u8,
27041 val as u64,
27042 )
27043 }
27044 }
27045 #[inline]
27046 pub fn PMED1(&self) -> UCHAR {
27047 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
27048 }
27049 #[inline]
27050 pub fn set_PMED1(&mut self, val: UCHAR) {
27051 unsafe {
27052 let val: u8 = ::core::mem::transmute(val);
27053 self._bitfield_1.set(4usize, 1u8, val as u64)
27054 }
27055 }
27056 #[inline]
27057 pub unsafe fn PMED1_raw(this: *const Self) -> UCHAR {
27058 unsafe {
27059 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27060 ::core::ptr::addr_of!((*this)._bitfield_1),
27061 4usize,
27062 1u8,
27063 ) as u8)
27064 }
27065 }
27066 #[inline]
27067 pub unsafe fn set_PMED1_raw(this: *mut Self, val: UCHAR) {
27068 unsafe {
27069 let val: u8 = ::core::mem::transmute(val);
27070 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27071 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27072 4usize,
27073 1u8,
27074 val as u64,
27075 )
27076 }
27077 }
27078 #[inline]
27079 pub fn PMED2(&self) -> UCHAR {
27080 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
27081 }
27082 #[inline]
27083 pub fn set_PMED2(&mut self, val: UCHAR) {
27084 unsafe {
27085 let val: u8 = ::core::mem::transmute(val);
27086 self._bitfield_1.set(5usize, 1u8, val as u64)
27087 }
27088 }
27089 #[inline]
27090 pub unsafe fn PMED2_raw(this: *const Self) -> UCHAR {
27091 unsafe {
27092 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27093 ::core::ptr::addr_of!((*this)._bitfield_1),
27094 5usize,
27095 1u8,
27096 ) as u8)
27097 }
27098 }
27099 #[inline]
27100 pub unsafe fn set_PMED2_raw(this: *mut Self, val: UCHAR) {
27101 unsafe {
27102 let val: u8 = ::core::mem::transmute(val);
27103 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27104 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27105 5usize,
27106 1u8,
27107 val as u64,
27108 )
27109 }
27110 }
27111 #[inline]
27112 pub fn PMED3Hot(&self) -> UCHAR {
27113 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
27114 }
27115 #[inline]
27116 pub fn set_PMED3Hot(&mut self, val: UCHAR) {
27117 unsafe {
27118 let val: u8 = ::core::mem::transmute(val);
27119 self._bitfield_1.set(6usize, 1u8, val as u64)
27120 }
27121 }
27122 #[inline]
27123 pub unsafe fn PMED3Hot_raw(this: *const Self) -> UCHAR {
27124 unsafe {
27125 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27126 ::core::ptr::addr_of!((*this)._bitfield_1),
27127 6usize,
27128 1u8,
27129 ) as u8)
27130 }
27131 }
27132 #[inline]
27133 pub unsafe fn set_PMED3Hot_raw(this: *mut Self, val: UCHAR) {
27134 unsafe {
27135 let val: u8 = ::core::mem::transmute(val);
27136 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27137 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27138 6usize,
27139 1u8,
27140 val as u64,
27141 )
27142 }
27143 }
27144 #[inline]
27145 pub fn PMED3Cold(&self) -> UCHAR {
27146 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
27147 }
27148 #[inline]
27149 pub fn set_PMED3Cold(&mut self, val: UCHAR) {
27150 unsafe {
27151 let val: u8 = ::core::mem::transmute(val);
27152 self._bitfield_1.set(7usize, 1u8, val as u64)
27153 }
27154 }
27155 #[inline]
27156 pub unsafe fn PMED3Cold_raw(this: *const Self) -> UCHAR {
27157 unsafe {
27158 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27159 ::core::ptr::addr_of!((*this)._bitfield_1),
27160 7usize,
27161 1u8,
27162 ) as u8)
27163 }
27164 }
27165 #[inline]
27166 pub unsafe fn set_PMED3Cold_raw(this: *mut Self, val: UCHAR) {
27167 unsafe {
27168 let val: u8 = ::core::mem::transmute(val);
27169 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27170 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27171 7usize,
27172 1u8,
27173 val as u64,
27174 )
27175 }
27176 }
27177 #[inline]
27178 pub fn new_bitfield_1(
27179 Rsvd2: UCHAR,
27180 D1: UCHAR,
27181 D2: UCHAR,
27182 PMED0: UCHAR,
27183 PMED1: UCHAR,
27184 PMED2: UCHAR,
27185 PMED3Hot: UCHAR,
27186 PMED3Cold: UCHAR,
27187 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
27188 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
27189 __bindgen_bitfield_unit.set(0usize, 1u8, {
27190 let Rsvd2: u8 = unsafe { ::core::mem::transmute(Rsvd2) };
27191 Rsvd2 as u64
27192 });
27193 __bindgen_bitfield_unit.set(1usize, 1u8, {
27194 let D1: u8 = unsafe { ::core::mem::transmute(D1) };
27195 D1 as u64
27196 });
27197 __bindgen_bitfield_unit.set(2usize, 1u8, {
27198 let D2: u8 = unsafe { ::core::mem::transmute(D2) };
27199 D2 as u64
27200 });
27201 __bindgen_bitfield_unit.set(3usize, 1u8, {
27202 let PMED0: u8 = unsafe { ::core::mem::transmute(PMED0) };
27203 PMED0 as u64
27204 });
27205 __bindgen_bitfield_unit.set(4usize, 1u8, {
27206 let PMED1: u8 = unsafe { ::core::mem::transmute(PMED1) };
27207 PMED1 as u64
27208 });
27209 __bindgen_bitfield_unit.set(5usize, 1u8, {
27210 let PMED2: u8 = unsafe { ::core::mem::transmute(PMED2) };
27211 PMED2 as u64
27212 });
27213 __bindgen_bitfield_unit.set(6usize, 1u8, {
27214 let PMED3Hot: u8 = unsafe { ::core::mem::transmute(PMED3Hot) };
27215 PMED3Hot as u64
27216 });
27217 __bindgen_bitfield_unit.set(7usize, 1u8, {
27218 let PMED3Cold: u8 = unsafe { ::core::mem::transmute(PMED3Cold) };
27219 PMED3Cold as u64
27220 });
27221 __bindgen_bitfield_unit
27222 }
27223}
27224impl _PCI_PMC {
27225 #[inline]
27226 pub fn Version(&self) -> UCHAR {
27227 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u8) }
27228 }
27229 #[inline]
27230 pub fn set_Version(&mut self, val: UCHAR) {
27231 unsafe {
27232 let val: u8 = ::core::mem::transmute(val);
27233 self._bitfield_1.set(0usize, 3u8, val as u64)
27234 }
27235 }
27236 #[inline]
27237 pub unsafe fn Version_raw(this: *const Self) -> UCHAR {
27238 unsafe {
27239 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27240 ::core::ptr::addr_of!((*this)._bitfield_1),
27241 0usize,
27242 3u8,
27243 ) as u8)
27244 }
27245 }
27246 #[inline]
27247 pub unsafe fn set_Version_raw(this: *mut Self, val: UCHAR) {
27248 unsafe {
27249 let val: u8 = ::core::mem::transmute(val);
27250 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27251 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27252 0usize,
27253 3u8,
27254 val as u64,
27255 )
27256 }
27257 }
27258 #[inline]
27259 pub fn PMEClock(&self) -> UCHAR {
27260 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u8) }
27261 }
27262 #[inline]
27263 pub fn set_PMEClock(&mut self, val: UCHAR) {
27264 unsafe {
27265 let val: u8 = ::core::mem::transmute(val);
27266 self._bitfield_1.set(3usize, 1u8, val as u64)
27267 }
27268 }
27269 #[inline]
27270 pub unsafe fn PMEClock_raw(this: *const Self) -> UCHAR {
27271 unsafe {
27272 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27273 ::core::ptr::addr_of!((*this)._bitfield_1),
27274 3usize,
27275 1u8,
27276 ) as u8)
27277 }
27278 }
27279 #[inline]
27280 pub unsafe fn set_PMEClock_raw(this: *mut Self, val: UCHAR) {
27281 unsafe {
27282 let val: u8 = ::core::mem::transmute(val);
27283 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27284 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27285 3usize,
27286 1u8,
27287 val as u64,
27288 )
27289 }
27290 }
27291 #[inline]
27292 pub fn Rsvd1(&self) -> UCHAR {
27293 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u8) }
27294 }
27295 #[inline]
27296 pub fn set_Rsvd1(&mut self, val: UCHAR) {
27297 unsafe {
27298 let val: u8 = ::core::mem::transmute(val);
27299 self._bitfield_1.set(4usize, 1u8, val as u64)
27300 }
27301 }
27302 #[inline]
27303 pub unsafe fn Rsvd1_raw(this: *const Self) -> UCHAR {
27304 unsafe {
27305 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27306 ::core::ptr::addr_of!((*this)._bitfield_1),
27307 4usize,
27308 1u8,
27309 ) as u8)
27310 }
27311 }
27312 #[inline]
27313 pub unsafe fn set_Rsvd1_raw(this: *mut Self, val: UCHAR) {
27314 unsafe {
27315 let val: u8 = ::core::mem::transmute(val);
27316 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27317 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27318 4usize,
27319 1u8,
27320 val as u64,
27321 )
27322 }
27323 }
27324 #[inline]
27325 pub fn DeviceSpecificInitialization(&self) -> UCHAR {
27326 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u8) }
27327 }
27328 #[inline]
27329 pub fn set_DeviceSpecificInitialization(&mut self, val: UCHAR) {
27330 unsafe {
27331 let val: u8 = ::core::mem::transmute(val);
27332 self._bitfield_1.set(5usize, 1u8, val as u64)
27333 }
27334 }
27335 #[inline]
27336 pub unsafe fn DeviceSpecificInitialization_raw(this: *const Self) -> UCHAR {
27337 unsafe {
27338 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27339 ::core::ptr::addr_of!((*this)._bitfield_1),
27340 5usize,
27341 1u8,
27342 ) as u8)
27343 }
27344 }
27345 #[inline]
27346 pub unsafe fn set_DeviceSpecificInitialization_raw(this: *mut Self, val: UCHAR) {
27347 unsafe {
27348 let val: u8 = ::core::mem::transmute(val);
27349 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27350 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27351 5usize,
27352 1u8,
27353 val as u64,
27354 )
27355 }
27356 }
27357 #[inline]
27358 pub fn Rsvd2(&self) -> UCHAR {
27359 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) }
27360 }
27361 #[inline]
27362 pub fn set_Rsvd2(&mut self, val: UCHAR) {
27363 unsafe {
27364 let val: u8 = ::core::mem::transmute(val);
27365 self._bitfield_1.set(6usize, 2u8, val as u64)
27366 }
27367 }
27368 #[inline]
27369 pub unsafe fn Rsvd2_raw(this: *const Self) -> UCHAR {
27370 unsafe {
27371 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27372 ::core::ptr::addr_of!((*this)._bitfield_1),
27373 6usize,
27374 2u8,
27375 ) as u8)
27376 }
27377 }
27378 #[inline]
27379 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: UCHAR) {
27380 unsafe {
27381 let val: u8 = ::core::mem::transmute(val);
27382 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27383 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27384 6usize,
27385 2u8,
27386 val as u64,
27387 )
27388 }
27389 }
27390 #[inline]
27391 pub fn new_bitfield_1(
27392 Version: UCHAR,
27393 PMEClock: UCHAR,
27394 Rsvd1: UCHAR,
27395 DeviceSpecificInitialization: UCHAR,
27396 Rsvd2: UCHAR,
27397 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
27398 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
27399 __bindgen_bitfield_unit.set(0usize, 3u8, {
27400 let Version: u8 = unsafe { ::core::mem::transmute(Version) };
27401 Version as u64
27402 });
27403 __bindgen_bitfield_unit.set(3usize, 1u8, {
27404 let PMEClock: u8 = unsafe { ::core::mem::transmute(PMEClock) };
27405 PMEClock as u64
27406 });
27407 __bindgen_bitfield_unit.set(4usize, 1u8, {
27408 let Rsvd1: u8 = unsafe { ::core::mem::transmute(Rsvd1) };
27409 Rsvd1 as u64
27410 });
27411 __bindgen_bitfield_unit.set(5usize, 1u8, {
27412 let DeviceSpecificInitialization: u8 =
27413 unsafe { ::core::mem::transmute(DeviceSpecificInitialization) };
27414 DeviceSpecificInitialization as u64
27415 });
27416 __bindgen_bitfield_unit.set(6usize, 2u8, {
27417 let Rsvd2: u8 = unsafe { ::core::mem::transmute(Rsvd2) };
27418 Rsvd2 as u64
27419 });
27420 __bindgen_bitfield_unit
27421 }
27422}
27423pub type PCI_PMC = _PCI_PMC;
27424pub type PPCI_PMC = *mut _PCI_PMC;
27425#[repr(C)]
27426#[repr(align(2))]
27427#[derive(Debug, Copy, Clone)]
27428pub struct _PCI_PMCSR {
27429 pub _bitfield_align_1: [u8; 0],
27430 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
27431}
27432impl _PCI_PMCSR {
27433 #[inline]
27434 pub fn PowerState(&self) -> USHORT {
27435 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 2u8) as u16) }
27436 }
27437 #[inline]
27438 pub fn set_PowerState(&mut self, val: USHORT) {
27439 unsafe {
27440 let val: u16 = ::core::mem::transmute(val);
27441 self._bitfield_1.set(0usize, 2u8, val as u64)
27442 }
27443 }
27444 #[inline]
27445 pub unsafe fn PowerState_raw(this: *const Self) -> USHORT {
27446 unsafe {
27447 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27448 ::core::ptr::addr_of!((*this)._bitfield_1),
27449 0usize,
27450 2u8,
27451 ) as u16)
27452 }
27453 }
27454 #[inline]
27455 pub unsafe fn set_PowerState_raw(this: *mut Self, val: USHORT) {
27456 unsafe {
27457 let val: u16 = ::core::mem::transmute(val);
27458 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27459 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27460 0usize,
27461 2u8,
27462 val as u64,
27463 )
27464 }
27465 }
27466 #[inline]
27467 pub fn Rsvd1(&self) -> USHORT {
27468 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
27469 }
27470 #[inline]
27471 pub fn set_Rsvd1(&mut self, val: USHORT) {
27472 unsafe {
27473 let val: u16 = ::core::mem::transmute(val);
27474 self._bitfield_1.set(2usize, 1u8, val as u64)
27475 }
27476 }
27477 #[inline]
27478 pub unsafe fn Rsvd1_raw(this: *const Self) -> USHORT {
27479 unsafe {
27480 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27481 ::core::ptr::addr_of!((*this)._bitfield_1),
27482 2usize,
27483 1u8,
27484 ) as u16)
27485 }
27486 }
27487 #[inline]
27488 pub unsafe fn set_Rsvd1_raw(this: *mut Self, val: USHORT) {
27489 unsafe {
27490 let val: u16 = ::core::mem::transmute(val);
27491 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27492 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27493 2usize,
27494 1u8,
27495 val as u64,
27496 )
27497 }
27498 }
27499 #[inline]
27500 pub fn NoSoftReset(&self) -> USHORT {
27501 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
27502 }
27503 #[inline]
27504 pub fn set_NoSoftReset(&mut self, val: USHORT) {
27505 unsafe {
27506 let val: u16 = ::core::mem::transmute(val);
27507 self._bitfield_1.set(3usize, 1u8, val as u64)
27508 }
27509 }
27510 #[inline]
27511 pub unsafe fn NoSoftReset_raw(this: *const Self) -> USHORT {
27512 unsafe {
27513 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27514 ::core::ptr::addr_of!((*this)._bitfield_1),
27515 3usize,
27516 1u8,
27517 ) as u16)
27518 }
27519 }
27520 #[inline]
27521 pub unsafe fn set_NoSoftReset_raw(this: *mut Self, val: USHORT) {
27522 unsafe {
27523 let val: u16 = ::core::mem::transmute(val);
27524 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27525 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27526 3usize,
27527 1u8,
27528 val as u64,
27529 )
27530 }
27531 }
27532 #[inline]
27533 pub fn Rsvd2(&self) -> USHORT {
27534 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 4u8) as u16) }
27535 }
27536 #[inline]
27537 pub fn set_Rsvd2(&mut self, val: USHORT) {
27538 unsafe {
27539 let val: u16 = ::core::mem::transmute(val);
27540 self._bitfield_1.set(4usize, 4u8, val as u64)
27541 }
27542 }
27543 #[inline]
27544 pub unsafe fn Rsvd2_raw(this: *const Self) -> USHORT {
27545 unsafe {
27546 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27547 ::core::ptr::addr_of!((*this)._bitfield_1),
27548 4usize,
27549 4u8,
27550 ) as u16)
27551 }
27552 }
27553 #[inline]
27554 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: USHORT) {
27555 unsafe {
27556 let val: u16 = ::core::mem::transmute(val);
27557 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27558 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27559 4usize,
27560 4u8,
27561 val as u64,
27562 )
27563 }
27564 }
27565 #[inline]
27566 pub fn PMEEnable(&self) -> USHORT {
27567 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
27568 }
27569 #[inline]
27570 pub fn set_PMEEnable(&mut self, val: USHORT) {
27571 unsafe {
27572 let val: u16 = ::core::mem::transmute(val);
27573 self._bitfield_1.set(8usize, 1u8, val as u64)
27574 }
27575 }
27576 #[inline]
27577 pub unsafe fn PMEEnable_raw(this: *const Self) -> USHORT {
27578 unsafe {
27579 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27580 ::core::ptr::addr_of!((*this)._bitfield_1),
27581 8usize,
27582 1u8,
27583 ) as u16)
27584 }
27585 }
27586 #[inline]
27587 pub unsafe fn set_PMEEnable_raw(this: *mut Self, val: USHORT) {
27588 unsafe {
27589 let val: u16 = ::core::mem::transmute(val);
27590 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27591 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27592 8usize,
27593 1u8,
27594 val as u64,
27595 )
27596 }
27597 }
27598 #[inline]
27599 pub fn DataSelect(&self) -> USHORT {
27600 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 4u8) as u16) }
27601 }
27602 #[inline]
27603 pub fn set_DataSelect(&mut self, val: USHORT) {
27604 unsafe {
27605 let val: u16 = ::core::mem::transmute(val);
27606 self._bitfield_1.set(9usize, 4u8, val as u64)
27607 }
27608 }
27609 #[inline]
27610 pub unsafe fn DataSelect_raw(this: *const Self) -> USHORT {
27611 unsafe {
27612 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27613 ::core::ptr::addr_of!((*this)._bitfield_1),
27614 9usize,
27615 4u8,
27616 ) as u16)
27617 }
27618 }
27619 #[inline]
27620 pub unsafe fn set_DataSelect_raw(this: *mut Self, val: USHORT) {
27621 unsafe {
27622 let val: u16 = ::core::mem::transmute(val);
27623 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27624 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27625 9usize,
27626 4u8,
27627 val as u64,
27628 )
27629 }
27630 }
27631 #[inline]
27632 pub fn DataScale(&self) -> USHORT {
27633 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 2u8) as u16) }
27634 }
27635 #[inline]
27636 pub fn set_DataScale(&mut self, val: USHORT) {
27637 unsafe {
27638 let val: u16 = ::core::mem::transmute(val);
27639 self._bitfield_1.set(13usize, 2u8, val as u64)
27640 }
27641 }
27642 #[inline]
27643 pub unsafe fn DataScale_raw(this: *const Self) -> USHORT {
27644 unsafe {
27645 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27646 ::core::ptr::addr_of!((*this)._bitfield_1),
27647 13usize,
27648 2u8,
27649 ) as u16)
27650 }
27651 }
27652 #[inline]
27653 pub unsafe fn set_DataScale_raw(this: *mut Self, val: USHORT) {
27654 unsafe {
27655 let val: u16 = ::core::mem::transmute(val);
27656 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27657 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27658 13usize,
27659 2u8,
27660 val as u64,
27661 )
27662 }
27663 }
27664 #[inline]
27665 pub fn PMEStatus(&self) -> USHORT {
27666 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
27667 }
27668 #[inline]
27669 pub fn set_PMEStatus(&mut self, val: USHORT) {
27670 unsafe {
27671 let val: u16 = ::core::mem::transmute(val);
27672 self._bitfield_1.set(15usize, 1u8, val as u64)
27673 }
27674 }
27675 #[inline]
27676 pub unsafe fn PMEStatus_raw(this: *const Self) -> USHORT {
27677 unsafe {
27678 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27679 ::core::ptr::addr_of!((*this)._bitfield_1),
27680 15usize,
27681 1u8,
27682 ) as u16)
27683 }
27684 }
27685 #[inline]
27686 pub unsafe fn set_PMEStatus_raw(this: *mut Self, val: USHORT) {
27687 unsafe {
27688 let val: u16 = ::core::mem::transmute(val);
27689 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27690 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27691 15usize,
27692 1u8,
27693 val as u64,
27694 )
27695 }
27696 }
27697 #[inline]
27698 pub fn new_bitfield_1(
27699 PowerState: USHORT,
27700 Rsvd1: USHORT,
27701 NoSoftReset: USHORT,
27702 Rsvd2: USHORT,
27703 PMEEnable: USHORT,
27704 DataSelect: USHORT,
27705 DataScale: USHORT,
27706 PMEStatus: USHORT,
27707 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
27708 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
27709 __bindgen_bitfield_unit.set(0usize, 2u8, {
27710 let PowerState: u16 = unsafe { ::core::mem::transmute(PowerState) };
27711 PowerState as u64
27712 });
27713 __bindgen_bitfield_unit.set(2usize, 1u8, {
27714 let Rsvd1: u16 = unsafe { ::core::mem::transmute(Rsvd1) };
27715 Rsvd1 as u64
27716 });
27717 __bindgen_bitfield_unit.set(3usize, 1u8, {
27718 let NoSoftReset: u16 = unsafe { ::core::mem::transmute(NoSoftReset) };
27719 NoSoftReset as u64
27720 });
27721 __bindgen_bitfield_unit.set(4usize, 4u8, {
27722 let Rsvd2: u16 = unsafe { ::core::mem::transmute(Rsvd2) };
27723 Rsvd2 as u64
27724 });
27725 __bindgen_bitfield_unit.set(8usize, 1u8, {
27726 let PMEEnable: u16 = unsafe { ::core::mem::transmute(PMEEnable) };
27727 PMEEnable as u64
27728 });
27729 __bindgen_bitfield_unit.set(9usize, 4u8, {
27730 let DataSelect: u16 = unsafe { ::core::mem::transmute(DataSelect) };
27731 DataSelect as u64
27732 });
27733 __bindgen_bitfield_unit.set(13usize, 2u8, {
27734 let DataScale: u16 = unsafe { ::core::mem::transmute(DataScale) };
27735 DataScale as u64
27736 });
27737 __bindgen_bitfield_unit.set(15usize, 1u8, {
27738 let PMEStatus: u16 = unsafe { ::core::mem::transmute(PMEStatus) };
27739 PMEStatus as u64
27740 });
27741 __bindgen_bitfield_unit
27742 }
27743}
27744pub type PCI_PMCSR = _PCI_PMCSR;
27745pub type PPCI_PMCSR = *mut _PCI_PMCSR;
27746#[repr(C)]
27747#[derive(Debug, Copy, Clone)]
27748pub struct _PCI_PMCSR_BSE {
27749 pub _bitfield_align_1: [u8; 0],
27750 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>,
27751}
27752impl _PCI_PMCSR_BSE {
27753 #[inline]
27754 pub fn Rsvd1(&self) -> UCHAR {
27755 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 6u8) as u8) }
27756 }
27757 #[inline]
27758 pub fn set_Rsvd1(&mut self, val: UCHAR) {
27759 unsafe {
27760 let val: u8 = ::core::mem::transmute(val);
27761 self._bitfield_1.set(0usize, 6u8, val as u64)
27762 }
27763 }
27764 #[inline]
27765 pub unsafe fn Rsvd1_raw(this: *const Self) -> UCHAR {
27766 unsafe {
27767 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27768 ::core::ptr::addr_of!((*this)._bitfield_1),
27769 0usize,
27770 6u8,
27771 ) as u8)
27772 }
27773 }
27774 #[inline]
27775 pub unsafe fn set_Rsvd1_raw(this: *mut Self, val: UCHAR) {
27776 unsafe {
27777 let val: u8 = ::core::mem::transmute(val);
27778 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27779 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27780 0usize,
27781 6u8,
27782 val as u64,
27783 )
27784 }
27785 }
27786 #[inline]
27787 pub fn D3HotSupportsStopClock(&self) -> UCHAR {
27788 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) }
27789 }
27790 #[inline]
27791 pub fn set_D3HotSupportsStopClock(&mut self, val: UCHAR) {
27792 unsafe {
27793 let val: u8 = ::core::mem::transmute(val);
27794 self._bitfield_1.set(6usize, 1u8, val as u64)
27795 }
27796 }
27797 #[inline]
27798 pub unsafe fn D3HotSupportsStopClock_raw(this: *const Self) -> UCHAR {
27799 unsafe {
27800 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27801 ::core::ptr::addr_of!((*this)._bitfield_1),
27802 6usize,
27803 1u8,
27804 ) as u8)
27805 }
27806 }
27807 #[inline]
27808 pub unsafe fn set_D3HotSupportsStopClock_raw(this: *mut Self, val: UCHAR) {
27809 unsafe {
27810 let val: u8 = ::core::mem::transmute(val);
27811 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27812 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27813 6usize,
27814 1u8,
27815 val as u64,
27816 )
27817 }
27818 }
27819 #[inline]
27820 pub fn BusPowerClockControlEnabled(&self) -> UCHAR {
27821 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) }
27822 }
27823 #[inline]
27824 pub fn set_BusPowerClockControlEnabled(&mut self, val: UCHAR) {
27825 unsafe {
27826 let val: u8 = ::core::mem::transmute(val);
27827 self._bitfield_1.set(7usize, 1u8, val as u64)
27828 }
27829 }
27830 #[inline]
27831 pub unsafe fn BusPowerClockControlEnabled_raw(this: *const Self) -> UCHAR {
27832 unsafe {
27833 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 1usize]>>::raw_get(
27834 ::core::ptr::addr_of!((*this)._bitfield_1),
27835 7usize,
27836 1u8,
27837 ) as u8)
27838 }
27839 }
27840 #[inline]
27841 pub unsafe fn set_BusPowerClockControlEnabled_raw(this: *mut Self, val: UCHAR) {
27842 unsafe {
27843 let val: u8 = ::core::mem::transmute(val);
27844 <__BindgenBitfieldUnit<[u8; 1usize]>>::raw_set(
27845 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27846 7usize,
27847 1u8,
27848 val as u64,
27849 )
27850 }
27851 }
27852 #[inline]
27853 pub fn new_bitfield_1(
27854 Rsvd1: UCHAR,
27855 D3HotSupportsStopClock: UCHAR,
27856 BusPowerClockControlEnabled: UCHAR,
27857 ) -> __BindgenBitfieldUnit<[u8; 1usize]> {
27858 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default();
27859 __bindgen_bitfield_unit.set(0usize, 6u8, {
27860 let Rsvd1: u8 = unsafe { ::core::mem::transmute(Rsvd1) };
27861 Rsvd1 as u64
27862 });
27863 __bindgen_bitfield_unit.set(6usize, 1u8, {
27864 let D3HotSupportsStopClock: u8 =
27865 unsafe { ::core::mem::transmute(D3HotSupportsStopClock) };
27866 D3HotSupportsStopClock as u64
27867 });
27868 __bindgen_bitfield_unit.set(7usize, 1u8, {
27869 let BusPowerClockControlEnabled: u8 =
27870 unsafe { ::core::mem::transmute(BusPowerClockControlEnabled) };
27871 BusPowerClockControlEnabled as u64
27872 });
27873 __bindgen_bitfield_unit
27874 }
27875}
27876pub type PCI_PMCSR_BSE = _PCI_PMCSR_BSE;
27877pub type PPCI_PMCSR_BSE = *mut _PCI_PMCSR_BSE;
27878#[repr(C)]
27879#[derive(Copy, Clone)]
27880pub struct _PCI_PM_CAPABILITY {
27881 pub Header: PCI_CAPABILITIES_HEADER,
27882 pub PMC: _PCI_PM_CAPABILITY__bindgen_ty_1,
27883 pub PMCSR: _PCI_PM_CAPABILITY__bindgen_ty_2,
27884 pub PMCSR_BSE: _PCI_PM_CAPABILITY__bindgen_ty_3,
27885 pub Data: UCHAR,
27886}
27887#[repr(C)]
27888#[derive(Copy, Clone)]
27889pub union _PCI_PM_CAPABILITY__bindgen_ty_1 {
27890 pub Capabilities: PCI_PMC,
27891 pub AsUSHORT: USHORT,
27892}
27893#[repr(C)]
27894#[derive(Copy, Clone)]
27895pub union _PCI_PM_CAPABILITY__bindgen_ty_2 {
27896 pub ControlStatus: PCI_PMCSR,
27897 pub AsUSHORT: USHORT,
27898}
27899#[repr(C)]
27900#[derive(Copy, Clone)]
27901pub union _PCI_PM_CAPABILITY__bindgen_ty_3 {
27902 pub BridgeSupport: PCI_PMCSR_BSE,
27903 pub AsUCHAR: UCHAR,
27904}
27905pub type PCI_PM_CAPABILITY = _PCI_PM_CAPABILITY;
27906pub type PPCI_PM_CAPABILITY = *mut _PCI_PM_CAPABILITY;
27907#[repr(C)]
27908#[derive(Copy, Clone)]
27909pub struct PCI_X_CAPABILITY {
27910 pub Header: PCI_CAPABILITIES_HEADER,
27911 pub Command: PCI_X_CAPABILITY__bindgen_ty_1,
27912 pub Status: PCI_X_CAPABILITY__bindgen_ty_2,
27913}
27914#[repr(C)]
27915#[derive(Copy, Clone)]
27916pub union PCI_X_CAPABILITY__bindgen_ty_1 {
27917 pub bits: PCI_X_CAPABILITY__bindgen_ty_1__bindgen_ty_1,
27918 pub AsUSHORT: USHORT,
27919}
27920#[repr(C)]
27921#[derive(Debug, Copy, Clone)]
27922pub struct PCI_X_CAPABILITY__bindgen_ty_1__bindgen_ty_1 {
27923 pub _bitfield_align_1: [u16; 0],
27924 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
27925}
27926impl PCI_X_CAPABILITY__bindgen_ty_1__bindgen_ty_1 {
27927 #[inline]
27928 pub fn DataParityErrorRecoveryEnable(&self) -> USHORT {
27929 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
27930 }
27931 #[inline]
27932 pub fn set_DataParityErrorRecoveryEnable(&mut self, val: USHORT) {
27933 unsafe {
27934 let val: u16 = ::core::mem::transmute(val);
27935 self._bitfield_1.set(0usize, 1u8, val as u64)
27936 }
27937 }
27938 #[inline]
27939 pub unsafe fn DataParityErrorRecoveryEnable_raw(this: *const Self) -> USHORT {
27940 unsafe {
27941 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27942 ::core::ptr::addr_of!((*this)._bitfield_1),
27943 0usize,
27944 1u8,
27945 ) as u16)
27946 }
27947 }
27948 #[inline]
27949 pub unsafe fn set_DataParityErrorRecoveryEnable_raw(this: *mut Self, val: USHORT) {
27950 unsafe {
27951 let val: u16 = ::core::mem::transmute(val);
27952 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27953 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27954 0usize,
27955 1u8,
27956 val as u64,
27957 )
27958 }
27959 }
27960 #[inline]
27961 pub fn EnableRelaxedOrdering(&self) -> USHORT {
27962 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
27963 }
27964 #[inline]
27965 pub fn set_EnableRelaxedOrdering(&mut self, val: USHORT) {
27966 unsafe {
27967 let val: u16 = ::core::mem::transmute(val);
27968 self._bitfield_1.set(1usize, 1u8, val as u64)
27969 }
27970 }
27971 #[inline]
27972 pub unsafe fn EnableRelaxedOrdering_raw(this: *const Self) -> USHORT {
27973 unsafe {
27974 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
27975 ::core::ptr::addr_of!((*this)._bitfield_1),
27976 1usize,
27977 1u8,
27978 ) as u16)
27979 }
27980 }
27981 #[inline]
27982 pub unsafe fn set_EnableRelaxedOrdering_raw(this: *mut Self, val: USHORT) {
27983 unsafe {
27984 let val: u16 = ::core::mem::transmute(val);
27985 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
27986 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
27987 1usize,
27988 1u8,
27989 val as u64,
27990 )
27991 }
27992 }
27993 #[inline]
27994 pub fn MaxMemoryReadByteCount(&self) -> USHORT {
27995 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u16) }
27996 }
27997 #[inline]
27998 pub fn set_MaxMemoryReadByteCount(&mut self, val: USHORT) {
27999 unsafe {
28000 let val: u16 = ::core::mem::transmute(val);
28001 self._bitfield_1.set(2usize, 2u8, val as u64)
28002 }
28003 }
28004 #[inline]
28005 pub unsafe fn MaxMemoryReadByteCount_raw(this: *const Self) -> USHORT {
28006 unsafe {
28007 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28008 ::core::ptr::addr_of!((*this)._bitfield_1),
28009 2usize,
28010 2u8,
28011 ) as u16)
28012 }
28013 }
28014 #[inline]
28015 pub unsafe fn set_MaxMemoryReadByteCount_raw(this: *mut Self, val: USHORT) {
28016 unsafe {
28017 let val: u16 = ::core::mem::transmute(val);
28018 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28019 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28020 2usize,
28021 2u8,
28022 val as u64,
28023 )
28024 }
28025 }
28026 #[inline]
28027 pub fn MaxOutstandingSplitTransactions(&self) -> USHORT {
28028 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u16) }
28029 }
28030 #[inline]
28031 pub fn set_MaxOutstandingSplitTransactions(&mut self, val: USHORT) {
28032 unsafe {
28033 let val: u16 = ::core::mem::transmute(val);
28034 self._bitfield_1.set(4usize, 3u8, val as u64)
28035 }
28036 }
28037 #[inline]
28038 pub unsafe fn MaxOutstandingSplitTransactions_raw(this: *const Self) -> USHORT {
28039 unsafe {
28040 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28041 ::core::ptr::addr_of!((*this)._bitfield_1),
28042 4usize,
28043 3u8,
28044 ) as u16)
28045 }
28046 }
28047 #[inline]
28048 pub unsafe fn set_MaxOutstandingSplitTransactions_raw(this: *mut Self, val: USHORT) {
28049 unsafe {
28050 let val: u16 = ::core::mem::transmute(val);
28051 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28052 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28053 4usize,
28054 3u8,
28055 val as u64,
28056 )
28057 }
28058 }
28059 #[inline]
28060 pub fn Reserved(&self) -> USHORT {
28061 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 9u8) as u16) }
28062 }
28063 #[inline]
28064 pub fn set_Reserved(&mut self, val: USHORT) {
28065 unsafe {
28066 let val: u16 = ::core::mem::transmute(val);
28067 self._bitfield_1.set(7usize, 9u8, val as u64)
28068 }
28069 }
28070 #[inline]
28071 pub unsafe fn Reserved_raw(this: *const Self) -> USHORT {
28072 unsafe {
28073 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28074 ::core::ptr::addr_of!((*this)._bitfield_1),
28075 7usize,
28076 9u8,
28077 ) as u16)
28078 }
28079 }
28080 #[inline]
28081 pub unsafe fn set_Reserved_raw(this: *mut Self, val: USHORT) {
28082 unsafe {
28083 let val: u16 = ::core::mem::transmute(val);
28084 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28085 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28086 7usize,
28087 9u8,
28088 val as u64,
28089 )
28090 }
28091 }
28092 #[inline]
28093 pub fn new_bitfield_1(
28094 DataParityErrorRecoveryEnable: USHORT,
28095 EnableRelaxedOrdering: USHORT,
28096 MaxMemoryReadByteCount: USHORT,
28097 MaxOutstandingSplitTransactions: USHORT,
28098 Reserved: USHORT,
28099 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
28100 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
28101 __bindgen_bitfield_unit.set(0usize, 1u8, {
28102 let DataParityErrorRecoveryEnable: u16 =
28103 unsafe { ::core::mem::transmute(DataParityErrorRecoveryEnable) };
28104 DataParityErrorRecoveryEnable as u64
28105 });
28106 __bindgen_bitfield_unit.set(1usize, 1u8, {
28107 let EnableRelaxedOrdering: u16 =
28108 unsafe { ::core::mem::transmute(EnableRelaxedOrdering) };
28109 EnableRelaxedOrdering as u64
28110 });
28111 __bindgen_bitfield_unit.set(2usize, 2u8, {
28112 let MaxMemoryReadByteCount: u16 =
28113 unsafe { ::core::mem::transmute(MaxMemoryReadByteCount) };
28114 MaxMemoryReadByteCount as u64
28115 });
28116 __bindgen_bitfield_unit.set(4usize, 3u8, {
28117 let MaxOutstandingSplitTransactions: u16 =
28118 unsafe { ::core::mem::transmute(MaxOutstandingSplitTransactions) };
28119 MaxOutstandingSplitTransactions as u64
28120 });
28121 __bindgen_bitfield_unit.set(7usize, 9u8, {
28122 let Reserved: u16 = unsafe { ::core::mem::transmute(Reserved) };
28123 Reserved as u64
28124 });
28125 __bindgen_bitfield_unit
28126 }
28127}
28128#[repr(C)]
28129#[derive(Copy, Clone)]
28130pub union PCI_X_CAPABILITY__bindgen_ty_2 {
28131 pub bits: PCI_X_CAPABILITY__bindgen_ty_2__bindgen_ty_1,
28132 pub AsULONG: ULONG,
28133}
28134#[repr(C)]
28135#[repr(align(4))]
28136#[derive(Debug, Copy, Clone)]
28137pub struct PCI_X_CAPABILITY__bindgen_ty_2__bindgen_ty_1 {
28138 pub _bitfield_align_1: [u8; 0],
28139 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
28140}
28141impl PCI_X_CAPABILITY__bindgen_ty_2__bindgen_ty_1 {
28142 #[inline]
28143 pub fn FunctionNumber(&self) -> ULONG {
28144 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
28145 }
28146 #[inline]
28147 pub fn set_FunctionNumber(&mut self, val: ULONG) {
28148 unsafe {
28149 let val: u32 = ::core::mem::transmute(val);
28150 self._bitfield_1.set(0usize, 3u8, val as u64)
28151 }
28152 }
28153 #[inline]
28154 pub unsafe fn FunctionNumber_raw(this: *const Self) -> ULONG {
28155 unsafe {
28156 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28157 ::core::ptr::addr_of!((*this)._bitfield_1),
28158 0usize,
28159 3u8,
28160 ) as u32)
28161 }
28162 }
28163 #[inline]
28164 pub unsafe fn set_FunctionNumber_raw(this: *mut Self, val: ULONG) {
28165 unsafe {
28166 let val: u32 = ::core::mem::transmute(val);
28167 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28168 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28169 0usize,
28170 3u8,
28171 val as u64,
28172 )
28173 }
28174 }
28175 #[inline]
28176 pub fn DeviceNumber(&self) -> ULONG {
28177 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 5u8) as u32) }
28178 }
28179 #[inline]
28180 pub fn set_DeviceNumber(&mut self, val: ULONG) {
28181 unsafe {
28182 let val: u32 = ::core::mem::transmute(val);
28183 self._bitfield_1.set(3usize, 5u8, val as u64)
28184 }
28185 }
28186 #[inline]
28187 pub unsafe fn DeviceNumber_raw(this: *const Self) -> ULONG {
28188 unsafe {
28189 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28190 ::core::ptr::addr_of!((*this)._bitfield_1),
28191 3usize,
28192 5u8,
28193 ) as u32)
28194 }
28195 }
28196 #[inline]
28197 pub unsafe fn set_DeviceNumber_raw(this: *mut Self, val: ULONG) {
28198 unsafe {
28199 let val: u32 = ::core::mem::transmute(val);
28200 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28201 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28202 3usize,
28203 5u8,
28204 val as u64,
28205 )
28206 }
28207 }
28208 #[inline]
28209 pub fn BusNumber(&self) -> ULONG {
28210 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
28211 }
28212 #[inline]
28213 pub fn set_BusNumber(&mut self, val: ULONG) {
28214 unsafe {
28215 let val: u32 = ::core::mem::transmute(val);
28216 self._bitfield_1.set(8usize, 8u8, val as u64)
28217 }
28218 }
28219 #[inline]
28220 pub unsafe fn BusNumber_raw(this: *const Self) -> ULONG {
28221 unsafe {
28222 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28223 ::core::ptr::addr_of!((*this)._bitfield_1),
28224 8usize,
28225 8u8,
28226 ) as u32)
28227 }
28228 }
28229 #[inline]
28230 pub unsafe fn set_BusNumber_raw(this: *mut Self, val: ULONG) {
28231 unsafe {
28232 let val: u32 = ::core::mem::transmute(val);
28233 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28234 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28235 8usize,
28236 8u8,
28237 val as u64,
28238 )
28239 }
28240 }
28241 #[inline]
28242 pub fn Device64Bit(&self) -> ULONG {
28243 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
28244 }
28245 #[inline]
28246 pub fn set_Device64Bit(&mut self, val: ULONG) {
28247 unsafe {
28248 let val: u32 = ::core::mem::transmute(val);
28249 self._bitfield_1.set(16usize, 1u8, val as u64)
28250 }
28251 }
28252 #[inline]
28253 pub unsafe fn Device64Bit_raw(this: *const Self) -> ULONG {
28254 unsafe {
28255 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28256 ::core::ptr::addr_of!((*this)._bitfield_1),
28257 16usize,
28258 1u8,
28259 ) as u32)
28260 }
28261 }
28262 #[inline]
28263 pub unsafe fn set_Device64Bit_raw(this: *mut Self, val: ULONG) {
28264 unsafe {
28265 let val: u32 = ::core::mem::transmute(val);
28266 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28267 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28268 16usize,
28269 1u8,
28270 val as u64,
28271 )
28272 }
28273 }
28274 #[inline]
28275 pub fn Capable133MHz(&self) -> ULONG {
28276 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
28277 }
28278 #[inline]
28279 pub fn set_Capable133MHz(&mut self, val: ULONG) {
28280 unsafe {
28281 let val: u32 = ::core::mem::transmute(val);
28282 self._bitfield_1.set(17usize, 1u8, val as u64)
28283 }
28284 }
28285 #[inline]
28286 pub unsafe fn Capable133MHz_raw(this: *const Self) -> ULONG {
28287 unsafe {
28288 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28289 ::core::ptr::addr_of!((*this)._bitfield_1),
28290 17usize,
28291 1u8,
28292 ) as u32)
28293 }
28294 }
28295 #[inline]
28296 pub unsafe fn set_Capable133MHz_raw(this: *mut Self, val: ULONG) {
28297 unsafe {
28298 let val: u32 = ::core::mem::transmute(val);
28299 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28300 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28301 17usize,
28302 1u8,
28303 val as u64,
28304 )
28305 }
28306 }
28307 #[inline]
28308 pub fn SplitCompletionDiscarded(&self) -> ULONG {
28309 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
28310 }
28311 #[inline]
28312 pub fn set_SplitCompletionDiscarded(&mut self, val: ULONG) {
28313 unsafe {
28314 let val: u32 = ::core::mem::transmute(val);
28315 self._bitfield_1.set(18usize, 1u8, val as u64)
28316 }
28317 }
28318 #[inline]
28319 pub unsafe fn SplitCompletionDiscarded_raw(this: *const Self) -> ULONG {
28320 unsafe {
28321 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28322 ::core::ptr::addr_of!((*this)._bitfield_1),
28323 18usize,
28324 1u8,
28325 ) as u32)
28326 }
28327 }
28328 #[inline]
28329 pub unsafe fn set_SplitCompletionDiscarded_raw(this: *mut Self, val: ULONG) {
28330 unsafe {
28331 let val: u32 = ::core::mem::transmute(val);
28332 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28333 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28334 18usize,
28335 1u8,
28336 val as u64,
28337 )
28338 }
28339 }
28340 #[inline]
28341 pub fn UnexpectedSplitCompletion(&self) -> ULONG {
28342 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
28343 }
28344 #[inline]
28345 pub fn set_UnexpectedSplitCompletion(&mut self, val: ULONG) {
28346 unsafe {
28347 let val: u32 = ::core::mem::transmute(val);
28348 self._bitfield_1.set(19usize, 1u8, val as u64)
28349 }
28350 }
28351 #[inline]
28352 pub unsafe fn UnexpectedSplitCompletion_raw(this: *const Self) -> ULONG {
28353 unsafe {
28354 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28355 ::core::ptr::addr_of!((*this)._bitfield_1),
28356 19usize,
28357 1u8,
28358 ) as u32)
28359 }
28360 }
28361 #[inline]
28362 pub unsafe fn set_UnexpectedSplitCompletion_raw(this: *mut Self, val: ULONG) {
28363 unsafe {
28364 let val: u32 = ::core::mem::transmute(val);
28365 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28366 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28367 19usize,
28368 1u8,
28369 val as u64,
28370 )
28371 }
28372 }
28373 #[inline]
28374 pub fn DeviceComplexity(&self) -> ULONG {
28375 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
28376 }
28377 #[inline]
28378 pub fn set_DeviceComplexity(&mut self, val: ULONG) {
28379 unsafe {
28380 let val: u32 = ::core::mem::transmute(val);
28381 self._bitfield_1.set(20usize, 1u8, val as u64)
28382 }
28383 }
28384 #[inline]
28385 pub unsafe fn DeviceComplexity_raw(this: *const Self) -> ULONG {
28386 unsafe {
28387 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28388 ::core::ptr::addr_of!((*this)._bitfield_1),
28389 20usize,
28390 1u8,
28391 ) as u32)
28392 }
28393 }
28394 #[inline]
28395 pub unsafe fn set_DeviceComplexity_raw(this: *mut Self, val: ULONG) {
28396 unsafe {
28397 let val: u32 = ::core::mem::transmute(val);
28398 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28399 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28400 20usize,
28401 1u8,
28402 val as u64,
28403 )
28404 }
28405 }
28406 #[inline]
28407 pub fn DesignedMaxMemoryReadByteCount(&self) -> ULONG {
28408 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 2u8) as u32) }
28409 }
28410 #[inline]
28411 pub fn set_DesignedMaxMemoryReadByteCount(&mut self, val: ULONG) {
28412 unsafe {
28413 let val: u32 = ::core::mem::transmute(val);
28414 self._bitfield_1.set(21usize, 2u8, val as u64)
28415 }
28416 }
28417 #[inline]
28418 pub unsafe fn DesignedMaxMemoryReadByteCount_raw(this: *const Self) -> ULONG {
28419 unsafe {
28420 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28421 ::core::ptr::addr_of!((*this)._bitfield_1),
28422 21usize,
28423 2u8,
28424 ) as u32)
28425 }
28426 }
28427 #[inline]
28428 pub unsafe fn set_DesignedMaxMemoryReadByteCount_raw(this: *mut Self, val: ULONG) {
28429 unsafe {
28430 let val: u32 = ::core::mem::transmute(val);
28431 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28432 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28433 21usize,
28434 2u8,
28435 val as u64,
28436 )
28437 }
28438 }
28439 #[inline]
28440 pub fn DesignedMaxOutstandingSplitTransactions(&self) -> ULONG {
28441 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 3u8) as u32) }
28442 }
28443 #[inline]
28444 pub fn set_DesignedMaxOutstandingSplitTransactions(&mut self, val: ULONG) {
28445 unsafe {
28446 let val: u32 = ::core::mem::transmute(val);
28447 self._bitfield_1.set(23usize, 3u8, val as u64)
28448 }
28449 }
28450 #[inline]
28451 pub unsafe fn DesignedMaxOutstandingSplitTransactions_raw(this: *const Self) -> ULONG {
28452 unsafe {
28453 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28454 ::core::ptr::addr_of!((*this)._bitfield_1),
28455 23usize,
28456 3u8,
28457 ) as u32)
28458 }
28459 }
28460 #[inline]
28461 pub unsafe fn set_DesignedMaxOutstandingSplitTransactions_raw(this: *mut Self, val: ULONG) {
28462 unsafe {
28463 let val: u32 = ::core::mem::transmute(val);
28464 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28465 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28466 23usize,
28467 3u8,
28468 val as u64,
28469 )
28470 }
28471 }
28472 #[inline]
28473 pub fn DesignedMaxCumulativeReadSize(&self) -> ULONG {
28474 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 3u8) as u32) }
28475 }
28476 #[inline]
28477 pub fn set_DesignedMaxCumulativeReadSize(&mut self, val: ULONG) {
28478 unsafe {
28479 let val: u32 = ::core::mem::transmute(val);
28480 self._bitfield_1.set(26usize, 3u8, val as u64)
28481 }
28482 }
28483 #[inline]
28484 pub unsafe fn DesignedMaxCumulativeReadSize_raw(this: *const Self) -> ULONG {
28485 unsafe {
28486 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28487 ::core::ptr::addr_of!((*this)._bitfield_1),
28488 26usize,
28489 3u8,
28490 ) as u32)
28491 }
28492 }
28493 #[inline]
28494 pub unsafe fn set_DesignedMaxCumulativeReadSize_raw(this: *mut Self, val: ULONG) {
28495 unsafe {
28496 let val: u32 = ::core::mem::transmute(val);
28497 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28498 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28499 26usize,
28500 3u8,
28501 val as u64,
28502 )
28503 }
28504 }
28505 #[inline]
28506 pub fn ReceivedSplitCompletionErrorMessage(&self) -> ULONG {
28507 unsafe { ::core::mem::transmute(self._bitfield_1.get(29usize, 1u8) as u32) }
28508 }
28509 #[inline]
28510 pub fn set_ReceivedSplitCompletionErrorMessage(&mut self, val: ULONG) {
28511 unsafe {
28512 let val: u32 = ::core::mem::transmute(val);
28513 self._bitfield_1.set(29usize, 1u8, val as u64)
28514 }
28515 }
28516 #[inline]
28517 pub unsafe fn ReceivedSplitCompletionErrorMessage_raw(this: *const Self) -> ULONG {
28518 unsafe {
28519 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28520 ::core::ptr::addr_of!((*this)._bitfield_1),
28521 29usize,
28522 1u8,
28523 ) as u32)
28524 }
28525 }
28526 #[inline]
28527 pub unsafe fn set_ReceivedSplitCompletionErrorMessage_raw(this: *mut Self, val: ULONG) {
28528 unsafe {
28529 let val: u32 = ::core::mem::transmute(val);
28530 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28531 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28532 29usize,
28533 1u8,
28534 val as u64,
28535 )
28536 }
28537 }
28538 #[inline]
28539 pub fn CapablePCIX266(&self) -> ULONG {
28540 unsafe { ::core::mem::transmute(self._bitfield_1.get(30usize, 1u8) as u32) }
28541 }
28542 #[inline]
28543 pub fn set_CapablePCIX266(&mut self, val: ULONG) {
28544 unsafe {
28545 let val: u32 = ::core::mem::transmute(val);
28546 self._bitfield_1.set(30usize, 1u8, val as u64)
28547 }
28548 }
28549 #[inline]
28550 pub unsafe fn CapablePCIX266_raw(this: *const Self) -> ULONG {
28551 unsafe {
28552 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28553 ::core::ptr::addr_of!((*this)._bitfield_1),
28554 30usize,
28555 1u8,
28556 ) as u32)
28557 }
28558 }
28559 #[inline]
28560 pub unsafe fn set_CapablePCIX266_raw(this: *mut Self, val: ULONG) {
28561 unsafe {
28562 let val: u32 = ::core::mem::transmute(val);
28563 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28564 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28565 30usize,
28566 1u8,
28567 val as u64,
28568 )
28569 }
28570 }
28571 #[inline]
28572 pub fn CapablePCIX533(&self) -> ULONG {
28573 unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
28574 }
28575 #[inline]
28576 pub fn set_CapablePCIX533(&mut self, val: ULONG) {
28577 unsafe {
28578 let val: u32 = ::core::mem::transmute(val);
28579 self._bitfield_1.set(31usize, 1u8, val as u64)
28580 }
28581 }
28582 #[inline]
28583 pub unsafe fn CapablePCIX533_raw(this: *const Self) -> ULONG {
28584 unsafe {
28585 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
28586 ::core::ptr::addr_of!((*this)._bitfield_1),
28587 31usize,
28588 1u8,
28589 ) as u32)
28590 }
28591 }
28592 #[inline]
28593 pub unsafe fn set_CapablePCIX533_raw(this: *mut Self, val: ULONG) {
28594 unsafe {
28595 let val: u32 = ::core::mem::transmute(val);
28596 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
28597 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28598 31usize,
28599 1u8,
28600 val as u64,
28601 )
28602 }
28603 }
28604 #[inline]
28605 pub fn new_bitfield_1(
28606 FunctionNumber: ULONG,
28607 DeviceNumber: ULONG,
28608 BusNumber: ULONG,
28609 Device64Bit: ULONG,
28610 Capable133MHz: ULONG,
28611 SplitCompletionDiscarded: ULONG,
28612 UnexpectedSplitCompletion: ULONG,
28613 DeviceComplexity: ULONG,
28614 DesignedMaxMemoryReadByteCount: ULONG,
28615 DesignedMaxOutstandingSplitTransactions: ULONG,
28616 DesignedMaxCumulativeReadSize: ULONG,
28617 ReceivedSplitCompletionErrorMessage: ULONG,
28618 CapablePCIX266: ULONG,
28619 CapablePCIX533: ULONG,
28620 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
28621 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
28622 __bindgen_bitfield_unit.set(0usize, 3u8, {
28623 let FunctionNumber: u32 = unsafe { ::core::mem::transmute(FunctionNumber) };
28624 FunctionNumber as u64
28625 });
28626 __bindgen_bitfield_unit.set(3usize, 5u8, {
28627 let DeviceNumber: u32 = unsafe { ::core::mem::transmute(DeviceNumber) };
28628 DeviceNumber as u64
28629 });
28630 __bindgen_bitfield_unit.set(8usize, 8u8, {
28631 let BusNumber: u32 = unsafe { ::core::mem::transmute(BusNumber) };
28632 BusNumber as u64
28633 });
28634 __bindgen_bitfield_unit.set(16usize, 1u8, {
28635 let Device64Bit: u32 = unsafe { ::core::mem::transmute(Device64Bit) };
28636 Device64Bit as u64
28637 });
28638 __bindgen_bitfield_unit.set(17usize, 1u8, {
28639 let Capable133MHz: u32 = unsafe { ::core::mem::transmute(Capable133MHz) };
28640 Capable133MHz as u64
28641 });
28642 __bindgen_bitfield_unit.set(18usize, 1u8, {
28643 let SplitCompletionDiscarded: u32 =
28644 unsafe { ::core::mem::transmute(SplitCompletionDiscarded) };
28645 SplitCompletionDiscarded as u64
28646 });
28647 __bindgen_bitfield_unit.set(19usize, 1u8, {
28648 let UnexpectedSplitCompletion: u32 =
28649 unsafe { ::core::mem::transmute(UnexpectedSplitCompletion) };
28650 UnexpectedSplitCompletion as u64
28651 });
28652 __bindgen_bitfield_unit.set(20usize, 1u8, {
28653 let DeviceComplexity: u32 = unsafe { ::core::mem::transmute(DeviceComplexity) };
28654 DeviceComplexity as u64
28655 });
28656 __bindgen_bitfield_unit.set(21usize, 2u8, {
28657 let DesignedMaxMemoryReadByteCount: u32 =
28658 unsafe { ::core::mem::transmute(DesignedMaxMemoryReadByteCount) };
28659 DesignedMaxMemoryReadByteCount as u64
28660 });
28661 __bindgen_bitfield_unit.set(23usize, 3u8, {
28662 let DesignedMaxOutstandingSplitTransactions: u32 =
28663 unsafe { ::core::mem::transmute(DesignedMaxOutstandingSplitTransactions) };
28664 DesignedMaxOutstandingSplitTransactions as u64
28665 });
28666 __bindgen_bitfield_unit.set(26usize, 3u8, {
28667 let DesignedMaxCumulativeReadSize: u32 =
28668 unsafe { ::core::mem::transmute(DesignedMaxCumulativeReadSize) };
28669 DesignedMaxCumulativeReadSize as u64
28670 });
28671 __bindgen_bitfield_unit.set(29usize, 1u8, {
28672 let ReceivedSplitCompletionErrorMessage: u32 =
28673 unsafe { ::core::mem::transmute(ReceivedSplitCompletionErrorMessage) };
28674 ReceivedSplitCompletionErrorMessage as u64
28675 });
28676 __bindgen_bitfield_unit.set(30usize, 1u8, {
28677 let CapablePCIX266: u32 = unsafe { ::core::mem::transmute(CapablePCIX266) };
28678 CapablePCIX266 as u64
28679 });
28680 __bindgen_bitfield_unit.set(31usize, 1u8, {
28681 let CapablePCIX533: u32 = unsafe { ::core::mem::transmute(CapablePCIX533) };
28682 CapablePCIX533 as u64
28683 });
28684 __bindgen_bitfield_unit
28685 }
28686}
28687pub type PPCI_X_CAPABILITY = *mut PCI_X_CAPABILITY;
28688#[repr(C)]
28689#[derive(Debug, Copy, Clone)]
28690pub struct _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER {
28691 pub CapabilityID: USHORT,
28692 pub _bitfield_align_1: [u16; 0],
28693 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
28694}
28695impl _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER {
28696 #[inline]
28697 pub fn Version(&self) -> USHORT {
28698 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
28699 }
28700 #[inline]
28701 pub fn set_Version(&mut self, val: USHORT) {
28702 unsafe {
28703 let val: u16 = ::core::mem::transmute(val);
28704 self._bitfield_1.set(0usize, 4u8, val as u64)
28705 }
28706 }
28707 #[inline]
28708 pub unsafe fn Version_raw(this: *const Self) -> USHORT {
28709 unsafe {
28710 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28711 ::core::ptr::addr_of!((*this)._bitfield_1),
28712 0usize,
28713 4u8,
28714 ) as u16)
28715 }
28716 }
28717 #[inline]
28718 pub unsafe fn set_Version_raw(this: *mut Self, val: USHORT) {
28719 unsafe {
28720 let val: u16 = ::core::mem::transmute(val);
28721 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28722 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28723 0usize,
28724 4u8,
28725 val as u64,
28726 )
28727 }
28728 }
28729 #[inline]
28730 pub fn Next(&self) -> USHORT {
28731 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 12u8) as u16) }
28732 }
28733 #[inline]
28734 pub fn set_Next(&mut self, val: USHORT) {
28735 unsafe {
28736 let val: u16 = ::core::mem::transmute(val);
28737 self._bitfield_1.set(4usize, 12u8, val as u64)
28738 }
28739 }
28740 #[inline]
28741 pub unsafe fn Next_raw(this: *const Self) -> USHORT {
28742 unsafe {
28743 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28744 ::core::ptr::addr_of!((*this)._bitfield_1),
28745 4usize,
28746 12u8,
28747 ) as u16)
28748 }
28749 }
28750 #[inline]
28751 pub unsafe fn set_Next_raw(this: *mut Self, val: USHORT) {
28752 unsafe {
28753 let val: u16 = ::core::mem::transmute(val);
28754 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28755 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28756 4usize,
28757 12u8,
28758 val as u64,
28759 )
28760 }
28761 }
28762 #[inline]
28763 pub fn new_bitfield_1(Version: USHORT, Next: USHORT) -> __BindgenBitfieldUnit<[u8; 2usize]> {
28764 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
28765 __bindgen_bitfield_unit.set(0usize, 4u8, {
28766 let Version: u16 = unsafe { ::core::mem::transmute(Version) };
28767 Version as u64
28768 });
28769 __bindgen_bitfield_unit.set(4usize, 12u8, {
28770 let Next: u16 = unsafe { ::core::mem::transmute(Next) };
28771 Next as u64
28772 });
28773 __bindgen_bitfield_unit
28774 }
28775}
28776pub type PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER = _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER;
28777pub type PPCI_EXPRESS_ENHANCED_CAPABILITY_HEADER = *mut _PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER;
28778#[repr(C)]
28779#[derive(Debug, Copy, Clone)]
28780pub struct _PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY {
28781 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
28782 pub VsecId: USHORT,
28783 pub _bitfield_align_1: [u16; 0],
28784 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
28785}
28786impl _PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY {
28787 #[inline]
28788 pub fn VsecRev(&self) -> USHORT {
28789 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u16) }
28790 }
28791 #[inline]
28792 pub fn set_VsecRev(&mut self, val: USHORT) {
28793 unsafe {
28794 let val: u16 = ::core::mem::transmute(val);
28795 self._bitfield_1.set(0usize, 4u8, val as u64)
28796 }
28797 }
28798 #[inline]
28799 pub unsafe fn VsecRev_raw(this: *const Self) -> USHORT {
28800 unsafe {
28801 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28802 ::core::ptr::addr_of!((*this)._bitfield_1),
28803 0usize,
28804 4u8,
28805 ) as u16)
28806 }
28807 }
28808 #[inline]
28809 pub unsafe fn set_VsecRev_raw(this: *mut Self, val: USHORT) {
28810 unsafe {
28811 let val: u16 = ::core::mem::transmute(val);
28812 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28813 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28814 0usize,
28815 4u8,
28816 val as u64,
28817 )
28818 }
28819 }
28820 #[inline]
28821 pub fn VsecLength(&self) -> USHORT {
28822 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 12u8) as u16) }
28823 }
28824 #[inline]
28825 pub fn set_VsecLength(&mut self, val: USHORT) {
28826 unsafe {
28827 let val: u16 = ::core::mem::transmute(val);
28828 self._bitfield_1.set(4usize, 12u8, val as u64)
28829 }
28830 }
28831 #[inline]
28832 pub unsafe fn VsecLength_raw(this: *const Self) -> USHORT {
28833 unsafe {
28834 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28835 ::core::ptr::addr_of!((*this)._bitfield_1),
28836 4usize,
28837 12u8,
28838 ) as u16)
28839 }
28840 }
28841 #[inline]
28842 pub unsafe fn set_VsecLength_raw(this: *mut Self, val: USHORT) {
28843 unsafe {
28844 let val: u16 = ::core::mem::transmute(val);
28845 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28846 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28847 4usize,
28848 12u8,
28849 val as u64,
28850 )
28851 }
28852 }
28853 #[inline]
28854 pub fn new_bitfield_1(
28855 VsecRev: USHORT,
28856 VsecLength: USHORT,
28857 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
28858 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
28859 __bindgen_bitfield_unit.set(0usize, 4u8, {
28860 let VsecRev: u16 = unsafe { ::core::mem::transmute(VsecRev) };
28861 VsecRev as u64
28862 });
28863 __bindgen_bitfield_unit.set(4usize, 12u8, {
28864 let VsecLength: u16 = unsafe { ::core::mem::transmute(VsecLength) };
28865 VsecLength as u64
28866 });
28867 __bindgen_bitfield_unit
28868 }
28869}
28870pub type PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY = _PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY;
28871pub type PPCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY = *mut _PCI_EXPRESS_VENDOR_SPECIFIC_CAPABILITY;
28872#[repr(C)]
28873#[derive(Debug, Copy, Clone)]
28874pub struct _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY {
28875 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
28876 pub LowSerialNumber: ULONG,
28877 pub HighSerialNumber: ULONG,
28878}
28879pub type PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY = _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY;
28880pub type PPCI_EXPRESS_SERIAL_NUMBER_CAPABILITY = *mut _PCI_EXPRESS_SERIAL_NUMBER_CAPABILITY;
28881#[repr(C)]
28882#[repr(align(2))]
28883#[derive(Debug, Copy, Clone)]
28884pub struct _PCI_EXPRESS_ARI_CAPABILITY_REGISTER {
28885 pub _bitfield_align_1: [u8; 0],
28886 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
28887}
28888impl _PCI_EXPRESS_ARI_CAPABILITY_REGISTER {
28889 #[inline]
28890 pub fn MfvcFunctionGroupsCapability(&self) -> USHORT {
28891 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
28892 }
28893 #[inline]
28894 pub fn set_MfvcFunctionGroupsCapability(&mut self, val: USHORT) {
28895 unsafe {
28896 let val: u16 = ::core::mem::transmute(val);
28897 self._bitfield_1.set(0usize, 1u8, val as u64)
28898 }
28899 }
28900 #[inline]
28901 pub unsafe fn MfvcFunctionGroupsCapability_raw(this: *const Self) -> USHORT {
28902 unsafe {
28903 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28904 ::core::ptr::addr_of!((*this)._bitfield_1),
28905 0usize,
28906 1u8,
28907 ) as u16)
28908 }
28909 }
28910 #[inline]
28911 pub unsafe fn set_MfvcFunctionGroupsCapability_raw(this: *mut Self, val: USHORT) {
28912 unsafe {
28913 let val: u16 = ::core::mem::transmute(val);
28914 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28915 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28916 0usize,
28917 1u8,
28918 val as u64,
28919 )
28920 }
28921 }
28922 #[inline]
28923 pub fn AcsFunctionGroupsCapability(&self) -> USHORT {
28924 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
28925 }
28926 #[inline]
28927 pub fn set_AcsFunctionGroupsCapability(&mut self, val: USHORT) {
28928 unsafe {
28929 let val: u16 = ::core::mem::transmute(val);
28930 self._bitfield_1.set(1usize, 1u8, val as u64)
28931 }
28932 }
28933 #[inline]
28934 pub unsafe fn AcsFunctionGroupsCapability_raw(this: *const Self) -> USHORT {
28935 unsafe {
28936 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28937 ::core::ptr::addr_of!((*this)._bitfield_1),
28938 1usize,
28939 1u8,
28940 ) as u16)
28941 }
28942 }
28943 #[inline]
28944 pub unsafe fn set_AcsFunctionGroupsCapability_raw(this: *mut Self, val: USHORT) {
28945 unsafe {
28946 let val: u16 = ::core::mem::transmute(val);
28947 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28948 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28949 1usize,
28950 1u8,
28951 val as u64,
28952 )
28953 }
28954 }
28955 #[inline]
28956 pub fn Reserved(&self) -> USHORT {
28957 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u16) }
28958 }
28959 #[inline]
28960 pub fn set_Reserved(&mut self, val: USHORT) {
28961 unsafe {
28962 let val: u16 = ::core::mem::transmute(val);
28963 self._bitfield_1.set(2usize, 6u8, val as u64)
28964 }
28965 }
28966 #[inline]
28967 pub unsafe fn Reserved_raw(this: *const Self) -> USHORT {
28968 unsafe {
28969 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
28970 ::core::ptr::addr_of!((*this)._bitfield_1),
28971 2usize,
28972 6u8,
28973 ) as u16)
28974 }
28975 }
28976 #[inline]
28977 pub unsafe fn set_Reserved_raw(this: *mut Self, val: USHORT) {
28978 unsafe {
28979 let val: u16 = ::core::mem::transmute(val);
28980 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
28981 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
28982 2usize,
28983 6u8,
28984 val as u64,
28985 )
28986 }
28987 }
28988 #[inline]
28989 pub fn NextFunctionNumber(&self) -> USHORT {
28990 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) }
28991 }
28992 #[inline]
28993 pub fn set_NextFunctionNumber(&mut self, val: USHORT) {
28994 unsafe {
28995 let val: u16 = ::core::mem::transmute(val);
28996 self._bitfield_1.set(8usize, 8u8, val as u64)
28997 }
28998 }
28999 #[inline]
29000 pub unsafe fn NextFunctionNumber_raw(this: *const Self) -> USHORT {
29001 unsafe {
29002 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29003 ::core::ptr::addr_of!((*this)._bitfield_1),
29004 8usize,
29005 8u8,
29006 ) as u16)
29007 }
29008 }
29009 #[inline]
29010 pub unsafe fn set_NextFunctionNumber_raw(this: *mut Self, val: USHORT) {
29011 unsafe {
29012 let val: u16 = ::core::mem::transmute(val);
29013 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29014 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29015 8usize,
29016 8u8,
29017 val as u64,
29018 )
29019 }
29020 }
29021 #[inline]
29022 pub fn new_bitfield_1(
29023 MfvcFunctionGroupsCapability: USHORT,
29024 AcsFunctionGroupsCapability: USHORT,
29025 Reserved: USHORT,
29026 NextFunctionNumber: USHORT,
29027 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
29028 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
29029 __bindgen_bitfield_unit.set(0usize, 1u8, {
29030 let MfvcFunctionGroupsCapability: u16 =
29031 unsafe { ::core::mem::transmute(MfvcFunctionGroupsCapability) };
29032 MfvcFunctionGroupsCapability as u64
29033 });
29034 __bindgen_bitfield_unit.set(1usize, 1u8, {
29035 let AcsFunctionGroupsCapability: u16 =
29036 unsafe { ::core::mem::transmute(AcsFunctionGroupsCapability) };
29037 AcsFunctionGroupsCapability as u64
29038 });
29039 __bindgen_bitfield_unit.set(2usize, 6u8, {
29040 let Reserved: u16 = unsafe { ::core::mem::transmute(Reserved) };
29041 Reserved as u64
29042 });
29043 __bindgen_bitfield_unit.set(8usize, 8u8, {
29044 let NextFunctionNumber: u16 = unsafe { ::core::mem::transmute(NextFunctionNumber) };
29045 NextFunctionNumber as u64
29046 });
29047 __bindgen_bitfield_unit
29048 }
29049}
29050pub type PCI_EXPRESS_ARI_CAPABILITY_REGISTER = _PCI_EXPRESS_ARI_CAPABILITY_REGISTER;
29051pub type PPCI_EXPRESS_ARI_CAPABILITY_REGISTER = *mut _PCI_EXPRESS_ARI_CAPABILITY_REGISTER;
29052#[repr(C)]
29053#[derive(Debug, Copy, Clone)]
29054pub struct _PCI_EXPRESS_ARI_CONTROL_REGISTER {
29055 pub _bitfield_align_1: [u16; 0],
29056 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
29057}
29058impl _PCI_EXPRESS_ARI_CONTROL_REGISTER {
29059 #[inline]
29060 pub fn MfvcFunctionGroupsEnable(&self) -> USHORT {
29061 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
29062 }
29063 #[inline]
29064 pub fn set_MfvcFunctionGroupsEnable(&mut self, val: USHORT) {
29065 unsafe {
29066 let val: u16 = ::core::mem::transmute(val);
29067 self._bitfield_1.set(0usize, 1u8, val as u64)
29068 }
29069 }
29070 #[inline]
29071 pub unsafe fn MfvcFunctionGroupsEnable_raw(this: *const Self) -> USHORT {
29072 unsafe {
29073 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29074 ::core::ptr::addr_of!((*this)._bitfield_1),
29075 0usize,
29076 1u8,
29077 ) as u16)
29078 }
29079 }
29080 #[inline]
29081 pub unsafe fn set_MfvcFunctionGroupsEnable_raw(this: *mut Self, val: USHORT) {
29082 unsafe {
29083 let val: u16 = ::core::mem::transmute(val);
29084 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29085 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29086 0usize,
29087 1u8,
29088 val as u64,
29089 )
29090 }
29091 }
29092 #[inline]
29093 pub fn AcsFunctionGroupsEnable(&self) -> USHORT {
29094 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
29095 }
29096 #[inline]
29097 pub fn set_AcsFunctionGroupsEnable(&mut self, val: USHORT) {
29098 unsafe {
29099 let val: u16 = ::core::mem::transmute(val);
29100 self._bitfield_1.set(1usize, 1u8, val as u64)
29101 }
29102 }
29103 #[inline]
29104 pub unsafe fn AcsFunctionGroupsEnable_raw(this: *const Self) -> USHORT {
29105 unsafe {
29106 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29107 ::core::ptr::addr_of!((*this)._bitfield_1),
29108 1usize,
29109 1u8,
29110 ) as u16)
29111 }
29112 }
29113 #[inline]
29114 pub unsafe fn set_AcsFunctionGroupsEnable_raw(this: *mut Self, val: USHORT) {
29115 unsafe {
29116 let val: u16 = ::core::mem::transmute(val);
29117 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29118 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29119 1usize,
29120 1u8,
29121 val as u64,
29122 )
29123 }
29124 }
29125 #[inline]
29126 pub fn Reserved1(&self) -> USHORT {
29127 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 2u8) as u16) }
29128 }
29129 #[inline]
29130 pub fn set_Reserved1(&mut self, val: USHORT) {
29131 unsafe {
29132 let val: u16 = ::core::mem::transmute(val);
29133 self._bitfield_1.set(2usize, 2u8, val as u64)
29134 }
29135 }
29136 #[inline]
29137 pub unsafe fn Reserved1_raw(this: *const Self) -> USHORT {
29138 unsafe {
29139 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29140 ::core::ptr::addr_of!((*this)._bitfield_1),
29141 2usize,
29142 2u8,
29143 ) as u16)
29144 }
29145 }
29146 #[inline]
29147 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: USHORT) {
29148 unsafe {
29149 let val: u16 = ::core::mem::transmute(val);
29150 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29151 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29152 2usize,
29153 2u8,
29154 val as u64,
29155 )
29156 }
29157 }
29158 #[inline]
29159 pub fn FunctionGroup(&self) -> USHORT {
29160 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u16) }
29161 }
29162 #[inline]
29163 pub fn set_FunctionGroup(&mut self, val: USHORT) {
29164 unsafe {
29165 let val: u16 = ::core::mem::transmute(val);
29166 self._bitfield_1.set(4usize, 3u8, val as u64)
29167 }
29168 }
29169 #[inline]
29170 pub unsafe fn FunctionGroup_raw(this: *const Self) -> USHORT {
29171 unsafe {
29172 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29173 ::core::ptr::addr_of!((*this)._bitfield_1),
29174 4usize,
29175 3u8,
29176 ) as u16)
29177 }
29178 }
29179 #[inline]
29180 pub unsafe fn set_FunctionGroup_raw(this: *mut Self, val: USHORT) {
29181 unsafe {
29182 let val: u16 = ::core::mem::transmute(val);
29183 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29184 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29185 4usize,
29186 3u8,
29187 val as u64,
29188 )
29189 }
29190 }
29191 #[inline]
29192 pub fn Reserved2(&self) -> USHORT {
29193 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 9u8) as u16) }
29194 }
29195 #[inline]
29196 pub fn set_Reserved2(&mut self, val: USHORT) {
29197 unsafe {
29198 let val: u16 = ::core::mem::transmute(val);
29199 self._bitfield_1.set(7usize, 9u8, val as u64)
29200 }
29201 }
29202 #[inline]
29203 pub unsafe fn Reserved2_raw(this: *const Self) -> USHORT {
29204 unsafe {
29205 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29206 ::core::ptr::addr_of!((*this)._bitfield_1),
29207 7usize,
29208 9u8,
29209 ) as u16)
29210 }
29211 }
29212 #[inline]
29213 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: USHORT) {
29214 unsafe {
29215 let val: u16 = ::core::mem::transmute(val);
29216 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29217 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29218 7usize,
29219 9u8,
29220 val as u64,
29221 )
29222 }
29223 }
29224 #[inline]
29225 pub fn new_bitfield_1(
29226 MfvcFunctionGroupsEnable: USHORT,
29227 AcsFunctionGroupsEnable: USHORT,
29228 Reserved1: USHORT,
29229 FunctionGroup: USHORT,
29230 Reserved2: USHORT,
29231 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
29232 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
29233 __bindgen_bitfield_unit.set(0usize, 1u8, {
29234 let MfvcFunctionGroupsEnable: u16 =
29235 unsafe { ::core::mem::transmute(MfvcFunctionGroupsEnable) };
29236 MfvcFunctionGroupsEnable as u64
29237 });
29238 __bindgen_bitfield_unit.set(1usize, 1u8, {
29239 let AcsFunctionGroupsEnable: u16 =
29240 unsafe { ::core::mem::transmute(AcsFunctionGroupsEnable) };
29241 AcsFunctionGroupsEnable as u64
29242 });
29243 __bindgen_bitfield_unit.set(2usize, 2u8, {
29244 let Reserved1: u16 = unsafe { ::core::mem::transmute(Reserved1) };
29245 Reserved1 as u64
29246 });
29247 __bindgen_bitfield_unit.set(4usize, 3u8, {
29248 let FunctionGroup: u16 = unsafe { ::core::mem::transmute(FunctionGroup) };
29249 FunctionGroup as u64
29250 });
29251 __bindgen_bitfield_unit.set(7usize, 9u8, {
29252 let Reserved2: u16 = unsafe { ::core::mem::transmute(Reserved2) };
29253 Reserved2 as u64
29254 });
29255 __bindgen_bitfield_unit
29256 }
29257}
29258pub type PCI_EXPRESS_ARI_CONTROL_REGISTER = _PCI_EXPRESS_ARI_CONTROL_REGISTER;
29259pub type PPCI_EXPRESS_ARI_CONTROL_REGISTER = *mut _PCI_EXPRESS_ARI_CONTROL_REGISTER;
29260#[repr(C)]
29261#[derive(Debug, Copy, Clone)]
29262pub struct _PCI_EXPRESS_ARI_CAPABILITY {
29263 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
29264 pub Capability: PCI_EXPRESS_ARI_CAPABILITY_REGISTER,
29265 pub Control: PCI_EXPRESS_ARI_CONTROL_REGISTER,
29266}
29267pub type PCI_EXPRESS_ARI_CAPABILITY = _PCI_EXPRESS_ARI_CAPABILITY;
29268pub type PPCI_EXPRESS_ARI_CAPABILITY = *mut _PCI_EXPRESS_ARI_CAPABILITY;
29269#[repr(C)]
29270#[derive(Copy, Clone)]
29271pub union _VIRTUAL_CHANNEL_CAPABILITIES1 {
29272 pub __bindgen_anon_1: _VIRTUAL_CHANNEL_CAPABILITIES1__bindgen_ty_1,
29273 pub AsULONG: ULONG,
29274}
29275#[repr(C)]
29276#[derive(Debug, Copy, Clone)]
29277pub struct _VIRTUAL_CHANNEL_CAPABILITIES1__bindgen_ty_1 {
29278 pub _bitfield_align_1: [u32; 0],
29279 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
29280}
29281impl _VIRTUAL_CHANNEL_CAPABILITIES1__bindgen_ty_1 {
29282 #[inline]
29283 pub fn ExtendedVCCount(&self) -> ULONG {
29284 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
29285 }
29286 #[inline]
29287 pub fn set_ExtendedVCCount(&mut self, val: ULONG) {
29288 unsafe {
29289 let val: u32 = ::core::mem::transmute(val);
29290 self._bitfield_1.set(0usize, 3u8, val as u64)
29291 }
29292 }
29293 #[inline]
29294 pub unsafe fn ExtendedVCCount_raw(this: *const Self) -> ULONG {
29295 unsafe {
29296 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29297 ::core::ptr::addr_of!((*this)._bitfield_1),
29298 0usize,
29299 3u8,
29300 ) as u32)
29301 }
29302 }
29303 #[inline]
29304 pub unsafe fn set_ExtendedVCCount_raw(this: *mut Self, val: ULONG) {
29305 unsafe {
29306 let val: u32 = ::core::mem::transmute(val);
29307 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29308 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29309 0usize,
29310 3u8,
29311 val as u64,
29312 )
29313 }
29314 }
29315 #[inline]
29316 pub fn RsvdP1(&self) -> ULONG {
29317 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
29318 }
29319 #[inline]
29320 pub fn set_RsvdP1(&mut self, val: ULONG) {
29321 unsafe {
29322 let val: u32 = ::core::mem::transmute(val);
29323 self._bitfield_1.set(3usize, 1u8, val as u64)
29324 }
29325 }
29326 #[inline]
29327 pub unsafe fn RsvdP1_raw(this: *const Self) -> ULONG {
29328 unsafe {
29329 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29330 ::core::ptr::addr_of!((*this)._bitfield_1),
29331 3usize,
29332 1u8,
29333 ) as u32)
29334 }
29335 }
29336 #[inline]
29337 pub unsafe fn set_RsvdP1_raw(this: *mut Self, val: ULONG) {
29338 unsafe {
29339 let val: u32 = ::core::mem::transmute(val);
29340 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29341 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29342 3usize,
29343 1u8,
29344 val as u64,
29345 )
29346 }
29347 }
29348 #[inline]
29349 pub fn LowPriorityExtendedVCCount(&self) -> ULONG {
29350 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 3u8) as u32) }
29351 }
29352 #[inline]
29353 pub fn set_LowPriorityExtendedVCCount(&mut self, val: ULONG) {
29354 unsafe {
29355 let val: u32 = ::core::mem::transmute(val);
29356 self._bitfield_1.set(4usize, 3u8, val as u64)
29357 }
29358 }
29359 #[inline]
29360 pub unsafe fn LowPriorityExtendedVCCount_raw(this: *const Self) -> ULONG {
29361 unsafe {
29362 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29363 ::core::ptr::addr_of!((*this)._bitfield_1),
29364 4usize,
29365 3u8,
29366 ) as u32)
29367 }
29368 }
29369 #[inline]
29370 pub unsafe fn set_LowPriorityExtendedVCCount_raw(this: *mut Self, val: ULONG) {
29371 unsafe {
29372 let val: u32 = ::core::mem::transmute(val);
29373 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29374 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29375 4usize,
29376 3u8,
29377 val as u64,
29378 )
29379 }
29380 }
29381 #[inline]
29382 pub fn RsvdP2(&self) -> ULONG {
29383 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
29384 }
29385 #[inline]
29386 pub fn set_RsvdP2(&mut self, val: ULONG) {
29387 unsafe {
29388 let val: u32 = ::core::mem::transmute(val);
29389 self._bitfield_1.set(7usize, 1u8, val as u64)
29390 }
29391 }
29392 #[inline]
29393 pub unsafe fn RsvdP2_raw(this: *const Self) -> ULONG {
29394 unsafe {
29395 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29396 ::core::ptr::addr_of!((*this)._bitfield_1),
29397 7usize,
29398 1u8,
29399 ) as u32)
29400 }
29401 }
29402 #[inline]
29403 pub unsafe fn set_RsvdP2_raw(this: *mut Self, val: ULONG) {
29404 unsafe {
29405 let val: u32 = ::core::mem::transmute(val);
29406 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29407 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29408 7usize,
29409 1u8,
29410 val as u64,
29411 )
29412 }
29413 }
29414 #[inline]
29415 pub fn ReferenceClock(&self) -> ULONG {
29416 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 2u8) as u32) }
29417 }
29418 #[inline]
29419 pub fn set_ReferenceClock(&mut self, val: ULONG) {
29420 unsafe {
29421 let val: u32 = ::core::mem::transmute(val);
29422 self._bitfield_1.set(8usize, 2u8, val as u64)
29423 }
29424 }
29425 #[inline]
29426 pub unsafe fn ReferenceClock_raw(this: *const Self) -> ULONG {
29427 unsafe {
29428 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29429 ::core::ptr::addr_of!((*this)._bitfield_1),
29430 8usize,
29431 2u8,
29432 ) as u32)
29433 }
29434 }
29435 #[inline]
29436 pub unsafe fn set_ReferenceClock_raw(this: *mut Self, val: ULONG) {
29437 unsafe {
29438 let val: u32 = ::core::mem::transmute(val);
29439 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29440 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29441 8usize,
29442 2u8,
29443 val as u64,
29444 )
29445 }
29446 }
29447 #[inline]
29448 pub fn PortArbitrationTableEntrySize(&self) -> ULONG {
29449 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u32) }
29450 }
29451 #[inline]
29452 pub fn set_PortArbitrationTableEntrySize(&mut self, val: ULONG) {
29453 unsafe {
29454 let val: u32 = ::core::mem::transmute(val);
29455 self._bitfield_1.set(10usize, 2u8, val as u64)
29456 }
29457 }
29458 #[inline]
29459 pub unsafe fn PortArbitrationTableEntrySize_raw(this: *const Self) -> ULONG {
29460 unsafe {
29461 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29462 ::core::ptr::addr_of!((*this)._bitfield_1),
29463 10usize,
29464 2u8,
29465 ) as u32)
29466 }
29467 }
29468 #[inline]
29469 pub unsafe fn set_PortArbitrationTableEntrySize_raw(this: *mut Self, val: ULONG) {
29470 unsafe {
29471 let val: u32 = ::core::mem::transmute(val);
29472 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29473 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29474 10usize,
29475 2u8,
29476 val as u64,
29477 )
29478 }
29479 }
29480 #[inline]
29481 pub fn RsvdP3(&self) -> ULONG {
29482 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
29483 }
29484 #[inline]
29485 pub fn set_RsvdP3(&mut self, val: ULONG) {
29486 unsafe {
29487 let val: u32 = ::core::mem::transmute(val);
29488 self._bitfield_1.set(12usize, 20u8, val as u64)
29489 }
29490 }
29491 #[inline]
29492 pub unsafe fn RsvdP3_raw(this: *const Self) -> ULONG {
29493 unsafe {
29494 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29495 ::core::ptr::addr_of!((*this)._bitfield_1),
29496 12usize,
29497 20u8,
29498 ) as u32)
29499 }
29500 }
29501 #[inline]
29502 pub unsafe fn set_RsvdP3_raw(this: *mut Self, val: ULONG) {
29503 unsafe {
29504 let val: u32 = ::core::mem::transmute(val);
29505 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29506 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29507 12usize,
29508 20u8,
29509 val as u64,
29510 )
29511 }
29512 }
29513 #[inline]
29514 pub fn new_bitfield_1(
29515 ExtendedVCCount: ULONG,
29516 RsvdP1: ULONG,
29517 LowPriorityExtendedVCCount: ULONG,
29518 RsvdP2: ULONG,
29519 ReferenceClock: ULONG,
29520 PortArbitrationTableEntrySize: ULONG,
29521 RsvdP3: ULONG,
29522 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
29523 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
29524 __bindgen_bitfield_unit.set(0usize, 3u8, {
29525 let ExtendedVCCount: u32 = unsafe { ::core::mem::transmute(ExtendedVCCount) };
29526 ExtendedVCCount as u64
29527 });
29528 __bindgen_bitfield_unit.set(3usize, 1u8, {
29529 let RsvdP1: u32 = unsafe { ::core::mem::transmute(RsvdP1) };
29530 RsvdP1 as u64
29531 });
29532 __bindgen_bitfield_unit.set(4usize, 3u8, {
29533 let LowPriorityExtendedVCCount: u32 =
29534 unsafe { ::core::mem::transmute(LowPriorityExtendedVCCount) };
29535 LowPriorityExtendedVCCount as u64
29536 });
29537 __bindgen_bitfield_unit.set(7usize, 1u8, {
29538 let RsvdP2: u32 = unsafe { ::core::mem::transmute(RsvdP2) };
29539 RsvdP2 as u64
29540 });
29541 __bindgen_bitfield_unit.set(8usize, 2u8, {
29542 let ReferenceClock: u32 = unsafe { ::core::mem::transmute(ReferenceClock) };
29543 ReferenceClock as u64
29544 });
29545 __bindgen_bitfield_unit.set(10usize, 2u8, {
29546 let PortArbitrationTableEntrySize: u32 =
29547 unsafe { ::core::mem::transmute(PortArbitrationTableEntrySize) };
29548 PortArbitrationTableEntrySize as u64
29549 });
29550 __bindgen_bitfield_unit.set(12usize, 20u8, {
29551 let RsvdP3: u32 = unsafe { ::core::mem::transmute(RsvdP3) };
29552 RsvdP3 as u64
29553 });
29554 __bindgen_bitfield_unit
29555 }
29556}
29557pub type VIRTUAL_CHANNEL_CAPABILITIES1 = _VIRTUAL_CHANNEL_CAPABILITIES1;
29558pub type PVIRTUAL_CHANNEL_CAPABILITIES1 = *mut _VIRTUAL_CHANNEL_CAPABILITIES1;
29559#[repr(C)]
29560#[derive(Copy, Clone)]
29561pub union _VIRTUAL_CHANNEL_CAPABILITIES2 {
29562 pub __bindgen_anon_1: _VIRTUAL_CHANNEL_CAPABILITIES2__bindgen_ty_1,
29563 pub AsULONG: ULONG,
29564}
29565#[repr(C)]
29566#[repr(align(4))]
29567#[derive(Debug, Copy, Clone)]
29568pub struct _VIRTUAL_CHANNEL_CAPABILITIES2__bindgen_ty_1 {
29569 pub _bitfield_align_1: [u16; 0],
29570 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
29571}
29572impl _VIRTUAL_CHANNEL_CAPABILITIES2__bindgen_ty_1 {
29573 #[inline]
29574 pub fn VCArbitrationCapability(&self) -> ULONG {
29575 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
29576 }
29577 #[inline]
29578 pub fn set_VCArbitrationCapability(&mut self, val: ULONG) {
29579 unsafe {
29580 let val: u32 = ::core::mem::transmute(val);
29581 self._bitfield_1.set(0usize, 8u8, val as u64)
29582 }
29583 }
29584 #[inline]
29585 pub unsafe fn VCArbitrationCapability_raw(this: *const Self) -> ULONG {
29586 unsafe {
29587 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29588 ::core::ptr::addr_of!((*this)._bitfield_1),
29589 0usize,
29590 8u8,
29591 ) as u32)
29592 }
29593 }
29594 #[inline]
29595 pub unsafe fn set_VCArbitrationCapability_raw(this: *mut Self, val: ULONG) {
29596 unsafe {
29597 let val: u32 = ::core::mem::transmute(val);
29598 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29599 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29600 0usize,
29601 8u8,
29602 val as u64,
29603 )
29604 }
29605 }
29606 #[inline]
29607 pub fn RsvdP(&self) -> ULONG {
29608 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 16u8) as u32) }
29609 }
29610 #[inline]
29611 pub fn set_RsvdP(&mut self, val: ULONG) {
29612 unsafe {
29613 let val: u32 = ::core::mem::transmute(val);
29614 self._bitfield_1.set(8usize, 16u8, val as u64)
29615 }
29616 }
29617 #[inline]
29618 pub unsafe fn RsvdP_raw(this: *const Self) -> ULONG {
29619 unsafe {
29620 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29621 ::core::ptr::addr_of!((*this)._bitfield_1),
29622 8usize,
29623 16u8,
29624 ) as u32)
29625 }
29626 }
29627 #[inline]
29628 pub unsafe fn set_RsvdP_raw(this: *mut Self, val: ULONG) {
29629 unsafe {
29630 let val: u32 = ::core::mem::transmute(val);
29631 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29632 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29633 8usize,
29634 16u8,
29635 val as u64,
29636 )
29637 }
29638 }
29639 #[inline]
29640 pub fn VCArbitrationTableOffset(&self) -> ULONG {
29641 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
29642 }
29643 #[inline]
29644 pub fn set_VCArbitrationTableOffset(&mut self, val: ULONG) {
29645 unsafe {
29646 let val: u32 = ::core::mem::transmute(val);
29647 self._bitfield_1.set(24usize, 8u8, val as u64)
29648 }
29649 }
29650 #[inline]
29651 pub unsafe fn VCArbitrationTableOffset_raw(this: *const Self) -> ULONG {
29652 unsafe {
29653 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29654 ::core::ptr::addr_of!((*this)._bitfield_1),
29655 24usize,
29656 8u8,
29657 ) as u32)
29658 }
29659 }
29660 #[inline]
29661 pub unsafe fn set_VCArbitrationTableOffset_raw(this: *mut Self, val: ULONG) {
29662 unsafe {
29663 let val: u32 = ::core::mem::transmute(val);
29664 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29665 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29666 24usize,
29667 8u8,
29668 val as u64,
29669 )
29670 }
29671 }
29672 #[inline]
29673 pub fn new_bitfield_1(
29674 VCArbitrationCapability: ULONG,
29675 RsvdP: ULONG,
29676 VCArbitrationTableOffset: ULONG,
29677 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
29678 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
29679 __bindgen_bitfield_unit.set(0usize, 8u8, {
29680 let VCArbitrationCapability: u32 =
29681 unsafe { ::core::mem::transmute(VCArbitrationCapability) };
29682 VCArbitrationCapability as u64
29683 });
29684 __bindgen_bitfield_unit.set(8usize, 16u8, {
29685 let RsvdP: u32 = unsafe { ::core::mem::transmute(RsvdP) };
29686 RsvdP as u64
29687 });
29688 __bindgen_bitfield_unit.set(24usize, 8u8, {
29689 let VCArbitrationTableOffset: u32 =
29690 unsafe { ::core::mem::transmute(VCArbitrationTableOffset) };
29691 VCArbitrationTableOffset as u64
29692 });
29693 __bindgen_bitfield_unit
29694 }
29695}
29696pub type VIRTUAL_CHANNEL_CAPABILITIES2 = _VIRTUAL_CHANNEL_CAPABILITIES2;
29697pub type PVIRTUAL_CHANNEL_CAPABILITIES2 = *mut _VIRTUAL_CHANNEL_CAPABILITIES2;
29698#[repr(C)]
29699#[derive(Copy, Clone)]
29700pub union _VIRTUAL_CHANNEL_CONTROL {
29701 pub __bindgen_anon_1: _VIRTUAL_CHANNEL_CONTROL__bindgen_ty_1,
29702 pub AsUSHORT: USHORT,
29703}
29704#[repr(C)]
29705#[derive(Debug, Copy, Clone)]
29706pub struct _VIRTUAL_CHANNEL_CONTROL__bindgen_ty_1 {
29707 pub _bitfield_align_1: [u16; 0],
29708 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
29709}
29710impl _VIRTUAL_CHANNEL_CONTROL__bindgen_ty_1 {
29711 #[inline]
29712 pub fn LoadVCArbitrationTable(&self) -> USHORT {
29713 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
29714 }
29715 #[inline]
29716 pub fn set_LoadVCArbitrationTable(&mut self, val: USHORT) {
29717 unsafe {
29718 let val: u16 = ::core::mem::transmute(val);
29719 self._bitfield_1.set(0usize, 1u8, val as u64)
29720 }
29721 }
29722 #[inline]
29723 pub unsafe fn LoadVCArbitrationTable_raw(this: *const Self) -> USHORT {
29724 unsafe {
29725 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29726 ::core::ptr::addr_of!((*this)._bitfield_1),
29727 0usize,
29728 1u8,
29729 ) as u16)
29730 }
29731 }
29732 #[inline]
29733 pub unsafe fn set_LoadVCArbitrationTable_raw(this: *mut Self, val: USHORT) {
29734 unsafe {
29735 let val: u16 = ::core::mem::transmute(val);
29736 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29737 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29738 0usize,
29739 1u8,
29740 val as u64,
29741 )
29742 }
29743 }
29744 #[inline]
29745 pub fn VCArbitrationSelect(&self) -> USHORT {
29746 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u16) }
29747 }
29748 #[inline]
29749 pub fn set_VCArbitrationSelect(&mut self, val: USHORT) {
29750 unsafe {
29751 let val: u16 = ::core::mem::transmute(val);
29752 self._bitfield_1.set(1usize, 3u8, val as u64)
29753 }
29754 }
29755 #[inline]
29756 pub unsafe fn VCArbitrationSelect_raw(this: *const Self) -> USHORT {
29757 unsafe {
29758 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29759 ::core::ptr::addr_of!((*this)._bitfield_1),
29760 1usize,
29761 3u8,
29762 ) as u16)
29763 }
29764 }
29765 #[inline]
29766 pub unsafe fn set_VCArbitrationSelect_raw(this: *mut Self, val: USHORT) {
29767 unsafe {
29768 let val: u16 = ::core::mem::transmute(val);
29769 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29770 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29771 1usize,
29772 3u8,
29773 val as u64,
29774 )
29775 }
29776 }
29777 #[inline]
29778 pub fn RsvdP(&self) -> USHORT {
29779 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 12u8) as u16) }
29780 }
29781 #[inline]
29782 pub fn set_RsvdP(&mut self, val: USHORT) {
29783 unsafe {
29784 let val: u16 = ::core::mem::transmute(val);
29785 self._bitfield_1.set(4usize, 12u8, val as u64)
29786 }
29787 }
29788 #[inline]
29789 pub unsafe fn RsvdP_raw(this: *const Self) -> USHORT {
29790 unsafe {
29791 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29792 ::core::ptr::addr_of!((*this)._bitfield_1),
29793 4usize,
29794 12u8,
29795 ) as u16)
29796 }
29797 }
29798 #[inline]
29799 pub unsafe fn set_RsvdP_raw(this: *mut Self, val: USHORT) {
29800 unsafe {
29801 let val: u16 = ::core::mem::transmute(val);
29802 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29803 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29804 4usize,
29805 12u8,
29806 val as u64,
29807 )
29808 }
29809 }
29810 #[inline]
29811 pub fn new_bitfield_1(
29812 LoadVCArbitrationTable: USHORT,
29813 VCArbitrationSelect: USHORT,
29814 RsvdP: USHORT,
29815 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
29816 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
29817 __bindgen_bitfield_unit.set(0usize, 1u8, {
29818 let LoadVCArbitrationTable: u16 =
29819 unsafe { ::core::mem::transmute(LoadVCArbitrationTable) };
29820 LoadVCArbitrationTable as u64
29821 });
29822 __bindgen_bitfield_unit.set(1usize, 3u8, {
29823 let VCArbitrationSelect: u16 = unsafe { ::core::mem::transmute(VCArbitrationSelect) };
29824 VCArbitrationSelect as u64
29825 });
29826 __bindgen_bitfield_unit.set(4usize, 12u8, {
29827 let RsvdP: u16 = unsafe { ::core::mem::transmute(RsvdP) };
29828 RsvdP as u64
29829 });
29830 __bindgen_bitfield_unit
29831 }
29832}
29833pub type VIRTUAL_CHANNEL_CONTROL = _VIRTUAL_CHANNEL_CONTROL;
29834pub type PVIRTUAL_CHANNEL_CONTROL = *mut _VIRTUAL_CHANNEL_CONTROL;
29835#[repr(C)]
29836#[derive(Copy, Clone)]
29837pub union _VIRTUAL_CHANNEL_STATUS {
29838 pub __bindgen_anon_1: _VIRTUAL_CHANNEL_STATUS__bindgen_ty_1,
29839 pub AsUSHORT: USHORT,
29840}
29841#[repr(C)]
29842#[derive(Debug, Copy, Clone)]
29843pub struct _VIRTUAL_CHANNEL_STATUS__bindgen_ty_1 {
29844 pub _bitfield_align_1: [u16; 0],
29845 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
29846}
29847impl _VIRTUAL_CHANNEL_STATUS__bindgen_ty_1 {
29848 #[inline]
29849 pub fn VCArbitrationTableStatus(&self) -> USHORT {
29850 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
29851 }
29852 #[inline]
29853 pub fn set_VCArbitrationTableStatus(&mut self, val: USHORT) {
29854 unsafe {
29855 let val: u16 = ::core::mem::transmute(val);
29856 self._bitfield_1.set(0usize, 1u8, val as u64)
29857 }
29858 }
29859 #[inline]
29860 pub unsafe fn VCArbitrationTableStatus_raw(this: *const Self) -> USHORT {
29861 unsafe {
29862 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29863 ::core::ptr::addr_of!((*this)._bitfield_1),
29864 0usize,
29865 1u8,
29866 ) as u16)
29867 }
29868 }
29869 #[inline]
29870 pub unsafe fn set_VCArbitrationTableStatus_raw(this: *mut Self, val: USHORT) {
29871 unsafe {
29872 let val: u16 = ::core::mem::transmute(val);
29873 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29874 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29875 0usize,
29876 1u8,
29877 val as u64,
29878 )
29879 }
29880 }
29881 #[inline]
29882 pub fn RsvdZ(&self) -> USHORT {
29883 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 15u8) as u16) }
29884 }
29885 #[inline]
29886 pub fn set_RsvdZ(&mut self, val: USHORT) {
29887 unsafe {
29888 let val: u16 = ::core::mem::transmute(val);
29889 self._bitfield_1.set(1usize, 15u8, val as u64)
29890 }
29891 }
29892 #[inline]
29893 pub unsafe fn RsvdZ_raw(this: *const Self) -> USHORT {
29894 unsafe {
29895 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
29896 ::core::ptr::addr_of!((*this)._bitfield_1),
29897 1usize,
29898 15u8,
29899 ) as u16)
29900 }
29901 }
29902 #[inline]
29903 pub unsafe fn set_RsvdZ_raw(this: *mut Self, val: USHORT) {
29904 unsafe {
29905 let val: u16 = ::core::mem::transmute(val);
29906 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
29907 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29908 1usize,
29909 15u8,
29910 val as u64,
29911 )
29912 }
29913 }
29914 #[inline]
29915 pub fn new_bitfield_1(
29916 VCArbitrationTableStatus: USHORT,
29917 RsvdZ: USHORT,
29918 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
29919 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
29920 __bindgen_bitfield_unit.set(0usize, 1u8, {
29921 let VCArbitrationTableStatus: u16 =
29922 unsafe { ::core::mem::transmute(VCArbitrationTableStatus) };
29923 VCArbitrationTableStatus as u64
29924 });
29925 __bindgen_bitfield_unit.set(1usize, 15u8, {
29926 let RsvdZ: u16 = unsafe { ::core::mem::transmute(RsvdZ) };
29927 RsvdZ as u64
29928 });
29929 __bindgen_bitfield_unit
29930 }
29931}
29932pub type VIRTUAL_CHANNEL_STATUS = _VIRTUAL_CHANNEL_STATUS;
29933pub type PVIRTUAL_CHANNEL_STATUS = *mut _VIRTUAL_CHANNEL_STATUS;
29934#[repr(C)]
29935#[derive(Copy, Clone)]
29936pub union _VIRTUAL_RESOURCE_CAPABILITY {
29937 pub __bindgen_anon_1: _VIRTUAL_RESOURCE_CAPABILITY__bindgen_ty_1,
29938 pub AsULONG: ULONG,
29939}
29940#[repr(C)]
29941#[repr(align(4))]
29942#[derive(Debug, Copy, Clone)]
29943pub struct _VIRTUAL_RESOURCE_CAPABILITY__bindgen_ty_1 {
29944 pub _bitfield_align_1: [u8; 0],
29945 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
29946}
29947impl _VIRTUAL_RESOURCE_CAPABILITY__bindgen_ty_1 {
29948 #[inline]
29949 pub fn PortArbitrationCapability(&self) -> ULONG {
29950 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
29951 }
29952 #[inline]
29953 pub fn set_PortArbitrationCapability(&mut self, val: ULONG) {
29954 unsafe {
29955 let val: u32 = ::core::mem::transmute(val);
29956 self._bitfield_1.set(0usize, 8u8, val as u64)
29957 }
29958 }
29959 #[inline]
29960 pub unsafe fn PortArbitrationCapability_raw(this: *const Self) -> ULONG {
29961 unsafe {
29962 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29963 ::core::ptr::addr_of!((*this)._bitfield_1),
29964 0usize,
29965 8u8,
29966 ) as u32)
29967 }
29968 }
29969 #[inline]
29970 pub unsafe fn set_PortArbitrationCapability_raw(this: *mut Self, val: ULONG) {
29971 unsafe {
29972 let val: u32 = ::core::mem::transmute(val);
29973 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
29974 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
29975 0usize,
29976 8u8,
29977 val as u64,
29978 )
29979 }
29980 }
29981 #[inline]
29982 pub fn RsvdP1(&self) -> ULONG {
29983 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 6u8) as u32) }
29984 }
29985 #[inline]
29986 pub fn set_RsvdP1(&mut self, val: ULONG) {
29987 unsafe {
29988 let val: u32 = ::core::mem::transmute(val);
29989 self._bitfield_1.set(8usize, 6u8, val as u64)
29990 }
29991 }
29992 #[inline]
29993 pub unsafe fn RsvdP1_raw(this: *const Self) -> ULONG {
29994 unsafe {
29995 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
29996 ::core::ptr::addr_of!((*this)._bitfield_1),
29997 8usize,
29998 6u8,
29999 ) as u32)
30000 }
30001 }
30002 #[inline]
30003 pub unsafe fn set_RsvdP1_raw(this: *mut Self, val: ULONG) {
30004 unsafe {
30005 let val: u32 = ::core::mem::transmute(val);
30006 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30007 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30008 8usize,
30009 6u8,
30010 val as u64,
30011 )
30012 }
30013 }
30014 #[inline]
30015 pub fn Undefined(&self) -> ULONG {
30016 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
30017 }
30018 #[inline]
30019 pub fn set_Undefined(&mut self, val: ULONG) {
30020 unsafe {
30021 let val: u32 = ::core::mem::transmute(val);
30022 self._bitfield_1.set(14usize, 1u8, val as u64)
30023 }
30024 }
30025 #[inline]
30026 pub unsafe fn Undefined_raw(this: *const Self) -> ULONG {
30027 unsafe {
30028 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30029 ::core::ptr::addr_of!((*this)._bitfield_1),
30030 14usize,
30031 1u8,
30032 ) as u32)
30033 }
30034 }
30035 #[inline]
30036 pub unsafe fn set_Undefined_raw(this: *mut Self, val: ULONG) {
30037 unsafe {
30038 let val: u32 = ::core::mem::transmute(val);
30039 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30040 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30041 14usize,
30042 1u8,
30043 val as u64,
30044 )
30045 }
30046 }
30047 #[inline]
30048 pub fn RejectSnoopTransactions(&self) -> ULONG {
30049 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
30050 }
30051 #[inline]
30052 pub fn set_RejectSnoopTransactions(&mut self, val: ULONG) {
30053 unsafe {
30054 let val: u32 = ::core::mem::transmute(val);
30055 self._bitfield_1.set(15usize, 1u8, val as u64)
30056 }
30057 }
30058 #[inline]
30059 pub unsafe fn RejectSnoopTransactions_raw(this: *const Self) -> ULONG {
30060 unsafe {
30061 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30062 ::core::ptr::addr_of!((*this)._bitfield_1),
30063 15usize,
30064 1u8,
30065 ) as u32)
30066 }
30067 }
30068 #[inline]
30069 pub unsafe fn set_RejectSnoopTransactions_raw(this: *mut Self, val: ULONG) {
30070 unsafe {
30071 let val: u32 = ::core::mem::transmute(val);
30072 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30073 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30074 15usize,
30075 1u8,
30076 val as u64,
30077 )
30078 }
30079 }
30080 #[inline]
30081 pub fn MaximumTimeSlots(&self) -> ULONG {
30082 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 7u8) as u32) }
30083 }
30084 #[inline]
30085 pub fn set_MaximumTimeSlots(&mut self, val: ULONG) {
30086 unsafe {
30087 let val: u32 = ::core::mem::transmute(val);
30088 self._bitfield_1.set(16usize, 7u8, val as u64)
30089 }
30090 }
30091 #[inline]
30092 pub unsafe fn MaximumTimeSlots_raw(this: *const Self) -> ULONG {
30093 unsafe {
30094 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30095 ::core::ptr::addr_of!((*this)._bitfield_1),
30096 16usize,
30097 7u8,
30098 ) as u32)
30099 }
30100 }
30101 #[inline]
30102 pub unsafe fn set_MaximumTimeSlots_raw(this: *mut Self, val: ULONG) {
30103 unsafe {
30104 let val: u32 = ::core::mem::transmute(val);
30105 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30106 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30107 16usize,
30108 7u8,
30109 val as u64,
30110 )
30111 }
30112 }
30113 #[inline]
30114 pub fn RsvdP2(&self) -> ULONG {
30115 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
30116 }
30117 #[inline]
30118 pub fn set_RsvdP2(&mut self, val: ULONG) {
30119 unsafe {
30120 let val: u32 = ::core::mem::transmute(val);
30121 self._bitfield_1.set(23usize, 1u8, val as u64)
30122 }
30123 }
30124 #[inline]
30125 pub unsafe fn RsvdP2_raw(this: *const Self) -> ULONG {
30126 unsafe {
30127 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30128 ::core::ptr::addr_of!((*this)._bitfield_1),
30129 23usize,
30130 1u8,
30131 ) as u32)
30132 }
30133 }
30134 #[inline]
30135 pub unsafe fn set_RsvdP2_raw(this: *mut Self, val: ULONG) {
30136 unsafe {
30137 let val: u32 = ::core::mem::transmute(val);
30138 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30139 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30140 23usize,
30141 1u8,
30142 val as u64,
30143 )
30144 }
30145 }
30146 #[inline]
30147 pub fn PortArbitrationTableOffset(&self) -> ULONG {
30148 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u32) }
30149 }
30150 #[inline]
30151 pub fn set_PortArbitrationTableOffset(&mut self, val: ULONG) {
30152 unsafe {
30153 let val: u32 = ::core::mem::transmute(val);
30154 self._bitfield_1.set(24usize, 8u8, val as u64)
30155 }
30156 }
30157 #[inline]
30158 pub unsafe fn PortArbitrationTableOffset_raw(this: *const Self) -> ULONG {
30159 unsafe {
30160 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30161 ::core::ptr::addr_of!((*this)._bitfield_1),
30162 24usize,
30163 8u8,
30164 ) as u32)
30165 }
30166 }
30167 #[inline]
30168 pub unsafe fn set_PortArbitrationTableOffset_raw(this: *mut Self, val: ULONG) {
30169 unsafe {
30170 let val: u32 = ::core::mem::transmute(val);
30171 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30172 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30173 24usize,
30174 8u8,
30175 val as u64,
30176 )
30177 }
30178 }
30179 #[inline]
30180 pub fn new_bitfield_1(
30181 PortArbitrationCapability: ULONG,
30182 RsvdP1: ULONG,
30183 Undefined: ULONG,
30184 RejectSnoopTransactions: ULONG,
30185 MaximumTimeSlots: ULONG,
30186 RsvdP2: ULONG,
30187 PortArbitrationTableOffset: ULONG,
30188 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
30189 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
30190 __bindgen_bitfield_unit.set(0usize, 8u8, {
30191 let PortArbitrationCapability: u32 =
30192 unsafe { ::core::mem::transmute(PortArbitrationCapability) };
30193 PortArbitrationCapability as u64
30194 });
30195 __bindgen_bitfield_unit.set(8usize, 6u8, {
30196 let RsvdP1: u32 = unsafe { ::core::mem::transmute(RsvdP1) };
30197 RsvdP1 as u64
30198 });
30199 __bindgen_bitfield_unit.set(14usize, 1u8, {
30200 let Undefined: u32 = unsafe { ::core::mem::transmute(Undefined) };
30201 Undefined as u64
30202 });
30203 __bindgen_bitfield_unit.set(15usize, 1u8, {
30204 let RejectSnoopTransactions: u32 =
30205 unsafe { ::core::mem::transmute(RejectSnoopTransactions) };
30206 RejectSnoopTransactions as u64
30207 });
30208 __bindgen_bitfield_unit.set(16usize, 7u8, {
30209 let MaximumTimeSlots: u32 = unsafe { ::core::mem::transmute(MaximumTimeSlots) };
30210 MaximumTimeSlots as u64
30211 });
30212 __bindgen_bitfield_unit.set(23usize, 1u8, {
30213 let RsvdP2: u32 = unsafe { ::core::mem::transmute(RsvdP2) };
30214 RsvdP2 as u64
30215 });
30216 __bindgen_bitfield_unit.set(24usize, 8u8, {
30217 let PortArbitrationTableOffset: u32 =
30218 unsafe { ::core::mem::transmute(PortArbitrationTableOffset) };
30219 PortArbitrationTableOffset as u64
30220 });
30221 __bindgen_bitfield_unit
30222 }
30223}
30224pub type VIRTUAL_RESOURCE_CAPABILITY = _VIRTUAL_RESOURCE_CAPABILITY;
30225pub type PVIRTUAL_RESOURCE_CAPABILITY = *mut _VIRTUAL_RESOURCE_CAPABILITY;
30226#[repr(C)]
30227#[derive(Copy, Clone)]
30228pub union _VIRTUAL_RESOURCE_CONTROL {
30229 pub __bindgen_anon_1: _VIRTUAL_RESOURCE_CONTROL__bindgen_ty_1,
30230 pub AsULONG: ULONG,
30231}
30232#[repr(C)]
30233#[repr(align(4))]
30234#[derive(Debug, Copy, Clone)]
30235pub struct _VIRTUAL_RESOURCE_CONTROL__bindgen_ty_1 {
30236 pub _bitfield_align_1: [u8; 0],
30237 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
30238}
30239impl _VIRTUAL_RESOURCE_CONTROL__bindgen_ty_1 {
30240 #[inline]
30241 pub fn TcVcMap(&self) -> ULONG {
30242 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
30243 }
30244 #[inline]
30245 pub fn set_TcVcMap(&mut self, val: ULONG) {
30246 unsafe {
30247 let val: u32 = ::core::mem::transmute(val);
30248 self._bitfield_1.set(0usize, 8u8, val as u64)
30249 }
30250 }
30251 #[inline]
30252 pub unsafe fn TcVcMap_raw(this: *const Self) -> ULONG {
30253 unsafe {
30254 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30255 ::core::ptr::addr_of!((*this)._bitfield_1),
30256 0usize,
30257 8u8,
30258 ) as u32)
30259 }
30260 }
30261 #[inline]
30262 pub unsafe fn set_TcVcMap_raw(this: *mut Self, val: ULONG) {
30263 unsafe {
30264 let val: u32 = ::core::mem::transmute(val);
30265 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30266 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30267 0usize,
30268 8u8,
30269 val as u64,
30270 )
30271 }
30272 }
30273 #[inline]
30274 pub fn RsvdP1(&self) -> ULONG {
30275 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
30276 }
30277 #[inline]
30278 pub fn set_RsvdP1(&mut self, val: ULONG) {
30279 unsafe {
30280 let val: u32 = ::core::mem::transmute(val);
30281 self._bitfield_1.set(8usize, 8u8, val as u64)
30282 }
30283 }
30284 #[inline]
30285 pub unsafe fn RsvdP1_raw(this: *const Self) -> ULONG {
30286 unsafe {
30287 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30288 ::core::ptr::addr_of!((*this)._bitfield_1),
30289 8usize,
30290 8u8,
30291 ) as u32)
30292 }
30293 }
30294 #[inline]
30295 pub unsafe fn set_RsvdP1_raw(this: *mut Self, val: ULONG) {
30296 unsafe {
30297 let val: u32 = ::core::mem::transmute(val);
30298 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30299 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30300 8usize,
30301 8u8,
30302 val as u64,
30303 )
30304 }
30305 }
30306 #[inline]
30307 pub fn LoadPortArbitrationTable(&self) -> ULONG {
30308 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
30309 }
30310 #[inline]
30311 pub fn set_LoadPortArbitrationTable(&mut self, val: ULONG) {
30312 unsafe {
30313 let val: u32 = ::core::mem::transmute(val);
30314 self._bitfield_1.set(16usize, 1u8, val as u64)
30315 }
30316 }
30317 #[inline]
30318 pub unsafe fn LoadPortArbitrationTable_raw(this: *const Self) -> ULONG {
30319 unsafe {
30320 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30321 ::core::ptr::addr_of!((*this)._bitfield_1),
30322 16usize,
30323 1u8,
30324 ) as u32)
30325 }
30326 }
30327 #[inline]
30328 pub unsafe fn set_LoadPortArbitrationTable_raw(this: *mut Self, val: ULONG) {
30329 unsafe {
30330 let val: u32 = ::core::mem::transmute(val);
30331 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30332 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30333 16usize,
30334 1u8,
30335 val as u64,
30336 )
30337 }
30338 }
30339 #[inline]
30340 pub fn PortArbitrationSelect(&self) -> ULONG {
30341 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 3u8) as u32) }
30342 }
30343 #[inline]
30344 pub fn set_PortArbitrationSelect(&mut self, val: ULONG) {
30345 unsafe {
30346 let val: u32 = ::core::mem::transmute(val);
30347 self._bitfield_1.set(17usize, 3u8, val as u64)
30348 }
30349 }
30350 #[inline]
30351 pub unsafe fn PortArbitrationSelect_raw(this: *const Self) -> ULONG {
30352 unsafe {
30353 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30354 ::core::ptr::addr_of!((*this)._bitfield_1),
30355 17usize,
30356 3u8,
30357 ) as u32)
30358 }
30359 }
30360 #[inline]
30361 pub unsafe fn set_PortArbitrationSelect_raw(this: *mut Self, val: ULONG) {
30362 unsafe {
30363 let val: u32 = ::core::mem::transmute(val);
30364 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30365 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30366 17usize,
30367 3u8,
30368 val as u64,
30369 )
30370 }
30371 }
30372 #[inline]
30373 pub fn RsvdP2(&self) -> ULONG {
30374 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 4u8) as u32) }
30375 }
30376 #[inline]
30377 pub fn set_RsvdP2(&mut self, val: ULONG) {
30378 unsafe {
30379 let val: u32 = ::core::mem::transmute(val);
30380 self._bitfield_1.set(20usize, 4u8, val as u64)
30381 }
30382 }
30383 #[inline]
30384 pub unsafe fn RsvdP2_raw(this: *const Self) -> ULONG {
30385 unsafe {
30386 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30387 ::core::ptr::addr_of!((*this)._bitfield_1),
30388 20usize,
30389 4u8,
30390 ) as u32)
30391 }
30392 }
30393 #[inline]
30394 pub unsafe fn set_RsvdP2_raw(this: *mut Self, val: ULONG) {
30395 unsafe {
30396 let val: u32 = ::core::mem::transmute(val);
30397 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30398 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30399 20usize,
30400 4u8,
30401 val as u64,
30402 )
30403 }
30404 }
30405 #[inline]
30406 pub fn VcID(&self) -> ULONG {
30407 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 3u8) as u32) }
30408 }
30409 #[inline]
30410 pub fn set_VcID(&mut self, val: ULONG) {
30411 unsafe {
30412 let val: u32 = ::core::mem::transmute(val);
30413 self._bitfield_1.set(24usize, 3u8, val as u64)
30414 }
30415 }
30416 #[inline]
30417 pub unsafe fn VcID_raw(this: *const Self) -> ULONG {
30418 unsafe {
30419 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30420 ::core::ptr::addr_of!((*this)._bitfield_1),
30421 24usize,
30422 3u8,
30423 ) as u32)
30424 }
30425 }
30426 #[inline]
30427 pub unsafe fn set_VcID_raw(this: *mut Self, val: ULONG) {
30428 unsafe {
30429 let val: u32 = ::core::mem::transmute(val);
30430 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30431 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30432 24usize,
30433 3u8,
30434 val as u64,
30435 )
30436 }
30437 }
30438 #[inline]
30439 pub fn RsvdP3(&self) -> ULONG {
30440 unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 4u8) as u32) }
30441 }
30442 #[inline]
30443 pub fn set_RsvdP3(&mut self, val: ULONG) {
30444 unsafe {
30445 let val: u32 = ::core::mem::transmute(val);
30446 self._bitfield_1.set(27usize, 4u8, val as u64)
30447 }
30448 }
30449 #[inline]
30450 pub unsafe fn RsvdP3_raw(this: *const Self) -> ULONG {
30451 unsafe {
30452 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30453 ::core::ptr::addr_of!((*this)._bitfield_1),
30454 27usize,
30455 4u8,
30456 ) as u32)
30457 }
30458 }
30459 #[inline]
30460 pub unsafe fn set_RsvdP3_raw(this: *mut Self, val: ULONG) {
30461 unsafe {
30462 let val: u32 = ::core::mem::transmute(val);
30463 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30464 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30465 27usize,
30466 4u8,
30467 val as u64,
30468 )
30469 }
30470 }
30471 #[inline]
30472 pub fn VcEnable(&self) -> ULONG {
30473 unsafe { ::core::mem::transmute(self._bitfield_1.get(31usize, 1u8) as u32) }
30474 }
30475 #[inline]
30476 pub fn set_VcEnable(&mut self, val: ULONG) {
30477 unsafe {
30478 let val: u32 = ::core::mem::transmute(val);
30479 self._bitfield_1.set(31usize, 1u8, val as u64)
30480 }
30481 }
30482 #[inline]
30483 pub unsafe fn VcEnable_raw(this: *const Self) -> ULONG {
30484 unsafe {
30485 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
30486 ::core::ptr::addr_of!((*this)._bitfield_1),
30487 31usize,
30488 1u8,
30489 ) as u32)
30490 }
30491 }
30492 #[inline]
30493 pub unsafe fn set_VcEnable_raw(this: *mut Self, val: ULONG) {
30494 unsafe {
30495 let val: u32 = ::core::mem::transmute(val);
30496 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
30497 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30498 31usize,
30499 1u8,
30500 val as u64,
30501 )
30502 }
30503 }
30504 #[inline]
30505 pub fn new_bitfield_1(
30506 TcVcMap: ULONG,
30507 RsvdP1: ULONG,
30508 LoadPortArbitrationTable: ULONG,
30509 PortArbitrationSelect: ULONG,
30510 RsvdP2: ULONG,
30511 VcID: ULONG,
30512 RsvdP3: ULONG,
30513 VcEnable: ULONG,
30514 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
30515 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
30516 __bindgen_bitfield_unit.set(0usize, 8u8, {
30517 let TcVcMap: u32 = unsafe { ::core::mem::transmute(TcVcMap) };
30518 TcVcMap as u64
30519 });
30520 __bindgen_bitfield_unit.set(8usize, 8u8, {
30521 let RsvdP1: u32 = unsafe { ::core::mem::transmute(RsvdP1) };
30522 RsvdP1 as u64
30523 });
30524 __bindgen_bitfield_unit.set(16usize, 1u8, {
30525 let LoadPortArbitrationTable: u32 =
30526 unsafe { ::core::mem::transmute(LoadPortArbitrationTable) };
30527 LoadPortArbitrationTable as u64
30528 });
30529 __bindgen_bitfield_unit.set(17usize, 3u8, {
30530 let PortArbitrationSelect: u32 =
30531 unsafe { ::core::mem::transmute(PortArbitrationSelect) };
30532 PortArbitrationSelect as u64
30533 });
30534 __bindgen_bitfield_unit.set(20usize, 4u8, {
30535 let RsvdP2: u32 = unsafe { ::core::mem::transmute(RsvdP2) };
30536 RsvdP2 as u64
30537 });
30538 __bindgen_bitfield_unit.set(24usize, 3u8, {
30539 let VcID: u32 = unsafe { ::core::mem::transmute(VcID) };
30540 VcID as u64
30541 });
30542 __bindgen_bitfield_unit.set(27usize, 4u8, {
30543 let RsvdP3: u32 = unsafe { ::core::mem::transmute(RsvdP3) };
30544 RsvdP3 as u64
30545 });
30546 __bindgen_bitfield_unit.set(31usize, 1u8, {
30547 let VcEnable: u32 = unsafe { ::core::mem::transmute(VcEnable) };
30548 VcEnable as u64
30549 });
30550 __bindgen_bitfield_unit
30551 }
30552}
30553pub type VIRTUAL_RESOURCE_CONTROL = _VIRTUAL_RESOURCE_CONTROL;
30554pub type PVIRTUAL_RESOURCE_CONTROL = *mut _VIRTUAL_RESOURCE_CONTROL;
30555#[repr(C)]
30556#[derive(Copy, Clone)]
30557pub union _VIRTUAL_RESOURCE_STATUS {
30558 pub __bindgen_anon_1: _VIRTUAL_RESOURCE_STATUS__bindgen_ty_1,
30559 pub AsUSHORT: USHORT,
30560}
30561#[repr(C)]
30562#[derive(Debug, Copy, Clone)]
30563pub struct _VIRTUAL_RESOURCE_STATUS__bindgen_ty_1 {
30564 pub _bitfield_align_1: [u16; 0],
30565 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
30566}
30567impl _VIRTUAL_RESOURCE_STATUS__bindgen_ty_1 {
30568 #[inline]
30569 pub fn PortArbitrationTableStatus(&self) -> USHORT {
30570 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
30571 }
30572 #[inline]
30573 pub fn set_PortArbitrationTableStatus(&mut self, val: USHORT) {
30574 unsafe {
30575 let val: u16 = ::core::mem::transmute(val);
30576 self._bitfield_1.set(0usize, 1u8, val as u64)
30577 }
30578 }
30579 #[inline]
30580 pub unsafe fn PortArbitrationTableStatus_raw(this: *const Self) -> USHORT {
30581 unsafe {
30582 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30583 ::core::ptr::addr_of!((*this)._bitfield_1),
30584 0usize,
30585 1u8,
30586 ) as u16)
30587 }
30588 }
30589 #[inline]
30590 pub unsafe fn set_PortArbitrationTableStatus_raw(this: *mut Self, val: USHORT) {
30591 unsafe {
30592 let val: u16 = ::core::mem::transmute(val);
30593 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30594 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30595 0usize,
30596 1u8,
30597 val as u64,
30598 )
30599 }
30600 }
30601 #[inline]
30602 pub fn VcNegotiationPending(&self) -> USHORT {
30603 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
30604 }
30605 #[inline]
30606 pub fn set_VcNegotiationPending(&mut self, val: USHORT) {
30607 unsafe {
30608 let val: u16 = ::core::mem::transmute(val);
30609 self._bitfield_1.set(1usize, 1u8, val as u64)
30610 }
30611 }
30612 #[inline]
30613 pub unsafe fn VcNegotiationPending_raw(this: *const Self) -> USHORT {
30614 unsafe {
30615 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30616 ::core::ptr::addr_of!((*this)._bitfield_1),
30617 1usize,
30618 1u8,
30619 ) as u16)
30620 }
30621 }
30622 #[inline]
30623 pub unsafe fn set_VcNegotiationPending_raw(this: *mut Self, val: USHORT) {
30624 unsafe {
30625 let val: u16 = ::core::mem::transmute(val);
30626 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30627 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30628 1usize,
30629 1u8,
30630 val as u64,
30631 )
30632 }
30633 }
30634 #[inline]
30635 pub fn RsvdZ(&self) -> USHORT {
30636 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 14u8) as u16) }
30637 }
30638 #[inline]
30639 pub fn set_RsvdZ(&mut self, val: USHORT) {
30640 unsafe {
30641 let val: u16 = ::core::mem::transmute(val);
30642 self._bitfield_1.set(2usize, 14u8, val as u64)
30643 }
30644 }
30645 #[inline]
30646 pub unsafe fn RsvdZ_raw(this: *const Self) -> USHORT {
30647 unsafe {
30648 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30649 ::core::ptr::addr_of!((*this)._bitfield_1),
30650 2usize,
30651 14u8,
30652 ) as u16)
30653 }
30654 }
30655 #[inline]
30656 pub unsafe fn set_RsvdZ_raw(this: *mut Self, val: USHORT) {
30657 unsafe {
30658 let val: u16 = ::core::mem::transmute(val);
30659 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30660 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30661 2usize,
30662 14u8,
30663 val as u64,
30664 )
30665 }
30666 }
30667 #[inline]
30668 pub fn new_bitfield_1(
30669 PortArbitrationTableStatus: USHORT,
30670 VcNegotiationPending: USHORT,
30671 RsvdZ: USHORT,
30672 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
30673 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
30674 __bindgen_bitfield_unit.set(0usize, 1u8, {
30675 let PortArbitrationTableStatus: u16 =
30676 unsafe { ::core::mem::transmute(PortArbitrationTableStatus) };
30677 PortArbitrationTableStatus as u64
30678 });
30679 __bindgen_bitfield_unit.set(1usize, 1u8, {
30680 let VcNegotiationPending: u16 = unsafe { ::core::mem::transmute(VcNegotiationPending) };
30681 VcNegotiationPending as u64
30682 });
30683 __bindgen_bitfield_unit.set(2usize, 14u8, {
30684 let RsvdZ: u16 = unsafe { ::core::mem::transmute(RsvdZ) };
30685 RsvdZ as u64
30686 });
30687 __bindgen_bitfield_unit
30688 }
30689}
30690pub type VIRTUAL_RESOURCE_STATUS = _VIRTUAL_RESOURCE_STATUS;
30691pub type PVIRTUAL_RESOURCE_STATUS = *mut _VIRTUAL_RESOURCE_STATUS;
30692#[repr(C)]
30693#[derive(Copy, Clone)]
30694pub struct _VIRTUAL_RESOURCE {
30695 pub Capability: VIRTUAL_RESOURCE_CAPABILITY,
30696 pub Control: VIRTUAL_RESOURCE_CONTROL,
30697 pub RsvdP: USHORT,
30698 pub Status: VIRTUAL_RESOURCE_STATUS,
30699}
30700pub type VIRTUAL_RESOURCE = _VIRTUAL_RESOURCE;
30701pub type PVIRTUAL_RESOURCE = *mut _VIRTUAL_RESOURCE;
30702#[repr(C)]
30703#[derive(Copy, Clone)]
30704pub struct _PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY {
30705 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
30706 pub Capabilities1: VIRTUAL_CHANNEL_CAPABILITIES1,
30707 pub Capabilities2: VIRTUAL_CHANNEL_CAPABILITIES2,
30708 pub Control: VIRTUAL_CHANNEL_CONTROL,
30709 pub Status: VIRTUAL_CHANNEL_STATUS,
30710 pub Resource: [VIRTUAL_RESOURCE; 8usize],
30711}
30712pub type PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY = _PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY;
30713pub type PPCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY = *mut _PCI_EXPRESS_VIRTUAL_CHANNEL_CAPABILITY;
30714#[repr(C)]
30715#[repr(align(2))]
30716#[derive(Debug, Copy, Clone)]
30717pub struct _PCI_EXPRESS_ATS_CAPABILITY_REGISTER {
30718 pub _bitfield_align_1: [u8; 0],
30719 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
30720}
30721impl _PCI_EXPRESS_ATS_CAPABILITY_REGISTER {
30722 #[inline]
30723 pub fn InvalidateQueueDepth(&self) -> USHORT {
30724 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u16) }
30725 }
30726 #[inline]
30727 pub fn set_InvalidateQueueDepth(&mut self, val: USHORT) {
30728 unsafe {
30729 let val: u16 = ::core::mem::transmute(val);
30730 self._bitfield_1.set(0usize, 5u8, val as u64)
30731 }
30732 }
30733 #[inline]
30734 pub unsafe fn InvalidateQueueDepth_raw(this: *const Self) -> USHORT {
30735 unsafe {
30736 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30737 ::core::ptr::addr_of!((*this)._bitfield_1),
30738 0usize,
30739 5u8,
30740 ) as u16)
30741 }
30742 }
30743 #[inline]
30744 pub unsafe fn set_InvalidateQueueDepth_raw(this: *mut Self, val: USHORT) {
30745 unsafe {
30746 let val: u16 = ::core::mem::transmute(val);
30747 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30748 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30749 0usize,
30750 5u8,
30751 val as u64,
30752 )
30753 }
30754 }
30755 #[inline]
30756 pub fn PageAlignedRequest(&self) -> USHORT {
30757 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
30758 }
30759 #[inline]
30760 pub fn set_PageAlignedRequest(&mut self, val: USHORT) {
30761 unsafe {
30762 let val: u16 = ::core::mem::transmute(val);
30763 self._bitfield_1.set(5usize, 1u8, val as u64)
30764 }
30765 }
30766 #[inline]
30767 pub unsafe fn PageAlignedRequest_raw(this: *const Self) -> USHORT {
30768 unsafe {
30769 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30770 ::core::ptr::addr_of!((*this)._bitfield_1),
30771 5usize,
30772 1u8,
30773 ) as u16)
30774 }
30775 }
30776 #[inline]
30777 pub unsafe fn set_PageAlignedRequest_raw(this: *mut Self, val: USHORT) {
30778 unsafe {
30779 let val: u16 = ::core::mem::transmute(val);
30780 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30781 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30782 5usize,
30783 1u8,
30784 val as u64,
30785 )
30786 }
30787 }
30788 #[inline]
30789 pub fn GlobalInvalidateSupported(&self) -> USHORT {
30790 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
30791 }
30792 #[inline]
30793 pub fn set_GlobalInvalidateSupported(&mut self, val: USHORT) {
30794 unsafe {
30795 let val: u16 = ::core::mem::transmute(val);
30796 self._bitfield_1.set(6usize, 1u8, val as u64)
30797 }
30798 }
30799 #[inline]
30800 pub unsafe fn GlobalInvalidateSupported_raw(this: *const Self) -> USHORT {
30801 unsafe {
30802 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30803 ::core::ptr::addr_of!((*this)._bitfield_1),
30804 6usize,
30805 1u8,
30806 ) as u16)
30807 }
30808 }
30809 #[inline]
30810 pub unsafe fn set_GlobalInvalidateSupported_raw(this: *mut Self, val: USHORT) {
30811 unsafe {
30812 let val: u16 = ::core::mem::transmute(val);
30813 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30814 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30815 6usize,
30816 1u8,
30817 val as u64,
30818 )
30819 }
30820 }
30821 #[inline]
30822 pub fn RelaxedOrderingSupported(&self) -> USHORT {
30823 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) }
30824 }
30825 #[inline]
30826 pub fn set_RelaxedOrderingSupported(&mut self, val: USHORT) {
30827 unsafe {
30828 let val: u16 = ::core::mem::transmute(val);
30829 self._bitfield_1.set(7usize, 1u8, val as u64)
30830 }
30831 }
30832 #[inline]
30833 pub unsafe fn RelaxedOrderingSupported_raw(this: *const Self) -> USHORT {
30834 unsafe {
30835 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30836 ::core::ptr::addr_of!((*this)._bitfield_1),
30837 7usize,
30838 1u8,
30839 ) as u16)
30840 }
30841 }
30842 #[inline]
30843 pub unsafe fn set_RelaxedOrderingSupported_raw(this: *mut Self, val: USHORT) {
30844 unsafe {
30845 let val: u16 = ::core::mem::transmute(val);
30846 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30847 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30848 7usize,
30849 1u8,
30850 val as u64,
30851 )
30852 }
30853 }
30854 #[inline]
30855 pub fn Reserved(&self) -> USHORT {
30856 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) }
30857 }
30858 #[inline]
30859 pub fn set_Reserved(&mut self, val: USHORT) {
30860 unsafe {
30861 let val: u16 = ::core::mem::transmute(val);
30862 self._bitfield_1.set(8usize, 8u8, val as u64)
30863 }
30864 }
30865 #[inline]
30866 pub unsafe fn Reserved_raw(this: *const Self) -> USHORT {
30867 unsafe {
30868 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30869 ::core::ptr::addr_of!((*this)._bitfield_1),
30870 8usize,
30871 8u8,
30872 ) as u16)
30873 }
30874 }
30875 #[inline]
30876 pub unsafe fn set_Reserved_raw(this: *mut Self, val: USHORT) {
30877 unsafe {
30878 let val: u16 = ::core::mem::transmute(val);
30879 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30880 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30881 8usize,
30882 8u8,
30883 val as u64,
30884 )
30885 }
30886 }
30887 #[inline]
30888 pub fn new_bitfield_1(
30889 InvalidateQueueDepth: USHORT,
30890 PageAlignedRequest: USHORT,
30891 GlobalInvalidateSupported: USHORT,
30892 RelaxedOrderingSupported: USHORT,
30893 Reserved: USHORT,
30894 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
30895 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
30896 __bindgen_bitfield_unit.set(0usize, 5u8, {
30897 let InvalidateQueueDepth: u16 = unsafe { ::core::mem::transmute(InvalidateQueueDepth) };
30898 InvalidateQueueDepth as u64
30899 });
30900 __bindgen_bitfield_unit.set(5usize, 1u8, {
30901 let PageAlignedRequest: u16 = unsafe { ::core::mem::transmute(PageAlignedRequest) };
30902 PageAlignedRequest as u64
30903 });
30904 __bindgen_bitfield_unit.set(6usize, 1u8, {
30905 let GlobalInvalidateSupported: u16 =
30906 unsafe { ::core::mem::transmute(GlobalInvalidateSupported) };
30907 GlobalInvalidateSupported as u64
30908 });
30909 __bindgen_bitfield_unit.set(7usize, 1u8, {
30910 let RelaxedOrderingSupported: u16 =
30911 unsafe { ::core::mem::transmute(RelaxedOrderingSupported) };
30912 RelaxedOrderingSupported as u64
30913 });
30914 __bindgen_bitfield_unit.set(8usize, 8u8, {
30915 let Reserved: u16 = unsafe { ::core::mem::transmute(Reserved) };
30916 Reserved as u64
30917 });
30918 __bindgen_bitfield_unit
30919 }
30920}
30921pub type PCI_EXPRESS_ATS_CAPABILITY_REGISTER = _PCI_EXPRESS_ATS_CAPABILITY_REGISTER;
30922pub type PPCI_EXPRESS_ATS_CAPABILITY_REGISTER = *mut _PCI_EXPRESS_ATS_CAPABILITY_REGISTER;
30923#[repr(C)]
30924#[derive(Copy, Clone)]
30925pub union _PCI_EXPRESS_ATS_CONTROL_REGISTER {
30926 pub __bindgen_anon_1: _PCI_EXPRESS_ATS_CONTROL_REGISTER__bindgen_ty_1,
30927 pub AsUSHORT: USHORT,
30928}
30929#[repr(C)]
30930#[derive(Debug, Copy, Clone)]
30931pub struct _PCI_EXPRESS_ATS_CONTROL_REGISTER__bindgen_ty_1 {
30932 pub _bitfield_align_1: [u16; 0],
30933 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
30934}
30935impl _PCI_EXPRESS_ATS_CONTROL_REGISTER__bindgen_ty_1 {
30936 #[inline]
30937 pub fn SmallestTransactionUnit(&self) -> USHORT {
30938 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u16) }
30939 }
30940 #[inline]
30941 pub fn set_SmallestTransactionUnit(&mut self, val: USHORT) {
30942 unsafe {
30943 let val: u16 = ::core::mem::transmute(val);
30944 self._bitfield_1.set(0usize, 5u8, val as u64)
30945 }
30946 }
30947 #[inline]
30948 pub unsafe fn SmallestTransactionUnit_raw(this: *const Self) -> USHORT {
30949 unsafe {
30950 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30951 ::core::ptr::addr_of!((*this)._bitfield_1),
30952 0usize,
30953 5u8,
30954 ) as u16)
30955 }
30956 }
30957 #[inline]
30958 pub unsafe fn set_SmallestTransactionUnit_raw(this: *mut Self, val: USHORT) {
30959 unsafe {
30960 let val: u16 = ::core::mem::transmute(val);
30961 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30962 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30963 0usize,
30964 5u8,
30965 val as u64,
30966 )
30967 }
30968 }
30969 #[inline]
30970 pub fn Reserved(&self) -> USHORT {
30971 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 10u8) as u16) }
30972 }
30973 #[inline]
30974 pub fn set_Reserved(&mut self, val: USHORT) {
30975 unsafe {
30976 let val: u16 = ::core::mem::transmute(val);
30977 self._bitfield_1.set(5usize, 10u8, val as u64)
30978 }
30979 }
30980 #[inline]
30981 pub unsafe fn Reserved_raw(this: *const Self) -> USHORT {
30982 unsafe {
30983 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
30984 ::core::ptr::addr_of!((*this)._bitfield_1),
30985 5usize,
30986 10u8,
30987 ) as u16)
30988 }
30989 }
30990 #[inline]
30991 pub unsafe fn set_Reserved_raw(this: *mut Self, val: USHORT) {
30992 unsafe {
30993 let val: u16 = ::core::mem::transmute(val);
30994 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
30995 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
30996 5usize,
30997 10u8,
30998 val as u64,
30999 )
31000 }
31001 }
31002 #[inline]
31003 pub fn Enable(&self) -> USHORT {
31004 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
31005 }
31006 #[inline]
31007 pub fn set_Enable(&mut self, val: USHORT) {
31008 unsafe {
31009 let val: u16 = ::core::mem::transmute(val);
31010 self._bitfield_1.set(15usize, 1u8, val as u64)
31011 }
31012 }
31013 #[inline]
31014 pub unsafe fn Enable_raw(this: *const Self) -> USHORT {
31015 unsafe {
31016 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31017 ::core::ptr::addr_of!((*this)._bitfield_1),
31018 15usize,
31019 1u8,
31020 ) as u16)
31021 }
31022 }
31023 #[inline]
31024 pub unsafe fn set_Enable_raw(this: *mut Self, val: USHORT) {
31025 unsafe {
31026 let val: u16 = ::core::mem::transmute(val);
31027 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31028 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31029 15usize,
31030 1u8,
31031 val as u64,
31032 )
31033 }
31034 }
31035 #[inline]
31036 pub fn new_bitfield_1(
31037 SmallestTransactionUnit: USHORT,
31038 Reserved: USHORT,
31039 Enable: USHORT,
31040 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
31041 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
31042 __bindgen_bitfield_unit.set(0usize, 5u8, {
31043 let SmallestTransactionUnit: u16 =
31044 unsafe { ::core::mem::transmute(SmallestTransactionUnit) };
31045 SmallestTransactionUnit as u64
31046 });
31047 __bindgen_bitfield_unit.set(5usize, 10u8, {
31048 let Reserved: u16 = unsafe { ::core::mem::transmute(Reserved) };
31049 Reserved as u64
31050 });
31051 __bindgen_bitfield_unit.set(15usize, 1u8, {
31052 let Enable: u16 = unsafe { ::core::mem::transmute(Enable) };
31053 Enable as u64
31054 });
31055 __bindgen_bitfield_unit
31056 }
31057}
31058pub type PCI_EXPRESS_ATS_CONTROL_REGISTER = _PCI_EXPRESS_ATS_CONTROL_REGISTER;
31059pub type PPCI_EXPRESS_ATS_CONTROL_REGISTER = *mut _PCI_EXPRESS_ATS_CONTROL_REGISTER;
31060#[repr(C)]
31061#[derive(Copy, Clone)]
31062pub struct _PCI_EXPRESS_ATS_CAPABILITY {
31063 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
31064 pub Capability: PCI_EXPRESS_ATS_CAPABILITY_REGISTER,
31065 pub Control: PCI_EXPRESS_ATS_CONTROL_REGISTER,
31066}
31067pub type PCI_EXPRESS_ATS_CAPABILITY = _PCI_EXPRESS_ATS_CAPABILITY;
31068pub type PPCI_EXPRESS_ATS_CAPABILITY = *mut _PCI_EXPRESS_ATS_CAPABILITY;
31069#[repr(C)]
31070#[derive(Copy, Clone)]
31071pub union _PCI_EXPRESS_PASID_CAPABILITY_REGISTER {
31072 pub __bindgen_anon_1: _PCI_EXPRESS_PASID_CAPABILITY_REGISTER__bindgen_ty_1,
31073 pub AsUSHORT: USHORT,
31074}
31075#[repr(C)]
31076#[repr(align(2))]
31077#[derive(Debug, Copy, Clone)]
31078pub struct _PCI_EXPRESS_PASID_CAPABILITY_REGISTER__bindgen_ty_1 {
31079 pub _bitfield_align_1: [u8; 0],
31080 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
31081}
31082impl _PCI_EXPRESS_PASID_CAPABILITY_REGISTER__bindgen_ty_1 {
31083 #[inline]
31084 pub fn Rsvd(&self) -> USHORT {
31085 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
31086 }
31087 #[inline]
31088 pub fn set_Rsvd(&mut self, val: USHORT) {
31089 unsafe {
31090 let val: u16 = ::core::mem::transmute(val);
31091 self._bitfield_1.set(0usize, 1u8, val as u64)
31092 }
31093 }
31094 #[inline]
31095 pub unsafe fn Rsvd_raw(this: *const Self) -> USHORT {
31096 unsafe {
31097 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31098 ::core::ptr::addr_of!((*this)._bitfield_1),
31099 0usize,
31100 1u8,
31101 ) as u16)
31102 }
31103 }
31104 #[inline]
31105 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: USHORT) {
31106 unsafe {
31107 let val: u16 = ::core::mem::transmute(val);
31108 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31109 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31110 0usize,
31111 1u8,
31112 val as u64,
31113 )
31114 }
31115 }
31116 #[inline]
31117 pub fn ExecutePermissionSupported(&self) -> USHORT {
31118 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
31119 }
31120 #[inline]
31121 pub fn set_ExecutePermissionSupported(&mut self, val: USHORT) {
31122 unsafe {
31123 let val: u16 = ::core::mem::transmute(val);
31124 self._bitfield_1.set(1usize, 1u8, val as u64)
31125 }
31126 }
31127 #[inline]
31128 pub unsafe fn ExecutePermissionSupported_raw(this: *const Self) -> USHORT {
31129 unsafe {
31130 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31131 ::core::ptr::addr_of!((*this)._bitfield_1),
31132 1usize,
31133 1u8,
31134 ) as u16)
31135 }
31136 }
31137 #[inline]
31138 pub unsafe fn set_ExecutePermissionSupported_raw(this: *mut Self, val: USHORT) {
31139 unsafe {
31140 let val: u16 = ::core::mem::transmute(val);
31141 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31142 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31143 1usize,
31144 1u8,
31145 val as u64,
31146 )
31147 }
31148 }
31149 #[inline]
31150 pub fn PrivilegedModeSupported(&self) -> USHORT {
31151 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
31152 }
31153 #[inline]
31154 pub fn set_PrivilegedModeSupported(&mut self, val: USHORT) {
31155 unsafe {
31156 let val: u16 = ::core::mem::transmute(val);
31157 self._bitfield_1.set(2usize, 1u8, val as u64)
31158 }
31159 }
31160 #[inline]
31161 pub unsafe fn PrivilegedModeSupported_raw(this: *const Self) -> USHORT {
31162 unsafe {
31163 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31164 ::core::ptr::addr_of!((*this)._bitfield_1),
31165 2usize,
31166 1u8,
31167 ) as u16)
31168 }
31169 }
31170 #[inline]
31171 pub unsafe fn set_PrivilegedModeSupported_raw(this: *mut Self, val: USHORT) {
31172 unsafe {
31173 let val: u16 = ::core::mem::transmute(val);
31174 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31175 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31176 2usize,
31177 1u8,
31178 val as u64,
31179 )
31180 }
31181 }
31182 #[inline]
31183 pub fn Rsvd2(&self) -> USHORT {
31184 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 5u8) as u16) }
31185 }
31186 #[inline]
31187 pub fn set_Rsvd2(&mut self, val: USHORT) {
31188 unsafe {
31189 let val: u16 = ::core::mem::transmute(val);
31190 self._bitfield_1.set(3usize, 5u8, val as u64)
31191 }
31192 }
31193 #[inline]
31194 pub unsafe fn Rsvd2_raw(this: *const Self) -> USHORT {
31195 unsafe {
31196 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31197 ::core::ptr::addr_of!((*this)._bitfield_1),
31198 3usize,
31199 5u8,
31200 ) as u16)
31201 }
31202 }
31203 #[inline]
31204 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: USHORT) {
31205 unsafe {
31206 let val: u16 = ::core::mem::transmute(val);
31207 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31208 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31209 3usize,
31210 5u8,
31211 val as u64,
31212 )
31213 }
31214 }
31215 #[inline]
31216 pub fn MaxPASIDWidth(&self) -> USHORT {
31217 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 5u8) as u16) }
31218 }
31219 #[inline]
31220 pub fn set_MaxPASIDWidth(&mut self, val: USHORT) {
31221 unsafe {
31222 let val: u16 = ::core::mem::transmute(val);
31223 self._bitfield_1.set(8usize, 5u8, val as u64)
31224 }
31225 }
31226 #[inline]
31227 pub unsafe fn MaxPASIDWidth_raw(this: *const Self) -> USHORT {
31228 unsafe {
31229 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31230 ::core::ptr::addr_of!((*this)._bitfield_1),
31231 8usize,
31232 5u8,
31233 ) as u16)
31234 }
31235 }
31236 #[inline]
31237 pub unsafe fn set_MaxPASIDWidth_raw(this: *mut Self, val: USHORT) {
31238 unsafe {
31239 let val: u16 = ::core::mem::transmute(val);
31240 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31241 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31242 8usize,
31243 5u8,
31244 val as u64,
31245 )
31246 }
31247 }
31248 #[inline]
31249 pub fn Rsvd3(&self) -> USHORT {
31250 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u16) }
31251 }
31252 #[inline]
31253 pub fn set_Rsvd3(&mut self, val: USHORT) {
31254 unsafe {
31255 let val: u16 = ::core::mem::transmute(val);
31256 self._bitfield_1.set(13usize, 3u8, val as u64)
31257 }
31258 }
31259 #[inline]
31260 pub unsafe fn Rsvd3_raw(this: *const Self) -> USHORT {
31261 unsafe {
31262 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31263 ::core::ptr::addr_of!((*this)._bitfield_1),
31264 13usize,
31265 3u8,
31266 ) as u16)
31267 }
31268 }
31269 #[inline]
31270 pub unsafe fn set_Rsvd3_raw(this: *mut Self, val: USHORT) {
31271 unsafe {
31272 let val: u16 = ::core::mem::transmute(val);
31273 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31274 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31275 13usize,
31276 3u8,
31277 val as u64,
31278 )
31279 }
31280 }
31281 #[inline]
31282 pub fn new_bitfield_1(
31283 Rsvd: USHORT,
31284 ExecutePermissionSupported: USHORT,
31285 PrivilegedModeSupported: USHORT,
31286 Rsvd2: USHORT,
31287 MaxPASIDWidth: USHORT,
31288 Rsvd3: USHORT,
31289 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
31290 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
31291 __bindgen_bitfield_unit.set(0usize, 1u8, {
31292 let Rsvd: u16 = unsafe { ::core::mem::transmute(Rsvd) };
31293 Rsvd as u64
31294 });
31295 __bindgen_bitfield_unit.set(1usize, 1u8, {
31296 let ExecutePermissionSupported: u16 =
31297 unsafe { ::core::mem::transmute(ExecutePermissionSupported) };
31298 ExecutePermissionSupported as u64
31299 });
31300 __bindgen_bitfield_unit.set(2usize, 1u8, {
31301 let PrivilegedModeSupported: u16 =
31302 unsafe { ::core::mem::transmute(PrivilegedModeSupported) };
31303 PrivilegedModeSupported as u64
31304 });
31305 __bindgen_bitfield_unit.set(3usize, 5u8, {
31306 let Rsvd2: u16 = unsafe { ::core::mem::transmute(Rsvd2) };
31307 Rsvd2 as u64
31308 });
31309 __bindgen_bitfield_unit.set(8usize, 5u8, {
31310 let MaxPASIDWidth: u16 = unsafe { ::core::mem::transmute(MaxPASIDWidth) };
31311 MaxPASIDWidth as u64
31312 });
31313 __bindgen_bitfield_unit.set(13usize, 3u8, {
31314 let Rsvd3: u16 = unsafe { ::core::mem::transmute(Rsvd3) };
31315 Rsvd3 as u64
31316 });
31317 __bindgen_bitfield_unit
31318 }
31319}
31320pub type PCI_EXPRESS_PASID_CAPABILITY_REGISTER = _PCI_EXPRESS_PASID_CAPABILITY_REGISTER;
31321pub type PPCI_EXPRESS_PASID_CAPABILITY_REGISTER = *mut _PCI_EXPRESS_PASID_CAPABILITY_REGISTER;
31322#[repr(C)]
31323#[derive(Copy, Clone)]
31324pub union _PCI_EXPRESS_PASID_CONTROL_REGISTER {
31325 pub __bindgen_anon_1: _PCI_EXPRESS_PASID_CONTROL_REGISTER__bindgen_ty_1,
31326 pub AsUSHORT: USHORT,
31327}
31328#[repr(C)]
31329#[derive(Debug, Copy, Clone)]
31330pub struct _PCI_EXPRESS_PASID_CONTROL_REGISTER__bindgen_ty_1 {
31331 pub _bitfield_align_1: [u16; 0],
31332 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
31333}
31334impl _PCI_EXPRESS_PASID_CONTROL_REGISTER__bindgen_ty_1 {
31335 #[inline]
31336 pub fn PASIDEnable(&self) -> USHORT {
31337 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
31338 }
31339 #[inline]
31340 pub fn set_PASIDEnable(&mut self, val: USHORT) {
31341 unsafe {
31342 let val: u16 = ::core::mem::transmute(val);
31343 self._bitfield_1.set(0usize, 1u8, val as u64)
31344 }
31345 }
31346 #[inline]
31347 pub unsafe fn PASIDEnable_raw(this: *const Self) -> USHORT {
31348 unsafe {
31349 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31350 ::core::ptr::addr_of!((*this)._bitfield_1),
31351 0usize,
31352 1u8,
31353 ) as u16)
31354 }
31355 }
31356 #[inline]
31357 pub unsafe fn set_PASIDEnable_raw(this: *mut Self, val: USHORT) {
31358 unsafe {
31359 let val: u16 = ::core::mem::transmute(val);
31360 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31361 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31362 0usize,
31363 1u8,
31364 val as u64,
31365 )
31366 }
31367 }
31368 #[inline]
31369 pub fn ExecutePermissionEnable(&self) -> USHORT {
31370 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
31371 }
31372 #[inline]
31373 pub fn set_ExecutePermissionEnable(&mut self, val: USHORT) {
31374 unsafe {
31375 let val: u16 = ::core::mem::transmute(val);
31376 self._bitfield_1.set(1usize, 1u8, val as u64)
31377 }
31378 }
31379 #[inline]
31380 pub unsafe fn ExecutePermissionEnable_raw(this: *const Self) -> USHORT {
31381 unsafe {
31382 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31383 ::core::ptr::addr_of!((*this)._bitfield_1),
31384 1usize,
31385 1u8,
31386 ) as u16)
31387 }
31388 }
31389 #[inline]
31390 pub unsafe fn set_ExecutePermissionEnable_raw(this: *mut Self, val: USHORT) {
31391 unsafe {
31392 let val: u16 = ::core::mem::transmute(val);
31393 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31394 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31395 1usize,
31396 1u8,
31397 val as u64,
31398 )
31399 }
31400 }
31401 #[inline]
31402 pub fn PrivilegedModeEnable(&self) -> USHORT {
31403 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
31404 }
31405 #[inline]
31406 pub fn set_PrivilegedModeEnable(&mut self, val: USHORT) {
31407 unsafe {
31408 let val: u16 = ::core::mem::transmute(val);
31409 self._bitfield_1.set(2usize, 1u8, val as u64)
31410 }
31411 }
31412 #[inline]
31413 pub unsafe fn PrivilegedModeEnable_raw(this: *const Self) -> USHORT {
31414 unsafe {
31415 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31416 ::core::ptr::addr_of!((*this)._bitfield_1),
31417 2usize,
31418 1u8,
31419 ) as u16)
31420 }
31421 }
31422 #[inline]
31423 pub unsafe fn set_PrivilegedModeEnable_raw(this: *mut Self, val: USHORT) {
31424 unsafe {
31425 let val: u16 = ::core::mem::transmute(val);
31426 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31427 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31428 2usize,
31429 1u8,
31430 val as u64,
31431 )
31432 }
31433 }
31434 #[inline]
31435 pub fn Rsvd(&self) -> USHORT {
31436 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 13u8) as u16) }
31437 }
31438 #[inline]
31439 pub fn set_Rsvd(&mut self, val: USHORT) {
31440 unsafe {
31441 let val: u16 = ::core::mem::transmute(val);
31442 self._bitfield_1.set(3usize, 13u8, val as u64)
31443 }
31444 }
31445 #[inline]
31446 pub unsafe fn Rsvd_raw(this: *const Self) -> USHORT {
31447 unsafe {
31448 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31449 ::core::ptr::addr_of!((*this)._bitfield_1),
31450 3usize,
31451 13u8,
31452 ) as u16)
31453 }
31454 }
31455 #[inline]
31456 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: USHORT) {
31457 unsafe {
31458 let val: u16 = ::core::mem::transmute(val);
31459 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31460 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31461 3usize,
31462 13u8,
31463 val as u64,
31464 )
31465 }
31466 }
31467 #[inline]
31468 pub fn new_bitfield_1(
31469 PASIDEnable: USHORT,
31470 ExecutePermissionEnable: USHORT,
31471 PrivilegedModeEnable: USHORT,
31472 Rsvd: USHORT,
31473 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
31474 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
31475 __bindgen_bitfield_unit.set(0usize, 1u8, {
31476 let PASIDEnable: u16 = unsafe { ::core::mem::transmute(PASIDEnable) };
31477 PASIDEnable as u64
31478 });
31479 __bindgen_bitfield_unit.set(1usize, 1u8, {
31480 let ExecutePermissionEnable: u16 =
31481 unsafe { ::core::mem::transmute(ExecutePermissionEnable) };
31482 ExecutePermissionEnable as u64
31483 });
31484 __bindgen_bitfield_unit.set(2usize, 1u8, {
31485 let PrivilegedModeEnable: u16 = unsafe { ::core::mem::transmute(PrivilegedModeEnable) };
31486 PrivilegedModeEnable as u64
31487 });
31488 __bindgen_bitfield_unit.set(3usize, 13u8, {
31489 let Rsvd: u16 = unsafe { ::core::mem::transmute(Rsvd) };
31490 Rsvd as u64
31491 });
31492 __bindgen_bitfield_unit
31493 }
31494}
31495pub type PCI_EXPRESS_PASID_CONTROL_REGISTER = _PCI_EXPRESS_PASID_CONTROL_REGISTER;
31496pub type PPCI_EXPRESS_PASID_CONTROL_REGISTER = *mut _PCI_EXPRESS_PASID_CONTROL_REGISTER;
31497#[repr(C)]
31498#[derive(Copy, Clone)]
31499pub struct _PCI_EXPRESS_PASID_CAPABILITY {
31500 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
31501 pub Capability: PCI_EXPRESS_PASID_CAPABILITY_REGISTER,
31502 pub Control: PCI_EXPRESS_PASID_CONTROL_REGISTER,
31503}
31504pub type PCI_EXPRESS_PASID_CAPABILITY = _PCI_EXPRESS_PASID_CAPABILITY;
31505pub type PPCI_EXPRESS_PASID_CAPABILITY = *mut _PCI_EXPRESS_PASID_CAPABILITY;
31506#[repr(C)]
31507#[derive(Copy, Clone)]
31508pub union _PCI_EXPRESS_PRI_STATUS_REGISTER {
31509 pub __bindgen_anon_1: _PCI_EXPRESS_PRI_STATUS_REGISTER__bindgen_ty_1,
31510 pub AsUSHORT: USHORT,
31511}
31512#[repr(C)]
31513#[repr(align(2))]
31514#[derive(Debug, Copy, Clone)]
31515pub struct _PCI_EXPRESS_PRI_STATUS_REGISTER__bindgen_ty_1 {
31516 pub _bitfield_align_1: [u8; 0],
31517 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
31518}
31519impl _PCI_EXPRESS_PRI_STATUS_REGISTER__bindgen_ty_1 {
31520 #[inline]
31521 pub fn ResponseFailure(&self) -> USHORT {
31522 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
31523 }
31524 #[inline]
31525 pub fn set_ResponseFailure(&mut self, val: USHORT) {
31526 unsafe {
31527 let val: u16 = ::core::mem::transmute(val);
31528 self._bitfield_1.set(0usize, 1u8, val as u64)
31529 }
31530 }
31531 #[inline]
31532 pub unsafe fn ResponseFailure_raw(this: *const Self) -> USHORT {
31533 unsafe {
31534 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31535 ::core::ptr::addr_of!((*this)._bitfield_1),
31536 0usize,
31537 1u8,
31538 ) as u16)
31539 }
31540 }
31541 #[inline]
31542 pub unsafe fn set_ResponseFailure_raw(this: *mut Self, val: USHORT) {
31543 unsafe {
31544 let val: u16 = ::core::mem::transmute(val);
31545 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31546 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31547 0usize,
31548 1u8,
31549 val as u64,
31550 )
31551 }
31552 }
31553 #[inline]
31554 pub fn UnexpectedPageRequestGroupIndex(&self) -> USHORT {
31555 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
31556 }
31557 #[inline]
31558 pub fn set_UnexpectedPageRequestGroupIndex(&mut self, val: USHORT) {
31559 unsafe {
31560 let val: u16 = ::core::mem::transmute(val);
31561 self._bitfield_1.set(1usize, 1u8, val as u64)
31562 }
31563 }
31564 #[inline]
31565 pub unsafe fn UnexpectedPageRequestGroupIndex_raw(this: *const Self) -> USHORT {
31566 unsafe {
31567 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31568 ::core::ptr::addr_of!((*this)._bitfield_1),
31569 1usize,
31570 1u8,
31571 ) as u16)
31572 }
31573 }
31574 #[inline]
31575 pub unsafe fn set_UnexpectedPageRequestGroupIndex_raw(this: *mut Self, val: USHORT) {
31576 unsafe {
31577 let val: u16 = ::core::mem::transmute(val);
31578 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31579 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31580 1usize,
31581 1u8,
31582 val as u64,
31583 )
31584 }
31585 }
31586 #[inline]
31587 pub fn Rsvd(&self) -> USHORT {
31588 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u16) }
31589 }
31590 #[inline]
31591 pub fn set_Rsvd(&mut self, val: USHORT) {
31592 unsafe {
31593 let val: u16 = ::core::mem::transmute(val);
31594 self._bitfield_1.set(2usize, 6u8, val as u64)
31595 }
31596 }
31597 #[inline]
31598 pub unsafe fn Rsvd_raw(this: *const Self) -> USHORT {
31599 unsafe {
31600 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31601 ::core::ptr::addr_of!((*this)._bitfield_1),
31602 2usize,
31603 6u8,
31604 ) as u16)
31605 }
31606 }
31607 #[inline]
31608 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: USHORT) {
31609 unsafe {
31610 let val: u16 = ::core::mem::transmute(val);
31611 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31612 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31613 2usize,
31614 6u8,
31615 val as u64,
31616 )
31617 }
31618 }
31619 #[inline]
31620 pub fn Stopped(&self) -> USHORT {
31621 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u16) }
31622 }
31623 #[inline]
31624 pub fn set_Stopped(&mut self, val: USHORT) {
31625 unsafe {
31626 let val: u16 = ::core::mem::transmute(val);
31627 self._bitfield_1.set(8usize, 1u8, val as u64)
31628 }
31629 }
31630 #[inline]
31631 pub unsafe fn Stopped_raw(this: *const Self) -> USHORT {
31632 unsafe {
31633 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31634 ::core::ptr::addr_of!((*this)._bitfield_1),
31635 8usize,
31636 1u8,
31637 ) as u16)
31638 }
31639 }
31640 #[inline]
31641 pub unsafe fn set_Stopped_raw(this: *mut Self, val: USHORT) {
31642 unsafe {
31643 let val: u16 = ::core::mem::transmute(val);
31644 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31645 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31646 8usize,
31647 1u8,
31648 val as u64,
31649 )
31650 }
31651 }
31652 #[inline]
31653 pub fn Rsvd2(&self) -> USHORT {
31654 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 6u8) as u16) }
31655 }
31656 #[inline]
31657 pub fn set_Rsvd2(&mut self, val: USHORT) {
31658 unsafe {
31659 let val: u16 = ::core::mem::transmute(val);
31660 self._bitfield_1.set(9usize, 6u8, val as u64)
31661 }
31662 }
31663 #[inline]
31664 pub unsafe fn Rsvd2_raw(this: *const Self) -> USHORT {
31665 unsafe {
31666 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31667 ::core::ptr::addr_of!((*this)._bitfield_1),
31668 9usize,
31669 6u8,
31670 ) as u16)
31671 }
31672 }
31673 #[inline]
31674 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: USHORT) {
31675 unsafe {
31676 let val: u16 = ::core::mem::transmute(val);
31677 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31678 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31679 9usize,
31680 6u8,
31681 val as u64,
31682 )
31683 }
31684 }
31685 #[inline]
31686 pub fn PrgResponsePasidRequired(&self) -> USHORT {
31687 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u16) }
31688 }
31689 #[inline]
31690 pub fn set_PrgResponsePasidRequired(&mut self, val: USHORT) {
31691 unsafe {
31692 let val: u16 = ::core::mem::transmute(val);
31693 self._bitfield_1.set(15usize, 1u8, val as u64)
31694 }
31695 }
31696 #[inline]
31697 pub unsafe fn PrgResponsePasidRequired_raw(this: *const Self) -> USHORT {
31698 unsafe {
31699 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31700 ::core::ptr::addr_of!((*this)._bitfield_1),
31701 15usize,
31702 1u8,
31703 ) as u16)
31704 }
31705 }
31706 #[inline]
31707 pub unsafe fn set_PrgResponsePasidRequired_raw(this: *mut Self, val: USHORT) {
31708 unsafe {
31709 let val: u16 = ::core::mem::transmute(val);
31710 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31711 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31712 15usize,
31713 1u8,
31714 val as u64,
31715 )
31716 }
31717 }
31718 #[inline]
31719 pub fn new_bitfield_1(
31720 ResponseFailure: USHORT,
31721 UnexpectedPageRequestGroupIndex: USHORT,
31722 Rsvd: USHORT,
31723 Stopped: USHORT,
31724 Rsvd2: USHORT,
31725 PrgResponsePasidRequired: USHORT,
31726 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
31727 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
31728 __bindgen_bitfield_unit.set(0usize, 1u8, {
31729 let ResponseFailure: u16 = unsafe { ::core::mem::transmute(ResponseFailure) };
31730 ResponseFailure as u64
31731 });
31732 __bindgen_bitfield_unit.set(1usize, 1u8, {
31733 let UnexpectedPageRequestGroupIndex: u16 =
31734 unsafe { ::core::mem::transmute(UnexpectedPageRequestGroupIndex) };
31735 UnexpectedPageRequestGroupIndex as u64
31736 });
31737 __bindgen_bitfield_unit.set(2usize, 6u8, {
31738 let Rsvd: u16 = unsafe { ::core::mem::transmute(Rsvd) };
31739 Rsvd as u64
31740 });
31741 __bindgen_bitfield_unit.set(8usize, 1u8, {
31742 let Stopped: u16 = unsafe { ::core::mem::transmute(Stopped) };
31743 Stopped as u64
31744 });
31745 __bindgen_bitfield_unit.set(9usize, 6u8, {
31746 let Rsvd2: u16 = unsafe { ::core::mem::transmute(Rsvd2) };
31747 Rsvd2 as u64
31748 });
31749 __bindgen_bitfield_unit.set(15usize, 1u8, {
31750 let PrgResponsePasidRequired: u16 =
31751 unsafe { ::core::mem::transmute(PrgResponsePasidRequired) };
31752 PrgResponsePasidRequired as u64
31753 });
31754 __bindgen_bitfield_unit
31755 }
31756}
31757pub type PCI_EXPRESS_PRI_STATUS_REGISTER = _PCI_EXPRESS_PRI_STATUS_REGISTER;
31758pub type PPCI_EXPRESS_PRI_STATUS_REGISTER = *mut _PCI_EXPRESS_PRI_STATUS_REGISTER;
31759#[repr(C)]
31760#[derive(Copy, Clone)]
31761pub union _PCI_EXPRESS_PRI_CONTROL_REGISTER {
31762 pub __bindgen_anon_1: _PCI_EXPRESS_PRI_CONTROL_REGISTER__bindgen_ty_1,
31763 pub AsUSHORT: USHORT,
31764}
31765#[repr(C)]
31766#[derive(Debug, Copy, Clone)]
31767pub struct _PCI_EXPRESS_PRI_CONTROL_REGISTER__bindgen_ty_1 {
31768 pub _bitfield_align_1: [u16; 0],
31769 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
31770}
31771impl _PCI_EXPRESS_PRI_CONTROL_REGISTER__bindgen_ty_1 {
31772 #[inline]
31773 pub fn Enable(&self) -> USHORT {
31774 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
31775 }
31776 #[inline]
31777 pub fn set_Enable(&mut self, val: USHORT) {
31778 unsafe {
31779 let val: u16 = ::core::mem::transmute(val);
31780 self._bitfield_1.set(0usize, 1u8, val as u64)
31781 }
31782 }
31783 #[inline]
31784 pub unsafe fn Enable_raw(this: *const Self) -> USHORT {
31785 unsafe {
31786 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31787 ::core::ptr::addr_of!((*this)._bitfield_1),
31788 0usize,
31789 1u8,
31790 ) as u16)
31791 }
31792 }
31793 #[inline]
31794 pub unsafe fn set_Enable_raw(this: *mut Self, val: USHORT) {
31795 unsafe {
31796 let val: u16 = ::core::mem::transmute(val);
31797 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31798 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31799 0usize,
31800 1u8,
31801 val as u64,
31802 )
31803 }
31804 }
31805 #[inline]
31806 pub fn Reset(&self) -> USHORT {
31807 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
31808 }
31809 #[inline]
31810 pub fn set_Reset(&mut self, val: USHORT) {
31811 unsafe {
31812 let val: u16 = ::core::mem::transmute(val);
31813 self._bitfield_1.set(1usize, 1u8, val as u64)
31814 }
31815 }
31816 #[inline]
31817 pub unsafe fn Reset_raw(this: *const Self) -> USHORT {
31818 unsafe {
31819 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31820 ::core::ptr::addr_of!((*this)._bitfield_1),
31821 1usize,
31822 1u8,
31823 ) as u16)
31824 }
31825 }
31826 #[inline]
31827 pub unsafe fn set_Reset_raw(this: *mut Self, val: USHORT) {
31828 unsafe {
31829 let val: u16 = ::core::mem::transmute(val);
31830 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31831 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31832 1usize,
31833 1u8,
31834 val as u64,
31835 )
31836 }
31837 }
31838 #[inline]
31839 pub fn Rsvd(&self) -> USHORT {
31840 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 14u8) as u16) }
31841 }
31842 #[inline]
31843 pub fn set_Rsvd(&mut self, val: USHORT) {
31844 unsafe {
31845 let val: u16 = ::core::mem::transmute(val);
31846 self._bitfield_1.set(2usize, 14u8, val as u64)
31847 }
31848 }
31849 #[inline]
31850 pub unsafe fn Rsvd_raw(this: *const Self) -> USHORT {
31851 unsafe {
31852 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
31853 ::core::ptr::addr_of!((*this)._bitfield_1),
31854 2usize,
31855 14u8,
31856 ) as u16)
31857 }
31858 }
31859 #[inline]
31860 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: USHORT) {
31861 unsafe {
31862 let val: u16 = ::core::mem::transmute(val);
31863 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
31864 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31865 2usize,
31866 14u8,
31867 val as u64,
31868 )
31869 }
31870 }
31871 #[inline]
31872 pub fn new_bitfield_1(
31873 Enable: USHORT,
31874 Reset: USHORT,
31875 Rsvd: USHORT,
31876 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
31877 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
31878 __bindgen_bitfield_unit.set(0usize, 1u8, {
31879 let Enable: u16 = unsafe { ::core::mem::transmute(Enable) };
31880 Enable as u64
31881 });
31882 __bindgen_bitfield_unit.set(1usize, 1u8, {
31883 let Reset: u16 = unsafe { ::core::mem::transmute(Reset) };
31884 Reset as u64
31885 });
31886 __bindgen_bitfield_unit.set(2usize, 14u8, {
31887 let Rsvd: u16 = unsafe { ::core::mem::transmute(Rsvd) };
31888 Rsvd as u64
31889 });
31890 __bindgen_bitfield_unit
31891 }
31892}
31893pub type PCI_EXPRESS_PRI_CONTROL_REGISTER = _PCI_EXPRESS_PRI_CONTROL_REGISTER;
31894pub type PPCI_EXPRESS_PRI_CONTROL_REGISTER = *mut _PCI_EXPRESS_PRI_CONTROL_REGISTER;
31895#[repr(C)]
31896#[derive(Copy, Clone)]
31897pub struct _PCI_EXPRESS_PRI_CAPABILITY {
31898 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
31899 pub Control: PCI_EXPRESS_PRI_CONTROL_REGISTER,
31900 pub Status: PCI_EXPRESS_PRI_STATUS_REGISTER,
31901 pub PRCapacity: ULONG,
31902 pub PRAllocation: ULONG,
31903}
31904pub type PCI_EXPRESS_PRI_CAPABILITY = _PCI_EXPRESS_PRI_CAPABILITY;
31905pub type PPCI_EXPRESS_PRI_CAPABILITY = *mut _PCI_EXPRESS_PRI_CAPABILITY;
31906#[repr(C)]
31907#[derive(Copy, Clone)]
31908pub union _PCI_EXPRESS_PTM_CAPABILITY_REGISTER {
31909 pub __bindgen_anon_1: _PCI_EXPRESS_PTM_CAPABILITY_REGISTER__bindgen_ty_1,
31910 pub AsULONG: ULONG,
31911}
31912#[repr(C)]
31913#[repr(align(4))]
31914#[derive(Debug, Copy, Clone)]
31915pub struct _PCI_EXPRESS_PTM_CAPABILITY_REGISTER__bindgen_ty_1 {
31916 pub _bitfield_align_1: [u16; 0],
31917 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
31918}
31919impl _PCI_EXPRESS_PTM_CAPABILITY_REGISTER__bindgen_ty_1 {
31920 #[inline]
31921 pub fn RequesterCapable(&self) -> ULONG {
31922 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
31923 }
31924 #[inline]
31925 pub fn set_RequesterCapable(&mut self, val: ULONG) {
31926 unsafe {
31927 let val: u32 = ::core::mem::transmute(val);
31928 self._bitfield_1.set(0usize, 1u8, val as u64)
31929 }
31930 }
31931 #[inline]
31932 pub unsafe fn RequesterCapable_raw(this: *const Self) -> ULONG {
31933 unsafe {
31934 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
31935 ::core::ptr::addr_of!((*this)._bitfield_1),
31936 0usize,
31937 1u8,
31938 ) as u32)
31939 }
31940 }
31941 #[inline]
31942 pub unsafe fn set_RequesterCapable_raw(this: *mut Self, val: ULONG) {
31943 unsafe {
31944 let val: u32 = ::core::mem::transmute(val);
31945 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
31946 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31947 0usize,
31948 1u8,
31949 val as u64,
31950 )
31951 }
31952 }
31953 #[inline]
31954 pub fn ResponderCapable(&self) -> ULONG {
31955 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
31956 }
31957 #[inline]
31958 pub fn set_ResponderCapable(&mut self, val: ULONG) {
31959 unsafe {
31960 let val: u32 = ::core::mem::transmute(val);
31961 self._bitfield_1.set(1usize, 1u8, val as u64)
31962 }
31963 }
31964 #[inline]
31965 pub unsafe fn ResponderCapable_raw(this: *const Self) -> ULONG {
31966 unsafe {
31967 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
31968 ::core::ptr::addr_of!((*this)._bitfield_1),
31969 1usize,
31970 1u8,
31971 ) as u32)
31972 }
31973 }
31974 #[inline]
31975 pub unsafe fn set_ResponderCapable_raw(this: *mut Self, val: ULONG) {
31976 unsafe {
31977 let val: u32 = ::core::mem::transmute(val);
31978 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
31979 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
31980 1usize,
31981 1u8,
31982 val as u64,
31983 )
31984 }
31985 }
31986 #[inline]
31987 pub fn RootCapable(&self) -> ULONG {
31988 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
31989 }
31990 #[inline]
31991 pub fn set_RootCapable(&mut self, val: ULONG) {
31992 unsafe {
31993 let val: u32 = ::core::mem::transmute(val);
31994 self._bitfield_1.set(2usize, 1u8, val as u64)
31995 }
31996 }
31997 #[inline]
31998 pub unsafe fn RootCapable_raw(this: *const Self) -> ULONG {
31999 unsafe {
32000 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32001 ::core::ptr::addr_of!((*this)._bitfield_1),
32002 2usize,
32003 1u8,
32004 ) as u32)
32005 }
32006 }
32007 #[inline]
32008 pub unsafe fn set_RootCapable_raw(this: *mut Self, val: ULONG) {
32009 unsafe {
32010 let val: u32 = ::core::mem::transmute(val);
32011 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32012 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32013 2usize,
32014 1u8,
32015 val as u64,
32016 )
32017 }
32018 }
32019 #[inline]
32020 pub fn Rsvd(&self) -> ULONG {
32021 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 5u8) as u32) }
32022 }
32023 #[inline]
32024 pub fn set_Rsvd(&mut self, val: ULONG) {
32025 unsafe {
32026 let val: u32 = ::core::mem::transmute(val);
32027 self._bitfield_1.set(3usize, 5u8, val as u64)
32028 }
32029 }
32030 #[inline]
32031 pub unsafe fn Rsvd_raw(this: *const Self) -> ULONG {
32032 unsafe {
32033 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32034 ::core::ptr::addr_of!((*this)._bitfield_1),
32035 3usize,
32036 5u8,
32037 ) as u32)
32038 }
32039 }
32040 #[inline]
32041 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: ULONG) {
32042 unsafe {
32043 let val: u32 = ::core::mem::transmute(val);
32044 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32045 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32046 3usize,
32047 5u8,
32048 val as u64,
32049 )
32050 }
32051 }
32052 #[inline]
32053 pub fn LocalGranularity(&self) -> ULONG {
32054 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
32055 }
32056 #[inline]
32057 pub fn set_LocalGranularity(&mut self, val: ULONG) {
32058 unsafe {
32059 let val: u32 = ::core::mem::transmute(val);
32060 self._bitfield_1.set(8usize, 8u8, val as u64)
32061 }
32062 }
32063 #[inline]
32064 pub unsafe fn LocalGranularity_raw(this: *const Self) -> ULONG {
32065 unsafe {
32066 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32067 ::core::ptr::addr_of!((*this)._bitfield_1),
32068 8usize,
32069 8u8,
32070 ) as u32)
32071 }
32072 }
32073 #[inline]
32074 pub unsafe fn set_LocalGranularity_raw(this: *mut Self, val: ULONG) {
32075 unsafe {
32076 let val: u32 = ::core::mem::transmute(val);
32077 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32078 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32079 8usize,
32080 8u8,
32081 val as u64,
32082 )
32083 }
32084 }
32085 #[inline]
32086 pub fn Rsvd2(&self) -> ULONG {
32087 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
32088 }
32089 #[inline]
32090 pub fn set_Rsvd2(&mut self, val: ULONG) {
32091 unsafe {
32092 let val: u32 = ::core::mem::transmute(val);
32093 self._bitfield_1.set(16usize, 16u8, val as u64)
32094 }
32095 }
32096 #[inline]
32097 pub unsafe fn Rsvd2_raw(this: *const Self) -> ULONG {
32098 unsafe {
32099 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32100 ::core::ptr::addr_of!((*this)._bitfield_1),
32101 16usize,
32102 16u8,
32103 ) as u32)
32104 }
32105 }
32106 #[inline]
32107 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: ULONG) {
32108 unsafe {
32109 let val: u32 = ::core::mem::transmute(val);
32110 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32111 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32112 16usize,
32113 16u8,
32114 val as u64,
32115 )
32116 }
32117 }
32118 #[inline]
32119 pub fn new_bitfield_1(
32120 RequesterCapable: ULONG,
32121 ResponderCapable: ULONG,
32122 RootCapable: ULONG,
32123 Rsvd: ULONG,
32124 LocalGranularity: ULONG,
32125 Rsvd2: ULONG,
32126 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
32127 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
32128 __bindgen_bitfield_unit.set(0usize, 1u8, {
32129 let RequesterCapable: u32 = unsafe { ::core::mem::transmute(RequesterCapable) };
32130 RequesterCapable as u64
32131 });
32132 __bindgen_bitfield_unit.set(1usize, 1u8, {
32133 let ResponderCapable: u32 = unsafe { ::core::mem::transmute(ResponderCapable) };
32134 ResponderCapable as u64
32135 });
32136 __bindgen_bitfield_unit.set(2usize, 1u8, {
32137 let RootCapable: u32 = unsafe { ::core::mem::transmute(RootCapable) };
32138 RootCapable as u64
32139 });
32140 __bindgen_bitfield_unit.set(3usize, 5u8, {
32141 let Rsvd: u32 = unsafe { ::core::mem::transmute(Rsvd) };
32142 Rsvd as u64
32143 });
32144 __bindgen_bitfield_unit.set(8usize, 8u8, {
32145 let LocalGranularity: u32 = unsafe { ::core::mem::transmute(LocalGranularity) };
32146 LocalGranularity as u64
32147 });
32148 __bindgen_bitfield_unit.set(16usize, 16u8, {
32149 let Rsvd2: u32 = unsafe { ::core::mem::transmute(Rsvd2) };
32150 Rsvd2 as u64
32151 });
32152 __bindgen_bitfield_unit
32153 }
32154}
32155pub type PCI_EXPRESS_PTM_CAPABILITY_REGISTER = _PCI_EXPRESS_PTM_CAPABILITY_REGISTER;
32156pub type PPCI_EXPRESS_PTM_CAPABILITY_REGISTER = *mut _PCI_EXPRESS_PTM_CAPABILITY_REGISTER;
32157#[repr(C)]
32158#[derive(Copy, Clone)]
32159pub union _PCI_EXPRESS_PTM_CONTROL_REGISTER {
32160 pub __bindgen_anon_1: _PCI_EXPRESS_PTM_CONTROL_REGISTER__bindgen_ty_1,
32161 pub AsULONG: ULONG,
32162}
32163#[repr(C)]
32164#[repr(align(4))]
32165#[derive(Debug, Copy, Clone)]
32166pub struct _PCI_EXPRESS_PTM_CONTROL_REGISTER__bindgen_ty_1 {
32167 pub _bitfield_align_1: [u16; 0],
32168 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
32169}
32170impl _PCI_EXPRESS_PTM_CONTROL_REGISTER__bindgen_ty_1 {
32171 #[inline]
32172 pub fn Enable(&self) -> ULONG {
32173 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
32174 }
32175 #[inline]
32176 pub fn set_Enable(&mut self, val: ULONG) {
32177 unsafe {
32178 let val: u32 = ::core::mem::transmute(val);
32179 self._bitfield_1.set(0usize, 1u8, val as u64)
32180 }
32181 }
32182 #[inline]
32183 pub unsafe fn Enable_raw(this: *const Self) -> ULONG {
32184 unsafe {
32185 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32186 ::core::ptr::addr_of!((*this)._bitfield_1),
32187 0usize,
32188 1u8,
32189 ) as u32)
32190 }
32191 }
32192 #[inline]
32193 pub unsafe fn set_Enable_raw(this: *mut Self, val: ULONG) {
32194 unsafe {
32195 let val: u32 = ::core::mem::transmute(val);
32196 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32197 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32198 0usize,
32199 1u8,
32200 val as u64,
32201 )
32202 }
32203 }
32204 #[inline]
32205 pub fn RootSelect(&self) -> ULONG {
32206 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
32207 }
32208 #[inline]
32209 pub fn set_RootSelect(&mut self, val: ULONG) {
32210 unsafe {
32211 let val: u32 = ::core::mem::transmute(val);
32212 self._bitfield_1.set(1usize, 1u8, val as u64)
32213 }
32214 }
32215 #[inline]
32216 pub unsafe fn RootSelect_raw(this: *const Self) -> ULONG {
32217 unsafe {
32218 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32219 ::core::ptr::addr_of!((*this)._bitfield_1),
32220 1usize,
32221 1u8,
32222 ) as u32)
32223 }
32224 }
32225 #[inline]
32226 pub unsafe fn set_RootSelect_raw(this: *mut Self, val: ULONG) {
32227 unsafe {
32228 let val: u32 = ::core::mem::transmute(val);
32229 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32230 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32231 1usize,
32232 1u8,
32233 val as u64,
32234 )
32235 }
32236 }
32237 #[inline]
32238 pub fn Rsvd(&self) -> ULONG {
32239 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 6u8) as u32) }
32240 }
32241 #[inline]
32242 pub fn set_Rsvd(&mut self, val: ULONG) {
32243 unsafe {
32244 let val: u32 = ::core::mem::transmute(val);
32245 self._bitfield_1.set(2usize, 6u8, val as u64)
32246 }
32247 }
32248 #[inline]
32249 pub unsafe fn Rsvd_raw(this: *const Self) -> ULONG {
32250 unsafe {
32251 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32252 ::core::ptr::addr_of!((*this)._bitfield_1),
32253 2usize,
32254 6u8,
32255 ) as u32)
32256 }
32257 }
32258 #[inline]
32259 pub unsafe fn set_Rsvd_raw(this: *mut Self, val: ULONG) {
32260 unsafe {
32261 let val: u32 = ::core::mem::transmute(val);
32262 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32263 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32264 2usize,
32265 6u8,
32266 val as u64,
32267 )
32268 }
32269 }
32270 #[inline]
32271 pub fn EffectiveGranularity(&self) -> ULONG {
32272 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
32273 }
32274 #[inline]
32275 pub fn set_EffectiveGranularity(&mut self, val: ULONG) {
32276 unsafe {
32277 let val: u32 = ::core::mem::transmute(val);
32278 self._bitfield_1.set(8usize, 8u8, val as u64)
32279 }
32280 }
32281 #[inline]
32282 pub unsafe fn EffectiveGranularity_raw(this: *const Self) -> ULONG {
32283 unsafe {
32284 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32285 ::core::ptr::addr_of!((*this)._bitfield_1),
32286 8usize,
32287 8u8,
32288 ) as u32)
32289 }
32290 }
32291 #[inline]
32292 pub unsafe fn set_EffectiveGranularity_raw(this: *mut Self, val: ULONG) {
32293 unsafe {
32294 let val: u32 = ::core::mem::transmute(val);
32295 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32296 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32297 8usize,
32298 8u8,
32299 val as u64,
32300 )
32301 }
32302 }
32303 #[inline]
32304 pub fn Rsvd2(&self) -> ULONG {
32305 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
32306 }
32307 #[inline]
32308 pub fn set_Rsvd2(&mut self, val: ULONG) {
32309 unsafe {
32310 let val: u32 = ::core::mem::transmute(val);
32311 self._bitfield_1.set(16usize, 16u8, val as u64)
32312 }
32313 }
32314 #[inline]
32315 pub unsafe fn Rsvd2_raw(this: *const Self) -> ULONG {
32316 unsafe {
32317 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32318 ::core::ptr::addr_of!((*this)._bitfield_1),
32319 16usize,
32320 16u8,
32321 ) as u32)
32322 }
32323 }
32324 #[inline]
32325 pub unsafe fn set_Rsvd2_raw(this: *mut Self, val: ULONG) {
32326 unsafe {
32327 let val: u32 = ::core::mem::transmute(val);
32328 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32329 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32330 16usize,
32331 16u8,
32332 val as u64,
32333 )
32334 }
32335 }
32336 #[inline]
32337 pub fn new_bitfield_1(
32338 Enable: ULONG,
32339 RootSelect: ULONG,
32340 Rsvd: ULONG,
32341 EffectiveGranularity: ULONG,
32342 Rsvd2: ULONG,
32343 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
32344 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
32345 __bindgen_bitfield_unit.set(0usize, 1u8, {
32346 let Enable: u32 = unsafe { ::core::mem::transmute(Enable) };
32347 Enable as u64
32348 });
32349 __bindgen_bitfield_unit.set(1usize, 1u8, {
32350 let RootSelect: u32 = unsafe { ::core::mem::transmute(RootSelect) };
32351 RootSelect as u64
32352 });
32353 __bindgen_bitfield_unit.set(2usize, 6u8, {
32354 let Rsvd: u32 = unsafe { ::core::mem::transmute(Rsvd) };
32355 Rsvd as u64
32356 });
32357 __bindgen_bitfield_unit.set(8usize, 8u8, {
32358 let EffectiveGranularity: u32 = unsafe { ::core::mem::transmute(EffectiveGranularity) };
32359 EffectiveGranularity as u64
32360 });
32361 __bindgen_bitfield_unit.set(16usize, 16u8, {
32362 let Rsvd2: u32 = unsafe { ::core::mem::transmute(Rsvd2) };
32363 Rsvd2 as u64
32364 });
32365 __bindgen_bitfield_unit
32366 }
32367}
32368pub type PCI_EXPRESS_PTM_CONTROL_REGISTER = _PCI_EXPRESS_PTM_CONTROL_REGISTER;
32369pub type PPCI_EXPRESS_PTM_CONTROL_REGISTER = *mut _PCI_EXPRESS_PTM_CONTROL_REGISTER;
32370#[repr(C)]
32371#[derive(Copy, Clone)]
32372pub struct _PCI_EXPRESS_PTM_CAPABILITY {
32373 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
32374 pub PtmCapability: PCI_EXPRESS_PTM_CAPABILITY_REGISTER,
32375 pub PtmControl: PCI_EXPRESS_PTM_CONTROL_REGISTER,
32376}
32377pub type PCI_EXPRESS_PTM_CAPABILITY = _PCI_EXPRESS_PTM_CAPABILITY;
32378pub type PPCI_EXPRESS_PTM_CAPABILITY = *mut _PCI_EXPRESS_PTM_CAPABILITY;
32379#[repr(C)]
32380#[derive(Copy, Clone)]
32381pub union _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS {
32382 pub __bindgen_anon_1: _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1,
32383 pub AsULONG: ULONG,
32384}
32385#[repr(C)]
32386#[repr(align(4))]
32387#[derive(Debug, Copy, Clone)]
32388pub struct _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
32389 pub _bitfield_align_1: [u8; 0],
32390 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
32391}
32392impl _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
32393 #[inline]
32394 pub fn Undefined(&self) -> ULONG {
32395 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
32396 }
32397 #[inline]
32398 pub fn set_Undefined(&mut self, val: ULONG) {
32399 unsafe {
32400 let val: u32 = ::core::mem::transmute(val);
32401 self._bitfield_1.set(0usize, 1u8, val as u64)
32402 }
32403 }
32404 #[inline]
32405 pub unsafe fn Undefined_raw(this: *const Self) -> ULONG {
32406 unsafe {
32407 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32408 ::core::ptr::addr_of!((*this)._bitfield_1),
32409 0usize,
32410 1u8,
32411 ) as u32)
32412 }
32413 }
32414 #[inline]
32415 pub unsafe fn set_Undefined_raw(this: *mut Self, val: ULONG) {
32416 unsafe {
32417 let val: u32 = ::core::mem::transmute(val);
32418 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32419 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32420 0usize,
32421 1u8,
32422 val as u64,
32423 )
32424 }
32425 }
32426 #[inline]
32427 pub fn Reserved1(&self) -> ULONG {
32428 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u32) }
32429 }
32430 #[inline]
32431 pub fn set_Reserved1(&mut self, val: ULONG) {
32432 unsafe {
32433 let val: u32 = ::core::mem::transmute(val);
32434 self._bitfield_1.set(1usize, 3u8, val as u64)
32435 }
32436 }
32437 #[inline]
32438 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
32439 unsafe {
32440 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32441 ::core::ptr::addr_of!((*this)._bitfield_1),
32442 1usize,
32443 3u8,
32444 ) as u32)
32445 }
32446 }
32447 #[inline]
32448 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
32449 unsafe {
32450 let val: u32 = ::core::mem::transmute(val);
32451 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32452 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32453 1usize,
32454 3u8,
32455 val as u64,
32456 )
32457 }
32458 }
32459 #[inline]
32460 pub fn DataLinkProtocolError(&self) -> ULONG {
32461 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
32462 }
32463 #[inline]
32464 pub fn set_DataLinkProtocolError(&mut self, val: ULONG) {
32465 unsafe {
32466 let val: u32 = ::core::mem::transmute(val);
32467 self._bitfield_1.set(4usize, 1u8, val as u64)
32468 }
32469 }
32470 #[inline]
32471 pub unsafe fn DataLinkProtocolError_raw(this: *const Self) -> ULONG {
32472 unsafe {
32473 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32474 ::core::ptr::addr_of!((*this)._bitfield_1),
32475 4usize,
32476 1u8,
32477 ) as u32)
32478 }
32479 }
32480 #[inline]
32481 pub unsafe fn set_DataLinkProtocolError_raw(this: *mut Self, val: ULONG) {
32482 unsafe {
32483 let val: u32 = ::core::mem::transmute(val);
32484 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32485 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32486 4usize,
32487 1u8,
32488 val as u64,
32489 )
32490 }
32491 }
32492 #[inline]
32493 pub fn SurpriseDownError(&self) -> ULONG {
32494 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
32495 }
32496 #[inline]
32497 pub fn set_SurpriseDownError(&mut self, val: ULONG) {
32498 unsafe {
32499 let val: u32 = ::core::mem::transmute(val);
32500 self._bitfield_1.set(5usize, 1u8, val as u64)
32501 }
32502 }
32503 #[inline]
32504 pub unsafe fn SurpriseDownError_raw(this: *const Self) -> ULONG {
32505 unsafe {
32506 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32507 ::core::ptr::addr_of!((*this)._bitfield_1),
32508 5usize,
32509 1u8,
32510 ) as u32)
32511 }
32512 }
32513 #[inline]
32514 pub unsafe fn set_SurpriseDownError_raw(this: *mut Self, val: ULONG) {
32515 unsafe {
32516 let val: u32 = ::core::mem::transmute(val);
32517 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32518 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32519 5usize,
32520 1u8,
32521 val as u64,
32522 )
32523 }
32524 }
32525 #[inline]
32526 pub fn Reserved2(&self) -> ULONG {
32527 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 6u8) as u32) }
32528 }
32529 #[inline]
32530 pub fn set_Reserved2(&mut self, val: ULONG) {
32531 unsafe {
32532 let val: u32 = ::core::mem::transmute(val);
32533 self._bitfield_1.set(6usize, 6u8, val as u64)
32534 }
32535 }
32536 #[inline]
32537 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
32538 unsafe {
32539 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32540 ::core::ptr::addr_of!((*this)._bitfield_1),
32541 6usize,
32542 6u8,
32543 ) as u32)
32544 }
32545 }
32546 #[inline]
32547 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
32548 unsafe {
32549 let val: u32 = ::core::mem::transmute(val);
32550 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32551 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32552 6usize,
32553 6u8,
32554 val as u64,
32555 )
32556 }
32557 }
32558 #[inline]
32559 pub fn PoisonedTLP(&self) -> ULONG {
32560 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
32561 }
32562 #[inline]
32563 pub fn set_PoisonedTLP(&mut self, val: ULONG) {
32564 unsafe {
32565 let val: u32 = ::core::mem::transmute(val);
32566 self._bitfield_1.set(12usize, 1u8, val as u64)
32567 }
32568 }
32569 #[inline]
32570 pub unsafe fn PoisonedTLP_raw(this: *const Self) -> ULONG {
32571 unsafe {
32572 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32573 ::core::ptr::addr_of!((*this)._bitfield_1),
32574 12usize,
32575 1u8,
32576 ) as u32)
32577 }
32578 }
32579 #[inline]
32580 pub unsafe fn set_PoisonedTLP_raw(this: *mut Self, val: ULONG) {
32581 unsafe {
32582 let val: u32 = ::core::mem::transmute(val);
32583 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32584 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32585 12usize,
32586 1u8,
32587 val as u64,
32588 )
32589 }
32590 }
32591 #[inline]
32592 pub fn FlowControlProtocolError(&self) -> ULONG {
32593 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
32594 }
32595 #[inline]
32596 pub fn set_FlowControlProtocolError(&mut self, val: ULONG) {
32597 unsafe {
32598 let val: u32 = ::core::mem::transmute(val);
32599 self._bitfield_1.set(13usize, 1u8, val as u64)
32600 }
32601 }
32602 #[inline]
32603 pub unsafe fn FlowControlProtocolError_raw(this: *const Self) -> ULONG {
32604 unsafe {
32605 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32606 ::core::ptr::addr_of!((*this)._bitfield_1),
32607 13usize,
32608 1u8,
32609 ) as u32)
32610 }
32611 }
32612 #[inline]
32613 pub unsafe fn set_FlowControlProtocolError_raw(this: *mut Self, val: ULONG) {
32614 unsafe {
32615 let val: u32 = ::core::mem::transmute(val);
32616 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32617 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32618 13usize,
32619 1u8,
32620 val as u64,
32621 )
32622 }
32623 }
32624 #[inline]
32625 pub fn CompletionTimeout(&self) -> ULONG {
32626 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
32627 }
32628 #[inline]
32629 pub fn set_CompletionTimeout(&mut self, val: ULONG) {
32630 unsafe {
32631 let val: u32 = ::core::mem::transmute(val);
32632 self._bitfield_1.set(14usize, 1u8, val as u64)
32633 }
32634 }
32635 #[inline]
32636 pub unsafe fn CompletionTimeout_raw(this: *const Self) -> ULONG {
32637 unsafe {
32638 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32639 ::core::ptr::addr_of!((*this)._bitfield_1),
32640 14usize,
32641 1u8,
32642 ) as u32)
32643 }
32644 }
32645 #[inline]
32646 pub unsafe fn set_CompletionTimeout_raw(this: *mut Self, val: ULONG) {
32647 unsafe {
32648 let val: u32 = ::core::mem::transmute(val);
32649 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32650 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32651 14usize,
32652 1u8,
32653 val as u64,
32654 )
32655 }
32656 }
32657 #[inline]
32658 pub fn CompleterAbort(&self) -> ULONG {
32659 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
32660 }
32661 #[inline]
32662 pub fn set_CompleterAbort(&mut self, val: ULONG) {
32663 unsafe {
32664 let val: u32 = ::core::mem::transmute(val);
32665 self._bitfield_1.set(15usize, 1u8, val as u64)
32666 }
32667 }
32668 #[inline]
32669 pub unsafe fn CompleterAbort_raw(this: *const Self) -> ULONG {
32670 unsafe {
32671 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32672 ::core::ptr::addr_of!((*this)._bitfield_1),
32673 15usize,
32674 1u8,
32675 ) as u32)
32676 }
32677 }
32678 #[inline]
32679 pub unsafe fn set_CompleterAbort_raw(this: *mut Self, val: ULONG) {
32680 unsafe {
32681 let val: u32 = ::core::mem::transmute(val);
32682 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32683 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32684 15usize,
32685 1u8,
32686 val as u64,
32687 )
32688 }
32689 }
32690 #[inline]
32691 pub fn UnexpectedCompletion(&self) -> ULONG {
32692 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
32693 }
32694 #[inline]
32695 pub fn set_UnexpectedCompletion(&mut self, val: ULONG) {
32696 unsafe {
32697 let val: u32 = ::core::mem::transmute(val);
32698 self._bitfield_1.set(16usize, 1u8, val as u64)
32699 }
32700 }
32701 #[inline]
32702 pub unsafe fn UnexpectedCompletion_raw(this: *const Self) -> ULONG {
32703 unsafe {
32704 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32705 ::core::ptr::addr_of!((*this)._bitfield_1),
32706 16usize,
32707 1u8,
32708 ) as u32)
32709 }
32710 }
32711 #[inline]
32712 pub unsafe fn set_UnexpectedCompletion_raw(this: *mut Self, val: ULONG) {
32713 unsafe {
32714 let val: u32 = ::core::mem::transmute(val);
32715 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32716 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32717 16usize,
32718 1u8,
32719 val as u64,
32720 )
32721 }
32722 }
32723 #[inline]
32724 pub fn ReceiverOverflow(&self) -> ULONG {
32725 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
32726 }
32727 #[inline]
32728 pub fn set_ReceiverOverflow(&mut self, val: ULONG) {
32729 unsafe {
32730 let val: u32 = ::core::mem::transmute(val);
32731 self._bitfield_1.set(17usize, 1u8, val as u64)
32732 }
32733 }
32734 #[inline]
32735 pub unsafe fn ReceiverOverflow_raw(this: *const Self) -> ULONG {
32736 unsafe {
32737 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32738 ::core::ptr::addr_of!((*this)._bitfield_1),
32739 17usize,
32740 1u8,
32741 ) as u32)
32742 }
32743 }
32744 #[inline]
32745 pub unsafe fn set_ReceiverOverflow_raw(this: *mut Self, val: ULONG) {
32746 unsafe {
32747 let val: u32 = ::core::mem::transmute(val);
32748 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32749 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32750 17usize,
32751 1u8,
32752 val as u64,
32753 )
32754 }
32755 }
32756 #[inline]
32757 pub fn MalformedTLP(&self) -> ULONG {
32758 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
32759 }
32760 #[inline]
32761 pub fn set_MalformedTLP(&mut self, val: ULONG) {
32762 unsafe {
32763 let val: u32 = ::core::mem::transmute(val);
32764 self._bitfield_1.set(18usize, 1u8, val as u64)
32765 }
32766 }
32767 #[inline]
32768 pub unsafe fn MalformedTLP_raw(this: *const Self) -> ULONG {
32769 unsafe {
32770 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32771 ::core::ptr::addr_of!((*this)._bitfield_1),
32772 18usize,
32773 1u8,
32774 ) as u32)
32775 }
32776 }
32777 #[inline]
32778 pub unsafe fn set_MalformedTLP_raw(this: *mut Self, val: ULONG) {
32779 unsafe {
32780 let val: u32 = ::core::mem::transmute(val);
32781 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32782 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32783 18usize,
32784 1u8,
32785 val as u64,
32786 )
32787 }
32788 }
32789 #[inline]
32790 pub fn ECRCError(&self) -> ULONG {
32791 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
32792 }
32793 #[inline]
32794 pub fn set_ECRCError(&mut self, val: ULONG) {
32795 unsafe {
32796 let val: u32 = ::core::mem::transmute(val);
32797 self._bitfield_1.set(19usize, 1u8, val as u64)
32798 }
32799 }
32800 #[inline]
32801 pub unsafe fn ECRCError_raw(this: *const Self) -> ULONG {
32802 unsafe {
32803 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32804 ::core::ptr::addr_of!((*this)._bitfield_1),
32805 19usize,
32806 1u8,
32807 ) as u32)
32808 }
32809 }
32810 #[inline]
32811 pub unsafe fn set_ECRCError_raw(this: *mut Self, val: ULONG) {
32812 unsafe {
32813 let val: u32 = ::core::mem::transmute(val);
32814 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32815 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32816 19usize,
32817 1u8,
32818 val as u64,
32819 )
32820 }
32821 }
32822 #[inline]
32823 pub fn UnsupportedRequestError(&self) -> ULONG {
32824 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
32825 }
32826 #[inline]
32827 pub fn set_UnsupportedRequestError(&mut self, val: ULONG) {
32828 unsafe {
32829 let val: u32 = ::core::mem::transmute(val);
32830 self._bitfield_1.set(20usize, 1u8, val as u64)
32831 }
32832 }
32833 #[inline]
32834 pub unsafe fn UnsupportedRequestError_raw(this: *const Self) -> ULONG {
32835 unsafe {
32836 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32837 ::core::ptr::addr_of!((*this)._bitfield_1),
32838 20usize,
32839 1u8,
32840 ) as u32)
32841 }
32842 }
32843 #[inline]
32844 pub unsafe fn set_UnsupportedRequestError_raw(this: *mut Self, val: ULONG) {
32845 unsafe {
32846 let val: u32 = ::core::mem::transmute(val);
32847 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32848 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32849 20usize,
32850 1u8,
32851 val as u64,
32852 )
32853 }
32854 }
32855 #[inline]
32856 pub fn AcsViolation(&self) -> ULONG {
32857 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
32858 }
32859 #[inline]
32860 pub fn set_AcsViolation(&mut self, val: ULONG) {
32861 unsafe {
32862 let val: u32 = ::core::mem::transmute(val);
32863 self._bitfield_1.set(21usize, 1u8, val as u64)
32864 }
32865 }
32866 #[inline]
32867 pub unsafe fn AcsViolation_raw(this: *const Self) -> ULONG {
32868 unsafe {
32869 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32870 ::core::ptr::addr_of!((*this)._bitfield_1),
32871 21usize,
32872 1u8,
32873 ) as u32)
32874 }
32875 }
32876 #[inline]
32877 pub unsafe fn set_AcsViolation_raw(this: *mut Self, val: ULONG) {
32878 unsafe {
32879 let val: u32 = ::core::mem::transmute(val);
32880 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32881 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32882 21usize,
32883 1u8,
32884 val as u64,
32885 )
32886 }
32887 }
32888 #[inline]
32889 pub fn UncorrectableInternalError(&self) -> ULONG {
32890 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
32891 }
32892 #[inline]
32893 pub fn set_UncorrectableInternalError(&mut self, val: ULONG) {
32894 unsafe {
32895 let val: u32 = ::core::mem::transmute(val);
32896 self._bitfield_1.set(22usize, 1u8, val as u64)
32897 }
32898 }
32899 #[inline]
32900 pub unsafe fn UncorrectableInternalError_raw(this: *const Self) -> ULONG {
32901 unsafe {
32902 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32903 ::core::ptr::addr_of!((*this)._bitfield_1),
32904 22usize,
32905 1u8,
32906 ) as u32)
32907 }
32908 }
32909 #[inline]
32910 pub unsafe fn set_UncorrectableInternalError_raw(this: *mut Self, val: ULONG) {
32911 unsafe {
32912 let val: u32 = ::core::mem::transmute(val);
32913 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32914 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32915 22usize,
32916 1u8,
32917 val as u64,
32918 )
32919 }
32920 }
32921 #[inline]
32922 pub fn MCBlockedTlp(&self) -> ULONG {
32923 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
32924 }
32925 #[inline]
32926 pub fn set_MCBlockedTlp(&mut self, val: ULONG) {
32927 unsafe {
32928 let val: u32 = ::core::mem::transmute(val);
32929 self._bitfield_1.set(23usize, 1u8, val as u64)
32930 }
32931 }
32932 #[inline]
32933 pub unsafe fn MCBlockedTlp_raw(this: *const Self) -> ULONG {
32934 unsafe {
32935 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32936 ::core::ptr::addr_of!((*this)._bitfield_1),
32937 23usize,
32938 1u8,
32939 ) as u32)
32940 }
32941 }
32942 #[inline]
32943 pub unsafe fn set_MCBlockedTlp_raw(this: *mut Self, val: ULONG) {
32944 unsafe {
32945 let val: u32 = ::core::mem::transmute(val);
32946 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32947 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32948 23usize,
32949 1u8,
32950 val as u64,
32951 )
32952 }
32953 }
32954 #[inline]
32955 pub fn AtomicOpEgressBlocked(&self) -> ULONG {
32956 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) }
32957 }
32958 #[inline]
32959 pub fn set_AtomicOpEgressBlocked(&mut self, val: ULONG) {
32960 unsafe {
32961 let val: u32 = ::core::mem::transmute(val);
32962 self._bitfield_1.set(24usize, 1u8, val as u64)
32963 }
32964 }
32965 #[inline]
32966 pub unsafe fn AtomicOpEgressBlocked_raw(this: *const Self) -> ULONG {
32967 unsafe {
32968 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
32969 ::core::ptr::addr_of!((*this)._bitfield_1),
32970 24usize,
32971 1u8,
32972 ) as u32)
32973 }
32974 }
32975 #[inline]
32976 pub unsafe fn set_AtomicOpEgressBlocked_raw(this: *mut Self, val: ULONG) {
32977 unsafe {
32978 let val: u32 = ::core::mem::transmute(val);
32979 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
32980 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
32981 24usize,
32982 1u8,
32983 val as u64,
32984 )
32985 }
32986 }
32987 #[inline]
32988 pub fn TlpPrefixBlocked(&self) -> ULONG {
32989 unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
32990 }
32991 #[inline]
32992 pub fn set_TlpPrefixBlocked(&mut self, val: ULONG) {
32993 unsafe {
32994 let val: u32 = ::core::mem::transmute(val);
32995 self._bitfield_1.set(25usize, 1u8, val as u64)
32996 }
32997 }
32998 #[inline]
32999 pub unsafe fn TlpPrefixBlocked_raw(this: *const Self) -> ULONG {
33000 unsafe {
33001 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33002 ::core::ptr::addr_of!((*this)._bitfield_1),
33003 25usize,
33004 1u8,
33005 ) as u32)
33006 }
33007 }
33008 #[inline]
33009 pub unsafe fn set_TlpPrefixBlocked_raw(this: *mut Self, val: ULONG) {
33010 unsafe {
33011 let val: u32 = ::core::mem::transmute(val);
33012 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33013 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33014 25usize,
33015 1u8,
33016 val as u64,
33017 )
33018 }
33019 }
33020 #[inline]
33021 pub fn Reserved3(&self) -> ULONG {
33022 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 6u8) as u32) }
33023 }
33024 #[inline]
33025 pub fn set_Reserved3(&mut self, val: ULONG) {
33026 unsafe {
33027 let val: u32 = ::core::mem::transmute(val);
33028 self._bitfield_1.set(26usize, 6u8, val as u64)
33029 }
33030 }
33031 #[inline]
33032 pub unsafe fn Reserved3_raw(this: *const Self) -> ULONG {
33033 unsafe {
33034 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33035 ::core::ptr::addr_of!((*this)._bitfield_1),
33036 26usize,
33037 6u8,
33038 ) as u32)
33039 }
33040 }
33041 #[inline]
33042 pub unsafe fn set_Reserved3_raw(this: *mut Self, val: ULONG) {
33043 unsafe {
33044 let val: u32 = ::core::mem::transmute(val);
33045 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33046 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33047 26usize,
33048 6u8,
33049 val as u64,
33050 )
33051 }
33052 }
33053 #[inline]
33054 pub fn new_bitfield_1(
33055 Undefined: ULONG,
33056 Reserved1: ULONG,
33057 DataLinkProtocolError: ULONG,
33058 SurpriseDownError: ULONG,
33059 Reserved2: ULONG,
33060 PoisonedTLP: ULONG,
33061 FlowControlProtocolError: ULONG,
33062 CompletionTimeout: ULONG,
33063 CompleterAbort: ULONG,
33064 UnexpectedCompletion: ULONG,
33065 ReceiverOverflow: ULONG,
33066 MalformedTLP: ULONG,
33067 ECRCError: ULONG,
33068 UnsupportedRequestError: ULONG,
33069 AcsViolation: ULONG,
33070 UncorrectableInternalError: ULONG,
33071 MCBlockedTlp: ULONG,
33072 AtomicOpEgressBlocked: ULONG,
33073 TlpPrefixBlocked: ULONG,
33074 Reserved3: ULONG,
33075 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
33076 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
33077 __bindgen_bitfield_unit.set(0usize, 1u8, {
33078 let Undefined: u32 = unsafe { ::core::mem::transmute(Undefined) };
33079 Undefined as u64
33080 });
33081 __bindgen_bitfield_unit.set(1usize, 3u8, {
33082 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
33083 Reserved1 as u64
33084 });
33085 __bindgen_bitfield_unit.set(4usize, 1u8, {
33086 let DataLinkProtocolError: u32 =
33087 unsafe { ::core::mem::transmute(DataLinkProtocolError) };
33088 DataLinkProtocolError as u64
33089 });
33090 __bindgen_bitfield_unit.set(5usize, 1u8, {
33091 let SurpriseDownError: u32 = unsafe { ::core::mem::transmute(SurpriseDownError) };
33092 SurpriseDownError as u64
33093 });
33094 __bindgen_bitfield_unit.set(6usize, 6u8, {
33095 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
33096 Reserved2 as u64
33097 });
33098 __bindgen_bitfield_unit.set(12usize, 1u8, {
33099 let PoisonedTLP: u32 = unsafe { ::core::mem::transmute(PoisonedTLP) };
33100 PoisonedTLP as u64
33101 });
33102 __bindgen_bitfield_unit.set(13usize, 1u8, {
33103 let FlowControlProtocolError: u32 =
33104 unsafe { ::core::mem::transmute(FlowControlProtocolError) };
33105 FlowControlProtocolError as u64
33106 });
33107 __bindgen_bitfield_unit.set(14usize, 1u8, {
33108 let CompletionTimeout: u32 = unsafe { ::core::mem::transmute(CompletionTimeout) };
33109 CompletionTimeout as u64
33110 });
33111 __bindgen_bitfield_unit.set(15usize, 1u8, {
33112 let CompleterAbort: u32 = unsafe { ::core::mem::transmute(CompleterAbort) };
33113 CompleterAbort as u64
33114 });
33115 __bindgen_bitfield_unit.set(16usize, 1u8, {
33116 let UnexpectedCompletion: u32 = unsafe { ::core::mem::transmute(UnexpectedCompletion) };
33117 UnexpectedCompletion as u64
33118 });
33119 __bindgen_bitfield_unit.set(17usize, 1u8, {
33120 let ReceiverOverflow: u32 = unsafe { ::core::mem::transmute(ReceiverOverflow) };
33121 ReceiverOverflow as u64
33122 });
33123 __bindgen_bitfield_unit.set(18usize, 1u8, {
33124 let MalformedTLP: u32 = unsafe { ::core::mem::transmute(MalformedTLP) };
33125 MalformedTLP as u64
33126 });
33127 __bindgen_bitfield_unit.set(19usize, 1u8, {
33128 let ECRCError: u32 = unsafe { ::core::mem::transmute(ECRCError) };
33129 ECRCError as u64
33130 });
33131 __bindgen_bitfield_unit.set(20usize, 1u8, {
33132 let UnsupportedRequestError: u32 =
33133 unsafe { ::core::mem::transmute(UnsupportedRequestError) };
33134 UnsupportedRequestError as u64
33135 });
33136 __bindgen_bitfield_unit.set(21usize, 1u8, {
33137 let AcsViolation: u32 = unsafe { ::core::mem::transmute(AcsViolation) };
33138 AcsViolation as u64
33139 });
33140 __bindgen_bitfield_unit.set(22usize, 1u8, {
33141 let UncorrectableInternalError: u32 =
33142 unsafe { ::core::mem::transmute(UncorrectableInternalError) };
33143 UncorrectableInternalError as u64
33144 });
33145 __bindgen_bitfield_unit.set(23usize, 1u8, {
33146 let MCBlockedTlp: u32 = unsafe { ::core::mem::transmute(MCBlockedTlp) };
33147 MCBlockedTlp as u64
33148 });
33149 __bindgen_bitfield_unit.set(24usize, 1u8, {
33150 let AtomicOpEgressBlocked: u32 =
33151 unsafe { ::core::mem::transmute(AtomicOpEgressBlocked) };
33152 AtomicOpEgressBlocked as u64
33153 });
33154 __bindgen_bitfield_unit.set(25usize, 1u8, {
33155 let TlpPrefixBlocked: u32 = unsafe { ::core::mem::transmute(TlpPrefixBlocked) };
33156 TlpPrefixBlocked as u64
33157 });
33158 __bindgen_bitfield_unit.set(26usize, 6u8, {
33159 let Reserved3: u32 = unsafe { ::core::mem::transmute(Reserved3) };
33160 Reserved3 as u64
33161 });
33162 __bindgen_bitfield_unit
33163 }
33164}
33165pub type PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS = _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS;
33166pub type PPCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS = *mut _PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS;
33167#[repr(C)]
33168#[derive(Copy, Clone)]
33169pub union _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK {
33170 pub __bindgen_anon_1: _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1,
33171 pub AsULONG: ULONG,
33172}
33173#[repr(C)]
33174#[repr(align(4))]
33175#[derive(Debug, Copy, Clone)]
33176pub struct _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1 {
33177 pub _bitfield_align_1: [u8; 0],
33178 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
33179}
33180impl _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1 {
33181 #[inline]
33182 pub fn Undefined(&self) -> ULONG {
33183 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
33184 }
33185 #[inline]
33186 pub fn set_Undefined(&mut self, val: ULONG) {
33187 unsafe {
33188 let val: u32 = ::core::mem::transmute(val);
33189 self._bitfield_1.set(0usize, 1u8, val as u64)
33190 }
33191 }
33192 #[inline]
33193 pub unsafe fn Undefined_raw(this: *const Self) -> ULONG {
33194 unsafe {
33195 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33196 ::core::ptr::addr_of!((*this)._bitfield_1),
33197 0usize,
33198 1u8,
33199 ) as u32)
33200 }
33201 }
33202 #[inline]
33203 pub unsafe fn set_Undefined_raw(this: *mut Self, val: ULONG) {
33204 unsafe {
33205 let val: u32 = ::core::mem::transmute(val);
33206 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33207 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33208 0usize,
33209 1u8,
33210 val as u64,
33211 )
33212 }
33213 }
33214 #[inline]
33215 pub fn Reserved1(&self) -> ULONG {
33216 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u32) }
33217 }
33218 #[inline]
33219 pub fn set_Reserved1(&mut self, val: ULONG) {
33220 unsafe {
33221 let val: u32 = ::core::mem::transmute(val);
33222 self._bitfield_1.set(1usize, 3u8, val as u64)
33223 }
33224 }
33225 #[inline]
33226 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
33227 unsafe {
33228 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33229 ::core::ptr::addr_of!((*this)._bitfield_1),
33230 1usize,
33231 3u8,
33232 ) as u32)
33233 }
33234 }
33235 #[inline]
33236 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
33237 unsafe {
33238 let val: u32 = ::core::mem::transmute(val);
33239 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33240 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33241 1usize,
33242 3u8,
33243 val as u64,
33244 )
33245 }
33246 }
33247 #[inline]
33248 pub fn DataLinkProtocolError(&self) -> ULONG {
33249 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
33250 }
33251 #[inline]
33252 pub fn set_DataLinkProtocolError(&mut self, val: ULONG) {
33253 unsafe {
33254 let val: u32 = ::core::mem::transmute(val);
33255 self._bitfield_1.set(4usize, 1u8, val as u64)
33256 }
33257 }
33258 #[inline]
33259 pub unsafe fn DataLinkProtocolError_raw(this: *const Self) -> ULONG {
33260 unsafe {
33261 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33262 ::core::ptr::addr_of!((*this)._bitfield_1),
33263 4usize,
33264 1u8,
33265 ) as u32)
33266 }
33267 }
33268 #[inline]
33269 pub unsafe fn set_DataLinkProtocolError_raw(this: *mut Self, val: ULONG) {
33270 unsafe {
33271 let val: u32 = ::core::mem::transmute(val);
33272 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33273 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33274 4usize,
33275 1u8,
33276 val as u64,
33277 )
33278 }
33279 }
33280 #[inline]
33281 pub fn SurpriseDownError(&self) -> ULONG {
33282 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
33283 }
33284 #[inline]
33285 pub fn set_SurpriseDownError(&mut self, val: ULONG) {
33286 unsafe {
33287 let val: u32 = ::core::mem::transmute(val);
33288 self._bitfield_1.set(5usize, 1u8, val as u64)
33289 }
33290 }
33291 #[inline]
33292 pub unsafe fn SurpriseDownError_raw(this: *const Self) -> ULONG {
33293 unsafe {
33294 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33295 ::core::ptr::addr_of!((*this)._bitfield_1),
33296 5usize,
33297 1u8,
33298 ) as u32)
33299 }
33300 }
33301 #[inline]
33302 pub unsafe fn set_SurpriseDownError_raw(this: *mut Self, val: ULONG) {
33303 unsafe {
33304 let val: u32 = ::core::mem::transmute(val);
33305 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33306 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33307 5usize,
33308 1u8,
33309 val as u64,
33310 )
33311 }
33312 }
33313 #[inline]
33314 pub fn Reserved2(&self) -> ULONG {
33315 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 6u8) as u32) }
33316 }
33317 #[inline]
33318 pub fn set_Reserved2(&mut self, val: ULONG) {
33319 unsafe {
33320 let val: u32 = ::core::mem::transmute(val);
33321 self._bitfield_1.set(6usize, 6u8, val as u64)
33322 }
33323 }
33324 #[inline]
33325 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
33326 unsafe {
33327 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33328 ::core::ptr::addr_of!((*this)._bitfield_1),
33329 6usize,
33330 6u8,
33331 ) as u32)
33332 }
33333 }
33334 #[inline]
33335 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
33336 unsafe {
33337 let val: u32 = ::core::mem::transmute(val);
33338 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33339 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33340 6usize,
33341 6u8,
33342 val as u64,
33343 )
33344 }
33345 }
33346 #[inline]
33347 pub fn PoisonedTLP(&self) -> ULONG {
33348 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
33349 }
33350 #[inline]
33351 pub fn set_PoisonedTLP(&mut self, val: ULONG) {
33352 unsafe {
33353 let val: u32 = ::core::mem::transmute(val);
33354 self._bitfield_1.set(12usize, 1u8, val as u64)
33355 }
33356 }
33357 #[inline]
33358 pub unsafe fn PoisonedTLP_raw(this: *const Self) -> ULONG {
33359 unsafe {
33360 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33361 ::core::ptr::addr_of!((*this)._bitfield_1),
33362 12usize,
33363 1u8,
33364 ) as u32)
33365 }
33366 }
33367 #[inline]
33368 pub unsafe fn set_PoisonedTLP_raw(this: *mut Self, val: ULONG) {
33369 unsafe {
33370 let val: u32 = ::core::mem::transmute(val);
33371 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33372 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33373 12usize,
33374 1u8,
33375 val as u64,
33376 )
33377 }
33378 }
33379 #[inline]
33380 pub fn FlowControlProtocolError(&self) -> ULONG {
33381 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
33382 }
33383 #[inline]
33384 pub fn set_FlowControlProtocolError(&mut self, val: ULONG) {
33385 unsafe {
33386 let val: u32 = ::core::mem::transmute(val);
33387 self._bitfield_1.set(13usize, 1u8, val as u64)
33388 }
33389 }
33390 #[inline]
33391 pub unsafe fn FlowControlProtocolError_raw(this: *const Self) -> ULONG {
33392 unsafe {
33393 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33394 ::core::ptr::addr_of!((*this)._bitfield_1),
33395 13usize,
33396 1u8,
33397 ) as u32)
33398 }
33399 }
33400 #[inline]
33401 pub unsafe fn set_FlowControlProtocolError_raw(this: *mut Self, val: ULONG) {
33402 unsafe {
33403 let val: u32 = ::core::mem::transmute(val);
33404 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33405 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33406 13usize,
33407 1u8,
33408 val as u64,
33409 )
33410 }
33411 }
33412 #[inline]
33413 pub fn CompletionTimeout(&self) -> ULONG {
33414 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
33415 }
33416 #[inline]
33417 pub fn set_CompletionTimeout(&mut self, val: ULONG) {
33418 unsafe {
33419 let val: u32 = ::core::mem::transmute(val);
33420 self._bitfield_1.set(14usize, 1u8, val as u64)
33421 }
33422 }
33423 #[inline]
33424 pub unsafe fn CompletionTimeout_raw(this: *const Self) -> ULONG {
33425 unsafe {
33426 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33427 ::core::ptr::addr_of!((*this)._bitfield_1),
33428 14usize,
33429 1u8,
33430 ) as u32)
33431 }
33432 }
33433 #[inline]
33434 pub unsafe fn set_CompletionTimeout_raw(this: *mut Self, val: ULONG) {
33435 unsafe {
33436 let val: u32 = ::core::mem::transmute(val);
33437 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33438 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33439 14usize,
33440 1u8,
33441 val as u64,
33442 )
33443 }
33444 }
33445 #[inline]
33446 pub fn CompleterAbort(&self) -> ULONG {
33447 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
33448 }
33449 #[inline]
33450 pub fn set_CompleterAbort(&mut self, val: ULONG) {
33451 unsafe {
33452 let val: u32 = ::core::mem::transmute(val);
33453 self._bitfield_1.set(15usize, 1u8, val as u64)
33454 }
33455 }
33456 #[inline]
33457 pub unsafe fn CompleterAbort_raw(this: *const Self) -> ULONG {
33458 unsafe {
33459 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33460 ::core::ptr::addr_of!((*this)._bitfield_1),
33461 15usize,
33462 1u8,
33463 ) as u32)
33464 }
33465 }
33466 #[inline]
33467 pub unsafe fn set_CompleterAbort_raw(this: *mut Self, val: ULONG) {
33468 unsafe {
33469 let val: u32 = ::core::mem::transmute(val);
33470 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33471 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33472 15usize,
33473 1u8,
33474 val as u64,
33475 )
33476 }
33477 }
33478 #[inline]
33479 pub fn UnexpectedCompletion(&self) -> ULONG {
33480 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
33481 }
33482 #[inline]
33483 pub fn set_UnexpectedCompletion(&mut self, val: ULONG) {
33484 unsafe {
33485 let val: u32 = ::core::mem::transmute(val);
33486 self._bitfield_1.set(16usize, 1u8, val as u64)
33487 }
33488 }
33489 #[inline]
33490 pub unsafe fn UnexpectedCompletion_raw(this: *const Self) -> ULONG {
33491 unsafe {
33492 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33493 ::core::ptr::addr_of!((*this)._bitfield_1),
33494 16usize,
33495 1u8,
33496 ) as u32)
33497 }
33498 }
33499 #[inline]
33500 pub unsafe fn set_UnexpectedCompletion_raw(this: *mut Self, val: ULONG) {
33501 unsafe {
33502 let val: u32 = ::core::mem::transmute(val);
33503 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33504 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33505 16usize,
33506 1u8,
33507 val as u64,
33508 )
33509 }
33510 }
33511 #[inline]
33512 pub fn ReceiverOverflow(&self) -> ULONG {
33513 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
33514 }
33515 #[inline]
33516 pub fn set_ReceiverOverflow(&mut self, val: ULONG) {
33517 unsafe {
33518 let val: u32 = ::core::mem::transmute(val);
33519 self._bitfield_1.set(17usize, 1u8, val as u64)
33520 }
33521 }
33522 #[inline]
33523 pub unsafe fn ReceiverOverflow_raw(this: *const Self) -> ULONG {
33524 unsafe {
33525 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33526 ::core::ptr::addr_of!((*this)._bitfield_1),
33527 17usize,
33528 1u8,
33529 ) as u32)
33530 }
33531 }
33532 #[inline]
33533 pub unsafe fn set_ReceiverOverflow_raw(this: *mut Self, val: ULONG) {
33534 unsafe {
33535 let val: u32 = ::core::mem::transmute(val);
33536 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33537 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33538 17usize,
33539 1u8,
33540 val as u64,
33541 )
33542 }
33543 }
33544 #[inline]
33545 pub fn MalformedTLP(&self) -> ULONG {
33546 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
33547 }
33548 #[inline]
33549 pub fn set_MalformedTLP(&mut self, val: ULONG) {
33550 unsafe {
33551 let val: u32 = ::core::mem::transmute(val);
33552 self._bitfield_1.set(18usize, 1u8, val as u64)
33553 }
33554 }
33555 #[inline]
33556 pub unsafe fn MalformedTLP_raw(this: *const Self) -> ULONG {
33557 unsafe {
33558 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33559 ::core::ptr::addr_of!((*this)._bitfield_1),
33560 18usize,
33561 1u8,
33562 ) as u32)
33563 }
33564 }
33565 #[inline]
33566 pub unsafe fn set_MalformedTLP_raw(this: *mut Self, val: ULONG) {
33567 unsafe {
33568 let val: u32 = ::core::mem::transmute(val);
33569 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33570 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33571 18usize,
33572 1u8,
33573 val as u64,
33574 )
33575 }
33576 }
33577 #[inline]
33578 pub fn ECRCError(&self) -> ULONG {
33579 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
33580 }
33581 #[inline]
33582 pub fn set_ECRCError(&mut self, val: ULONG) {
33583 unsafe {
33584 let val: u32 = ::core::mem::transmute(val);
33585 self._bitfield_1.set(19usize, 1u8, val as u64)
33586 }
33587 }
33588 #[inline]
33589 pub unsafe fn ECRCError_raw(this: *const Self) -> ULONG {
33590 unsafe {
33591 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33592 ::core::ptr::addr_of!((*this)._bitfield_1),
33593 19usize,
33594 1u8,
33595 ) as u32)
33596 }
33597 }
33598 #[inline]
33599 pub unsafe fn set_ECRCError_raw(this: *mut Self, val: ULONG) {
33600 unsafe {
33601 let val: u32 = ::core::mem::transmute(val);
33602 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33603 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33604 19usize,
33605 1u8,
33606 val as u64,
33607 )
33608 }
33609 }
33610 #[inline]
33611 pub fn UnsupportedRequestError(&self) -> ULONG {
33612 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
33613 }
33614 #[inline]
33615 pub fn set_UnsupportedRequestError(&mut self, val: ULONG) {
33616 unsafe {
33617 let val: u32 = ::core::mem::transmute(val);
33618 self._bitfield_1.set(20usize, 1u8, val as u64)
33619 }
33620 }
33621 #[inline]
33622 pub unsafe fn UnsupportedRequestError_raw(this: *const Self) -> ULONG {
33623 unsafe {
33624 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33625 ::core::ptr::addr_of!((*this)._bitfield_1),
33626 20usize,
33627 1u8,
33628 ) as u32)
33629 }
33630 }
33631 #[inline]
33632 pub unsafe fn set_UnsupportedRequestError_raw(this: *mut Self, val: ULONG) {
33633 unsafe {
33634 let val: u32 = ::core::mem::transmute(val);
33635 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33636 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33637 20usize,
33638 1u8,
33639 val as u64,
33640 )
33641 }
33642 }
33643 #[inline]
33644 pub fn AcsViolation(&self) -> ULONG {
33645 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
33646 }
33647 #[inline]
33648 pub fn set_AcsViolation(&mut self, val: ULONG) {
33649 unsafe {
33650 let val: u32 = ::core::mem::transmute(val);
33651 self._bitfield_1.set(21usize, 1u8, val as u64)
33652 }
33653 }
33654 #[inline]
33655 pub unsafe fn AcsViolation_raw(this: *const Self) -> ULONG {
33656 unsafe {
33657 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33658 ::core::ptr::addr_of!((*this)._bitfield_1),
33659 21usize,
33660 1u8,
33661 ) as u32)
33662 }
33663 }
33664 #[inline]
33665 pub unsafe fn set_AcsViolation_raw(this: *mut Self, val: ULONG) {
33666 unsafe {
33667 let val: u32 = ::core::mem::transmute(val);
33668 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33669 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33670 21usize,
33671 1u8,
33672 val as u64,
33673 )
33674 }
33675 }
33676 #[inline]
33677 pub fn UncorrectableInternalError(&self) -> ULONG {
33678 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
33679 }
33680 #[inline]
33681 pub fn set_UncorrectableInternalError(&mut self, val: ULONG) {
33682 unsafe {
33683 let val: u32 = ::core::mem::transmute(val);
33684 self._bitfield_1.set(22usize, 1u8, val as u64)
33685 }
33686 }
33687 #[inline]
33688 pub unsafe fn UncorrectableInternalError_raw(this: *const Self) -> ULONG {
33689 unsafe {
33690 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33691 ::core::ptr::addr_of!((*this)._bitfield_1),
33692 22usize,
33693 1u8,
33694 ) as u32)
33695 }
33696 }
33697 #[inline]
33698 pub unsafe fn set_UncorrectableInternalError_raw(this: *mut Self, val: ULONG) {
33699 unsafe {
33700 let val: u32 = ::core::mem::transmute(val);
33701 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33702 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33703 22usize,
33704 1u8,
33705 val as u64,
33706 )
33707 }
33708 }
33709 #[inline]
33710 pub fn MCBlockedTlp(&self) -> ULONG {
33711 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
33712 }
33713 #[inline]
33714 pub fn set_MCBlockedTlp(&mut self, val: ULONG) {
33715 unsafe {
33716 let val: u32 = ::core::mem::transmute(val);
33717 self._bitfield_1.set(23usize, 1u8, val as u64)
33718 }
33719 }
33720 #[inline]
33721 pub unsafe fn MCBlockedTlp_raw(this: *const Self) -> ULONG {
33722 unsafe {
33723 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33724 ::core::ptr::addr_of!((*this)._bitfield_1),
33725 23usize,
33726 1u8,
33727 ) as u32)
33728 }
33729 }
33730 #[inline]
33731 pub unsafe fn set_MCBlockedTlp_raw(this: *mut Self, val: ULONG) {
33732 unsafe {
33733 let val: u32 = ::core::mem::transmute(val);
33734 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33735 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33736 23usize,
33737 1u8,
33738 val as u64,
33739 )
33740 }
33741 }
33742 #[inline]
33743 pub fn AtomicOpEgressBlocked(&self) -> ULONG {
33744 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) }
33745 }
33746 #[inline]
33747 pub fn set_AtomicOpEgressBlocked(&mut self, val: ULONG) {
33748 unsafe {
33749 let val: u32 = ::core::mem::transmute(val);
33750 self._bitfield_1.set(24usize, 1u8, val as u64)
33751 }
33752 }
33753 #[inline]
33754 pub unsafe fn AtomicOpEgressBlocked_raw(this: *const Self) -> ULONG {
33755 unsafe {
33756 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33757 ::core::ptr::addr_of!((*this)._bitfield_1),
33758 24usize,
33759 1u8,
33760 ) as u32)
33761 }
33762 }
33763 #[inline]
33764 pub unsafe fn set_AtomicOpEgressBlocked_raw(this: *mut Self, val: ULONG) {
33765 unsafe {
33766 let val: u32 = ::core::mem::transmute(val);
33767 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33768 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33769 24usize,
33770 1u8,
33771 val as u64,
33772 )
33773 }
33774 }
33775 #[inline]
33776 pub fn TlpPrefixBlocked(&self) -> ULONG {
33777 unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
33778 }
33779 #[inline]
33780 pub fn set_TlpPrefixBlocked(&mut self, val: ULONG) {
33781 unsafe {
33782 let val: u32 = ::core::mem::transmute(val);
33783 self._bitfield_1.set(25usize, 1u8, val as u64)
33784 }
33785 }
33786 #[inline]
33787 pub unsafe fn TlpPrefixBlocked_raw(this: *const Self) -> ULONG {
33788 unsafe {
33789 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33790 ::core::ptr::addr_of!((*this)._bitfield_1),
33791 25usize,
33792 1u8,
33793 ) as u32)
33794 }
33795 }
33796 #[inline]
33797 pub unsafe fn set_TlpPrefixBlocked_raw(this: *mut Self, val: ULONG) {
33798 unsafe {
33799 let val: u32 = ::core::mem::transmute(val);
33800 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33801 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33802 25usize,
33803 1u8,
33804 val as u64,
33805 )
33806 }
33807 }
33808 #[inline]
33809 pub fn Reserved3(&self) -> ULONG {
33810 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 6u8) as u32) }
33811 }
33812 #[inline]
33813 pub fn set_Reserved3(&mut self, val: ULONG) {
33814 unsafe {
33815 let val: u32 = ::core::mem::transmute(val);
33816 self._bitfield_1.set(26usize, 6u8, val as u64)
33817 }
33818 }
33819 #[inline]
33820 pub unsafe fn Reserved3_raw(this: *const Self) -> ULONG {
33821 unsafe {
33822 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33823 ::core::ptr::addr_of!((*this)._bitfield_1),
33824 26usize,
33825 6u8,
33826 ) as u32)
33827 }
33828 }
33829 #[inline]
33830 pub unsafe fn set_Reserved3_raw(this: *mut Self, val: ULONG) {
33831 unsafe {
33832 let val: u32 = ::core::mem::transmute(val);
33833 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33834 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33835 26usize,
33836 6u8,
33837 val as u64,
33838 )
33839 }
33840 }
33841 #[inline]
33842 pub fn new_bitfield_1(
33843 Undefined: ULONG,
33844 Reserved1: ULONG,
33845 DataLinkProtocolError: ULONG,
33846 SurpriseDownError: ULONG,
33847 Reserved2: ULONG,
33848 PoisonedTLP: ULONG,
33849 FlowControlProtocolError: ULONG,
33850 CompletionTimeout: ULONG,
33851 CompleterAbort: ULONG,
33852 UnexpectedCompletion: ULONG,
33853 ReceiverOverflow: ULONG,
33854 MalformedTLP: ULONG,
33855 ECRCError: ULONG,
33856 UnsupportedRequestError: ULONG,
33857 AcsViolation: ULONG,
33858 UncorrectableInternalError: ULONG,
33859 MCBlockedTlp: ULONG,
33860 AtomicOpEgressBlocked: ULONG,
33861 TlpPrefixBlocked: ULONG,
33862 Reserved3: ULONG,
33863 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
33864 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
33865 __bindgen_bitfield_unit.set(0usize, 1u8, {
33866 let Undefined: u32 = unsafe { ::core::mem::transmute(Undefined) };
33867 Undefined as u64
33868 });
33869 __bindgen_bitfield_unit.set(1usize, 3u8, {
33870 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
33871 Reserved1 as u64
33872 });
33873 __bindgen_bitfield_unit.set(4usize, 1u8, {
33874 let DataLinkProtocolError: u32 =
33875 unsafe { ::core::mem::transmute(DataLinkProtocolError) };
33876 DataLinkProtocolError as u64
33877 });
33878 __bindgen_bitfield_unit.set(5usize, 1u8, {
33879 let SurpriseDownError: u32 = unsafe { ::core::mem::transmute(SurpriseDownError) };
33880 SurpriseDownError as u64
33881 });
33882 __bindgen_bitfield_unit.set(6usize, 6u8, {
33883 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
33884 Reserved2 as u64
33885 });
33886 __bindgen_bitfield_unit.set(12usize, 1u8, {
33887 let PoisonedTLP: u32 = unsafe { ::core::mem::transmute(PoisonedTLP) };
33888 PoisonedTLP as u64
33889 });
33890 __bindgen_bitfield_unit.set(13usize, 1u8, {
33891 let FlowControlProtocolError: u32 =
33892 unsafe { ::core::mem::transmute(FlowControlProtocolError) };
33893 FlowControlProtocolError as u64
33894 });
33895 __bindgen_bitfield_unit.set(14usize, 1u8, {
33896 let CompletionTimeout: u32 = unsafe { ::core::mem::transmute(CompletionTimeout) };
33897 CompletionTimeout as u64
33898 });
33899 __bindgen_bitfield_unit.set(15usize, 1u8, {
33900 let CompleterAbort: u32 = unsafe { ::core::mem::transmute(CompleterAbort) };
33901 CompleterAbort as u64
33902 });
33903 __bindgen_bitfield_unit.set(16usize, 1u8, {
33904 let UnexpectedCompletion: u32 = unsafe { ::core::mem::transmute(UnexpectedCompletion) };
33905 UnexpectedCompletion as u64
33906 });
33907 __bindgen_bitfield_unit.set(17usize, 1u8, {
33908 let ReceiverOverflow: u32 = unsafe { ::core::mem::transmute(ReceiverOverflow) };
33909 ReceiverOverflow as u64
33910 });
33911 __bindgen_bitfield_unit.set(18usize, 1u8, {
33912 let MalformedTLP: u32 = unsafe { ::core::mem::transmute(MalformedTLP) };
33913 MalformedTLP as u64
33914 });
33915 __bindgen_bitfield_unit.set(19usize, 1u8, {
33916 let ECRCError: u32 = unsafe { ::core::mem::transmute(ECRCError) };
33917 ECRCError as u64
33918 });
33919 __bindgen_bitfield_unit.set(20usize, 1u8, {
33920 let UnsupportedRequestError: u32 =
33921 unsafe { ::core::mem::transmute(UnsupportedRequestError) };
33922 UnsupportedRequestError as u64
33923 });
33924 __bindgen_bitfield_unit.set(21usize, 1u8, {
33925 let AcsViolation: u32 = unsafe { ::core::mem::transmute(AcsViolation) };
33926 AcsViolation as u64
33927 });
33928 __bindgen_bitfield_unit.set(22usize, 1u8, {
33929 let UncorrectableInternalError: u32 =
33930 unsafe { ::core::mem::transmute(UncorrectableInternalError) };
33931 UncorrectableInternalError as u64
33932 });
33933 __bindgen_bitfield_unit.set(23usize, 1u8, {
33934 let MCBlockedTlp: u32 = unsafe { ::core::mem::transmute(MCBlockedTlp) };
33935 MCBlockedTlp as u64
33936 });
33937 __bindgen_bitfield_unit.set(24usize, 1u8, {
33938 let AtomicOpEgressBlocked: u32 =
33939 unsafe { ::core::mem::transmute(AtomicOpEgressBlocked) };
33940 AtomicOpEgressBlocked as u64
33941 });
33942 __bindgen_bitfield_unit.set(25usize, 1u8, {
33943 let TlpPrefixBlocked: u32 = unsafe { ::core::mem::transmute(TlpPrefixBlocked) };
33944 TlpPrefixBlocked as u64
33945 });
33946 __bindgen_bitfield_unit.set(26usize, 6u8, {
33947 let Reserved3: u32 = unsafe { ::core::mem::transmute(Reserved3) };
33948 Reserved3 as u64
33949 });
33950 __bindgen_bitfield_unit
33951 }
33952}
33953pub type PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK = _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK;
33954pub type PPCI_EXPRESS_UNCORRECTABLE_ERROR_MASK = *mut _PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK;
33955#[repr(C)]
33956#[derive(Copy, Clone)]
33957pub union _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY {
33958 pub __bindgen_anon_1: _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1,
33959 pub AsULONG: ULONG,
33960}
33961#[repr(C)]
33962#[repr(align(4))]
33963#[derive(Debug, Copy, Clone)]
33964pub struct _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1 {
33965 pub _bitfield_align_1: [u8; 0],
33966 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
33967}
33968impl _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1 {
33969 #[inline]
33970 pub fn Undefined(&self) -> ULONG {
33971 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
33972 }
33973 #[inline]
33974 pub fn set_Undefined(&mut self, val: ULONG) {
33975 unsafe {
33976 let val: u32 = ::core::mem::transmute(val);
33977 self._bitfield_1.set(0usize, 1u8, val as u64)
33978 }
33979 }
33980 #[inline]
33981 pub unsafe fn Undefined_raw(this: *const Self) -> ULONG {
33982 unsafe {
33983 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
33984 ::core::ptr::addr_of!((*this)._bitfield_1),
33985 0usize,
33986 1u8,
33987 ) as u32)
33988 }
33989 }
33990 #[inline]
33991 pub unsafe fn set_Undefined_raw(this: *mut Self, val: ULONG) {
33992 unsafe {
33993 let val: u32 = ::core::mem::transmute(val);
33994 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
33995 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
33996 0usize,
33997 1u8,
33998 val as u64,
33999 )
34000 }
34001 }
34002 #[inline]
34003 pub fn Reserved1(&self) -> ULONG {
34004 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 3u8) as u32) }
34005 }
34006 #[inline]
34007 pub fn set_Reserved1(&mut self, val: ULONG) {
34008 unsafe {
34009 let val: u32 = ::core::mem::transmute(val);
34010 self._bitfield_1.set(1usize, 3u8, val as u64)
34011 }
34012 }
34013 #[inline]
34014 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
34015 unsafe {
34016 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34017 ::core::ptr::addr_of!((*this)._bitfield_1),
34018 1usize,
34019 3u8,
34020 ) as u32)
34021 }
34022 }
34023 #[inline]
34024 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
34025 unsafe {
34026 let val: u32 = ::core::mem::transmute(val);
34027 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34028 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34029 1usize,
34030 3u8,
34031 val as u64,
34032 )
34033 }
34034 }
34035 #[inline]
34036 pub fn DataLinkProtocolError(&self) -> ULONG {
34037 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
34038 }
34039 #[inline]
34040 pub fn set_DataLinkProtocolError(&mut self, val: ULONG) {
34041 unsafe {
34042 let val: u32 = ::core::mem::transmute(val);
34043 self._bitfield_1.set(4usize, 1u8, val as u64)
34044 }
34045 }
34046 #[inline]
34047 pub unsafe fn DataLinkProtocolError_raw(this: *const Self) -> ULONG {
34048 unsafe {
34049 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34050 ::core::ptr::addr_of!((*this)._bitfield_1),
34051 4usize,
34052 1u8,
34053 ) as u32)
34054 }
34055 }
34056 #[inline]
34057 pub unsafe fn set_DataLinkProtocolError_raw(this: *mut Self, val: ULONG) {
34058 unsafe {
34059 let val: u32 = ::core::mem::transmute(val);
34060 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34061 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34062 4usize,
34063 1u8,
34064 val as u64,
34065 )
34066 }
34067 }
34068 #[inline]
34069 pub fn SurpriseDownError(&self) -> ULONG {
34070 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
34071 }
34072 #[inline]
34073 pub fn set_SurpriseDownError(&mut self, val: ULONG) {
34074 unsafe {
34075 let val: u32 = ::core::mem::transmute(val);
34076 self._bitfield_1.set(5usize, 1u8, val as u64)
34077 }
34078 }
34079 #[inline]
34080 pub unsafe fn SurpriseDownError_raw(this: *const Self) -> ULONG {
34081 unsafe {
34082 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34083 ::core::ptr::addr_of!((*this)._bitfield_1),
34084 5usize,
34085 1u8,
34086 ) as u32)
34087 }
34088 }
34089 #[inline]
34090 pub unsafe fn set_SurpriseDownError_raw(this: *mut Self, val: ULONG) {
34091 unsafe {
34092 let val: u32 = ::core::mem::transmute(val);
34093 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34094 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34095 5usize,
34096 1u8,
34097 val as u64,
34098 )
34099 }
34100 }
34101 #[inline]
34102 pub fn Reserved2(&self) -> ULONG {
34103 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 6u8) as u32) }
34104 }
34105 #[inline]
34106 pub fn set_Reserved2(&mut self, val: ULONG) {
34107 unsafe {
34108 let val: u32 = ::core::mem::transmute(val);
34109 self._bitfield_1.set(6usize, 6u8, val as u64)
34110 }
34111 }
34112 #[inline]
34113 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
34114 unsafe {
34115 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34116 ::core::ptr::addr_of!((*this)._bitfield_1),
34117 6usize,
34118 6u8,
34119 ) as u32)
34120 }
34121 }
34122 #[inline]
34123 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
34124 unsafe {
34125 let val: u32 = ::core::mem::transmute(val);
34126 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34127 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34128 6usize,
34129 6u8,
34130 val as u64,
34131 )
34132 }
34133 }
34134 #[inline]
34135 pub fn PoisonedTLP(&self) -> ULONG {
34136 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
34137 }
34138 #[inline]
34139 pub fn set_PoisonedTLP(&mut self, val: ULONG) {
34140 unsafe {
34141 let val: u32 = ::core::mem::transmute(val);
34142 self._bitfield_1.set(12usize, 1u8, val as u64)
34143 }
34144 }
34145 #[inline]
34146 pub unsafe fn PoisonedTLP_raw(this: *const Self) -> ULONG {
34147 unsafe {
34148 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34149 ::core::ptr::addr_of!((*this)._bitfield_1),
34150 12usize,
34151 1u8,
34152 ) as u32)
34153 }
34154 }
34155 #[inline]
34156 pub unsafe fn set_PoisonedTLP_raw(this: *mut Self, val: ULONG) {
34157 unsafe {
34158 let val: u32 = ::core::mem::transmute(val);
34159 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34160 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34161 12usize,
34162 1u8,
34163 val as u64,
34164 )
34165 }
34166 }
34167 #[inline]
34168 pub fn FlowControlProtocolError(&self) -> ULONG {
34169 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
34170 }
34171 #[inline]
34172 pub fn set_FlowControlProtocolError(&mut self, val: ULONG) {
34173 unsafe {
34174 let val: u32 = ::core::mem::transmute(val);
34175 self._bitfield_1.set(13usize, 1u8, val as u64)
34176 }
34177 }
34178 #[inline]
34179 pub unsafe fn FlowControlProtocolError_raw(this: *const Self) -> ULONG {
34180 unsafe {
34181 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34182 ::core::ptr::addr_of!((*this)._bitfield_1),
34183 13usize,
34184 1u8,
34185 ) as u32)
34186 }
34187 }
34188 #[inline]
34189 pub unsafe fn set_FlowControlProtocolError_raw(this: *mut Self, val: ULONG) {
34190 unsafe {
34191 let val: u32 = ::core::mem::transmute(val);
34192 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34193 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34194 13usize,
34195 1u8,
34196 val as u64,
34197 )
34198 }
34199 }
34200 #[inline]
34201 pub fn CompletionTimeout(&self) -> ULONG {
34202 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
34203 }
34204 #[inline]
34205 pub fn set_CompletionTimeout(&mut self, val: ULONG) {
34206 unsafe {
34207 let val: u32 = ::core::mem::transmute(val);
34208 self._bitfield_1.set(14usize, 1u8, val as u64)
34209 }
34210 }
34211 #[inline]
34212 pub unsafe fn CompletionTimeout_raw(this: *const Self) -> ULONG {
34213 unsafe {
34214 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34215 ::core::ptr::addr_of!((*this)._bitfield_1),
34216 14usize,
34217 1u8,
34218 ) as u32)
34219 }
34220 }
34221 #[inline]
34222 pub unsafe fn set_CompletionTimeout_raw(this: *mut Self, val: ULONG) {
34223 unsafe {
34224 let val: u32 = ::core::mem::transmute(val);
34225 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34226 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34227 14usize,
34228 1u8,
34229 val as u64,
34230 )
34231 }
34232 }
34233 #[inline]
34234 pub fn CompleterAbort(&self) -> ULONG {
34235 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
34236 }
34237 #[inline]
34238 pub fn set_CompleterAbort(&mut self, val: ULONG) {
34239 unsafe {
34240 let val: u32 = ::core::mem::transmute(val);
34241 self._bitfield_1.set(15usize, 1u8, val as u64)
34242 }
34243 }
34244 #[inline]
34245 pub unsafe fn CompleterAbort_raw(this: *const Self) -> ULONG {
34246 unsafe {
34247 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34248 ::core::ptr::addr_of!((*this)._bitfield_1),
34249 15usize,
34250 1u8,
34251 ) as u32)
34252 }
34253 }
34254 #[inline]
34255 pub unsafe fn set_CompleterAbort_raw(this: *mut Self, val: ULONG) {
34256 unsafe {
34257 let val: u32 = ::core::mem::transmute(val);
34258 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34259 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34260 15usize,
34261 1u8,
34262 val as u64,
34263 )
34264 }
34265 }
34266 #[inline]
34267 pub fn UnexpectedCompletion(&self) -> ULONG {
34268 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) }
34269 }
34270 #[inline]
34271 pub fn set_UnexpectedCompletion(&mut self, val: ULONG) {
34272 unsafe {
34273 let val: u32 = ::core::mem::transmute(val);
34274 self._bitfield_1.set(16usize, 1u8, val as u64)
34275 }
34276 }
34277 #[inline]
34278 pub unsafe fn UnexpectedCompletion_raw(this: *const Self) -> ULONG {
34279 unsafe {
34280 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34281 ::core::ptr::addr_of!((*this)._bitfield_1),
34282 16usize,
34283 1u8,
34284 ) as u32)
34285 }
34286 }
34287 #[inline]
34288 pub unsafe fn set_UnexpectedCompletion_raw(this: *mut Self, val: ULONG) {
34289 unsafe {
34290 let val: u32 = ::core::mem::transmute(val);
34291 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34292 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34293 16usize,
34294 1u8,
34295 val as u64,
34296 )
34297 }
34298 }
34299 #[inline]
34300 pub fn ReceiverOverflow(&self) -> ULONG {
34301 unsafe { ::core::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) }
34302 }
34303 #[inline]
34304 pub fn set_ReceiverOverflow(&mut self, val: ULONG) {
34305 unsafe {
34306 let val: u32 = ::core::mem::transmute(val);
34307 self._bitfield_1.set(17usize, 1u8, val as u64)
34308 }
34309 }
34310 #[inline]
34311 pub unsafe fn ReceiverOverflow_raw(this: *const Self) -> ULONG {
34312 unsafe {
34313 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34314 ::core::ptr::addr_of!((*this)._bitfield_1),
34315 17usize,
34316 1u8,
34317 ) as u32)
34318 }
34319 }
34320 #[inline]
34321 pub unsafe fn set_ReceiverOverflow_raw(this: *mut Self, val: ULONG) {
34322 unsafe {
34323 let val: u32 = ::core::mem::transmute(val);
34324 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34325 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34326 17usize,
34327 1u8,
34328 val as u64,
34329 )
34330 }
34331 }
34332 #[inline]
34333 pub fn MalformedTLP(&self) -> ULONG {
34334 unsafe { ::core::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) }
34335 }
34336 #[inline]
34337 pub fn set_MalformedTLP(&mut self, val: ULONG) {
34338 unsafe {
34339 let val: u32 = ::core::mem::transmute(val);
34340 self._bitfield_1.set(18usize, 1u8, val as u64)
34341 }
34342 }
34343 #[inline]
34344 pub unsafe fn MalformedTLP_raw(this: *const Self) -> ULONG {
34345 unsafe {
34346 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34347 ::core::ptr::addr_of!((*this)._bitfield_1),
34348 18usize,
34349 1u8,
34350 ) as u32)
34351 }
34352 }
34353 #[inline]
34354 pub unsafe fn set_MalformedTLP_raw(this: *mut Self, val: ULONG) {
34355 unsafe {
34356 let val: u32 = ::core::mem::transmute(val);
34357 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34358 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34359 18usize,
34360 1u8,
34361 val as u64,
34362 )
34363 }
34364 }
34365 #[inline]
34366 pub fn ECRCError(&self) -> ULONG {
34367 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) }
34368 }
34369 #[inline]
34370 pub fn set_ECRCError(&mut self, val: ULONG) {
34371 unsafe {
34372 let val: u32 = ::core::mem::transmute(val);
34373 self._bitfield_1.set(19usize, 1u8, val as u64)
34374 }
34375 }
34376 #[inline]
34377 pub unsafe fn ECRCError_raw(this: *const Self) -> ULONG {
34378 unsafe {
34379 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34380 ::core::ptr::addr_of!((*this)._bitfield_1),
34381 19usize,
34382 1u8,
34383 ) as u32)
34384 }
34385 }
34386 #[inline]
34387 pub unsafe fn set_ECRCError_raw(this: *mut Self, val: ULONG) {
34388 unsafe {
34389 let val: u32 = ::core::mem::transmute(val);
34390 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34391 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34392 19usize,
34393 1u8,
34394 val as u64,
34395 )
34396 }
34397 }
34398 #[inline]
34399 pub fn UnsupportedRequestError(&self) -> ULONG {
34400 unsafe { ::core::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) }
34401 }
34402 #[inline]
34403 pub fn set_UnsupportedRequestError(&mut self, val: ULONG) {
34404 unsafe {
34405 let val: u32 = ::core::mem::transmute(val);
34406 self._bitfield_1.set(20usize, 1u8, val as u64)
34407 }
34408 }
34409 #[inline]
34410 pub unsafe fn UnsupportedRequestError_raw(this: *const Self) -> ULONG {
34411 unsafe {
34412 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34413 ::core::ptr::addr_of!((*this)._bitfield_1),
34414 20usize,
34415 1u8,
34416 ) as u32)
34417 }
34418 }
34419 #[inline]
34420 pub unsafe fn set_UnsupportedRequestError_raw(this: *mut Self, val: ULONG) {
34421 unsafe {
34422 let val: u32 = ::core::mem::transmute(val);
34423 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34424 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34425 20usize,
34426 1u8,
34427 val as u64,
34428 )
34429 }
34430 }
34431 #[inline]
34432 pub fn AcsViolation(&self) -> ULONG {
34433 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 1u8) as u32) }
34434 }
34435 #[inline]
34436 pub fn set_AcsViolation(&mut self, val: ULONG) {
34437 unsafe {
34438 let val: u32 = ::core::mem::transmute(val);
34439 self._bitfield_1.set(21usize, 1u8, val as u64)
34440 }
34441 }
34442 #[inline]
34443 pub unsafe fn AcsViolation_raw(this: *const Self) -> ULONG {
34444 unsafe {
34445 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34446 ::core::ptr::addr_of!((*this)._bitfield_1),
34447 21usize,
34448 1u8,
34449 ) as u32)
34450 }
34451 }
34452 #[inline]
34453 pub unsafe fn set_AcsViolation_raw(this: *mut Self, val: ULONG) {
34454 unsafe {
34455 let val: u32 = ::core::mem::transmute(val);
34456 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34457 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34458 21usize,
34459 1u8,
34460 val as u64,
34461 )
34462 }
34463 }
34464 #[inline]
34465 pub fn UncorrectableInternalError(&self) -> ULONG {
34466 unsafe { ::core::mem::transmute(self._bitfield_1.get(22usize, 1u8) as u32) }
34467 }
34468 #[inline]
34469 pub fn set_UncorrectableInternalError(&mut self, val: ULONG) {
34470 unsafe {
34471 let val: u32 = ::core::mem::transmute(val);
34472 self._bitfield_1.set(22usize, 1u8, val as u64)
34473 }
34474 }
34475 #[inline]
34476 pub unsafe fn UncorrectableInternalError_raw(this: *const Self) -> ULONG {
34477 unsafe {
34478 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34479 ::core::ptr::addr_of!((*this)._bitfield_1),
34480 22usize,
34481 1u8,
34482 ) as u32)
34483 }
34484 }
34485 #[inline]
34486 pub unsafe fn set_UncorrectableInternalError_raw(this: *mut Self, val: ULONG) {
34487 unsafe {
34488 let val: u32 = ::core::mem::transmute(val);
34489 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34490 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34491 22usize,
34492 1u8,
34493 val as u64,
34494 )
34495 }
34496 }
34497 #[inline]
34498 pub fn MCBlockedTlp(&self) -> ULONG {
34499 unsafe { ::core::mem::transmute(self._bitfield_1.get(23usize, 1u8) as u32) }
34500 }
34501 #[inline]
34502 pub fn set_MCBlockedTlp(&mut self, val: ULONG) {
34503 unsafe {
34504 let val: u32 = ::core::mem::transmute(val);
34505 self._bitfield_1.set(23usize, 1u8, val as u64)
34506 }
34507 }
34508 #[inline]
34509 pub unsafe fn MCBlockedTlp_raw(this: *const Self) -> ULONG {
34510 unsafe {
34511 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34512 ::core::ptr::addr_of!((*this)._bitfield_1),
34513 23usize,
34514 1u8,
34515 ) as u32)
34516 }
34517 }
34518 #[inline]
34519 pub unsafe fn set_MCBlockedTlp_raw(this: *mut Self, val: ULONG) {
34520 unsafe {
34521 let val: u32 = ::core::mem::transmute(val);
34522 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34523 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34524 23usize,
34525 1u8,
34526 val as u64,
34527 )
34528 }
34529 }
34530 #[inline]
34531 pub fn AtomicOpEgressBlocked(&self) -> ULONG {
34532 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 1u8) as u32) }
34533 }
34534 #[inline]
34535 pub fn set_AtomicOpEgressBlocked(&mut self, val: ULONG) {
34536 unsafe {
34537 let val: u32 = ::core::mem::transmute(val);
34538 self._bitfield_1.set(24usize, 1u8, val as u64)
34539 }
34540 }
34541 #[inline]
34542 pub unsafe fn AtomicOpEgressBlocked_raw(this: *const Self) -> ULONG {
34543 unsafe {
34544 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34545 ::core::ptr::addr_of!((*this)._bitfield_1),
34546 24usize,
34547 1u8,
34548 ) as u32)
34549 }
34550 }
34551 #[inline]
34552 pub unsafe fn set_AtomicOpEgressBlocked_raw(this: *mut Self, val: ULONG) {
34553 unsafe {
34554 let val: u32 = ::core::mem::transmute(val);
34555 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34556 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34557 24usize,
34558 1u8,
34559 val as u64,
34560 )
34561 }
34562 }
34563 #[inline]
34564 pub fn TlpPrefixBlocked(&self) -> ULONG {
34565 unsafe { ::core::mem::transmute(self._bitfield_1.get(25usize, 1u8) as u32) }
34566 }
34567 #[inline]
34568 pub fn set_TlpPrefixBlocked(&mut self, val: ULONG) {
34569 unsafe {
34570 let val: u32 = ::core::mem::transmute(val);
34571 self._bitfield_1.set(25usize, 1u8, val as u64)
34572 }
34573 }
34574 #[inline]
34575 pub unsafe fn TlpPrefixBlocked_raw(this: *const Self) -> ULONG {
34576 unsafe {
34577 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34578 ::core::ptr::addr_of!((*this)._bitfield_1),
34579 25usize,
34580 1u8,
34581 ) as u32)
34582 }
34583 }
34584 #[inline]
34585 pub unsafe fn set_TlpPrefixBlocked_raw(this: *mut Self, val: ULONG) {
34586 unsafe {
34587 let val: u32 = ::core::mem::transmute(val);
34588 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34589 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34590 25usize,
34591 1u8,
34592 val as u64,
34593 )
34594 }
34595 }
34596 #[inline]
34597 pub fn Reserved3(&self) -> ULONG {
34598 unsafe { ::core::mem::transmute(self._bitfield_1.get(26usize, 6u8) as u32) }
34599 }
34600 #[inline]
34601 pub fn set_Reserved3(&mut self, val: ULONG) {
34602 unsafe {
34603 let val: u32 = ::core::mem::transmute(val);
34604 self._bitfield_1.set(26usize, 6u8, val as u64)
34605 }
34606 }
34607 #[inline]
34608 pub unsafe fn Reserved3_raw(this: *const Self) -> ULONG {
34609 unsafe {
34610 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34611 ::core::ptr::addr_of!((*this)._bitfield_1),
34612 26usize,
34613 6u8,
34614 ) as u32)
34615 }
34616 }
34617 #[inline]
34618 pub unsafe fn set_Reserved3_raw(this: *mut Self, val: ULONG) {
34619 unsafe {
34620 let val: u32 = ::core::mem::transmute(val);
34621 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34622 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34623 26usize,
34624 6u8,
34625 val as u64,
34626 )
34627 }
34628 }
34629 #[inline]
34630 pub fn new_bitfield_1(
34631 Undefined: ULONG,
34632 Reserved1: ULONG,
34633 DataLinkProtocolError: ULONG,
34634 SurpriseDownError: ULONG,
34635 Reserved2: ULONG,
34636 PoisonedTLP: ULONG,
34637 FlowControlProtocolError: ULONG,
34638 CompletionTimeout: ULONG,
34639 CompleterAbort: ULONG,
34640 UnexpectedCompletion: ULONG,
34641 ReceiverOverflow: ULONG,
34642 MalformedTLP: ULONG,
34643 ECRCError: ULONG,
34644 UnsupportedRequestError: ULONG,
34645 AcsViolation: ULONG,
34646 UncorrectableInternalError: ULONG,
34647 MCBlockedTlp: ULONG,
34648 AtomicOpEgressBlocked: ULONG,
34649 TlpPrefixBlocked: ULONG,
34650 Reserved3: ULONG,
34651 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
34652 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
34653 __bindgen_bitfield_unit.set(0usize, 1u8, {
34654 let Undefined: u32 = unsafe { ::core::mem::transmute(Undefined) };
34655 Undefined as u64
34656 });
34657 __bindgen_bitfield_unit.set(1usize, 3u8, {
34658 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
34659 Reserved1 as u64
34660 });
34661 __bindgen_bitfield_unit.set(4usize, 1u8, {
34662 let DataLinkProtocolError: u32 =
34663 unsafe { ::core::mem::transmute(DataLinkProtocolError) };
34664 DataLinkProtocolError as u64
34665 });
34666 __bindgen_bitfield_unit.set(5usize, 1u8, {
34667 let SurpriseDownError: u32 = unsafe { ::core::mem::transmute(SurpriseDownError) };
34668 SurpriseDownError as u64
34669 });
34670 __bindgen_bitfield_unit.set(6usize, 6u8, {
34671 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
34672 Reserved2 as u64
34673 });
34674 __bindgen_bitfield_unit.set(12usize, 1u8, {
34675 let PoisonedTLP: u32 = unsafe { ::core::mem::transmute(PoisonedTLP) };
34676 PoisonedTLP as u64
34677 });
34678 __bindgen_bitfield_unit.set(13usize, 1u8, {
34679 let FlowControlProtocolError: u32 =
34680 unsafe { ::core::mem::transmute(FlowControlProtocolError) };
34681 FlowControlProtocolError as u64
34682 });
34683 __bindgen_bitfield_unit.set(14usize, 1u8, {
34684 let CompletionTimeout: u32 = unsafe { ::core::mem::transmute(CompletionTimeout) };
34685 CompletionTimeout as u64
34686 });
34687 __bindgen_bitfield_unit.set(15usize, 1u8, {
34688 let CompleterAbort: u32 = unsafe { ::core::mem::transmute(CompleterAbort) };
34689 CompleterAbort as u64
34690 });
34691 __bindgen_bitfield_unit.set(16usize, 1u8, {
34692 let UnexpectedCompletion: u32 = unsafe { ::core::mem::transmute(UnexpectedCompletion) };
34693 UnexpectedCompletion as u64
34694 });
34695 __bindgen_bitfield_unit.set(17usize, 1u8, {
34696 let ReceiverOverflow: u32 = unsafe { ::core::mem::transmute(ReceiverOverflow) };
34697 ReceiverOverflow as u64
34698 });
34699 __bindgen_bitfield_unit.set(18usize, 1u8, {
34700 let MalformedTLP: u32 = unsafe { ::core::mem::transmute(MalformedTLP) };
34701 MalformedTLP as u64
34702 });
34703 __bindgen_bitfield_unit.set(19usize, 1u8, {
34704 let ECRCError: u32 = unsafe { ::core::mem::transmute(ECRCError) };
34705 ECRCError as u64
34706 });
34707 __bindgen_bitfield_unit.set(20usize, 1u8, {
34708 let UnsupportedRequestError: u32 =
34709 unsafe { ::core::mem::transmute(UnsupportedRequestError) };
34710 UnsupportedRequestError as u64
34711 });
34712 __bindgen_bitfield_unit.set(21usize, 1u8, {
34713 let AcsViolation: u32 = unsafe { ::core::mem::transmute(AcsViolation) };
34714 AcsViolation as u64
34715 });
34716 __bindgen_bitfield_unit.set(22usize, 1u8, {
34717 let UncorrectableInternalError: u32 =
34718 unsafe { ::core::mem::transmute(UncorrectableInternalError) };
34719 UncorrectableInternalError as u64
34720 });
34721 __bindgen_bitfield_unit.set(23usize, 1u8, {
34722 let MCBlockedTlp: u32 = unsafe { ::core::mem::transmute(MCBlockedTlp) };
34723 MCBlockedTlp as u64
34724 });
34725 __bindgen_bitfield_unit.set(24usize, 1u8, {
34726 let AtomicOpEgressBlocked: u32 =
34727 unsafe { ::core::mem::transmute(AtomicOpEgressBlocked) };
34728 AtomicOpEgressBlocked as u64
34729 });
34730 __bindgen_bitfield_unit.set(25usize, 1u8, {
34731 let TlpPrefixBlocked: u32 = unsafe { ::core::mem::transmute(TlpPrefixBlocked) };
34732 TlpPrefixBlocked as u64
34733 });
34734 __bindgen_bitfield_unit.set(26usize, 6u8, {
34735 let Reserved3: u32 = unsafe { ::core::mem::transmute(Reserved3) };
34736 Reserved3 as u64
34737 });
34738 __bindgen_bitfield_unit
34739 }
34740}
34741pub type PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY = _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY;
34742pub type PPCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY = *mut _PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY;
34743#[repr(C)]
34744#[derive(Copy, Clone)]
34745pub union _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS {
34746 pub __bindgen_anon_1: _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS__bindgen_ty_1,
34747 pub AsULONG: ULONG,
34748}
34749#[repr(C)]
34750#[repr(align(4))]
34751#[derive(Debug, Copy, Clone)]
34752pub struct _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
34753 pub _bitfield_align_1: [u16; 0],
34754 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
34755}
34756impl _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
34757 #[inline]
34758 pub fn ReceiverError(&self) -> ULONG {
34759 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
34760 }
34761 #[inline]
34762 pub fn set_ReceiverError(&mut self, val: ULONG) {
34763 unsafe {
34764 let val: u32 = ::core::mem::transmute(val);
34765 self._bitfield_1.set(0usize, 1u8, val as u64)
34766 }
34767 }
34768 #[inline]
34769 pub unsafe fn ReceiverError_raw(this: *const Self) -> ULONG {
34770 unsafe {
34771 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34772 ::core::ptr::addr_of!((*this)._bitfield_1),
34773 0usize,
34774 1u8,
34775 ) as u32)
34776 }
34777 }
34778 #[inline]
34779 pub unsafe fn set_ReceiverError_raw(this: *mut Self, val: ULONG) {
34780 unsafe {
34781 let val: u32 = ::core::mem::transmute(val);
34782 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34783 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34784 0usize,
34785 1u8,
34786 val as u64,
34787 )
34788 }
34789 }
34790 #[inline]
34791 pub fn Reserved1(&self) -> ULONG {
34792 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 5u8) as u32) }
34793 }
34794 #[inline]
34795 pub fn set_Reserved1(&mut self, val: ULONG) {
34796 unsafe {
34797 let val: u32 = ::core::mem::transmute(val);
34798 self._bitfield_1.set(1usize, 5u8, val as u64)
34799 }
34800 }
34801 #[inline]
34802 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
34803 unsafe {
34804 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34805 ::core::ptr::addr_of!((*this)._bitfield_1),
34806 1usize,
34807 5u8,
34808 ) as u32)
34809 }
34810 }
34811 #[inline]
34812 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
34813 unsafe {
34814 let val: u32 = ::core::mem::transmute(val);
34815 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34816 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34817 1usize,
34818 5u8,
34819 val as u64,
34820 )
34821 }
34822 }
34823 #[inline]
34824 pub fn BadTLP(&self) -> ULONG {
34825 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
34826 }
34827 #[inline]
34828 pub fn set_BadTLP(&mut self, val: ULONG) {
34829 unsafe {
34830 let val: u32 = ::core::mem::transmute(val);
34831 self._bitfield_1.set(6usize, 1u8, val as u64)
34832 }
34833 }
34834 #[inline]
34835 pub unsafe fn BadTLP_raw(this: *const Self) -> ULONG {
34836 unsafe {
34837 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34838 ::core::ptr::addr_of!((*this)._bitfield_1),
34839 6usize,
34840 1u8,
34841 ) as u32)
34842 }
34843 }
34844 #[inline]
34845 pub unsafe fn set_BadTLP_raw(this: *mut Self, val: ULONG) {
34846 unsafe {
34847 let val: u32 = ::core::mem::transmute(val);
34848 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34849 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34850 6usize,
34851 1u8,
34852 val as u64,
34853 )
34854 }
34855 }
34856 #[inline]
34857 pub fn BadDLLP(&self) -> ULONG {
34858 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
34859 }
34860 #[inline]
34861 pub fn set_BadDLLP(&mut self, val: ULONG) {
34862 unsafe {
34863 let val: u32 = ::core::mem::transmute(val);
34864 self._bitfield_1.set(7usize, 1u8, val as u64)
34865 }
34866 }
34867 #[inline]
34868 pub unsafe fn BadDLLP_raw(this: *const Self) -> ULONG {
34869 unsafe {
34870 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34871 ::core::ptr::addr_of!((*this)._bitfield_1),
34872 7usize,
34873 1u8,
34874 ) as u32)
34875 }
34876 }
34877 #[inline]
34878 pub unsafe fn set_BadDLLP_raw(this: *mut Self, val: ULONG) {
34879 unsafe {
34880 let val: u32 = ::core::mem::transmute(val);
34881 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34882 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34883 7usize,
34884 1u8,
34885 val as u64,
34886 )
34887 }
34888 }
34889 #[inline]
34890 pub fn ReplayNumRollover(&self) -> ULONG {
34891 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
34892 }
34893 #[inline]
34894 pub fn set_ReplayNumRollover(&mut self, val: ULONG) {
34895 unsafe {
34896 let val: u32 = ::core::mem::transmute(val);
34897 self._bitfield_1.set(8usize, 1u8, val as u64)
34898 }
34899 }
34900 #[inline]
34901 pub unsafe fn ReplayNumRollover_raw(this: *const Self) -> ULONG {
34902 unsafe {
34903 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34904 ::core::ptr::addr_of!((*this)._bitfield_1),
34905 8usize,
34906 1u8,
34907 ) as u32)
34908 }
34909 }
34910 #[inline]
34911 pub unsafe fn set_ReplayNumRollover_raw(this: *mut Self, val: ULONG) {
34912 unsafe {
34913 let val: u32 = ::core::mem::transmute(val);
34914 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34915 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34916 8usize,
34917 1u8,
34918 val as u64,
34919 )
34920 }
34921 }
34922 #[inline]
34923 pub fn Reserved2(&self) -> ULONG {
34924 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 3u8) as u32) }
34925 }
34926 #[inline]
34927 pub fn set_Reserved2(&mut self, val: ULONG) {
34928 unsafe {
34929 let val: u32 = ::core::mem::transmute(val);
34930 self._bitfield_1.set(9usize, 3u8, val as u64)
34931 }
34932 }
34933 #[inline]
34934 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
34935 unsafe {
34936 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34937 ::core::ptr::addr_of!((*this)._bitfield_1),
34938 9usize,
34939 3u8,
34940 ) as u32)
34941 }
34942 }
34943 #[inline]
34944 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
34945 unsafe {
34946 let val: u32 = ::core::mem::transmute(val);
34947 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34948 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34949 9usize,
34950 3u8,
34951 val as u64,
34952 )
34953 }
34954 }
34955 #[inline]
34956 pub fn ReplayTimerTimeout(&self) -> ULONG {
34957 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
34958 }
34959 #[inline]
34960 pub fn set_ReplayTimerTimeout(&mut self, val: ULONG) {
34961 unsafe {
34962 let val: u32 = ::core::mem::transmute(val);
34963 self._bitfield_1.set(12usize, 1u8, val as u64)
34964 }
34965 }
34966 #[inline]
34967 pub unsafe fn ReplayTimerTimeout_raw(this: *const Self) -> ULONG {
34968 unsafe {
34969 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
34970 ::core::ptr::addr_of!((*this)._bitfield_1),
34971 12usize,
34972 1u8,
34973 ) as u32)
34974 }
34975 }
34976 #[inline]
34977 pub unsafe fn set_ReplayTimerTimeout_raw(this: *mut Self, val: ULONG) {
34978 unsafe {
34979 let val: u32 = ::core::mem::transmute(val);
34980 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
34981 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
34982 12usize,
34983 1u8,
34984 val as u64,
34985 )
34986 }
34987 }
34988 #[inline]
34989 pub fn AdvisoryNonFatalError(&self) -> ULONG {
34990 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
34991 }
34992 #[inline]
34993 pub fn set_AdvisoryNonFatalError(&mut self, val: ULONG) {
34994 unsafe {
34995 let val: u32 = ::core::mem::transmute(val);
34996 self._bitfield_1.set(13usize, 1u8, val as u64)
34997 }
34998 }
34999 #[inline]
35000 pub unsafe fn AdvisoryNonFatalError_raw(this: *const Self) -> ULONG {
35001 unsafe {
35002 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35003 ::core::ptr::addr_of!((*this)._bitfield_1),
35004 13usize,
35005 1u8,
35006 ) as u32)
35007 }
35008 }
35009 #[inline]
35010 pub unsafe fn set_AdvisoryNonFatalError_raw(this: *mut Self, val: ULONG) {
35011 unsafe {
35012 let val: u32 = ::core::mem::transmute(val);
35013 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35014 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35015 13usize,
35016 1u8,
35017 val as u64,
35018 )
35019 }
35020 }
35021 #[inline]
35022 pub fn CorrectedInternalError(&self) -> ULONG {
35023 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
35024 }
35025 #[inline]
35026 pub fn set_CorrectedInternalError(&mut self, val: ULONG) {
35027 unsafe {
35028 let val: u32 = ::core::mem::transmute(val);
35029 self._bitfield_1.set(14usize, 1u8, val as u64)
35030 }
35031 }
35032 #[inline]
35033 pub unsafe fn CorrectedInternalError_raw(this: *const Self) -> ULONG {
35034 unsafe {
35035 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35036 ::core::ptr::addr_of!((*this)._bitfield_1),
35037 14usize,
35038 1u8,
35039 ) as u32)
35040 }
35041 }
35042 #[inline]
35043 pub unsafe fn set_CorrectedInternalError_raw(this: *mut Self, val: ULONG) {
35044 unsafe {
35045 let val: u32 = ::core::mem::transmute(val);
35046 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35047 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35048 14usize,
35049 1u8,
35050 val as u64,
35051 )
35052 }
35053 }
35054 #[inline]
35055 pub fn HeaderLogOverflow(&self) -> ULONG {
35056 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
35057 }
35058 #[inline]
35059 pub fn set_HeaderLogOverflow(&mut self, val: ULONG) {
35060 unsafe {
35061 let val: u32 = ::core::mem::transmute(val);
35062 self._bitfield_1.set(15usize, 1u8, val as u64)
35063 }
35064 }
35065 #[inline]
35066 pub unsafe fn HeaderLogOverflow_raw(this: *const Self) -> ULONG {
35067 unsafe {
35068 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35069 ::core::ptr::addr_of!((*this)._bitfield_1),
35070 15usize,
35071 1u8,
35072 ) as u32)
35073 }
35074 }
35075 #[inline]
35076 pub unsafe fn set_HeaderLogOverflow_raw(this: *mut Self, val: ULONG) {
35077 unsafe {
35078 let val: u32 = ::core::mem::transmute(val);
35079 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35080 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35081 15usize,
35082 1u8,
35083 val as u64,
35084 )
35085 }
35086 }
35087 #[inline]
35088 pub fn Reserved3(&self) -> ULONG {
35089 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
35090 }
35091 #[inline]
35092 pub fn set_Reserved3(&mut self, val: ULONG) {
35093 unsafe {
35094 let val: u32 = ::core::mem::transmute(val);
35095 self._bitfield_1.set(16usize, 16u8, val as u64)
35096 }
35097 }
35098 #[inline]
35099 pub unsafe fn Reserved3_raw(this: *const Self) -> ULONG {
35100 unsafe {
35101 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35102 ::core::ptr::addr_of!((*this)._bitfield_1),
35103 16usize,
35104 16u8,
35105 ) as u32)
35106 }
35107 }
35108 #[inline]
35109 pub unsafe fn set_Reserved3_raw(this: *mut Self, val: ULONG) {
35110 unsafe {
35111 let val: u32 = ::core::mem::transmute(val);
35112 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35113 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35114 16usize,
35115 16u8,
35116 val as u64,
35117 )
35118 }
35119 }
35120 #[inline]
35121 pub fn new_bitfield_1(
35122 ReceiverError: ULONG,
35123 Reserved1: ULONG,
35124 BadTLP: ULONG,
35125 BadDLLP: ULONG,
35126 ReplayNumRollover: ULONG,
35127 Reserved2: ULONG,
35128 ReplayTimerTimeout: ULONG,
35129 AdvisoryNonFatalError: ULONG,
35130 CorrectedInternalError: ULONG,
35131 HeaderLogOverflow: ULONG,
35132 Reserved3: ULONG,
35133 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
35134 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
35135 __bindgen_bitfield_unit.set(0usize, 1u8, {
35136 let ReceiverError: u32 = unsafe { ::core::mem::transmute(ReceiverError) };
35137 ReceiverError as u64
35138 });
35139 __bindgen_bitfield_unit.set(1usize, 5u8, {
35140 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
35141 Reserved1 as u64
35142 });
35143 __bindgen_bitfield_unit.set(6usize, 1u8, {
35144 let BadTLP: u32 = unsafe { ::core::mem::transmute(BadTLP) };
35145 BadTLP as u64
35146 });
35147 __bindgen_bitfield_unit.set(7usize, 1u8, {
35148 let BadDLLP: u32 = unsafe { ::core::mem::transmute(BadDLLP) };
35149 BadDLLP as u64
35150 });
35151 __bindgen_bitfield_unit.set(8usize, 1u8, {
35152 let ReplayNumRollover: u32 = unsafe { ::core::mem::transmute(ReplayNumRollover) };
35153 ReplayNumRollover as u64
35154 });
35155 __bindgen_bitfield_unit.set(9usize, 3u8, {
35156 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
35157 Reserved2 as u64
35158 });
35159 __bindgen_bitfield_unit.set(12usize, 1u8, {
35160 let ReplayTimerTimeout: u32 = unsafe { ::core::mem::transmute(ReplayTimerTimeout) };
35161 ReplayTimerTimeout as u64
35162 });
35163 __bindgen_bitfield_unit.set(13usize, 1u8, {
35164 let AdvisoryNonFatalError: u32 =
35165 unsafe { ::core::mem::transmute(AdvisoryNonFatalError) };
35166 AdvisoryNonFatalError as u64
35167 });
35168 __bindgen_bitfield_unit.set(14usize, 1u8, {
35169 let CorrectedInternalError: u32 =
35170 unsafe { ::core::mem::transmute(CorrectedInternalError) };
35171 CorrectedInternalError as u64
35172 });
35173 __bindgen_bitfield_unit.set(15usize, 1u8, {
35174 let HeaderLogOverflow: u32 = unsafe { ::core::mem::transmute(HeaderLogOverflow) };
35175 HeaderLogOverflow as u64
35176 });
35177 __bindgen_bitfield_unit.set(16usize, 16u8, {
35178 let Reserved3: u32 = unsafe { ::core::mem::transmute(Reserved3) };
35179 Reserved3 as u64
35180 });
35181 __bindgen_bitfield_unit
35182 }
35183}
35184pub type PCI_EXPRESS_CORRECTABLE_ERROR_STATUS = _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS;
35185pub type PPCI_CORRECTABLE_ERROR_STATUS = *mut _PCI_EXPRESS_CORRECTABLE_ERROR_STATUS;
35186#[repr(C)]
35187#[derive(Copy, Clone)]
35188pub union _PCI_EXPRESS_CORRECTABLE_ERROR_MASK {
35189 pub __bindgen_anon_1: _PCI_EXPRESS_CORRECTABLE_ERROR_MASK__bindgen_ty_1,
35190 pub AsULONG: ULONG,
35191}
35192#[repr(C)]
35193#[repr(align(4))]
35194#[derive(Debug, Copy, Clone)]
35195pub struct _PCI_EXPRESS_CORRECTABLE_ERROR_MASK__bindgen_ty_1 {
35196 pub _bitfield_align_1: [u16; 0],
35197 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
35198}
35199impl _PCI_EXPRESS_CORRECTABLE_ERROR_MASK__bindgen_ty_1 {
35200 #[inline]
35201 pub fn ReceiverError(&self) -> ULONG {
35202 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
35203 }
35204 #[inline]
35205 pub fn set_ReceiverError(&mut self, val: ULONG) {
35206 unsafe {
35207 let val: u32 = ::core::mem::transmute(val);
35208 self._bitfield_1.set(0usize, 1u8, val as u64)
35209 }
35210 }
35211 #[inline]
35212 pub unsafe fn ReceiverError_raw(this: *const Self) -> ULONG {
35213 unsafe {
35214 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35215 ::core::ptr::addr_of!((*this)._bitfield_1),
35216 0usize,
35217 1u8,
35218 ) as u32)
35219 }
35220 }
35221 #[inline]
35222 pub unsafe fn set_ReceiverError_raw(this: *mut Self, val: ULONG) {
35223 unsafe {
35224 let val: u32 = ::core::mem::transmute(val);
35225 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35226 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35227 0usize,
35228 1u8,
35229 val as u64,
35230 )
35231 }
35232 }
35233 #[inline]
35234 pub fn Reserved1(&self) -> ULONG {
35235 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 5u8) as u32) }
35236 }
35237 #[inline]
35238 pub fn set_Reserved1(&mut self, val: ULONG) {
35239 unsafe {
35240 let val: u32 = ::core::mem::transmute(val);
35241 self._bitfield_1.set(1usize, 5u8, val as u64)
35242 }
35243 }
35244 #[inline]
35245 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
35246 unsafe {
35247 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35248 ::core::ptr::addr_of!((*this)._bitfield_1),
35249 1usize,
35250 5u8,
35251 ) as u32)
35252 }
35253 }
35254 #[inline]
35255 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
35256 unsafe {
35257 let val: u32 = ::core::mem::transmute(val);
35258 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35259 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35260 1usize,
35261 5u8,
35262 val as u64,
35263 )
35264 }
35265 }
35266 #[inline]
35267 pub fn BadTLP(&self) -> ULONG {
35268 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
35269 }
35270 #[inline]
35271 pub fn set_BadTLP(&mut self, val: ULONG) {
35272 unsafe {
35273 let val: u32 = ::core::mem::transmute(val);
35274 self._bitfield_1.set(6usize, 1u8, val as u64)
35275 }
35276 }
35277 #[inline]
35278 pub unsafe fn BadTLP_raw(this: *const Self) -> ULONG {
35279 unsafe {
35280 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35281 ::core::ptr::addr_of!((*this)._bitfield_1),
35282 6usize,
35283 1u8,
35284 ) as u32)
35285 }
35286 }
35287 #[inline]
35288 pub unsafe fn set_BadTLP_raw(this: *mut Self, val: ULONG) {
35289 unsafe {
35290 let val: u32 = ::core::mem::transmute(val);
35291 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35292 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35293 6usize,
35294 1u8,
35295 val as u64,
35296 )
35297 }
35298 }
35299 #[inline]
35300 pub fn BadDLLP(&self) -> ULONG {
35301 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
35302 }
35303 #[inline]
35304 pub fn set_BadDLLP(&mut self, val: ULONG) {
35305 unsafe {
35306 let val: u32 = ::core::mem::transmute(val);
35307 self._bitfield_1.set(7usize, 1u8, val as u64)
35308 }
35309 }
35310 #[inline]
35311 pub unsafe fn BadDLLP_raw(this: *const Self) -> ULONG {
35312 unsafe {
35313 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35314 ::core::ptr::addr_of!((*this)._bitfield_1),
35315 7usize,
35316 1u8,
35317 ) as u32)
35318 }
35319 }
35320 #[inline]
35321 pub unsafe fn set_BadDLLP_raw(this: *mut Self, val: ULONG) {
35322 unsafe {
35323 let val: u32 = ::core::mem::transmute(val);
35324 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35325 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35326 7usize,
35327 1u8,
35328 val as u64,
35329 )
35330 }
35331 }
35332 #[inline]
35333 pub fn ReplayNumRollover(&self) -> ULONG {
35334 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
35335 }
35336 #[inline]
35337 pub fn set_ReplayNumRollover(&mut self, val: ULONG) {
35338 unsafe {
35339 let val: u32 = ::core::mem::transmute(val);
35340 self._bitfield_1.set(8usize, 1u8, val as u64)
35341 }
35342 }
35343 #[inline]
35344 pub unsafe fn ReplayNumRollover_raw(this: *const Self) -> ULONG {
35345 unsafe {
35346 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35347 ::core::ptr::addr_of!((*this)._bitfield_1),
35348 8usize,
35349 1u8,
35350 ) as u32)
35351 }
35352 }
35353 #[inline]
35354 pub unsafe fn set_ReplayNumRollover_raw(this: *mut Self, val: ULONG) {
35355 unsafe {
35356 let val: u32 = ::core::mem::transmute(val);
35357 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35358 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35359 8usize,
35360 1u8,
35361 val as u64,
35362 )
35363 }
35364 }
35365 #[inline]
35366 pub fn Reserved2(&self) -> ULONG {
35367 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 3u8) as u32) }
35368 }
35369 #[inline]
35370 pub fn set_Reserved2(&mut self, val: ULONG) {
35371 unsafe {
35372 let val: u32 = ::core::mem::transmute(val);
35373 self._bitfield_1.set(9usize, 3u8, val as u64)
35374 }
35375 }
35376 #[inline]
35377 pub unsafe fn Reserved2_raw(this: *const Self) -> ULONG {
35378 unsafe {
35379 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35380 ::core::ptr::addr_of!((*this)._bitfield_1),
35381 9usize,
35382 3u8,
35383 ) as u32)
35384 }
35385 }
35386 #[inline]
35387 pub unsafe fn set_Reserved2_raw(this: *mut Self, val: ULONG) {
35388 unsafe {
35389 let val: u32 = ::core::mem::transmute(val);
35390 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35391 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35392 9usize,
35393 3u8,
35394 val as u64,
35395 )
35396 }
35397 }
35398 #[inline]
35399 pub fn ReplayTimerTimeout(&self) -> ULONG {
35400 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
35401 }
35402 #[inline]
35403 pub fn set_ReplayTimerTimeout(&mut self, val: ULONG) {
35404 unsafe {
35405 let val: u32 = ::core::mem::transmute(val);
35406 self._bitfield_1.set(12usize, 1u8, val as u64)
35407 }
35408 }
35409 #[inline]
35410 pub unsafe fn ReplayTimerTimeout_raw(this: *const Self) -> ULONG {
35411 unsafe {
35412 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35413 ::core::ptr::addr_of!((*this)._bitfield_1),
35414 12usize,
35415 1u8,
35416 ) as u32)
35417 }
35418 }
35419 #[inline]
35420 pub unsafe fn set_ReplayTimerTimeout_raw(this: *mut Self, val: ULONG) {
35421 unsafe {
35422 let val: u32 = ::core::mem::transmute(val);
35423 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35424 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35425 12usize,
35426 1u8,
35427 val as u64,
35428 )
35429 }
35430 }
35431 #[inline]
35432 pub fn AdvisoryNonFatalError(&self) -> ULONG {
35433 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
35434 }
35435 #[inline]
35436 pub fn set_AdvisoryNonFatalError(&mut self, val: ULONG) {
35437 unsafe {
35438 let val: u32 = ::core::mem::transmute(val);
35439 self._bitfield_1.set(13usize, 1u8, val as u64)
35440 }
35441 }
35442 #[inline]
35443 pub unsafe fn AdvisoryNonFatalError_raw(this: *const Self) -> ULONG {
35444 unsafe {
35445 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35446 ::core::ptr::addr_of!((*this)._bitfield_1),
35447 13usize,
35448 1u8,
35449 ) as u32)
35450 }
35451 }
35452 #[inline]
35453 pub unsafe fn set_AdvisoryNonFatalError_raw(this: *mut Self, val: ULONG) {
35454 unsafe {
35455 let val: u32 = ::core::mem::transmute(val);
35456 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35457 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35458 13usize,
35459 1u8,
35460 val as u64,
35461 )
35462 }
35463 }
35464 #[inline]
35465 pub fn CorrectedInternalError(&self) -> ULONG {
35466 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 1u8) as u32) }
35467 }
35468 #[inline]
35469 pub fn set_CorrectedInternalError(&mut self, val: ULONG) {
35470 unsafe {
35471 let val: u32 = ::core::mem::transmute(val);
35472 self._bitfield_1.set(14usize, 1u8, val as u64)
35473 }
35474 }
35475 #[inline]
35476 pub unsafe fn CorrectedInternalError_raw(this: *const Self) -> ULONG {
35477 unsafe {
35478 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35479 ::core::ptr::addr_of!((*this)._bitfield_1),
35480 14usize,
35481 1u8,
35482 ) as u32)
35483 }
35484 }
35485 #[inline]
35486 pub unsafe fn set_CorrectedInternalError_raw(this: *mut Self, val: ULONG) {
35487 unsafe {
35488 let val: u32 = ::core::mem::transmute(val);
35489 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35490 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35491 14usize,
35492 1u8,
35493 val as u64,
35494 )
35495 }
35496 }
35497 #[inline]
35498 pub fn HeaderLogOverflow(&self) -> ULONG {
35499 unsafe { ::core::mem::transmute(self._bitfield_1.get(15usize, 1u8) as u32) }
35500 }
35501 #[inline]
35502 pub fn set_HeaderLogOverflow(&mut self, val: ULONG) {
35503 unsafe {
35504 let val: u32 = ::core::mem::transmute(val);
35505 self._bitfield_1.set(15usize, 1u8, val as u64)
35506 }
35507 }
35508 #[inline]
35509 pub unsafe fn HeaderLogOverflow_raw(this: *const Self) -> ULONG {
35510 unsafe {
35511 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35512 ::core::ptr::addr_of!((*this)._bitfield_1),
35513 15usize,
35514 1u8,
35515 ) as u32)
35516 }
35517 }
35518 #[inline]
35519 pub unsafe fn set_HeaderLogOverflow_raw(this: *mut Self, val: ULONG) {
35520 unsafe {
35521 let val: u32 = ::core::mem::transmute(val);
35522 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35523 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35524 15usize,
35525 1u8,
35526 val as u64,
35527 )
35528 }
35529 }
35530 #[inline]
35531 pub fn Reserved3(&self) -> ULONG {
35532 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
35533 }
35534 #[inline]
35535 pub fn set_Reserved3(&mut self, val: ULONG) {
35536 unsafe {
35537 let val: u32 = ::core::mem::transmute(val);
35538 self._bitfield_1.set(16usize, 16u8, val as u64)
35539 }
35540 }
35541 #[inline]
35542 pub unsafe fn Reserved3_raw(this: *const Self) -> ULONG {
35543 unsafe {
35544 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35545 ::core::ptr::addr_of!((*this)._bitfield_1),
35546 16usize,
35547 16u8,
35548 ) as u32)
35549 }
35550 }
35551 #[inline]
35552 pub unsafe fn set_Reserved3_raw(this: *mut Self, val: ULONG) {
35553 unsafe {
35554 let val: u32 = ::core::mem::transmute(val);
35555 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35556 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35557 16usize,
35558 16u8,
35559 val as u64,
35560 )
35561 }
35562 }
35563 #[inline]
35564 pub fn new_bitfield_1(
35565 ReceiverError: ULONG,
35566 Reserved1: ULONG,
35567 BadTLP: ULONG,
35568 BadDLLP: ULONG,
35569 ReplayNumRollover: ULONG,
35570 Reserved2: ULONG,
35571 ReplayTimerTimeout: ULONG,
35572 AdvisoryNonFatalError: ULONG,
35573 CorrectedInternalError: ULONG,
35574 HeaderLogOverflow: ULONG,
35575 Reserved3: ULONG,
35576 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
35577 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
35578 __bindgen_bitfield_unit.set(0usize, 1u8, {
35579 let ReceiverError: u32 = unsafe { ::core::mem::transmute(ReceiverError) };
35580 ReceiverError as u64
35581 });
35582 __bindgen_bitfield_unit.set(1usize, 5u8, {
35583 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
35584 Reserved1 as u64
35585 });
35586 __bindgen_bitfield_unit.set(6usize, 1u8, {
35587 let BadTLP: u32 = unsafe { ::core::mem::transmute(BadTLP) };
35588 BadTLP as u64
35589 });
35590 __bindgen_bitfield_unit.set(7usize, 1u8, {
35591 let BadDLLP: u32 = unsafe { ::core::mem::transmute(BadDLLP) };
35592 BadDLLP as u64
35593 });
35594 __bindgen_bitfield_unit.set(8usize, 1u8, {
35595 let ReplayNumRollover: u32 = unsafe { ::core::mem::transmute(ReplayNumRollover) };
35596 ReplayNumRollover as u64
35597 });
35598 __bindgen_bitfield_unit.set(9usize, 3u8, {
35599 let Reserved2: u32 = unsafe { ::core::mem::transmute(Reserved2) };
35600 Reserved2 as u64
35601 });
35602 __bindgen_bitfield_unit.set(12usize, 1u8, {
35603 let ReplayTimerTimeout: u32 = unsafe { ::core::mem::transmute(ReplayTimerTimeout) };
35604 ReplayTimerTimeout as u64
35605 });
35606 __bindgen_bitfield_unit.set(13usize, 1u8, {
35607 let AdvisoryNonFatalError: u32 =
35608 unsafe { ::core::mem::transmute(AdvisoryNonFatalError) };
35609 AdvisoryNonFatalError as u64
35610 });
35611 __bindgen_bitfield_unit.set(14usize, 1u8, {
35612 let CorrectedInternalError: u32 =
35613 unsafe { ::core::mem::transmute(CorrectedInternalError) };
35614 CorrectedInternalError as u64
35615 });
35616 __bindgen_bitfield_unit.set(15usize, 1u8, {
35617 let HeaderLogOverflow: u32 = unsafe { ::core::mem::transmute(HeaderLogOverflow) };
35618 HeaderLogOverflow as u64
35619 });
35620 __bindgen_bitfield_unit.set(16usize, 16u8, {
35621 let Reserved3: u32 = unsafe { ::core::mem::transmute(Reserved3) };
35622 Reserved3 as u64
35623 });
35624 __bindgen_bitfield_unit
35625 }
35626}
35627pub type PCI_EXPRESS_CORRECTABLE_ERROR_MASK = _PCI_EXPRESS_CORRECTABLE_ERROR_MASK;
35628pub type PPCI_CORRECTABLE_ERROR_MASK = *mut _PCI_EXPRESS_CORRECTABLE_ERROR_MASK;
35629#[repr(C)]
35630#[derive(Copy, Clone)]
35631pub union _PCI_EXPRESS_AER_CAPABILITIES {
35632 pub __bindgen_anon_1: _PCI_EXPRESS_AER_CAPABILITIES__bindgen_ty_1,
35633 pub AsULONG: ULONG,
35634}
35635#[repr(C)]
35636#[derive(Debug, Copy, Clone)]
35637pub struct _PCI_EXPRESS_AER_CAPABILITIES__bindgen_ty_1 {
35638 pub _bitfield_align_1: [u32; 0],
35639 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
35640}
35641impl _PCI_EXPRESS_AER_CAPABILITIES__bindgen_ty_1 {
35642 #[inline]
35643 pub fn FirstErrorPointer(&self) -> ULONG {
35644 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) }
35645 }
35646 #[inline]
35647 pub fn set_FirstErrorPointer(&mut self, val: ULONG) {
35648 unsafe {
35649 let val: u32 = ::core::mem::transmute(val);
35650 self._bitfield_1.set(0usize, 5u8, val as u64)
35651 }
35652 }
35653 #[inline]
35654 pub unsafe fn FirstErrorPointer_raw(this: *const Self) -> ULONG {
35655 unsafe {
35656 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35657 ::core::ptr::addr_of!((*this)._bitfield_1),
35658 0usize,
35659 5u8,
35660 ) as u32)
35661 }
35662 }
35663 #[inline]
35664 pub unsafe fn set_FirstErrorPointer_raw(this: *mut Self, val: ULONG) {
35665 unsafe {
35666 let val: u32 = ::core::mem::transmute(val);
35667 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35668 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35669 0usize,
35670 5u8,
35671 val as u64,
35672 )
35673 }
35674 }
35675 #[inline]
35676 pub fn ECRCGenerationCapable(&self) -> ULONG {
35677 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
35678 }
35679 #[inline]
35680 pub fn set_ECRCGenerationCapable(&mut self, val: ULONG) {
35681 unsafe {
35682 let val: u32 = ::core::mem::transmute(val);
35683 self._bitfield_1.set(5usize, 1u8, val as u64)
35684 }
35685 }
35686 #[inline]
35687 pub unsafe fn ECRCGenerationCapable_raw(this: *const Self) -> ULONG {
35688 unsafe {
35689 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35690 ::core::ptr::addr_of!((*this)._bitfield_1),
35691 5usize,
35692 1u8,
35693 ) as u32)
35694 }
35695 }
35696 #[inline]
35697 pub unsafe fn set_ECRCGenerationCapable_raw(this: *mut Self, val: ULONG) {
35698 unsafe {
35699 let val: u32 = ::core::mem::transmute(val);
35700 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35701 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35702 5usize,
35703 1u8,
35704 val as u64,
35705 )
35706 }
35707 }
35708 #[inline]
35709 pub fn ECRCGenerationEnable(&self) -> ULONG {
35710 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
35711 }
35712 #[inline]
35713 pub fn set_ECRCGenerationEnable(&mut self, val: ULONG) {
35714 unsafe {
35715 let val: u32 = ::core::mem::transmute(val);
35716 self._bitfield_1.set(6usize, 1u8, val as u64)
35717 }
35718 }
35719 #[inline]
35720 pub unsafe fn ECRCGenerationEnable_raw(this: *const Self) -> ULONG {
35721 unsafe {
35722 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35723 ::core::ptr::addr_of!((*this)._bitfield_1),
35724 6usize,
35725 1u8,
35726 ) as u32)
35727 }
35728 }
35729 #[inline]
35730 pub unsafe fn set_ECRCGenerationEnable_raw(this: *mut Self, val: ULONG) {
35731 unsafe {
35732 let val: u32 = ::core::mem::transmute(val);
35733 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35734 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35735 6usize,
35736 1u8,
35737 val as u64,
35738 )
35739 }
35740 }
35741 #[inline]
35742 pub fn ECRCCheckCapable(&self) -> ULONG {
35743 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
35744 }
35745 #[inline]
35746 pub fn set_ECRCCheckCapable(&mut self, val: ULONG) {
35747 unsafe {
35748 let val: u32 = ::core::mem::transmute(val);
35749 self._bitfield_1.set(7usize, 1u8, val as u64)
35750 }
35751 }
35752 #[inline]
35753 pub unsafe fn ECRCCheckCapable_raw(this: *const Self) -> ULONG {
35754 unsafe {
35755 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35756 ::core::ptr::addr_of!((*this)._bitfield_1),
35757 7usize,
35758 1u8,
35759 ) as u32)
35760 }
35761 }
35762 #[inline]
35763 pub unsafe fn set_ECRCCheckCapable_raw(this: *mut Self, val: ULONG) {
35764 unsafe {
35765 let val: u32 = ::core::mem::transmute(val);
35766 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35767 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35768 7usize,
35769 1u8,
35770 val as u64,
35771 )
35772 }
35773 }
35774 #[inline]
35775 pub fn ECRCCheckEnable(&self) -> ULONG {
35776 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
35777 }
35778 #[inline]
35779 pub fn set_ECRCCheckEnable(&mut self, val: ULONG) {
35780 unsafe {
35781 let val: u32 = ::core::mem::transmute(val);
35782 self._bitfield_1.set(8usize, 1u8, val as u64)
35783 }
35784 }
35785 #[inline]
35786 pub unsafe fn ECRCCheckEnable_raw(this: *const Self) -> ULONG {
35787 unsafe {
35788 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35789 ::core::ptr::addr_of!((*this)._bitfield_1),
35790 8usize,
35791 1u8,
35792 ) as u32)
35793 }
35794 }
35795 #[inline]
35796 pub unsafe fn set_ECRCCheckEnable_raw(this: *mut Self, val: ULONG) {
35797 unsafe {
35798 let val: u32 = ::core::mem::transmute(val);
35799 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35800 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35801 8usize,
35802 1u8,
35803 val as u64,
35804 )
35805 }
35806 }
35807 #[inline]
35808 pub fn MultipleHeaderRecordingCapable(&self) -> ULONG {
35809 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
35810 }
35811 #[inline]
35812 pub fn set_MultipleHeaderRecordingCapable(&mut self, val: ULONG) {
35813 unsafe {
35814 let val: u32 = ::core::mem::transmute(val);
35815 self._bitfield_1.set(9usize, 1u8, val as u64)
35816 }
35817 }
35818 #[inline]
35819 pub unsafe fn MultipleHeaderRecordingCapable_raw(this: *const Self) -> ULONG {
35820 unsafe {
35821 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35822 ::core::ptr::addr_of!((*this)._bitfield_1),
35823 9usize,
35824 1u8,
35825 ) as u32)
35826 }
35827 }
35828 #[inline]
35829 pub unsafe fn set_MultipleHeaderRecordingCapable_raw(this: *mut Self, val: ULONG) {
35830 unsafe {
35831 let val: u32 = ::core::mem::transmute(val);
35832 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35833 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35834 9usize,
35835 1u8,
35836 val as u64,
35837 )
35838 }
35839 }
35840 #[inline]
35841 pub fn MultipleHeaderRecordingEnable(&self) -> ULONG {
35842 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
35843 }
35844 #[inline]
35845 pub fn set_MultipleHeaderRecordingEnable(&mut self, val: ULONG) {
35846 unsafe {
35847 let val: u32 = ::core::mem::transmute(val);
35848 self._bitfield_1.set(10usize, 1u8, val as u64)
35849 }
35850 }
35851 #[inline]
35852 pub unsafe fn MultipleHeaderRecordingEnable_raw(this: *const Self) -> ULONG {
35853 unsafe {
35854 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35855 ::core::ptr::addr_of!((*this)._bitfield_1),
35856 10usize,
35857 1u8,
35858 ) as u32)
35859 }
35860 }
35861 #[inline]
35862 pub unsafe fn set_MultipleHeaderRecordingEnable_raw(this: *mut Self, val: ULONG) {
35863 unsafe {
35864 let val: u32 = ::core::mem::transmute(val);
35865 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35866 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35867 10usize,
35868 1u8,
35869 val as u64,
35870 )
35871 }
35872 }
35873 #[inline]
35874 pub fn TlpPrefixLogPresent(&self) -> ULONG {
35875 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
35876 }
35877 #[inline]
35878 pub fn set_TlpPrefixLogPresent(&mut self, val: ULONG) {
35879 unsafe {
35880 let val: u32 = ::core::mem::transmute(val);
35881 self._bitfield_1.set(11usize, 1u8, val as u64)
35882 }
35883 }
35884 #[inline]
35885 pub unsafe fn TlpPrefixLogPresent_raw(this: *const Self) -> ULONG {
35886 unsafe {
35887 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35888 ::core::ptr::addr_of!((*this)._bitfield_1),
35889 11usize,
35890 1u8,
35891 ) as u32)
35892 }
35893 }
35894 #[inline]
35895 pub unsafe fn set_TlpPrefixLogPresent_raw(this: *mut Self, val: ULONG) {
35896 unsafe {
35897 let val: u32 = ::core::mem::transmute(val);
35898 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35899 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35900 11usize,
35901 1u8,
35902 val as u64,
35903 )
35904 }
35905 }
35906 #[inline]
35907 pub fn Reserved(&self) -> ULONG {
35908 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 20u8) as u32) }
35909 }
35910 #[inline]
35911 pub fn set_Reserved(&mut self, val: ULONG) {
35912 unsafe {
35913 let val: u32 = ::core::mem::transmute(val);
35914 self._bitfield_1.set(12usize, 20u8, val as u64)
35915 }
35916 }
35917 #[inline]
35918 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
35919 unsafe {
35920 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
35921 ::core::ptr::addr_of!((*this)._bitfield_1),
35922 12usize,
35923 20u8,
35924 ) as u32)
35925 }
35926 }
35927 #[inline]
35928 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
35929 unsafe {
35930 let val: u32 = ::core::mem::transmute(val);
35931 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
35932 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
35933 12usize,
35934 20u8,
35935 val as u64,
35936 )
35937 }
35938 }
35939 #[inline]
35940 pub fn new_bitfield_1(
35941 FirstErrorPointer: ULONG,
35942 ECRCGenerationCapable: ULONG,
35943 ECRCGenerationEnable: ULONG,
35944 ECRCCheckCapable: ULONG,
35945 ECRCCheckEnable: ULONG,
35946 MultipleHeaderRecordingCapable: ULONG,
35947 MultipleHeaderRecordingEnable: ULONG,
35948 TlpPrefixLogPresent: ULONG,
35949 Reserved: ULONG,
35950 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
35951 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
35952 __bindgen_bitfield_unit.set(0usize, 5u8, {
35953 let FirstErrorPointer: u32 = unsafe { ::core::mem::transmute(FirstErrorPointer) };
35954 FirstErrorPointer as u64
35955 });
35956 __bindgen_bitfield_unit.set(5usize, 1u8, {
35957 let ECRCGenerationCapable: u32 =
35958 unsafe { ::core::mem::transmute(ECRCGenerationCapable) };
35959 ECRCGenerationCapable as u64
35960 });
35961 __bindgen_bitfield_unit.set(6usize, 1u8, {
35962 let ECRCGenerationEnable: u32 = unsafe { ::core::mem::transmute(ECRCGenerationEnable) };
35963 ECRCGenerationEnable as u64
35964 });
35965 __bindgen_bitfield_unit.set(7usize, 1u8, {
35966 let ECRCCheckCapable: u32 = unsafe { ::core::mem::transmute(ECRCCheckCapable) };
35967 ECRCCheckCapable as u64
35968 });
35969 __bindgen_bitfield_unit.set(8usize, 1u8, {
35970 let ECRCCheckEnable: u32 = unsafe { ::core::mem::transmute(ECRCCheckEnable) };
35971 ECRCCheckEnable as u64
35972 });
35973 __bindgen_bitfield_unit.set(9usize, 1u8, {
35974 let MultipleHeaderRecordingCapable: u32 =
35975 unsafe { ::core::mem::transmute(MultipleHeaderRecordingCapable) };
35976 MultipleHeaderRecordingCapable as u64
35977 });
35978 __bindgen_bitfield_unit.set(10usize, 1u8, {
35979 let MultipleHeaderRecordingEnable: u32 =
35980 unsafe { ::core::mem::transmute(MultipleHeaderRecordingEnable) };
35981 MultipleHeaderRecordingEnable as u64
35982 });
35983 __bindgen_bitfield_unit.set(11usize, 1u8, {
35984 let TlpPrefixLogPresent: u32 = unsafe { ::core::mem::transmute(TlpPrefixLogPresent) };
35985 TlpPrefixLogPresent as u64
35986 });
35987 __bindgen_bitfield_unit.set(12usize, 20u8, {
35988 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
35989 Reserved as u64
35990 });
35991 __bindgen_bitfield_unit
35992 }
35993}
35994pub type PCI_EXPRESS_AER_CAPABILITIES = _PCI_EXPRESS_AER_CAPABILITIES;
35995pub type PPCI_EXPRESS_AER_CAPABILITIES = *mut _PCI_EXPRESS_AER_CAPABILITIES;
35996#[repr(C)]
35997#[derive(Copy, Clone)]
35998pub union _PCI_EXPRESS_ROOT_ERROR_COMMAND {
35999 pub __bindgen_anon_1: _PCI_EXPRESS_ROOT_ERROR_COMMAND__bindgen_ty_1,
36000 pub AsULONG: ULONG,
36001}
36002#[repr(C)]
36003#[derive(Debug, Copy, Clone)]
36004pub struct _PCI_EXPRESS_ROOT_ERROR_COMMAND__bindgen_ty_1 {
36005 pub _bitfield_align_1: [u32; 0],
36006 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
36007}
36008impl _PCI_EXPRESS_ROOT_ERROR_COMMAND__bindgen_ty_1 {
36009 #[inline]
36010 pub fn CorrectableErrorReportingEnable(&self) -> ULONG {
36011 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
36012 }
36013 #[inline]
36014 pub fn set_CorrectableErrorReportingEnable(&mut self, val: ULONG) {
36015 unsafe {
36016 let val: u32 = ::core::mem::transmute(val);
36017 self._bitfield_1.set(0usize, 1u8, val as u64)
36018 }
36019 }
36020 #[inline]
36021 pub unsafe fn CorrectableErrorReportingEnable_raw(this: *const Self) -> ULONG {
36022 unsafe {
36023 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36024 ::core::ptr::addr_of!((*this)._bitfield_1),
36025 0usize,
36026 1u8,
36027 ) as u32)
36028 }
36029 }
36030 #[inline]
36031 pub unsafe fn set_CorrectableErrorReportingEnable_raw(this: *mut Self, val: ULONG) {
36032 unsafe {
36033 let val: u32 = ::core::mem::transmute(val);
36034 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36035 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36036 0usize,
36037 1u8,
36038 val as u64,
36039 )
36040 }
36041 }
36042 #[inline]
36043 pub fn NonFatalErrorReportingEnable(&self) -> ULONG {
36044 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
36045 }
36046 #[inline]
36047 pub fn set_NonFatalErrorReportingEnable(&mut self, val: ULONG) {
36048 unsafe {
36049 let val: u32 = ::core::mem::transmute(val);
36050 self._bitfield_1.set(1usize, 1u8, val as u64)
36051 }
36052 }
36053 #[inline]
36054 pub unsafe fn NonFatalErrorReportingEnable_raw(this: *const Self) -> ULONG {
36055 unsafe {
36056 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36057 ::core::ptr::addr_of!((*this)._bitfield_1),
36058 1usize,
36059 1u8,
36060 ) as u32)
36061 }
36062 }
36063 #[inline]
36064 pub unsafe fn set_NonFatalErrorReportingEnable_raw(this: *mut Self, val: ULONG) {
36065 unsafe {
36066 let val: u32 = ::core::mem::transmute(val);
36067 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36068 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36069 1usize,
36070 1u8,
36071 val as u64,
36072 )
36073 }
36074 }
36075 #[inline]
36076 pub fn FatalErrorReportingEnable(&self) -> ULONG {
36077 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
36078 }
36079 #[inline]
36080 pub fn set_FatalErrorReportingEnable(&mut self, val: ULONG) {
36081 unsafe {
36082 let val: u32 = ::core::mem::transmute(val);
36083 self._bitfield_1.set(2usize, 1u8, val as u64)
36084 }
36085 }
36086 #[inline]
36087 pub unsafe fn FatalErrorReportingEnable_raw(this: *const Self) -> ULONG {
36088 unsafe {
36089 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36090 ::core::ptr::addr_of!((*this)._bitfield_1),
36091 2usize,
36092 1u8,
36093 ) as u32)
36094 }
36095 }
36096 #[inline]
36097 pub unsafe fn set_FatalErrorReportingEnable_raw(this: *mut Self, val: ULONG) {
36098 unsafe {
36099 let val: u32 = ::core::mem::transmute(val);
36100 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36101 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36102 2usize,
36103 1u8,
36104 val as u64,
36105 )
36106 }
36107 }
36108 #[inline]
36109 pub fn Reserved(&self) -> ULONG {
36110 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
36111 }
36112 #[inline]
36113 pub fn set_Reserved(&mut self, val: ULONG) {
36114 unsafe {
36115 let val: u32 = ::core::mem::transmute(val);
36116 self._bitfield_1.set(3usize, 29u8, val as u64)
36117 }
36118 }
36119 #[inline]
36120 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
36121 unsafe {
36122 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36123 ::core::ptr::addr_of!((*this)._bitfield_1),
36124 3usize,
36125 29u8,
36126 ) as u32)
36127 }
36128 }
36129 #[inline]
36130 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
36131 unsafe {
36132 let val: u32 = ::core::mem::transmute(val);
36133 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36134 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36135 3usize,
36136 29u8,
36137 val as u64,
36138 )
36139 }
36140 }
36141 #[inline]
36142 pub fn new_bitfield_1(
36143 CorrectableErrorReportingEnable: ULONG,
36144 NonFatalErrorReportingEnable: ULONG,
36145 FatalErrorReportingEnable: ULONG,
36146 Reserved: ULONG,
36147 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
36148 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
36149 __bindgen_bitfield_unit.set(0usize, 1u8, {
36150 let CorrectableErrorReportingEnable: u32 =
36151 unsafe { ::core::mem::transmute(CorrectableErrorReportingEnable) };
36152 CorrectableErrorReportingEnable as u64
36153 });
36154 __bindgen_bitfield_unit.set(1usize, 1u8, {
36155 let NonFatalErrorReportingEnable: u32 =
36156 unsafe { ::core::mem::transmute(NonFatalErrorReportingEnable) };
36157 NonFatalErrorReportingEnable as u64
36158 });
36159 __bindgen_bitfield_unit.set(2usize, 1u8, {
36160 let FatalErrorReportingEnable: u32 =
36161 unsafe { ::core::mem::transmute(FatalErrorReportingEnable) };
36162 FatalErrorReportingEnable as u64
36163 });
36164 __bindgen_bitfield_unit.set(3usize, 29u8, {
36165 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
36166 Reserved as u64
36167 });
36168 __bindgen_bitfield_unit
36169 }
36170}
36171pub type PCI_EXPRESS_ROOT_ERROR_COMMAND = _PCI_EXPRESS_ROOT_ERROR_COMMAND;
36172pub type PPCI_EXPRESS_ROOT_ERROR_COMMAND = *mut _PCI_EXPRESS_ROOT_ERROR_COMMAND;
36173#[repr(C)]
36174#[derive(Copy, Clone)]
36175pub union _PCI_EXPRESS_ROOT_ERROR_STATUS {
36176 pub __bindgen_anon_1: _PCI_EXPRESS_ROOT_ERROR_STATUS__bindgen_ty_1,
36177 pub AsULONG: ULONG,
36178}
36179#[repr(C)]
36180#[derive(Debug, Copy, Clone)]
36181pub struct _PCI_EXPRESS_ROOT_ERROR_STATUS__bindgen_ty_1 {
36182 pub _bitfield_align_1: [u32; 0],
36183 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
36184}
36185impl _PCI_EXPRESS_ROOT_ERROR_STATUS__bindgen_ty_1 {
36186 #[inline]
36187 pub fn CorrectableErrorReceived(&self) -> ULONG {
36188 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
36189 }
36190 #[inline]
36191 pub fn set_CorrectableErrorReceived(&mut self, val: ULONG) {
36192 unsafe {
36193 let val: u32 = ::core::mem::transmute(val);
36194 self._bitfield_1.set(0usize, 1u8, val as u64)
36195 }
36196 }
36197 #[inline]
36198 pub unsafe fn CorrectableErrorReceived_raw(this: *const Self) -> ULONG {
36199 unsafe {
36200 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36201 ::core::ptr::addr_of!((*this)._bitfield_1),
36202 0usize,
36203 1u8,
36204 ) as u32)
36205 }
36206 }
36207 #[inline]
36208 pub unsafe fn set_CorrectableErrorReceived_raw(this: *mut Self, val: ULONG) {
36209 unsafe {
36210 let val: u32 = ::core::mem::transmute(val);
36211 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36212 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36213 0usize,
36214 1u8,
36215 val as u64,
36216 )
36217 }
36218 }
36219 #[inline]
36220 pub fn MultipleCorrectableErrorsReceived(&self) -> ULONG {
36221 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
36222 }
36223 #[inline]
36224 pub fn set_MultipleCorrectableErrorsReceived(&mut self, val: ULONG) {
36225 unsafe {
36226 let val: u32 = ::core::mem::transmute(val);
36227 self._bitfield_1.set(1usize, 1u8, val as u64)
36228 }
36229 }
36230 #[inline]
36231 pub unsafe fn MultipleCorrectableErrorsReceived_raw(this: *const Self) -> ULONG {
36232 unsafe {
36233 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36234 ::core::ptr::addr_of!((*this)._bitfield_1),
36235 1usize,
36236 1u8,
36237 ) as u32)
36238 }
36239 }
36240 #[inline]
36241 pub unsafe fn set_MultipleCorrectableErrorsReceived_raw(this: *mut Self, val: ULONG) {
36242 unsafe {
36243 let val: u32 = ::core::mem::transmute(val);
36244 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36245 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36246 1usize,
36247 1u8,
36248 val as u64,
36249 )
36250 }
36251 }
36252 #[inline]
36253 pub fn UncorrectableErrorReceived(&self) -> ULONG {
36254 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
36255 }
36256 #[inline]
36257 pub fn set_UncorrectableErrorReceived(&mut self, val: ULONG) {
36258 unsafe {
36259 let val: u32 = ::core::mem::transmute(val);
36260 self._bitfield_1.set(2usize, 1u8, val as u64)
36261 }
36262 }
36263 #[inline]
36264 pub unsafe fn UncorrectableErrorReceived_raw(this: *const Self) -> ULONG {
36265 unsafe {
36266 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36267 ::core::ptr::addr_of!((*this)._bitfield_1),
36268 2usize,
36269 1u8,
36270 ) as u32)
36271 }
36272 }
36273 #[inline]
36274 pub unsafe fn set_UncorrectableErrorReceived_raw(this: *mut Self, val: ULONG) {
36275 unsafe {
36276 let val: u32 = ::core::mem::transmute(val);
36277 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36278 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36279 2usize,
36280 1u8,
36281 val as u64,
36282 )
36283 }
36284 }
36285 #[inline]
36286 pub fn MultipleUncorrectableErrorsReceived(&self) -> ULONG {
36287 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
36288 }
36289 #[inline]
36290 pub fn set_MultipleUncorrectableErrorsReceived(&mut self, val: ULONG) {
36291 unsafe {
36292 let val: u32 = ::core::mem::transmute(val);
36293 self._bitfield_1.set(3usize, 1u8, val as u64)
36294 }
36295 }
36296 #[inline]
36297 pub unsafe fn MultipleUncorrectableErrorsReceived_raw(this: *const Self) -> ULONG {
36298 unsafe {
36299 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36300 ::core::ptr::addr_of!((*this)._bitfield_1),
36301 3usize,
36302 1u8,
36303 ) as u32)
36304 }
36305 }
36306 #[inline]
36307 pub unsafe fn set_MultipleUncorrectableErrorsReceived_raw(this: *mut Self, val: ULONG) {
36308 unsafe {
36309 let val: u32 = ::core::mem::transmute(val);
36310 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36311 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36312 3usize,
36313 1u8,
36314 val as u64,
36315 )
36316 }
36317 }
36318 #[inline]
36319 pub fn FirstUncorrectableFatal(&self) -> ULONG {
36320 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
36321 }
36322 #[inline]
36323 pub fn set_FirstUncorrectableFatal(&mut self, val: ULONG) {
36324 unsafe {
36325 let val: u32 = ::core::mem::transmute(val);
36326 self._bitfield_1.set(4usize, 1u8, val as u64)
36327 }
36328 }
36329 #[inline]
36330 pub unsafe fn FirstUncorrectableFatal_raw(this: *const Self) -> ULONG {
36331 unsafe {
36332 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36333 ::core::ptr::addr_of!((*this)._bitfield_1),
36334 4usize,
36335 1u8,
36336 ) as u32)
36337 }
36338 }
36339 #[inline]
36340 pub unsafe fn set_FirstUncorrectableFatal_raw(this: *mut Self, val: ULONG) {
36341 unsafe {
36342 let val: u32 = ::core::mem::transmute(val);
36343 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36344 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36345 4usize,
36346 1u8,
36347 val as u64,
36348 )
36349 }
36350 }
36351 #[inline]
36352 pub fn NonFatalErrorMessagesReceived(&self) -> ULONG {
36353 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
36354 }
36355 #[inline]
36356 pub fn set_NonFatalErrorMessagesReceived(&mut self, val: ULONG) {
36357 unsafe {
36358 let val: u32 = ::core::mem::transmute(val);
36359 self._bitfield_1.set(5usize, 1u8, val as u64)
36360 }
36361 }
36362 #[inline]
36363 pub unsafe fn NonFatalErrorMessagesReceived_raw(this: *const Self) -> ULONG {
36364 unsafe {
36365 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36366 ::core::ptr::addr_of!((*this)._bitfield_1),
36367 5usize,
36368 1u8,
36369 ) as u32)
36370 }
36371 }
36372 #[inline]
36373 pub unsafe fn set_NonFatalErrorMessagesReceived_raw(this: *mut Self, val: ULONG) {
36374 unsafe {
36375 let val: u32 = ::core::mem::transmute(val);
36376 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36377 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36378 5usize,
36379 1u8,
36380 val as u64,
36381 )
36382 }
36383 }
36384 #[inline]
36385 pub fn FatalErrorMessagesReceived(&self) -> ULONG {
36386 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
36387 }
36388 #[inline]
36389 pub fn set_FatalErrorMessagesReceived(&mut self, val: ULONG) {
36390 unsafe {
36391 let val: u32 = ::core::mem::transmute(val);
36392 self._bitfield_1.set(6usize, 1u8, val as u64)
36393 }
36394 }
36395 #[inline]
36396 pub unsafe fn FatalErrorMessagesReceived_raw(this: *const Self) -> ULONG {
36397 unsafe {
36398 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36399 ::core::ptr::addr_of!((*this)._bitfield_1),
36400 6usize,
36401 1u8,
36402 ) as u32)
36403 }
36404 }
36405 #[inline]
36406 pub unsafe fn set_FatalErrorMessagesReceived_raw(this: *mut Self, val: ULONG) {
36407 unsafe {
36408 let val: u32 = ::core::mem::transmute(val);
36409 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36410 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36411 6usize,
36412 1u8,
36413 val as u64,
36414 )
36415 }
36416 }
36417 #[inline]
36418 pub fn Reserved(&self) -> ULONG {
36419 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 20u8) as u32) }
36420 }
36421 #[inline]
36422 pub fn set_Reserved(&mut self, val: ULONG) {
36423 unsafe {
36424 let val: u32 = ::core::mem::transmute(val);
36425 self._bitfield_1.set(7usize, 20u8, val as u64)
36426 }
36427 }
36428 #[inline]
36429 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
36430 unsafe {
36431 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36432 ::core::ptr::addr_of!((*this)._bitfield_1),
36433 7usize,
36434 20u8,
36435 ) as u32)
36436 }
36437 }
36438 #[inline]
36439 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
36440 unsafe {
36441 let val: u32 = ::core::mem::transmute(val);
36442 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36443 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36444 7usize,
36445 20u8,
36446 val as u64,
36447 )
36448 }
36449 }
36450 #[inline]
36451 pub fn AdvancedErrorInterruptMessageNumber(&self) -> ULONG {
36452 unsafe { ::core::mem::transmute(self._bitfield_1.get(27usize, 5u8) as u32) }
36453 }
36454 #[inline]
36455 pub fn set_AdvancedErrorInterruptMessageNumber(&mut self, val: ULONG) {
36456 unsafe {
36457 let val: u32 = ::core::mem::transmute(val);
36458 self._bitfield_1.set(27usize, 5u8, val as u64)
36459 }
36460 }
36461 #[inline]
36462 pub unsafe fn AdvancedErrorInterruptMessageNumber_raw(this: *const Self) -> ULONG {
36463 unsafe {
36464 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36465 ::core::ptr::addr_of!((*this)._bitfield_1),
36466 27usize,
36467 5u8,
36468 ) as u32)
36469 }
36470 }
36471 #[inline]
36472 pub unsafe fn set_AdvancedErrorInterruptMessageNumber_raw(this: *mut Self, val: ULONG) {
36473 unsafe {
36474 let val: u32 = ::core::mem::transmute(val);
36475 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36476 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36477 27usize,
36478 5u8,
36479 val as u64,
36480 )
36481 }
36482 }
36483 #[inline]
36484 pub fn new_bitfield_1(
36485 CorrectableErrorReceived: ULONG,
36486 MultipleCorrectableErrorsReceived: ULONG,
36487 UncorrectableErrorReceived: ULONG,
36488 MultipleUncorrectableErrorsReceived: ULONG,
36489 FirstUncorrectableFatal: ULONG,
36490 NonFatalErrorMessagesReceived: ULONG,
36491 FatalErrorMessagesReceived: ULONG,
36492 Reserved: ULONG,
36493 AdvancedErrorInterruptMessageNumber: ULONG,
36494 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
36495 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
36496 __bindgen_bitfield_unit.set(0usize, 1u8, {
36497 let CorrectableErrorReceived: u32 =
36498 unsafe { ::core::mem::transmute(CorrectableErrorReceived) };
36499 CorrectableErrorReceived as u64
36500 });
36501 __bindgen_bitfield_unit.set(1usize, 1u8, {
36502 let MultipleCorrectableErrorsReceived: u32 =
36503 unsafe { ::core::mem::transmute(MultipleCorrectableErrorsReceived) };
36504 MultipleCorrectableErrorsReceived as u64
36505 });
36506 __bindgen_bitfield_unit.set(2usize, 1u8, {
36507 let UncorrectableErrorReceived: u32 =
36508 unsafe { ::core::mem::transmute(UncorrectableErrorReceived) };
36509 UncorrectableErrorReceived as u64
36510 });
36511 __bindgen_bitfield_unit.set(3usize, 1u8, {
36512 let MultipleUncorrectableErrorsReceived: u32 =
36513 unsafe { ::core::mem::transmute(MultipleUncorrectableErrorsReceived) };
36514 MultipleUncorrectableErrorsReceived as u64
36515 });
36516 __bindgen_bitfield_unit.set(4usize, 1u8, {
36517 let FirstUncorrectableFatal: u32 =
36518 unsafe { ::core::mem::transmute(FirstUncorrectableFatal) };
36519 FirstUncorrectableFatal as u64
36520 });
36521 __bindgen_bitfield_unit.set(5usize, 1u8, {
36522 let NonFatalErrorMessagesReceived: u32 =
36523 unsafe { ::core::mem::transmute(NonFatalErrorMessagesReceived) };
36524 NonFatalErrorMessagesReceived as u64
36525 });
36526 __bindgen_bitfield_unit.set(6usize, 1u8, {
36527 let FatalErrorMessagesReceived: u32 =
36528 unsafe { ::core::mem::transmute(FatalErrorMessagesReceived) };
36529 FatalErrorMessagesReceived as u64
36530 });
36531 __bindgen_bitfield_unit.set(7usize, 20u8, {
36532 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
36533 Reserved as u64
36534 });
36535 __bindgen_bitfield_unit.set(27usize, 5u8, {
36536 let AdvancedErrorInterruptMessageNumber: u32 =
36537 unsafe { ::core::mem::transmute(AdvancedErrorInterruptMessageNumber) };
36538 AdvancedErrorInterruptMessageNumber as u64
36539 });
36540 __bindgen_bitfield_unit
36541 }
36542}
36543pub type PCI_EXPRESS_ROOT_ERROR_STATUS = _PCI_EXPRESS_ROOT_ERROR_STATUS;
36544pub type PPCI_EXPRESS_ROOT_ERROR_STATUS = *mut _PCI_EXPRESS_ROOT_ERROR_STATUS;
36545#[repr(C)]
36546#[derive(Copy, Clone)]
36547pub union _PCI_EXPRESS_ERROR_SOURCE_ID {
36548 pub __bindgen_anon_1: _PCI_EXPRESS_ERROR_SOURCE_ID__bindgen_ty_1,
36549 pub AsULONG: ULONG,
36550}
36551#[repr(C)]
36552#[repr(align(2))]
36553#[derive(Debug, Copy, Clone)]
36554pub struct _PCI_EXPRESS_ERROR_SOURCE_ID__bindgen_ty_1 {
36555 pub _bitfield_align_1: [u8; 0],
36556 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
36557}
36558impl _PCI_EXPRESS_ERROR_SOURCE_ID__bindgen_ty_1 {
36559 #[inline]
36560 pub fn CorrectableSourceIdFun(&self) -> USHORT {
36561 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u16) }
36562 }
36563 #[inline]
36564 pub fn set_CorrectableSourceIdFun(&mut self, val: USHORT) {
36565 unsafe {
36566 let val: u16 = ::core::mem::transmute(val);
36567 self._bitfield_1.set(0usize, 3u8, val as u64)
36568 }
36569 }
36570 #[inline]
36571 pub unsafe fn CorrectableSourceIdFun_raw(this: *const Self) -> USHORT {
36572 unsafe {
36573 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36574 ::core::ptr::addr_of!((*this)._bitfield_1),
36575 0usize,
36576 3u8,
36577 ) as u16)
36578 }
36579 }
36580 #[inline]
36581 pub unsafe fn set_CorrectableSourceIdFun_raw(this: *mut Self, val: USHORT) {
36582 unsafe {
36583 let val: u16 = ::core::mem::transmute(val);
36584 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36585 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36586 0usize,
36587 3u8,
36588 val as u64,
36589 )
36590 }
36591 }
36592 #[inline]
36593 pub fn CorrectableSourceIdDev(&self) -> USHORT {
36594 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 5u8) as u16) }
36595 }
36596 #[inline]
36597 pub fn set_CorrectableSourceIdDev(&mut self, val: USHORT) {
36598 unsafe {
36599 let val: u16 = ::core::mem::transmute(val);
36600 self._bitfield_1.set(3usize, 5u8, val as u64)
36601 }
36602 }
36603 #[inline]
36604 pub unsafe fn CorrectableSourceIdDev_raw(this: *const Self) -> USHORT {
36605 unsafe {
36606 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36607 ::core::ptr::addr_of!((*this)._bitfield_1),
36608 3usize,
36609 5u8,
36610 ) as u16)
36611 }
36612 }
36613 #[inline]
36614 pub unsafe fn set_CorrectableSourceIdDev_raw(this: *mut Self, val: USHORT) {
36615 unsafe {
36616 let val: u16 = ::core::mem::transmute(val);
36617 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36618 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36619 3usize,
36620 5u8,
36621 val as u64,
36622 )
36623 }
36624 }
36625 #[inline]
36626 pub fn CorrectableSourceIdBus(&self) -> USHORT {
36627 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) }
36628 }
36629 #[inline]
36630 pub fn set_CorrectableSourceIdBus(&mut self, val: USHORT) {
36631 unsafe {
36632 let val: u16 = ::core::mem::transmute(val);
36633 self._bitfield_1.set(8usize, 8u8, val as u64)
36634 }
36635 }
36636 #[inline]
36637 pub unsafe fn CorrectableSourceIdBus_raw(this: *const Self) -> USHORT {
36638 unsafe {
36639 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36640 ::core::ptr::addr_of!((*this)._bitfield_1),
36641 8usize,
36642 8u8,
36643 ) as u16)
36644 }
36645 }
36646 #[inline]
36647 pub unsafe fn set_CorrectableSourceIdBus_raw(this: *mut Self, val: USHORT) {
36648 unsafe {
36649 let val: u16 = ::core::mem::transmute(val);
36650 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36651 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36652 8usize,
36653 8u8,
36654 val as u64,
36655 )
36656 }
36657 }
36658 #[inline]
36659 pub fn UncorrectableSourceIdFun(&self) -> USHORT {
36660 unsafe { ::core::mem::transmute(self._bitfield_1.get(16usize, 3u8) as u16) }
36661 }
36662 #[inline]
36663 pub fn set_UncorrectableSourceIdFun(&mut self, val: USHORT) {
36664 unsafe {
36665 let val: u16 = ::core::mem::transmute(val);
36666 self._bitfield_1.set(16usize, 3u8, val as u64)
36667 }
36668 }
36669 #[inline]
36670 pub unsafe fn UncorrectableSourceIdFun_raw(this: *const Self) -> USHORT {
36671 unsafe {
36672 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36673 ::core::ptr::addr_of!((*this)._bitfield_1),
36674 16usize,
36675 3u8,
36676 ) as u16)
36677 }
36678 }
36679 #[inline]
36680 pub unsafe fn set_UncorrectableSourceIdFun_raw(this: *mut Self, val: USHORT) {
36681 unsafe {
36682 let val: u16 = ::core::mem::transmute(val);
36683 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36684 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36685 16usize,
36686 3u8,
36687 val as u64,
36688 )
36689 }
36690 }
36691 #[inline]
36692 pub fn UncorrectableSourceIdDev(&self) -> USHORT {
36693 unsafe { ::core::mem::transmute(self._bitfield_1.get(19usize, 5u8) as u16) }
36694 }
36695 #[inline]
36696 pub fn set_UncorrectableSourceIdDev(&mut self, val: USHORT) {
36697 unsafe {
36698 let val: u16 = ::core::mem::transmute(val);
36699 self._bitfield_1.set(19usize, 5u8, val as u64)
36700 }
36701 }
36702 #[inline]
36703 pub unsafe fn UncorrectableSourceIdDev_raw(this: *const Self) -> USHORT {
36704 unsafe {
36705 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36706 ::core::ptr::addr_of!((*this)._bitfield_1),
36707 19usize,
36708 5u8,
36709 ) as u16)
36710 }
36711 }
36712 #[inline]
36713 pub unsafe fn set_UncorrectableSourceIdDev_raw(this: *mut Self, val: USHORT) {
36714 unsafe {
36715 let val: u16 = ::core::mem::transmute(val);
36716 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36717 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36718 19usize,
36719 5u8,
36720 val as u64,
36721 )
36722 }
36723 }
36724 #[inline]
36725 pub fn UncorrectableSourceIdBus(&self) -> USHORT {
36726 unsafe { ::core::mem::transmute(self._bitfield_1.get(24usize, 8u8) as u16) }
36727 }
36728 #[inline]
36729 pub fn set_UncorrectableSourceIdBus(&mut self, val: USHORT) {
36730 unsafe {
36731 let val: u16 = ::core::mem::transmute(val);
36732 self._bitfield_1.set(24usize, 8u8, val as u64)
36733 }
36734 }
36735 #[inline]
36736 pub unsafe fn UncorrectableSourceIdBus_raw(this: *const Self) -> USHORT {
36737 unsafe {
36738 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36739 ::core::ptr::addr_of!((*this)._bitfield_1),
36740 24usize,
36741 8u8,
36742 ) as u16)
36743 }
36744 }
36745 #[inline]
36746 pub unsafe fn set_UncorrectableSourceIdBus_raw(this: *mut Self, val: USHORT) {
36747 unsafe {
36748 let val: u16 = ::core::mem::transmute(val);
36749 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36750 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36751 24usize,
36752 8u8,
36753 val as u64,
36754 )
36755 }
36756 }
36757 #[inline]
36758 pub fn new_bitfield_1(
36759 CorrectableSourceIdFun: USHORT,
36760 CorrectableSourceIdDev: USHORT,
36761 CorrectableSourceIdBus: USHORT,
36762 UncorrectableSourceIdFun: USHORT,
36763 UncorrectableSourceIdDev: USHORT,
36764 UncorrectableSourceIdBus: USHORT,
36765 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
36766 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
36767 __bindgen_bitfield_unit.set(0usize, 3u8, {
36768 let CorrectableSourceIdFun: u16 =
36769 unsafe { ::core::mem::transmute(CorrectableSourceIdFun) };
36770 CorrectableSourceIdFun as u64
36771 });
36772 __bindgen_bitfield_unit.set(3usize, 5u8, {
36773 let CorrectableSourceIdDev: u16 =
36774 unsafe { ::core::mem::transmute(CorrectableSourceIdDev) };
36775 CorrectableSourceIdDev as u64
36776 });
36777 __bindgen_bitfield_unit.set(8usize, 8u8, {
36778 let CorrectableSourceIdBus: u16 =
36779 unsafe { ::core::mem::transmute(CorrectableSourceIdBus) };
36780 CorrectableSourceIdBus as u64
36781 });
36782 __bindgen_bitfield_unit.set(16usize, 3u8, {
36783 let UncorrectableSourceIdFun: u16 =
36784 unsafe { ::core::mem::transmute(UncorrectableSourceIdFun) };
36785 UncorrectableSourceIdFun as u64
36786 });
36787 __bindgen_bitfield_unit.set(19usize, 5u8, {
36788 let UncorrectableSourceIdDev: u16 =
36789 unsafe { ::core::mem::transmute(UncorrectableSourceIdDev) };
36790 UncorrectableSourceIdDev as u64
36791 });
36792 __bindgen_bitfield_unit.set(24usize, 8u8, {
36793 let UncorrectableSourceIdBus: u16 =
36794 unsafe { ::core::mem::transmute(UncorrectableSourceIdBus) };
36795 UncorrectableSourceIdBus as u64
36796 });
36797 __bindgen_bitfield_unit
36798 }
36799}
36800pub type PCI_EXPRESS_ERROR_SOURCE_ID = _PCI_EXPRESS_ERROR_SOURCE_ID;
36801pub type PPCI_EXPRESS_ERROR_SOURCE_ID = *mut _PCI_EXPRESS_ERROR_SOURCE_ID;
36802#[repr(C)]
36803#[derive(Copy, Clone)]
36804pub union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS {
36805 pub __bindgen_anon_1: _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1,
36806 pub AsULONG: ULONG,
36807}
36808#[repr(C)]
36809#[derive(Debug, Copy, Clone)]
36810pub struct _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
36811 pub _bitfield_align_1: [u32; 0],
36812 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
36813}
36814impl _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS__bindgen_ty_1 {
36815 #[inline]
36816 pub fn TargetAbortOnSplitCompletion(&self) -> ULONG {
36817 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
36818 }
36819 #[inline]
36820 pub fn set_TargetAbortOnSplitCompletion(&mut self, val: ULONG) {
36821 unsafe {
36822 let val: u32 = ::core::mem::transmute(val);
36823 self._bitfield_1.set(0usize, 1u8, val as u64)
36824 }
36825 }
36826 #[inline]
36827 pub unsafe fn TargetAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
36828 unsafe {
36829 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36830 ::core::ptr::addr_of!((*this)._bitfield_1),
36831 0usize,
36832 1u8,
36833 ) as u32)
36834 }
36835 }
36836 #[inline]
36837 pub unsafe fn set_TargetAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
36838 unsafe {
36839 let val: u32 = ::core::mem::transmute(val);
36840 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36841 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36842 0usize,
36843 1u8,
36844 val as u64,
36845 )
36846 }
36847 }
36848 #[inline]
36849 pub fn MasterAbortOnSplitCompletion(&self) -> ULONG {
36850 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
36851 }
36852 #[inline]
36853 pub fn set_MasterAbortOnSplitCompletion(&mut self, val: ULONG) {
36854 unsafe {
36855 let val: u32 = ::core::mem::transmute(val);
36856 self._bitfield_1.set(1usize, 1u8, val as u64)
36857 }
36858 }
36859 #[inline]
36860 pub unsafe fn MasterAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
36861 unsafe {
36862 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36863 ::core::ptr::addr_of!((*this)._bitfield_1),
36864 1usize,
36865 1u8,
36866 ) as u32)
36867 }
36868 }
36869 #[inline]
36870 pub unsafe fn set_MasterAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
36871 unsafe {
36872 let val: u32 = ::core::mem::transmute(val);
36873 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36874 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36875 1usize,
36876 1u8,
36877 val as u64,
36878 )
36879 }
36880 }
36881 #[inline]
36882 pub fn ReceivedTargetAbort(&self) -> ULONG {
36883 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
36884 }
36885 #[inline]
36886 pub fn set_ReceivedTargetAbort(&mut self, val: ULONG) {
36887 unsafe {
36888 let val: u32 = ::core::mem::transmute(val);
36889 self._bitfield_1.set(2usize, 1u8, val as u64)
36890 }
36891 }
36892 #[inline]
36893 pub unsafe fn ReceivedTargetAbort_raw(this: *const Self) -> ULONG {
36894 unsafe {
36895 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36896 ::core::ptr::addr_of!((*this)._bitfield_1),
36897 2usize,
36898 1u8,
36899 ) as u32)
36900 }
36901 }
36902 #[inline]
36903 pub unsafe fn set_ReceivedTargetAbort_raw(this: *mut Self, val: ULONG) {
36904 unsafe {
36905 let val: u32 = ::core::mem::transmute(val);
36906 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36907 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36908 2usize,
36909 1u8,
36910 val as u64,
36911 )
36912 }
36913 }
36914 #[inline]
36915 pub fn ReceivedMasterAbort(&self) -> ULONG {
36916 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
36917 }
36918 #[inline]
36919 pub fn set_ReceivedMasterAbort(&mut self, val: ULONG) {
36920 unsafe {
36921 let val: u32 = ::core::mem::transmute(val);
36922 self._bitfield_1.set(3usize, 1u8, val as u64)
36923 }
36924 }
36925 #[inline]
36926 pub unsafe fn ReceivedMasterAbort_raw(this: *const Self) -> ULONG {
36927 unsafe {
36928 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36929 ::core::ptr::addr_of!((*this)._bitfield_1),
36930 3usize,
36931 1u8,
36932 ) as u32)
36933 }
36934 }
36935 #[inline]
36936 pub unsafe fn set_ReceivedMasterAbort_raw(this: *mut Self, val: ULONG) {
36937 unsafe {
36938 let val: u32 = ::core::mem::transmute(val);
36939 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36940 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36941 3usize,
36942 1u8,
36943 val as u64,
36944 )
36945 }
36946 }
36947 #[inline]
36948 pub fn RsvdZ(&self) -> ULONG {
36949 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
36950 }
36951 #[inline]
36952 pub fn set_RsvdZ(&mut self, val: ULONG) {
36953 unsafe {
36954 let val: u32 = ::core::mem::transmute(val);
36955 self._bitfield_1.set(4usize, 1u8, val as u64)
36956 }
36957 }
36958 #[inline]
36959 pub unsafe fn RsvdZ_raw(this: *const Self) -> ULONG {
36960 unsafe {
36961 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36962 ::core::ptr::addr_of!((*this)._bitfield_1),
36963 4usize,
36964 1u8,
36965 ) as u32)
36966 }
36967 }
36968 #[inline]
36969 pub unsafe fn set_RsvdZ_raw(this: *mut Self, val: ULONG) {
36970 unsafe {
36971 let val: u32 = ::core::mem::transmute(val);
36972 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
36973 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
36974 4usize,
36975 1u8,
36976 val as u64,
36977 )
36978 }
36979 }
36980 #[inline]
36981 pub fn UnexpectedSplitCompletionError(&self) -> ULONG {
36982 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
36983 }
36984 #[inline]
36985 pub fn set_UnexpectedSplitCompletionError(&mut self, val: ULONG) {
36986 unsafe {
36987 let val: u32 = ::core::mem::transmute(val);
36988 self._bitfield_1.set(5usize, 1u8, val as u64)
36989 }
36990 }
36991 #[inline]
36992 pub unsafe fn UnexpectedSplitCompletionError_raw(this: *const Self) -> ULONG {
36993 unsafe {
36994 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
36995 ::core::ptr::addr_of!((*this)._bitfield_1),
36996 5usize,
36997 1u8,
36998 ) as u32)
36999 }
37000 }
37001 #[inline]
37002 pub unsafe fn set_UnexpectedSplitCompletionError_raw(this: *mut Self, val: ULONG) {
37003 unsafe {
37004 let val: u32 = ::core::mem::transmute(val);
37005 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37006 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37007 5usize,
37008 1u8,
37009 val as u64,
37010 )
37011 }
37012 }
37013 #[inline]
37014 pub fn UncorrectableSplitCompletion(&self) -> ULONG {
37015 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
37016 }
37017 #[inline]
37018 pub fn set_UncorrectableSplitCompletion(&mut self, val: ULONG) {
37019 unsafe {
37020 let val: u32 = ::core::mem::transmute(val);
37021 self._bitfield_1.set(6usize, 1u8, val as u64)
37022 }
37023 }
37024 #[inline]
37025 pub unsafe fn UncorrectableSplitCompletion_raw(this: *const Self) -> ULONG {
37026 unsafe {
37027 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37028 ::core::ptr::addr_of!((*this)._bitfield_1),
37029 6usize,
37030 1u8,
37031 ) as u32)
37032 }
37033 }
37034 #[inline]
37035 pub unsafe fn set_UncorrectableSplitCompletion_raw(this: *mut Self, val: ULONG) {
37036 unsafe {
37037 let val: u32 = ::core::mem::transmute(val);
37038 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37039 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37040 6usize,
37041 1u8,
37042 val as u64,
37043 )
37044 }
37045 }
37046 #[inline]
37047 pub fn UncorrectableDataError(&self) -> ULONG {
37048 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
37049 }
37050 #[inline]
37051 pub fn set_UncorrectableDataError(&mut self, val: ULONG) {
37052 unsafe {
37053 let val: u32 = ::core::mem::transmute(val);
37054 self._bitfield_1.set(7usize, 1u8, val as u64)
37055 }
37056 }
37057 #[inline]
37058 pub unsafe fn UncorrectableDataError_raw(this: *const Self) -> ULONG {
37059 unsafe {
37060 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37061 ::core::ptr::addr_of!((*this)._bitfield_1),
37062 7usize,
37063 1u8,
37064 ) as u32)
37065 }
37066 }
37067 #[inline]
37068 pub unsafe fn set_UncorrectableDataError_raw(this: *mut Self, val: ULONG) {
37069 unsafe {
37070 let val: u32 = ::core::mem::transmute(val);
37071 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37072 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37073 7usize,
37074 1u8,
37075 val as u64,
37076 )
37077 }
37078 }
37079 #[inline]
37080 pub fn UncorrectableAttributeError(&self) -> ULONG {
37081 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
37082 }
37083 #[inline]
37084 pub fn set_UncorrectableAttributeError(&mut self, val: ULONG) {
37085 unsafe {
37086 let val: u32 = ::core::mem::transmute(val);
37087 self._bitfield_1.set(8usize, 1u8, val as u64)
37088 }
37089 }
37090 #[inline]
37091 pub unsafe fn UncorrectableAttributeError_raw(this: *const Self) -> ULONG {
37092 unsafe {
37093 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37094 ::core::ptr::addr_of!((*this)._bitfield_1),
37095 8usize,
37096 1u8,
37097 ) as u32)
37098 }
37099 }
37100 #[inline]
37101 pub unsafe fn set_UncorrectableAttributeError_raw(this: *mut Self, val: ULONG) {
37102 unsafe {
37103 let val: u32 = ::core::mem::transmute(val);
37104 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37105 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37106 8usize,
37107 1u8,
37108 val as u64,
37109 )
37110 }
37111 }
37112 #[inline]
37113 pub fn UncorrectableAddressError(&self) -> ULONG {
37114 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
37115 }
37116 #[inline]
37117 pub fn set_UncorrectableAddressError(&mut self, val: ULONG) {
37118 unsafe {
37119 let val: u32 = ::core::mem::transmute(val);
37120 self._bitfield_1.set(9usize, 1u8, val as u64)
37121 }
37122 }
37123 #[inline]
37124 pub unsafe fn UncorrectableAddressError_raw(this: *const Self) -> ULONG {
37125 unsafe {
37126 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37127 ::core::ptr::addr_of!((*this)._bitfield_1),
37128 9usize,
37129 1u8,
37130 ) as u32)
37131 }
37132 }
37133 #[inline]
37134 pub unsafe fn set_UncorrectableAddressError_raw(this: *mut Self, val: ULONG) {
37135 unsafe {
37136 let val: u32 = ::core::mem::transmute(val);
37137 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37138 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37139 9usize,
37140 1u8,
37141 val as u64,
37142 )
37143 }
37144 }
37145 #[inline]
37146 pub fn DelayedTransactionDiscardTimerExpired(&self) -> ULONG {
37147 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
37148 }
37149 #[inline]
37150 pub fn set_DelayedTransactionDiscardTimerExpired(&mut self, val: ULONG) {
37151 unsafe {
37152 let val: u32 = ::core::mem::transmute(val);
37153 self._bitfield_1.set(10usize, 1u8, val as u64)
37154 }
37155 }
37156 #[inline]
37157 pub unsafe fn DelayedTransactionDiscardTimerExpired_raw(this: *const Self) -> ULONG {
37158 unsafe {
37159 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37160 ::core::ptr::addr_of!((*this)._bitfield_1),
37161 10usize,
37162 1u8,
37163 ) as u32)
37164 }
37165 }
37166 #[inline]
37167 pub unsafe fn set_DelayedTransactionDiscardTimerExpired_raw(this: *mut Self, val: ULONG) {
37168 unsafe {
37169 let val: u32 = ::core::mem::transmute(val);
37170 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37171 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37172 10usize,
37173 1u8,
37174 val as u64,
37175 )
37176 }
37177 }
37178 #[inline]
37179 pub fn PERRAsserted(&self) -> ULONG {
37180 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
37181 }
37182 #[inline]
37183 pub fn set_PERRAsserted(&mut self, val: ULONG) {
37184 unsafe {
37185 let val: u32 = ::core::mem::transmute(val);
37186 self._bitfield_1.set(11usize, 1u8, val as u64)
37187 }
37188 }
37189 #[inline]
37190 pub unsafe fn PERRAsserted_raw(this: *const Self) -> ULONG {
37191 unsafe {
37192 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37193 ::core::ptr::addr_of!((*this)._bitfield_1),
37194 11usize,
37195 1u8,
37196 ) as u32)
37197 }
37198 }
37199 #[inline]
37200 pub unsafe fn set_PERRAsserted_raw(this: *mut Self, val: ULONG) {
37201 unsafe {
37202 let val: u32 = ::core::mem::transmute(val);
37203 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37204 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37205 11usize,
37206 1u8,
37207 val as u64,
37208 )
37209 }
37210 }
37211 #[inline]
37212 pub fn SERRAsserted(&self) -> ULONG {
37213 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
37214 }
37215 #[inline]
37216 pub fn set_SERRAsserted(&mut self, val: ULONG) {
37217 unsafe {
37218 let val: u32 = ::core::mem::transmute(val);
37219 self._bitfield_1.set(12usize, 1u8, val as u64)
37220 }
37221 }
37222 #[inline]
37223 pub unsafe fn SERRAsserted_raw(this: *const Self) -> ULONG {
37224 unsafe {
37225 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37226 ::core::ptr::addr_of!((*this)._bitfield_1),
37227 12usize,
37228 1u8,
37229 ) as u32)
37230 }
37231 }
37232 #[inline]
37233 pub unsafe fn set_SERRAsserted_raw(this: *mut Self, val: ULONG) {
37234 unsafe {
37235 let val: u32 = ::core::mem::transmute(val);
37236 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37237 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37238 12usize,
37239 1u8,
37240 val as u64,
37241 )
37242 }
37243 }
37244 #[inline]
37245 pub fn InternalBridgeError(&self) -> ULONG {
37246 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
37247 }
37248 #[inline]
37249 pub fn set_InternalBridgeError(&mut self, val: ULONG) {
37250 unsafe {
37251 let val: u32 = ::core::mem::transmute(val);
37252 self._bitfield_1.set(13usize, 1u8, val as u64)
37253 }
37254 }
37255 #[inline]
37256 pub unsafe fn InternalBridgeError_raw(this: *const Self) -> ULONG {
37257 unsafe {
37258 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37259 ::core::ptr::addr_of!((*this)._bitfield_1),
37260 13usize,
37261 1u8,
37262 ) as u32)
37263 }
37264 }
37265 #[inline]
37266 pub unsafe fn set_InternalBridgeError_raw(this: *mut Self, val: ULONG) {
37267 unsafe {
37268 let val: u32 = ::core::mem::transmute(val);
37269 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37270 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37271 13usize,
37272 1u8,
37273 val as u64,
37274 )
37275 }
37276 }
37277 #[inline]
37278 pub fn Reserved(&self) -> ULONG {
37279 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 18u8) as u32) }
37280 }
37281 #[inline]
37282 pub fn set_Reserved(&mut self, val: ULONG) {
37283 unsafe {
37284 let val: u32 = ::core::mem::transmute(val);
37285 self._bitfield_1.set(14usize, 18u8, val as u64)
37286 }
37287 }
37288 #[inline]
37289 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
37290 unsafe {
37291 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37292 ::core::ptr::addr_of!((*this)._bitfield_1),
37293 14usize,
37294 18u8,
37295 ) as u32)
37296 }
37297 }
37298 #[inline]
37299 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
37300 unsafe {
37301 let val: u32 = ::core::mem::transmute(val);
37302 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37303 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37304 14usize,
37305 18u8,
37306 val as u64,
37307 )
37308 }
37309 }
37310 #[inline]
37311 pub fn new_bitfield_1(
37312 TargetAbortOnSplitCompletion: ULONG,
37313 MasterAbortOnSplitCompletion: ULONG,
37314 ReceivedTargetAbort: ULONG,
37315 ReceivedMasterAbort: ULONG,
37316 RsvdZ: ULONG,
37317 UnexpectedSplitCompletionError: ULONG,
37318 UncorrectableSplitCompletion: ULONG,
37319 UncorrectableDataError: ULONG,
37320 UncorrectableAttributeError: ULONG,
37321 UncorrectableAddressError: ULONG,
37322 DelayedTransactionDiscardTimerExpired: ULONG,
37323 PERRAsserted: ULONG,
37324 SERRAsserted: ULONG,
37325 InternalBridgeError: ULONG,
37326 Reserved: ULONG,
37327 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
37328 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
37329 __bindgen_bitfield_unit.set(0usize, 1u8, {
37330 let TargetAbortOnSplitCompletion: u32 =
37331 unsafe { ::core::mem::transmute(TargetAbortOnSplitCompletion) };
37332 TargetAbortOnSplitCompletion as u64
37333 });
37334 __bindgen_bitfield_unit.set(1usize, 1u8, {
37335 let MasterAbortOnSplitCompletion: u32 =
37336 unsafe { ::core::mem::transmute(MasterAbortOnSplitCompletion) };
37337 MasterAbortOnSplitCompletion as u64
37338 });
37339 __bindgen_bitfield_unit.set(2usize, 1u8, {
37340 let ReceivedTargetAbort: u32 = unsafe { ::core::mem::transmute(ReceivedTargetAbort) };
37341 ReceivedTargetAbort as u64
37342 });
37343 __bindgen_bitfield_unit.set(3usize, 1u8, {
37344 let ReceivedMasterAbort: u32 = unsafe { ::core::mem::transmute(ReceivedMasterAbort) };
37345 ReceivedMasterAbort as u64
37346 });
37347 __bindgen_bitfield_unit.set(4usize, 1u8, {
37348 let RsvdZ: u32 = unsafe { ::core::mem::transmute(RsvdZ) };
37349 RsvdZ as u64
37350 });
37351 __bindgen_bitfield_unit.set(5usize, 1u8, {
37352 let UnexpectedSplitCompletionError: u32 =
37353 unsafe { ::core::mem::transmute(UnexpectedSplitCompletionError) };
37354 UnexpectedSplitCompletionError as u64
37355 });
37356 __bindgen_bitfield_unit.set(6usize, 1u8, {
37357 let UncorrectableSplitCompletion: u32 =
37358 unsafe { ::core::mem::transmute(UncorrectableSplitCompletion) };
37359 UncorrectableSplitCompletion as u64
37360 });
37361 __bindgen_bitfield_unit.set(7usize, 1u8, {
37362 let UncorrectableDataError: u32 =
37363 unsafe { ::core::mem::transmute(UncorrectableDataError) };
37364 UncorrectableDataError as u64
37365 });
37366 __bindgen_bitfield_unit.set(8usize, 1u8, {
37367 let UncorrectableAttributeError: u32 =
37368 unsafe { ::core::mem::transmute(UncorrectableAttributeError) };
37369 UncorrectableAttributeError as u64
37370 });
37371 __bindgen_bitfield_unit.set(9usize, 1u8, {
37372 let UncorrectableAddressError: u32 =
37373 unsafe { ::core::mem::transmute(UncorrectableAddressError) };
37374 UncorrectableAddressError as u64
37375 });
37376 __bindgen_bitfield_unit.set(10usize, 1u8, {
37377 let DelayedTransactionDiscardTimerExpired: u32 =
37378 unsafe { ::core::mem::transmute(DelayedTransactionDiscardTimerExpired) };
37379 DelayedTransactionDiscardTimerExpired as u64
37380 });
37381 __bindgen_bitfield_unit.set(11usize, 1u8, {
37382 let PERRAsserted: u32 = unsafe { ::core::mem::transmute(PERRAsserted) };
37383 PERRAsserted as u64
37384 });
37385 __bindgen_bitfield_unit.set(12usize, 1u8, {
37386 let SERRAsserted: u32 = unsafe { ::core::mem::transmute(SERRAsserted) };
37387 SERRAsserted as u64
37388 });
37389 __bindgen_bitfield_unit.set(13usize, 1u8, {
37390 let InternalBridgeError: u32 = unsafe { ::core::mem::transmute(InternalBridgeError) };
37391 InternalBridgeError as u64
37392 });
37393 __bindgen_bitfield_unit.set(14usize, 18u8, {
37394 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
37395 Reserved as u64
37396 });
37397 __bindgen_bitfield_unit
37398 }
37399}
37400pub type PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS = _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS;
37401pub type PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS =
37402*mut _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS;
37403#[repr(C)]
37404#[derive(Copy, Clone)]
37405pub union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK {
37406 pub __bindgen_anon_1: _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1,
37407 pub AsULONG: ULONG,
37408}
37409#[repr(C)]
37410#[derive(Debug, Copy, Clone)]
37411pub struct _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1 {
37412 pub _bitfield_align_1: [u32; 0],
37413 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
37414}
37415impl _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK__bindgen_ty_1 {
37416 #[inline]
37417 pub fn TargetAbortOnSplitCompletion(&self) -> ULONG {
37418 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
37419 }
37420 #[inline]
37421 pub fn set_TargetAbortOnSplitCompletion(&mut self, val: ULONG) {
37422 unsafe {
37423 let val: u32 = ::core::mem::transmute(val);
37424 self._bitfield_1.set(0usize, 1u8, val as u64)
37425 }
37426 }
37427 #[inline]
37428 pub unsafe fn TargetAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
37429 unsafe {
37430 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37431 ::core::ptr::addr_of!((*this)._bitfield_1),
37432 0usize,
37433 1u8,
37434 ) as u32)
37435 }
37436 }
37437 #[inline]
37438 pub unsafe fn set_TargetAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
37439 unsafe {
37440 let val: u32 = ::core::mem::transmute(val);
37441 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37442 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37443 0usize,
37444 1u8,
37445 val as u64,
37446 )
37447 }
37448 }
37449 #[inline]
37450 pub fn MasterAbortOnSplitCompletion(&self) -> ULONG {
37451 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
37452 }
37453 #[inline]
37454 pub fn set_MasterAbortOnSplitCompletion(&mut self, val: ULONG) {
37455 unsafe {
37456 let val: u32 = ::core::mem::transmute(val);
37457 self._bitfield_1.set(1usize, 1u8, val as u64)
37458 }
37459 }
37460 #[inline]
37461 pub unsafe fn MasterAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
37462 unsafe {
37463 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37464 ::core::ptr::addr_of!((*this)._bitfield_1),
37465 1usize,
37466 1u8,
37467 ) as u32)
37468 }
37469 }
37470 #[inline]
37471 pub unsafe fn set_MasterAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
37472 unsafe {
37473 let val: u32 = ::core::mem::transmute(val);
37474 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37475 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37476 1usize,
37477 1u8,
37478 val as u64,
37479 )
37480 }
37481 }
37482 #[inline]
37483 pub fn ReceivedTargetAbort(&self) -> ULONG {
37484 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
37485 }
37486 #[inline]
37487 pub fn set_ReceivedTargetAbort(&mut self, val: ULONG) {
37488 unsafe {
37489 let val: u32 = ::core::mem::transmute(val);
37490 self._bitfield_1.set(2usize, 1u8, val as u64)
37491 }
37492 }
37493 #[inline]
37494 pub unsafe fn ReceivedTargetAbort_raw(this: *const Self) -> ULONG {
37495 unsafe {
37496 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37497 ::core::ptr::addr_of!((*this)._bitfield_1),
37498 2usize,
37499 1u8,
37500 ) as u32)
37501 }
37502 }
37503 #[inline]
37504 pub unsafe fn set_ReceivedTargetAbort_raw(this: *mut Self, val: ULONG) {
37505 unsafe {
37506 let val: u32 = ::core::mem::transmute(val);
37507 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37508 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37509 2usize,
37510 1u8,
37511 val as u64,
37512 )
37513 }
37514 }
37515 #[inline]
37516 pub fn ReceivedMasterAbort(&self) -> ULONG {
37517 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
37518 }
37519 #[inline]
37520 pub fn set_ReceivedMasterAbort(&mut self, val: ULONG) {
37521 unsafe {
37522 let val: u32 = ::core::mem::transmute(val);
37523 self._bitfield_1.set(3usize, 1u8, val as u64)
37524 }
37525 }
37526 #[inline]
37527 pub unsafe fn ReceivedMasterAbort_raw(this: *const Self) -> ULONG {
37528 unsafe {
37529 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37530 ::core::ptr::addr_of!((*this)._bitfield_1),
37531 3usize,
37532 1u8,
37533 ) as u32)
37534 }
37535 }
37536 #[inline]
37537 pub unsafe fn set_ReceivedMasterAbort_raw(this: *mut Self, val: ULONG) {
37538 unsafe {
37539 let val: u32 = ::core::mem::transmute(val);
37540 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37541 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37542 3usize,
37543 1u8,
37544 val as u64,
37545 )
37546 }
37547 }
37548 #[inline]
37549 pub fn RsvdZ(&self) -> ULONG {
37550 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
37551 }
37552 #[inline]
37553 pub fn set_RsvdZ(&mut self, val: ULONG) {
37554 unsafe {
37555 let val: u32 = ::core::mem::transmute(val);
37556 self._bitfield_1.set(4usize, 1u8, val as u64)
37557 }
37558 }
37559 #[inline]
37560 pub unsafe fn RsvdZ_raw(this: *const Self) -> ULONG {
37561 unsafe {
37562 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37563 ::core::ptr::addr_of!((*this)._bitfield_1),
37564 4usize,
37565 1u8,
37566 ) as u32)
37567 }
37568 }
37569 #[inline]
37570 pub unsafe fn set_RsvdZ_raw(this: *mut Self, val: ULONG) {
37571 unsafe {
37572 let val: u32 = ::core::mem::transmute(val);
37573 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37574 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37575 4usize,
37576 1u8,
37577 val as u64,
37578 )
37579 }
37580 }
37581 #[inline]
37582 pub fn UnexpectedSplitCompletionError(&self) -> ULONG {
37583 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
37584 }
37585 #[inline]
37586 pub fn set_UnexpectedSplitCompletionError(&mut self, val: ULONG) {
37587 unsafe {
37588 let val: u32 = ::core::mem::transmute(val);
37589 self._bitfield_1.set(5usize, 1u8, val as u64)
37590 }
37591 }
37592 #[inline]
37593 pub unsafe fn UnexpectedSplitCompletionError_raw(this: *const Self) -> ULONG {
37594 unsafe {
37595 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37596 ::core::ptr::addr_of!((*this)._bitfield_1),
37597 5usize,
37598 1u8,
37599 ) as u32)
37600 }
37601 }
37602 #[inline]
37603 pub unsafe fn set_UnexpectedSplitCompletionError_raw(this: *mut Self, val: ULONG) {
37604 unsafe {
37605 let val: u32 = ::core::mem::transmute(val);
37606 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37607 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37608 5usize,
37609 1u8,
37610 val as u64,
37611 )
37612 }
37613 }
37614 #[inline]
37615 pub fn UncorrectableSplitCompletion(&self) -> ULONG {
37616 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
37617 }
37618 #[inline]
37619 pub fn set_UncorrectableSplitCompletion(&mut self, val: ULONG) {
37620 unsafe {
37621 let val: u32 = ::core::mem::transmute(val);
37622 self._bitfield_1.set(6usize, 1u8, val as u64)
37623 }
37624 }
37625 #[inline]
37626 pub unsafe fn UncorrectableSplitCompletion_raw(this: *const Self) -> ULONG {
37627 unsafe {
37628 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37629 ::core::ptr::addr_of!((*this)._bitfield_1),
37630 6usize,
37631 1u8,
37632 ) as u32)
37633 }
37634 }
37635 #[inline]
37636 pub unsafe fn set_UncorrectableSplitCompletion_raw(this: *mut Self, val: ULONG) {
37637 unsafe {
37638 let val: u32 = ::core::mem::transmute(val);
37639 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37640 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37641 6usize,
37642 1u8,
37643 val as u64,
37644 )
37645 }
37646 }
37647 #[inline]
37648 pub fn UncorrectableDataError(&self) -> ULONG {
37649 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
37650 }
37651 #[inline]
37652 pub fn set_UncorrectableDataError(&mut self, val: ULONG) {
37653 unsafe {
37654 let val: u32 = ::core::mem::transmute(val);
37655 self._bitfield_1.set(7usize, 1u8, val as u64)
37656 }
37657 }
37658 #[inline]
37659 pub unsafe fn UncorrectableDataError_raw(this: *const Self) -> ULONG {
37660 unsafe {
37661 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37662 ::core::ptr::addr_of!((*this)._bitfield_1),
37663 7usize,
37664 1u8,
37665 ) as u32)
37666 }
37667 }
37668 #[inline]
37669 pub unsafe fn set_UncorrectableDataError_raw(this: *mut Self, val: ULONG) {
37670 unsafe {
37671 let val: u32 = ::core::mem::transmute(val);
37672 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37673 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37674 7usize,
37675 1u8,
37676 val as u64,
37677 )
37678 }
37679 }
37680 #[inline]
37681 pub fn UncorrectableAttributeError(&self) -> ULONG {
37682 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
37683 }
37684 #[inline]
37685 pub fn set_UncorrectableAttributeError(&mut self, val: ULONG) {
37686 unsafe {
37687 let val: u32 = ::core::mem::transmute(val);
37688 self._bitfield_1.set(8usize, 1u8, val as u64)
37689 }
37690 }
37691 #[inline]
37692 pub unsafe fn UncorrectableAttributeError_raw(this: *const Self) -> ULONG {
37693 unsafe {
37694 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37695 ::core::ptr::addr_of!((*this)._bitfield_1),
37696 8usize,
37697 1u8,
37698 ) as u32)
37699 }
37700 }
37701 #[inline]
37702 pub unsafe fn set_UncorrectableAttributeError_raw(this: *mut Self, val: ULONG) {
37703 unsafe {
37704 let val: u32 = ::core::mem::transmute(val);
37705 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37706 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37707 8usize,
37708 1u8,
37709 val as u64,
37710 )
37711 }
37712 }
37713 #[inline]
37714 pub fn UncorrectableAddressError(&self) -> ULONG {
37715 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
37716 }
37717 #[inline]
37718 pub fn set_UncorrectableAddressError(&mut self, val: ULONG) {
37719 unsafe {
37720 let val: u32 = ::core::mem::transmute(val);
37721 self._bitfield_1.set(9usize, 1u8, val as u64)
37722 }
37723 }
37724 #[inline]
37725 pub unsafe fn UncorrectableAddressError_raw(this: *const Self) -> ULONG {
37726 unsafe {
37727 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37728 ::core::ptr::addr_of!((*this)._bitfield_1),
37729 9usize,
37730 1u8,
37731 ) as u32)
37732 }
37733 }
37734 #[inline]
37735 pub unsafe fn set_UncorrectableAddressError_raw(this: *mut Self, val: ULONG) {
37736 unsafe {
37737 let val: u32 = ::core::mem::transmute(val);
37738 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37739 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37740 9usize,
37741 1u8,
37742 val as u64,
37743 )
37744 }
37745 }
37746 #[inline]
37747 pub fn DelayedTransactionDiscardTimerExpired(&self) -> ULONG {
37748 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
37749 }
37750 #[inline]
37751 pub fn set_DelayedTransactionDiscardTimerExpired(&mut self, val: ULONG) {
37752 unsafe {
37753 let val: u32 = ::core::mem::transmute(val);
37754 self._bitfield_1.set(10usize, 1u8, val as u64)
37755 }
37756 }
37757 #[inline]
37758 pub unsafe fn DelayedTransactionDiscardTimerExpired_raw(this: *const Self) -> ULONG {
37759 unsafe {
37760 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37761 ::core::ptr::addr_of!((*this)._bitfield_1),
37762 10usize,
37763 1u8,
37764 ) as u32)
37765 }
37766 }
37767 #[inline]
37768 pub unsafe fn set_DelayedTransactionDiscardTimerExpired_raw(this: *mut Self, val: ULONG) {
37769 unsafe {
37770 let val: u32 = ::core::mem::transmute(val);
37771 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37772 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37773 10usize,
37774 1u8,
37775 val as u64,
37776 )
37777 }
37778 }
37779 #[inline]
37780 pub fn PERRAsserted(&self) -> ULONG {
37781 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
37782 }
37783 #[inline]
37784 pub fn set_PERRAsserted(&mut self, val: ULONG) {
37785 unsafe {
37786 let val: u32 = ::core::mem::transmute(val);
37787 self._bitfield_1.set(11usize, 1u8, val as u64)
37788 }
37789 }
37790 #[inline]
37791 pub unsafe fn PERRAsserted_raw(this: *const Self) -> ULONG {
37792 unsafe {
37793 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37794 ::core::ptr::addr_of!((*this)._bitfield_1),
37795 11usize,
37796 1u8,
37797 ) as u32)
37798 }
37799 }
37800 #[inline]
37801 pub unsafe fn set_PERRAsserted_raw(this: *mut Self, val: ULONG) {
37802 unsafe {
37803 let val: u32 = ::core::mem::transmute(val);
37804 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37805 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37806 11usize,
37807 1u8,
37808 val as u64,
37809 )
37810 }
37811 }
37812 #[inline]
37813 pub fn SERRAsserted(&self) -> ULONG {
37814 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
37815 }
37816 #[inline]
37817 pub fn set_SERRAsserted(&mut self, val: ULONG) {
37818 unsafe {
37819 let val: u32 = ::core::mem::transmute(val);
37820 self._bitfield_1.set(12usize, 1u8, val as u64)
37821 }
37822 }
37823 #[inline]
37824 pub unsafe fn SERRAsserted_raw(this: *const Self) -> ULONG {
37825 unsafe {
37826 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37827 ::core::ptr::addr_of!((*this)._bitfield_1),
37828 12usize,
37829 1u8,
37830 ) as u32)
37831 }
37832 }
37833 #[inline]
37834 pub unsafe fn set_SERRAsserted_raw(this: *mut Self, val: ULONG) {
37835 unsafe {
37836 let val: u32 = ::core::mem::transmute(val);
37837 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37838 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37839 12usize,
37840 1u8,
37841 val as u64,
37842 )
37843 }
37844 }
37845 #[inline]
37846 pub fn InternalBridgeError(&self) -> ULONG {
37847 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
37848 }
37849 #[inline]
37850 pub fn set_InternalBridgeError(&mut self, val: ULONG) {
37851 unsafe {
37852 let val: u32 = ::core::mem::transmute(val);
37853 self._bitfield_1.set(13usize, 1u8, val as u64)
37854 }
37855 }
37856 #[inline]
37857 pub unsafe fn InternalBridgeError_raw(this: *const Self) -> ULONG {
37858 unsafe {
37859 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37860 ::core::ptr::addr_of!((*this)._bitfield_1),
37861 13usize,
37862 1u8,
37863 ) as u32)
37864 }
37865 }
37866 #[inline]
37867 pub unsafe fn set_InternalBridgeError_raw(this: *mut Self, val: ULONG) {
37868 unsafe {
37869 let val: u32 = ::core::mem::transmute(val);
37870 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37871 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37872 13usize,
37873 1u8,
37874 val as u64,
37875 )
37876 }
37877 }
37878 #[inline]
37879 pub fn Reserved(&self) -> ULONG {
37880 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 18u8) as u32) }
37881 }
37882 #[inline]
37883 pub fn set_Reserved(&mut self, val: ULONG) {
37884 unsafe {
37885 let val: u32 = ::core::mem::transmute(val);
37886 self._bitfield_1.set(14usize, 18u8, val as u64)
37887 }
37888 }
37889 #[inline]
37890 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
37891 unsafe {
37892 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
37893 ::core::ptr::addr_of!((*this)._bitfield_1),
37894 14usize,
37895 18u8,
37896 ) as u32)
37897 }
37898 }
37899 #[inline]
37900 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
37901 unsafe {
37902 let val: u32 = ::core::mem::transmute(val);
37903 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
37904 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
37905 14usize,
37906 18u8,
37907 val as u64,
37908 )
37909 }
37910 }
37911 #[inline]
37912 pub fn new_bitfield_1(
37913 TargetAbortOnSplitCompletion: ULONG,
37914 MasterAbortOnSplitCompletion: ULONG,
37915 ReceivedTargetAbort: ULONG,
37916 ReceivedMasterAbort: ULONG,
37917 RsvdZ: ULONG,
37918 UnexpectedSplitCompletionError: ULONG,
37919 UncorrectableSplitCompletion: ULONG,
37920 UncorrectableDataError: ULONG,
37921 UncorrectableAttributeError: ULONG,
37922 UncorrectableAddressError: ULONG,
37923 DelayedTransactionDiscardTimerExpired: ULONG,
37924 PERRAsserted: ULONG,
37925 SERRAsserted: ULONG,
37926 InternalBridgeError: ULONG,
37927 Reserved: ULONG,
37928 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
37929 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
37930 __bindgen_bitfield_unit.set(0usize, 1u8, {
37931 let TargetAbortOnSplitCompletion: u32 =
37932 unsafe { ::core::mem::transmute(TargetAbortOnSplitCompletion) };
37933 TargetAbortOnSplitCompletion as u64
37934 });
37935 __bindgen_bitfield_unit.set(1usize, 1u8, {
37936 let MasterAbortOnSplitCompletion: u32 =
37937 unsafe { ::core::mem::transmute(MasterAbortOnSplitCompletion) };
37938 MasterAbortOnSplitCompletion as u64
37939 });
37940 __bindgen_bitfield_unit.set(2usize, 1u8, {
37941 let ReceivedTargetAbort: u32 = unsafe { ::core::mem::transmute(ReceivedTargetAbort) };
37942 ReceivedTargetAbort as u64
37943 });
37944 __bindgen_bitfield_unit.set(3usize, 1u8, {
37945 let ReceivedMasterAbort: u32 = unsafe { ::core::mem::transmute(ReceivedMasterAbort) };
37946 ReceivedMasterAbort as u64
37947 });
37948 __bindgen_bitfield_unit.set(4usize, 1u8, {
37949 let RsvdZ: u32 = unsafe { ::core::mem::transmute(RsvdZ) };
37950 RsvdZ as u64
37951 });
37952 __bindgen_bitfield_unit.set(5usize, 1u8, {
37953 let UnexpectedSplitCompletionError: u32 =
37954 unsafe { ::core::mem::transmute(UnexpectedSplitCompletionError) };
37955 UnexpectedSplitCompletionError as u64
37956 });
37957 __bindgen_bitfield_unit.set(6usize, 1u8, {
37958 let UncorrectableSplitCompletion: u32 =
37959 unsafe { ::core::mem::transmute(UncorrectableSplitCompletion) };
37960 UncorrectableSplitCompletion as u64
37961 });
37962 __bindgen_bitfield_unit.set(7usize, 1u8, {
37963 let UncorrectableDataError: u32 =
37964 unsafe { ::core::mem::transmute(UncorrectableDataError) };
37965 UncorrectableDataError as u64
37966 });
37967 __bindgen_bitfield_unit.set(8usize, 1u8, {
37968 let UncorrectableAttributeError: u32 =
37969 unsafe { ::core::mem::transmute(UncorrectableAttributeError) };
37970 UncorrectableAttributeError as u64
37971 });
37972 __bindgen_bitfield_unit.set(9usize, 1u8, {
37973 let UncorrectableAddressError: u32 =
37974 unsafe { ::core::mem::transmute(UncorrectableAddressError) };
37975 UncorrectableAddressError as u64
37976 });
37977 __bindgen_bitfield_unit.set(10usize, 1u8, {
37978 let DelayedTransactionDiscardTimerExpired: u32 =
37979 unsafe { ::core::mem::transmute(DelayedTransactionDiscardTimerExpired) };
37980 DelayedTransactionDiscardTimerExpired as u64
37981 });
37982 __bindgen_bitfield_unit.set(11usize, 1u8, {
37983 let PERRAsserted: u32 = unsafe { ::core::mem::transmute(PERRAsserted) };
37984 PERRAsserted as u64
37985 });
37986 __bindgen_bitfield_unit.set(12usize, 1u8, {
37987 let SERRAsserted: u32 = unsafe { ::core::mem::transmute(SERRAsserted) };
37988 SERRAsserted as u64
37989 });
37990 __bindgen_bitfield_unit.set(13usize, 1u8, {
37991 let InternalBridgeError: u32 = unsafe { ::core::mem::transmute(InternalBridgeError) };
37992 InternalBridgeError as u64
37993 });
37994 __bindgen_bitfield_unit.set(14usize, 18u8, {
37995 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
37996 Reserved as u64
37997 });
37998 __bindgen_bitfield_unit
37999 }
38000}
38001pub type PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK = _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK;
38002pub type PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK = *mut _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK;
38003#[repr(C)]
38004#[derive(Copy, Clone)]
38005pub union _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY {
38006 pub __bindgen_anon_1: _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1,
38007 pub AsULONG: ULONG,
38008}
38009#[repr(C)]
38010#[derive(Debug, Copy, Clone)]
38011pub struct _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1 {
38012 pub _bitfield_align_1: [u32; 0],
38013 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
38014}
38015impl _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY__bindgen_ty_1 {
38016 #[inline]
38017 pub fn TargetAbortOnSplitCompletion(&self) -> ULONG {
38018 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
38019 }
38020 #[inline]
38021 pub fn set_TargetAbortOnSplitCompletion(&mut self, val: ULONG) {
38022 unsafe {
38023 let val: u32 = ::core::mem::transmute(val);
38024 self._bitfield_1.set(0usize, 1u8, val as u64)
38025 }
38026 }
38027 #[inline]
38028 pub unsafe fn TargetAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
38029 unsafe {
38030 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38031 ::core::ptr::addr_of!((*this)._bitfield_1),
38032 0usize,
38033 1u8,
38034 ) as u32)
38035 }
38036 }
38037 #[inline]
38038 pub unsafe fn set_TargetAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
38039 unsafe {
38040 let val: u32 = ::core::mem::transmute(val);
38041 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38042 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38043 0usize,
38044 1u8,
38045 val as u64,
38046 )
38047 }
38048 }
38049 #[inline]
38050 pub fn MasterAbortOnSplitCompletion(&self) -> ULONG {
38051 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) }
38052 }
38053 #[inline]
38054 pub fn set_MasterAbortOnSplitCompletion(&mut self, val: ULONG) {
38055 unsafe {
38056 let val: u32 = ::core::mem::transmute(val);
38057 self._bitfield_1.set(1usize, 1u8, val as u64)
38058 }
38059 }
38060 #[inline]
38061 pub unsafe fn MasterAbortOnSplitCompletion_raw(this: *const Self) -> ULONG {
38062 unsafe {
38063 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38064 ::core::ptr::addr_of!((*this)._bitfield_1),
38065 1usize,
38066 1u8,
38067 ) as u32)
38068 }
38069 }
38070 #[inline]
38071 pub unsafe fn set_MasterAbortOnSplitCompletion_raw(this: *mut Self, val: ULONG) {
38072 unsafe {
38073 let val: u32 = ::core::mem::transmute(val);
38074 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38075 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38076 1usize,
38077 1u8,
38078 val as u64,
38079 )
38080 }
38081 }
38082 #[inline]
38083 pub fn ReceivedTargetAbort(&self) -> ULONG {
38084 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) }
38085 }
38086 #[inline]
38087 pub fn set_ReceivedTargetAbort(&mut self, val: ULONG) {
38088 unsafe {
38089 let val: u32 = ::core::mem::transmute(val);
38090 self._bitfield_1.set(2usize, 1u8, val as u64)
38091 }
38092 }
38093 #[inline]
38094 pub unsafe fn ReceivedTargetAbort_raw(this: *const Self) -> ULONG {
38095 unsafe {
38096 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38097 ::core::ptr::addr_of!((*this)._bitfield_1),
38098 2usize,
38099 1u8,
38100 ) as u32)
38101 }
38102 }
38103 #[inline]
38104 pub unsafe fn set_ReceivedTargetAbort_raw(this: *mut Self, val: ULONG) {
38105 unsafe {
38106 let val: u32 = ::core::mem::transmute(val);
38107 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38108 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38109 2usize,
38110 1u8,
38111 val as u64,
38112 )
38113 }
38114 }
38115 #[inline]
38116 pub fn ReceivedMasterAbort(&self) -> ULONG {
38117 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) }
38118 }
38119 #[inline]
38120 pub fn set_ReceivedMasterAbort(&mut self, val: ULONG) {
38121 unsafe {
38122 let val: u32 = ::core::mem::transmute(val);
38123 self._bitfield_1.set(3usize, 1u8, val as u64)
38124 }
38125 }
38126 #[inline]
38127 pub unsafe fn ReceivedMasterAbort_raw(this: *const Self) -> ULONG {
38128 unsafe {
38129 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38130 ::core::ptr::addr_of!((*this)._bitfield_1),
38131 3usize,
38132 1u8,
38133 ) as u32)
38134 }
38135 }
38136 #[inline]
38137 pub unsafe fn set_ReceivedMasterAbort_raw(this: *mut Self, val: ULONG) {
38138 unsafe {
38139 let val: u32 = ::core::mem::transmute(val);
38140 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38141 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38142 3usize,
38143 1u8,
38144 val as u64,
38145 )
38146 }
38147 }
38148 #[inline]
38149 pub fn RsvdZ(&self) -> ULONG {
38150 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) }
38151 }
38152 #[inline]
38153 pub fn set_RsvdZ(&mut self, val: ULONG) {
38154 unsafe {
38155 let val: u32 = ::core::mem::transmute(val);
38156 self._bitfield_1.set(4usize, 1u8, val as u64)
38157 }
38158 }
38159 #[inline]
38160 pub unsafe fn RsvdZ_raw(this: *const Self) -> ULONG {
38161 unsafe {
38162 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38163 ::core::ptr::addr_of!((*this)._bitfield_1),
38164 4usize,
38165 1u8,
38166 ) as u32)
38167 }
38168 }
38169 #[inline]
38170 pub unsafe fn set_RsvdZ_raw(this: *mut Self, val: ULONG) {
38171 unsafe {
38172 let val: u32 = ::core::mem::transmute(val);
38173 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38174 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38175 4usize,
38176 1u8,
38177 val as u64,
38178 )
38179 }
38180 }
38181 #[inline]
38182 pub fn UnexpectedSplitCompletionError(&self) -> ULONG {
38183 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u32) }
38184 }
38185 #[inline]
38186 pub fn set_UnexpectedSplitCompletionError(&mut self, val: ULONG) {
38187 unsafe {
38188 let val: u32 = ::core::mem::transmute(val);
38189 self._bitfield_1.set(5usize, 1u8, val as u64)
38190 }
38191 }
38192 #[inline]
38193 pub unsafe fn UnexpectedSplitCompletionError_raw(this: *const Self) -> ULONG {
38194 unsafe {
38195 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38196 ::core::ptr::addr_of!((*this)._bitfield_1),
38197 5usize,
38198 1u8,
38199 ) as u32)
38200 }
38201 }
38202 #[inline]
38203 pub unsafe fn set_UnexpectedSplitCompletionError_raw(this: *mut Self, val: ULONG) {
38204 unsafe {
38205 let val: u32 = ::core::mem::transmute(val);
38206 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38207 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38208 5usize,
38209 1u8,
38210 val as u64,
38211 )
38212 }
38213 }
38214 #[inline]
38215 pub fn UncorrectableSplitCompletion(&self) -> ULONG {
38216 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u32) }
38217 }
38218 #[inline]
38219 pub fn set_UncorrectableSplitCompletion(&mut self, val: ULONG) {
38220 unsafe {
38221 let val: u32 = ::core::mem::transmute(val);
38222 self._bitfield_1.set(6usize, 1u8, val as u64)
38223 }
38224 }
38225 #[inline]
38226 pub unsafe fn UncorrectableSplitCompletion_raw(this: *const Self) -> ULONG {
38227 unsafe {
38228 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38229 ::core::ptr::addr_of!((*this)._bitfield_1),
38230 6usize,
38231 1u8,
38232 ) as u32)
38233 }
38234 }
38235 #[inline]
38236 pub unsafe fn set_UncorrectableSplitCompletion_raw(this: *mut Self, val: ULONG) {
38237 unsafe {
38238 let val: u32 = ::core::mem::transmute(val);
38239 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38240 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38241 6usize,
38242 1u8,
38243 val as u64,
38244 )
38245 }
38246 }
38247 #[inline]
38248 pub fn UncorrectableDataError(&self) -> ULONG {
38249 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
38250 }
38251 #[inline]
38252 pub fn set_UncorrectableDataError(&mut self, val: ULONG) {
38253 unsafe {
38254 let val: u32 = ::core::mem::transmute(val);
38255 self._bitfield_1.set(7usize, 1u8, val as u64)
38256 }
38257 }
38258 #[inline]
38259 pub unsafe fn UncorrectableDataError_raw(this: *const Self) -> ULONG {
38260 unsafe {
38261 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38262 ::core::ptr::addr_of!((*this)._bitfield_1),
38263 7usize,
38264 1u8,
38265 ) as u32)
38266 }
38267 }
38268 #[inline]
38269 pub unsafe fn set_UncorrectableDataError_raw(this: *mut Self, val: ULONG) {
38270 unsafe {
38271 let val: u32 = ::core::mem::transmute(val);
38272 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38273 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38274 7usize,
38275 1u8,
38276 val as u64,
38277 )
38278 }
38279 }
38280 #[inline]
38281 pub fn UncorrectableAttributeError(&self) -> ULONG {
38282 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 1u8) as u32) }
38283 }
38284 #[inline]
38285 pub fn set_UncorrectableAttributeError(&mut self, val: ULONG) {
38286 unsafe {
38287 let val: u32 = ::core::mem::transmute(val);
38288 self._bitfield_1.set(8usize, 1u8, val as u64)
38289 }
38290 }
38291 #[inline]
38292 pub unsafe fn UncorrectableAttributeError_raw(this: *const Self) -> ULONG {
38293 unsafe {
38294 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38295 ::core::ptr::addr_of!((*this)._bitfield_1),
38296 8usize,
38297 1u8,
38298 ) as u32)
38299 }
38300 }
38301 #[inline]
38302 pub unsafe fn set_UncorrectableAttributeError_raw(this: *mut Self, val: ULONG) {
38303 unsafe {
38304 let val: u32 = ::core::mem::transmute(val);
38305 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38306 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38307 8usize,
38308 1u8,
38309 val as u64,
38310 )
38311 }
38312 }
38313 #[inline]
38314 pub fn UncorrectableAddressError(&self) -> ULONG {
38315 unsafe { ::core::mem::transmute(self._bitfield_1.get(9usize, 1u8) as u32) }
38316 }
38317 #[inline]
38318 pub fn set_UncorrectableAddressError(&mut self, val: ULONG) {
38319 unsafe {
38320 let val: u32 = ::core::mem::transmute(val);
38321 self._bitfield_1.set(9usize, 1u8, val as u64)
38322 }
38323 }
38324 #[inline]
38325 pub unsafe fn UncorrectableAddressError_raw(this: *const Self) -> ULONG {
38326 unsafe {
38327 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38328 ::core::ptr::addr_of!((*this)._bitfield_1),
38329 9usize,
38330 1u8,
38331 ) as u32)
38332 }
38333 }
38334 #[inline]
38335 pub unsafe fn set_UncorrectableAddressError_raw(this: *mut Self, val: ULONG) {
38336 unsafe {
38337 let val: u32 = ::core::mem::transmute(val);
38338 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38339 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38340 9usize,
38341 1u8,
38342 val as u64,
38343 )
38344 }
38345 }
38346 #[inline]
38347 pub fn DelayedTransactionDiscardTimerExpired(&self) -> ULONG {
38348 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 1u8) as u32) }
38349 }
38350 #[inline]
38351 pub fn set_DelayedTransactionDiscardTimerExpired(&mut self, val: ULONG) {
38352 unsafe {
38353 let val: u32 = ::core::mem::transmute(val);
38354 self._bitfield_1.set(10usize, 1u8, val as u64)
38355 }
38356 }
38357 #[inline]
38358 pub unsafe fn DelayedTransactionDiscardTimerExpired_raw(this: *const Self) -> ULONG {
38359 unsafe {
38360 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38361 ::core::ptr::addr_of!((*this)._bitfield_1),
38362 10usize,
38363 1u8,
38364 ) as u32)
38365 }
38366 }
38367 #[inline]
38368 pub unsafe fn set_DelayedTransactionDiscardTimerExpired_raw(this: *mut Self, val: ULONG) {
38369 unsafe {
38370 let val: u32 = ::core::mem::transmute(val);
38371 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38372 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38373 10usize,
38374 1u8,
38375 val as u64,
38376 )
38377 }
38378 }
38379 #[inline]
38380 pub fn PERRAsserted(&self) -> ULONG {
38381 unsafe { ::core::mem::transmute(self._bitfield_1.get(11usize, 1u8) as u32) }
38382 }
38383 #[inline]
38384 pub fn set_PERRAsserted(&mut self, val: ULONG) {
38385 unsafe {
38386 let val: u32 = ::core::mem::transmute(val);
38387 self._bitfield_1.set(11usize, 1u8, val as u64)
38388 }
38389 }
38390 #[inline]
38391 pub unsafe fn PERRAsserted_raw(this: *const Self) -> ULONG {
38392 unsafe {
38393 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38394 ::core::ptr::addr_of!((*this)._bitfield_1),
38395 11usize,
38396 1u8,
38397 ) as u32)
38398 }
38399 }
38400 #[inline]
38401 pub unsafe fn set_PERRAsserted_raw(this: *mut Self, val: ULONG) {
38402 unsafe {
38403 let val: u32 = ::core::mem::transmute(val);
38404 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38405 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38406 11usize,
38407 1u8,
38408 val as u64,
38409 )
38410 }
38411 }
38412 #[inline]
38413 pub fn SERRAsserted(&self) -> ULONG {
38414 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u32) }
38415 }
38416 #[inline]
38417 pub fn set_SERRAsserted(&mut self, val: ULONG) {
38418 unsafe {
38419 let val: u32 = ::core::mem::transmute(val);
38420 self._bitfield_1.set(12usize, 1u8, val as u64)
38421 }
38422 }
38423 #[inline]
38424 pub unsafe fn SERRAsserted_raw(this: *const Self) -> ULONG {
38425 unsafe {
38426 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38427 ::core::ptr::addr_of!((*this)._bitfield_1),
38428 12usize,
38429 1u8,
38430 ) as u32)
38431 }
38432 }
38433 #[inline]
38434 pub unsafe fn set_SERRAsserted_raw(this: *mut Self, val: ULONG) {
38435 unsafe {
38436 let val: u32 = ::core::mem::transmute(val);
38437 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38438 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38439 12usize,
38440 1u8,
38441 val as u64,
38442 )
38443 }
38444 }
38445 #[inline]
38446 pub fn InternalBridgeError(&self) -> ULONG {
38447 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 1u8) as u32) }
38448 }
38449 #[inline]
38450 pub fn set_InternalBridgeError(&mut self, val: ULONG) {
38451 unsafe {
38452 let val: u32 = ::core::mem::transmute(val);
38453 self._bitfield_1.set(13usize, 1u8, val as u64)
38454 }
38455 }
38456 #[inline]
38457 pub unsafe fn InternalBridgeError_raw(this: *const Self) -> ULONG {
38458 unsafe {
38459 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38460 ::core::ptr::addr_of!((*this)._bitfield_1),
38461 13usize,
38462 1u8,
38463 ) as u32)
38464 }
38465 }
38466 #[inline]
38467 pub unsafe fn set_InternalBridgeError_raw(this: *mut Self, val: ULONG) {
38468 unsafe {
38469 let val: u32 = ::core::mem::transmute(val);
38470 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38471 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38472 13usize,
38473 1u8,
38474 val as u64,
38475 )
38476 }
38477 }
38478 #[inline]
38479 pub fn Reserved(&self) -> ULONG {
38480 unsafe { ::core::mem::transmute(self._bitfield_1.get(14usize, 18u8) as u32) }
38481 }
38482 #[inline]
38483 pub fn set_Reserved(&mut self, val: ULONG) {
38484 unsafe {
38485 let val: u32 = ::core::mem::transmute(val);
38486 self._bitfield_1.set(14usize, 18u8, val as u64)
38487 }
38488 }
38489 #[inline]
38490 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
38491 unsafe {
38492 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38493 ::core::ptr::addr_of!((*this)._bitfield_1),
38494 14usize,
38495 18u8,
38496 ) as u32)
38497 }
38498 }
38499 #[inline]
38500 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
38501 unsafe {
38502 let val: u32 = ::core::mem::transmute(val);
38503 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38504 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38505 14usize,
38506 18u8,
38507 val as u64,
38508 )
38509 }
38510 }
38511 #[inline]
38512 pub fn new_bitfield_1(
38513 TargetAbortOnSplitCompletion: ULONG,
38514 MasterAbortOnSplitCompletion: ULONG,
38515 ReceivedTargetAbort: ULONG,
38516 ReceivedMasterAbort: ULONG,
38517 RsvdZ: ULONG,
38518 UnexpectedSplitCompletionError: ULONG,
38519 UncorrectableSplitCompletion: ULONG,
38520 UncorrectableDataError: ULONG,
38521 UncorrectableAttributeError: ULONG,
38522 UncorrectableAddressError: ULONG,
38523 DelayedTransactionDiscardTimerExpired: ULONG,
38524 PERRAsserted: ULONG,
38525 SERRAsserted: ULONG,
38526 InternalBridgeError: ULONG,
38527 Reserved: ULONG,
38528 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
38529 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
38530 __bindgen_bitfield_unit.set(0usize, 1u8, {
38531 let TargetAbortOnSplitCompletion: u32 =
38532 unsafe { ::core::mem::transmute(TargetAbortOnSplitCompletion) };
38533 TargetAbortOnSplitCompletion as u64
38534 });
38535 __bindgen_bitfield_unit.set(1usize, 1u8, {
38536 let MasterAbortOnSplitCompletion: u32 =
38537 unsafe { ::core::mem::transmute(MasterAbortOnSplitCompletion) };
38538 MasterAbortOnSplitCompletion as u64
38539 });
38540 __bindgen_bitfield_unit.set(2usize, 1u8, {
38541 let ReceivedTargetAbort: u32 = unsafe { ::core::mem::transmute(ReceivedTargetAbort) };
38542 ReceivedTargetAbort as u64
38543 });
38544 __bindgen_bitfield_unit.set(3usize, 1u8, {
38545 let ReceivedMasterAbort: u32 = unsafe { ::core::mem::transmute(ReceivedMasterAbort) };
38546 ReceivedMasterAbort as u64
38547 });
38548 __bindgen_bitfield_unit.set(4usize, 1u8, {
38549 let RsvdZ: u32 = unsafe { ::core::mem::transmute(RsvdZ) };
38550 RsvdZ as u64
38551 });
38552 __bindgen_bitfield_unit.set(5usize, 1u8, {
38553 let UnexpectedSplitCompletionError: u32 =
38554 unsafe { ::core::mem::transmute(UnexpectedSplitCompletionError) };
38555 UnexpectedSplitCompletionError as u64
38556 });
38557 __bindgen_bitfield_unit.set(6usize, 1u8, {
38558 let UncorrectableSplitCompletion: u32 =
38559 unsafe { ::core::mem::transmute(UncorrectableSplitCompletion) };
38560 UncorrectableSplitCompletion as u64
38561 });
38562 __bindgen_bitfield_unit.set(7usize, 1u8, {
38563 let UncorrectableDataError: u32 =
38564 unsafe { ::core::mem::transmute(UncorrectableDataError) };
38565 UncorrectableDataError as u64
38566 });
38567 __bindgen_bitfield_unit.set(8usize, 1u8, {
38568 let UncorrectableAttributeError: u32 =
38569 unsafe { ::core::mem::transmute(UncorrectableAttributeError) };
38570 UncorrectableAttributeError as u64
38571 });
38572 __bindgen_bitfield_unit.set(9usize, 1u8, {
38573 let UncorrectableAddressError: u32 =
38574 unsafe { ::core::mem::transmute(UncorrectableAddressError) };
38575 UncorrectableAddressError as u64
38576 });
38577 __bindgen_bitfield_unit.set(10usize, 1u8, {
38578 let DelayedTransactionDiscardTimerExpired: u32 =
38579 unsafe { ::core::mem::transmute(DelayedTransactionDiscardTimerExpired) };
38580 DelayedTransactionDiscardTimerExpired as u64
38581 });
38582 __bindgen_bitfield_unit.set(11usize, 1u8, {
38583 let PERRAsserted: u32 = unsafe { ::core::mem::transmute(PERRAsserted) };
38584 PERRAsserted as u64
38585 });
38586 __bindgen_bitfield_unit.set(12usize, 1u8, {
38587 let SERRAsserted: u32 = unsafe { ::core::mem::transmute(SERRAsserted) };
38588 SERRAsserted as u64
38589 });
38590 __bindgen_bitfield_unit.set(13usize, 1u8, {
38591 let InternalBridgeError: u32 = unsafe { ::core::mem::transmute(InternalBridgeError) };
38592 InternalBridgeError as u64
38593 });
38594 __bindgen_bitfield_unit.set(14usize, 18u8, {
38595 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
38596 Reserved as u64
38597 });
38598 __bindgen_bitfield_unit
38599 }
38600}
38601pub type PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY =
38602_PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY;
38603pub type PPCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY =
38604*mut _PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY;
38605#[repr(C)]
38606#[derive(Copy, Clone)]
38607pub union _PCI_EXPRESS_SEC_AER_CAPABILITIES {
38608 pub __bindgen_anon_1: _PCI_EXPRESS_SEC_AER_CAPABILITIES__bindgen_ty_1,
38609 pub AsULONG: ULONG,
38610}
38611#[repr(C)]
38612#[derive(Debug, Copy, Clone)]
38613pub struct _PCI_EXPRESS_SEC_AER_CAPABILITIES__bindgen_ty_1 {
38614 pub _bitfield_align_1: [u32; 0],
38615 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
38616}
38617impl _PCI_EXPRESS_SEC_AER_CAPABILITIES__bindgen_ty_1 {
38618 #[inline]
38619 pub fn SecondaryUncorrectableFirstErrorPtr(&self) -> ULONG {
38620 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 5u8) as u32) }
38621 }
38622 #[inline]
38623 pub fn set_SecondaryUncorrectableFirstErrorPtr(&mut self, val: ULONG) {
38624 unsafe {
38625 let val: u32 = ::core::mem::transmute(val);
38626 self._bitfield_1.set(0usize, 5u8, val as u64)
38627 }
38628 }
38629 #[inline]
38630 pub unsafe fn SecondaryUncorrectableFirstErrorPtr_raw(this: *const Self) -> ULONG {
38631 unsafe {
38632 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38633 ::core::ptr::addr_of!((*this)._bitfield_1),
38634 0usize,
38635 5u8,
38636 ) as u32)
38637 }
38638 }
38639 #[inline]
38640 pub unsafe fn set_SecondaryUncorrectableFirstErrorPtr_raw(this: *mut Self, val: ULONG) {
38641 unsafe {
38642 let val: u32 = ::core::mem::transmute(val);
38643 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38644 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38645 0usize,
38646 5u8,
38647 val as u64,
38648 )
38649 }
38650 }
38651 #[inline]
38652 pub fn Reserved(&self) -> ULONG {
38653 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) }
38654 }
38655 #[inline]
38656 pub fn set_Reserved(&mut self, val: ULONG) {
38657 unsafe {
38658 let val: u32 = ::core::mem::transmute(val);
38659 self._bitfield_1.set(5usize, 27u8, val as u64)
38660 }
38661 }
38662 #[inline]
38663 pub unsafe fn Reserved_raw(this: *const Self) -> ULONG {
38664 unsafe {
38665 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
38666 ::core::ptr::addr_of!((*this)._bitfield_1),
38667 5usize,
38668 27u8,
38669 ) as u32)
38670 }
38671 }
38672 #[inline]
38673 pub unsafe fn set_Reserved_raw(this: *mut Self, val: ULONG) {
38674 unsafe {
38675 let val: u32 = ::core::mem::transmute(val);
38676 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
38677 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38678 5usize,
38679 27u8,
38680 val as u64,
38681 )
38682 }
38683 }
38684 #[inline]
38685 pub fn new_bitfield_1(
38686 SecondaryUncorrectableFirstErrorPtr: ULONG,
38687 Reserved: ULONG,
38688 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
38689 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
38690 __bindgen_bitfield_unit.set(0usize, 5u8, {
38691 let SecondaryUncorrectableFirstErrorPtr: u32 =
38692 unsafe { ::core::mem::transmute(SecondaryUncorrectableFirstErrorPtr) };
38693 SecondaryUncorrectableFirstErrorPtr as u64
38694 });
38695 __bindgen_bitfield_unit.set(5usize, 27u8, {
38696 let Reserved: u32 = unsafe { ::core::mem::transmute(Reserved) };
38697 Reserved as u64
38698 });
38699 __bindgen_bitfield_unit
38700 }
38701}
38702pub type PCI_EXPRESS_SEC_AER_CAPABILITIES = _PCI_EXPRESS_SEC_AER_CAPABILITIES;
38703pub type PPCI_EXPRESS_SEC_AER_CAPABILITIES = *mut _PCI_EXPRESS_SEC_AER_CAPABILITIES;
38704#[repr(C)]
38705#[derive(Copy, Clone)]
38706pub struct _PCI_EXPRESS_AER_CAPABILITY {
38707 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
38708 pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS,
38709 pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK,
38710 pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY,
38711 pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS,
38712 pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK,
38713 pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES,
38714 pub HeaderLog: [ULONG; 4usize],
38715 pub SecUncorrectableErrorStatus: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS,
38716 pub SecUncorrectableErrorMask: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK,
38717 pub SecUncorrectableErrorSeverity: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY,
38718 pub SecCapabilitiesAndControl: PCI_EXPRESS_SEC_AER_CAPABILITIES,
38719 pub SecHeaderLog: [ULONG; 4usize],
38720}
38721pub type PCI_EXPRESS_AER_CAPABILITY = _PCI_EXPRESS_AER_CAPABILITY;
38722pub type PPCI_EXPRESS_AER_CAPABILITY = *mut _PCI_EXPRESS_AER_CAPABILITY;
38723#[repr(C)]
38724#[derive(Copy, Clone)]
38725pub struct _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY {
38726 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
38727 pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS,
38728 pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK,
38729 pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY,
38730 pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS,
38731 pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK,
38732 pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES,
38733 pub HeaderLog: [ULONG; 4usize],
38734 pub RootErrorCommand: PCI_EXPRESS_ROOT_ERROR_COMMAND,
38735 pub RootErrorStatus: PCI_EXPRESS_ROOT_ERROR_STATUS,
38736 pub ErrorSourceId: PCI_EXPRESS_ERROR_SOURCE_ID,
38737}
38738pub type PCI_EXPRESS_ROOTPORT_AER_CAPABILITY = _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY;
38739pub type PPCI_EXPRESS_ROOTPORT_AER_CAPABILITY = *mut _PCI_EXPRESS_ROOTPORT_AER_CAPABILITY;
38740#[repr(C)]
38741#[derive(Copy, Clone)]
38742pub struct _PCI_EXPRESS_BRIDGE_AER_CAPABILITY {
38743 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
38744 pub UncorrectableErrorStatus: PCI_EXPRESS_UNCORRECTABLE_ERROR_STATUS,
38745 pub UncorrectableErrorMask: PCI_EXPRESS_UNCORRECTABLE_ERROR_MASK,
38746 pub UncorrectableErrorSeverity: PCI_EXPRESS_UNCORRECTABLE_ERROR_SEVERITY,
38747 pub CorrectableErrorStatus: PCI_EXPRESS_CORRECTABLE_ERROR_STATUS,
38748 pub CorrectableErrorMask: PCI_EXPRESS_CORRECTABLE_ERROR_MASK,
38749 pub CapabilitiesAndControl: PCI_EXPRESS_AER_CAPABILITIES,
38750 pub HeaderLog: [ULONG; 4usize],
38751 pub SecUncorrectableErrorStatus: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_STATUS,
38752 pub SecUncorrectableErrorMask: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_MASK,
38753 pub SecUncorrectableErrorSeverity: PCI_EXPRESS_SEC_UNCORRECTABLE_ERROR_SEVERITY,
38754 pub SecCapabilitiesAndControl: PCI_EXPRESS_SEC_AER_CAPABILITIES,
38755 pub SecHeaderLog: [ULONG; 4usize],
38756}
38757pub type PCI_EXPRESS_BRIDGE_AER_CAPABILITY = _PCI_EXPRESS_BRIDGE_AER_CAPABILITY;
38758pub type PPCI_EXPRESS_BRIDGE_AER_CAPABILITY = *mut _PCI_EXPRESS_BRIDGE_AER_CAPABILITY;
38759#[repr(C)]
38760#[derive(Copy, Clone)]
38761pub union _PCI_EXPRESS_ACS_CAPABILITY_REGISTER {
38762 pub __bindgen_anon_1: _PCI_EXPRESS_ACS_CAPABILITY_REGISTER__bindgen_ty_1,
38763 pub AsUSHORT: USHORT,
38764}
38765#[repr(C)]
38766#[repr(align(2))]
38767#[derive(Debug, Copy, Clone)]
38768pub struct _PCI_EXPRESS_ACS_CAPABILITY_REGISTER__bindgen_ty_1 {
38769 pub _bitfield_align_1: [u8; 0],
38770 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
38771}
38772impl _PCI_EXPRESS_ACS_CAPABILITY_REGISTER__bindgen_ty_1 {
38773 #[inline]
38774 pub fn SourceValidation(&self) -> USHORT {
38775 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
38776 }
38777 #[inline]
38778 pub fn set_SourceValidation(&mut self, val: USHORT) {
38779 unsafe {
38780 let val: u16 = ::core::mem::transmute(val);
38781 self._bitfield_1.set(0usize, 1u8, val as u64)
38782 }
38783 }
38784 #[inline]
38785 pub unsafe fn SourceValidation_raw(this: *const Self) -> USHORT {
38786 unsafe {
38787 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38788 ::core::ptr::addr_of!((*this)._bitfield_1),
38789 0usize,
38790 1u8,
38791 ) as u16)
38792 }
38793 }
38794 #[inline]
38795 pub unsafe fn set_SourceValidation_raw(this: *mut Self, val: USHORT) {
38796 unsafe {
38797 let val: u16 = ::core::mem::transmute(val);
38798 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38799 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38800 0usize,
38801 1u8,
38802 val as u64,
38803 )
38804 }
38805 }
38806 #[inline]
38807 pub fn TranslationBlocking(&self) -> USHORT {
38808 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
38809 }
38810 #[inline]
38811 pub fn set_TranslationBlocking(&mut self, val: USHORT) {
38812 unsafe {
38813 let val: u16 = ::core::mem::transmute(val);
38814 self._bitfield_1.set(1usize, 1u8, val as u64)
38815 }
38816 }
38817 #[inline]
38818 pub unsafe fn TranslationBlocking_raw(this: *const Self) -> USHORT {
38819 unsafe {
38820 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38821 ::core::ptr::addr_of!((*this)._bitfield_1),
38822 1usize,
38823 1u8,
38824 ) as u16)
38825 }
38826 }
38827 #[inline]
38828 pub unsafe fn set_TranslationBlocking_raw(this: *mut Self, val: USHORT) {
38829 unsafe {
38830 let val: u16 = ::core::mem::transmute(val);
38831 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38832 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38833 1usize,
38834 1u8,
38835 val as u64,
38836 )
38837 }
38838 }
38839 #[inline]
38840 pub fn RequestRedirect(&self) -> USHORT {
38841 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
38842 }
38843 #[inline]
38844 pub fn set_RequestRedirect(&mut self, val: USHORT) {
38845 unsafe {
38846 let val: u16 = ::core::mem::transmute(val);
38847 self._bitfield_1.set(2usize, 1u8, val as u64)
38848 }
38849 }
38850 #[inline]
38851 pub unsafe fn RequestRedirect_raw(this: *const Self) -> USHORT {
38852 unsafe {
38853 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38854 ::core::ptr::addr_of!((*this)._bitfield_1),
38855 2usize,
38856 1u8,
38857 ) as u16)
38858 }
38859 }
38860 #[inline]
38861 pub unsafe fn set_RequestRedirect_raw(this: *mut Self, val: USHORT) {
38862 unsafe {
38863 let val: u16 = ::core::mem::transmute(val);
38864 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38865 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38866 2usize,
38867 1u8,
38868 val as u64,
38869 )
38870 }
38871 }
38872 #[inline]
38873 pub fn CompletionRedirect(&self) -> USHORT {
38874 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
38875 }
38876 #[inline]
38877 pub fn set_CompletionRedirect(&mut self, val: USHORT) {
38878 unsafe {
38879 let val: u16 = ::core::mem::transmute(val);
38880 self._bitfield_1.set(3usize, 1u8, val as u64)
38881 }
38882 }
38883 #[inline]
38884 pub unsafe fn CompletionRedirect_raw(this: *const Self) -> USHORT {
38885 unsafe {
38886 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38887 ::core::ptr::addr_of!((*this)._bitfield_1),
38888 3usize,
38889 1u8,
38890 ) as u16)
38891 }
38892 }
38893 #[inline]
38894 pub unsafe fn set_CompletionRedirect_raw(this: *mut Self, val: USHORT) {
38895 unsafe {
38896 let val: u16 = ::core::mem::transmute(val);
38897 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38898 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38899 3usize,
38900 1u8,
38901 val as u64,
38902 )
38903 }
38904 }
38905 #[inline]
38906 pub fn UpstreamForwarding(&self) -> USHORT {
38907 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
38908 }
38909 #[inline]
38910 pub fn set_UpstreamForwarding(&mut self, val: USHORT) {
38911 unsafe {
38912 let val: u16 = ::core::mem::transmute(val);
38913 self._bitfield_1.set(4usize, 1u8, val as u64)
38914 }
38915 }
38916 #[inline]
38917 pub unsafe fn UpstreamForwarding_raw(this: *const Self) -> USHORT {
38918 unsafe {
38919 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38920 ::core::ptr::addr_of!((*this)._bitfield_1),
38921 4usize,
38922 1u8,
38923 ) as u16)
38924 }
38925 }
38926 #[inline]
38927 pub unsafe fn set_UpstreamForwarding_raw(this: *mut Self, val: USHORT) {
38928 unsafe {
38929 let val: u16 = ::core::mem::transmute(val);
38930 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38931 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38932 4usize,
38933 1u8,
38934 val as u64,
38935 )
38936 }
38937 }
38938 #[inline]
38939 pub fn EgressControl(&self) -> USHORT {
38940 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
38941 }
38942 #[inline]
38943 pub fn set_EgressControl(&mut self, val: USHORT) {
38944 unsafe {
38945 let val: u16 = ::core::mem::transmute(val);
38946 self._bitfield_1.set(5usize, 1u8, val as u64)
38947 }
38948 }
38949 #[inline]
38950 pub unsafe fn EgressControl_raw(this: *const Self) -> USHORT {
38951 unsafe {
38952 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38953 ::core::ptr::addr_of!((*this)._bitfield_1),
38954 5usize,
38955 1u8,
38956 ) as u16)
38957 }
38958 }
38959 #[inline]
38960 pub unsafe fn set_EgressControl_raw(this: *mut Self, val: USHORT) {
38961 unsafe {
38962 let val: u16 = ::core::mem::transmute(val);
38963 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38964 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38965 5usize,
38966 1u8,
38967 val as u64,
38968 )
38969 }
38970 }
38971 #[inline]
38972 pub fn DirectTranslation(&self) -> USHORT {
38973 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
38974 }
38975 #[inline]
38976 pub fn set_DirectTranslation(&mut self, val: USHORT) {
38977 unsafe {
38978 let val: u16 = ::core::mem::transmute(val);
38979 self._bitfield_1.set(6usize, 1u8, val as u64)
38980 }
38981 }
38982 #[inline]
38983 pub unsafe fn DirectTranslation_raw(this: *const Self) -> USHORT {
38984 unsafe {
38985 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
38986 ::core::ptr::addr_of!((*this)._bitfield_1),
38987 6usize,
38988 1u8,
38989 ) as u16)
38990 }
38991 }
38992 #[inline]
38993 pub unsafe fn set_DirectTranslation_raw(this: *mut Self, val: USHORT) {
38994 unsafe {
38995 let val: u16 = ::core::mem::transmute(val);
38996 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
38997 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
38998 6usize,
38999 1u8,
39000 val as u64,
39001 )
39002 }
39003 }
39004 #[inline]
39005 pub fn EnhancedCapability(&self) -> USHORT {
39006 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) }
39007 }
39008 #[inline]
39009 pub fn set_EnhancedCapability(&mut self, val: USHORT) {
39010 unsafe {
39011 let val: u16 = ::core::mem::transmute(val);
39012 self._bitfield_1.set(7usize, 1u8, val as u64)
39013 }
39014 }
39015 #[inline]
39016 pub unsafe fn EnhancedCapability_raw(this: *const Self) -> USHORT {
39017 unsafe {
39018 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39019 ::core::ptr::addr_of!((*this)._bitfield_1),
39020 7usize,
39021 1u8,
39022 ) as u16)
39023 }
39024 }
39025 #[inline]
39026 pub unsafe fn set_EnhancedCapability_raw(this: *mut Self, val: USHORT) {
39027 unsafe {
39028 let val: u16 = ::core::mem::transmute(val);
39029 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39030 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39031 7usize,
39032 1u8,
39033 val as u64,
39034 )
39035 }
39036 }
39037 #[inline]
39038 pub fn EgressControlVectorSize(&self) -> USHORT {
39039 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u16) }
39040 }
39041 #[inline]
39042 pub fn set_EgressControlVectorSize(&mut self, val: USHORT) {
39043 unsafe {
39044 let val: u16 = ::core::mem::transmute(val);
39045 self._bitfield_1.set(8usize, 8u8, val as u64)
39046 }
39047 }
39048 #[inline]
39049 pub unsafe fn EgressControlVectorSize_raw(this: *const Self) -> USHORT {
39050 unsafe {
39051 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39052 ::core::ptr::addr_of!((*this)._bitfield_1),
39053 8usize,
39054 8u8,
39055 ) as u16)
39056 }
39057 }
39058 #[inline]
39059 pub unsafe fn set_EgressControlVectorSize_raw(this: *mut Self, val: USHORT) {
39060 unsafe {
39061 let val: u16 = ::core::mem::transmute(val);
39062 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39063 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39064 8usize,
39065 8u8,
39066 val as u64,
39067 )
39068 }
39069 }
39070 #[inline]
39071 pub fn new_bitfield_1(
39072 SourceValidation: USHORT,
39073 TranslationBlocking: USHORT,
39074 RequestRedirect: USHORT,
39075 CompletionRedirect: USHORT,
39076 UpstreamForwarding: USHORT,
39077 EgressControl: USHORT,
39078 DirectTranslation: USHORT,
39079 EnhancedCapability: USHORT,
39080 EgressControlVectorSize: USHORT,
39081 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
39082 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
39083 __bindgen_bitfield_unit.set(0usize, 1u8, {
39084 let SourceValidation: u16 = unsafe { ::core::mem::transmute(SourceValidation) };
39085 SourceValidation as u64
39086 });
39087 __bindgen_bitfield_unit.set(1usize, 1u8, {
39088 let TranslationBlocking: u16 = unsafe { ::core::mem::transmute(TranslationBlocking) };
39089 TranslationBlocking as u64
39090 });
39091 __bindgen_bitfield_unit.set(2usize, 1u8, {
39092 let RequestRedirect: u16 = unsafe { ::core::mem::transmute(RequestRedirect) };
39093 RequestRedirect as u64
39094 });
39095 __bindgen_bitfield_unit.set(3usize, 1u8, {
39096 let CompletionRedirect: u16 = unsafe { ::core::mem::transmute(CompletionRedirect) };
39097 CompletionRedirect as u64
39098 });
39099 __bindgen_bitfield_unit.set(4usize, 1u8, {
39100 let UpstreamForwarding: u16 = unsafe { ::core::mem::transmute(UpstreamForwarding) };
39101 UpstreamForwarding as u64
39102 });
39103 __bindgen_bitfield_unit.set(5usize, 1u8, {
39104 let EgressControl: u16 = unsafe { ::core::mem::transmute(EgressControl) };
39105 EgressControl as u64
39106 });
39107 __bindgen_bitfield_unit.set(6usize, 1u8, {
39108 let DirectTranslation: u16 = unsafe { ::core::mem::transmute(DirectTranslation) };
39109 DirectTranslation as u64
39110 });
39111 __bindgen_bitfield_unit.set(7usize, 1u8, {
39112 let EnhancedCapability: u16 = unsafe { ::core::mem::transmute(EnhancedCapability) };
39113 EnhancedCapability as u64
39114 });
39115 __bindgen_bitfield_unit.set(8usize, 8u8, {
39116 let EgressControlVectorSize: u16 =
39117 unsafe { ::core::mem::transmute(EgressControlVectorSize) };
39118 EgressControlVectorSize as u64
39119 });
39120 __bindgen_bitfield_unit
39121 }
39122}
39123pub type PCI_EXPRESS_ACS_CAPABILITY_REGISTER = _PCI_EXPRESS_ACS_CAPABILITY_REGISTER;
39124pub type PPCI_EXPRESS_ACS_CAPABILITY_REGISTER = *mut _PCI_EXPRESS_ACS_CAPABILITY_REGISTER;
39125#[repr(C)]
39126#[derive(Copy, Clone)]
39127pub union _PCI_EXPRESS_ACS_CONTROL {
39128 pub __bindgen_anon_1: _PCI_EXPRESS_ACS_CONTROL__bindgen_ty_1,
39129 pub AsUSHORT: USHORT,
39130}
39131#[repr(C)]
39132#[repr(align(2))]
39133#[derive(Debug, Copy, Clone)]
39134pub struct _PCI_EXPRESS_ACS_CONTROL__bindgen_ty_1 {
39135 pub _bitfield_align_1: [u8; 0],
39136 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
39137}
39138impl _PCI_EXPRESS_ACS_CONTROL__bindgen_ty_1 {
39139 #[inline]
39140 pub fn SourceValidation(&self) -> USHORT {
39141 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
39142 }
39143 #[inline]
39144 pub fn set_SourceValidation(&mut self, val: USHORT) {
39145 unsafe {
39146 let val: u16 = ::core::mem::transmute(val);
39147 self._bitfield_1.set(0usize, 1u8, val as u64)
39148 }
39149 }
39150 #[inline]
39151 pub unsafe fn SourceValidation_raw(this: *const Self) -> USHORT {
39152 unsafe {
39153 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39154 ::core::ptr::addr_of!((*this)._bitfield_1),
39155 0usize,
39156 1u8,
39157 ) as u16)
39158 }
39159 }
39160 #[inline]
39161 pub unsafe fn set_SourceValidation_raw(this: *mut Self, val: USHORT) {
39162 unsafe {
39163 let val: u16 = ::core::mem::transmute(val);
39164 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39165 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39166 0usize,
39167 1u8,
39168 val as u64,
39169 )
39170 }
39171 }
39172 #[inline]
39173 pub fn TranslationBlocking(&self) -> USHORT {
39174 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
39175 }
39176 #[inline]
39177 pub fn set_TranslationBlocking(&mut self, val: USHORT) {
39178 unsafe {
39179 let val: u16 = ::core::mem::transmute(val);
39180 self._bitfield_1.set(1usize, 1u8, val as u64)
39181 }
39182 }
39183 #[inline]
39184 pub unsafe fn TranslationBlocking_raw(this: *const Self) -> USHORT {
39185 unsafe {
39186 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39187 ::core::ptr::addr_of!((*this)._bitfield_1),
39188 1usize,
39189 1u8,
39190 ) as u16)
39191 }
39192 }
39193 #[inline]
39194 pub unsafe fn set_TranslationBlocking_raw(this: *mut Self, val: USHORT) {
39195 unsafe {
39196 let val: u16 = ::core::mem::transmute(val);
39197 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39198 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39199 1usize,
39200 1u8,
39201 val as u64,
39202 )
39203 }
39204 }
39205 #[inline]
39206 pub fn RequestRedirect(&self) -> USHORT {
39207 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
39208 }
39209 #[inline]
39210 pub fn set_RequestRedirect(&mut self, val: USHORT) {
39211 unsafe {
39212 let val: u16 = ::core::mem::transmute(val);
39213 self._bitfield_1.set(2usize, 1u8, val as u64)
39214 }
39215 }
39216 #[inline]
39217 pub unsafe fn RequestRedirect_raw(this: *const Self) -> USHORT {
39218 unsafe {
39219 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39220 ::core::ptr::addr_of!((*this)._bitfield_1),
39221 2usize,
39222 1u8,
39223 ) as u16)
39224 }
39225 }
39226 #[inline]
39227 pub unsafe fn set_RequestRedirect_raw(this: *mut Self, val: USHORT) {
39228 unsafe {
39229 let val: u16 = ::core::mem::transmute(val);
39230 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39231 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39232 2usize,
39233 1u8,
39234 val as u64,
39235 )
39236 }
39237 }
39238 #[inline]
39239 pub fn CompletionRedirect(&self) -> USHORT {
39240 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
39241 }
39242 #[inline]
39243 pub fn set_CompletionRedirect(&mut self, val: USHORT) {
39244 unsafe {
39245 let val: u16 = ::core::mem::transmute(val);
39246 self._bitfield_1.set(3usize, 1u8, val as u64)
39247 }
39248 }
39249 #[inline]
39250 pub unsafe fn CompletionRedirect_raw(this: *const Self) -> USHORT {
39251 unsafe {
39252 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39253 ::core::ptr::addr_of!((*this)._bitfield_1),
39254 3usize,
39255 1u8,
39256 ) as u16)
39257 }
39258 }
39259 #[inline]
39260 pub unsafe fn set_CompletionRedirect_raw(this: *mut Self, val: USHORT) {
39261 unsafe {
39262 let val: u16 = ::core::mem::transmute(val);
39263 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39264 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39265 3usize,
39266 1u8,
39267 val as u64,
39268 )
39269 }
39270 }
39271 #[inline]
39272 pub fn UpstreamForwarding(&self) -> USHORT {
39273 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
39274 }
39275 #[inline]
39276 pub fn set_UpstreamForwarding(&mut self, val: USHORT) {
39277 unsafe {
39278 let val: u16 = ::core::mem::transmute(val);
39279 self._bitfield_1.set(4usize, 1u8, val as u64)
39280 }
39281 }
39282 #[inline]
39283 pub unsafe fn UpstreamForwarding_raw(this: *const Self) -> USHORT {
39284 unsafe {
39285 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39286 ::core::ptr::addr_of!((*this)._bitfield_1),
39287 4usize,
39288 1u8,
39289 ) as u16)
39290 }
39291 }
39292 #[inline]
39293 pub unsafe fn set_UpstreamForwarding_raw(this: *mut Self, val: USHORT) {
39294 unsafe {
39295 let val: u16 = ::core::mem::transmute(val);
39296 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39297 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39298 4usize,
39299 1u8,
39300 val as u64,
39301 )
39302 }
39303 }
39304 #[inline]
39305 pub fn EgressControl(&self) -> USHORT {
39306 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 1u8) as u16) }
39307 }
39308 #[inline]
39309 pub fn set_EgressControl(&mut self, val: USHORT) {
39310 unsafe {
39311 let val: u16 = ::core::mem::transmute(val);
39312 self._bitfield_1.set(5usize, 1u8, val as u64)
39313 }
39314 }
39315 #[inline]
39316 pub unsafe fn EgressControl_raw(this: *const Self) -> USHORT {
39317 unsafe {
39318 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39319 ::core::ptr::addr_of!((*this)._bitfield_1),
39320 5usize,
39321 1u8,
39322 ) as u16)
39323 }
39324 }
39325 #[inline]
39326 pub unsafe fn set_EgressControl_raw(this: *mut Self, val: USHORT) {
39327 unsafe {
39328 let val: u16 = ::core::mem::transmute(val);
39329 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39330 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39331 5usize,
39332 1u8,
39333 val as u64,
39334 )
39335 }
39336 }
39337 #[inline]
39338 pub fn DirectTranslation(&self) -> USHORT {
39339 unsafe { ::core::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u16) }
39340 }
39341 #[inline]
39342 pub fn set_DirectTranslation(&mut self, val: USHORT) {
39343 unsafe {
39344 let val: u16 = ::core::mem::transmute(val);
39345 self._bitfield_1.set(6usize, 1u8, val as u64)
39346 }
39347 }
39348 #[inline]
39349 pub unsafe fn DirectTranslation_raw(this: *const Self) -> USHORT {
39350 unsafe {
39351 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39352 ::core::ptr::addr_of!((*this)._bitfield_1),
39353 6usize,
39354 1u8,
39355 ) as u16)
39356 }
39357 }
39358 #[inline]
39359 pub unsafe fn set_DirectTranslation_raw(this: *mut Self, val: USHORT) {
39360 unsafe {
39361 let val: u16 = ::core::mem::transmute(val);
39362 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39363 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39364 6usize,
39365 1u8,
39366 val as u64,
39367 )
39368 }
39369 }
39370 #[inline]
39371 pub fn IoBlocking(&self) -> USHORT {
39372 unsafe { ::core::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u16) }
39373 }
39374 #[inline]
39375 pub fn set_IoBlocking(&mut self, val: USHORT) {
39376 unsafe {
39377 let val: u16 = ::core::mem::transmute(val);
39378 self._bitfield_1.set(7usize, 1u8, val as u64)
39379 }
39380 }
39381 #[inline]
39382 pub unsafe fn IoBlocking_raw(this: *const Self) -> USHORT {
39383 unsafe {
39384 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39385 ::core::ptr::addr_of!((*this)._bitfield_1),
39386 7usize,
39387 1u8,
39388 ) as u16)
39389 }
39390 }
39391 #[inline]
39392 pub unsafe fn set_IoBlocking_raw(this: *mut Self, val: USHORT) {
39393 unsafe {
39394 let val: u16 = ::core::mem::transmute(val);
39395 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39396 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39397 7usize,
39398 1u8,
39399 val as u64,
39400 )
39401 }
39402 }
39403 #[inline]
39404 pub fn DspMemoryControl(&self) -> USHORT {
39405 unsafe { ::core::mem::transmute(self._bitfield_1.get(8usize, 2u8) as u16) }
39406 }
39407 #[inline]
39408 pub fn set_DspMemoryControl(&mut self, val: USHORT) {
39409 unsafe {
39410 let val: u16 = ::core::mem::transmute(val);
39411 self._bitfield_1.set(8usize, 2u8, val as u64)
39412 }
39413 }
39414 #[inline]
39415 pub unsafe fn DspMemoryControl_raw(this: *const Self) -> USHORT {
39416 unsafe {
39417 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39418 ::core::ptr::addr_of!((*this)._bitfield_1),
39419 8usize,
39420 2u8,
39421 ) as u16)
39422 }
39423 }
39424 #[inline]
39425 pub unsafe fn set_DspMemoryControl_raw(this: *mut Self, val: USHORT) {
39426 unsafe {
39427 let val: u16 = ::core::mem::transmute(val);
39428 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39429 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39430 8usize,
39431 2u8,
39432 val as u64,
39433 )
39434 }
39435 }
39436 #[inline]
39437 pub fn UspMemoryControl(&self) -> USHORT {
39438 unsafe { ::core::mem::transmute(self._bitfield_1.get(10usize, 2u8) as u16) }
39439 }
39440 #[inline]
39441 pub fn set_UspMemoryControl(&mut self, val: USHORT) {
39442 unsafe {
39443 let val: u16 = ::core::mem::transmute(val);
39444 self._bitfield_1.set(10usize, 2u8, val as u64)
39445 }
39446 }
39447 #[inline]
39448 pub unsafe fn UspMemoryControl_raw(this: *const Self) -> USHORT {
39449 unsafe {
39450 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39451 ::core::ptr::addr_of!((*this)._bitfield_1),
39452 10usize,
39453 2u8,
39454 ) as u16)
39455 }
39456 }
39457 #[inline]
39458 pub unsafe fn set_UspMemoryControl_raw(this: *mut Self, val: USHORT) {
39459 unsafe {
39460 let val: u16 = ::core::mem::transmute(val);
39461 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39462 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39463 10usize,
39464 2u8,
39465 val as u64,
39466 )
39467 }
39468 }
39469 #[inline]
39470 pub fn UnclaimedRedirect(&self) -> USHORT {
39471 unsafe { ::core::mem::transmute(self._bitfield_1.get(12usize, 1u8) as u16) }
39472 }
39473 #[inline]
39474 pub fn set_UnclaimedRedirect(&mut self, val: USHORT) {
39475 unsafe {
39476 let val: u16 = ::core::mem::transmute(val);
39477 self._bitfield_1.set(12usize, 1u8, val as u64)
39478 }
39479 }
39480 #[inline]
39481 pub unsafe fn UnclaimedRedirect_raw(this: *const Self) -> USHORT {
39482 unsafe {
39483 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39484 ::core::ptr::addr_of!((*this)._bitfield_1),
39485 12usize,
39486 1u8,
39487 ) as u16)
39488 }
39489 }
39490 #[inline]
39491 pub unsafe fn set_UnclaimedRedirect_raw(this: *mut Self, val: USHORT) {
39492 unsafe {
39493 let val: u16 = ::core::mem::transmute(val);
39494 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39495 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39496 12usize,
39497 1u8,
39498 val as u64,
39499 )
39500 }
39501 }
39502 #[inline]
39503 pub fn Reserved(&self) -> USHORT {
39504 unsafe { ::core::mem::transmute(self._bitfield_1.get(13usize, 3u8) as u16) }
39505 }
39506 #[inline]
39507 pub fn set_Reserved(&mut self, val: USHORT) {
39508 unsafe {
39509 let val: u16 = ::core::mem::transmute(val);
39510 self._bitfield_1.set(13usize, 3u8, val as u64)
39511 }
39512 }
39513 #[inline]
39514 pub unsafe fn Reserved_raw(this: *const Self) -> USHORT {
39515 unsafe {
39516 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39517 ::core::ptr::addr_of!((*this)._bitfield_1),
39518 13usize,
39519 3u8,
39520 ) as u16)
39521 }
39522 }
39523 #[inline]
39524 pub unsafe fn set_Reserved_raw(this: *mut Self, val: USHORT) {
39525 unsafe {
39526 let val: u16 = ::core::mem::transmute(val);
39527 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39528 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39529 13usize,
39530 3u8,
39531 val as u64,
39532 )
39533 }
39534 }
39535 #[inline]
39536 pub fn new_bitfield_1(
39537 SourceValidation: USHORT,
39538 TranslationBlocking: USHORT,
39539 RequestRedirect: USHORT,
39540 CompletionRedirect: USHORT,
39541 UpstreamForwarding: USHORT,
39542 EgressControl: USHORT,
39543 DirectTranslation: USHORT,
39544 IoBlocking: USHORT,
39545 DspMemoryControl: USHORT,
39546 UspMemoryControl: USHORT,
39547 UnclaimedRedirect: USHORT,
39548 Reserved: USHORT,
39549 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
39550 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
39551 __bindgen_bitfield_unit.set(0usize, 1u8, {
39552 let SourceValidation: u16 = unsafe { ::core::mem::transmute(SourceValidation) };
39553 SourceValidation as u64
39554 });
39555 __bindgen_bitfield_unit.set(1usize, 1u8, {
39556 let TranslationBlocking: u16 = unsafe { ::core::mem::transmute(TranslationBlocking) };
39557 TranslationBlocking as u64
39558 });
39559 __bindgen_bitfield_unit.set(2usize, 1u8, {
39560 let RequestRedirect: u16 = unsafe { ::core::mem::transmute(RequestRedirect) };
39561 RequestRedirect as u64
39562 });
39563 __bindgen_bitfield_unit.set(3usize, 1u8, {
39564 let CompletionRedirect: u16 = unsafe { ::core::mem::transmute(CompletionRedirect) };
39565 CompletionRedirect as u64
39566 });
39567 __bindgen_bitfield_unit.set(4usize, 1u8, {
39568 let UpstreamForwarding: u16 = unsafe { ::core::mem::transmute(UpstreamForwarding) };
39569 UpstreamForwarding as u64
39570 });
39571 __bindgen_bitfield_unit.set(5usize, 1u8, {
39572 let EgressControl: u16 = unsafe { ::core::mem::transmute(EgressControl) };
39573 EgressControl as u64
39574 });
39575 __bindgen_bitfield_unit.set(6usize, 1u8, {
39576 let DirectTranslation: u16 = unsafe { ::core::mem::transmute(DirectTranslation) };
39577 DirectTranslation as u64
39578 });
39579 __bindgen_bitfield_unit.set(7usize, 1u8, {
39580 let IoBlocking: u16 = unsafe { ::core::mem::transmute(IoBlocking) };
39581 IoBlocking as u64
39582 });
39583 __bindgen_bitfield_unit.set(8usize, 2u8, {
39584 let DspMemoryControl: u16 = unsafe { ::core::mem::transmute(DspMemoryControl) };
39585 DspMemoryControl as u64
39586 });
39587 __bindgen_bitfield_unit.set(10usize, 2u8, {
39588 let UspMemoryControl: u16 = unsafe { ::core::mem::transmute(UspMemoryControl) };
39589 UspMemoryControl as u64
39590 });
39591 __bindgen_bitfield_unit.set(12usize, 1u8, {
39592 let UnclaimedRedirect: u16 = unsafe { ::core::mem::transmute(UnclaimedRedirect) };
39593 UnclaimedRedirect as u64
39594 });
39595 __bindgen_bitfield_unit.set(13usize, 3u8, {
39596 let Reserved: u16 = unsafe { ::core::mem::transmute(Reserved) };
39597 Reserved as u64
39598 });
39599 __bindgen_bitfield_unit
39600 }
39601}
39602pub type PCI_EXPRESS_ACS_CONTROL = _PCI_EXPRESS_ACS_CONTROL;
39603pub type PPCI_EXPRESS_ACS_CONTROL = *mut _PCI_EXPRESS_ACS_CONTROL;
39604#[repr(C)]
39605#[derive(Copy, Clone)]
39606pub struct _PCI_EXPRESS_ACS_CAPABILITY {
39607 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
39608 pub Capability: PCI_EXPRESS_ACS_CAPABILITY_REGISTER,
39609 pub Control: PCI_EXPRESS_ACS_CONTROL,
39610 pub EgressControl: [ULONG; 1usize],
39611}
39612pub type PCI_EXPRESS_ACS_CAPABILITY = _PCI_EXPRESS_ACS_CAPABILITY;
39613pub type PPCI_EXPRESS_ACS_CAPABILITY = *mut _PCI_EXPRESS_ACS_CAPABILITY;
39614#[repr(C)]
39615#[derive(Copy, Clone)]
39616pub union _PCI_EXPRESS_SRIOV_CAPS {
39617 pub __bindgen_anon_1: _PCI_EXPRESS_SRIOV_CAPS__bindgen_ty_1,
39618 pub AsULONG: ULONG,
39619}
39620#[repr(C)]
39621#[derive(Debug, Copy, Clone)]
39622pub struct _PCI_EXPRESS_SRIOV_CAPS__bindgen_ty_1 {
39623 pub _bitfield_align_1: [u32; 0],
39624 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
39625}
39626impl _PCI_EXPRESS_SRIOV_CAPS__bindgen_ty_1 {
39627 #[inline]
39628 pub fn VFMigrationCapable(&self) -> ULONG {
39629 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) }
39630 }
39631 #[inline]
39632 pub fn set_VFMigrationCapable(&mut self, val: ULONG) {
39633 unsafe {
39634 let val: u32 = ::core::mem::transmute(val);
39635 self._bitfield_1.set(0usize, 1u8, val as u64)
39636 }
39637 }
39638 #[inline]
39639 pub unsafe fn VFMigrationCapable_raw(this: *const Self) -> ULONG {
39640 unsafe {
39641 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
39642 ::core::ptr::addr_of!((*this)._bitfield_1),
39643 0usize,
39644 1u8,
39645 ) as u32)
39646 }
39647 }
39648 #[inline]
39649 pub unsafe fn set_VFMigrationCapable_raw(this: *mut Self, val: ULONG) {
39650 unsafe {
39651 let val: u32 = ::core::mem::transmute(val);
39652 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
39653 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39654 0usize,
39655 1u8,
39656 val as u64,
39657 )
39658 }
39659 }
39660 #[inline]
39661 pub fn Reserved1(&self) -> ULONG {
39662 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 20u8) as u32) }
39663 }
39664 #[inline]
39665 pub fn set_Reserved1(&mut self, val: ULONG) {
39666 unsafe {
39667 let val: u32 = ::core::mem::transmute(val);
39668 self._bitfield_1.set(1usize, 20u8, val as u64)
39669 }
39670 }
39671 #[inline]
39672 pub unsafe fn Reserved1_raw(this: *const Self) -> ULONG {
39673 unsafe {
39674 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
39675 ::core::ptr::addr_of!((*this)._bitfield_1),
39676 1usize,
39677 20u8,
39678 ) as u32)
39679 }
39680 }
39681 #[inline]
39682 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: ULONG) {
39683 unsafe {
39684 let val: u32 = ::core::mem::transmute(val);
39685 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
39686 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39687 1usize,
39688 20u8,
39689 val as u64,
39690 )
39691 }
39692 }
39693 #[inline]
39694 pub fn VFMigrationInterruptNumber(&self) -> ULONG {
39695 unsafe { ::core::mem::transmute(self._bitfield_1.get(21usize, 11u8) as u32) }
39696 }
39697 #[inline]
39698 pub fn set_VFMigrationInterruptNumber(&mut self, val: ULONG) {
39699 unsafe {
39700 let val: u32 = ::core::mem::transmute(val);
39701 self._bitfield_1.set(21usize, 11u8, val as u64)
39702 }
39703 }
39704 #[inline]
39705 pub unsafe fn VFMigrationInterruptNumber_raw(this: *const Self) -> ULONG {
39706 unsafe {
39707 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
39708 ::core::ptr::addr_of!((*this)._bitfield_1),
39709 21usize,
39710 11u8,
39711 ) as u32)
39712 }
39713 }
39714 #[inline]
39715 pub unsafe fn set_VFMigrationInterruptNumber_raw(this: *mut Self, val: ULONG) {
39716 unsafe {
39717 let val: u32 = ::core::mem::transmute(val);
39718 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
39719 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39720 21usize,
39721 11u8,
39722 val as u64,
39723 )
39724 }
39725 }
39726 #[inline]
39727 pub fn new_bitfield_1(
39728 VFMigrationCapable: ULONG,
39729 Reserved1: ULONG,
39730 VFMigrationInterruptNumber: ULONG,
39731 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
39732 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
39733 __bindgen_bitfield_unit.set(0usize, 1u8, {
39734 let VFMigrationCapable: u32 = unsafe { ::core::mem::transmute(VFMigrationCapable) };
39735 VFMigrationCapable as u64
39736 });
39737 __bindgen_bitfield_unit.set(1usize, 20u8, {
39738 let Reserved1: u32 = unsafe { ::core::mem::transmute(Reserved1) };
39739 Reserved1 as u64
39740 });
39741 __bindgen_bitfield_unit.set(21usize, 11u8, {
39742 let VFMigrationInterruptNumber: u32 =
39743 unsafe { ::core::mem::transmute(VFMigrationInterruptNumber) };
39744 VFMigrationInterruptNumber as u64
39745 });
39746 __bindgen_bitfield_unit
39747 }
39748}
39749pub type PCI_EXPRESS_SRIOV_CAPS = _PCI_EXPRESS_SRIOV_CAPS;
39750pub type PPCI_EXPRESS_SRIOV_CAPS = *mut _PCI_EXPRESS_SRIOV_CAPS;
39751#[repr(C)]
39752#[derive(Copy, Clone)]
39753pub union _PCI_EXPRESS_SRIOV_CONTROL {
39754 pub __bindgen_anon_1: _PCI_EXPRESS_SRIOV_CONTROL__bindgen_ty_1,
39755 pub AsUSHORT: USHORT,
39756}
39757#[repr(C)]
39758#[derive(Debug, Copy, Clone)]
39759pub struct _PCI_EXPRESS_SRIOV_CONTROL__bindgen_ty_1 {
39760 pub _bitfield_align_1: [u16; 0],
39761 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
39762}
39763impl _PCI_EXPRESS_SRIOV_CONTROL__bindgen_ty_1 {
39764 #[inline]
39765 pub fn VFEnable(&self) -> USHORT {
39766 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
39767 }
39768 #[inline]
39769 pub fn set_VFEnable(&mut self, val: USHORT) {
39770 unsafe {
39771 let val: u16 = ::core::mem::transmute(val);
39772 self._bitfield_1.set(0usize, 1u8, val as u64)
39773 }
39774 }
39775 #[inline]
39776 pub unsafe fn VFEnable_raw(this: *const Self) -> USHORT {
39777 unsafe {
39778 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39779 ::core::ptr::addr_of!((*this)._bitfield_1),
39780 0usize,
39781 1u8,
39782 ) as u16)
39783 }
39784 }
39785 #[inline]
39786 pub unsafe fn set_VFEnable_raw(this: *mut Self, val: USHORT) {
39787 unsafe {
39788 let val: u16 = ::core::mem::transmute(val);
39789 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39790 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39791 0usize,
39792 1u8,
39793 val as u64,
39794 )
39795 }
39796 }
39797 #[inline]
39798 pub fn VFMigrationEnable(&self) -> USHORT {
39799 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) }
39800 }
39801 #[inline]
39802 pub fn set_VFMigrationEnable(&mut self, val: USHORT) {
39803 unsafe {
39804 let val: u16 = ::core::mem::transmute(val);
39805 self._bitfield_1.set(1usize, 1u8, val as u64)
39806 }
39807 }
39808 #[inline]
39809 pub unsafe fn VFMigrationEnable_raw(this: *const Self) -> USHORT {
39810 unsafe {
39811 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39812 ::core::ptr::addr_of!((*this)._bitfield_1),
39813 1usize,
39814 1u8,
39815 ) as u16)
39816 }
39817 }
39818 #[inline]
39819 pub unsafe fn set_VFMigrationEnable_raw(this: *mut Self, val: USHORT) {
39820 unsafe {
39821 let val: u16 = ::core::mem::transmute(val);
39822 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39823 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39824 1usize,
39825 1u8,
39826 val as u64,
39827 )
39828 }
39829 }
39830 #[inline]
39831 pub fn VFMigrationInterruptEnable(&self) -> USHORT {
39832 unsafe { ::core::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u16) }
39833 }
39834 #[inline]
39835 pub fn set_VFMigrationInterruptEnable(&mut self, val: USHORT) {
39836 unsafe {
39837 let val: u16 = ::core::mem::transmute(val);
39838 self._bitfield_1.set(2usize, 1u8, val as u64)
39839 }
39840 }
39841 #[inline]
39842 pub unsafe fn VFMigrationInterruptEnable_raw(this: *const Self) -> USHORT {
39843 unsafe {
39844 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39845 ::core::ptr::addr_of!((*this)._bitfield_1),
39846 2usize,
39847 1u8,
39848 ) as u16)
39849 }
39850 }
39851 #[inline]
39852 pub unsafe fn set_VFMigrationInterruptEnable_raw(this: *mut Self, val: USHORT) {
39853 unsafe {
39854 let val: u16 = ::core::mem::transmute(val);
39855 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39856 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39857 2usize,
39858 1u8,
39859 val as u64,
39860 )
39861 }
39862 }
39863 #[inline]
39864 pub fn VFMemorySpaceEnable(&self) -> USHORT {
39865 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u16) }
39866 }
39867 #[inline]
39868 pub fn set_VFMemorySpaceEnable(&mut self, val: USHORT) {
39869 unsafe {
39870 let val: u16 = ::core::mem::transmute(val);
39871 self._bitfield_1.set(3usize, 1u8, val as u64)
39872 }
39873 }
39874 #[inline]
39875 pub unsafe fn VFMemorySpaceEnable_raw(this: *const Self) -> USHORT {
39876 unsafe {
39877 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39878 ::core::ptr::addr_of!((*this)._bitfield_1),
39879 3usize,
39880 1u8,
39881 ) as u16)
39882 }
39883 }
39884 #[inline]
39885 pub unsafe fn set_VFMemorySpaceEnable_raw(this: *mut Self, val: USHORT) {
39886 unsafe {
39887 let val: u16 = ::core::mem::transmute(val);
39888 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39889 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39890 3usize,
39891 1u8,
39892 val as u64,
39893 )
39894 }
39895 }
39896 #[inline]
39897 pub fn ARICapableHierarchy(&self) -> USHORT {
39898 unsafe { ::core::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u16) }
39899 }
39900 #[inline]
39901 pub fn set_ARICapableHierarchy(&mut self, val: USHORT) {
39902 unsafe {
39903 let val: u16 = ::core::mem::transmute(val);
39904 self._bitfield_1.set(4usize, 1u8, val as u64)
39905 }
39906 }
39907 #[inline]
39908 pub unsafe fn ARICapableHierarchy_raw(this: *const Self) -> USHORT {
39909 unsafe {
39910 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39911 ::core::ptr::addr_of!((*this)._bitfield_1),
39912 4usize,
39913 1u8,
39914 ) as u16)
39915 }
39916 }
39917 #[inline]
39918 pub unsafe fn set_ARICapableHierarchy_raw(this: *mut Self, val: USHORT) {
39919 unsafe {
39920 let val: u16 = ::core::mem::transmute(val);
39921 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39922 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39923 4usize,
39924 1u8,
39925 val as u64,
39926 )
39927 }
39928 }
39929 #[inline]
39930 pub fn Reserved1(&self) -> USHORT {
39931 unsafe { ::core::mem::transmute(self._bitfield_1.get(5usize, 11u8) as u16) }
39932 }
39933 #[inline]
39934 pub fn set_Reserved1(&mut self, val: USHORT) {
39935 unsafe {
39936 let val: u16 = ::core::mem::transmute(val);
39937 self._bitfield_1.set(5usize, 11u8, val as u64)
39938 }
39939 }
39940 #[inline]
39941 pub unsafe fn Reserved1_raw(this: *const Self) -> USHORT {
39942 unsafe {
39943 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
39944 ::core::ptr::addr_of!((*this)._bitfield_1),
39945 5usize,
39946 11u8,
39947 ) as u16)
39948 }
39949 }
39950 #[inline]
39951 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: USHORT) {
39952 unsafe {
39953 let val: u16 = ::core::mem::transmute(val);
39954 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
39955 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
39956 5usize,
39957 11u8,
39958 val as u64,
39959 )
39960 }
39961 }
39962 #[inline]
39963 pub fn new_bitfield_1(
39964 VFEnable: USHORT,
39965 VFMigrationEnable: USHORT,
39966 VFMigrationInterruptEnable: USHORT,
39967 VFMemorySpaceEnable: USHORT,
39968 ARICapableHierarchy: USHORT,
39969 Reserved1: USHORT,
39970 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
39971 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
39972 __bindgen_bitfield_unit.set(0usize, 1u8, {
39973 let VFEnable: u16 = unsafe { ::core::mem::transmute(VFEnable) };
39974 VFEnable as u64
39975 });
39976 __bindgen_bitfield_unit.set(1usize, 1u8, {
39977 let VFMigrationEnable: u16 = unsafe { ::core::mem::transmute(VFMigrationEnable) };
39978 VFMigrationEnable as u64
39979 });
39980 __bindgen_bitfield_unit.set(2usize, 1u8, {
39981 let VFMigrationInterruptEnable: u16 =
39982 unsafe { ::core::mem::transmute(VFMigrationInterruptEnable) };
39983 VFMigrationInterruptEnable as u64
39984 });
39985 __bindgen_bitfield_unit.set(3usize, 1u8, {
39986 let VFMemorySpaceEnable: u16 = unsafe { ::core::mem::transmute(VFMemorySpaceEnable) };
39987 VFMemorySpaceEnable as u64
39988 });
39989 __bindgen_bitfield_unit.set(4usize, 1u8, {
39990 let ARICapableHierarchy: u16 = unsafe { ::core::mem::transmute(ARICapableHierarchy) };
39991 ARICapableHierarchy as u64
39992 });
39993 __bindgen_bitfield_unit.set(5usize, 11u8, {
39994 let Reserved1: u16 = unsafe { ::core::mem::transmute(Reserved1) };
39995 Reserved1 as u64
39996 });
39997 __bindgen_bitfield_unit
39998 }
39999}
40000pub type PCI_EXPRESS_SRIOV_CONTROL = _PCI_EXPRESS_SRIOV_CONTROL;
40001pub type PPCI_EXPRESS_SRIOV_CONTROL = *mut _PCI_EXPRESS_SRIOV_CONTROL;
40002#[repr(C)]
40003#[derive(Copy, Clone)]
40004pub union _PCI_EXPRESS_SRIOV_STATUS {
40005 pub __bindgen_anon_1: _PCI_EXPRESS_SRIOV_STATUS__bindgen_ty_1,
40006 pub AsUSHORT: USHORT,
40007}
40008#[repr(C)]
40009#[derive(Debug, Copy, Clone)]
40010pub struct _PCI_EXPRESS_SRIOV_STATUS__bindgen_ty_1 {
40011 pub _bitfield_align_1: [u16; 0],
40012 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>,
40013}
40014impl _PCI_EXPRESS_SRIOV_STATUS__bindgen_ty_1 {
40015 #[inline]
40016 pub fn VFMigrationStatus(&self) -> USHORT {
40017 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) }
40018 }
40019 #[inline]
40020 pub fn set_VFMigrationStatus(&mut self, val: USHORT) {
40021 unsafe {
40022 let val: u16 = ::core::mem::transmute(val);
40023 self._bitfield_1.set(0usize, 1u8, val as u64)
40024 }
40025 }
40026 #[inline]
40027 pub unsafe fn VFMigrationStatus_raw(this: *const Self) -> USHORT {
40028 unsafe {
40029 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
40030 ::core::ptr::addr_of!((*this)._bitfield_1),
40031 0usize,
40032 1u8,
40033 ) as u16)
40034 }
40035 }
40036 #[inline]
40037 pub unsafe fn set_VFMigrationStatus_raw(this: *mut Self, val: USHORT) {
40038 unsafe {
40039 let val: u16 = ::core::mem::transmute(val);
40040 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
40041 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
40042 0usize,
40043 1u8,
40044 val as u64,
40045 )
40046 }
40047 }
40048 #[inline]
40049 pub fn Reserved1(&self) -> USHORT {
40050 unsafe { ::core::mem::transmute(self._bitfield_1.get(1usize, 15u8) as u16) }
40051 }
40052 #[inline]
40053 pub fn set_Reserved1(&mut self, val: USHORT) {
40054 unsafe {
40055 let val: u16 = ::core::mem::transmute(val);
40056 self._bitfield_1.set(1usize, 15u8, val as u64)
40057 }
40058 }
40059 #[inline]
40060 pub unsafe fn Reserved1_raw(this: *const Self) -> USHORT {
40061 unsafe {
40062 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 2usize]>>::raw_get(
40063 ::core::ptr::addr_of!((*this)._bitfield_1),
40064 1usize,
40065 15u8,
40066 ) as u16)
40067 }
40068 }
40069 #[inline]
40070 pub unsafe fn set_Reserved1_raw(this: *mut Self, val: USHORT) {
40071 unsafe {
40072 let val: u16 = ::core::mem::transmute(val);
40073 <__BindgenBitfieldUnit<[u8; 2usize]>>::raw_set(
40074 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
40075 1usize,
40076 15u8,
40077 val as u64,
40078 )
40079 }
40080 }
40081 #[inline]
40082 pub fn new_bitfield_1(
40083 VFMigrationStatus: USHORT,
40084 Reserved1: USHORT,
40085 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
40086 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default();
40087 __bindgen_bitfield_unit.set(0usize, 1u8, {
40088 let VFMigrationStatus: u16 = unsafe { ::core::mem::transmute(VFMigrationStatus) };
40089 VFMigrationStatus as u64
40090 });
40091 __bindgen_bitfield_unit.set(1usize, 15u8, {
40092 let Reserved1: u16 = unsafe { ::core::mem::transmute(Reserved1) };
40093 Reserved1 as u64
40094 });
40095 __bindgen_bitfield_unit
40096 }
40097}
40098pub type PCI_EXPRESS_SRIOV_STATUS = _PCI_EXPRESS_SRIOV_STATUS;
40099pub type PPCI_EXPRESS_SRIOV_STATUS = *mut _PCI_EXPRESS_SRIOV_STATUS;
40100#[repr(C)]
40101#[derive(Copy, Clone)]
40102pub union _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY {
40103 pub __bindgen_anon_1: _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY__bindgen_ty_1,
40104 pub AsULONG: ULONG,
40105}
40106#[repr(C)]
40107#[derive(Debug, Copy, Clone)]
40108pub struct _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY__bindgen_ty_1 {
40109 pub _bitfield_align_1: [u32; 0],
40110 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
40111}
40112impl _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY__bindgen_ty_1 {
40113 #[inline]
40114 pub fn VFMigrationStateBIR(&self) -> ULONG {
40115 unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 3u8) as u32) }
40116 }
40117 #[inline]
40118 pub fn set_VFMigrationStateBIR(&mut self, val: ULONG) {
40119 unsafe {
40120 let val: u32 = ::core::mem::transmute(val);
40121 self._bitfield_1.set(0usize, 3u8, val as u64)
40122 }
40123 }
40124 #[inline]
40125 pub unsafe fn VFMigrationStateBIR_raw(this: *const Self) -> ULONG {
40126 unsafe {
40127 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
40128 ::core::ptr::addr_of!((*this)._bitfield_1),
40129 0usize,
40130 3u8,
40131 ) as u32)
40132 }
40133 }
40134 #[inline]
40135 pub unsafe fn set_VFMigrationStateBIR_raw(this: *mut Self, val: ULONG) {
40136 unsafe {
40137 let val: u32 = ::core::mem::transmute(val);
40138 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
40139 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
40140 0usize,
40141 3u8,
40142 val as u64,
40143 )
40144 }
40145 }
40146 #[inline]
40147 pub fn VFMigrationStateOffset(&self) -> ULONG {
40148 unsafe { ::core::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) }
40149 }
40150 #[inline]
40151 pub fn set_VFMigrationStateOffset(&mut self, val: ULONG) {
40152 unsafe {
40153 let val: u32 = ::core::mem::transmute(val);
40154 self._bitfield_1.set(3usize, 29u8, val as u64)
40155 }
40156 }
40157 #[inline]
40158 pub unsafe fn VFMigrationStateOffset_raw(this: *const Self) -> ULONG {
40159 unsafe {
40160 ::core::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
40161 ::core::ptr::addr_of!((*this)._bitfield_1),
40162 3usize,
40163 29u8,
40164 ) as u32)
40165 }
40166 }
40167 #[inline]
40168 pub unsafe fn set_VFMigrationStateOffset_raw(this: *mut Self, val: ULONG) {
40169 unsafe {
40170 let val: u32 = ::core::mem::transmute(val);
40171 <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
40172 ::core::ptr::addr_of_mut!((*this)._bitfield_1),
40173 3usize,
40174 29u8,
40175 val as u64,
40176 )
40177 }
40178 }
40179 #[inline]
40180 pub fn new_bitfield_1(
40181 VFMigrationStateBIR: ULONG,
40182 VFMigrationStateOffset: ULONG,
40183 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
40184 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
40185 __bindgen_bitfield_unit.set(0usize, 3u8, {
40186 let VFMigrationStateBIR: u32 = unsafe { ::core::mem::transmute(VFMigrationStateBIR) };
40187 VFMigrationStateBIR as u64
40188 });
40189 __bindgen_bitfield_unit.set(3usize, 29u8, {
40190 let VFMigrationStateOffset: u32 =
40191 unsafe { ::core::mem::transmute(VFMigrationStateOffset) };
40192 VFMigrationStateOffset as u64
40193 });
40194 __bindgen_bitfield_unit
40195 }
40196}
40197pub type PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY = _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY;
40198pub type PPCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY = *mut _PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY;
40199#[repr(C)]
40200#[derive(Copy, Clone)]
40201pub struct _PCI_EXPRESS_SRIOV_CAPABILITY {
40202 pub Header: PCI_EXPRESS_ENHANCED_CAPABILITY_HEADER,
40203 pub SRIOVCapabilities: PCI_EXPRESS_SRIOV_CAPS,
40204 pub SRIOVControl: PCI_EXPRESS_SRIOV_CONTROL,
40205 pub SRIOVStatus: PCI_EXPRESS_SRIOV_STATUS,
40206 pub InitialVFs: USHORT,
40207 pub TotalVFs: USHORT,
40208 pub NumVFs: USHORT,
40209 pub FunctionDependencyLink: UCHAR,
40210 pub RsvdP1: UCHAR,
40211 pub FirstVFOffset: USHORT,
40212 pub VFStride: USHORT,
40213 pub RsvdP2: USHORT,
40214 pub VFDeviceId: USHORT,
40215 pub SupportedPageSizes: ULONG,
40216 pub SystemPageSize: ULONG,
40217 pub BaseAddresses: [ULONG; 6usize],
40218 pub VFMigrationStateArrayOffset: PCI_EXPRESS_SRIOV_MIGRATION_STATE_ARRAY,
40219}
40220pub type PCI_EXPRESS_SRIOV_CAPABILITY = _PCI_EXPRESS_SRIOV_CAPABILITY;
40221pub type PPCI_EXPRESS_SRIOV_CAPABILITY = *mut _PCI_EXPRESS_SRIOV_CAPABILITY;
40222#[repr(C)]
40223#[derive(Debug, Copy, Clone)]
40224pub struct _PCI_DEVICE_PRESENCE_PARAMETERS {
40225 pub Size: ULONG,
40226 pub Flags: ULONG,
40227 pub VendorID: USHORT,
40228 pub DeviceID: USHORT,
40229 pub RevisionID: UCHAR,
40230 pub SubVendorID: USHORT,
40231 pub SubSystemID: USHORT,
40232 pub BaseClass: UCHAR,
40233 pub SubClass: UCHAR,
40234 pub ProgIf: UCHAR,
40235}
40236pub type PCI_DEVICE_PRESENCE_PARAMETERS = _PCI_DEVICE_PRESENCE_PARAMETERS;
40237pub type PPCI_DEVICE_PRESENCE_PARAMETERS = *mut _PCI_DEVICE_PRESENCE_PARAMETERS;
40238pub type PCI_IS_DEVICE_PRESENT = ::core::option::Option<
40239 unsafe extern "C" fn(
40240 VendorID: USHORT,
40241 DeviceID: USHORT,
40242 RevisionID: UCHAR,
40243 SubVendorID: USHORT,
40244 SubSystemID: USHORT,
40245 Flags: ULONG,
40246 ) -> BOOLEAN,
40247>;
40248pub type PPCI_IS_DEVICE_PRESENT = PCI_IS_DEVICE_PRESENT;
40249pub type PCI_IS_DEVICE_PRESENT_EX = ::core::option::Option<
40250 unsafe extern "C" fn(Context: PVOID, Parameters: PPCI_DEVICE_PRESENCE_PARAMETERS) -> BOOLEAN,
40251>;
40252pub type PPCI_IS_DEVICE_PRESENT_EX = PCI_IS_DEVICE_PRESENT_EX;
40253#[repr(C)]
40254#[derive(Debug, Copy, Clone)]
40255pub struct _PCI_DEVICE_PRESENT_INTERFACE {
40256 pub Size: USHORT,
40257 pub Version: USHORT,
40258 pub Context: PVOID,
40259 pub InterfaceReference: PINTERFACE_REFERENCE,
40260 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
40261 pub IsDevicePresent: PPCI_IS_DEVICE_PRESENT,
40262 pub IsDevicePresentEx: PPCI_IS_DEVICE_PRESENT_EX,
40263}
40264pub type PCI_DEVICE_PRESENT_INTERFACE = _PCI_DEVICE_PRESENT_INTERFACE;
40265pub type PPCI_DEVICE_PRESENT_INTERFACE = *mut _PCI_DEVICE_PRESENT_INTERFACE;
40266pub type PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE =
40267::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
40268pub type PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE = PCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE;
40269pub type PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE =
40270::core::option::Option<unsafe extern "C" fn(Context: PVOID) -> NTSTATUS>;
40271pub type PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE = PCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE;
40272#[repr(C)]
40273#[derive(Debug, Copy, Clone)]
40274pub struct _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE {
40275 pub Size: USHORT,
40276 pub Version: USHORT,
40277 pub Context: PVOID,
40278 pub InterfaceReference: PINTERFACE_REFERENCE,
40279 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
40280 pub PciExpressEnterLinkQuiescentMode: PPCI_EXPRESS_ENTER_LINK_QUIESCENT_MODE,
40281 pub PciExpressExitLinkQuiescentMode: PPCI_EXPRESS_EXIT_LINK_QUIESCENT_MODE,
40282}
40283pub type PCI_EXPRESS_LINK_QUIESCENT_INTERFACE = _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE;
40284pub type PPCI_EXPRESS_LINK_QUIESCENT_INTERFACE = *mut _PCI_EXPRESS_LINK_QUIESCENT_INTERFACE;
40285pub type PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE = ::core::option::Option<
40286 unsafe extern "C" fn(Context: PVOID, Buffer: PVOID, Offset: ULONG, Length: ULONG) -> ULONG,
40287>;
40288pub type PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE = ::core::option::Option<
40289 unsafe extern "C" fn(Context: PVOID, Buffer: PVOID, Offset: ULONG, Length: ULONG) -> ULONG,
40290>;
40291#[repr(C)]
40292#[derive(Debug, Copy, Clone)]
40293pub struct _PCI_EXPRESS_ROOT_PORT_INTERFACE {
40294 pub Size: USHORT,
40295 pub Version: USHORT,
40296 pub Context: PVOID,
40297 pub InterfaceReference: PINTERFACE_REFERENCE,
40298 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
40299 pub ReadConfigSpace: PPCI_EXPRESS_ROOT_PORT_READ_CONFIG_SPACE,
40300 pub WriteConfigSpace: PPCI_EXPRESS_ROOT_PORT_WRITE_CONFIG_SPACE,
40301}
40302pub type PCI_EXPRESS_ROOT_PORT_INTERFACE = _PCI_EXPRESS_ROOT_PORT_INTERFACE;
40303pub type PPCI_EXPRESS_ROOT_PORT_INTERFACE = *mut _PCI_EXPRESS_ROOT_PORT_INTERFACE;
40304pub type PCI_MSIX_SET_ENTRY = ::core::option::Option<
40305 unsafe extern "C" fn(Context: PVOID, TableEntry: ULONG, MessageNumber: ULONG) -> NTSTATUS,
40306>;
40307pub type PPCI_MSIX_SET_ENTRY = PCI_MSIX_SET_ENTRY;
40308pub type PCI_MSIX_MASKUNMASK_ENTRY =
40309::core::option::Option<unsafe extern "C" fn(Context: PVOID, TableEntry: ULONG) -> NTSTATUS>;
40310pub type PPCI_MSIX_MASKUNMASK_ENTRY = PCI_MSIX_MASKUNMASK_ENTRY;
40311pub type PCI_MSIX_GET_ENTRY = ::core::option::Option<
40312 unsafe extern "C" fn(
40313 Context: PVOID,
40314 TableEntry: ULONG,
40315 MessageNumber: PULONG,
40316 Masked: PBOOLEAN,
40317 ) -> NTSTATUS,
40318>;
40319pub type PPCI_MSIX_GET_ENTRY = PCI_MSIX_GET_ENTRY;
40320pub type PCI_MSIX_GET_TABLE_SIZE =
40321::core::option::Option<unsafe extern "C" fn(Context: PVOID, TableSize: PULONG) -> NTSTATUS>;
40322pub type PPCI_MSIX_GET_TABLE_SIZE = PCI_MSIX_GET_TABLE_SIZE;
40323#[repr(C)]
40324#[derive(Debug, Copy, Clone)]
40325pub struct _PCI_MSIX_TABLE_CONFIG_INTERFACE {
40326 pub Size: USHORT,
40327 pub Version: USHORT,
40328 pub Context: PVOID,
40329 pub InterfaceReference: PINTERFACE_REFERENCE,
40330 pub InterfaceDereference: PINTERFACE_DEREFERENCE,
40331 pub SetTableEntry: PPCI_MSIX_SET_ENTRY,
40332 pub MaskTableEntry: PPCI_MSIX_MASKUNMASK_ENTRY,
40333 pub UnmaskTableEntry: PPCI_MSIX_MASKUNMASK_ENTRY,
40334 pub GetTableEntry: PPCI_MSIX_GET_ENTRY,
40335 pub GetTableSize: PPCI_MSIX_GET_TABLE_SIZE,
40336}
40337pub type PCI_MSIX_TABLE_CONFIG_INTERFACE = _PCI_MSIX_TABLE_CONFIG_INTERFACE;
40338pub type PPCI_MSIX_TABLE_CONFIG_INTERFACE = *mut _PCI_MSIX_TABLE_CONFIG_INTERFACE;
40339unsafe extern "C" {
40340 pub fn ZwCreateFile(
40341 FileHandle: PHANDLE,
40342 DesiredAccess: ACCESS_MASK,
40343 ObjectAttributes: POBJECT_ATTRIBUTES,
40344 IoStatusBlock: PIO_STATUS_BLOCK,
40345 AllocationSize: PLARGE_INTEGER,
40346 FileAttributes: ULONG,
40347 ShareAccess: ULONG,
40348 CreateDisposition: ULONG,
40349 CreateOptions: ULONG,
40350 EaBuffer: PVOID,
40351 EaLength: ULONG,
40352 ) -> NTSTATUS;
40353}
40354unsafe extern "C" {
40355 pub fn ZwOpenFile(
40356 FileHandle: PHANDLE,
40357 DesiredAccess: ACCESS_MASK,
40358 ObjectAttributes: POBJECT_ATTRIBUTES,
40359 IoStatusBlock: PIO_STATUS_BLOCK,
40360 ShareAccess: ULONG,
40361 OpenOptions: ULONG,
40362 ) -> NTSTATUS;
40363}
40364unsafe extern "C" {
40365 pub fn ZwLoadDriver(DriverServiceName: PUNICODE_STRING) -> NTSTATUS;
40366}
40367unsafe extern "C" {
40368 pub fn ZwUnloadDriver(DriverServiceName: PUNICODE_STRING) -> NTSTATUS;
40369}
40370unsafe extern "C" {
40371 pub fn ZwQueryInformationFile(
40372 FileHandle: HANDLE,
40373 IoStatusBlock: PIO_STATUS_BLOCK,
40374 FileInformation: PVOID,
40375 Length: ULONG,
40376 FileInformationClass: FILE_INFORMATION_CLASS,
40377 ) -> NTSTATUS;
40378}
40379unsafe extern "C" {
40380 pub fn ZwSetInformationFile(
40381 FileHandle: HANDLE,
40382 IoStatusBlock: PIO_STATUS_BLOCK,
40383 FileInformation: PVOID,
40384 Length: ULONG,
40385 FileInformationClass: FILE_INFORMATION_CLASS,
40386 ) -> NTSTATUS;
40387}
40388unsafe extern "C" {
40389 pub fn ZwReadFile(
40390 FileHandle: HANDLE,
40391 Event: HANDLE,
40392 ApcRoutine: PIO_APC_ROUTINE,
40393 ApcContext: PVOID,
40394 IoStatusBlock: PIO_STATUS_BLOCK,
40395 Buffer: PVOID,
40396 Length: ULONG,
40397 ByteOffset: PLARGE_INTEGER,
40398 Key: PULONG,
40399 ) -> NTSTATUS;
40400}
40401unsafe extern "C" {
40402 pub fn ZwWriteFile(
40403 FileHandle: HANDLE,
40404 Event: HANDLE,
40405 ApcRoutine: PIO_APC_ROUTINE,
40406 ApcContext: PVOID,
40407 IoStatusBlock: PIO_STATUS_BLOCK,
40408 Buffer: PVOID,
40409 Length: ULONG,
40410 ByteOffset: PLARGE_INTEGER,
40411 Key: PULONG,
40412 ) -> NTSTATUS;
40413}
40414unsafe extern "C" {
40415 pub fn ZwClose(Handle: HANDLE) -> NTSTATUS;
40416}
40417unsafe extern "C" {
40418 pub fn ZwCreateDirectoryObject(
40419 DirectoryHandle: PHANDLE,
40420 DesiredAccess: ACCESS_MASK,
40421 ObjectAttributes: POBJECT_ATTRIBUTES,
40422 ) -> NTSTATUS;
40423}
40424unsafe extern "C" {
40425 pub fn ZwMakeTemporaryObject(Handle: HANDLE) -> NTSTATUS;
40426}
40427unsafe extern "C" {
40428 pub fn ZwCreateSection(
40429 SectionHandle: PHANDLE,
40430 DesiredAccess: ACCESS_MASK,
40431 ObjectAttributes: POBJECT_ATTRIBUTES,
40432 MaximumSize: PLARGE_INTEGER,
40433 SectionPageProtection: ULONG,
40434 AllocationAttributes: ULONG,
40435 FileHandle: HANDLE,
40436 ) -> NTSTATUS;
40437}
40438unsafe extern "C" {
40439 pub fn ZwOpenSection(
40440 SectionHandle: PHANDLE,
40441 DesiredAccess: ACCESS_MASK,
40442 ObjectAttributes: POBJECT_ATTRIBUTES,
40443 ) -> NTSTATUS;
40444}
40445unsafe extern "C" {
40446 pub fn ZwMapViewOfSection(
40447 SectionHandle: HANDLE,
40448 ProcessHandle: HANDLE,
40449 BaseAddress: *mut PVOID,
40450 ZeroBits: ULONG_PTR,
40451 CommitSize: SIZE_T,
40452 SectionOffset: PLARGE_INTEGER,
40453 ViewSize: PSIZE_T,
40454 InheritDisposition: SECTION_INHERIT,
40455 AllocationType: ULONG,
40456 Win32Protect: ULONG,
40457 ) -> NTSTATUS;
40458}
40459unsafe extern "C" {
40460 pub fn ZwUnmapViewOfSection(ProcessHandle: HANDLE, BaseAddress: PVOID) -> NTSTATUS;
40461}
40462unsafe extern "C" {
40463 pub fn ZwCreateKey(
40464 KeyHandle: PHANDLE,
40465 DesiredAccess: ACCESS_MASK,
40466 ObjectAttributes: POBJECT_ATTRIBUTES,
40467 TitleIndex: ULONG,
40468 Class: PUNICODE_STRING,
40469 CreateOptions: ULONG,
40470 Disposition: PULONG,
40471 ) -> NTSTATUS;
40472}
40473unsafe extern "C" {
40474 pub fn ZwCreateKeyTransacted(
40475 KeyHandle: PHANDLE,
40476 DesiredAccess: ACCESS_MASK,
40477 ObjectAttributes: POBJECT_ATTRIBUTES,
40478 TitleIndex: ULONG,
40479 Class: PUNICODE_STRING,
40480 CreateOptions: ULONG,
40481 TransactionHandle: HANDLE,
40482 Disposition: PULONG,
40483 ) -> NTSTATUS;
40484}
40485unsafe extern "C" {
40486 pub fn ZwCreateRegistryTransaction(
40487 TransactionHandle: PHANDLE,
40488 DesiredAccess: ACCESS_MASK,
40489 ObjectAttributes: POBJECT_ATTRIBUTES,
40490 CreateOptions: ULONG,
40491 ) -> NTSTATUS;
40492}
40493unsafe extern "C" {
40494 pub fn NtOpenRegistryTransaction(
40495 TransactionHandle: PHANDLE,
40496 DesiredAccess: ACCESS_MASK,
40497 ObjectAttributes: POBJECT_ATTRIBUTES,
40498 ) -> NTSTATUS;
40499}
40500unsafe extern "C" {
40501 pub fn ZwCommitRegistryTransaction(TransactionHandle: HANDLE, Flags: ULONG) -> NTSTATUS;
40502}
40503unsafe extern "C" {
40504 pub fn NtRollbackRegistryTransaction(TransactionHandle: HANDLE, Flags: ULONG) -> NTSTATUS;
40505}
40506unsafe extern "C" {
40507 pub fn ZwOpenKey(
40508 KeyHandle: PHANDLE,
40509 DesiredAccess: ACCESS_MASK,
40510 ObjectAttributes: POBJECT_ATTRIBUTES,
40511 ) -> NTSTATUS;
40512}
40513unsafe extern "C" {
40514 pub fn ZwOpenKeyEx(
40515 KeyHandle: PHANDLE,
40516 DesiredAccess: ACCESS_MASK,
40517 ObjectAttributes: POBJECT_ATTRIBUTES,
40518 OpenOptions: ULONG,
40519 ) -> NTSTATUS;
40520}
40521unsafe extern "C" {
40522 pub fn ZwOpenKeyTransacted(
40523 KeyHandle: PHANDLE,
40524 DesiredAccess: ACCESS_MASK,
40525 ObjectAttributes: POBJECT_ATTRIBUTES,
40526 TransactionHandle: HANDLE,
40527 ) -> NTSTATUS;
40528}
40529unsafe extern "C" {
40530 pub fn ZwOpenKeyTransactedEx(
40531 KeyHandle: PHANDLE,
40532 DesiredAccess: ACCESS_MASK,
40533 ObjectAttributes: POBJECT_ATTRIBUTES,
40534 OpenOptions: ULONG,
40535 TransactionHandle: HANDLE,
40536 ) -> NTSTATUS;
40537}
40538unsafe extern "C" {
40539 pub fn ZwDeleteKey(KeyHandle: HANDLE) -> NTSTATUS;
40540}
40541unsafe extern "C" {
40542 pub fn ZwDeleteValueKey(KeyHandle: HANDLE, ValueName: PUNICODE_STRING) -> NTSTATUS;
40543}
40544unsafe extern "C" {
40545 pub fn ZwEnumerateKey(
40546 KeyHandle: HANDLE,
40547 Index: ULONG,
40548 KeyInformationClass: KEY_INFORMATION_CLASS,
40549 KeyInformation: PVOID,
40550 Length: ULONG,
40551 ResultLength: PULONG,
40552 ) -> NTSTATUS;
40553}
40554unsafe extern "C" {
40555 pub fn ZwEnumerateValueKey(
40556 KeyHandle: HANDLE,
40557 Index: ULONG,
40558 KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS,
40559 KeyValueInformation: PVOID,
40560 Length: ULONG,
40561 ResultLength: PULONG,
40562 ) -> NTSTATUS;
40563}
40564unsafe extern "C" {
40565 pub fn ZwFlushKey(KeyHandle: HANDLE) -> NTSTATUS;
40566}
40567unsafe extern "C" {
40568 pub fn ZwQueryKey(
40569 KeyHandle: HANDLE,
40570 KeyInformationClass: KEY_INFORMATION_CLASS,
40571 KeyInformation: PVOID,
40572 Length: ULONG,
40573 ResultLength: PULONG,
40574 ) -> NTSTATUS;
40575}
40576unsafe extern "C" {
40577 pub fn ZwQueryValueKey(
40578 KeyHandle: HANDLE,
40579 ValueName: PUNICODE_STRING,
40580 KeyValueInformationClass: KEY_VALUE_INFORMATION_CLASS,
40581 KeyValueInformation: PVOID,
40582 Length: ULONG,
40583 ResultLength: PULONG,
40584 ) -> NTSTATUS;
40585}
40586unsafe extern "C" {
40587 pub fn ZwRenameKey(KeyHandle: HANDLE, NewName: PUNICODE_STRING) -> NTSTATUS;
40588}
40589unsafe extern "C" {
40590 pub fn ZwSaveKey(KeyHandle: HANDLE, FileHandle: HANDLE) -> NTSTATUS;
40591}
40592unsafe extern "C" {
40593 pub fn ZwSaveKeyEx(KeyHandle: HANDLE, FileHandle: HANDLE, Format: ULONG) -> NTSTATUS;
40594}
40595unsafe extern "C" {
40596 pub fn ZwRestoreKey(KeyHandle: HANDLE, FileHandle: HANDLE, Flags: ULONG) -> NTSTATUS;
40597}
40598unsafe extern "C" {
40599 pub fn ZwSetInformationKey(
40600 KeyHandle: HANDLE,
40601 KeySetInformationClass: KEY_SET_INFORMATION_CLASS,
40602 KeySetInformation: PVOID,
40603 KeySetInformationLength: ULONG,
40604 ) -> NTSTATUS;
40605}
40606unsafe extern "C" {
40607 pub fn ZwSetValueKey(
40608 KeyHandle: HANDLE,
40609 ValueName: PUNICODE_STRING,
40610 TitleIndex: ULONG,
40611 Type: ULONG,
40612 Data: PVOID,
40613 DataSize: ULONG,
40614 ) -> NTSTATUS;
40615}
40616unsafe extern "C" {
40617 pub fn ZwOpenSymbolicLinkObject(
40618 LinkHandle: PHANDLE,
40619 DesiredAccess: ACCESS_MASK,
40620 ObjectAttributes: POBJECT_ATTRIBUTES,
40621 ) -> NTSTATUS;
40622}
40623unsafe extern "C" {
40624 pub fn ZwQuerySymbolicLinkObject(
40625 LinkHandle: HANDLE,
40626 LinkTarget: PUNICODE_STRING,
40627 ReturnedLength: PULONG,
40628 ) -> NTSTATUS;
40629}
40630unsafe extern "C" {
40631 pub fn ZwCreateTransactionManager(
40632 TmHandle: PHANDLE,
40633 DesiredAccess: ACCESS_MASK,
40634 ObjectAttributes: POBJECT_ATTRIBUTES,
40635 LogFileName: PUNICODE_STRING,
40636 CreateOptions: ULONG,
40637 CommitStrength: ULONG,
40638 ) -> NTSTATUS;
40639}
40640unsafe extern "C" {
40641 pub fn ZwOpenTransactionManager(
40642 TmHandle: PHANDLE,
40643 DesiredAccess: ACCESS_MASK,
40644 ObjectAttributes: POBJECT_ATTRIBUTES,
40645 LogFileName: PUNICODE_STRING,
40646 TmIdentity: LPGUID,
40647 OpenOptions: ULONG,
40648 ) -> NTSTATUS;
40649}
40650unsafe extern "C" {
40651 pub fn ZwRollforwardTransactionManager(
40652 TransactionManagerHandle: HANDLE,
40653 TmVirtualClock: PLARGE_INTEGER,
40654 ) -> NTSTATUS;
40655}
40656unsafe extern "C" {
40657 pub fn ZwRecoverTransactionManager(TransactionManagerHandle: HANDLE) -> NTSTATUS;
40658}
40659unsafe extern "C" {
40660 pub fn ZwQueryInformationTransactionManager(
40661 TransactionManagerHandle: HANDLE,
40662 TransactionManagerInformationClass: TRANSACTIONMANAGER_INFORMATION_CLASS,
40663 TransactionManagerInformation: PVOID,
40664 TransactionManagerInformationLength: ULONG,
40665 ReturnLength: PULONG,
40666 ) -> NTSTATUS;
40667}
40668unsafe extern "C" {
40669 pub fn ZwSetInformationTransactionManager(
40670 TmHandle: HANDLE,
40671 TransactionManagerInformationClass: TRANSACTIONMANAGER_INFORMATION_CLASS,
40672 TransactionManagerInformation: PVOID,
40673 TransactionManagerInformationLength: ULONG,
40674 ) -> NTSTATUS;
40675}
40676unsafe extern "C" {
40677 pub fn ZwEnumerateTransactionObject(
40678 RootObjectHandle: HANDLE,
40679 QueryType: KTMOBJECT_TYPE,
40680 ObjectCursor: PKTMOBJECT_CURSOR,
40681 ObjectCursorLength: ULONG,
40682 ReturnLength: PULONG,
40683 ) -> NTSTATUS;
40684}
40685unsafe extern "C" {
40686 pub fn ZwCreateTransaction(
40687 TransactionHandle: PHANDLE,
40688 DesiredAccess: ACCESS_MASK,
40689 ObjectAttributes: POBJECT_ATTRIBUTES,
40690 Uow: LPGUID,
40691 TmHandle: HANDLE,
40692 CreateOptions: ULONG,
40693 IsolationLevel: ULONG,
40694 IsolationFlags: ULONG,
40695 Timeout: PLARGE_INTEGER,
40696 Description: PUNICODE_STRING,
40697 ) -> NTSTATUS;
40698}
40699unsafe extern "C" {
40700 pub fn ZwOpenTransaction(
40701 TransactionHandle: PHANDLE,
40702 DesiredAccess: ACCESS_MASK,
40703 ObjectAttributes: POBJECT_ATTRIBUTES,
40704 Uow: LPGUID,
40705 TmHandle: HANDLE,
40706 ) -> NTSTATUS;
40707}
40708unsafe extern "C" {
40709 pub fn ZwQueryInformationTransaction(
40710 TransactionHandle: HANDLE,
40711 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
40712 TransactionInformation: PVOID,
40713 TransactionInformationLength: ULONG,
40714 ReturnLength: PULONG,
40715 ) -> NTSTATUS;
40716}
40717unsafe extern "C" {
40718 pub fn ZwSetInformationTransaction(
40719 TransactionHandle: HANDLE,
40720 TransactionInformationClass: TRANSACTION_INFORMATION_CLASS,
40721 TransactionInformation: PVOID,
40722 TransactionInformationLength: ULONG,
40723 ) -> NTSTATUS;
40724}
40725unsafe extern "C" {
40726 pub fn ZwCommitTransaction(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS;
40727}
40728unsafe extern "C" {
40729 pub fn ZwRollbackTransaction(TransactionHandle: HANDLE, Wait: BOOLEAN) -> NTSTATUS;
40730}
40731unsafe extern "C" {
40732 pub fn ZwCreateResourceManager(
40733 ResourceManagerHandle: PHANDLE,
40734 DesiredAccess: ACCESS_MASK,
40735 TmHandle: HANDLE,
40736 ResourceManagerGuid: LPGUID,
40737 ObjectAttributes: POBJECT_ATTRIBUTES,
40738 CreateOptions: ULONG,
40739 Description: PUNICODE_STRING,
40740 ) -> NTSTATUS;
40741}
40742unsafe extern "C" {
40743 pub fn ZwOpenResourceManager(
40744 ResourceManagerHandle: PHANDLE,
40745 DesiredAccess: ACCESS_MASK,
40746 TmHandle: HANDLE,
40747 ResourceManagerGuid: LPGUID,
40748 ObjectAttributes: POBJECT_ATTRIBUTES,
40749 ) -> NTSTATUS;
40750}
40751unsafe extern "C" {
40752 pub fn ZwRecoverResourceManager(ResourceManagerHandle: HANDLE) -> NTSTATUS;
40753}
40754unsafe extern "C" {
40755 pub fn ZwGetNotificationResourceManager(
40756 ResourceManagerHandle: HANDLE,
40757 TransactionNotification: PTRANSACTION_NOTIFICATION,
40758 NotificationLength: ULONG,
40759 Timeout: PLARGE_INTEGER,
40760 ReturnLength: PULONG,
40761 Asynchronous: ULONG,
40762 AsynchronousContext: ULONG_PTR,
40763 ) -> NTSTATUS;
40764}
40765unsafe extern "C" {
40766 pub fn ZwQueryInformationResourceManager(
40767 ResourceManagerHandle: HANDLE,
40768 ResourceManagerInformationClass: RESOURCEMANAGER_INFORMATION_CLASS,
40769 ResourceManagerInformation: PVOID,
40770 ResourceManagerInformationLength: ULONG,
40771 ReturnLength: PULONG,
40772 ) -> NTSTATUS;
40773}
40774unsafe extern "C" {
40775 pub fn ZwSetInformationResourceManager(
40776 ResourceManagerHandle: HANDLE,
40777 ResourceManagerInformationClass: RESOURCEMANAGER_INFORMATION_CLASS,
40778 ResourceManagerInformation: PVOID,
40779 ResourceManagerInformationLength: ULONG,
40780 ) -> NTSTATUS;
40781}
40782unsafe extern "C" {
40783 pub fn ZwCreateEnlistment(
40784 EnlistmentHandle: PHANDLE,
40785 DesiredAccess: ACCESS_MASK,
40786 ResourceManagerHandle: HANDLE,
40787 TransactionHandle: HANDLE,
40788 ObjectAttributes: POBJECT_ATTRIBUTES,
40789 CreateOptions: ULONG,
40790 NotificationMask: NOTIFICATION_MASK,
40791 EnlistmentKey: PVOID,
40792 ) -> NTSTATUS;
40793}
40794unsafe extern "C" {
40795 pub fn ZwOpenEnlistment(
40796 EnlistmentHandle: PHANDLE,
40797 DesiredAccess: ACCESS_MASK,
40798 RmHandle: HANDLE,
40799 EnlistmentGuid: LPGUID,
40800 ObjectAttributes: POBJECT_ATTRIBUTES,
40801 ) -> NTSTATUS;
40802}
40803unsafe extern "C" {
40804 pub fn ZwQueryInformationEnlistment(
40805 EnlistmentHandle: HANDLE,
40806 EnlistmentInformationClass: ENLISTMENT_INFORMATION_CLASS,
40807 EnlistmentInformation: PVOID,
40808 EnlistmentInformationLength: ULONG,
40809 ReturnLength: PULONG,
40810 ) -> NTSTATUS;
40811}
40812unsafe extern "C" {
40813 pub fn ZwSetInformationEnlistment(
40814 EnlistmentHandle: HANDLE,
40815 EnlistmentInformationClass: ENLISTMENT_INFORMATION_CLASS,
40816 EnlistmentInformation: PVOID,
40817 EnlistmentInformationLength: ULONG,
40818 ) -> NTSTATUS;
40819}
40820unsafe extern "C" {
40821 pub fn ZwRecoverEnlistment(EnlistmentHandle: HANDLE, EnlistmentKey: PVOID) -> NTSTATUS;
40822}
40823unsafe extern "C" {
40824 pub fn ZwPrePrepareEnlistment(
40825 EnlistmentHandle: HANDLE,
40826 TmVirtualClock: PLARGE_INTEGER,
40827 ) -> NTSTATUS;
40828}
40829unsafe extern "C" {
40830 pub fn ZwPrepareEnlistment(
40831 EnlistmentHandle: HANDLE,
40832 TmVirtualClock: PLARGE_INTEGER,
40833 ) -> NTSTATUS;
40834}
40835unsafe extern "C" {
40836 pub fn ZwCommitEnlistment(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER)
40837 -> NTSTATUS;
40838}
40839unsafe extern "C" {
40840 pub fn ZwRollbackEnlistment(
40841 EnlistmentHandle: HANDLE,
40842 TmVirtualClock: PLARGE_INTEGER,
40843 ) -> NTSTATUS;
40844}
40845unsafe extern "C" {
40846 pub fn ZwPrePrepareComplete(
40847 EnlistmentHandle: HANDLE,
40848 TmVirtualClock: PLARGE_INTEGER,
40849 ) -> NTSTATUS;
40850}
40851unsafe extern "C" {
40852 pub fn ZwPrepareComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
40853}
40854unsafe extern "C" {
40855 pub fn ZwCommitComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
40856}
40857unsafe extern "C" {
40858 pub fn ZwReadOnlyEnlistment(
40859 EnlistmentHandle: HANDLE,
40860 TmVirtualClock: PLARGE_INTEGER,
40861 ) -> NTSTATUS;
40862}
40863unsafe extern "C" {
40864 pub fn ZwRollbackComplete(EnlistmentHandle: HANDLE, TmVirtualClock: PLARGE_INTEGER)
40865 -> NTSTATUS;
40866}
40867unsafe extern "C" {
40868 pub fn ZwSinglePhaseReject(
40869 EnlistmentHandle: HANDLE,
40870 TmVirtualClock: PLARGE_INTEGER,
40871 ) -> NTSTATUS;
40872}
40873unsafe extern "C" {
40874 pub fn ZwOpenEvent(
40875 EventHandle: PHANDLE,
40876 DesiredAccess: ACCESS_MASK,
40877 ObjectAttributes: POBJECT_ATTRIBUTES,
40878 ) -> NTSTATUS;
40879}
40880unsafe extern "C" {
40881 pub fn ZwQueryInformationByName(
40882 ObjectAttributes: POBJECT_ATTRIBUTES,
40883 IoStatusBlock: PIO_STATUS_BLOCK,
40884 FileInformation: PVOID,
40885 Length: ULONG,
40886 FileInformationClass: FILE_INFORMATION_CLASS,
40887 ) -> NTSTATUS;
40888}
40889unsafe extern "C" {
40890 pub fn ZwQueryFullAttributesFile(
40891 ObjectAttributes: POBJECT_ATTRIBUTES,
40892 FileInformation: PFILE_NETWORK_OPEN_INFORMATION,
40893 ) -> NTSTATUS;
40894}
40895pub type CLFS_CONTAINER_ID = ULONG;
40896pub type PCLFS_CONTAINER_ID = *mut CLFS_CONTAINER_ID;
40897pub type PPCLFS_CONTAINER_ID = *mut *mut CLFS_CONTAINER_ID;
40898#[repr(C)]
40899#[derive(Debug, Copy, Clone)]
40900pub struct _CLS_LSN {
40901 pub Internal: ULONGLONG,
40902}
40903pub type CLS_LSN = _CLS_LSN;
40904pub type PCLS_LSN = *mut _CLS_LSN;
40905pub type PPCLS_LSN = *mut *mut _CLS_LSN;
40906pub type CLFS_LSN = CLS_LSN;
40907pub type PCLFS_LSN = *mut CLFS_LSN;
40908pub type PPCLFS_LSN = *mut *mut CLFS_LSN;
40909unsafe extern "C" {
40910 pub static CLFS_LSN_INVALID: CLFS_LSN;
40911}
40912unsafe extern "C" {
40913 pub static CLFS_LSN_NULL: CLFS_LSN;
40914}
40915pub type CLS_RECORD_TYPE = UCHAR;
40916pub type PCLS_RECORD_TYPE = *mut UCHAR;
40917pub type PPCLS_RECORD_TYPE = *mut *mut UCHAR;
40918pub type CLFS_RECORD_TYPE = CLS_RECORD_TYPE;
40919pub type PCLFS_RECORD_TYPE = *mut CLS_RECORD_TYPE;
40920pub type PPCLFS_RECORD_TYPE = *mut *mut CLS_RECORD_TYPE;
40921pub const _CLS_CONTEXT_MODE_ClsContextNone: _CLS_CONTEXT_MODE = 0;
40922pub const _CLS_CONTEXT_MODE_ClsContextUndoNext: _CLS_CONTEXT_MODE = 1;
40923pub const _CLS_CONTEXT_MODE_ClsContextPrevious: _CLS_CONTEXT_MODE = 2;
40924pub const _CLS_CONTEXT_MODE_ClsContextForward: _CLS_CONTEXT_MODE = 3;
40925pub type _CLS_CONTEXT_MODE = core::ffi::c_int;
40926pub use self::_CLS_CONTEXT_MODE as CLS_CONTEXT_MODE;
40927pub type PCLS_CONTEXT_MODE = *mut _CLS_CONTEXT_MODE;
40928pub type PPCLS_CONTEXT_MODE = *mut *mut _CLS_CONTEXT_MODE;
40929pub const _CLFS_CONTEXT_MODE_ClfsContextNone: _CLFS_CONTEXT_MODE = 0;
40930pub const _CLFS_CONTEXT_MODE_ClfsContextUndoNext: _CLFS_CONTEXT_MODE = 1;
40931pub const _CLFS_CONTEXT_MODE_ClfsContextPrevious: _CLFS_CONTEXT_MODE = 2;
40932pub const _CLFS_CONTEXT_MODE_ClfsContextForward: _CLFS_CONTEXT_MODE = 3;
40933pub type _CLFS_CONTEXT_MODE = core::ffi::c_int;
40934pub use self::_CLFS_CONTEXT_MODE as CLFS_CONTEXT_MODE;
40935pub type PCLFS_CONTEXT_MODE = *mut _CLFS_CONTEXT_MODE;
40936pub type PPCLFS_CONTEXT_MODE = *mut *mut _CLFS_CONTEXT_MODE;
40937#[repr(C)]
40938#[derive(Debug, Copy, Clone)]
40939pub struct _CLFS_NODE_ID {
40940 pub cType: ULONG,
40941 pub cbNode: ULONG,
40942}
40943pub type CLFS_NODE_ID = _CLFS_NODE_ID;
40944pub type PCLFS_NODE_ID = *mut _CLFS_NODE_ID;
40945#[repr(C)]
40946#[derive(Debug, Copy, Clone)]
40947pub struct _CLS_WRITE_ENTRY {
40948 pub Buffer: PVOID,
40949 pub ByteLength: ULONG,
40950}
40951pub type CLS_WRITE_ENTRY = _CLS_WRITE_ENTRY;
40952pub type PCLS_WRITE_ENTRY = *mut _CLS_WRITE_ENTRY;
40953pub type PPCLS_WRITE_ENTRY = *mut *mut _CLS_WRITE_ENTRY;
40954pub type CLFS_WRITE_ENTRY = CLS_WRITE_ENTRY;
40955pub type PCLFS_WRITE_ENTRY = *mut CLFS_WRITE_ENTRY;
40956pub type PPCLFS_WRITE_ENTRY = *mut *mut CLFS_WRITE_ENTRY;
40957pub type CLFS_LOG_ID = GUID;
40958#[repr(C)]
40959#[derive(Debug, Copy, Clone)]
40960pub struct _CLS_INFORMATION {
40961 pub TotalAvailable: LONGLONG,
40962 pub CurrentAvailable: LONGLONG,
40963 pub TotalReservation: LONGLONG,
40964 pub BaseFileSize: ULONGLONG,
40965 pub ContainerSize: ULONGLONG,
40966 pub TotalContainers: ULONG,
40967 pub FreeContainers: ULONG,
40968 pub TotalClients: ULONG,
40969 pub Attributes: ULONG,
40970 pub FlushThreshold: ULONG,
40971 pub SectorSize: ULONG,
40972 pub MinArchiveTailLsn: CLS_LSN,
40973 pub BaseLsn: CLS_LSN,
40974 pub LastFlushedLsn: CLS_LSN,
40975 pub LastLsn: CLS_LSN,
40976 pub RestartLsn: CLS_LSN,
40977 pub Identity: GUID,
40978}
40979pub type CLS_INFORMATION = _CLS_INFORMATION;
40980pub type PCLS_INFORMATION = *mut _CLS_INFORMATION;
40981pub type PPCLS_INFORMATION = *mut _CLS_INFORMATION;
40982pub type CLFS_INFORMATION = CLS_INFORMATION;
40983pub type PCLFS_INFORMATION = *mut CLFS_INFORMATION;
40984pub type PPCLFS_INFORMATION = *mut CLFS_INFORMATION;
40985#[repr(C)]
40986#[derive(Debug, Copy, Clone)]
40987pub struct _CLFS_LOG_NAME_INFORMATION {
40988 pub NameLengthInBytes: USHORT,
40989 pub Name: [WCHAR; 1usize],
40990}
40991pub type CLFS_LOG_NAME_INFORMATION = _CLFS_LOG_NAME_INFORMATION;
40992pub type PCLFS_LOG_NAME_INFORMATION = *mut _CLFS_LOG_NAME_INFORMATION;
40993pub type PPCLFS_LOG_NAME_INFORMATION = *mut *mut _CLFS_LOG_NAME_INFORMATION;
40994#[repr(C)]
40995#[derive(Debug, Copy, Clone)]
40996pub struct _CLFS_STREAM_ID_INFORMATION {
40997 pub StreamIdentifier: UCHAR,
40998}
40999pub type CLFS_STREAM_ID_INFORMATION = _CLFS_STREAM_ID_INFORMATION;
41000pub type PCLFS_STREAM_ID_INFORMATION = *mut _CLFS_STREAM_ID_INFORMATION;
41001pub type PPCLFS_STREAM_ID_INFORMATION = *mut *mut _CLFS_STREAM_ID_INFORMATION;
41002#[repr(C)]
41003#[derive(Debug, Copy, Clone)]
41004pub struct _CLFS_PHYSICAL_LSN_INFORMATION {
41005 pub StreamIdentifier: UCHAR,
41006 pub VirtualLsn: CLFS_LSN,
41007 pub PhysicalLsn: CLFS_LSN,
41008}
41009pub type CLFS_PHYSICAL_LSN_INFORMATION = _CLFS_PHYSICAL_LSN_INFORMATION;
41010pub type PCLFS_PHYSICAL_LSN_INFORMATION = *mut _CLFS_PHYSICAL_LSN_INFORMATION;
41011pub type CLS_CONTAINER_STATE = UINT32;
41012pub type PCLS_CONTAINER_STATE = *mut UINT32;
41013pub type PPCLS_CONTAINER_STATE = *mut UINT32;
41014pub type CLFS_CONTAINER_STATE = CLS_CONTAINER_STATE;
41015pub type PCLFS_CONTAINER_STATE = *mut CLS_CONTAINER_STATE;
41016pub type PPCLFS_CONTAINER_STATE = *mut CLS_CONTAINER_STATE;
41017#[repr(C)]
41018#[derive(Debug, Copy, Clone)]
41019pub struct _CLS_CONTAINER_INFORMATION {
41020 pub FileAttributes: ULONG,
41021 pub CreationTime: ULONGLONG,
41022 pub LastAccessTime: ULONGLONG,
41023 pub LastWriteTime: ULONGLONG,
41024 pub ContainerSize: LONGLONG,
41025 pub FileNameActualLength: ULONG,
41026 pub FileNameLength: ULONG,
41027 pub FileName: [WCHAR; 256usize],
41028 pub State: CLFS_CONTAINER_STATE,
41029 pub PhysicalContainerId: CLFS_CONTAINER_ID,
41030 pub LogicalContainerId: CLFS_CONTAINER_ID,
41031}
41032pub type CLS_CONTAINER_INFORMATION = _CLS_CONTAINER_INFORMATION;
41033pub type PCLS_CONTAINER_INFORMATION = *mut _CLS_CONTAINER_INFORMATION;
41034pub type PPCLS_CONTAINER_INFORMATION = *mut *mut _CLS_CONTAINER_INFORMATION;
41035pub type CLFS_CONTAINER_INFORMATION = CLS_CONTAINER_INFORMATION;
41036pub type PCLFS_CONTAINER_INFORMATION = *mut CLFS_CONTAINER_INFORMATION;
41037pub type PPCLFS_CONTAINER_INFORMATION = *mut *mut CLFS_CONTAINER_INFORMATION;
41038pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogBasicInformation: _CLS_LOG_INFORMATION_CLASS = 0;
41039pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogBasicInformationPhysical: _CLS_LOG_INFORMATION_CLASS =
41040 1;
41041pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogPhysicalNameInformation: _CLS_LOG_INFORMATION_CLASS = 2;
41042pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogStreamIdentifierInformation:
41043_CLS_LOG_INFORMATION_CLASS = 3;
41044pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogSystemMarkingInformation: _CLS_LOG_INFORMATION_CLASS =
41045 4;
41046pub const _CLS_LOG_INFORMATION_CLASS_ClfsLogPhysicalLsnInformation: _CLS_LOG_INFORMATION_CLASS = 5;
41047pub type _CLS_LOG_INFORMATION_CLASS = core::ffi::c_int;
41048pub use self::_CLS_LOG_INFORMATION_CLASS as CLS_LOG_INFORMATION_CLASS;
41049pub type PCLS_LOG_INFORMATION_CLASS = *mut _CLS_LOG_INFORMATION_CLASS;
41050pub type PPCLS_LOG_INFORMATION_CLASS = *mut *mut _CLS_LOG_INFORMATION_CLASS;
41051pub use self::CLS_LOG_INFORMATION_CLASS as CLFS_LOG_INFORMATION_CLASS;
41052pub type PCLFS_LOG_INFORMATION_CLASS = *mut CLFS_LOG_INFORMATION_CLASS;
41053pub type PPCLFS_LOG_INFORMATION_CLASS = *mut *mut CLFS_LOG_INFORMATION_CLASS;
41054pub const _CLS_IOSTATS_CLASS_ClsIoStatsDefault: _CLS_IOSTATS_CLASS = 0;
41055pub const _CLS_IOSTATS_CLASS_ClsIoStatsMax: _CLS_IOSTATS_CLASS = 65535;
41056pub type _CLS_IOSTATS_CLASS = core::ffi::c_int;
41057pub use self::_CLS_IOSTATS_CLASS as CLS_IOSTATS_CLASS;
41058pub type PCLS_IOSTATS_CLASS = *mut _CLS_IOSTATS_CLASS;
41059pub type PPCLS_IOSTATS_CLASS = *mut *mut _CLS_IOSTATS_CLASS;
41060pub const _CLFS_IOSTATS_CLASS_ClfsIoStatsDefault: _CLFS_IOSTATS_CLASS = 0;
41061pub const _CLFS_IOSTATS_CLASS_ClfsIoStatsMax: _CLFS_IOSTATS_CLASS = 65535;
41062pub type _CLFS_IOSTATS_CLASS = core::ffi::c_int;
41063pub use self::_CLFS_IOSTATS_CLASS as CLFS_IOSTATS_CLASS;
41064pub type PCLFS_IOSTATS_CLASS = *mut _CLFS_IOSTATS_CLASS;
41065pub type PPCLFS_IOSTATS_CLASS = *mut *mut _CLFS_IOSTATS_CLASS;
41066#[repr(C)]
41067#[derive(Debug, Copy, Clone)]
41068pub struct _CLS_IO_STATISTICS_HEADER {
41069 pub ubMajorVersion: UCHAR,
41070 pub ubMinorVersion: UCHAR,
41071 pub eStatsClass: CLFS_IOSTATS_CLASS,
41072 pub cbLength: USHORT,
41073 pub coffData: ULONG,
41074}
41075pub type CLS_IO_STATISTICS_HEADER = _CLS_IO_STATISTICS_HEADER;
41076pub type PCLS_IO_STATISTICS_HEADER = *mut _CLS_IO_STATISTICS_HEADER;
41077pub type PPCLS_IO_STATISTICS_HEADER = *mut *mut _CLS_IO_STATISTICS_HEADER;
41078pub type CLFS_IO_STATISTICS_HEADER = CLS_IO_STATISTICS_HEADER;
41079pub type PCLFS_IO_STATISTICS_HEADER = *mut CLFS_IO_STATISTICS_HEADER;
41080pub type PPCLFS_IO_STATISTICS_HEADER = *mut *mut CLFS_IO_STATISTICS_HEADER;
41081#[repr(C)]
41082#[derive(Debug, Copy, Clone)]
41083pub struct _CLS_IO_STATISTICS {
41084 pub hdrIoStats: CLS_IO_STATISTICS_HEADER,
41085 pub cFlush: ULONGLONG,
41086 pub cbFlush: ULONGLONG,
41087 pub cMetaFlush: ULONGLONG,
41088 pub cbMetaFlush: ULONGLONG,
41089}
41090pub type CLS_IO_STATISTICS = _CLS_IO_STATISTICS;
41091pub type PCLS_IO_STATISTICS = *mut _CLS_IO_STATISTICS;
41092pub type PPCLS_IO_STATISTICS = *mut *mut _CLS_IO_STATISTICS;
41093pub type CLFS_IO_STATISTICS = CLS_IO_STATISTICS;
41094pub type PCLFS_IO_STATISTICS = *mut CLFS_IO_STATISTICS;
41095pub type PPCLFS_IO_STATISTICS = *mut *mut CLFS_IO_STATISTICS;
41096pub type CLFS_SCAN_MODE = UCHAR;
41097pub type PCLFS_SCAN_MODE = *mut UCHAR;
41098pub type LOG_FILE_OBJECT = FILE_OBJECT;
41099pub type PLOG_FILE_OBJECT = *mut FILE_OBJECT;
41100pub type PPLOG_FILE_OBJECT = *mut *mut FILE_OBJECT;
41101#[repr(C)]
41102#[derive(Debug, Copy, Clone)]
41103pub struct _CLS_SCAN_CONTEXT {
41104 pub cidNode: CLFS_NODE_ID,
41105 pub plfoLog: PLOG_FILE_OBJECT,
41106 pub cIndex: ULONG,
41107 pub __bindgen_padding_0: u32,
41108 pub cContainers: ULONG,
41109 pub __bindgen_padding_1: u32,
41110 pub cContainersReturned: ULONG,
41111 pub __bindgen_padding_2: [u8; 4usize],
41112 pub eScanMode: CLFS_SCAN_MODE,
41113 pub pinfoContainer: PCLS_CONTAINER_INFORMATION,
41114}
41115pub type CLS_SCAN_CONTEXT = _CLS_SCAN_CONTEXT;
41116pub type PCLS_SCAN_CONTEXT = *mut _CLS_SCAN_CONTEXT;
41117pub type PPCLS_SCAN_CONTEXT = *mut *mut _CLS_SCAN_CONTEXT;
41118pub type CLFS_SCAN_CONTEXT = CLS_SCAN_CONTEXT;
41119pub type PCLFS_SCAN_CONTEXT = *mut CLFS_SCAN_CONTEXT;
41120pub type PPCLFS_SCAN_CONTEXT = *mut *mut CLFS_SCAN_CONTEXT;
41121#[repr(C)]
41122#[derive(Debug, Copy, Clone)]
41123pub struct _CLS_ARCHIVE_DESCRIPTOR {
41124 pub coffLow: ULONGLONG,
41125 pub coffHigh: ULONGLONG,
41126 pub infoContainer: CLS_CONTAINER_INFORMATION,
41127}
41128pub type CLS_ARCHIVE_DESCRIPTOR = _CLS_ARCHIVE_DESCRIPTOR;
41129pub type PCLS_ARCHIVE_DESCRIPTOR = *mut _CLS_ARCHIVE_DESCRIPTOR;
41130pub type PPCLS_ARCHIVE_DESCRIPTOR = *mut *mut _CLS_ARCHIVE_DESCRIPTOR;
41131pub type CLFS_ARCHIVE_DESCRIPTOR = CLS_ARCHIVE_DESCRIPTOR;
41132pub type PCLFS_ARCHIVE_DESCRIPTOR = *mut CLFS_ARCHIVE_DESCRIPTOR;
41133pub type PPCLFS_ARCHIVE_DESCRIPTOR = *mut *mut CLFS_ARCHIVE_DESCRIPTOR;
41134pub type CLFS_BLOCK_ALLOCATION = ::core::option::Option<
41135 unsafe extern "C" fn(cbBufferLength: ULONG, pvUserContext: PVOID) -> PVOID,
41136>;
41137pub type CLFS_BLOCK_DEALLOCATION =
41138::core::option::Option<unsafe extern "C" fn(pvBuffer: PVOID, pvUserContext: PVOID)>;
41139pub const _CLFS_LOG_ARCHIVE_MODE_ClfsLogArchiveEnabled: _CLFS_LOG_ARCHIVE_MODE = 1;
41140pub const _CLFS_LOG_ARCHIVE_MODE_ClfsLogArchiveDisabled: _CLFS_LOG_ARCHIVE_MODE = 2;
41141pub type _CLFS_LOG_ARCHIVE_MODE = core::ffi::c_int;
41142pub use self::_CLFS_LOG_ARCHIVE_MODE as CLFS_LOG_ARCHIVE_MODE;
41143pub type PCLFS_LOG_ARCHIVE_MODE = *mut _CLFS_LOG_ARCHIVE_MODE;
41144unsafe extern "C" {
41145 pub fn ClfsLsnEqual(plsn1: *const CLFS_LSN, plsn2: *const CLFS_LSN) -> BOOLEAN;
41146}
41147unsafe extern "C" {
41148 pub fn ClfsLsnLess(plsn1: *const CLFS_LSN, plsn2: *const CLFS_LSN) -> BOOLEAN;
41149}
41150unsafe extern "C" {
41151 pub fn ClfsLsnGreater(plsn1: *const CLFS_LSN, plsn2: *const CLFS_LSN) -> BOOLEAN;
41152}
41153unsafe extern "C" {
41154 pub fn ClfsLsnNull(plsn: *const CLFS_LSN) -> BOOLEAN;
41155}
41156unsafe extern "C" {
41157 pub fn ClfsLsnContainer(plsn: *const CLFS_LSN) -> CLFS_CONTAINER_ID;
41158}
41159unsafe extern "C" {
41160 pub fn ClfsLsnCreate(
41161 cidContainer: CLFS_CONTAINER_ID,
41162 offBlock: ULONG,
41163 cRecord: ULONG,
41164 ) -> CLFS_LSN;
41165}
41166unsafe extern "C" {
41167 pub fn ClfsLsnBlockOffset(plsn: *const CLFS_LSN) -> ULONG;
41168}
41169unsafe extern "C" {
41170 pub fn ClfsLsnRecordSequence(plsn: *const CLFS_LSN) -> ULONG;
41171}
41172unsafe extern "C" {
41173 pub fn ClfsLsnInvalid(plsn: *const CLFS_LSN) -> BOOLEAN;
41174}
41175unsafe extern "C" {
41176 pub fn ClfsLsnIncrement(plsn: PCLFS_LSN) -> CLFS_LSN;
41177}
41178pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyMaximumSize: _CLFS_MGMT_POLICY_TYPE = 0;
41179pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyMinimumSize: _CLFS_MGMT_POLICY_TYPE = 1;
41180pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyNewContainerSize: _CLFS_MGMT_POLICY_TYPE = 2;
41181pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyGrowthRate: _CLFS_MGMT_POLICY_TYPE = 3;
41182pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyLogTail: _CLFS_MGMT_POLICY_TYPE = 4;
41183pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyAutoShrink: _CLFS_MGMT_POLICY_TYPE = 5;
41184pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyAutoGrow: _CLFS_MGMT_POLICY_TYPE = 6;
41185pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyNewContainerPrefix: _CLFS_MGMT_POLICY_TYPE = 7;
41186pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyNewContainerSuffix: _CLFS_MGMT_POLICY_TYPE = 8;
41187pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyNewContainerExtension: _CLFS_MGMT_POLICY_TYPE = 9;
41188pub const _CLFS_MGMT_POLICY_TYPE_ClfsMgmtPolicyInvalid: _CLFS_MGMT_POLICY_TYPE = 10;
41189pub type _CLFS_MGMT_POLICY_TYPE = core::ffi::c_int;
41190pub use self::_CLFS_MGMT_POLICY_TYPE as CLFS_MGMT_POLICY_TYPE;
41191pub type PCLFS_MGMT_POLICY_TYPE = *mut _CLFS_MGMT_POLICY_TYPE;
41192#[repr(C)]
41193#[derive(Copy, Clone)]
41194pub struct _CLFS_MGMT_POLICY {
41195 pub Version: ULONG,
41196 pub LengthInBytes: ULONG,
41197 pub PolicyFlags: ULONG,
41198 pub PolicyType: CLFS_MGMT_POLICY_TYPE,
41199 pub PolicyParameters: _CLFS_MGMT_POLICY__bindgen_ty_1,
41200}
41201#[repr(C)]
41202#[derive(Copy, Clone)]
41203pub union _CLFS_MGMT_POLICY__bindgen_ty_1 {
41204 pub MaximumSize: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_1,
41205 pub MinimumSize: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_2,
41206 pub NewContainerSize: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_3,
41207 pub GrowthRate: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_4,
41208 pub LogTail: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_5,
41209 pub AutoShrink: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_6,
41210 pub AutoGrow: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_7,
41211 pub NewContainerPrefix: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_8,
41212 pub NewContainerSuffix: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_9,
41213 pub NewContainerExtension: _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_10,
41214}
41215#[repr(C)]
41216#[derive(Debug, Copy, Clone)]
41217pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_1 {
41218 pub Containers: ULONG,
41219}
41220#[repr(C)]
41221#[derive(Debug, Copy, Clone)]
41222pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_2 {
41223 pub Containers: ULONG,
41224}
41225#[repr(C)]
41226#[derive(Debug, Copy, Clone)]
41227pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_3 {
41228 pub SizeInBytes: ULONG,
41229}
41230#[repr(C)]
41231#[derive(Debug, Copy, Clone)]
41232pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_4 {
41233 pub AbsoluteGrowthInContainers: ULONG,
41234 pub RelativeGrowthPercentage: ULONG,
41235}
41236#[repr(C)]
41237#[derive(Debug, Copy, Clone)]
41238pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_5 {
41239 pub MinimumAvailablePercentage: ULONG,
41240 pub MinimumAvailableContainers: ULONG,
41241}
41242#[repr(C)]
41243#[derive(Debug, Copy, Clone)]
41244pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_6 {
41245 pub Percentage: ULONG,
41246}
41247#[repr(C)]
41248#[derive(Debug, Copy, Clone)]
41249pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_7 {
41250 pub Enabled: ULONG,
41251}
41252#[repr(C)]
41253#[derive(Debug, Copy, Clone)]
41254pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_8 {
41255 pub PrefixLengthInBytes: USHORT,
41256 pub PrefixString: [WCHAR; 1usize],
41257}
41258#[repr(C)]
41259#[derive(Debug, Copy, Clone)]
41260pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_9 {
41261 pub NextContainerSuffix: ULONGLONG,
41262}
41263#[repr(C)]
41264#[derive(Debug, Copy, Clone)]
41265pub struct _CLFS_MGMT_POLICY__bindgen_ty_1__bindgen_ty_10 {
41266 pub ExtensionLengthInBytes: USHORT,
41267 pub ExtensionString: [WCHAR; 1usize],
41268}
41269pub type CLFS_MGMT_POLICY = _CLFS_MGMT_POLICY;
41270pub type PCLFS_MGMT_POLICY = *mut _CLFS_MGMT_POLICY;
41271pub const _CLFS_MGMT_NOTIFICATION_TYPE_ClfsMgmtAdvanceTailNotification:
41272_CLFS_MGMT_NOTIFICATION_TYPE = 0;
41273pub const _CLFS_MGMT_NOTIFICATION_TYPE_ClfsMgmtLogFullHandlerNotification:
41274_CLFS_MGMT_NOTIFICATION_TYPE = 1;
41275pub const _CLFS_MGMT_NOTIFICATION_TYPE_ClfsMgmtLogUnpinnedNotification:
41276_CLFS_MGMT_NOTIFICATION_TYPE = 2;
41277pub const _CLFS_MGMT_NOTIFICATION_TYPE_ClfsMgmtLogWriteNotification: _CLFS_MGMT_NOTIFICATION_TYPE =
41278 3;
41279pub type _CLFS_MGMT_NOTIFICATION_TYPE = core::ffi::c_int;
41280pub use self::_CLFS_MGMT_NOTIFICATION_TYPE as CLFS_MGMT_NOTIFICATION_TYPE;
41281pub type PCLFS_MGMT_NOTIFICATION_TYPE = *mut _CLFS_MGMT_NOTIFICATION_TYPE;
41282#[repr(C)]
41283#[derive(Debug, Copy, Clone)]
41284pub struct _CLFS_MGMT_NOTIFICATION {
41285 pub Notification: CLFS_MGMT_NOTIFICATION_TYPE,
41286 pub Lsn: CLFS_LSN,
41287 pub LogIsPinned: USHORT,
41288}
41289pub type CLFS_MGMT_NOTIFICATION = _CLFS_MGMT_NOTIFICATION;
41290pub type PCLFS_MGMT_NOTIFICATION = *mut _CLFS_MGMT_NOTIFICATION;
41291pub type PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK = ::core::option::Option<
41292 unsafe extern "C" fn(
41293 LogFile: PLOG_FILE_OBJECT,
41294 TargetLsn: PCLFS_LSN,
41295 ClientData: PVOID,
41296 ) -> NTSTATUS,
41297>;
41298pub type PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK = ::core::option::Option<
41299 unsafe extern "C" fn(
41300 LogFile: PLOG_FILE_OBJECT,
41301 OperationStatus: NTSTATUS,
41302 LogIsPinned: BOOLEAN,
41303 ClientData: PVOID,
41304 ),
41305>;
41306pub type PCLFS_CLIENT_LOG_UNPINNED_CALLBACK =
41307::core::option::Option<unsafe extern "C" fn(LogFile: PLOG_FILE_OBJECT, ClientData: PVOID)>;
41308pub type PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK = ::core::option::Option<
41309 unsafe extern "C" fn(LogFile: PLOG_FILE_OBJECT, OperationStatus: NTSTATUS, ClientData: PVOID),
41310>;
41311#[repr(C)]
41312#[derive(Debug, Copy, Clone)]
41313pub struct _CLFS_MGMT_CLIENT_REGISTRATION {
41314 pub Version: ULONG,
41315 pub AdvanceTailCallback: PCLFS_CLIENT_ADVANCE_TAIL_CALLBACK,
41316 pub AdvanceTailCallbackData: PVOID,
41317 pub LogGrowthCompleteCallback: PCLFS_CLIENT_LFF_HANDLER_COMPLETE_CALLBACK,
41318 pub LogGrowthCompleteCallbackData: PVOID,
41319 pub LogUnpinnedCallback: PCLFS_CLIENT_LOG_UNPINNED_CALLBACK,
41320 pub LogUnpinnedCallbackData: PVOID,
41321}
41322pub type CLFS_MGMT_CLIENT_REGISTRATION = _CLFS_MGMT_CLIENT_REGISTRATION;
41323pub type PCLFS_MGMT_CLIENT_REGISTRATION = *mut _CLFS_MGMT_CLIENT_REGISTRATION;
41324pub type CLFS_MGMT_CLIENT = PVOID;
41325pub type PCLFS_MGMT_CLIENT = *mut PVOID;
41326unsafe extern "C" {
41327 pub fn ClfsMgmtRegisterManagedClient(
41328 LogFile: PLOG_FILE_OBJECT,
41329 RegistrationData: PCLFS_MGMT_CLIENT_REGISTRATION,
41330 ClientCookie: PCLFS_MGMT_CLIENT,
41331 ) -> NTSTATUS;
41332}
41333unsafe extern "C" {
41334 pub fn ClfsMgmtDeregisterManagedClient(ClientCookie: CLFS_MGMT_CLIENT) -> NTSTATUS;
41335}
41336unsafe extern "C" {
41337 pub fn ClfsMgmtTailAdvanceFailure(Client: CLFS_MGMT_CLIENT, Reason: NTSTATUS) -> NTSTATUS;
41338}
41339unsafe extern "C" {
41340 pub fn ClfsMgmtHandleLogFileFull(Client: CLFS_MGMT_CLIENT) -> NTSTATUS;
41341}
41342unsafe extern "C" {
41343 pub fn ClfsMgmtInstallPolicy(
41344 LogFile: PLOG_FILE_OBJECT,
41345 Policy: PCLFS_MGMT_POLICY,
41346 PolicyLength: ULONG,
41347 ) -> NTSTATUS;
41348}
41349unsafe extern "C" {
41350 pub fn ClfsMgmtQueryPolicy(
41351 LogFile: PLOG_FILE_OBJECT,
41352 PolicyType: CLFS_MGMT_POLICY_TYPE,
41353 Policy: PCLFS_MGMT_POLICY,
41354 PolicyLength: PULONG,
41355 ) -> NTSTATUS;
41356}
41357unsafe extern "C" {
41358 pub fn ClfsMgmtRemovePolicy(
41359 LogFile: PLOG_FILE_OBJECT,
41360 PolicyType: CLFS_MGMT_POLICY_TYPE,
41361 ) -> NTSTATUS;
41362}
41363unsafe extern "C" {
41364 pub fn ClfsMgmtSetLogFileSize(
41365 LogFile: PLOG_FILE_OBJECT,
41366 NewSizeInContainers: PULONGLONG,
41367 ResultingSizeInContainers: PULONGLONG,
41368 CompletionRoutine: PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK,
41369 CompletionRoutineData: PVOID,
41370 ) -> NTSTATUS;
41371}
41372unsafe extern "C" {
41373 pub fn ClfsMgmtSetLogFileSizeAsClient(
41374 LogFile: PLOG_FILE_OBJECT,
41375 ClientCookie: PCLFS_MGMT_CLIENT,
41376 NewSizeInContainers: PULONGLONG,
41377 ResultingSizeInContainers: PULONGLONG,
41378 CompletionRoutine: PCLFS_SET_LOG_SIZE_COMPLETE_CALLBACK,
41379 CompletionRoutineData: PVOID,
41380 ) -> NTSTATUS;
41381}
41382unsafe extern "C" {
41383 pub fn ClfsInitialize() -> NTSTATUS;
41384}
41385unsafe extern "C" {
41386 pub fn ClfsFinalize();
41387}
41388unsafe extern "C" {
41389 pub fn ClfsCreateLogFile(
41390 pplfoLog: PPLOG_FILE_OBJECT,
41391 puszLogFileName: PUNICODE_STRING,
41392 fDesiredAccess: ACCESS_MASK,
41393 dwShareMode: ULONG,
41394 psdLogFile: PSECURITY_DESCRIPTOR,
41395 fCreateDisposition: ULONG,
41396 fCreateOptions: ULONG,
41397 fFlagsAndAttributes: ULONG,
41398 fLogOptionFlag: ULONG,
41399 pvContext: PVOID,
41400 cbContext: ULONG,
41401 ) -> NTSTATUS;
41402}
41403unsafe extern "C" {
41404 pub fn ClfsDeleteLogByPointer(plfoLog: PLOG_FILE_OBJECT) -> NTSTATUS;
41405}
41406unsafe extern "C" {
41407 pub fn ClfsDeleteLogFile(
41408 puszLogFileName: PUNICODE_STRING,
41409 pvReserved: PVOID,
41410 fLogOptionFlag: ULONG,
41411 pvContext: PVOID,
41412 cbContext: ULONG,
41413 ) -> NTSTATUS;
41414}
41415unsafe extern "C" {
41416 pub fn ClfsAddLogContainer(
41417 plfoLog: PLOG_FILE_OBJECT,
41418 pcbContainer: PULONGLONG,
41419 puszContainerPath: PUNICODE_STRING,
41420 ) -> NTSTATUS;
41421}
41422unsafe extern "C" {
41423 pub fn ClfsAddLogContainerSet(
41424 plfoLog: PLOG_FILE_OBJECT,
41425 cContainers: USHORT,
41426 pcbContainer: PULONGLONG,
41427 rguszContainerPath: PUNICODE_STRING,
41428 ) -> NTSTATUS;
41429}
41430unsafe extern "C" {
41431 pub fn ClfsRemoveLogContainer(
41432 plfoLog: PLOG_FILE_OBJECT,
41433 puszContainerPath: PUNICODE_STRING,
41434 fForce: BOOLEAN,
41435 ) -> NTSTATUS;
41436}
41437unsafe extern "C" {
41438 pub fn ClfsRemoveLogContainerSet(
41439 plfoLog: PLOG_FILE_OBJECT,
41440 cContainers: USHORT,
41441 rgwszContainerPath: PUNICODE_STRING,
41442 fForce: BOOLEAN,
41443 ) -> NTSTATUS;
41444}
41445unsafe extern "C" {
41446 pub fn ClfsSetArchiveTail(plfoLog: PLOG_FILE_OBJECT, plsnArchiveTail: PCLFS_LSN) -> NTSTATUS;
41447}
41448unsafe extern "C" {
41449 pub fn ClfsSetEndOfLog(plfoLog: PLOG_FILE_OBJECT, plsnEnd: PCLFS_LSN) -> NTSTATUS;
41450}
41451unsafe extern "C" {
41452 pub fn ClfsCreateScanContext(
41453 plfoLog: PLOG_FILE_OBJECT,
41454 cFromContainer: ULONG,
41455 cContainers: ULONG,
41456 eScanMode: CLFS_SCAN_MODE,
41457 pcxScan: PCLFS_SCAN_CONTEXT,
41458 ) -> NTSTATUS;
41459}
41460unsafe extern "C" {
41461 pub fn ClfsScanLogContainers(
41462 pcxScan: PCLFS_SCAN_CONTEXT,
41463 eScanMode: CLFS_SCAN_MODE,
41464 ) -> NTSTATUS;
41465}
41466unsafe extern "C" {
41467 pub fn ClfsGetContainerName(
41468 plfoLog: PLOG_FILE_OBJECT,
41469 cidLogicalContainer: CLFS_CONTAINER_ID,
41470 puszContainerName: PUNICODE_STRING,
41471 pcActualLenContainerName: PULONG,
41472 ) -> NTSTATUS;
41473}
41474unsafe extern "C" {
41475 pub fn ClfsGetLogFileInformation(
41476 plfoLog: PLOG_FILE_OBJECT,
41477 pinfoBuffer: PCLFS_INFORMATION,
41478 pcbInfoBuffer: PULONG,
41479 ) -> NTSTATUS;
41480}
41481unsafe extern "C" {
41482 pub fn ClfsQueryLogFileInformation(
41483 plfoLog: PLOG_FILE_OBJECT,
41484 eInformationClass: CLFS_LOG_INFORMATION_CLASS,
41485 pinfoInputBuffer: PVOID,
41486 cbinfoInputBuffer: ULONG,
41487 pinfoBuffer: PVOID,
41488 pcbInfoBuffer: PULONG,
41489 ) -> NTSTATUS;
41490}
41491unsafe extern "C" {
41492 pub fn ClfsSetLogFileInformation(
41493 plfoLog: PLOG_FILE_OBJECT,
41494 eInformationClass: CLFS_LOG_INFORMATION_CLASS,
41495 pinfoBuffer: PVOID,
41496 cbBuffer: ULONG,
41497 ) -> NTSTATUS;
41498}
41499unsafe extern "C" {
41500 pub fn ClfsReadRestartArea(
41501 pvMarshalContext: PVOID,
41502 ppvRestartBuffer: *mut PVOID,
41503 pcbRestartBuffer: PULONG,
41504 plsn: PCLFS_LSN,
41505 ppvReadContext: *mut PVOID,
41506 ) -> NTSTATUS;
41507}
41508unsafe extern "C" {
41509 pub fn ClfsReadPreviousRestartArea(
41510 pvReadContext: PVOID,
41511 ppvRestartBuffer: *mut PVOID,
41512 pcbRestartBuffer: PULONG,
41513 plsnRestart: PCLFS_LSN,
41514 ) -> NTSTATUS;
41515}
41516unsafe extern "C" {
41517 pub fn ClfsWriteRestartArea(
41518 pvMarshalContext: PVOID,
41519 pvRestartBuffer: PVOID,
41520 cbRestartBuffer: ULONG,
41521 plsnBase: PCLFS_LSN,
41522 fFlags: ULONG,
41523 pcbWritten: PULONG,
41524 plsnNext: PCLFS_LSN,
41525 ) -> NTSTATUS;
41526}
41527unsafe extern "C" {
41528 pub fn ClfsAdvanceLogBase(
41529 pvMarshalContext: PVOID,
41530 plsnBase: PCLFS_LSN,
41531 fFlags: ULONG,
41532 ) -> NTSTATUS;
41533}
41534unsafe extern "C" {
41535 pub fn ClfsCloseAndResetLogFile(plfoLog: PLOG_FILE_OBJECT) -> NTSTATUS;
41536}
41537unsafe extern "C" {
41538 pub fn ClfsCloseLogFileObject(plfoLog: PLOG_FILE_OBJECT) -> NTSTATUS;
41539}
41540unsafe extern "C" {
41541 pub fn ClfsCreateMarshallingArea(
41542 plfoLog: PLOG_FILE_OBJECT,
41543 ePoolType: POOL_TYPE,
41544 pfnAllocBuffer: PALLOCATE_FUNCTION,
41545 pfnFreeBuffer: PFREE_FUNCTION,
41546 cbMarshallingBuffer: ULONG,
41547 cMaxWriteBuffers: ULONG,
41548 cMaxReadBuffers: ULONG,
41549 ppvMarshalContext: *mut PVOID,
41550 ) -> NTSTATUS;
41551}
41552unsafe extern "C" {
41553 pub fn ClfsCreateMarshallingAreaEx(
41554 plfoLog: PLOG_FILE_OBJECT,
41555 ePoolType: POOL_TYPE,
41556 pfnAllocBuffer: PALLOCATE_FUNCTION,
41557 pfnFreeBuffer: PFREE_FUNCTION,
41558 cbMarshallingBuffer: ULONG,
41559 cMaxWriteBuffers: ULONG,
41560 cMaxReadBuffers: ULONG,
41561 cAlignmentSize: ULONG,
41562 fFlags: ULONGLONG,
41563 ppvMarshalContext: *mut PVOID,
41564 ) -> NTSTATUS;
41565}
41566unsafe extern "C" {
41567 pub fn ClfsDeleteMarshallingArea(pvMarshalContext: PVOID) -> NTSTATUS;
41568}
41569unsafe extern "C" {
41570 pub fn ClfsReserveAndAppendLog(
41571 pvMarshalContext: PVOID,
41572 rgWriteEntries: PCLFS_WRITE_ENTRY,
41573 cWriteEntries: ULONG,
41574 plsnUndoNext: PCLFS_LSN,
41575 plsnPrevious: PCLFS_LSN,
41576 cReserveRecords: ULONG,
41577 rgcbReservation: PLONGLONG,
41578 fFlags: ULONG,
41579 plsn: PCLFS_LSN,
41580 ) -> NTSTATUS;
41581}
41582unsafe extern "C" {
41583 pub fn ClfsReserveAndAppendLogAligned(
41584 pvMarshalContext: PVOID,
41585 rgWriteEntries: PCLFS_WRITE_ENTRY,
41586 cWriteEntries: ULONG,
41587 cbEntryAlignment: ULONG,
41588 plsnUndoNext: PCLFS_LSN,
41589 plsnPrevious: PCLFS_LSN,
41590 cReserveRecords: ULONG,
41591 rgcbReservation: PLONGLONG,
41592 fFlags: ULONG,
41593 plsn: PCLFS_LSN,
41594 ) -> NTSTATUS;
41595}
41596unsafe extern "C" {
41597 pub fn ClfsAlignReservedLog(
41598 pvMarshalContext: PVOID,
41599 cRecords: ULONG,
41600 rgcbReservation: *mut LONGLONG,
41601 pcbAlignReservation: PLONGLONG,
41602 ) -> NTSTATUS;
41603}
41604unsafe extern "C" {
41605 pub fn ClfsAllocReservedLog(
41606 pvMarshalContext: PVOID,
41607 cRecords: ULONG,
41608 pcbAdjustment: PLONGLONG,
41609 ) -> NTSTATUS;
41610}
41611unsafe extern "C" {
41612 pub fn ClfsFreeReservedLog(
41613 pvMarshalContext: PVOID,
41614 cRecords: ULONG,
41615 pcbAdjustment: PLONGLONG,
41616 ) -> NTSTATUS;
41617}
41618unsafe extern "C" {
41619 pub fn ClfsFlushBuffers(pvMarshalContext: PVOID) -> NTSTATUS;
41620}
41621unsafe extern "C" {
41622 pub fn ClfsFlushToLsn(
41623 pvMarshalContext: PVOID,
41624 plsnFlush: PCLFS_LSN,
41625 plsnLastFlushed: PCLFS_LSN,
41626 ) -> NTSTATUS;
41627}
41628unsafe extern "C" {
41629 pub fn ClfsReadLogRecord(
41630 pvMarshalContext: PVOID,
41631 plsnFirst: PCLFS_LSN,
41632 peContextMode: CLFS_CONTEXT_MODE,
41633 ppvReadBuffer: *mut PVOID,
41634 pcbReadBuffer: PULONG,
41635 peRecordType: PCLFS_RECORD_TYPE,
41636 plsnUndoNext: PCLFS_LSN,
41637 plsnPrevious: PCLFS_LSN,
41638 ppvReadContext: *mut PVOID,
41639 ) -> NTSTATUS;
41640}
41641unsafe extern "C" {
41642 pub fn ClfsReadNextLogRecord(
41643 pvReadContext: PVOID,
41644 ppvBuffer: *mut PVOID,
41645 pcbBuffer: PULONG,
41646 peRecordType: PCLFS_RECORD_TYPE,
41647 plsnUser: PCLFS_LSN,
41648 plsnUndoNext: PCLFS_LSN,
41649 plsnPrevious: PCLFS_LSN,
41650 plsnRecord: PCLFS_LSN,
41651 ) -> NTSTATUS;
41652}
41653unsafe extern "C" {
41654 pub fn ClfsTerminateReadLog(pvCursorContext: PVOID) -> NTSTATUS;
41655}
41656unsafe extern "C" {
41657 pub fn ClfsGetLastLsn(plfoLog: PLOG_FILE_OBJECT, plsnLast: PCLFS_LSN) -> NTSTATUS;
41658}
41659unsafe extern "C" {
41660 pub fn ClfsGetIoStatistics(
41661 plfoLog: PLOG_FILE_OBJECT,
41662 pvStatsBuffer: PVOID,
41663 cbStatsBuffer: ULONG,
41664 eStatsClass: CLFS_IOSTATS_CLASS,
41665 pcbStatsWritten: PULONG,
41666 ) -> NTSTATUS;
41667}
41668unsafe extern "C" {
41669 pub fn ClfsLaterLsn(plsn: PCLFS_LSN) -> CLFS_LSN;
41670}
41671unsafe extern "C" {
41672 pub fn ClfsEarlierLsn(plsn: PCLFS_LSN) -> CLFS_LSN;
41673}
41674unsafe extern "C" {
41675 pub fn ClfsLsnDifference(
41676 plsnStart: PCLFS_LSN,
41677 plsnFinish: PCLFS_LSN,
41678 cbContainer: ULONG,
41679 cbMaxBlock: ULONG,
41680 pcbDifference: PLONGLONG,
41681 ) -> NTSTATUS;
41682}
41683unsafe extern "C" {
41684 pub fn ClfsValidTopLevelContext(pirpTopLevelContext: PIRP) -> BOOLEAN;
41685}
41686#[repr(C)]
41687#[derive(Debug, Copy, Clone)]
41688pub struct _KTRANSACTION {
41689 _unused: [u8; 0],
41690}
41691pub type KTRANSACTION = _KTRANSACTION;
41692pub type PKTRANSACTION = *mut _KTRANSACTION;
41693pub type PRKTRANSACTION = *mut _KTRANSACTION;
41694#[repr(C)]
41695#[derive(Debug, Copy, Clone)]
41696pub struct _KENLISTMENT {
41697 _unused: [u8; 0],
41698}
41699pub type KENLISTMENT = _KENLISTMENT;
41700pub type PKENLISTMENT = *mut _KENLISTMENT;
41701pub type PRKENLISTMENT = *mut _KENLISTMENT;
41702#[repr(C)]
41703#[derive(Debug, Copy, Clone)]
41704pub struct _KRESOURCEMANAGER {
41705 _unused: [u8; 0],
41706}
41707pub type KRESOURCEMANAGER = _KRESOURCEMANAGER;
41708pub type PKRESOURCEMANAGER = *mut _KRESOURCEMANAGER;
41709pub type PRKRESOURCEMANAGER = *mut _KRESOURCEMANAGER;
41710#[repr(C)]
41711#[derive(Debug, Copy, Clone)]
41712pub struct _KTM {
41713 _unused: [u8; 0],
41714}
41715pub type KTM = _KTM;
41716pub type PKTM = *mut _KTM;
41717pub type PRKTM = *mut _KTM;
41718pub type PGUID = *mut GUID;
41719pub type PTM_RM_NOTIFICATION = ::core::option::Option<
41720 unsafe extern "C" fn(
41721 EnlistmentObject: PKENLISTMENT,
41722 RMContext: PVOID,
41723 TransactionContext: PVOID,
41724 TransactionNotification: ULONG,
41725 TmVirtualClock: PLARGE_INTEGER,
41726 ArgumentLength: ULONG,
41727 Argument: PVOID,
41728 ) -> NTSTATUS,
41729>;
41730pub type KCRM_PROTOCOL_ID = GUID;
41731pub type PKCRM_PROTOCOL_ID = *mut GUID;
41732pub type PTM_PROPAGATE_ROUTINE = ::core::option::Option<
41733 unsafe extern "C" fn(
41734 PropagationCookie: PVOID,
41735 CallbackData: PVOID,
41736 PropagationStatus: NTSTATUS,
41737 TransactionGuid: GUID,
41738 ) -> NTSTATUS,
41739>;
41740unsafe extern "C" {
41741 pub fn TmInitializeTransactionManager(
41742 TransactionManager: PRKTM,
41743 LogFileName: PCUNICODE_STRING,
41744 TmId: PGUID,
41745 CreateOptions: ULONG,
41746 ) -> NTSTATUS;
41747}
41748unsafe extern "C" {
41749 pub fn TmRenameTransactionManager(
41750 LogFileName: PUNICODE_STRING,
41751 ExistingTransactionManagerGuid: LPGUID,
41752 ) -> NTSTATUS;
41753}
41754unsafe extern "C" {
41755 pub fn TmRecoverTransactionManager(Tm: PKTM, TargetVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
41756}
41757unsafe extern "C" {
41758 pub fn TmCommitTransaction(Transaction: PKTRANSACTION, Wait: BOOLEAN) -> NTSTATUS;
41759}
41760unsafe extern "C" {
41761 pub fn TmRollbackTransaction(Transaction: PKTRANSACTION, Wait: BOOLEAN) -> NTSTATUS;
41762}
41763unsafe extern "C" {
41764 pub fn TmCreateEnlistment(
41765 EnlistmentHandle: PHANDLE,
41766 PreviousMode: KPROCESSOR_MODE,
41767 DesiredAccess: ACCESS_MASK,
41768 ObjectAttributes: POBJECT_ATTRIBUTES,
41769 ResourceManager: PRKRESOURCEMANAGER,
41770 Transaction: PKTRANSACTION,
41771 CreateOptions: ULONG,
41772 NotificationMask: NOTIFICATION_MASK,
41773 EnlistmentKey: PVOID,
41774 ) -> NTSTATUS;
41775}
41776unsafe extern "C" {
41777 pub fn TmRecoverEnlistment(Enlistment: PKENLISTMENT, EnlistmentKey: PVOID) -> NTSTATUS;
41778}
41779unsafe extern "C" {
41780 pub fn TmPrePrepareEnlistment(
41781 Enlistment: PKENLISTMENT,
41782 TmVirtualClock: PLARGE_INTEGER,
41783 ) -> NTSTATUS;
41784}
41785unsafe extern "C" {
41786 pub fn TmPrepareEnlistment(
41787 Enlistment: PKENLISTMENT,
41788 TmVirtualClock: PLARGE_INTEGER,
41789 ) -> NTSTATUS;
41790}
41791unsafe extern "C" {
41792 pub fn TmCommitEnlistment(Enlistment: PKENLISTMENT, TmVirtualClock: PLARGE_INTEGER)
41793 -> NTSTATUS;
41794}
41795unsafe extern "C" {
41796 pub fn TmRollbackEnlistment(
41797 Enlistment: PKENLISTMENT,
41798 TmVirtualClock: PLARGE_INTEGER,
41799 ) -> NTSTATUS;
41800}
41801unsafe extern "C" {
41802 pub fn TmPrePrepareComplete(
41803 Enlistment: PKENLISTMENT,
41804 TmVirtualClock: PLARGE_INTEGER,
41805 ) -> NTSTATUS;
41806}
41807unsafe extern "C" {
41808 pub fn TmPrepareComplete(Enlistment: PKENLISTMENT, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
41809}
41810unsafe extern "C" {
41811 pub fn TmReadOnlyEnlistment(
41812 Enlistment: PKENLISTMENT,
41813 TmVirtualClock: PLARGE_INTEGER,
41814 ) -> NTSTATUS;
41815}
41816unsafe extern "C" {
41817 pub fn TmCommitComplete(Enlistment: PKENLISTMENT, TmVirtualClock: PLARGE_INTEGER) -> NTSTATUS;
41818}
41819unsafe extern "C" {
41820 pub fn TmRollbackComplete(Enlistment: PKENLISTMENT, TmVirtualClock: PLARGE_INTEGER)
41821 -> NTSTATUS;
41822}
41823unsafe extern "C" {
41824 pub fn TmReferenceEnlistmentKey(Enlistment: PKENLISTMENT, Key: *mut PVOID) -> NTSTATUS;
41825}
41826unsafe extern "C" {
41827 pub fn TmDereferenceEnlistmentKey(
41828 Enlistment: PKENLISTMENT,
41829 LastReference: PBOOLEAN,
41830 ) -> NTSTATUS;
41831}
41832unsafe extern "C" {
41833 pub fn TmSinglePhaseReject(
41834 Enlistment: PKENLISTMENT,
41835 TmVirtualClock: PLARGE_INTEGER,
41836 ) -> NTSTATUS;
41837}
41838unsafe extern "C" {
41839 pub fn TmRequestOutcomeEnlistment(
41840 Enlistment: PKENLISTMENT,
41841 TmVirtualClock: PLARGE_INTEGER,
41842 ) -> NTSTATUS;
41843}
41844unsafe extern "C" {
41845 pub fn TmEnableCallbacks(
41846 ResourceManager: PKRESOURCEMANAGER,
41847 CallbackRoutine: PTM_RM_NOTIFICATION,
41848 RMKey: PVOID,
41849 ) -> NTSTATUS;
41850}
41851unsafe extern "C" {
41852 pub fn TmRecoverResourceManager(ResourceManager: PKRESOURCEMANAGER) -> NTSTATUS;
41853}
41854unsafe extern "C" {
41855 pub fn TmPropagationComplete(
41856 ResourceManager: PKRESOURCEMANAGER,
41857 RequestCookie: ULONG,
41858 BufferLength: ULONG,
41859 Buffer: PVOID,
41860 ) -> NTSTATUS;
41861}
41862unsafe extern "C" {
41863 pub fn TmPropagationFailed(
41864 ResourceManager: PKRESOURCEMANAGER,
41865 RequestCookie: ULONG,
41866 Status: NTSTATUS,
41867 ) -> NTSTATUS;
41868}
41869unsafe extern "C" {
41870 pub fn TmGetTransactionId(Transaction: PKTRANSACTION, TransactionId: PUOW);
41871}
41872unsafe extern "C" {
41873 pub fn TmIsTransactionActive(Transaction: PKTRANSACTION) -> BOOLEAN;
41874}
41875#[repr(C)]
41876#[derive(Debug, Copy, Clone)]
41877pub struct _PCW_INSTANCE {
41878 _unused: [u8; 0],
41879}
41880pub type PPCW_INSTANCE = *mut _PCW_INSTANCE;
41881#[repr(C)]
41882#[derive(Debug, Copy, Clone)]
41883pub struct _PCW_REGISTRATION {
41884 _unused: [u8; 0],
41885}
41886pub type PPCW_REGISTRATION = *mut _PCW_REGISTRATION;
41887#[repr(C)]
41888#[derive(Debug, Copy, Clone)]
41889pub struct _PCW_BUFFER {
41890 _unused: [u8; 0],
41891}
41892pub type PPCW_BUFFER = *mut _PCW_BUFFER;
41893#[repr(C)]
41894#[derive(Debug, Copy, Clone)]
41895pub struct _PCW_COUNTER_DESCRIPTOR {
41896 pub Id: USHORT,
41897 pub StructIndex: USHORT,
41898 pub Offset: USHORT,
41899 pub Size: USHORT,
41900}
41901pub type PCW_COUNTER_DESCRIPTOR = _PCW_COUNTER_DESCRIPTOR;
41902pub type PPCW_COUNTER_DESCRIPTOR = *mut _PCW_COUNTER_DESCRIPTOR;
41903#[repr(C)]
41904#[derive(Debug, Copy, Clone)]
41905pub struct _PCW_DATA {
41906 pub Data: *const core::ffi::c_void,
41907 pub Size: ULONG,
41908}
41909pub type PCW_DATA = _PCW_DATA;
41910pub type PPCW_DATA = *mut _PCW_DATA;
41911#[repr(C)]
41912#[derive(Debug, Copy, Clone)]
41913pub struct _PCW_COUNTER_INFORMATION {
41914 pub CounterMask: ULONG64,
41915 pub InstanceMask: PCUNICODE_STRING,
41916}
41917pub type PCW_COUNTER_INFORMATION = _PCW_COUNTER_INFORMATION;
41918pub type PPCW_COUNTER_INFORMATION = *mut _PCW_COUNTER_INFORMATION;
41919#[repr(C)]
41920#[derive(Debug, Copy, Clone)]
41921pub struct _PCW_MASK_INFORMATION {
41922 pub CounterMask: ULONG64,
41923 pub InstanceMask: PCUNICODE_STRING,
41924 pub InstanceId: ULONG,
41925 pub CollectMultiple: BOOLEAN,
41926 pub Buffer: PPCW_BUFFER,
41927 pub CancelEvent: PKEVENT,
41928}
41929pub type PCW_MASK_INFORMATION = _PCW_MASK_INFORMATION;
41930pub type PPCW_MASK_INFORMATION = *mut _PCW_MASK_INFORMATION;
41931#[repr(C)]
41932#[derive(Copy, Clone)]
41933pub union _PCW_CALLBACK_INFORMATION {
41934 pub AddCounter: PCW_COUNTER_INFORMATION,
41935 pub RemoveCounter: PCW_COUNTER_INFORMATION,
41936 pub EnumerateInstances: PCW_MASK_INFORMATION,
41937 pub CollectData: PCW_MASK_INFORMATION,
41938}
41939pub type PCW_CALLBACK_INFORMATION = _PCW_CALLBACK_INFORMATION;
41940pub type PPCW_CALLBACK_INFORMATION = *mut _PCW_CALLBACK_INFORMATION;
41941pub const _PCW_CALLBACK_TYPE_PcwCallbackAddCounter: _PCW_CALLBACK_TYPE = 0;
41942pub const _PCW_CALLBACK_TYPE_PcwCallbackRemoveCounter: _PCW_CALLBACK_TYPE = 1;
41943pub const _PCW_CALLBACK_TYPE_PcwCallbackEnumerateInstances: _PCW_CALLBACK_TYPE = 2;
41944pub const _PCW_CALLBACK_TYPE_PcwCallbackCollectData: _PCW_CALLBACK_TYPE = 3;
41945pub type _PCW_CALLBACK_TYPE = core::ffi::c_int;
41946pub use self::_PCW_CALLBACK_TYPE as PCW_CALLBACK_TYPE;
41947pub type PPCW_CALLBACK_TYPE = *mut _PCW_CALLBACK_TYPE;
41948pub type PPCW_CALLBACK = ::core::option::Option<
41949 unsafe extern "C" fn(
41950 arg1: PCW_CALLBACK_TYPE,
41951 arg2: PPCW_CALLBACK_INFORMATION,
41952 arg3: PVOID,
41953 ) -> NTSTATUS,
41954>;
41955pub const PCW_REGISTRATION_FLAGS_PcwRegistrationNone: PCW_REGISTRATION_FLAGS = 0;
41956pub const PCW_REGISTRATION_FLAGS_PcwRegistrationSiloNeutral: PCW_REGISTRATION_FLAGS = 1;
41957pub type PCW_REGISTRATION_FLAGS = core::ffi::c_int;
41958#[repr(C)]
41959#[derive(Debug, Copy, Clone)]
41960pub struct _PCW_REGISTRATION_INFORMATION {
41961 pub Version: ULONG,
41962 pub Name: PCUNICODE_STRING,
41963 pub CounterCount: ULONG,
41964 pub Counters: PPCW_COUNTER_DESCRIPTOR,
41965 pub Callback: PPCW_CALLBACK,
41966 pub CallbackContext: PVOID,
41967 pub Flags: PCW_REGISTRATION_FLAGS,
41968}
41969pub type PCW_REGISTRATION_INFORMATION = _PCW_REGISTRATION_INFORMATION;
41970pub type PPCW_REGISTRATION_INFORMATION = *mut _PCW_REGISTRATION_INFORMATION;
41971unsafe extern "C" {
41972 pub fn PcwRegister(
41973 Registration: *mut PPCW_REGISTRATION,
41974 Info: PPCW_REGISTRATION_INFORMATION,
41975 ) -> NTSTATUS;
41976}
41977unsafe extern "C" {
41978 pub fn PcwUnregister(Registration: PPCW_REGISTRATION);
41979}
41980unsafe extern "C" {
41981 pub fn PcwCreateInstance(
41982 Instance: *mut PPCW_INSTANCE,
41983 Registration: PPCW_REGISTRATION,
41984 Name: PCUNICODE_STRING,
41985 Count: ULONG,
41986 Data: PPCW_DATA,
41987 ) -> NTSTATUS;
41988}
41989unsafe extern "C" {
41990 pub fn PcwCloseInstance(Instance: PPCW_INSTANCE);
41991}
41992unsafe extern "C" {
41993 pub fn PcwAddInstance(
41994 Buffer: PPCW_BUFFER,
41995 Name: PCUNICODE_STRING,
41996 Id: ULONG,
41997 Count: ULONG,
41998 Data: PPCW_DATA,
41999 ) -> NTSTATUS;
42000}
42001unsafe extern "C" {
42002 pub fn VslCreateSecureSection(
42003 Handle: PHANDLE,
42004 TargetProcess: PEPROCESS,
42005 Mdl: PMDL,
42006 DevicePageProtection: ULONG,
42007 Attributes: ULONG,
42008 ) -> NTSTATUS;
42009}
42010unsafe extern "C" {
42011 pub fn VslDeleteSecureSection(GlobalHandle: HANDLE) -> NTSTATUS;
42012}
42013pub const _DRIVER_RUNTIME_INIT_FLAGS_DrvRtPoolNxOptIn: _DRIVER_RUNTIME_INIT_FLAGS = 1;
42014pub const _DRIVER_RUNTIME_INIT_FLAGS_LastDrvRtFlag: _DRIVER_RUNTIME_INIT_FLAGS = 2;
42015pub type _DRIVER_RUNTIME_INIT_FLAGS = core::ffi::c_int;
42016pub use self::_DRIVER_RUNTIME_INIT_FLAGS as DRIVER_RUNTIME_INIT_FLAGS;
42017pub type PDRIVER_RUNTIME_INIT_FLAGS = *mut _DRIVER_RUNTIME_INIT_FLAGS;
42018pub type PCDRIVER_RUNTIME_INIT_FLAGS = *const _DRIVER_RUNTIME_INIT_FLAGS;
42019unsafe extern "C" {
42020 pub static mut CmKeyObjectType: *mut POBJECT_TYPE;
42021}
42022unsafe extern "C" {
42023 pub static mut IoFileObjectType: *mut POBJECT_TYPE;
42024}
42025unsafe extern "C" {
42026 pub static mut ExEventObjectType: *mut POBJECT_TYPE;
42027}
42028unsafe extern "C" {
42029 pub static mut ExSemaphoreObjectType: *mut POBJECT_TYPE;
42030}
42031unsafe extern "C" {
42032 pub static mut TmTransactionManagerObjectType: *mut POBJECT_TYPE;
42033}
42034unsafe extern "C" {
42035 pub static mut TmResourceManagerObjectType: *mut POBJECT_TYPE;
42036}
42037unsafe extern "C" {
42038 pub static mut TmEnlistmentObjectType: *mut POBJECT_TYPE;
42039}
42040unsafe extern "C" {
42041 pub static mut TmTransactionObjectType: *mut POBJECT_TYPE;
42042}
42043unsafe extern "C" {
42044 pub static mut PsProcessType: *mut POBJECT_TYPE;
42045}
42046unsafe extern "C" {
42047 pub static mut PsThreadType: *mut POBJECT_TYPE;
42048}
42049unsafe extern "C" {
42050 pub static mut PsJobType: *mut POBJECT_TYPE;
42051}
42052unsafe extern "C" {
42053 pub static mut SeTokenObjectType: *mut POBJECT_TYPE;
42054}
42055unsafe extern "C" {
42056 pub static mut ExDesktopObjectType: *mut POBJECT_TYPE;
42057}
42058#[repr(C)]
42059#[derive(Debug, Copy, Clone)]
42060pub struct __crt_locale_data {
42061 pub _address: u8,
42062}
42063#[repr(C)]
42064#[derive(Debug, Copy, Clone)]
42065pub struct __crt_multibyte_data {
42066 pub _address: u8,
42067}
42068#[repr(C)]
42069#[derive(Debug, Copy, Clone)]
42070pub struct _KQUEUE {
42071 pub _address: u8,
42072}
42073#[repr(C)]
42074#[derive(Debug, Copy, Clone)]
42075pub struct _IORING_OBJECT {
42076 pub _address: u8,
42077}