std\backtrace\src/
windows_sys.rs

1// Bindings generated by `windows-bindgen` 0.58.0
2
3#![allow(
4    non_snake_case,
5    non_upper_case_globals,
6    non_camel_case_types,
7    dead_code,
8    clippy::all
9)]
10windows_targets::link!("dbghelp.dll" "system" fn EnumerateLoadedModulesW64(hprocess : HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACKW64, usercontext : *const core::ffi::c_void) -> BOOL);
11windows_targets::link!("dbghelp.dll" "system" fn StackWalk64(machinetype : u32, hprocess : HANDLE, hthread : HANDLE, stackframe : *mut STACKFRAME64, contextrecord : *mut core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64, translateaddress : PTRANSLATE_ADDRESS_ROUTINE64) -> BOOL);
12windows_targets::link!("dbghelp.dll" "system" fn StackWalkEx(machinetype : u32, hprocess : HANDLE, hthread : HANDLE, stackframe : *mut STACKFRAME_EX, contextrecord : *mut core::ffi::c_void, readmemoryroutine : PREAD_PROCESS_MEMORY_ROUTINE64, functiontableaccessroutine : PFUNCTION_TABLE_ACCESS_ROUTINE64, getmodulebaseroutine : PGET_MODULE_BASE_ROUTINE64, translateaddress : PTRANSLATE_ADDRESS_ROUTINE64, flags : u32) -> BOOL);
13windows_targets::link!("dbghelp.dll" "system" fn SymAddrIncludeInlineTrace(hprocess : HANDLE, address : u64) -> u32);
14windows_targets::link!("dbghelp.dll" "system" fn SymFromAddrW(hprocess : HANDLE, address : u64, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> BOOL);
15windows_targets::link!("dbghelp.dll" "system" fn SymFromInlineContextW(hprocess : HANDLE, address : u64, inlinecontext : u32, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> BOOL);
16windows_targets::link!("dbghelp.dll" "system" fn SymFunctionTableAccess64(hprocess : HANDLE, addrbase : u64) -> *mut core::ffi::c_void);
17windows_targets::link!("dbghelp.dll" "system" fn SymGetLineFromAddrW64(hprocess : HANDLE, dwaddr : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> BOOL);
18windows_targets::link!("dbghelp.dll" "system" fn SymGetLineFromInlineContextW(hprocess : HANDLE, dwaddr : u64, inlinecontext : u32, qwmodulebaseaddress : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> BOOL);
19windows_targets::link!("dbghelp.dll" "system" fn SymGetModuleBase64(hprocess : HANDLE, qwaddr : u64) -> u64);
20windows_targets::link!("dbghelp.dll" "system" fn SymGetOptions() -> u32);
21windows_targets::link!("dbghelp.dll" "system" fn SymGetSearchPathW(hprocess : HANDLE, searchpatha : PWSTR, searchpathlength : u32) -> BOOL);
22windows_targets::link!("dbghelp.dll" "system" fn SymInitializeW(hprocess : HANDLE, usersearchpath : PCWSTR, finvadeprocess : BOOL) -> BOOL);
23windows_targets::link!("dbghelp.dll" "system" fn SymQueryInlineTrace(hprocess : HANDLE, startaddress : u64, startcontext : u32, startretaddress : u64, curaddress : u64, curcontext : *mut u32, curframeindex : *mut u32) -> BOOL);
24windows_targets::link!("dbghelp.dll" "system" fn SymSetOptions(symoptions : u32) -> u32);
25windows_targets::link!("dbghelp.dll" "system" fn SymSetSearchPathW(hprocess : HANDLE, searchpatha : PCWSTR) -> BOOL);
26windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL);
27windows_targets::link!("kernel32.dll" "system" fn CreateFileMappingA(hfile : HANDLE, lpfilemappingattributes : *const SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : PCSTR) -> HANDLE);
28windows_targets::link!("kernel32.dll" "system" fn CreateMutexA(lpmutexattributes : *const SECURITY_ATTRIBUTES, binitialowner : BOOL, lpname : PCSTR) -> HANDLE);
29windows_targets::link!("kernel32.dll" "system" fn CreateToolhelp32Snapshot(dwflags : CREATE_TOOLHELP_SNAPSHOT_FLAGS, th32processid : u32) -> HANDLE);
30windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcess() -> HANDLE);
31windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32);
32windows_targets::link!("kernel32.dll" "system" fn GetCurrentThread() -> HANDLE);
33windows_targets::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC);
34windows_targets::link!("kernel32.dll" "system" fn LoadLibraryA(lplibfilename : PCSTR) -> HMODULE);
35windows_targets::link!("kernel32.dll" "system" fn MapViewOfFile(hfilemappingobject : HANDLE, dwdesiredaccess : FILE_MAP, dwfileoffsethigh : u32, dwfileoffsetlow : u32, dwnumberofbytestomap : usize) -> MEMORY_MAPPED_VIEW_ADDRESS);
36windows_targets::link!("kernel32.dll" "system" fn Module32FirstW(hsnapshot : HANDLE, lpme : *mut MODULEENTRY32W) -> BOOL);
37windows_targets::link!("kernel32.dll" "system" fn Module32NextW(hsnapshot : HANDLE, lpme : *mut MODULEENTRY32W) -> BOOL);
38windows_targets::link!("kernel32.dll" "system" fn ReleaseMutex(hmutex : HANDLE) -> BOOL);
39windows_targets::link!("kernel32.dll" "system" fn RtlCaptureContext(contextrecord : *mut CONTEXT));
40#[cfg(target_arch = "aarch64")]
41windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : usize, imagebase : *mut usize, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY);
42#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
43windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : u64, imagebase : *mut u64, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY);
44#[cfg(target_arch = "aarch64")]
45windows_targets::link!("kernel32.dll" "system" fn RtlVirtualUnwind(handlertype : RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase : usize, controlpc : usize, functionentry : *const IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY, contextrecord : *mut CONTEXT, handlerdata : *mut *mut core::ffi::c_void, establisherframe : *mut usize, contextpointers : *mut KNONVOLATILE_CONTEXT_POINTERS) -> EXCEPTION_ROUTINE);
46#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
47windows_targets::link!("kernel32.dll" "system" fn RtlVirtualUnwind(handlertype : RTL_VIRTUAL_UNWIND_HANDLER_TYPE, imagebase : u64, controlpc : u64, functionentry : *const IMAGE_RUNTIME_FUNCTION_ENTRY, contextrecord : *mut CONTEXT, handlerdata : *mut *mut core::ffi::c_void, establisherframe : *mut u64, contextpointers : *mut KNONVOLATILE_CONTEXT_POINTERS) -> EXCEPTION_ROUTINE);
48windows_targets::link!("kernel32.dll" "system" fn UnmapViewOfFile(lpbaseaddress : MEMORY_MAPPED_VIEW_ADDRESS) -> BOOL);
49windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObjectEx(hhandle : HANDLE, dwmilliseconds : u32, balertable : BOOL) -> WAIT_EVENT);
50windows_targets::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32);
51windows_targets::link!("kernel32.dll" "system" fn lstrlenW(lpstring : PCWSTR) -> i32);
52#[repr(C)]
53#[derive(Clone, Copy)]
54pub struct ADDRESS64 {
55    pub Offset: u64,
56    pub Segment: u16,
57    pub Mode: ADDRESS_MODE,
58}
59pub type ADDRESS_MODE = i32;
60#[repr(C)]
61#[derive(Clone, Copy)]
62pub union ARM64_NT_NEON128 {
63    pub Anonymous: ARM64_NT_NEON128_0,
64    pub D: [f64; 2],
65    pub S: [f32; 4],
66    pub H: [u16; 8],
67    pub B: [u8; 16],
68}
69#[repr(C)]
70#[derive(Clone, Copy)]
71pub struct ARM64_NT_NEON128_0 {
72    pub Low: u64,
73    pub High: i64,
74}
75pub const AddrModeFlat: ADDRESS_MODE = 3i32;
76pub type BOOL = i32;
77#[repr(C)]
78#[cfg(target_arch = "aarch64")]
79#[derive(Clone, Copy)]
80pub struct CONTEXT {
81    pub ContextFlags: CONTEXT_FLAGS,
82    pub Cpsr: u32,
83    pub Anonymous: CONTEXT_0,
84    pub Sp: u64,
85    pub Pc: u64,
86    pub V: [ARM64_NT_NEON128; 32],
87    pub Fpcr: u32,
88    pub Fpsr: u32,
89    pub Bcr: [u32; 8],
90    pub Bvr: [u64; 8],
91    pub Wcr: [u32; 2],
92    pub Wvr: [u64; 2],
93}
94#[repr(C)]
95#[cfg(target_arch = "aarch64")]
96#[derive(Clone, Copy)]
97pub union CONTEXT_0 {
98    pub Anonymous: CONTEXT_0_0,
99    pub X: [u64; 31],
100}
101#[repr(C)]
102#[cfg(target_arch = "aarch64")]
103#[derive(Clone, Copy)]
104pub struct CONTEXT_0_0 {
105    pub X0: u64,
106    pub X1: u64,
107    pub X2: u64,
108    pub X3: u64,
109    pub X4: u64,
110    pub X5: u64,
111    pub X6: u64,
112    pub X7: u64,
113    pub X8: u64,
114    pub X9: u64,
115    pub X10: u64,
116    pub X11: u64,
117    pub X12: u64,
118    pub X13: u64,
119    pub X14: u64,
120    pub X15: u64,
121    pub X16: u64,
122    pub X17: u64,
123    pub X18: u64,
124    pub X19: u64,
125    pub X20: u64,
126    pub X21: u64,
127    pub X22: u64,
128    pub X23: u64,
129    pub X24: u64,
130    pub X25: u64,
131    pub X26: u64,
132    pub X27: u64,
133    pub X28: u64,
134    pub Fp: u64,
135    pub Lr: u64,
136}
137#[repr(C)]
138#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
139#[derive(Clone, Copy)]
140pub struct CONTEXT {
141    pub P1Home: u64,
142    pub P2Home: u64,
143    pub P3Home: u64,
144    pub P4Home: u64,
145    pub P5Home: u64,
146    pub P6Home: u64,
147    pub ContextFlags: CONTEXT_FLAGS,
148    pub MxCsr: u32,
149    pub SegCs: u16,
150    pub SegDs: u16,
151    pub SegEs: u16,
152    pub SegFs: u16,
153    pub SegGs: u16,
154    pub SegSs: u16,
155    pub EFlags: u32,
156    pub Dr0: u64,
157    pub Dr1: u64,
158    pub Dr2: u64,
159    pub Dr3: u64,
160    pub Dr6: u64,
161    pub Dr7: u64,
162    pub Rax: u64,
163    pub Rcx: u64,
164    pub Rdx: u64,
165    pub Rbx: u64,
166    pub Rsp: u64,
167    pub Rbp: u64,
168    pub Rsi: u64,
169    pub Rdi: u64,
170    pub R8: u64,
171    pub R9: u64,
172    pub R10: u64,
173    pub R11: u64,
174    pub R12: u64,
175    pub R13: u64,
176    pub R14: u64,
177    pub R15: u64,
178    pub Rip: u64,
179    pub Anonymous: CONTEXT_0,
180    pub VectorRegister: [M128A; 26],
181    pub VectorControl: u64,
182    pub DebugControl: u64,
183    pub LastBranchToRip: u64,
184    pub LastBranchFromRip: u64,
185    pub LastExceptionToRip: u64,
186    pub LastExceptionFromRip: u64,
187}
188#[repr(C)]
189#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
190#[derive(Clone, Copy)]
191pub union CONTEXT_0 {
192    pub FltSave: XSAVE_FORMAT,
193    pub Anonymous: CONTEXT_0_0,
194}
195#[repr(C)]
196#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
197#[derive(Clone, Copy)]
198pub struct CONTEXT_0_0 {
199    pub Header: [M128A; 2],
200    pub Legacy: [M128A; 8],
201    pub Xmm0: M128A,
202    pub Xmm1: M128A,
203    pub Xmm2: M128A,
204    pub Xmm3: M128A,
205    pub Xmm4: M128A,
206    pub Xmm5: M128A,
207    pub Xmm6: M128A,
208    pub Xmm7: M128A,
209    pub Xmm8: M128A,
210    pub Xmm9: M128A,
211    pub Xmm10: M128A,
212    pub Xmm11: M128A,
213    pub Xmm12: M128A,
214    pub Xmm13: M128A,
215    pub Xmm14: M128A,
216    pub Xmm15: M128A,
217}
218#[repr(C)]
219#[cfg(target_arch = "x86")]
220#[derive(Clone, Copy)]
221pub struct CONTEXT {
222    pub ContextFlags: CONTEXT_FLAGS,
223    pub Dr0: u32,
224    pub Dr1: u32,
225    pub Dr2: u32,
226    pub Dr3: u32,
227    pub Dr6: u32,
228    pub Dr7: u32,
229    pub FloatSave: FLOATING_SAVE_AREA,
230    pub SegGs: u32,
231    pub SegFs: u32,
232    pub SegEs: u32,
233    pub SegDs: u32,
234    pub Edi: u32,
235    pub Esi: u32,
236    pub Ebx: u32,
237    pub Edx: u32,
238    pub Ecx: u32,
239    pub Eax: u32,
240    pub Ebp: u32,
241    pub Eip: u32,
242    pub SegCs: u32,
243    pub EFlags: u32,
244    pub Esp: u32,
245    pub SegSs: u32,
246    pub ExtendedRegisters: [u8; 512],
247}
248
249pub type CONTEXT_FLAGS = u32;
250pub const CP_UTF8: u32 = 65001u32;
251pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32;
252pub type EXCEPTION_DISPOSITION = i32;
253#[repr(C)]
254#[derive(Clone, Copy)]
255pub struct EXCEPTION_RECORD {
256    pub ExceptionCode: NTSTATUS,
257    pub ExceptionFlags: u32,
258    pub ExceptionRecord: *mut EXCEPTION_RECORD,
259    pub ExceptionAddress: *mut core::ffi::c_void,
260    pub NumberParameters: u32,
261    pub ExceptionInformation: [usize; 15],
262}
263pub type EXCEPTION_ROUTINE = Option<
264    unsafe extern "system" fn(
265        exceptionrecord: *mut EXCEPTION_RECORD,
266        establisherframe: *const core::ffi::c_void,
267        contextrecord: *mut CONTEXT,
268        dispatchercontext: *const core::ffi::c_void,
269    ) -> EXCEPTION_DISPOSITION,
270>;
271pub const FALSE: BOOL = 0i32;
272pub type FARPROC = Option<unsafe extern "system" fn() -> isize>;
273pub type FILE_MAP = u32;
274pub const FILE_MAP_READ: FILE_MAP = 4u32;
275#[repr(C)]
276#[cfg(any(
277    target_arch = "aarch64",
278    target_arch = "arm64ec",
279    target_arch = "x86_64"
280))]
281#[derive(Clone, Copy)]
282pub struct FLOATING_SAVE_AREA {
283    pub ControlWord: u32,
284    pub StatusWord: u32,
285    pub TagWord: u32,
286    pub ErrorOffset: u32,
287    pub ErrorSelector: u32,
288    pub DataOffset: u32,
289    pub DataSelector: u32,
290    pub RegisterArea: [u8; 80],
291    pub Cr0NpxState: u32,
292}
293#[repr(C)]
294#[cfg(target_arch = "x86")]
295#[derive(Clone, Copy)]
296pub struct FLOATING_SAVE_AREA {
297    pub ControlWord: u32,
298    pub StatusWord: u32,
299    pub TagWord: u32,
300    pub ErrorOffset: u32,
301    pub ErrorSelector: u32,
302    pub DataOffset: u32,
303    pub DataSelector: u32,
304    pub RegisterArea: [u8; 80],
305    pub Spare0: u32,
306}
307pub type HANDLE = *mut core::ffi::c_void;
308pub type HINSTANCE = *mut core::ffi::c_void;
309pub type HMODULE = *mut core::ffi::c_void;
310#[repr(C)]
311#[derive(Clone, Copy)]
312pub struct IMAGEHLP_LINEW64 {
313    pub SizeOfStruct: u32,
314    pub Key: *mut core::ffi::c_void,
315    pub LineNumber: u32,
316    pub FileName: PWSTR,
317    pub Address: u64,
318}
319#[repr(C)]
320#[derive(Clone, Copy)]
321pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
322    pub BeginAddress: u32,
323    pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0,
324}
325#[repr(C)]
326#[derive(Clone, Copy)]
327pub union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
328    pub UnwindData: u32,
329    pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0,
330}
331#[repr(C)]
332#[derive(Clone, Copy)]
333pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
334    pub _bitfield: u32,
335}
336pub type IMAGE_FILE_MACHINE = u16;
337pub const IMAGE_FILE_MACHINE_I386: IMAGE_FILE_MACHINE = 332u16;
338#[repr(C)]
339#[derive(Clone, Copy)]
340pub struct IMAGE_RUNTIME_FUNCTION_ENTRY {
341    pub BeginAddress: u32,
342    pub EndAddress: u32,
343    pub Anonymous: IMAGE_RUNTIME_FUNCTION_ENTRY_0,
344}
345#[repr(C)]
346#[derive(Clone, Copy)]
347pub union IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
348    pub UnwindInfoAddress: u32,
349    pub UnwindData: u32,
350}
351pub const INFINITE: u32 = 4294967295u32;
352pub const INVALID_HANDLE_VALUE: HANDLE = -1i32 as _;
353#[repr(C)]
354#[derive(Clone, Copy)]
355pub struct KDHELP64 {
356    pub Thread: u64,
357    pub ThCallbackStack: u32,
358    pub ThCallbackBStore: u32,
359    pub NextCallback: u32,
360    pub FramePointer: u32,
361    pub KiCallUserMode: u64,
362    pub KeUserCallbackDispatcher: u64,
363    pub SystemRangeStart: u64,
364    pub KiUserExceptionDispatcher: u64,
365    pub StackBase: u64,
366    pub StackLimit: u64,
367    pub BuildVersion: u32,
368    pub RetpolineStubFunctionTableSize: u32,
369    pub RetpolineStubFunctionTable: u64,
370    pub RetpolineStubOffset: u32,
371    pub RetpolineStubSize: u32,
372    pub Reserved0: [u64; 2],
373}
374#[repr(C)]
375#[cfg(target_arch = "aarch64")]
376#[derive(Clone, Copy)]
377pub struct KNONVOLATILE_CONTEXT_POINTERS {
378    pub X19: *mut u64,
379    pub X20: *mut u64,
380    pub X21: *mut u64,
381    pub X22: *mut u64,
382    pub X23: *mut u64,
383    pub X24: *mut u64,
384    pub X25: *mut u64,
385    pub X26: *mut u64,
386    pub X27: *mut u64,
387    pub X28: *mut u64,
388    pub Fp: *mut u64,
389    pub Lr: *mut u64,
390    pub D8: *mut u64,
391    pub D9: *mut u64,
392    pub D10: *mut u64,
393    pub D11: *mut u64,
394    pub D12: *mut u64,
395    pub D13: *mut u64,
396    pub D14: *mut u64,
397    pub D15: *mut u64,
398}
399#[repr(C)]
400#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
401#[derive(Clone, Copy)]
402pub struct KNONVOLATILE_CONTEXT_POINTERS {
403    pub Anonymous1: KNONVOLATILE_CONTEXT_POINTERS_0,
404    pub Anonymous2: KNONVOLATILE_CONTEXT_POINTERS_1,
405}
406#[repr(C)]
407#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
408#[derive(Clone, Copy)]
409pub union KNONVOLATILE_CONTEXT_POINTERS_0 {
410    pub FloatingContext: [*mut M128A; 16],
411    pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_0_0,
412}
413#[repr(C)]
414#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
415#[derive(Clone, Copy)]
416pub struct KNONVOLATILE_CONTEXT_POINTERS_0_0 {
417    pub Xmm0: *mut M128A,
418    pub Xmm1: *mut M128A,
419    pub Xmm2: *mut M128A,
420    pub Xmm3: *mut M128A,
421    pub Xmm4: *mut M128A,
422    pub Xmm5: *mut M128A,
423    pub Xmm6: *mut M128A,
424    pub Xmm7: *mut M128A,
425    pub Xmm8: *mut M128A,
426    pub Xmm9: *mut M128A,
427    pub Xmm10: *mut M128A,
428    pub Xmm11: *mut M128A,
429    pub Xmm12: *mut M128A,
430    pub Xmm13: *mut M128A,
431    pub Xmm14: *mut M128A,
432    pub Xmm15: *mut M128A,
433}
434#[repr(C)]
435#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
436#[derive(Clone, Copy)]
437pub union KNONVOLATILE_CONTEXT_POINTERS_1 {
438    pub IntegerContext: [*mut u64; 16],
439    pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_1_0,
440}
441#[repr(C)]
442#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
443#[derive(Clone, Copy)]
444pub struct KNONVOLATILE_CONTEXT_POINTERS_1_0 {
445    pub Rax: *mut u64,
446    pub Rcx: *mut u64,
447    pub Rdx: *mut u64,
448    pub Rbx: *mut u64,
449    pub Rsp: *mut u64,
450    pub Rbp: *mut u64,
451    pub Rsi: *mut u64,
452    pub Rdi: *mut u64,
453    pub R8: *mut u64,
454    pub R9: *mut u64,
455    pub R10: *mut u64,
456    pub R11: *mut u64,
457    pub R12: *mut u64,
458    pub R13: *mut u64,
459    pub R14: *mut u64,
460    pub R15: *mut u64,
461}
462#[repr(C)]
463#[cfg(target_arch = "x86")]
464#[derive(Clone, Copy)]
465pub struct KNONVOLATILE_CONTEXT_POINTERS {
466    pub Dummy: u32,
467}
468#[repr(C)]
469#[derive(Clone, Copy)]
470pub struct M128A {
471    pub Low: u64,
472    pub High: i64,
473}
474pub const MAX_SYM_NAME: u32 = 2000u32;
475#[repr(C)]
476#[derive(Clone, Copy)]
477pub struct MEMORY_MAPPED_VIEW_ADDRESS {
478    pub Value: *mut core::ffi::c_void,
479}
480#[repr(C)]
481#[derive(Clone, Copy)]
482pub struct MODULEENTRY32W {
483    pub dwSize: u32,
484    pub th32ModuleID: u32,
485    pub th32ProcessID: u32,
486    pub GlblcntUsage: u32,
487    pub ProccntUsage: u32,
488    pub modBaseAddr: *mut u8,
489    pub modBaseSize: u32,
490    pub hModule: HMODULE,
491    pub szModule: [u16; 256],
492    pub szExePath: [u16; 260],
493}
494pub type NTSTATUS = i32;
495pub type PAGE_PROTECTION_FLAGS = u32;
496pub const PAGE_READONLY: PAGE_PROTECTION_FLAGS = 2u32;
497pub type PCSTR = *const u8;
498pub type PCWSTR = *const u16;
499pub type PENUMLOADED_MODULES_CALLBACKW64 = Option<
500    unsafe extern "system" fn(
501        modulename: PCWSTR,
502        modulebase: u64,
503        modulesize: u32,
504        usercontext: *const core::ffi::c_void,
505    ) -> BOOL,
506>;
507pub type PFUNCTION_TABLE_ACCESS_ROUTINE64 =
508    Option<unsafe extern "system" fn(ahprocess: HANDLE, addrbase: u64) -> *mut core::ffi::c_void>;
509pub type PGET_MODULE_BASE_ROUTINE64 =
510    Option<unsafe extern "system" fn(hprocess: HANDLE, address: u64) -> u64>;
511pub type PREAD_PROCESS_MEMORY_ROUTINE64 = Option<
512    unsafe extern "system" fn(
513        hprocess: HANDLE,
514        qwbaseaddress: u64,
515        lpbuffer: *mut core::ffi::c_void,
516        nsize: u32,
517        lpnumberofbytesread: *mut u32,
518    ) -> BOOL,
519>;
520pub type PSTR = *mut u8;
521pub type PTRANSLATE_ADDRESS_ROUTINE64 = Option<
522    unsafe extern "system" fn(hprocess: HANDLE, hthread: HANDLE, lpaddr: *const ADDRESS64) -> u64,
523>;
524pub type PWSTR = *mut u16;
525pub type RTL_VIRTUAL_UNWIND_HANDLER_TYPE = u32;
526#[repr(C)]
527#[derive(Clone, Copy)]
528pub struct SECURITY_ATTRIBUTES {
529    pub nLength: u32,
530    pub lpSecurityDescriptor: *mut core::ffi::c_void,
531    pub bInheritHandle: BOOL,
532}
533#[repr(C)]
534#[derive(Clone, Copy)]
535pub struct STACKFRAME64 {
536    pub AddrPC: ADDRESS64,
537    pub AddrReturn: ADDRESS64,
538    pub AddrFrame: ADDRESS64,
539    pub AddrStack: ADDRESS64,
540    pub AddrBStore: ADDRESS64,
541    pub FuncTableEntry: *mut core::ffi::c_void,
542    pub Params: [u64; 4],
543    pub Far: BOOL,
544    pub Virtual: BOOL,
545    pub Reserved: [u64; 3],
546    pub KdHelp: KDHELP64,
547}
548#[repr(C)]
549#[derive(Clone, Copy)]
550pub struct STACKFRAME_EX {
551    pub AddrPC: ADDRESS64,
552    pub AddrReturn: ADDRESS64,
553    pub AddrFrame: ADDRESS64,
554    pub AddrStack: ADDRESS64,
555    pub AddrBStore: ADDRESS64,
556    pub FuncTableEntry: *mut core::ffi::c_void,
557    pub Params: [u64; 4],
558    pub Far: BOOL,
559    pub Virtual: BOOL,
560    pub Reserved: [u64; 3],
561    pub KdHelp: KDHELP64,
562    pub StackFrameSize: u32,
563    pub InlineFrameContext: u32,
564}
565#[repr(C)]
566#[derive(Clone, Copy)]
567pub struct SYMBOL_INFOW {
568    pub SizeOfStruct: u32,
569    pub TypeIndex: u32,
570    pub Reserved: [u64; 2],
571    pub Index: u32,
572    pub Size: u32,
573    pub ModBase: u64,
574    pub Flags: SYMBOL_INFO_FLAGS,
575    pub Value: u64,
576    pub Address: u64,
577    pub Register: u32,
578    pub Scope: u32,
579    pub Tag: u32,
580    pub NameLen: u32,
581    pub MaxNameLen: u32,
582    pub Name: [u16; 1],
583}
584pub type SYMBOL_INFO_FLAGS = u32;
585pub const SYMOPT_DEFERRED_LOADS: u32 = 4u32;
586pub const TH32CS_SNAPMODULE: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 8u32;
587pub const TRUE: BOOL = 1i32;
588#[repr(C)]
589#[cfg(any(
590    target_arch = "aarch64",
591    target_arch = "arm64ec",
592    target_arch = "x86_64"
593))]
594#[derive(Clone, Copy)]
595pub struct UNWIND_HISTORY_TABLE {
596    pub Count: u32,
597    pub LocalHint: u8,
598    pub GlobalHint: u8,
599    pub Search: u8,
600    pub Once: u8,
601    pub LowAddress: usize,
602    pub HighAddress: usize,
603    pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12],
604}
605#[repr(C)]
606#[cfg(target_arch = "aarch64")]
607#[derive(Clone, Copy)]
608pub struct UNWIND_HISTORY_TABLE_ENTRY {
609    pub ImageBase: usize,
610    pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY,
611}
612#[repr(C)]
613#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
614#[derive(Clone, Copy)]
615pub struct UNWIND_HISTORY_TABLE_ENTRY {
616    pub ImageBase: usize,
617    pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY,
618}
619pub type WAIT_EVENT = u32;
620#[repr(C)]
621#[cfg(any(
622    target_arch = "aarch64",
623    target_arch = "arm64ec",
624    target_arch = "x86_64"
625))]
626#[derive(Clone, Copy)]
627pub struct XSAVE_FORMAT {
628    pub ControlWord: u16,
629    pub StatusWord: u16,
630    pub TagWord: u8,
631    pub Reserved1: u8,
632    pub ErrorOpcode: u16,
633    pub ErrorOffset: u32,
634    pub ErrorSelector: u16,
635    pub Reserved2: u16,
636    pub DataOffset: u32,
637    pub DataSelector: u16,
638    pub Reserved3: u16,
639    pub MxCsr: u32,
640    pub MxCsr_Mask: u32,
641    pub FloatRegisters: [M128A; 8],
642    pub XmmRegisters: [M128A; 16],
643    pub Reserved4: [u8; 96],
644}
645#[repr(C)]
646#[cfg(target_arch = "x86")]
647#[derive(Clone, Copy)]
648pub struct XSAVE_FORMAT {
649    pub ControlWord: u16,
650    pub StatusWord: u16,
651    pub TagWord: u8,
652    pub Reserved1: u8,
653    pub ErrorOpcode: u16,
654    pub ErrorOffset: u32,
655    pub ErrorSelector: u16,
656    pub Reserved2: u16,
657    pub DataOffset: u32,
658    pub DataSelector: u16,
659    pub Reserved3: u16,
660    pub MxCsr: u32,
661    pub MxCsr_Mask: u32,
662    pub FloatRegisters: [M128A; 8],
663    pub XmmRegisters: [M128A; 8],
664    pub Reserved4: [u8; 224],
665}
666
667#[cfg(target_arch = "arm")]
668include!("./windows_sys_arm32_shim.rs");