Skip to main content

klib_rs/
wdm.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2#![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}