summaryrefslogtreecommitdiff
path: root/vendor/backtrace/src/windows_sys.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/backtrace/src/windows_sys.rs')
-rw-r--r--vendor/backtrace/src/windows_sys.rs668
1 files changed, 668 insertions, 0 deletions
diff --git a/vendor/backtrace/src/windows_sys.rs b/vendor/backtrace/src/windows_sys.rs
new file mode 100644
index 00000000..443a1696
--- /dev/null
+++ b/vendor/backtrace/src/windows_sys.rs
@@ -0,0 +1,668 @@
+// Bindings generated by `windows-bindgen` 0.58.0
+
+#![allow(
+ non_snake_case,
+ non_upper_case_globals,
+ non_camel_case_types,
+ dead_code,
+ clippy::all
+)]
+windows_targets::link!("dbghelp.dll" "system" fn EnumerateLoadedModulesW64(hprocess : HANDLE, enumloadedmodulescallback : PENUMLOADED_MODULES_CALLBACKW64, usercontext : *const core::ffi::c_void) -> BOOL);
+windows_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);
+windows_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);
+windows_targets::link!("dbghelp.dll" "system" fn SymAddrIncludeInlineTrace(hprocess : HANDLE, address : u64) -> u32);
+windows_targets::link!("dbghelp.dll" "system" fn SymFromAddrW(hprocess : HANDLE, address : u64, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymFromInlineContextW(hprocess : HANDLE, address : u64, inlinecontext : u32, displacement : *mut u64, symbol : *mut SYMBOL_INFOW) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymFunctionTableAccess64(hprocess : HANDLE, addrbase : u64) -> *mut core::ffi::c_void);
+windows_targets::link!("dbghelp.dll" "system" fn SymGetLineFromAddrW64(hprocess : HANDLE, dwaddr : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymGetLineFromInlineContextW(hprocess : HANDLE, dwaddr : u64, inlinecontext : u32, qwmodulebaseaddress : u64, pdwdisplacement : *mut u32, line : *mut IMAGEHLP_LINEW64) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymGetModuleBase64(hprocess : HANDLE, qwaddr : u64) -> u64);
+windows_targets::link!("dbghelp.dll" "system" fn SymGetOptions() -> u32);
+windows_targets::link!("dbghelp.dll" "system" fn SymGetSearchPathW(hprocess : HANDLE, searchpatha : PWSTR, searchpathlength : u32) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymInitializeW(hprocess : HANDLE, usersearchpath : PCWSTR, finvadeprocess : BOOL) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymQueryInlineTrace(hprocess : HANDLE, startaddress : u64, startcontext : u32, startretaddress : u64, curaddress : u64, curcontext : *mut u32, curframeindex : *mut u32) -> BOOL);
+windows_targets::link!("dbghelp.dll" "system" fn SymSetOptions(symoptions : u32) -> u32);
+windows_targets::link!("dbghelp.dll" "system" fn SymSetSearchPathW(hprocess : HANDLE, searchpatha : PCWSTR) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn CreateFileMappingA(hfile : HANDLE, lpfilemappingattributes : *const SECURITY_ATTRIBUTES, flprotect : PAGE_PROTECTION_FLAGS, dwmaximumsizehigh : u32, dwmaximumsizelow : u32, lpname : PCSTR) -> HANDLE);
+windows_targets::link!("kernel32.dll" "system" fn CreateMutexA(lpmutexattributes : *const SECURITY_ATTRIBUTES, binitialowner : BOOL, lpname : PCSTR) -> HANDLE);
+windows_targets::link!("kernel32.dll" "system" fn CreateToolhelp32Snapshot(dwflags : CREATE_TOOLHELP_SNAPSHOT_FLAGS, th32processid : u32) -> HANDLE);
+windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcess() -> HANDLE);
+windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32);
+windows_targets::link!("kernel32.dll" "system" fn GetCurrentThread() -> HANDLE);
+windows_targets::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC);
+windows_targets::link!("kernel32.dll" "system" fn LoadLibraryA(lplibfilename : PCSTR) -> HMODULE);
+windows_targets::link!("kernel32.dll" "system" fn MapViewOfFile(hfilemappingobject : HANDLE, dwdesiredaccess : FILE_MAP, dwfileoffsethigh : u32, dwfileoffsetlow : u32, dwnumberofbytestomap : usize) -> MEMORY_MAPPED_VIEW_ADDRESS);
+windows_targets::link!("kernel32.dll" "system" fn Module32FirstW(hsnapshot : HANDLE, lpme : *mut MODULEENTRY32W) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn Module32NextW(hsnapshot : HANDLE, lpme : *mut MODULEENTRY32W) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn ReleaseMutex(hmutex : HANDLE) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn RtlCaptureContext(contextrecord : *mut CONTEXT));
+#[cfg(target_arch = "aarch64")]
+windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : usize, imagebase : *mut usize, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY);
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+windows_targets::link!("kernel32.dll" "system" fn RtlLookupFunctionEntry(controlpc : u64, imagebase : *mut u64, historytable : *mut UNWIND_HISTORY_TABLE) -> *mut IMAGE_RUNTIME_FUNCTION_ENTRY);
+#[cfg(target_arch = "aarch64")]
+windows_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);
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+windows_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);
+windows_targets::link!("kernel32.dll" "system" fn UnmapViewOfFile(lpbaseaddress : MEMORY_MAPPED_VIEW_ADDRESS) -> BOOL);
+windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObjectEx(hhandle : HANDLE, dwmilliseconds : u32, balertable : BOOL) -> WAIT_EVENT);
+windows_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);
+windows_targets::link!("kernel32.dll" "system" fn lstrlenW(lpstring : PCWSTR) -> i32);
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct ADDRESS64 {
+ pub Offset: u64,
+ pub Segment: u16,
+ pub Mode: ADDRESS_MODE,
+}
+pub type ADDRESS_MODE = i32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub union ARM64_NT_NEON128 {
+ pub Anonymous: ARM64_NT_NEON128_0,
+ pub D: [f64; 2],
+ pub S: [f32; 4],
+ pub H: [u16; 8],
+ pub B: [u8; 16],
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct ARM64_NT_NEON128_0 {
+ pub Low: u64,
+ pub High: i64,
+}
+pub const AddrModeFlat: ADDRESS_MODE = 3i32;
+pub type BOOL = i32;
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub struct CONTEXT {
+ pub ContextFlags: CONTEXT_FLAGS,
+ pub Cpsr: u32,
+ pub Anonymous: CONTEXT_0,
+ pub Sp: u64,
+ pub Pc: u64,
+ pub V: [ARM64_NT_NEON128; 32],
+ pub Fpcr: u32,
+ pub Fpsr: u32,
+ pub Bcr: [u32; 8],
+ pub Bvr: [u64; 8],
+ pub Wcr: [u32; 2],
+ pub Wvr: [u64; 2],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub union CONTEXT_0 {
+ pub Anonymous: CONTEXT_0_0,
+ pub X: [u64; 31],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub struct CONTEXT_0_0 {
+ pub X0: u64,
+ pub X1: u64,
+ pub X2: u64,
+ pub X3: u64,
+ pub X4: u64,
+ pub X5: u64,
+ pub X6: u64,
+ pub X7: u64,
+ pub X8: u64,
+ pub X9: u64,
+ pub X10: u64,
+ pub X11: u64,
+ pub X12: u64,
+ pub X13: u64,
+ pub X14: u64,
+ pub X15: u64,
+ pub X16: u64,
+ pub X17: u64,
+ pub X18: u64,
+ pub X19: u64,
+ pub X20: u64,
+ pub X21: u64,
+ pub X22: u64,
+ pub X23: u64,
+ pub X24: u64,
+ pub X25: u64,
+ pub X26: u64,
+ pub X27: u64,
+ pub X28: u64,
+ pub Fp: u64,
+ pub Lr: u64,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct CONTEXT {
+ pub P1Home: u64,
+ pub P2Home: u64,
+ pub P3Home: u64,
+ pub P4Home: u64,
+ pub P5Home: u64,
+ pub P6Home: u64,
+ pub ContextFlags: CONTEXT_FLAGS,
+ pub MxCsr: u32,
+ pub SegCs: u16,
+ pub SegDs: u16,
+ pub SegEs: u16,
+ pub SegFs: u16,
+ pub SegGs: u16,
+ pub SegSs: u16,
+ pub EFlags: u32,
+ pub Dr0: u64,
+ pub Dr1: u64,
+ pub Dr2: u64,
+ pub Dr3: u64,
+ pub Dr6: u64,
+ pub Dr7: u64,
+ pub Rax: u64,
+ pub Rcx: u64,
+ pub Rdx: u64,
+ pub Rbx: u64,
+ pub Rsp: u64,
+ pub Rbp: u64,
+ pub Rsi: u64,
+ pub Rdi: u64,
+ pub R8: u64,
+ pub R9: u64,
+ pub R10: u64,
+ pub R11: u64,
+ pub R12: u64,
+ pub R13: u64,
+ pub R14: u64,
+ pub R15: u64,
+ pub Rip: u64,
+ pub Anonymous: CONTEXT_0,
+ pub VectorRegister: [M128A; 26],
+ pub VectorControl: u64,
+ pub DebugControl: u64,
+ pub LastBranchToRip: u64,
+ pub LastBranchFromRip: u64,
+ pub LastExceptionToRip: u64,
+ pub LastExceptionFromRip: u64,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub union CONTEXT_0 {
+ pub FltSave: XSAVE_FORMAT,
+ pub Anonymous: CONTEXT_0_0,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct CONTEXT_0_0 {
+ pub Header: [M128A; 2],
+ pub Legacy: [M128A; 8],
+ pub Xmm0: M128A,
+ pub Xmm1: M128A,
+ pub Xmm2: M128A,
+ pub Xmm3: M128A,
+ pub Xmm4: M128A,
+ pub Xmm5: M128A,
+ pub Xmm6: M128A,
+ pub Xmm7: M128A,
+ pub Xmm8: M128A,
+ pub Xmm9: M128A,
+ pub Xmm10: M128A,
+ pub Xmm11: M128A,
+ pub Xmm12: M128A,
+ pub Xmm13: M128A,
+ pub Xmm14: M128A,
+ pub Xmm15: M128A,
+}
+#[repr(C)]
+#[cfg(target_arch = "x86")]
+#[derive(Clone, Copy)]
+pub struct CONTEXT {
+ pub ContextFlags: CONTEXT_FLAGS,
+ pub Dr0: u32,
+ pub Dr1: u32,
+ pub Dr2: u32,
+ pub Dr3: u32,
+ pub Dr6: u32,
+ pub Dr7: u32,
+ pub FloatSave: FLOATING_SAVE_AREA,
+ pub SegGs: u32,
+ pub SegFs: u32,
+ pub SegEs: u32,
+ pub SegDs: u32,
+ pub Edi: u32,
+ pub Esi: u32,
+ pub Ebx: u32,
+ pub Edx: u32,
+ pub Ecx: u32,
+ pub Eax: u32,
+ pub Ebp: u32,
+ pub Eip: u32,
+ pub SegCs: u32,
+ pub EFlags: u32,
+ pub Esp: u32,
+ pub SegSs: u32,
+ pub ExtendedRegisters: [u8; 512],
+}
+
+pub type CONTEXT_FLAGS = u32;
+pub const CP_UTF8: u32 = 65001u32;
+pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32;
+pub type EXCEPTION_DISPOSITION = i32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct EXCEPTION_RECORD {
+ pub ExceptionCode: NTSTATUS,
+ pub ExceptionFlags: u32,
+ pub ExceptionRecord: *mut EXCEPTION_RECORD,
+ pub ExceptionAddress: *mut core::ffi::c_void,
+ pub NumberParameters: u32,
+ pub ExceptionInformation: [usize; 15],
+}
+pub type EXCEPTION_ROUTINE = Option<
+ unsafe extern "system" fn(
+ exceptionrecord: *mut EXCEPTION_RECORD,
+ establisherframe: *const core::ffi::c_void,
+ contextrecord: *mut CONTEXT,
+ dispatchercontext: *const core::ffi::c_void,
+ ) -> EXCEPTION_DISPOSITION,
+>;
+pub const FALSE: BOOL = 0i32;
+pub type FARPROC = Option<unsafe extern "system" fn() -> isize>;
+pub type FILE_MAP = u32;
+pub const FILE_MAP_READ: FILE_MAP = 4u32;
+#[repr(C)]
+#[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm64ec",
+ target_arch = "x86_64"
+))]
+#[derive(Clone, Copy)]
+pub struct FLOATING_SAVE_AREA {
+ pub ControlWord: u32,
+ pub StatusWord: u32,
+ pub TagWord: u32,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u32,
+ pub DataOffset: u32,
+ pub DataSelector: u32,
+ pub RegisterArea: [u8; 80],
+ pub Cr0NpxState: u32,
+}
+#[repr(C)]
+#[cfg(target_arch = "x86")]
+#[derive(Clone, Copy)]
+pub struct FLOATING_SAVE_AREA {
+ pub ControlWord: u32,
+ pub StatusWord: u32,
+ pub TagWord: u32,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u32,
+ pub DataOffset: u32,
+ pub DataSelector: u32,
+ pub RegisterArea: [u8; 80],
+ pub Spare0: u32,
+}
+pub type HANDLE = *mut core::ffi::c_void;
+pub type HINSTANCE = *mut core::ffi::c_void;
+pub type HMODULE = *mut core::ffi::c_void;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct IMAGEHLP_LINEW64 {
+ pub SizeOfStruct: u32,
+ pub Key: *mut core::ffi::c_void,
+ pub LineNumber: u32,
+ pub FileName: PWSTR,
+ pub Address: u64,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY {
+ pub BeginAddress: u32,
+ pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub union IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0 {
+ pub UnwindData: u32,
+ pub Anonymous: IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY_0_0 {
+ pub _bitfield: u32,
+}
+pub type IMAGE_FILE_MACHINE = u16;
+pub const IMAGE_FILE_MACHINE_I386: IMAGE_FILE_MACHINE = 332u16;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct IMAGE_RUNTIME_FUNCTION_ENTRY {
+ pub BeginAddress: u32,
+ pub EndAddress: u32,
+ pub Anonymous: IMAGE_RUNTIME_FUNCTION_ENTRY_0,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub union IMAGE_RUNTIME_FUNCTION_ENTRY_0 {
+ pub UnwindInfoAddress: u32,
+ pub UnwindData: u32,
+}
+pub const INFINITE: u32 = 4294967295u32;
+pub const INVALID_HANDLE_VALUE: HANDLE = -1i32 as _;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct KDHELP64 {
+ pub Thread: u64,
+ pub ThCallbackStack: u32,
+ pub ThCallbackBStore: u32,
+ pub NextCallback: u32,
+ pub FramePointer: u32,
+ pub KiCallUserMode: u64,
+ pub KeUserCallbackDispatcher: u64,
+ pub SystemRangeStart: u64,
+ pub KiUserExceptionDispatcher: u64,
+ pub StackBase: u64,
+ pub StackLimit: u64,
+ pub BuildVersion: u32,
+ pub RetpolineStubFunctionTableSize: u32,
+ pub RetpolineStubFunctionTable: u64,
+ pub RetpolineStubOffset: u32,
+ pub RetpolineStubSize: u32,
+ pub Reserved0: [u64; 2],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub struct KNONVOLATILE_CONTEXT_POINTERS {
+ pub X19: *mut u64,
+ pub X20: *mut u64,
+ pub X21: *mut u64,
+ pub X22: *mut u64,
+ pub X23: *mut u64,
+ pub X24: *mut u64,
+ pub X25: *mut u64,
+ pub X26: *mut u64,
+ pub X27: *mut u64,
+ pub X28: *mut u64,
+ pub Fp: *mut u64,
+ pub Lr: *mut u64,
+ pub D8: *mut u64,
+ pub D9: *mut u64,
+ pub D10: *mut u64,
+ pub D11: *mut u64,
+ pub D12: *mut u64,
+ pub D13: *mut u64,
+ pub D14: *mut u64,
+ pub D15: *mut u64,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct KNONVOLATILE_CONTEXT_POINTERS {
+ pub Anonymous1: KNONVOLATILE_CONTEXT_POINTERS_0,
+ pub Anonymous2: KNONVOLATILE_CONTEXT_POINTERS_1,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub union KNONVOLATILE_CONTEXT_POINTERS_0 {
+ pub FloatingContext: [*mut M128A; 16],
+ pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_0_0,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct KNONVOLATILE_CONTEXT_POINTERS_0_0 {
+ pub Xmm0: *mut M128A,
+ pub Xmm1: *mut M128A,
+ pub Xmm2: *mut M128A,
+ pub Xmm3: *mut M128A,
+ pub Xmm4: *mut M128A,
+ pub Xmm5: *mut M128A,
+ pub Xmm6: *mut M128A,
+ pub Xmm7: *mut M128A,
+ pub Xmm8: *mut M128A,
+ pub Xmm9: *mut M128A,
+ pub Xmm10: *mut M128A,
+ pub Xmm11: *mut M128A,
+ pub Xmm12: *mut M128A,
+ pub Xmm13: *mut M128A,
+ pub Xmm14: *mut M128A,
+ pub Xmm15: *mut M128A,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub union KNONVOLATILE_CONTEXT_POINTERS_1 {
+ pub IntegerContext: [*mut u64; 16],
+ pub Anonymous: KNONVOLATILE_CONTEXT_POINTERS_1_0,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct KNONVOLATILE_CONTEXT_POINTERS_1_0 {
+ pub Rax: *mut u64,
+ pub Rcx: *mut u64,
+ pub Rdx: *mut u64,
+ pub Rbx: *mut u64,
+ pub Rsp: *mut u64,
+ pub Rbp: *mut u64,
+ pub Rsi: *mut u64,
+ pub Rdi: *mut u64,
+ pub R8: *mut u64,
+ pub R9: *mut u64,
+ pub R10: *mut u64,
+ pub R11: *mut u64,
+ pub R12: *mut u64,
+ pub R13: *mut u64,
+ pub R14: *mut u64,
+ pub R15: *mut u64,
+}
+#[repr(C)]
+#[cfg(target_arch = "x86")]
+#[derive(Clone, Copy)]
+pub struct KNONVOLATILE_CONTEXT_POINTERS {
+ pub Dummy: u32,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct M128A {
+ pub Low: u64,
+ pub High: i64,
+}
+pub const MAX_SYM_NAME: u32 = 2000u32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct MEMORY_MAPPED_VIEW_ADDRESS {
+ pub Value: *mut core::ffi::c_void,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct MODULEENTRY32W {
+ pub dwSize: u32,
+ pub th32ModuleID: u32,
+ pub th32ProcessID: u32,
+ pub GlblcntUsage: u32,
+ pub ProccntUsage: u32,
+ pub modBaseAddr: *mut u8,
+ pub modBaseSize: u32,
+ pub hModule: HMODULE,
+ pub szModule: [u16; 256],
+ pub szExePath: [u16; 260],
+}
+pub type NTSTATUS = i32;
+pub type PAGE_PROTECTION_FLAGS = u32;
+pub const PAGE_READONLY: PAGE_PROTECTION_FLAGS = 2u32;
+pub type PCSTR = *const u8;
+pub type PCWSTR = *const u16;
+pub type PENUMLOADED_MODULES_CALLBACKW64 = Option<
+ unsafe extern "system" fn(
+ modulename: PCWSTR,
+ modulebase: u64,
+ modulesize: u32,
+ usercontext: *const core::ffi::c_void,
+ ) -> BOOL,
+>;
+pub type PFUNCTION_TABLE_ACCESS_ROUTINE64 =
+ Option<unsafe extern "system" fn(ahprocess: HANDLE, addrbase: u64) -> *mut core::ffi::c_void>;
+pub type PGET_MODULE_BASE_ROUTINE64 =
+ Option<unsafe extern "system" fn(hprocess: HANDLE, address: u64) -> u64>;
+pub type PREAD_PROCESS_MEMORY_ROUTINE64 = Option<
+ unsafe extern "system" fn(
+ hprocess: HANDLE,
+ qwbaseaddress: u64,
+ lpbuffer: *mut core::ffi::c_void,
+ nsize: u32,
+ lpnumberofbytesread: *mut u32,
+ ) -> BOOL,
+>;
+pub type PSTR = *mut u8;
+pub type PTRANSLATE_ADDRESS_ROUTINE64 = Option<
+ unsafe extern "system" fn(hprocess: HANDLE, hthread: HANDLE, lpaddr: *const ADDRESS64) -> u64,
+>;
+pub type PWSTR = *mut u16;
+pub type RTL_VIRTUAL_UNWIND_HANDLER_TYPE = u32;
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct SECURITY_ATTRIBUTES {
+ pub nLength: u32,
+ pub lpSecurityDescriptor: *mut core::ffi::c_void,
+ pub bInheritHandle: BOOL,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct STACKFRAME64 {
+ pub AddrPC: ADDRESS64,
+ pub AddrReturn: ADDRESS64,
+ pub AddrFrame: ADDRESS64,
+ pub AddrStack: ADDRESS64,
+ pub AddrBStore: ADDRESS64,
+ pub FuncTableEntry: *mut core::ffi::c_void,
+ pub Params: [u64; 4],
+ pub Far: BOOL,
+ pub Virtual: BOOL,
+ pub Reserved: [u64; 3],
+ pub KdHelp: KDHELP64,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct STACKFRAME_EX {
+ pub AddrPC: ADDRESS64,
+ pub AddrReturn: ADDRESS64,
+ pub AddrFrame: ADDRESS64,
+ pub AddrStack: ADDRESS64,
+ pub AddrBStore: ADDRESS64,
+ pub FuncTableEntry: *mut core::ffi::c_void,
+ pub Params: [u64; 4],
+ pub Far: BOOL,
+ pub Virtual: BOOL,
+ pub Reserved: [u64; 3],
+ pub KdHelp: KDHELP64,
+ pub StackFrameSize: u32,
+ pub InlineFrameContext: u32,
+}
+#[repr(C)]
+#[derive(Clone, Copy)]
+pub struct SYMBOL_INFOW {
+ pub SizeOfStruct: u32,
+ pub TypeIndex: u32,
+ pub Reserved: [u64; 2],
+ pub Index: u32,
+ pub Size: u32,
+ pub ModBase: u64,
+ pub Flags: SYMBOL_INFO_FLAGS,
+ pub Value: u64,
+ pub Address: u64,
+ pub Register: u32,
+ pub Scope: u32,
+ pub Tag: u32,
+ pub NameLen: u32,
+ pub MaxNameLen: u32,
+ pub Name: [u16; 1],
+}
+pub type SYMBOL_INFO_FLAGS = u32;
+pub const SYMOPT_DEFERRED_LOADS: u32 = 4u32;
+pub const TH32CS_SNAPMODULE: CREATE_TOOLHELP_SNAPSHOT_FLAGS = 8u32;
+pub const TRUE: BOOL = 1i32;
+#[repr(C)]
+#[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm64ec",
+ target_arch = "x86_64"
+))]
+#[derive(Clone, Copy)]
+pub struct UNWIND_HISTORY_TABLE {
+ pub Count: u32,
+ pub LocalHint: u8,
+ pub GlobalHint: u8,
+ pub Search: u8,
+ pub Once: u8,
+ pub LowAddress: usize,
+ pub HighAddress: usize,
+ pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12],
+}
+#[repr(C)]
+#[cfg(target_arch = "aarch64")]
+#[derive(Clone, Copy)]
+pub struct UNWIND_HISTORY_TABLE_ENTRY {
+ pub ImageBase: usize,
+ pub FunctionEntry: *mut IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY,
+}
+#[repr(C)]
+#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))]
+#[derive(Clone, Copy)]
+pub struct UNWIND_HISTORY_TABLE_ENTRY {
+ pub ImageBase: usize,
+ pub FunctionEntry: *mut IMAGE_RUNTIME_FUNCTION_ENTRY,
+}
+pub type WAIT_EVENT = u32;
+#[repr(C)]
+#[cfg(any(
+ target_arch = "aarch64",
+ target_arch = "arm64ec",
+ target_arch = "x86_64"
+))]
+#[derive(Clone, Copy)]
+pub struct XSAVE_FORMAT {
+ pub ControlWord: u16,
+ pub StatusWord: u16,
+ pub TagWord: u8,
+ pub Reserved1: u8,
+ pub ErrorOpcode: u16,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u16,
+ pub Reserved2: u16,
+ pub DataOffset: u32,
+ pub DataSelector: u16,
+ pub Reserved3: u16,
+ pub MxCsr: u32,
+ pub MxCsr_Mask: u32,
+ pub FloatRegisters: [M128A; 8],
+ pub XmmRegisters: [M128A; 16],
+ pub Reserved4: [u8; 96],
+}
+#[repr(C)]
+#[cfg(target_arch = "x86")]
+#[derive(Clone, Copy)]
+pub struct XSAVE_FORMAT {
+ pub ControlWord: u16,
+ pub StatusWord: u16,
+ pub TagWord: u8,
+ pub Reserved1: u8,
+ pub ErrorOpcode: u16,
+ pub ErrorOffset: u32,
+ pub ErrorSelector: u16,
+ pub Reserved2: u16,
+ pub DataOffset: u32,
+ pub DataSelector: u16,
+ pub Reserved3: u16,
+ pub MxCsr: u32,
+ pub MxCsr_Mask: u32,
+ pub FloatRegisters: [M128A; 8],
+ pub XmmRegisters: [M128A; 8],
+ pub Reserved4: [u8; 224],
+}
+
+#[cfg(target_arch = "arm")]
+include!("./windows_sys_arm32_shim.rs");