diff --git a/csbindgen-tests/src/lib.rs b/csbindgen-tests/src/lib.rs index 741745f..d070823 100644 --- a/csbindgen-tests/src/lib.rs +++ b/csbindgen-tests/src/lib.rs @@ -188,6 +188,19 @@ pub extern "C" fn call_bindgen() { .unwrap(); } +#[no_mangle] +pub extern "C" fn call_bindgen_lz4() { + let path = std::env::current_dir().unwrap(); + println!("starting dir: {}", path.display()); // csbindgen/csbindgen-tests + + csbindgen::Builder::default() + .input_extern_file("../../../../csbindgen-tests/src/lz4.rs") + .csharp_class_name("LibLz4") + .csharp_dll_name("csbindgen_tests") + .generate_to_file("../../../../csbindgen-tests/src/lz4_ffi.cs", "../../../../dotnet-sandbox/lz4_bindgen.cs") + .unwrap(); +} + #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct Context { @@ -289,3 +302,8 @@ impl ByteBuffer { drop(self.destroy_into_vec()); } } + +trait Ex {} + +impl Ex for i32{ +} \ No newline at end of file diff --git a/csbindgen-tests/src/quiche.rs b/csbindgen-tests/src/quiche.rs index 6edaa80..57ca9f5 100644 --- a/csbindgen-tests/src/quiche.rs +++ b/csbindgen-tests/src/quiche.rs @@ -169,9 +169,9 @@ pub const WCHAR_MIN: u32 = 0; pub const WCHAR_MAX: u32 = 65535; pub const WINT_MIN: u32 = 0; pub const WINT_MAX: u32 = 65535; -pub const __bool_true_false_are_defined: u32 = 1; pub const true_: u32 = 1; pub const false_: u32 = 0; +pub const __bool_true_false_are_defined: u32 = 1; pub const WINAPI_FAMILY_PC_APP: u32 = 2; pub const WINAPI_FAMILY_PHONE_APP: u32 = 3; pub const WINAPI_FAMILY_SYSTEM: u32 = 4; @@ -238,6 +238,7 @@ pub const _WIN32_IE_WIN8: u32 = 2560; pub const _WIN32_IE_WINBLUE: u32 = 2560; pub const _WIN32_IE_WINTHRESHOLD: u32 = 2560; pub const _WIN32_IE_WIN10: u32 = 2560; +pub const NTDDI_WIN4: u32 = 67108864; pub const NTDDI_WIN2K: u32 = 83886080; pub const NTDDI_WIN2KSP1: u32 = 83886336; pub const NTDDI_WIN2KSP2: u32 = 83886592; @@ -281,12 +282,15 @@ pub const NTDDI_WIN10_RS4: u32 = 167772165; pub const NTDDI_WIN10_RS5: u32 = 167772166; pub const NTDDI_WIN10_19H1: u32 = 167772167; pub const NTDDI_WIN10_VB: u32 = 167772168; -pub const WDK_NTDDI_VERSION: u32 = 167772168; +pub const NTDDI_WIN10_MN: u32 = 167772169; +pub const NTDDI_WIN10_FE: u32 = 167772170; +pub const NTDDI_WIN10_CO: u32 = 167772171; +pub const WDK_NTDDI_VERSION: u32 = 167772171; pub const OSVERSION_MASK: u32 = 4294901760; pub const SPVERSION_MASK: u32 = 65280; pub const SUBVERSION_MASK: u32 = 255; pub const _WIN32_WINNT: u32 = 2560; -pub const NTDDI_VERSION: u32 = 167772168; +pub const NTDDI_VERSION: u32 = 167772171; pub const WINVER: u32 = 2560; pub const _WIN32_IE: u32 = 2560; pub const EXCEPTION_EXECUTE_HANDLER: u32 = 1; @@ -303,12 +307,13 @@ pub const STRICT: u32 = 1; pub const MAX_PATH: u32 = 260; pub const FALSE: u32 = 0; pub const TRUE: u32 = 1; +pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1; +pub const _CRT_BUILD_DESKTOP_APP: u32 = 1; pub const _ARGMAX: u32 = 100; pub const _CRT_INT_MAX: u32 = 2147483647; pub const _CRT_FUNCTIONS_REQUIRED: u32 = 1; pub const _CRT_HAS_CXX17: u32 = 0; -pub const _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE: u32 = 1; -pub const _CRT_BUILD_DESKTOP_APP: u32 = 1; +pub const _CRT_HAS_C11: u32 = 1; pub const _CRT_INTERNAL_NONSTDC_NAMES: u32 = 1; pub const __STDC_SECURE_LIB__: u32 = 200411; pub const __GOT_SECURE_LIB__: u32 = 200411; @@ -335,6 +340,8 @@ pub const APC_LEVEL: u32 = 1; pub const PASSIVE_LEVEL: u32 = 0; pub const HIGH_LEVEL: u32 = 15; pub const MEMORY_ALLOCATION_ALIGNMENT: u32 = 16; +pub const X86_CACHE_ALIGNMENT_SIZE: u32 = 64; +pub const ARM_CACHE_ALIGNMENT_SIZE: u32 = 128; pub const SYSTEM_CACHE_ALIGNMENT_SIZE: u32 = 64; pub const PRAGMA_DEPRECATED_DDK: u32 = 0; pub const UCSCHAR_INVALID_CHARACTER: u32 = 4294967295; @@ -611,7 +618,6 @@ pub const PRODUCT_CLOUDN: u32 = 179; pub const PRODUCT_HUBOS: u32 = 180; pub const PRODUCT_ONECOREUPDATEOS: u32 = 182; pub const PRODUCT_CLOUDE: u32 = 183; -pub const PRODUCT_ANDROMEDA: u32 = 184; pub const PRODUCT_IOTOS: u32 = 185; pub const PRODUCT_CLOUDEN: u32 = 186; pub const PRODUCT_IOTEDGEOS: u32 = 187; @@ -624,6 +630,13 @@ pub const PRODUCT_XBOX_GAMEOS: u32 = 194; pub const PRODUCT_XBOX_ERAOS: u32 = 195; pub const PRODUCT_XBOX_DURANGOHOSTOS: u32 = 196; pub const PRODUCT_XBOX_SCARLETTHOSTOS: u32 = 197; +pub const PRODUCT_AZURE_SERVER_CLOUDHOST: u32 = 199; +pub const PRODUCT_AZURE_SERVER_CLOUDMOS: u32 = 200; +pub const PRODUCT_CLOUDEDITIONN: u32 = 202; +pub const PRODUCT_CLOUDEDITION: u32 = 203; +pub const PRODUCT_AZURESTACKHCI_SERVER_CORE: u32 = 406; +pub const PRODUCT_DATACENTER_SERVER_AZURE_EDITION: u32 = 407; +pub const PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION: u32 = 408; pub const PRODUCT_UNLICENSED: u32 = 2882382797; pub const LANG_NEUTRAL: u32 = 0; pub const LANG_INVARIANT: u32 = 127; @@ -1055,10 +1068,12 @@ pub const CONTEXT_DEBUG_REGISTERS: u32 = 1048592; pub const CONTEXT_FULL: u32 = 1048587; pub const CONTEXT_ALL: u32 = 1048607; pub const CONTEXT_XSTATE: u32 = 1048640; +pub const CONTEXT_KERNEL_CET: u32 = 1048704; pub const CONTEXT_EXCEPTION_ACTIVE: u32 = 134217728; pub const CONTEXT_SERVICE_ACTIVE: u32 = 268435456; pub const CONTEXT_EXCEPTION_REQUEST: u32 = 1073741824; pub const CONTEXT_EXCEPTION_REPORTING: u32 = 2147483648; +pub const CONTEXT_UNWOUND_TO_CALL: u32 = 536870912; pub const INITIAL_MXCSR: u32 = 8064; pub const INITIAL_FPCSR: u32 = 639; pub const RUNTIME_FUNCTION_INDIRECT: u32 = 1; @@ -1068,9 +1083,22 @@ pub const UNW_FLAG_UHANDLER: u32 = 2; pub const UNW_FLAG_CHAININFO: u32 = 4; pub const UNW_FLAG_NO_EPILOGUE: u32 = 2147483648; pub const UNWIND_CHAIN_LIMIT: u32 = 32; -pub const UNWIND_HISTORY_TABLE_SIZE: u32 = 12; pub const OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME: &[u8; 34usize] = b"OutOfProcessFunctionTableCallback\0"; +pub const CONTEXT_ARM64: u32 = 4194304; +pub const CONTEXT_ARM64_CONTROL: u32 = 4194305; +pub const CONTEXT_ARM64_INTEGER: u32 = 4194306; +pub const CONTEXT_ARM64_FLOATING_POINT: u32 = 4194308; +pub const CONTEXT_ARM64_DEBUG_REGISTERS: u32 = 4194312; +pub const CONTEXT_ARM64_X18: u32 = 4194320; +pub const CONTEXT_ARM64_FULL: u32 = 4194311; +pub const CONTEXT_ARM64_ALL: u32 = 4194335; +pub const CONTEXT_ARM64_UNWOUND_TO_CALL: u32 = 536870912; +pub const CONTEXT_ARM64_RET_TO_GUEST: u32 = 67108864; +pub const ARM64_MAX_BREAKPOINTS: u32 = 8; +pub const ARM64_MAX_WATCHPOINTS: u32 = 2; +pub const NONVOL_INT_NUMREG_ARM64: u32 = 11; +pub const NONVOL_FP_NUMREG_ARM64: u32 = 8; pub const WOW64_CONTEXT_i386: u32 = 65536; pub const WOW64_CONTEXT_i486: u32 = 65536; pub const WOW64_CONTEXT_CONTROL: u32 = 65537; @@ -1095,6 +1123,7 @@ pub const EXCEPTION_STACK_INVALID: u32 = 8; pub const EXCEPTION_NESTED_CALL: u32 = 16; pub const EXCEPTION_TARGET_UNWIND: u32 = 32; pub const EXCEPTION_COLLIDED_UNWIND: u32 = 64; +pub const EXCEPTION_SOFTWARE_ORIGINATE: u32 = 128; pub const EXCEPTION_UNWIND: u32 = 102; pub const EXCEPTION_MAXIMUM_PARAMETERS: u32 = 15; pub const DELETE: u32 = 65536; @@ -1426,6 +1455,7 @@ pub const SE_CONSTRAINED_IMPERSONATION_CAPABILITY: &[u8; 25usize] = b"constraine pub const SE_SESSION_IMPERSONATION_CAPABILITY: &[u8; 21usize] = b"sessionImpersonation\0"; pub const SE_MUMA_CAPABILITY: &[u8; 5usize] = b"muma\0"; pub const SE_DEVELOPMENT_MODE_NETWORK_CAPABILITY: &[u8; 23usize] = b"developmentModeNetwork\0"; +pub const SE_PERMISSIVE_LEARNING_MODE_CAPABILITY: &[u8; 23usize] = b"permissiveLearningMode\0"; pub const TOKEN_ASSIGN_PRIMARY: u32 = 1; pub const TOKEN_DUPLICATE: u32 = 2; pub const TOKEN_IMPERSONATE: u32 = 4; @@ -1548,6 +1578,8 @@ pub const THREAD_BASE_PRIORITY_LOWRT: u32 = 15; pub const THREAD_BASE_PRIORITY_MAX: u32 = 2; pub const THREAD_BASE_PRIORITY_MIN: i32 = -2; pub const THREAD_BASE_PRIORITY_IDLE: i32 = -15; +pub const COMPONENT_KTM: u32 = 1; +pub const COMPONENT_VALID_FLAGS: u32 = 1; pub const MEMORY_PRIORITY_LOWEST: u32 = 0; pub const MEMORY_PRIORITY_VERY_LOW: u32 = 1; pub const MEMORY_PRIORITY_LOW: u32 = 2; @@ -1632,6 +1664,9 @@ pub const JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP: u32 = 4; pub const JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY: u32 = 8; pub const JOB_OBJECT_CPU_RATE_CONTROL_MIN_MAX_RATE: u32 = 16; pub const JOB_OBJECT_CPU_RATE_CONTROL_VALID_FLAGS: u32 = 31; +pub const MEMORY_PARTITION_QUERY_ACCESS: u32 = 1; +pub const MEMORY_PARTITION_MODIFY_ACCESS: u32 = 2; +pub const MEMORY_PARTITION_ALL_ACCESS: u32 = 2031619; pub const EVENT_MODIFY_STATE: u32 = 2; pub const EVENT_ALL_ACCESS: u32 = 2031619; pub const MUTANT_QUERY_STATE: u32 = 1; @@ -1731,6 +1766,9 @@ pub const PF_SSE4_2_INSTRUCTIONS_AVAILABLE: u32 = 38; pub const PF_AVX_INSTRUCTIONS_AVAILABLE: u32 = 39; pub const PF_AVX2_INSTRUCTIONS_AVAILABLE: u32 = 40; pub const PF_AVX512F_INSTRUCTIONS_AVAILABLE: u32 = 41; +pub const PF_ERMS_AVAILABLE: u32 = 42; +pub const PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE: u32 = 43; +pub const PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE: u32 = 44; pub const XSTATE_LEGACY_FLOATING_POINT: u32 = 0; pub const XSTATE_LEGACY_SSE: u32 = 1; pub const XSTATE_GSSE: u32 = 2; @@ -1741,17 +1779,25 @@ pub const XSTATE_AVX512_KMASK: u32 = 5; pub const XSTATE_AVX512_ZMM_H: u32 = 6; pub const XSTATE_AVX512_ZMM: u32 = 7; pub const XSTATE_IPT: u32 = 8; +pub const XSTATE_PASID: u32 = 10; pub const XSTATE_CET_U: u32 = 11; +pub const XSTATE_CET_S: u32 = 12; +pub const XSTATE_AMX_TILE_CONFIG: u32 = 17; +pub const XSTATE_AMX_TILE_DATA: u32 = 18; pub const XSTATE_LWP: u32 = 62; pub const MAXIMUM_XSTATE_FEATURES: u32 = 64; pub const XSTATE_COMPACTION_ENABLE: u32 = 63; pub const XSTATE_ALIGN_BIT: u32 = 1; +pub const XSTATE_XFD_BIT: u32 = 2; pub const XSTATE_CONTROLFLAG_XSAVEOPT_MASK: u32 = 1; pub const XSTATE_CONTROLFLAG_XSAVEC_MASK: u32 = 2; -pub const XSTATE_CONTROLFLAG_VALID_MASK: u32 = 3; +pub const XSTATE_CONTROLFLAG_XFD_MASK: u32 = 4; +pub const XSTATE_CONTROLFLAG_VALID_MASK: u32 = 7; pub const CFG_CALL_TARGET_VALID: u32 = 1; pub const CFG_CALL_TARGET_PROCESSED: u32 = 2; pub const CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID: u32 = 4; +pub const CFG_CALL_TARGET_VALID_XFG: u32 = 8; +pub const CFG_CALL_TARGET_CONVERT_XFG_TO_CFG: u32 = 16; pub const SECTION_QUERY: u32 = 1; pub const SECTION_MAP_WRITE: u32 = 2; pub const SECTION_MAP_READ: u32 = 4; @@ -1816,7 +1862,9 @@ pub const MEM_EXTENDED_PARAMETER_ZERO_PAGES_OPTIONAL: u32 = 4; pub const MEM_EXTENDED_PARAMETER_NONPAGED_LARGE: u32 = 8; pub const MEM_EXTENDED_PARAMETER_NONPAGED_HUGE: u32 = 16; pub const MEM_EXTENDED_PARAMETER_SOFT_FAULT_PAGES: u32 = 32; +pub const MEM_EXTENDED_PARAMETER_EC_CODE: u32 = 64; pub const MEM_EXTENDED_PARAMETER_TYPE_BITS: u32 = 8; +pub const SEC_HUGE_PAGES: u32 = 131072; pub const SEC_PARTITION_OWNER_HANDLE: u32 = 262144; pub const SEC_64K_PAGES: u32 = 524288; pub const SEC_FILE: u32 = 8388608; @@ -1842,6 +1890,7 @@ pub const VBS_BASIC_PAGE_UNMEASURED_DATA: u32 = 2; pub const VBS_BASIC_PAGE_ZERO_FILL: u32 = 3; pub const VBS_BASIC_PAGE_THREAD_DESCRIPTOR: u32 = 4; pub const VBS_BASIC_PAGE_SYSTEM_CALL: u32 = 5; +pub const DEDICATED_MEMORY_CACHE_ELIGIBLE: u32 = 1; pub const FILE_READ_DATA: u32 = 1; pub const FILE_LIST_DIRECTORY: u32 = 1; pub const FILE_WRITE_DATA: u32 = 2; @@ -1914,6 +1963,7 @@ pub const FILE_SUPPORTS_REPARSE_POINTS: u32 = 128; pub const FILE_SUPPORTS_REMOTE_STORAGE: u32 = 256; pub const FILE_RETURNS_CLEANUP_RESULT_INFO: u32 = 512; pub const FILE_SUPPORTS_POSIX_UNLINK_RENAME: u32 = 1024; +pub const FILE_SUPPORTS_BYPASS_IO: u32 = 2048; pub const FILE_VOLUME_IS_COMPRESSED: u32 = 32768; pub const FILE_SUPPORTS_OBJECT_IDS: u32 = 65536; pub const FILE_SUPPORTS_ENCRYPTION: u32 = 131072; @@ -1982,6 +2032,7 @@ pub const IO_REPARSE_TAG_PROJFS_TOMBSTONE: u32 = 2684354594; pub const IO_REPARSE_TAG_AF_UNIX: u32 = 2147483683; pub const IO_REPARSE_TAG_WCI_LINK: u32 = 2684354599; pub const IO_REPARSE_TAG_WCI_LINK_1: u32 = 2684358695; +pub const IO_REPARSE_TAG_DATALESS_CIM: u32 = 2684354600; pub const SCRUB_DATA_INPUT_FLAG_RESUME: u32 = 1; pub const SCRUB_DATA_INPUT_FLAG_SKIP_IN_SYNC: u32 = 2; pub const SCRUB_DATA_INPUT_FLAG_SKIP_NON_INTEGRITY_DATA: u32 = 4; @@ -2733,10 +2784,13 @@ pub const IMAGE_GUARD_RF_ENABLE: u32 = 262144; pub const IMAGE_GUARD_RF_STRICT: u32 = 524288; pub const IMAGE_GUARD_RETPOLINE_PRESENT: u32 = 1048576; pub const IMAGE_GUARD_EH_CONTINUATION_TABLE_PRESENT: u32 = 4194304; +pub const IMAGE_GUARD_XFG_ENABLED: u32 = 8388608; pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_MASK: u32 = 4026531840; pub const IMAGE_GUARD_CF_FUNCTION_TABLE_SIZE_SHIFT: u32 = 28; pub const IMAGE_GUARD_FLAG_FID_SUPPRESSED: u32 = 1; pub const IMAGE_GUARD_FLAG_EXPORT_SUPPRESSED: u32 = 2; +pub const IMAGE_GUARD_FLAG_FID_LANGEXCPTHANDLER: u32 = 4; +pub const IMAGE_GUARD_FLAG_FID_XFG: u32 = 8; pub const IMAGE_ENCLAVE_LONG_ID_LENGTH: u32 = 32; pub const IMAGE_ENCLAVE_SHORT_ID_LENGTH: u32 = 16; pub const IMAGE_ENCLAVE_POLICY_DEBUGGABLE: u32 = 1; @@ -2781,6 +2835,7 @@ pub const NON_PAGED_DEBUG_SIGNATURE: u32 = 18766; pub const IMAGE_SEPARATE_DEBUG_FLAGS_MASK: u32 = 32768; pub const IMAGE_SEPARATE_DEBUG_MISMATCH: u32 = 32768; pub const IMPORT_OBJECT_HDR_SIG2: u32 = 65535; +pub const UNWIND_HISTORY_TABLE_SIZE: u32 = 12; pub const RTL_RUN_ONCE_CHECK_ONLY: u32 = 1; pub const RTL_RUN_ONCE_ASYNC: u32 = 2; pub const RTL_RUN_ONCE_INIT_FAILED: u32 = 4; @@ -2846,6 +2901,13 @@ pub const FAST_FAIL_VEH_CORRUPTION: u32 = 60; pub const FAST_FAIL_ETW_CORRUPTION: u32 = 61; pub const FAST_FAIL_RIO_ABORT: u32 = 62; pub const FAST_FAIL_INVALID_PFN: u32 = 63; +pub const FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG: u32 = 64; +pub const FAST_FAIL_CAST_GUARD: u32 = 65; +pub const FAST_FAIL_HOST_VISIBILITY_CHANGE: u32 = 66; +pub const FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST: u32 = 67; +pub const FAST_FAIL_PATCH_CALLBACK_FAILED: u32 = 68; +pub const FAST_FAIL_NTDLL_PATCH_FAILED: u32 = 69; +pub const FAST_FAIL_INVALID_FLS_DATA: u32 = 70; pub const FAST_FAIL_INVALID_FAST_FAIL_CODE: u32 = 4294967295; pub const HEAP_NO_SERIALIZE: u32 = 1; pub const HEAP_GROWABLE: u32 = 2; @@ -2874,6 +2936,7 @@ pub const IS_TEXT_UNICODE_REVERSE_SIGNATURE: u32 = 128; pub const IS_TEXT_UNICODE_ILLEGAL_CHARS: u32 = 256; pub const IS_TEXT_UNICODE_ODD_LENGTH: u32 = 512; pub const IS_TEXT_UNICODE_DBCS_LEADBYTE: u32 = 1024; +pub const IS_TEXT_UNICODE_UTF8: u32 = 2048; pub const IS_TEXT_UNICODE_NULL_BYTES: u32 = 4096; pub const IS_TEXT_UNICODE_UNICODE_MASK: u32 = 15; pub const IS_TEXT_UNICODE_REVERSE_MASK: u32 = 240; @@ -2884,6 +2947,7 @@ pub const COMPRESSION_FORMAT_DEFAULT: u32 = 1; pub const COMPRESSION_FORMAT_LZNT1: u32 = 2; pub const COMPRESSION_FORMAT_XPRESS: u32 = 3; pub const COMPRESSION_FORMAT_XPRESS_HUFF: u32 = 4; +pub const COMPRESSION_FORMAT_XP10: u32 = 5; pub const COMPRESSION_ENGINE_STANDARD: u32 = 0; pub const COMPRESSION_ENGINE_MAXIMUM: u32 = 256; pub const COMPRESSION_ENGINE_HIBER: u32 = 512; @@ -2950,6 +3014,7 @@ pub const RTL_CORRELATION_VECTOR_V2_PREFIX_LENGTH: u32 = 22; pub const RTL_CORRELATION_VECTOR_V2_LENGTH: u32 = 128; pub const IMAGE_POLICY_METADATA_VERSION: u32 = 1; pub const IMAGE_POLICY_SECTION_NAME: &[u8; 9usize] = b".tPolicy\0"; +pub const RTL_VIRTUAL_UNWIND2_VALIDATE_PAC: u32 = 1; pub const RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO: u32 = 16777216; pub const RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN: u32 = 33554432; pub const RTL_CRITICAL_SECTION_FLAG_STATIC_INIT: u32 = 67108864; @@ -3040,7 +3105,19 @@ pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE: u32 = 30; pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_S: u32 = 31; pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X: u32 = 32; pub const DEVICEFAMILYDEVICEFORM_XBOX_ONE_X_DEVKIT: u32 = 33; -pub const DEVICEFAMILYDEVICEFORM_MAX: u32 = 33; +pub const DEVICEFAMILYDEVICEFORM_XBOX_SERIES_X: u32 = 34; +pub const DEVICEFAMILYDEVICEFORM_XBOX_SERIES_X_DEVKIT: u32 = 35; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_00: u32 = 36; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_01: u32 = 37; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_02: u32 = 38; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_03: u32 = 39; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_04: u32 = 40; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_05: u32 = 41; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_06: u32 = 42; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_07: u32 = 43; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_08: u32 = 44; +pub const DEVICEFAMILYDEVICEFORM_XBOX_RESERVED_09: u32 = 45; +pub const DEVICEFAMILYDEVICEFORM_MAX: u32 = 45; pub const DLL_PROCESS_ATTACH: u32 = 1; pub const DLL_THREAD_ATTACH: u32 = 2; pub const DLL_THREAD_DETACH: u32 = 3; @@ -3450,7 +3527,8 @@ pub const PME_FAILFAST_ON_COMMIT_FAIL_DISABLE: u32 = 0; pub const PME_FAILFAST_ON_COMMIT_FAIL_ENABLE: u32 = 1; pub const PROCESS_POWER_THROTTLING_CURRENT_VERSION: u32 = 1; pub const PROCESS_POWER_THROTTLING_EXECUTION_SPEED: u32 = 1; -pub const PROCESS_POWER_THROTTLING_VALID_FLAGS: u32 = 1; +pub const PROCESS_POWER_THROTTLING_IGNORE_TIMER_RESOLUTION: u32 = 4; +pub const PROCESS_POWER_THROTTLING_VALID_FLAGS: u32 = 5; pub const PROCESS_LEAP_SECOND_INFO_FLAG_ENABLE_SIXTY_SECOND: u32 = 1; pub const PROCESS_LEAP_SECOND_INFO_VALID_FLAGS: u32 = 1; pub const USER_CET_ENVIRONMENT_WIN32_PROCESS: u32 = 0; @@ -3858,6 +3936,7 @@ pub const STARTF_TITLEISLINKNAME: u32 = 2048; pub const STARTF_TITLEISAPPID: u32 = 4096; pub const STARTF_PREVENTPINNING: u32 = 8192; pub const STARTF_UNTRUSTEDSOURCE: u32 = 32768; +pub const STARTF_HOLOGRAPHIC: u32 = 262144; pub const SHUTDOWN_NORETRY: u32 = 1; pub const PROTECTION_LEVEL_WINTCB_LIGHT: u32 = 0; pub const PROTECTION_LEVEL_WINDOWS: u32 = 1; @@ -3932,6 +4011,9 @@ pub const DDD_EXACT_MATCH_ON_REMOVE: u32 = 4; pub const DDD_NO_BROADCAST_SYSTEM: u32 = 8; pub const DDD_LUID_BROADCAST_DRIVE: u32 = 16; pub const COPYFILE2_MESSAGE_COPY_OFFLOAD: u32 = 1; +pub const COPYFILE2_IO_CYCLE_SIZE_MIN: u32 = 4096; +pub const COPYFILE2_IO_CYCLE_SIZE_MAX: u32 = 1073741824; +pub const COPYFILE2_IO_RATE_MIN: u32 = 512; pub const MOVEFILE_REPLACE_EXISTING: u32 = 1; pub const MOVEFILE_COPY_ALLOWED: u32 = 2; pub const MOVEFILE_DELAY_UNTIL_REBOOT: u32 = 4; @@ -4029,6 +4111,7 @@ pub const FACILITY_WINDOWS_STORE: u32 = 63; pub const FACILITY_INPUT: u32 = 64; pub const FACILITY_QUIC: u32 = 65; pub const FACILITY_EAP: u32 = 66; +pub const FACILITY_IORING: u32 = 70; pub const FACILITY_WINDOWS_DEFENDER: u32 = 80; pub const FACILITY_OPC: u32 = 81; pub const FACILITY_XPS: u32 = 82; @@ -4061,6 +4144,7 @@ pub const FACILITY_USERMODE_SPACES: u32 = 231; pub const FACILITY_USER_MODE_SECURITY_CORE: u32 = 232; pub const FACILITY_USERMODE_LICENSING: u32 = 234; pub const FACILITY_SOS: u32 = 160; +pub const FACILITY_OCP_UPDATE_AGENT: u32 = 173; pub const FACILITY_DEBUGGERS: u32 = 176; pub const FACILITY_SPP: u32 = 256; pub const FACILITY_RESTORE: u32 = 256; @@ -4077,6 +4161,8 @@ pub const FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING: u32 = 278; pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER: u32 = 289; pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT: u32 = 290; pub const FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER: u32 = 293; +pub const FACILITY_HSP_SERVICES: u32 = 296; +pub const FACILITY_HSP_SOFTWARE: u32 = 297; pub const FACILITY_LINGUISTIC_SERVICES: u32 = 305; pub const FACILITY_AUDIOSTREAMING: u32 = 1094; pub const FACILITY_TTD: u32 = 1490; @@ -4091,6 +4177,7 @@ pub const FACILITY_DIRECT3D11_DEBUG: u32 = 2173; pub const FACILITY_DIRECT3D12: u32 = 2174; pub const FACILITY_DIRECT3D12_DEBUG: u32 = 2175; pub const FACILITY_DXCORE: u32 = 2176; +pub const FACILITY_PRESENTATION: u32 = 2177; pub const FACILITY_LEAP: u32 = 2184; pub const FACILITY_AUDCLNT: u32 = 2185; pub const FACILITY_WINCODEC_DWRITE_DWM: u32 = 2200; @@ -4105,6 +4192,7 @@ pub const FACILITY_WEB: u32 = 885; pub const FACILITY_WEB_SOCKET: u32 = 886; pub const FACILITY_MOBILE: u32 = 1793; pub const FACILITY_SQLITE: u32 = 1967; +pub const FACILITY_SERVICE_FABRIC: u32 = 1968; pub const FACILITY_UTC: u32 = 1989; pub const FACILITY_WEP: u32 = 2049; pub const FACILITY_SYNCENGINE: u32 = 2050; @@ -4457,6 +4545,8 @@ pub const ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR: u32 = 443; pub const ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED: u32 = 444; pub const ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION: u32 = 445; pub const ERROR_DLP_POLICY_DENIES_OPERATION: u32 = 446; +pub const ERROR_SECURITY_DENIES_OPERATION: u32 = 447; +pub const ERROR_UNTRUSTED_MOUNT_POINT: u32 = 448; pub const ERROR_DLP_POLICY_SILENTLY_FAIL: u32 = 449; pub const ERROR_CAPAUTHZ_NOT_DEVUNLOCKED: u32 = 450; pub const ERROR_CAPAUTHZ_CHANGE_TYPE: u32 = 451; @@ -4470,15 +4560,39 @@ pub const ERROR_CAPAUTHZ_SCCD_PARSE_ERROR: u32 = 458; pub const ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED: u32 = 459; pub const ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH: u32 = 460; pub const ERROR_CIMFS_IMAGE_CORRUPT: u32 = 470; +pub const ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED: u32 = 471; +pub const ERROR_STORAGE_STACK_ACCESS_DENIED: u32 = 472; +pub const ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES: u32 = 473; +pub const ERROR_INDEX_OUT_OF_BOUNDS: u32 = 474; +pub const ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT: u32 = 475; pub const ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT: u32 = 480; pub const ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT: u32 = 481; pub const ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT: u32 = 482; pub const ERROR_DEVICE_HARDWARE_ERROR: u32 = 483; pub const ERROR_INVALID_ADDRESS: u32 = 487; pub const ERROR_HAS_SYSTEM_CRITICAL_FILES: u32 = 488; -pub const ERROR_VRF_CFG_AND_IO_ENABLED: u32 = 1183; -pub const ERROR_PARTITION_TERMINATING: u32 = 1184; +pub const ERROR_ENCRYPTED_FILE_NOT_SUPPORTED: u32 = 489; +pub const ERROR_SPARSE_FILE_NOT_SUPPORTED: u32 = 490; +pub const ERROR_PAGEFILE_NOT_SUPPORTED: u32 = 491; +pub const ERROR_VOLUME_NOT_SUPPORTED: u32 = 492; +pub const ERROR_NOT_SUPPORTED_WITH_BYPASSIO: u32 = 493; +pub const ERROR_NO_BYPASSIO_DRIVER_SUPPORT: u32 = 494; +pub const ERROR_NOT_SUPPORTED_WITH_ENCRYPTION: u32 = 495; +pub const ERROR_NOT_SUPPORTED_WITH_COMPRESSION: u32 = 496; +pub const ERROR_NOT_SUPPORTED_WITH_REPLICATION: u32 = 497; +pub const ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION: u32 = 498; +pub const ERROR_NOT_SUPPORTED_WITH_AUDITING: u32 = 499; pub const ERROR_USER_PROFILE_LOAD: u32 = 500; +pub const ERROR_SESSION_KEY_TOO_SHORT: u32 = 501; +pub const ERROR_ACCESS_DENIED_APPDATA: u32 = 502; +pub const ERROR_NOT_SUPPORTED_WITH_MONITORING: u32 = 503; +pub const ERROR_NOT_SUPPORTED_WITH_SNAPSHOT: u32 = 504; +pub const ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION: u32 = 505; +pub const ERROR_BYPASSIO_FLT_NOT_SUPPORTED: u32 = 506; +pub const ERROR_DEVICE_RESET_REQUIRED: u32 = 507; +pub const ERROR_VOLUME_WRITE_ACCESS_DENIED: u32 = 508; +pub const ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE: u32 = 509; +pub const ERROR_FS_METADATA_INCONSISTENT: u32 = 510; pub const ERROR_ARITHMETIC_OVERFLOW: u32 = 534; pub const ERROR_PIPE_CONNECTED: u32 = 535; pub const ERROR_PIPE_LISTENING: u32 = 536; @@ -4750,6 +4864,10 @@ pub const ERROR_CALLBACK_INVOKE_INLINE: u32 = 812; pub const ERROR_CPU_SET_INVALID: u32 = 813; pub const ERROR_ENCLAVE_NOT_TERMINATED: u32 = 814; pub const ERROR_ENCLAVE_VIOLATION: u32 = 815; +pub const ERROR_SERVER_TRANSPORT_CONFLICT: u32 = 816; +pub const ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT: u32 = 817; +pub const ERROR_FT_READ_FROM_COPY_FAILURE: u32 = 818; +pub const ERROR_SECTION_DIRECT_MAP_ONLY: u32 = 819; pub const ERROR_EA_ACCESS_DENIED: u32 = 994; pub const ERROR_OPERATION_ABORTED: u32 = 995; pub const ERROR_IO_INCOMPLETE: u32 = 996; @@ -4879,8 +4997,10 @@ pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: u32 = 1178; pub const ERROR_JOURNAL_NOT_ACTIVE: u32 = 1179; pub const ERROR_POTENTIAL_FILE_FOUND: u32 = 1180; pub const ERROR_JOURNAL_ENTRY_DELETED: u32 = 1181; +pub const ERROR_PARTITION_TERMINATING: u32 = 1184; pub const ERROR_SHUTDOWN_IS_SCHEDULED: u32 = 1190; pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: u32 = 1191; +pub const ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE: u32 = 1192; pub const ERROR_BAD_DEVICE: u32 = 1200; pub const ERROR_CONNECTION_UNAVAIL: u32 = 1201; pub const ERROR_DEVICE_ALREADY_REMEMBERED: u32 = 1202; @@ -5451,6 +5571,29 @@ pub const ERROR_APPEXEC_INVALID_HOST_STATE: u32 = 3064; pub const ERROR_APPEXEC_NO_DONOR: u32 = 3065; pub const ERROR_APPEXEC_HOST_ID_MISMATCH: u32 = 3066; pub const ERROR_APPEXEC_UNKNOWN_USER: u32 = 3067; +pub const ERROR_APPEXEC_APP_COMPAT_BLOCK: u32 = 3068; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT: u32 = 3069; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION: u32 = 3070; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING: u32 = 3071; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES: u32 = 3072; +pub const ERROR_VRF_VOLATILE_CFG_AND_IO_ENABLED: u32 = 3080; +pub const ERROR_VRF_VOLATILE_NOT_STOPPABLE: u32 = 3081; +pub const ERROR_VRF_VOLATILE_SAFE_MODE: u32 = 3082; +pub const ERROR_VRF_VOLATILE_NOT_RUNNABLE_SYSTEM: u32 = 3083; +pub const ERROR_VRF_VOLATILE_NOT_SUPPORTED_RULECLASS: u32 = 3084; +pub const ERROR_VRF_VOLATILE_PROTECTED_DRIVER: u32 = 3085; +pub const ERROR_VRF_VOLATILE_NMI_REGISTERED: u32 = 3086; +pub const ERROR_VRF_VOLATILE_SETTINGS_CONFLICT: u32 = 3087; +pub const ERROR_DIF_IOCALLBACK_NOT_REPLACED: u32 = 3190; +pub const ERROR_DIF_LIVEDUMP_LIMIT_EXCEEDED: u32 = 3191; +pub const ERROR_DIF_VOLATILE_SECTION_NOT_LOCKED: u32 = 3192; +pub const ERROR_DIF_VOLATILE_DRIVER_HOTPATCHED: u32 = 3193; +pub const ERROR_DIF_VOLATILE_INVALID_INFO: u32 = 3194; +pub const ERROR_DIF_VOLATILE_DRIVER_IS_NOT_RUNNING: u32 = 3195; +pub const ERROR_DIF_VOLATILE_PLUGIN_IS_NOT_RUNNING: u32 = 3196; +pub const ERROR_DIF_VOLATILE_PLUGIN_CHANGE_NOT_ALLOWED: u32 = 3197; +pub const ERROR_DIF_VOLATILE_NOT_ALLOWED: u32 = 3198; +pub const ERROR_DIF_BINDING_API_NOT_FOUND: u32 = 3199; pub const ERROR_IO_REISSUE_AS_CACHED: u32 = 3950; pub const ERROR_WINS_INTERNAL: u32 = 4000; pub const ERROR_CAN_NOT_DEL_LOCAL_WINS: u32 = 4001; @@ -5577,6 +5720,7 @@ pub const ERROR_SMR_GARBAGE_COLLECTION_REQUIRED: u32 = 4445; pub const ERROR_WOF_WIM_HEADER_CORRUPT: u32 = 4446; pub const ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT: u32 = 4447; pub const ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT: u32 = 4448; +pub const ERROR_OBJECT_IS_IMMUTABLE: u32 = 4449; pub const ERROR_VOLUME_NOT_SIS_ENABLED: u32 = 4500; pub const ERROR_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: u32 = 4550; pub const ERROR_SYSTEM_INTEGRITY_POLICY_VIOLATION: u32 = 4551; @@ -5584,6 +5728,10 @@ pub const ERROR_SYSTEM_INTEGRITY_INVALID_POLICY: u32 = 4552; pub const ERROR_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: u32 = 4553; pub const ERROR_SYSTEM_INTEGRITY_TOO_MANY_POLICIES: u32 = 4554; pub const ERROR_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED: u32 = 4555; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_MALICIOUS: u32 = 4556; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_PUA: u32 = 4557; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_DANGEROUS_EXT: u32 = 4558; +pub const ERROR_SYSTEM_INTEGRITY_REPUTATION_OFFLINE: u32 = 4559; pub const ERROR_VSM_NOT_INITIALIZED: u32 = 4560; pub const ERROR_VSM_DMA_PROTECTION_NOT_IN_USE: u32 = 4561; pub const ERROR_PLATFORM_MANIFEST_NOT_AUTHORIZED: u32 = 4570; @@ -6435,6 +6583,9 @@ pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: u32 = 8647; pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: u32 = 8648; pub const ERROR_DS_MISSING_FOREST_TRUST: u32 = 8649; pub const ERROR_DS_VALUE_KEY_NOT_UNIQUE: u32 = 8650; +pub const ERROR_WEAK_WHFBKEY_BLOCKED: u32 = 8651; +pub const ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD: u32 = 8652; +pub const ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED: u32 = 8653; pub const DNS_ERROR_RESPONSE_CODES_BASE: u32 = 9000; pub const DNS_ERROR_RCODE_NO_ERROR: u32 = 0; pub const DNS_ERROR_MASK: u32 = 9000; @@ -7179,6 +7330,12 @@ pub const ERROR_SIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE: u32 = 15661; pub const ERROR_PACKAGE_EXTERNAL_LOCATION_NOT_ALLOWED: u32 = 15662; pub const ERROR_INSTALL_FULLTRUST_HOSTRUNTIME_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY: u32 = 15663; +pub const ERROR_PACKAGE_LACKS_CAPABILITY_FOR_MANDATORY_STARTUPTASKS: u32 = 15664; +pub const ERROR_INSTALL_RESOLVE_HOSTRUNTIME_DEPENDENCY_FAILED: u32 = 15665; +pub const ERROR_MACHINE_SCOPE_NOT_ALLOWED: u32 = 15666; +pub const ERROR_CLASSIC_COMPAT_MODE_NOT_ALLOWED: u32 = 15667; +pub const ERROR_STAGEFROMUPDATEAGENT_PACKAGE_NOT_APPLICABLE: u32 = 15668; +pub const ERROR_PACKAGE_NOT_REGISTERED_FOR_USER: u32 = 15669; pub const APPMODEL_ERROR_NO_PACKAGE: u32 = 15700; pub const APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT: u32 = 15701; pub const APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT: u32 = 15702; @@ -7354,6 +7511,7 @@ pub const RPI_FLAG_SMB2_SHARECAP_DFS: u32 = 8; pub const RPI_FLAG_SMB2_SHARECAP_CONTINUOUS_AVAILABILITY: u32 = 16; pub const RPI_FLAG_SMB2_SHARECAP_SCALEOUT: u32 = 32; pub const RPI_FLAG_SMB2_SHARECAP_CLUSTER: u32 = 64; +pub const RPI_SMB2_SHAREFLAG_ENCRYPT_DATA: u32 = 1; pub const RPI_SMB2_FLAG_SERVERCAP_DFS: u32 = 1; pub const RPI_SMB2_FLAG_SERVERCAP_LEASING: u32 = 2; pub const RPI_SMB2_FLAG_SERVERCAP_LARGEMTU: u32 = 4; @@ -7362,6 +7520,7 @@ pub const RPI_SMB2_FLAG_SERVERCAP_PERSISTENT_HANDLES: u32 = 16; pub const RPI_SMB2_FLAG_SERVERCAP_DIRECTORY_LEASING: u32 = 32; pub const SYMBOLIC_LINK_FLAG_DIRECTORY: u32 = 1; pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: u32 = 2; +pub const MICROSOFT_WINDOWS_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS: u32 = 1; pub const MICROSOFT_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS: u32 = 0; pub const R2_BLACK: u32 = 1; pub const R2_NOTMERGEPEN: u32 = 2; @@ -7671,6 +7830,8 @@ pub const OBJ_ENHMETADC: u32 = 12; pub const OBJ_ENHMETAFILE: u32 = 13; pub const OBJ_COLORSPACE: u32 = 14; pub const GDI_OBJ_LAST: u32 = 14; +pub const GDI_MIN_OBJ_TYPE: u32 = 1; +pub const GDI_MAX_OBJ_TYPE: u32 = 14; pub const MWT_IDENTITY: u32 = 1; pub const MWT_LEFTMULTIPLY: u32 = 2; pub const MWT_RIGHTMULTIPLY: u32 = 3; @@ -8392,12 +8553,13 @@ pub const DISPLAYCONFIG_TARGET_IS_HMD: u32 = 32; pub const DISPLAYCONFIG_PATH_ACTIVE: u32 = 1; pub const DISPLAYCONFIG_PATH_PREFERRED_UNSCALED: u32 = 4; pub const DISPLAYCONFIG_PATH_SUPPORT_VIRTUAL_MODE: u32 = 8; -pub const DISPLAYCONFIG_PATH_VALID_FLAGS: u32 = 13; +pub const DISPLAYCONFIG_PATH_VALID_FLAGS: u32 = 29; pub const QDC_ALL_PATHS: u32 = 1; pub const QDC_ONLY_ACTIVE_PATHS: u32 = 2; pub const QDC_DATABASE_CURRENT: u32 = 4; pub const QDC_VIRTUAL_MODE_AWARE: u32 = 16; pub const QDC_INCLUDE_HMD: u32 = 32; +pub const QDC_VIRTUAL_REFRESH_RATE_AWARE: u32 = 64; pub const SDC_TOPOLOGY_INTERNAL: u32 = 1; pub const SDC_TOPOLOGY_CLONE: u32 = 2; pub const SDC_TOPOLOGY_EXTEND: u32 = 4; @@ -8414,6 +8576,7 @@ pub const SDC_PATH_PERSIST_IF_REQUIRED: u32 = 2048; pub const SDC_FORCE_MODE_ENUMERATION: u32 = 4096; pub const SDC_ALLOW_PATH_ORDER_CHANGES: u32 = 8192; pub const SDC_VIRTUAL_MODE_AWARE: u32 = 32768; +pub const SDC_VIRTUAL_REFRESH_RATE_AWARE: u32 = 131072; pub const RDH_RECTANGLES: u32 = 1; pub const SYSRGN: u32 = 4; pub const GGO_METRICS: u32 = 0; @@ -9805,6 +9968,8 @@ pub const EWX_RESTARTAPPS: u32 = 64; pub const EWX_HYBRID_SHUTDOWN: u32 = 4194304; pub const EWX_BOOTOPTIONS: u32 = 16777216; pub const EWX_ARSO: u32 = 67108864; +pub const EWX_CHECK_SAFE_FOR_SERVER: u32 = 134217728; +pub const EWX_SYSTEM_INITIATED: u32 = 268435456; pub const BSM_ALLCOMPONENTS: u32 = 0; pub const BSM_VXDS: u32 = 1; pub const BSM_NETDRIVER: u32 = 2; @@ -10386,6 +10551,8 @@ pub const SC_SEPARATOR: u32 = 61455; pub const SCF_ISSECURE: u32 = 1; pub const SC_ICON: u32 = 61472; pub const SC_ZOOM: u32 = 61488; +pub const CURSOR_CREATION_SCALING_NONE: u32 = 1; +pub const CURSOR_CREATION_SCALING_DEFAULT: u32 = 2; pub const IMAGE_BITMAP: u32 = 0; pub const IMAGE_ICON: u32 = 1; pub const IMAGE_CURSOR: u32 = 2; @@ -11896,8 +12063,11 @@ pub const LOCALE_SSHORTTIME: u32 = 121; pub const LOCALE_SOPENTYPELANGUAGETAG: u32 = 122; pub const LOCALE_SSORTLOCALE: u32 = 123; pub const LOCALE_SRELATIVELONGDATE: u32 = 124; +pub const LOCALE_ICONSTRUCTEDLOCALE: u32 = 125; pub const LOCALE_SSHORTESTAM: u32 = 126; pub const LOCALE_SSHORTESTPM: u32 = 127; +pub const LOCALE_IUSEUTF8LEGACYACP: u32 = 1638; +pub const LOCALE_IUSEUTF8LEGACYOEMCP: u32 = 2457; pub const LOCALE_IDEFAULTCODEPAGE: u32 = 11; pub const LOCALE_IDEFAULTANSICODEPAGE: u32 = 4100; pub const LOCALE_IDEFAULTMACCODEPAGE: u32 = 4113; @@ -12069,6 +12239,8 @@ pub const MUI_LIP_LANGUAGE: u32 = 4; pub const MUI_LANGUAGE_INSTALLED: u32 = 32; pub const MUI_LANGUAGE_LICENSED: u32 = 64; pub const GEOID_NOT_AVAILABLE: i32 = -1; +pub const SORTING_PARADIGM_NLS: u32 = 0; +pub const SORTING_PARADIGM_ICU: u32 = 16777216; pub const IDN_ALLOW_UNASSIGNED: u32 = 1; pub const IDN_USE_STD3_ASCII_RULES: u32 = 2; pub const IDN_EMAIL_ADDRESS: u32 = 4; @@ -12257,6 +12429,7 @@ pub const RRF_WOW64_MASK: u32 = 196608; pub const RRF_NOEXPAND: u32 = 268435456; pub const RRF_ZEROONFAILURE: u32 = 536870912; pub const REG_PROCESS_APPKEY: u32 = 1; +pub const REG_USE_CURRENT_SECURITY_CONTEXT: u32 = 2; pub const PROVIDER_KEEPS_VALUE_LENGTH: u32 = 1; pub const REG_MUI_STRING_TRUNCATE: u32 = 1; pub const REG_SECURE_CONNECTION: u32 = 1; @@ -12351,6 +12524,9 @@ pub const SHUTDOWN_RESTART_BOOTOPTIONS: u32 = 1024; pub const SHUTDOWN_SOFT_REBOOT: u32 = 2048; pub const SHUTDOWN_MOBILE_UI: u32 = 4096; pub const SHUTDOWN_ARSO: u32 = 8192; +pub const SHUTDOWN_CHECK_SAFE_FOR_SERVER: u32 = 16384; +pub const SHUTDOWN_VAIL_CONTAINER: u32 = 32768; +pub const SHUTDOWN_SYSTEM_INITIATED: u32 = 65536; pub const WNNC_NET_MSNET: u32 = 65536; pub const WNNC_NET_SMB: u32 = 131072; pub const WNNC_NET_NETWARE: u32 = 196608; @@ -12472,7 +12648,7 @@ pub const CONNECT_CRED_RESET: u32 = 8192; pub const CONNECT_REQUIRE_INTEGRITY: u32 = 16384; pub const CONNECT_REQUIRE_PRIVACY: u32 = 32768; pub const CONNECT_WRITE_THROUGH_SEMANTICS: u32 = 65536; -pub const CONNECT_COMPRESS_NETWORK_TRAFFIC: u32 = 131072; +pub const CONNECT_GLOBAL_MAPPING: u32 = 262144; pub const CONNDLG_RO_PATH: u32 = 1; pub const CONNDLG_CONN_POINT: u32 = 2; pub const CONNDLG_USE_MRU: u32 = 4; @@ -13852,6 +14028,7 @@ pub const RPC_C_USE_INTERNET_PORT: u32 = 1; pub const RPC_C_USE_INTRANET_PORT: u32 = 2; pub const RPC_C_DONT_FAIL: u32 = 4; pub const RPC_C_RPCHTTP_USE_LOAD_BALANCE: u32 = 8; +pub const RPC_C_TRY_ENFORCE_MAX_CALLS: u32 = 16; pub const RPC_C_OPT_BINDING_NONCAUSAL: u32 = 9; pub const RPC_C_OPT_SECURITY_CALLBACK: u32 = 10; pub const RPC_C_OPT_UNIQUE_BINDING: u32 = 11; @@ -14253,6 +14430,8 @@ pub const NCM_DISPLAYERRORTIP: u32 = 1028; pub const PERF_DATA_VERSION: u32 = 1; pub const PERF_DATA_REVISION: u32 = 1; pub const PERF_NO_INSTANCES: i32 = -1; +pub const PERF_METADATA_MULTIPLE_INSTANCES: i32 = -2; +pub const PERF_METADATA_NO_INSTANCES: i32 = -3; pub const PERF_SIZE_DWORD: u32 = 0; pub const PERF_SIZE_LARGE: u32 = 256; pub const PERF_SIZE_ZERO: u32 = 512; @@ -14827,6 +15006,7 @@ pub const BCRYPT_SUPPORTED_PAD_OAEP: u32 = 8; pub const BCRYPT_SUPPORTED_PAD_PSS: u32 = 16; pub const BCRYPT_PROV_DISPATCH: u32 = 1; pub const BCRYPT_BLOCK_PADDING: u32 = 1; +pub const BCRYPT_GENERATE_IV: u32 = 32; pub const BCRYPT_PAD_NONE: u32 = 1; pub const BCRYPT_PAD_PKCS1: u32 = 2; pub const BCRYPT_PAD_OAEP: u32 = 4; @@ -14980,6 +15160,7 @@ pub const BCRYPT_ECDSA_ALGORITHM: &[u8; 6usize] = b"ECDSA\0"; pub const BCRYPT_ECDH_ALGORITHM: &[u8; 5usize] = b"ECDH\0"; pub const BCRYPT_XTS_AES_ALGORITHM: &[u8; 8usize] = b"XTS-AES\0"; pub const BCRYPT_HKDF_ALGORITHM: &[u8; 5usize] = b"HKDF\0"; +pub const BCRYPT_CHACHA20_POLY1305_ALGORITHM: &[u8; 18usize] = b"CHACHA20_POLY1305\0"; pub const BCRYPT_CIPHER_INTERFACE: u32 = 1; pub const BCRYPT_HASH_INTERFACE: u32 = 2; pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: u32 = 3; @@ -15005,6 +15186,9 @@ pub const BCRYPT_KEY_DERIVATION_OPERATION: u32 = 64; pub const BCRYPT_PUBLIC_KEY_FLAG: u32 = 1; pub const BCRYPT_PRIVATE_KEY_FLAG: u32 = 2; pub const BCRYPT_NO_KEY_VALIDATION: u32 = 8; +pub const BCRYPT_KEY_VALIDATION_RANGE: u32 = 16; +pub const BCRYPT_KEY_VALIDATION_RANGE_AND_ORDER: u32 = 24; +pub const BCRYPT_KEY_VALIDATION_REGENERATE: u32 = 32; pub const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER: u32 = 1; pub const BCRYPT_USE_SYSTEM_PREFERRED_RNG: u32 = 2; pub const BCRYPT_HASH_INTERFACE_MAJORVERSION_2: u32 = 2; @@ -15253,7 +15437,6 @@ pub const NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY: &[u8; 31usize] = b"PCP_PLATFORM_BINDING_PCRDIGEST\0"; pub const NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY: &[u8; 21usize] = b"PCP_KEY_USAGE_POLICY\0"; pub const NCRYPT_PCP_RSA_SCHEME_PROPERTY: &[u8; 15usize] = b"PCP_RSA_SCHEME\0"; -pub const NCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY: &[u8; 24usize] = b"PCP_RSA_SCHEME_HASH_ALG\0"; pub const NCRYPT_PCP_TPM12_IDBINDING_PROPERTY: &[u8; 20usize] = b"PCP_TPM12_IDBINDING\0"; pub const NCRYPT_PCP_TPM12_IDBINDING_DYNAMIC_PROPERTY: &[u8; 28usize] = b"PCP_TPM12_IDBINDING_DYNAMIC\0"; @@ -15261,10 +15444,8 @@ pub const NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY: &[u8; 23usize] = b"PCP_TPM12_I pub const NCRYPT_PCP_KEYATTESTATION_PROPERTY: &[u8; 25usize] = b"PCP_TPM12_KEYATTESTATION\0"; pub const NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: &[u8; 35usize] = b"PCP_ALTERNATE_KEY_STORAGE_LOCATION\0"; -pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED_PROPERTY: &[u8; 34usize] = - b"PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED\0"; -pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY_PROPERTY: &[u8; 37usize] = - b"PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY\0"; +pub const NCRYPT_PCP_PLATFORM_BINDING_PCRALGID_PROPERTY: &[u8; 30usize] = + b"PCP_PLATFORM_BINDING_PCRALGID\0"; pub const NCRYPT_PCP_HMAC_AUTH_POLICYREF: &[u8; 24usize] = b"PCP_HMAC_AUTH_POLICYREF\0"; pub const NCRYPT_PCP_HMAC_AUTH_POLICYINFO: &[u8; 25usize] = b"PCP_HMAC_AUTH_POLICYINFO\0"; pub const NCRYPT_PCP_HMAC_AUTH_NONCE: &[u8; 20usize] = b"PCP_HMAC_AUTH_NONCE\0"; @@ -15278,15 +15459,24 @@ pub const NCRYPT_PCP_TPM_VERSION_PROPERTY: &[u8; 16usize] = b"PCP_TPM_VERSION\0" pub const NCRYPT_PCP_RAW_POLICYDIGEST_PROPERTY: &[u8; 21usize] = b"PCP_RAW_POLICYDIGEST\0"; pub const NCRYPT_PCP_KEY_CREATIONHASH_PROPERTY: &[u8; 21usize] = b"PCP_KEY_CREATIONHASH\0"; pub const NCRYPT_PCP_KEY_CREATIONTICKET_PROPERTY: &[u8; 23usize] = b"PCP_KEY_CREATIONTICKET\0"; +pub const NCRYPT_PCP_RSA_SCHEME_HASH_ALG_PROPERTY: &[u8; 24usize] = b"PCP_RSA_SCHEME_HASH_ALG\0"; +pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED_PROPERTY: &[u8; 34usize] = + b"PCP_TPM_IFX_RSA_KEYGEN_PROHIBITED\0"; +pub const NCRYPT_PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY_PROPERTY: &[u8; 37usize] = + b"PCP_TPM_IFX_RSA_KEYGEN_VULNERABILITY\0"; +pub const IFX_RSA_KEYGEN_VUL_NOT_AFFECTED: u32 = 0; +pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_1: u32 = 1; +pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_2: u32 = 2; pub const NCRYPT_PCP_SESSIONID_PROPERTY: &[u8; 14usize] = b"PCP_SESSIONID\0"; pub const NCRYPT_PCP_PSS_SALT_SIZE_PROPERTY: &[u8; 14usize] = b"PSS Salt Size\0"; pub const NCRYPT_TPM_PSS_SALT_SIZE_UNKNOWN: u32 = 0; pub const NCRYPT_TPM_PSS_SALT_SIZE_MAXIMUM: u32 = 1; pub const NCRYPT_TPM_PSS_SALT_SIZE_HASHSIZE: u32 = 2; +pub const NCRYPT_PCP_INTERMEDIATE_CA_EKCERT_PROPERTY: &[u8; 27usize] = + b"PCP_INTERMEDIATE_CA_EKCERT\0"; +pub const NCRYPT_PCP_PCRTABLE_ALGORITHM_PROPERTY: &[u8; 23usize] = b"PCP_PCRTABLE_ALGORITHM\0"; +pub const NCRYPT_PCP_SYMMETRIC_KEYBITS_PROPERTY: &[u8; 22usize] = b"PCP_SYMMETRIC_KEYBITS\0"; pub const NCRYPT_TPM_PAD_PSS_IGNORE_SALT: u32 = 32; -pub const IFX_RSA_KEYGEN_VUL_NOT_AFFECTED: u32 = 0; -pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_1: u32 = 1; -pub const IFX_RSA_KEYGEN_VUL_AFFECTED_LEVEL_2: u32 = 2; pub const NCRYPT_TPM12_PROVIDER: u32 = 65536; pub const NCRYPT_PCP_SIGNATURE_KEY: u32 = 1; pub const NCRYPT_PCP_ENCRYPTION_KEY: u32 = 2; @@ -15295,8 +15485,6 @@ pub const NCRYPT_PCP_STORAGE_KEY: u32 = 4; pub const NCRYPT_PCP_IDENTITY_KEY: u32 = 8; pub const NCRYPT_PCP_HMACVERIFICATION_KEY: u32 = 16; pub const NCRYPT_SCARD_NGC_KEY_NAME: &[u8; 20usize] = b"SmartCardNgcKeyName\0"; -pub const NCRYPT_PCP_PLATFORM_BINDING_PCRALGID_PROPERTY: &[u8; 30usize] = - b"PCP_PLATFORM_BINDING_PCRALGID\0"; pub const NCRYPT_INITIALIZATION_VECTOR: &[u8; 3usize] = b"IV\0"; pub const NCRYPT_CHANGEPASSWORD_PROPERTY: &[u8; 19usize] = b"PCP_CHANGEPASSWORD\0"; pub const NCRYPT_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY: &[u8; 35usize] = @@ -15770,6 +15958,8 @@ pub const szOID_REQUEST_CLIENT_INFO: &[u8; 22usize] = b"1.3.6.1.4.1.311.21.20\0" pub const szOID_ENCRYPTED_KEY_HASH: &[u8; 22usize] = b"1.3.6.1.4.1.311.21.21\0"; pub const szOID_CERTSRV_CROSSCA_VERSION: &[u8; 22usize] = b"1.3.6.1.4.1.311.21.22\0"; pub const szOID_NTDS_REPLICATION: &[u8; 21usize] = b"1.3.6.1.4.1.311.25.1\0"; +pub const szOID_NTDS_CA_SECURITY_EXT: &[u8; 21usize] = b"1.3.6.1.4.1.311.25.2\0"; +pub const szOID_NTDS_OBJECTSID: &[u8; 23usize] = b"1.3.6.1.4.1.311.25.2.1\0"; pub const szOID_SUBJECT_DIR_ATTRS: &[u8; 9usize] = b"2.5.29.9\0"; pub const szOID_PKIX_KP: &[u8; 16usize] = b"1.3.6.1.5.5.7.3\0"; pub const szOID_PKIX_KP_SERVER_AUTH: &[u8; 18usize] = b"1.3.6.1.5.5.7.3.1\0"; @@ -17052,6 +17242,7 @@ pub const CERT_CHAIN_WEAK_MIN_BIT_LENGTH_NAME: &[u8; 13usize] = b"MinBitLength\0 pub const CERT_CHAIN_WEAK_SHA256_ALLOW_NAME: &[u8; 12usize] = b"Sha256Allow\0"; pub const CERT_CHAIN_MIN_PUB_KEY_BIT_LENGTH_DISABLE: u32 = 4294967295; pub const CERT_CHAIN_ENABLE_WEAK_SETTINGS_FLAG: u32 = 2147483648; +pub const CERT_CHAIN_DISABLE_ECC_PARA_FLAG: u32 = 16; pub const CERT_CHAIN_DISABLE_ALL_EKU_WEAK_FLAG: u32 = 65536; pub const CERT_CHAIN_ENABLE_ALL_EKU_HYGIENE_FLAG: u32 = 131072; pub const CERT_CHAIN_DISABLE_OPT_IN_SERVER_AUTH_WEAK_FLAG: u32 = 262144; @@ -17070,7 +17261,7 @@ pub const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAG: u32 = 4096; pub const CERT_CHAIN_DISABLE_MOTW_FILE_HASH_WEAK_FLAG: u32 = 8192; pub const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAG: u32 = 16384; pub const CERT_CHAIN_DISABLE_MOTW_TIMESTAMP_HASH_WEAK_FLAG: u32 = 32768; -pub const CERT_CHAIN_DISABLE_WEAK_FLAGS: u32 = 215285760; +pub const CERT_CHAIN_DISABLE_WEAK_FLAGS: u32 = 215285776; pub const CERT_CHAIN_DISABLE_FILE_HASH_WEAK_FLAGS: u32 = 12288; pub const CERT_CHAIN_DISABLE_TIMESTAMP_HASH_WEAK_FLAGS: u32 = 49152; pub const CERT_CHAIN_ENABLE_HYGIENE_FLAGS: u32 = 857866240; @@ -17647,6 +17838,10 @@ pub const FILE_DEVICE_NVDIMM: u32 = 90; pub const FILE_DEVICE_HOLOGRAPHIC: u32 = 91; pub const FILE_DEVICE_SDFXHCI: u32 = 92; pub const FILE_DEVICE_UCMUCSI: u32 = 93; +pub const FILE_DEVICE_PRM: u32 = 94; +pub const FILE_DEVICE_EVENT_COLLECTOR: u32 = 95; +pub const FILE_DEVICE_USB4: u32 = 96; +pub const FILE_DEVICE_SOUNDWIRE: u32 = 97; pub const METHOD_BUFFERED: u32 = 0; pub const METHOD_IN_DIRECT: u32 = 1; pub const METHOD_OUT_DIRECT: u32 = 2; @@ -17762,6 +17957,7 @@ pub const DEVICE_DSM_RANGE_ERROR_OUTPUT_V1: u32 = 1; pub const DEVICE_DSM_RANGE_ERROR_INFO_VERSION_V1: u32 = 1; pub const IOCTL_STORAGE_BC_VERSION: u32 = 1; pub const STORAGE_PRIORITY_HINT_SUPPORTED: u32 = 1; +pub const STORAGE_DIAGNOSTIC_FLAG_ADAPTER_REQUEST: u32 = 1; pub const ERROR_HISTORY_DIRECTORY_ENTRY_DEFAULT_COUNT: u32 = 8; pub const DEVICEDUMP_STRUCTURE_VERSION_V1: u32 = 1; pub const DEVICEDUMP_MAX_IDSTRING: u32 = 32; @@ -18047,14 +18243,15 @@ pub const MARK_HANDLE_TXF_SYSTEM_LOG: u32 = 4; pub const MARK_HANDLE_NOT_TXF_SYSTEM_LOG: u32 = 8; pub const MARK_HANDLE_REALTIME: u32 = 32; pub const MARK_HANDLE_NOT_REALTIME: u32 = 64; -pub const MARK_HANDLE_FILTER_METADATA: u32 = 512; pub const MARK_HANDLE_CLOUD_SYNC: u32 = 2048; pub const MARK_HANDLE_READ_COPY: u32 = 128; pub const MARK_HANDLE_NOT_READ_COPY: u32 = 256; +pub const MARK_HANDLE_FILTER_METADATA: u32 = 512; pub const MARK_HANDLE_RETURN_PURGE_FAILURE: u32 = 1024; pub const MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION: u32 = 4096; pub const MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO: u32 = 8192; pub const MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES: u32 = 16384; +pub const MARK_HANDLE_SUPPRESS_VOLUME_OPEN_FLUSH: u32 = 32768; pub const MARK_HANDLE_ENABLE_CPU_CACHE: u32 = 268435456; pub const VOLUME_IS_DIRTY: u32 = 1; pub const VOLUME_UPGRADE_SCHEDULED: u32 = 2; @@ -18280,6 +18477,7 @@ pub const QUERY_FILE_LAYOUT_REPARSE_DATA_INVALID: u32 = 1; pub const QUERY_FILE_LAYOUT_REPARSE_TAG_INVALID: u32 = 2; pub const DUPLICATE_EXTENTS_DATA_EX_SOURCE_ATOMIC: u32 = 1; pub const DUPLICATE_EXTENTS_DATA_EX_ASYNC: u32 = 2; +pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V0: u32 = 0; pub const REFS_SMR_VOLUME_INFO_OUTPUT_VERSION_V1: u32 = 1; pub const REFS_SMR_VOLUME_GC_PARAMETERS_VERSION_V1: u32 = 1; pub const STREAMS_INVALID_ID: u32 = 0; @@ -18316,7 +18514,8 @@ pub const CONTAINER_ROOT_INFO_FLAG_BIND_ROOT: u32 = 32; pub const CONTAINER_ROOT_INFO_FLAG_BIND_TARGET_ROOT: u32 = 64; pub const CONTAINER_ROOT_INFO_FLAG_BIND_EXCEPTION_ROOT: u32 = 128; pub const CONTAINER_ROOT_INFO_FLAG_BIND_DO_NOT_MAP_NAME: u32 = 256; -pub const CONTAINER_ROOT_INFO_VALID_FLAGS: u32 = 511; +pub const CONTAINER_ROOT_INFO_FLAG_UNION_LAYER_ROOT: u32 = 512; +pub const CONTAINER_ROOT_INFO_VALID_FLAGS: u32 = 1023; pub const PROJFS_PROTOCOL_VERSION: u32 = 3; pub const IOCTL_VOLUME_BASE: u32 = 86; pub const EFS_TRACKED_OFFSET_HEADER_FLAG: u32 = 1; @@ -19060,6 +19259,7 @@ pub const FMFD_SERVERMIME: u32 = 8; pub const FMFD_RESPECTTEXTPLAIN: u32 = 16; pub const FMFD_RETURNUPDATEDIMGMIMES: u32 = 32; pub const FMFD_RESERVED_1: u32 = 64; +pub const FMFD_RESERVED_2: u32 = 128; pub const UAS_EXACTLEGACY: u32 = 4096; pub const URLMON_OPTION_USERAGENT: u32 = 268435457; pub const URLMON_OPTION_USERAGENT_REFRESH: u32 = 268435458; @@ -20304,6 +20504,9 @@ pub const AI_CANONNAME: u32 = 2; pub const AI_NUMERICHOST: u32 = 4; pub const AI_NUMERICSERV: u32 = 8; pub const AI_DNS_ONLY: u32 = 16; +pub const AI_FORCE_CLEAR_TEXT: u32 = 32; +pub const AI_BYPASS_DNS_CACHE: u32 = 64; +pub const AI_RETURN_TTL: u32 = 128; pub const AI_ALL: u32 = 256; pub const AI_ADDRCONFIG: u32 = 1024; pub const AI_V4MAPPED: u32 = 2048; @@ -20313,11 +20516,22 @@ pub const AI_RETURN_PREFERRED_NAMES: u32 = 65536; pub const AI_FQDN: u32 = 131072; pub const AI_FILESERVER: u32 = 262144; pub const AI_DISABLE_IDN_ENCODING: u32 = 524288; -pub const AI_EXTENDED: u32 = 2147483648; +pub const AI_SECURE_WITH_FALLBACK: u32 = 1048576; +pub const AI_EXCLUSIVE_CUSTOM_SERVERS: u32 = 2097152; +pub const AI_RETURN_RESPONSE_FLAGS: u32 = 268435456; +pub const AI_REQUIRE_SECURE: u32 = 536870912; pub const AI_RESOLUTION_HANDLE: u32 = 1073741824; +pub const AI_EXTENDED: u32 = 2147483648; pub const ADDRINFOEX_VERSION_2: u32 = 2; pub const ADDRINFOEX_VERSION_3: u32 = 3; pub const ADDRINFOEX_VERSION_4: u32 = 4; +pub const ADDRINFOEX_VERSION_5: u32 = 5; +pub const ADDRINFOEX_VERSION_6: u32 = 6; +pub const AI_DNS_SERVER_TYPE_UDP: u32 = 1; +pub const AI_DNS_SERVER_TYPE_DOH: u32 = 2; +pub const AI_DNS_SERVER_UDP_FALLBACK: u32 = 1; +pub const AI_DNS_RESPONSE_SECURE: u32 = 1; +pub const AI_DNS_RESPONSE_HOSTFILE: u32 = 2; pub const NS_ALL: u32 = 0; pub const NS_SAP: u32 = 1; pub const NS_NDS: u32 = 2; @@ -20555,11 +20769,18 @@ pub const LUP_NON_AUTHORITATIVE: u32 = 16384; pub const LUP_SECURE: u32 = 32768; pub const LUP_RETURN_PREFERRED_NAMES: u32 = 65536; pub const LUP_DNS_ONLY: u32 = 131072; +pub const LUP_RETURN_RESPONSE_FLAGS: u32 = 262144; pub const LUP_ADDRCONFIG: u32 = 1048576; pub const LUP_DUAL_ADDR: u32 = 2097152; pub const LUP_FILESERVER: u32 = 4194304; pub const LUP_DISABLE_IDN_ENCODING: u32 = 8388608; pub const LUP_API_ANSI: u32 = 16777216; +pub const LUP_EXTENDED_QUERYSET: u32 = 33554432; +pub const LUP_SECURE_WITH_FALLBACK: u32 = 67108864; +pub const LUP_EXCLUSIVE_CUSTOM_SERVERS: u32 = 134217728; +pub const LUP_REQUIRE_SECURE: u32 = 268435456; +pub const LUP_RETURN_TTL: u32 = 536870912; +pub const LUP_FORCE_CLEAR_TEXT: u32 = 1073741824; pub const LUP_RESOLUTION_HANDLE: u32 = 2147483648; pub const RESULT_IS_ALIAS: u32 = 1; pub const RESULT_IS_ADDED: u32 = 16; @@ -20575,6 +20796,26 @@ pub const POLLWRBAND: u32 = 32; pub const POLLERR: u32 = 1; pub const POLLHUP: u32 = 2; pub const POLLNVAL: u32 = 4; +pub const SOCK_NOTIFY_REGISTER_EVENT_NONE: u32 = 0; +pub const SOCK_NOTIFY_REGISTER_EVENT_IN: u32 = 1; +pub const SOCK_NOTIFY_REGISTER_EVENT_OUT: u32 = 2; +pub const SOCK_NOTIFY_REGISTER_EVENT_HANGUP: u32 = 4; +pub const SOCK_NOTIFY_REGISTER_EVENTS_ALL: u32 = 7; +pub const SOCK_NOTIFY_EVENT_IN: u32 = 1; +pub const SOCK_NOTIFY_EVENT_OUT: u32 = 2; +pub const SOCK_NOTIFY_EVENT_HANGUP: u32 = 4; +pub const SOCK_NOTIFY_EVENT_ERR: u32 = 64; +pub const SOCK_NOTIFY_EVENT_REMOVE: u32 = 128; +pub const SOCK_NOTIFY_EVENTS_ALL: u32 = 199; +pub const SOCK_NOTIFY_OP_NONE: u32 = 0; +pub const SOCK_NOTIFY_OP_ENABLE: u32 = 1; +pub const SOCK_NOTIFY_OP_DISABLE: u32 = 2; +pub const SOCK_NOTIFY_OP_REMOVE: u32 = 4; +pub const SOCK_NOTIFY_TRIGGER_ONESHOT: u32 = 1; +pub const SOCK_NOTIFY_TRIGGER_PERSISTENT: u32 = 2; +pub const SOCK_NOTIFY_TRIGGER_LEVEL: u32 = 4; +pub const SOCK_NOTIFY_TRIGGER_EDGE: u32 = 8; +pub const SOCK_NOTIFY_TRIGGER_ALL: u32 = 15; pub const IFF_UP: u32 = 1; pub const IFF_BROADCAST: u32 = 2; pub const IFF_LOOPBACK: u32 = 4; @@ -20612,6 +20853,7 @@ pub const IP_RECVTCLASS: u32 = 40; pub const IP_RECVTOS: u32 = 40; pub const IP_ORIGINAL_ARRIVAL_IF: u32 = 47; pub const IP_ECN: u32 = 50; +pub const IP_RECVECN: u32 = 50; pub const IP_PKTINFO_EX: u32 = 51; pub const IP_WFP_REDIRECT_RECORDS: u32 = 60; pub const IP_WFP_REDIRECT_CONTEXT: u32 = 70; @@ -20661,6 +20903,7 @@ pub const IPV6_RECVRTHDR: u32 = 38; pub const IPV6_TCLASS: u32 = 39; pub const IPV6_RECVTCLASS: u32 = 40; pub const IPV6_ECN: u32 = 50; +pub const IPV6_RECVECN: u32 = 50; pub const IPV6_PKTINFO_EX: u32 = 51; pub const IPV6_WFP_REDIRECT_RECORDS: u32 = 60; pub const IPV6_WFP_REDIRECT_CONTEXT: u32 = 70; @@ -21254,6 +21497,7 @@ pub type LONG_PTR = ::std::os::raw::c_longlong; pub type PLONG_PTR = *mut ::std::os::raw::c_longlong; pub type ULONG_PTR = ::std::os::raw::c_ulonglong; pub type PULONG_PTR = *mut ::std::os::raw::c_ulonglong; +pub type PHANDLE64 = *mut *mut ::std::os::raw::c_void; pub type SHANDLE_PTR = ::std::os::raw::c_longlong; pub type HANDLE_PTR = ::std::os::raw::c_ulonglong; pub type UHALF_PTR = ::std::os::raw::c_uint; @@ -23421,6 +23665,189 @@ fn bindgen_test_layout__XSTATE_CONTEXT() { pub type XSTATE_CONTEXT = _XSTATE_CONTEXT; pub type PXSTATE_CONTEXT = *mut _XSTATE_CONTEXT; #[repr(C)] +#[derive(Copy, Clone)] +pub struct _KERNEL_CET_CONTEXT { + pub Ssp: DWORD64, + pub Rip: DWORD64, + pub SegCs: WORD, + pub __bindgen_anon_1: _KERNEL_CET_CONTEXT__bindgen_ty_1, + pub Fill: [WORD; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _KERNEL_CET_CONTEXT__bindgen_ty_1 { + pub AllFlags: WORD, + pub __bindgen_anon_1: _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(2))] +#[derive(Debug, Copy, Clone)] +pub struct _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 2usize]>, +} +#[test] +fn bindgen_test_layout__KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 2usize, + concat!( + "Size of: ", + stringify!(_KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 2usize, + concat!( + "Alignment of ", + stringify!(_KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); +} +impl _KERNEL_CET_CONTEXT__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn UseWrss(&self) -> WORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u16) } + } + #[inline] + pub fn set_UseWrss(&mut self, val: WORD) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn PopShadowStackOne(&self) -> WORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u16) } + } + #[inline] + pub fn set_PopShadowStackOne(&mut self, val: WORD) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn Unused(&self) -> WORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 14u8) as u16) } + } + #[inline] + pub fn set_Unused(&mut self, val: WORD) { + unsafe { + let val: u16 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 14u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + UseWrss: WORD, + PopShadowStackOne: WORD, + Unused: WORD, + ) -> __BindgenBitfieldUnit<[u8; 2usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let UseWrss: u16 = unsafe { ::std::mem::transmute(UseWrss) }; + UseWrss as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let PopShadowStackOne: u16 = unsafe { ::std::mem::transmute(PopShadowStackOne) }; + PopShadowStackOne as u64 + }); + __bindgen_bitfield_unit.set(2usize, 14u8, { + let Unused: u16 = unsafe { ::std::mem::transmute(Unused) }; + Unused as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__KERNEL_CET_CONTEXT__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_KERNEL_CET_CONTEXT__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_KERNEL_CET_CONTEXT__bindgen_ty_1>(), + 2usize, + concat!("Size of: ", stringify!(_KERNEL_CET_CONTEXT__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_KERNEL_CET_CONTEXT__bindgen_ty_1>(), + 2usize, + concat!( + "Alignment of ", + stringify!(_KERNEL_CET_CONTEXT__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AllFlags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_KERNEL_CET_CONTEXT__bindgen_ty_1), + "::", + stringify!(AllFlags) + ) + ); +} +#[test] +fn bindgen_test_layout__KERNEL_CET_CONTEXT() { + const UNINIT: ::std::mem::MaybeUninit<_KERNEL_CET_CONTEXT> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_KERNEL_CET_CONTEXT>(), + 24usize, + concat!("Size of: ", stringify!(_KERNEL_CET_CONTEXT)) + ); + assert_eq!( + ::std::mem::align_of::<_KERNEL_CET_CONTEXT>(), + 8usize, + concat!("Alignment of ", stringify!(_KERNEL_CET_CONTEXT)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Ssp) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_KERNEL_CET_CONTEXT), + "::", + stringify!(Ssp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Rip) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_KERNEL_CET_CONTEXT), + "::", + stringify!(Rip) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SegCs) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_KERNEL_CET_CONTEXT), + "::", + stringify!(SegCs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Fill) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_KERNEL_CET_CONTEXT), + "::", + stringify!(Fill) + ) + ); +} +pub type KERNEL_CET_CONTEXT = _KERNEL_CET_CONTEXT; +pub type PKERNEL_CET_CONTEXT = *mut _KERNEL_CET_CONTEXT; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _SCOPE_TABLE_AMD64 { pub Count: DWORD, @@ -23922,6 +24349,13 @@ extern "C" { HighProduct: *mut ::std::os::raw::c_longlong, ) -> ::std::os::raw::c_longlong; } +extern "C" { + pub fn UnsignedMultiply128( + Multiplier: DWORD64, + Multiplicand: DWORD64, + HighProduct: *mut DWORD64, + ) -> DWORD64; +} extern "C" { pub fn _umul128( Multiplier: ::std::os::raw::c_ulonglong, @@ -24759,160 +25193,6 @@ pub type RUNTIME_FUNCTION = _IMAGE_RUNTIME_FUNCTION_ENTRY; pub type PRUNTIME_FUNCTION = *mut _IMAGE_RUNTIME_FUNCTION_ENTRY; pub type SCOPE_TABLE = SCOPE_TABLE_AMD64; pub type PSCOPE_TABLE = *mut SCOPE_TABLE_AMD64; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _UNWIND_HISTORY_TABLE_ENTRY { - pub ImageBase: DWORD64, - pub FunctionEntry: PRUNTIME_FUNCTION, -} -#[test] -fn bindgen_test_layout__UNWIND_HISTORY_TABLE_ENTRY() { - const UNINIT: ::std::mem::MaybeUninit<_UNWIND_HISTORY_TABLE_ENTRY> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_UNWIND_HISTORY_TABLE_ENTRY>(), - 16usize, - concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY)) - ); - assert_eq!( - ::std::mem::align_of::<_UNWIND_HISTORY_TABLE_ENTRY>(), - 8usize, - concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ImageBase) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE_ENTRY), - "::", - stringify!(ImageBase) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).FunctionEntry) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE_ENTRY), - "::", - stringify!(FunctionEntry) - ) - ); -} -pub type UNWIND_HISTORY_TABLE_ENTRY = _UNWIND_HISTORY_TABLE_ENTRY; -pub type PUNWIND_HISTORY_TABLE_ENTRY = *mut _UNWIND_HISTORY_TABLE_ENTRY; -#[repr(C)] -#[derive(Debug, Copy, Clone)] -pub struct _UNWIND_HISTORY_TABLE { - pub Count: DWORD, - pub LocalHint: BYTE, - pub GlobalHint: BYTE, - pub Search: BYTE, - pub Once: BYTE, - pub LowAddress: DWORD64, - pub HighAddress: DWORD64, - pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12usize], -} -#[test] -fn bindgen_test_layout__UNWIND_HISTORY_TABLE() { - const UNINIT: ::std::mem::MaybeUninit<_UNWIND_HISTORY_TABLE> = - ::std::mem::MaybeUninit::uninit(); - let ptr = UNINIT.as_ptr(); - assert_eq!( - ::std::mem::size_of::<_UNWIND_HISTORY_TABLE>(), - 216usize, - concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE)) - ); - assert_eq!( - ::std::mem::align_of::<_UNWIND_HISTORY_TABLE>(), - 8usize, - concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE)) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Count) as usize - ptr as usize }, - 0usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(Count) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).LocalHint) as usize - ptr as usize }, - 4usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(LocalHint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GlobalHint) as usize - ptr as usize }, - 5usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(GlobalHint) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Search) as usize - ptr as usize }, - 6usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(Search) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Once) as usize - ptr as usize }, - 7usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(Once) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).LowAddress) as usize - ptr as usize }, - 8usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(LowAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).HighAddress) as usize - ptr as usize }, - 16usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(HighAddress) - ) - ); - assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Entry) as usize - ptr as usize }, - 24usize, - concat!( - "Offset of field: ", - stringify!(_UNWIND_HISTORY_TABLE), - "::", - stringify!(Entry) - ) - ); -} -pub type UNWIND_HISTORY_TABLE = _UNWIND_HISTORY_TABLE; -pub type PUNWIND_HISTORY_TABLE = *mut _UNWIND_HISTORY_TABLE; pub type GET_RUNTIME_FUNCTION_CALLBACK = ::std::option::Option< unsafe extern "C" fn(ControlPc: DWORD64, Context: PVOID) -> PRUNTIME_FUNCTION, >; @@ -24937,7 +25217,7 @@ pub struct _DISPATCHER_CONTEXT { pub ContextRecord: PCONTEXT, pub LanguageHandler: PEXCEPTION_ROUTINE, pub HandlerData: PVOID, - pub HistoryTable: PUNWIND_HISTORY_TABLE, + pub HistoryTable: *mut _UNWIND_HISTORY_TABLE, pub ScopeIndex: DWORD, pub Fill0: DWORD, } @@ -25798,6 +26078,2007 @@ fn bindgen_test_layout__SCOPE_TABLE_ARM64() { pub type SCOPE_TABLE_ARM64 = _SCOPE_TABLE_ARM64; pub type PSCOPE_TABLE_ARM64 = *mut _SCOPE_TABLE_ARM64; #[repr(C)] +#[derive(Copy, Clone)] +pub union _ARM64_NT_NEON128 { + pub __bindgen_anon_1: _ARM64_NT_NEON128__bindgen_ty_1, + pub D: [f64; 2usize], + pub S: [f32; 4usize], + pub H: [WORD; 8usize], + pub B: [BYTE; 16usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ARM64_NT_NEON128__bindgen_ty_1 { + pub Low: ULONGLONG, + pub High: LONGLONG, +} +#[test] +fn bindgen_test_layout__ARM64_NT_NEON128__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64_NT_NEON128__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64_NT_NEON128__bindgen_ty_1>(), + 16usize, + concat!("Size of: ", stringify!(_ARM64_NT_NEON128__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64_NT_NEON128__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_ARM64_NT_NEON128__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Low) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128__bindgen_ty_1), + "::", + stringify!(Low) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).High) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128__bindgen_ty_1), + "::", + stringify!(High) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64_NT_NEON128() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64_NT_NEON128> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64_NT_NEON128>(), + 16usize, + concat!("Size of: ", stringify!(_ARM64_NT_NEON128)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64_NT_NEON128>(), + 8usize, + concat!("Alignment of ", stringify!(_ARM64_NT_NEON128)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).D) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128), + "::", + stringify!(D) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).S) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128), + "::", + stringify!(S) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).H) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128), + "::", + stringify!(H) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).B) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_NEON128), + "::", + stringify!(B) + ) + ); +} +pub type ARM64_NT_NEON128 = _ARM64_NT_NEON128; +pub type PARM64_NT_NEON128 = *mut _ARM64_NT_NEON128; +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct _ARM64_NT_CONTEXT { + pub ContextFlags: DWORD, + pub Cpsr: DWORD, + pub __bindgen_anon_1: _ARM64_NT_CONTEXT__bindgen_ty_1, + pub Sp: DWORD64, + pub Pc: DWORD64, + pub V: [ARM64_NT_NEON128; 32usize], + pub Fpcr: DWORD, + pub Fpsr: DWORD, + pub Bcr: [DWORD; 8usize], + pub Bvr: [DWORD64; 8usize], + pub Wcr: [DWORD; 2usize], + pub Wvr: [DWORD64; 2usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _ARM64_NT_CONTEXT__bindgen_ty_1 { + pub __bindgen_anon_1: _ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1, + pub X: [DWORD64; 31usize], +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1 { + pub X0: DWORD64, + pub X1: DWORD64, + pub X2: DWORD64, + pub X3: DWORD64, + pub X4: DWORD64, + pub X5: DWORD64, + pub X6: DWORD64, + pub X7: DWORD64, + pub X8: DWORD64, + pub X9: DWORD64, + pub X10: DWORD64, + pub X11: DWORD64, + pub X12: DWORD64, + pub X13: DWORD64, + pub X14: DWORD64, + pub X15: DWORD64, + pub X16: DWORD64, + pub X17: DWORD64, + pub X18: DWORD64, + pub X19: DWORD64, + pub X20: DWORD64, + pub X21: DWORD64, + pub X22: DWORD64, + pub X23: DWORD64, + pub X24: DWORD64, + pub X25: DWORD64, + pub X26: DWORD64, + pub X27: DWORD64, + pub X28: DWORD64, + pub Fp: DWORD64, + pub Lr: DWORD64, +} +#[test] +fn bindgen_test_layout__ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 248usize, + concat!( + "Size of: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X0) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X2) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X3) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X4) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X4) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X5) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X5) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X6) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X6) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X7) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X7) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X8) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X8) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X9) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X9) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X10) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X10) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X11) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X11) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X12) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X12) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X13) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X13) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X14) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X14) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X15) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X15) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X16) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X16) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X17) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X17) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X18) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X18) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X19) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X19) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X20) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X20) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X21) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X21) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X22) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X22) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X23) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X23) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X24) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X24) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X25) as usize - ptr as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X25) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X26) as usize - ptr as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X26) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X27) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X27) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X28) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X28) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Fp) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Fp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Lr) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Lr) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64_NT_CONTEXT__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64_NT_CONTEXT__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64_NT_CONTEXT__bindgen_ty_1>(), + 248usize, + concat!("Size of: ", stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64_NT_CONTEXT__bindgen_ty_1>(), + 8usize, + concat!("Alignment of ", stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT__bindgen_ty_1), + "::", + stringify!(X) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64_NT_CONTEXT() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64_NT_CONTEXT> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64_NT_CONTEXT>(), + 912usize, + concat!("Size of: ", stringify!(_ARM64_NT_CONTEXT)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64_NT_CONTEXT>(), + 16usize, + concat!("Alignment of ", stringify!(_ARM64_NT_CONTEXT)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ContextFlags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(ContextFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Cpsr) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Cpsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Sp) as usize - ptr as usize }, + 256usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Pc) as usize - ptr as usize }, + 264usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Pc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).V) as usize - ptr as usize }, + 272usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(V) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Fpcr) as usize - ptr as usize }, + 784usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Fpcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Fpsr) as usize - ptr as usize }, + 788usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Fpsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Bcr) as usize - ptr as usize }, + 792usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Bcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Bvr) as usize - ptr as usize }, + 824usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Bvr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Wcr) as usize - ptr as usize }, + 888usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Wcr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Wvr) as usize - ptr as usize }, + 896usize, + concat!( + "Offset of field: ", + stringify!(_ARM64_NT_CONTEXT), + "::", + stringify!(Wvr) + ) + ); +} +pub type ARM64_NT_CONTEXT = _ARM64_NT_CONTEXT; +pub type PARM64_NT_CONTEXT = *mut _ARM64_NT_CONTEXT; +#[repr(C)] +#[repr(align(16))] +#[derive(Copy, Clone)] +pub struct _ARM64EC_NT_CONTEXT { + pub __bindgen_anon_1: _ARM64EC_NT_CONTEXT__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _ARM64EC_NT_CONTEXT__bindgen_ty_1 { + pub __bindgen_anon_1: _ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1 { + pub AMD64_P1Home: DWORD64, + pub AMD64_P2Home: DWORD64, + pub AMD64_P3Home: DWORD64, + pub AMD64_P4Home: DWORD64, + pub AMD64_P5Home: DWORD64, + pub AMD64_P6Home: DWORD64, + pub ContextFlags: DWORD, + pub AMD64_MxCsr_copy: DWORD, + pub AMD64_SegCs: WORD, + pub AMD64_SegDs: WORD, + pub AMD64_SegEs: WORD, + pub AMD64_SegFs: WORD, + pub AMD64_SegGs: WORD, + pub AMD64_SegSs: WORD, + pub AMD64_EFlags: DWORD, + pub AMD64_Dr0: DWORD64, + pub AMD64_Dr1: DWORD64, + pub AMD64_Dr2: DWORD64, + pub AMD64_Dr3: DWORD64, + pub AMD64_Dr6: DWORD64, + pub AMD64_Dr7: DWORD64, + pub X8: DWORD64, + pub X0: DWORD64, + pub X1: DWORD64, + pub X27: DWORD64, + pub Sp: DWORD64, + pub Fp: DWORD64, + pub X25: DWORD64, + pub X26: DWORD64, + pub X2: DWORD64, + pub X3: DWORD64, + pub X4: DWORD64, + pub X5: DWORD64, + pub X19: DWORD64, + pub X20: DWORD64, + pub X21: DWORD64, + pub X22: DWORD64, + pub Pc: DWORD64, + pub __bindgen_anon_1: _ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + pub AMD64_VectorRegister: [ARM64_NT_NEON128; 26usize], + pub AMD64_VectorControl: DWORD64, + pub AMD64_DebugControl: DWORD64, + pub AMD64_LastBranchToRip: DWORD64, + pub AMD64_LastBranchFromRip: DWORD64, + pub AMD64_LastExceptionToRip: DWORD64, + pub AMD64_LastExceptionFromRip: DWORD64, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 { + pub AMD64_ControlWord: WORD, + pub AMD64_StatusWord: WORD, + pub AMD64_TagWord: BYTE, + pub AMD64_Reserved1: BYTE, + pub AMD64_ErrorOpcode: WORD, + pub AMD64_ErrorOffset: DWORD, + pub AMD64_ErrorSelector: WORD, + pub AMD64_Reserved2: WORD, + pub AMD64_DataOffset: DWORD, + pub AMD64_DataSelector: WORD, + pub AMD64_Reserved3: WORD, + pub AMD64_MxCsr: DWORD, + pub AMD64_MxCsr_Mask: DWORD, + pub Lr: DWORD64, + pub X16_0: WORD, + pub AMD64_St0_Reserved1: WORD, + pub AMD64_St0_Reserved2: DWORD, + pub X6: DWORD64, + pub X16_1: WORD, + pub AMD64_St1_Reserved1: WORD, + pub AMD64_St1_Reserved2: DWORD, + pub X7: DWORD64, + pub X16_2: WORD, + pub AMD64_St2_Reserved1: WORD, + pub AMD64_St2_Reserved2: DWORD, + pub X9: DWORD64, + pub X16_3: WORD, + pub AMD64_St3_Reserved1: WORD, + pub AMD64_St3_Reserved2: DWORD, + pub X10: DWORD64, + pub X17_0: WORD, + pub AMD64_St4_Reserved1: WORD, + pub AMD64_St4_Reserved2: DWORD, + pub X11: DWORD64, + pub X17_1: WORD, + pub AMD64_St5_Reserved1: WORD, + pub AMD64_St5_Reserved2: DWORD, + pub X12: DWORD64, + pub X17_2: WORD, + pub AMD64_St6_Reserved1: WORD, + pub AMD64_St6_Reserved2: DWORD, + pub X15: DWORD64, + pub X17_3: WORD, + pub AMD64_St7_Reserved1: WORD, + pub AMD64_St7_Reserved2: DWORD, + pub V: [ARM64_NT_NEON128; 16usize], + pub AMD64_XSAVE_FORMAT_Reserved4: [BYTE; 96usize], +} +#[test] +fn bindgen_test_layout__ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit< + _ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1, + > = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(), + 512usize, + concat!( + "Size of: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_ControlWord) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_ControlWord) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_StatusWord) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_StatusWord) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_TagWord) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_TagWord) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Reserved1) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_ErrorOpcode) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_ErrorOpcode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_ErrorOffset) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_ErrorOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_ErrorSelector) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_ErrorSelector) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Reserved2) as usize - ptr as usize }, + 14usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_DataOffset) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_DataOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_DataSelector) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_DataSelector) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Reserved3) as usize - ptr as usize }, + 22usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Reserved3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_MxCsr) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_MxCsr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_MxCsr_Mask) as usize - ptr as usize }, + 28usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_MxCsr_Mask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Lr) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Lr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X16_0) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X16_0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St0_Reserved1) as usize - ptr as usize }, + 42usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St0_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St0_Reserved2) as usize - ptr as usize }, + 44usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St0_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X6) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X6) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X16_1) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X16_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St1_Reserved1) as usize - ptr as usize }, + 58usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St1_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St1_Reserved2) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St1_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X7) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X7) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X16_2) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X16_2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St2_Reserved1) as usize - ptr as usize }, + 74usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St2_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St2_Reserved2) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St2_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X9) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X9) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X16_3) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X16_3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St3_Reserved1) as usize - ptr as usize }, + 90usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St3_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St3_Reserved2) as usize - ptr as usize }, + 92usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St3_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X10) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X10) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X17_0) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X17_0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St4_Reserved1) as usize - ptr as usize }, + 106usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St4_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St4_Reserved2) as usize - ptr as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St4_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X11) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X11) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X17_1) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X17_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St5_Reserved1) as usize - ptr as usize }, + 122usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St5_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St5_Reserved2) as usize - ptr as usize }, + 124usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St5_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X12) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X12) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X17_2) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X17_2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St6_Reserved1) as usize - ptr as usize }, + 138usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St6_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St6_Reserved2) as usize - ptr as usize }, + 140usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St6_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X15) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X15) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X17_3) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X17_3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St7_Reserved1) as usize - ptr as usize }, + 154usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St7_Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_St7_Reserved2) as usize - ptr as usize }, + 156usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_St7_Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).V) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(V) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).AMD64_XSAVE_FORMAT_Reserved4) as usize - ptr as usize + }, + 416usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_XSAVE_FORMAT_Reserved4) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 1232usize, + concat!( + "Size of: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P1Home) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P1Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P2Home) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P2Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P3Home) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P3Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P4Home) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P4Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P5Home) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P5Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_P6Home) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_P6Home) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ContextFlags) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(ContextFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_MxCsr_copy) as usize - ptr as usize }, + 52usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_MxCsr_copy) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegCs) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegCs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegDs) as usize - ptr as usize }, + 58usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegDs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegEs) as usize - ptr as usize }, + 60usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegEs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegFs) as usize - ptr as usize }, + 62usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegFs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegGs) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegGs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_SegSs) as usize - ptr as usize }, + 66usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_SegSs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_EFlags) as usize - ptr as usize }, + 68usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_EFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr0) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr1) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr2) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr3) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr6) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr6) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_Dr7) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_Dr7) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X8) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X8) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X0) as usize - ptr as usize }, + 128usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X1) as usize - ptr as usize }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X27) as usize - ptr as usize }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X27) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Sp) as usize - ptr as usize }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Sp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Fp) as usize - ptr as usize }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Fp) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X25) as usize - ptr as usize }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X25) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X26) as usize - ptr as usize }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X26) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X2) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X3) as usize - ptr as usize }, + 192usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X3) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X4) as usize - ptr as usize }, + 200usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X4) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X5) as usize - ptr as usize }, + 208usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X5) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X19) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X19) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X20) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X20) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X21) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X21) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).X22) as usize - ptr as usize }, + 240usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(X22) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Pc) as usize - ptr as usize }, + 248usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(Pc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_VectorRegister) as usize - ptr as usize }, + 768usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_VectorRegister) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_VectorControl) as usize - ptr as usize }, + 1184usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_VectorControl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_DebugControl) as usize - ptr as usize }, + 1192usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_DebugControl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_LastBranchToRip) as usize - ptr as usize }, + 1200usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_LastBranchToRip) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_LastBranchFromRip) as usize - ptr as usize }, + 1208usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_LastBranchFromRip) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_LastExceptionToRip) as usize - ptr as usize }, + 1216usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_LastExceptionToRip) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AMD64_LastExceptionFromRip) as usize - ptr as usize }, + 1224usize, + concat!( + "Offset of field: ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1__bindgen_ty_1), + "::", + stringify!(AMD64_LastExceptionFromRip) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64EC_NT_CONTEXT__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1>(), + 1232usize, + concat!("Size of: ", stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64EC_NT_CONTEXT__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_ARM64EC_NT_CONTEXT__bindgen_ty_1) + ) + ); +} +#[test] +fn bindgen_test_layout__ARM64EC_NT_CONTEXT() { + assert_eq!( + ::std::mem::size_of::<_ARM64EC_NT_CONTEXT>(), + 1232usize, + concat!("Size of: ", stringify!(_ARM64EC_NT_CONTEXT)) + ); + assert_eq!( + ::std::mem::align_of::<_ARM64EC_NT_CONTEXT>(), + 16usize, + concat!("Alignment of ", stringify!(_ARM64EC_NT_CONTEXT)) + ); +} +pub type ARM64EC_NT_CONTEXT = _ARM64EC_NT_CONTEXT; +pub type PARM64EC_NT_CONTEXT = *mut _ARM64EC_NT_CONTEXT; +pub type ARM64_RUNTIME_FUNCTION = _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; +pub type PARM64_RUNTIME_FUNCTION = *mut _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY; +#[repr(C)] +#[derive(Copy, Clone)] +pub union _DISPATCHER_CONTEXT_NONVOLREG_ARM64 { + pub Buffer: [BYTE; 152usize], + pub __bindgen_anon_1: _DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1, +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1 { + pub GpNvRegs: [DWORD64; 11usize], + pub FpNvRegs: [f64; 8usize], +} +#[test] +fn bindgen_test_layout__DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1>(), + 152usize, + concat!( + "Size of: ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GpNvRegs) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1), + "::", + stringify!(GpNvRegs) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FpNvRegs) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64__bindgen_ty_1), + "::", + stringify!(FpNvRegs) + ) + ); +} +#[test] +fn bindgen_test_layout__DISPATCHER_CONTEXT_NONVOLREG_ARM64() { + const UNINIT: ::std::mem::MaybeUninit<_DISPATCHER_CONTEXT_NONVOLREG_ARM64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPATCHER_CONTEXT_NONVOLREG_ARM64>(), + 152usize, + concat!("Size of: ", stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64)) + ); + assert_eq!( + ::std::mem::align_of::<_DISPATCHER_CONTEXT_NONVOLREG_ARM64>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Buffer) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_NONVOLREG_ARM64), + "::", + stringify!(Buffer) + ) + ); +} +pub type DISPATCHER_CONTEXT_NONVOLREG_ARM64 = _DISPATCHER_CONTEXT_NONVOLREG_ARM64; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _DISPATCHER_CONTEXT_ARM64 { + pub ControlPc: ULONG_PTR, + pub ImageBase: ULONG_PTR, + pub FunctionEntry: PARM64_RUNTIME_FUNCTION, + pub EstablisherFrame: ULONG_PTR, + pub TargetPc: ULONG_PTR, + pub ContextRecord: PARM64_NT_CONTEXT, + pub LanguageHandler: PEXCEPTION_ROUTINE, + pub HandlerData: PVOID, + pub HistoryTable: *mut _UNWIND_HISTORY_TABLE, + pub ScopeIndex: DWORD, + pub ControlPcIsUnwound: BOOLEAN, + pub NonVolatileRegisters: PBYTE, +} +#[test] +fn bindgen_test_layout__DISPATCHER_CONTEXT_ARM64() { + const UNINIT: ::std::mem::MaybeUninit<_DISPATCHER_CONTEXT_ARM64> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPATCHER_CONTEXT_ARM64>(), + 88usize, + concat!("Size of: ", stringify!(_DISPATCHER_CONTEXT_ARM64)) + ); + assert_eq!( + ::std::mem::align_of::<_DISPATCHER_CONTEXT_ARM64>(), + 8usize, + concat!("Alignment of ", stringify!(_DISPATCHER_CONTEXT_ARM64)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ControlPc) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(ControlPc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ImageBase) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(ImageBase) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FunctionEntry) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(FunctionEntry) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).EstablisherFrame) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(EstablisherFrame) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TargetPc) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(TargetPc) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ContextRecord) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(ContextRecord) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).LanguageHandler) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(LanguageHandler) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).HandlerData) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(HandlerData) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).HistoryTable) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(HistoryTable) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ScopeIndex) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(ScopeIndex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ControlPcIsUnwound) as usize - ptr as usize }, + 76usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(ControlPcIsUnwound) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).NonVolatileRegisters) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(_DISPATCHER_CONTEXT_ARM64), + "::", + stringify!(NonVolatileRegisters) + ) + ); +} +pub type DISPATCHER_CONTEXT_ARM64 = _DISPATCHER_CONTEXT_ARM64; +pub type PDISPATCHER_CONTEXT_ARM64 = *mut _DISPATCHER_CONTEXT_ARM64; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 { pub X19: PDWORD64, @@ -30415,8 +32696,7 @@ pub const _TOKEN_INFORMATION_CLASS_TokenBnoIsolation: _TOKEN_INFORMATION_CLASS = pub const _TOKEN_INFORMATION_CLASS_TokenChildProcessFlags: _TOKEN_INFORMATION_CLASS = 45; pub const _TOKEN_INFORMATION_CLASS_TokenIsLessPrivilegedAppContainer: _TOKEN_INFORMATION_CLASS = 46; pub const _TOKEN_INFORMATION_CLASS_TokenIsSandboxed: _TOKEN_INFORMATION_CLASS = 47; -pub const _TOKEN_INFORMATION_CLASS_TokenOriginatingProcessTrustLevel: _TOKEN_INFORMATION_CLASS = 48; -pub const _TOKEN_INFORMATION_CLASS_MaxTokenInfoClass: _TOKEN_INFORMATION_CLASS = 49; +pub const _TOKEN_INFORMATION_CLASS_MaxTokenInfoClass: _TOKEN_INFORMATION_CLASS = 48; pub type _TOKEN_INFORMATION_CLASS = ::std::os::raw::c_int; pub use self::_TOKEN_INFORMATION_CLASS as TOKEN_INFORMATION_CLASS; pub type PTOKEN_INFORMATION_CLASS = *mut _TOKEN_INFORMATION_CLASS; @@ -32356,6 +34636,7 @@ pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogCached: _SE_IMAGE_SIGN pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogNotCached: _SE_IMAGE_SIGNATURE_TYPE = 4; pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignatureCatalogHint: _SE_IMAGE_SIGNATURE_TYPE = 5; pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignaturePackageCatalog: _SE_IMAGE_SIGNATURE_TYPE = 6; +pub const _SE_IMAGE_SIGNATURE_TYPE_SeImageSignaturePplMitigated: _SE_IMAGE_SIGNATURE_TYPE = 7; pub type _SE_IMAGE_SIGNATURE_TYPE = ::std::os::raw::c_int; pub use self::_SE_IMAGE_SIGNATURE_TYPE as SE_IMAGE_SIGNATURE_TYPE; pub type PSE_IMAGE_SIGNATURE_TYPE = *mut _SE_IMAGE_SIGNATURE_TYPE; @@ -32975,130 +35256,37 @@ fn bindgen_test_layout__UMS_CREATE_THREAD_ATTRIBUTES() { pub type UMS_CREATE_THREAD_ATTRIBUTES = _UMS_CREATE_THREAD_ATTRIBUTES; pub type PUMS_CREATE_THREAD_ATTRIBUTES = *mut _UMS_CREATE_THREAD_ATTRIBUTES; #[repr(C)] -#[repr(align(4))] #[derive(Debug, Copy, Clone)] -pub struct _WOW64_ARCHITECTURE_INFORMATION { - pub _bitfield_align_1: [u16; 0], - pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +pub struct _COMPONENT_FILTER { + pub ComponentFlags: DWORD, } #[test] -fn bindgen_test_layout__WOW64_ARCHITECTURE_INFORMATION() { +fn bindgen_test_layout__COMPONENT_FILTER() { + const UNINIT: ::std::mem::MaybeUninit<_COMPONENT_FILTER> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::<_WOW64_ARCHITECTURE_INFORMATION>(), + ::std::mem::size_of::<_COMPONENT_FILTER>(), 4usize, - concat!("Size of: ", stringify!(_WOW64_ARCHITECTURE_INFORMATION)) + concat!("Size of: ", stringify!(_COMPONENT_FILTER)) ); assert_eq!( - ::std::mem::align_of::<_WOW64_ARCHITECTURE_INFORMATION>(), + ::std::mem::align_of::<_COMPONENT_FILTER>(), 4usize, - concat!("Alignment of ", stringify!(_WOW64_ARCHITECTURE_INFORMATION)) + concat!("Alignment of ", stringify!(_COMPONENT_FILTER)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ComponentFlags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_COMPONENT_FILTER), + "::", + stringify!(ComponentFlags) + ) ); } -impl _WOW64_ARCHITECTURE_INFORMATION { - #[inline] - pub fn Machine(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } - } - #[inline] - pub fn set_Machine(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(0usize, 16u8, val as u64) - } - } - #[inline] - pub fn KernelMode(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } - } - #[inline] - pub fn set_KernelMode(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(16usize, 1u8, val as u64) - } - } - #[inline] - pub fn UserMode(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } - } - #[inline] - pub fn set_UserMode(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(17usize, 1u8, val as u64) - } - } - #[inline] - pub fn Native(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } - } - #[inline] - pub fn set_Native(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(18usize, 1u8, val as u64) - } - } - #[inline] - pub fn Process(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } - } - #[inline] - pub fn set_Process(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(19usize, 1u8, val as u64) - } - } - #[inline] - pub fn ReservedZero0(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 12u8) as u32) } - } - #[inline] - pub fn set_ReservedZero0(&mut self, val: DWORD) { - unsafe { - let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(20usize, 12u8, val as u64) - } - } - #[inline] - pub fn new_bitfield_1( - Machine: DWORD, - KernelMode: DWORD, - UserMode: DWORD, - Native: DWORD, - Process: DWORD, - ReservedZero0: DWORD, - ) -> __BindgenBitfieldUnit<[u8; 4usize]> { - let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); - __bindgen_bitfield_unit.set(0usize, 16u8, { - let Machine: u32 = unsafe { ::std::mem::transmute(Machine) }; - Machine as u64 - }); - __bindgen_bitfield_unit.set(16usize, 1u8, { - let KernelMode: u32 = unsafe { ::std::mem::transmute(KernelMode) }; - KernelMode as u64 - }); - __bindgen_bitfield_unit.set(17usize, 1u8, { - let UserMode: u32 = unsafe { ::std::mem::transmute(UserMode) }; - UserMode as u64 - }); - __bindgen_bitfield_unit.set(18usize, 1u8, { - let Native: u32 = unsafe { ::std::mem::transmute(Native) }; - Native as u64 - }); - __bindgen_bitfield_unit.set(19usize, 1u8, { - let Process: u32 = unsafe { ::std::mem::transmute(Process) }; - Process as u64 - }); - __bindgen_bitfield_unit.set(20usize, 12u8, { - let ReservedZero0: u32 = unsafe { ::std::mem::transmute(ReservedZero0) }; - ReservedZero0 as u64 - }); - __bindgen_bitfield_unit - } -} -pub type WOW64_ARCHITECTURE_INFORMATION = _WOW64_ARCHITECTURE_INFORMATION; +pub type COMPONENT_FILTER = _COMPONENT_FILTER; +pub type PCOMPONENT_FILTER = *mut _COMPONENT_FILTER; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _PROCESS_DYNAMIC_EH_CONTINUATION_TARGET { @@ -33802,7 +35990,8 @@ pub const _PROCESS_MITIGATION_POLICY_ProcessChildProcessPolicy: _PROCESS_MITIGAT pub const _PROCESS_MITIGATION_POLICY_ProcessSideChannelIsolationPolicy: _PROCESS_MITIGATION_POLICY = 14; pub const _PROCESS_MITIGATION_POLICY_ProcessUserShadowStackPolicy: _PROCESS_MITIGATION_POLICY = 15; -pub const _PROCESS_MITIGATION_POLICY_MaxProcessMitigationPolicy: _PROCESS_MITIGATION_POLICY = 16; +pub const _PROCESS_MITIGATION_POLICY_ProcessRedirectionTrustPolicy: _PROCESS_MITIGATION_POLICY = 16; +pub const _PROCESS_MITIGATION_POLICY_MaxProcessMitigationPolicy: _PROCESS_MITIGATION_POLICY = 17; pub type _PROCESS_MITIGATION_POLICY = ::std::os::raw::c_int; pub use self::_PROCESS_MITIGATION_POLICY as PROCESS_MITIGATION_POLICY; pub type PPROCESS_MITIGATION_POLICY = *mut _PROCESS_MITIGATION_POLICY; @@ -34851,14 +37040,36 @@ impl _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1 { } } #[inline] + pub fn EnableXfg(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 1u8) as u32) } + } + #[inline] + pub fn set_EnableXfg(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 1u8, val as u64) + } + } + #[inline] + pub fn EnableXfgAuditMode(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_EnableXfgAuditMode(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] pub fn ReservedFlags(&self) -> DWORD { - unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } } #[inline] pub fn set_ReservedFlags(&mut self, val: DWORD) { unsafe { let val: u32 = ::std::mem::transmute(val); - self._bitfield_1.set(3usize, 29u8, val as u64) + self._bitfield_1.set(5usize, 27u8, val as u64) } } #[inline] @@ -34866,6 +37077,8 @@ impl _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1 { EnableControlFlowGuard: DWORD, EnableExportSuppression: DWORD, StrictMode: DWORD, + EnableXfg: DWORD, + EnableXfgAuditMode: DWORD, ReservedFlags: DWORD, ) -> __BindgenBitfieldUnit<[u8; 4usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); @@ -34883,7 +37096,15 @@ impl _PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY__bindgen_ty_1__bindgen_ty_1 { let StrictMode: u32 = unsafe { ::std::mem::transmute(StrictMode) }; StrictMode as u64 }); - __bindgen_bitfield_unit.set(3usize, 29u8, { + __bindgen_bitfield_unit.set(3usize, 1u8, { + let EnableXfg: u32 = unsafe { ::std::mem::transmute(EnableXfg) }; + EnableXfg as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let EnableXfgAuditMode: u32 = unsafe { ::std::mem::transmute(EnableXfgAuditMode) }; + EnableXfgAuditMode as u64 + }); + __bindgen_bitfield_unit.set(5usize, 27u8, { let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) }; ReservedFlags as u64 }); @@ -36602,6 +38823,160 @@ pub type PPROCESS_MITIGATION_USER_SHADOW_STACK_POLICY = *mut _PROCESS_MITIGATION_USER_SHADOW_STACK_POLICY; #[repr(C)] #[derive(Copy, Clone)] +pub struct _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY { + pub __bindgen_anon_1: _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1 { + pub Flags: DWORD, + pub __bindgen_anon_1: _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::< + _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1, + >(), + 4usize, + concat!( + "Size of: ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::< + _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1, + >(), + 4usize, + concat!( + "Alignment of ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1) + ) + ); +} +impl _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn EnforceRedirectionTrust(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_EnforceRedirectionTrust(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn AuditRedirectionTrust(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_AuditRedirectionTrust(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn ReservedFlags(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_ReservedFlags(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + EnforceRedirectionTrust: DWORD, + AuditRedirectionTrust: DWORD, + ReservedFlags: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let EnforceRedirectionTrust: u32 = + unsafe { ::std::mem::transmute(EnforceRedirectionTrust) }; + EnforceRedirectionTrust as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let AuditRedirectionTrust: u32 = + unsafe { ::std::mem::transmute(AuditRedirectionTrust) }; + AuditRedirectionTrust as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let ReservedFlags: u32 = unsafe { ::std::mem::transmute(ReservedFlags) }; + ReservedFlags as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit< + _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1, + > = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY__bindgen_ty_1), + "::", + stringify!(Flags) + ) + ); +} +#[test] +fn bindgen_test_layout__PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY() { + assert_eq!( + ::std::mem::size_of::<_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY>(), + 4usize, + concat!( + "Size of: ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY) + ) + ); + assert_eq!( + ::std::mem::align_of::<_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY) + ) + ); +} +pub type PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY; +pub type PPROCESS_MITIGATION_REDIRECTION_TRUST_POLICY = + *mut _PROCESS_MITIGATION_REDIRECTION_TRUST_POLICY; +#[repr(C)] +#[derive(Copy, Clone)] pub struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { pub TotalUserTime: LARGE_INTEGER, pub TotalKernelTime: LARGE_INTEGER, @@ -39292,6 +41667,10 @@ pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationCache: _LOGICAL_PROCESSOR_RELA pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorPackage: _LOGICAL_PROCESSOR_RELATIONSHIP = 3; pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationGroup: _LOGICAL_PROCESSOR_RELATIONSHIP = 4; +pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorDie: _LOGICAL_PROCESSOR_RELATIONSHIP = 5; +pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationNumaNodeEx: _LOGICAL_PROCESSOR_RELATIONSHIP = 6; +pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationProcessorModule: _LOGICAL_PROCESSOR_RELATIONSHIP = + 7; pub const _LOGICAL_PROCESSOR_RELATIONSHIP_RelationAll: _LOGICAL_PROCESSOR_RELATIONSHIP = 65535; pub type _LOGICAL_PROCESSOR_RELATIONSHIP = ::std::os::raw::c_int; pub use self::_LOGICAL_PROCESSOR_RELATIONSHIP as LOGICAL_PROCESSOR_RELATIONSHIP; @@ -39652,11 +42031,60 @@ fn bindgen_test_layout__PROCESSOR_RELATIONSHIP() { pub type PROCESSOR_RELATIONSHIP = _PROCESSOR_RELATIONSHIP; pub type PPROCESSOR_RELATIONSHIP = *mut _PROCESSOR_RELATIONSHIP; #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Copy, Clone)] pub struct _NUMA_NODE_RELATIONSHIP { pub NodeNumber: DWORD, - pub Reserved: [BYTE; 20usize], + pub Reserved: [BYTE; 18usize], + pub GroupCount: WORD, + pub __bindgen_anon_1: _NUMA_NODE_RELATIONSHIP__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _NUMA_NODE_RELATIONSHIP__bindgen_ty_1 { pub GroupMask: GROUP_AFFINITY, + pub GroupMasks: [GROUP_AFFINITY; 1usize], +} +#[test] +fn bindgen_test_layout__NUMA_NODE_RELATIONSHIP__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_NUMA_NODE_RELATIONSHIP__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_NUMA_NODE_RELATIONSHIP__bindgen_ty_1>(), + 16usize, + concat!( + "Size of: ", + stringify!(_NUMA_NODE_RELATIONSHIP__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_NUMA_NODE_RELATIONSHIP__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_NUMA_NODE_RELATIONSHIP__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GroupMask) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_NUMA_NODE_RELATIONSHIP__bindgen_ty_1), + "::", + stringify!(GroupMask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GroupMasks) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_NUMA_NODE_RELATIONSHIP__bindgen_ty_1), + "::", + stringify!(GroupMasks) + ) + ); } #[test] fn bindgen_test_layout__NUMA_NODE_RELATIONSHIP() { @@ -39694,28 +42122,74 @@ fn bindgen_test_layout__NUMA_NODE_RELATIONSHIP() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GroupMask) as usize - ptr as usize }, - 24usize, + unsafe { ::std::ptr::addr_of!((*ptr).GroupCount) as usize - ptr as usize }, + 22usize, concat!( "Offset of field: ", stringify!(_NUMA_NODE_RELATIONSHIP), "::", - stringify!(GroupMask) + stringify!(GroupCount) ) ); } pub type NUMA_NODE_RELATIONSHIP = _NUMA_NODE_RELATIONSHIP; pub type PNUMA_NODE_RELATIONSHIP = *mut _NUMA_NODE_RELATIONSHIP; #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Copy, Clone)] pub struct _CACHE_RELATIONSHIP { pub Level: BYTE, pub Associativity: BYTE, pub LineSize: WORD, pub CacheSize: DWORD, pub Type: PROCESSOR_CACHE_TYPE, - pub Reserved: [BYTE; 20usize], + pub Reserved: [BYTE; 18usize], + pub GroupCount: WORD, + pub __bindgen_anon_1: _CACHE_RELATIONSHIP__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _CACHE_RELATIONSHIP__bindgen_ty_1 { pub GroupMask: GROUP_AFFINITY, + pub GroupMasks: [GROUP_AFFINITY; 1usize], +} +#[test] +fn bindgen_test_layout__CACHE_RELATIONSHIP__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_CACHE_RELATIONSHIP__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_CACHE_RELATIONSHIP__bindgen_ty_1>(), + 16usize, + concat!("Size of: ", stringify!(_CACHE_RELATIONSHIP__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_CACHE_RELATIONSHIP__bindgen_ty_1>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_CACHE_RELATIONSHIP__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GroupMask) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_CACHE_RELATIONSHIP__bindgen_ty_1), + "::", + stringify!(GroupMask) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GroupMasks) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_CACHE_RELATIONSHIP__bindgen_ty_1), + "::", + stringify!(GroupMasks) + ) + ); } #[test] fn bindgen_test_layout__CACHE_RELATIONSHIP() { @@ -39792,13 +42266,13 @@ fn bindgen_test_layout__CACHE_RELATIONSHIP() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).GroupMask) as usize - ptr as usize }, - 32usize, + unsafe { ::std::ptr::addr_of!((*ptr).GroupCount) as usize - ptr as usize }, + 30usize, concat!( "Offset of field: ", stringify!(_CACHE_RELATIONSHIP), "::", - stringify!(GroupMask) + stringify!(GroupCount) ) ); } @@ -40550,6 +43024,154 @@ fn bindgen_test_layout__SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION() { pub type SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION; pub type PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = *mut _SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION; #[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION { + pub _bitfield_align_1: [u16; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION() { + assert_eq!( + ::std::mem::size_of::<_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION>(), + 4usize, + concat!( + "Size of: ", + stringify!(_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION) + ) + ); +} +impl _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION { + #[inline] + pub fn Machine(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32) } + } + #[inline] + pub fn set_Machine(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 16u8, val as u64) + } + } + #[inline] + pub fn KernelMode(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 1u8) as u32) } + } + #[inline] + pub fn set_KernelMode(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(16usize, 1u8, val as u64) + } + } + #[inline] + pub fn UserMode(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(17usize, 1u8) as u32) } + } + #[inline] + pub fn set_UserMode(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(17usize, 1u8, val as u64) + } + } + #[inline] + pub fn Native(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(18usize, 1u8) as u32) } + } + #[inline] + pub fn set_Native(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(18usize, 1u8, val as u64) + } + } + #[inline] + pub fn Process(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(19usize, 1u8) as u32) } + } + #[inline] + pub fn set_Process(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(19usize, 1u8, val as u64) + } + } + #[inline] + pub fn WoW64Container(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(20usize, 1u8) as u32) } + } + #[inline] + pub fn set_WoW64Container(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(20usize, 1u8, val as u64) + } + } + #[inline] + pub fn ReservedZero0(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(21usize, 11u8) as u32) } + } + #[inline] + pub fn set_ReservedZero0(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(21usize, 11u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + Machine: DWORD, + KernelMode: DWORD, + UserMode: DWORD, + Native: DWORD, + Process: DWORD, + WoW64Container: DWORD, + ReservedZero0: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 16u8, { + let Machine: u32 = unsafe { ::std::mem::transmute(Machine) }; + Machine as u64 + }); + __bindgen_bitfield_unit.set(16usize, 1u8, { + let KernelMode: u32 = unsafe { ::std::mem::transmute(KernelMode) }; + KernelMode as u64 + }); + __bindgen_bitfield_unit.set(17usize, 1u8, { + let UserMode: u32 = unsafe { ::std::mem::transmute(UserMode) }; + UserMode as u64 + }); + __bindgen_bitfield_unit.set(18usize, 1u8, { + let Native: u32 = unsafe { ::std::mem::transmute(Native) }; + Native as u64 + }); + __bindgen_bitfield_unit.set(19usize, 1u8, { + let Process: u32 = unsafe { ::std::mem::transmute(Process) }; + Process as u64 + }); + __bindgen_bitfield_unit.set(20usize, 1u8, { + let WoW64Container: u32 = unsafe { ::std::mem::transmute(WoW64Container) }; + WoW64Container as u64 + }); + __bindgen_bitfield_unit.set(21usize, 11u8, { + let ReservedZero0: u32 = unsafe { ::std::mem::transmute(ReservedZero0) }; + ReservedZero0 as u64 + }); + __bindgen_bitfield_unit + } +} +pub type SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION = + _SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _XSTATE_FEATURE { pub Offset: DWORD, @@ -40605,6 +43227,9 @@ pub struct _XSTATE_CONFIGURATION { pub AllFeatureSize: DWORD, pub AllFeatures: [DWORD; 64usize], pub EnabledUserVisibleSupervisorFeatures: DWORD64, + pub ExtendedFeatureDisableFeatures: DWORD64, + pub AllNonLargeFeatureSize: DWORD, + pub Spare: DWORD, } #[repr(C)] #[derive(Copy, Clone)] @@ -40663,9 +43288,21 @@ impl _XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1 { } } #[inline] + pub fn ExtendedFeatureDisable(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_ExtendedFeatureDisable(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] pub fn new_bitfield_1( OptimizedSave: DWORD, CompactionEnabled: DWORD, + ExtendedFeatureDisable: DWORD, ) -> __BindgenBitfieldUnit<[u8; 1usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { @@ -40676,6 +43313,11 @@ impl _XSTATE_CONFIGURATION__bindgen_ty_1__bindgen_ty_1 { let CompactionEnabled: u32 = unsafe { ::std::mem::transmute(CompactionEnabled) }; CompactionEnabled as u64 }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let ExtendedFeatureDisable: u32 = + unsafe { ::std::mem::transmute(ExtendedFeatureDisable) }; + ExtendedFeatureDisable as u64 + }); __bindgen_bitfield_unit } } @@ -40715,7 +43357,7 @@ fn bindgen_test_layout__XSTATE_CONFIGURATION() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_XSTATE_CONFIGURATION>(), - 824usize, + 840usize, concat!("Size of: ", stringify!(_XSTATE_CONFIGURATION)) ); assert_eq!( @@ -40816,6 +43458,38 @@ fn bindgen_test_layout__XSTATE_CONFIGURATION() { stringify!(EnabledUserVisibleSupervisorFeatures) ) ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).ExtendedFeatureDisableFeatures) as usize - ptr as usize + }, + 824usize, + concat!( + "Offset of field: ", + stringify!(_XSTATE_CONFIGURATION), + "::", + stringify!(ExtendedFeatureDisableFeatures) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AllNonLargeFeatureSize) as usize - ptr as usize }, + 832usize, + concat!( + "Offset of field: ", + stringify!(_XSTATE_CONFIGURATION), + "::", + stringify!(AllNonLargeFeatureSize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Spare) as usize - ptr as usize }, + 836usize, + concat!( + "Offset of field: ", + stringify!(_XSTATE_CONFIGURATION), + "::", + stringify!(Spare) + ) + ); } pub type XSTATE_CONFIGURATION = _XSTATE_CONFIGURATION; pub type PXSTATE_CONFIGURATION = *mut _XSTATE_CONFIGURATION; @@ -41260,7 +43934,9 @@ pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterUserPhysicalHandle: MEM_EXTENDED_PARAMETER_TYPE = 4; pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterAttributeFlags: MEM_EXTENDED_PARAMETER_TYPE = 5; -pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterMax: MEM_EXTENDED_PARAMETER_TYPE = 6; +pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterImageMachine: + MEM_EXTENDED_PARAMETER_TYPE = 6; +pub const MEM_EXTENDED_PARAMETER_TYPE_MemExtendedParameterMax: MEM_EXTENDED_PARAMETER_TYPE = 7; pub type MEM_EXTENDED_PARAMETER_TYPE = ::std::os::raw::c_int; pub type PMEM_EXTENDED_PARAMETER_TYPE = *mut MEM_EXTENDED_PARAMETER_TYPE; #[repr(C)] @@ -41427,14 +44103,28 @@ fn bindgen_test_layout_MEM_EXTENDED_PARAMETER() { ); } pub type PMEM_EXTENDED_PARAMETER = *mut MEM_EXTENDED_PARAMETER; +pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeReadBandwidth: + _MEM_DEDICATED_ATTRIBUTE_TYPE = 0; +pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeReadLatency: + _MEM_DEDICATED_ATTRIBUTE_TYPE = 1; +pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeWriteBandwidth: + _MEM_DEDICATED_ATTRIBUTE_TYPE = 2; +pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeWriteLatency: + _MEM_DEDICATED_ATTRIBUTE_TYPE = 3; +pub const _MEM_DEDICATED_ATTRIBUTE_TYPE_MemDedicatedAttributeMax: _MEM_DEDICATED_ATTRIBUTE_TYPE = 4; +pub type _MEM_DEDICATED_ATTRIBUTE_TYPE = ::std::os::raw::c_int; +pub use self::_MEM_DEDICATED_ATTRIBUTE_TYPE as MEM_DEDICATED_ATTRIBUTE_TYPE; +pub type PMEM_DEDICATED_ATTRIBUTE_TYPE = *mut _MEM_DEDICATED_ATTRIBUTE_TYPE; pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterInvalidType: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 0; pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterUserPhysicalFlags: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 1; pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterNumaNode: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 2; -pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterMax: +pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterSigningLevel: MEM_SECTION_EXTENDED_PARAMETER_TYPE = 3; +pub const MEM_SECTION_EXTENDED_PARAMETER_TYPE_MemSectionExtendedParameterMax: + MEM_SECTION_EXTENDED_PARAMETER_TYPE = 4; pub type MEM_SECTION_EXTENDED_PARAMETER_TYPE = ::std::os::raw::c_int; pub type PMEM_SECTION_EXTENDED_PARAMETER_TYPE = *mut MEM_SECTION_EXTENDED_PARAMETER_TYPE; #[repr(C)] @@ -41833,6 +44523,175 @@ pub type PENCLAVE_TARGET_FUNCTION = ENCLAVE_TARGET_FUNCTION; pub type LPENCLAVE_TARGET_FUNCTION = PENCLAVE_TARGET_FUNCTION; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct _MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE { + pub Type: MEM_DEDICATED_ATTRIBUTE_TYPE, + pub Reserved: DWORD, + pub Value: DWORD64, +} +#[test] +fn bindgen_test_layout__MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE() { + const UNINIT: ::std::mem::MaybeUninit<_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE>(), + 16usize, + concat!( + "Size of: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE) + ) + ); + assert_eq!( + ::std::mem::align_of::<_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Type) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE), + "::", + stringify!(Type) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE), + "::", + stringify!(Reserved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Value) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE), + "::", + stringify!(Value) + ) + ); +} +pub type MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE = _MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE; +pub type PMEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE = + *mut _MEMORY_PARTITION_DEDICATED_MEMORY_ATTRIBUTE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION { + pub NextEntryOffset: DWORD, + pub SizeOfInformation: DWORD, + pub Flags: DWORD, + pub AttributesOffset: DWORD, + pub AttributeCount: DWORD, + pub Reserved: DWORD, + pub TypeId: DWORD64, +} +#[test] +fn bindgen_test_layout__MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION() { + const UNINIT: ::std::mem::MaybeUninit<_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION>(), + 32usize, + concat!( + "Size of: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION) + ) + ); + assert_eq!( + ::std::mem::align_of::<_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).NextEntryOffset) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(NextEntryOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SizeOfInformation) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(SizeOfInformation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AttributesOffset) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(AttributesOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AttributeCount) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(AttributeCount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(Reserved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TypeId) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION), + "::", + stringify!(TypeId) + ) + ); +} +pub type MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION = + _MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION; +pub type PMEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION = + *mut _MEMORY_PARTITION_DEDICATED_MEMORY_INFORMATION; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct _FILE_ID_128 { pub Identifier: [BYTE; 16usize], } @@ -42273,8 +45132,8 @@ pub struct _SCRUB_DATA_INPUT { pub Flags: DWORD, pub MaximumIos: DWORD, pub ObjectId: [DWORD; 4usize], - pub Reserved: [DWORD; 25usize], - pub ResumeContext: [BYTE; 816usize], + pub Reserved: [DWORD; 41usize], + pub ResumeContext: [BYTE; 1040usize], } #[test] fn bindgen_test_layout__SCRUB_DATA_INPUT() { @@ -42282,7 +45141,7 @@ fn bindgen_test_layout__SCRUB_DATA_INPUT() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_SCRUB_DATA_INPUT>(), - 944usize, + 1232usize, concat!("Size of: ", stringify!(_SCRUB_DATA_INPUT)) ); assert_eq!( @@ -42342,7 +45201,7 @@ fn bindgen_test_layout__SCRUB_DATA_INPUT() { ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).ResumeContext) as usize - ptr as usize }, - 128usize, + 192usize, concat!( "Offset of field: ", stringify!(_SCRUB_DATA_INPUT), @@ -42493,7 +45352,15 @@ pub struct _SCRUB_DATA_OUTPUT { pub NumberOfDataBytesProcessed: ULONGLONG, pub TotalNumberOfMetadataBytesInUse: ULONGLONG, pub TotalNumberOfDataBytesInUse: ULONGLONG, - pub ResumeContext: [BYTE; 816usize], + pub DataBytesSkippedDueToNoAllocation: ULONGLONG, + pub DataBytesSkippedDueToInvalidRun: ULONGLONG, + pub DataBytesSkippedDueToIntegrityStream: ULONGLONG, + pub DataBytesSkippedDueToRegionBeingClean: ULONGLONG, + pub DataBytesSkippedDueToLockConflict: ULONGLONG, + pub DataBytesSkippedDueToNoScrubDataFlag: ULONGLONG, + pub DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag: ULONGLONG, + pub DataBytesScrubbed: ULONGLONG, + pub ResumeContext: [BYTE; 1040usize], } #[test] fn bindgen_test_layout__SCRUB_DATA_OUTPUT() { @@ -42501,7 +45368,7 @@ fn bindgen_test_layout__SCRUB_DATA_OUTPUT() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_SCRUB_DATA_OUTPUT>(), - 944usize, + 1232usize, concat!("Size of: ", stringify!(_SCRUB_DATA_OUTPUT)) ); assert_eq!( @@ -42664,8 +45531,106 @@ fn bindgen_test_layout__SCRUB_DATA_OUTPUT() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).ResumeContext) as usize - ptr as usize }, + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToNoAllocation) as usize - ptr as usize + }, 128usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToNoAllocation) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToInvalidRun) as usize - ptr as usize + }, + 136usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToInvalidRun) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToIntegrityStream) as usize + - ptr as usize + }, + 144usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToIntegrityStream) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToRegionBeingClean) as usize + - ptr as usize + }, + 152usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToRegionBeingClean) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToLockConflict) as usize - ptr as usize + }, + 160usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToLockConflict) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToNoScrubDataFlag) as usize + - ptr as usize + }, + 168usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToNoScrubDataFlag) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag) as usize + - ptr as usize + }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesSkippedDueToNoScrubNonIntegrityStreamFlag) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DataBytesScrubbed) as usize - ptr as usize }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_SCRUB_DATA_OUTPUT), + "::", + stringify!(DataBytesScrubbed) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ResumeContext) as usize - ptr as usize }, + 192usize, concat!( "Offset of field: ", stringify!(_SCRUB_DATA_OUTPUT), @@ -43148,6 +46113,9 @@ extern "C" { extern "C" { pub static GUID_STANDBY_RESET_PERCENT: GUID; } +extern "C" { + pub static GUID_HUPR_ADAPTIVE_DISPLAY_TIMEOUT: GUID; +} extern "C" { pub static GUID_ALLOW_STANDBY_STATES: GUID; } @@ -43475,6 +46443,9 @@ extern "C" { extern "C" { pub static GUID_PROCESSOR_SHORT_THREAD_SCHEDULING_POLICY: GUID; } +extern "C" { + pub static GUID_PROCESSOR_SHORT_THREAD_RUNTIME_THRESHOLD: GUID; +} extern "C" { pub static GUID_SYSTEM_COOLING_POLICY: GUID; } @@ -43532,6 +46503,9 @@ extern "C" { extern "C" { pub static GUID_LIDSWITCH_STATE_CHANGE: GUID; } +extern "C" { + pub static GUID_LIDSWITCH_STATE_RELIABILITY: GUID; +} extern "C" { pub static GUID_BATTERY_PERCENTAGE_REMAINING: GUID; } @@ -43851,7 +46825,8 @@ pub const POWER_INFORMATION_LEVEL_EnergyTrackerCreate: POWER_INFORMATION_LEVEL = pub const POWER_INFORMATION_LEVEL_EnergyTrackerQuery: POWER_INFORMATION_LEVEL = 93; pub const POWER_INFORMATION_LEVEL_UpdateBlackBoxRecorder: POWER_INFORMATION_LEVEL = 94; pub const POWER_INFORMATION_LEVEL_SessionAllowExternalDmaDevices: POWER_INFORMATION_LEVEL = 95; -pub const POWER_INFORMATION_LEVEL_PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 96; +pub const POWER_INFORMATION_LEVEL_SendSuspendResumeNotification: POWER_INFORMATION_LEVEL = 96; +pub const POWER_INFORMATION_LEVEL_PowerInformationLevelMaximum: POWER_INFORMATION_LEVEL = 97; pub type POWER_INFORMATION_LEVEL = ::std::os::raw::c_int; pub const POWER_USER_PRESENCE_TYPE_UserNotPresent: POWER_USER_PRESENCE_TYPE = 0; pub const POWER_USER_PRESENCE_TYPE_UserPresent: POWER_USER_PRESENCE_TYPE = 1; @@ -43982,7 +46957,7 @@ pub type PPOWER_SESSION_TIMEOUTS = *mut _POWER_SESSION_TIMEOUTS; #[derive(Debug, Copy, Clone)] pub struct _POWER_SESSION_RIT_STATE { pub Active: BOOLEAN, - pub LastInputTime: DWORD, + pub LastInputTime: DWORD64, } #[test] fn bindgen_test_layout__POWER_SESSION_RIT_STATE() { @@ -43991,12 +46966,12 @@ fn bindgen_test_layout__POWER_SESSION_RIT_STATE() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_POWER_SESSION_RIT_STATE>(), - 8usize, + 16usize, concat!("Size of: ", stringify!(_POWER_SESSION_RIT_STATE)) ); assert_eq!( ::std::mem::align_of::<_POWER_SESSION_RIT_STATE>(), - 4usize, + 8usize, concat!("Alignment of ", stringify!(_POWER_SESSION_RIT_STATE)) ); assert_eq!( @@ -44011,7 +46986,7 @@ fn bindgen_test_layout__POWER_SESSION_RIT_STATE() { ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).LastInputTime) as usize - ptr as usize }, - 4usize, + 8usize, concat!( "Offset of field: ", stringify!(_POWER_SESSION_RIT_STATE), @@ -44222,7 +47197,7 @@ pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputKeyboard: POWER_MONITOR_REQUEST_REASON = 31; pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputMouse: POWER_MONITOR_REQUEST_REASON = 32; -pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouch: +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouchpad: POWER_MONITOR_REQUEST_REASON = 33; pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputPen: POWER_MONITOR_REQUEST_REASON = 34; @@ -44257,7 +47232,15 @@ pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryCountChangeSup POWER_MONITOR_REQUEST_REASON = 49; pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonResumeModernStandby: POWER_MONITOR_REQUEST_REASON = 50; -pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 51; +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonTerminalInit: + POWER_MONITOR_REQUEST_REASON = 51; +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonPdcSignalSensorsHumanPresence: + POWER_MONITOR_REQUEST_REASON = 52; +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonBatteryPreCritical: + POWER_MONITOR_REQUEST_REASON = 53; +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonUserInputTouch: + POWER_MONITOR_REQUEST_REASON = 54; +pub const POWER_MONITOR_REQUEST_REASON_MonitorRequestReasonMax: POWER_MONITOR_REQUEST_REASON = 55; pub type POWER_MONITOR_REQUEST_REASON = ::std::os::raw::c_int; pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOff: _POWER_MONITOR_REQUEST_TYPE = 0; pub const _POWER_MONITOR_REQUEST_TYPE_MonitorRequestTypeOnAndPresent: _POWER_MONITOR_REQUEST_TYPE = @@ -44580,6 +47563,15 @@ fn bindgen_test_layout__POWER_PLATFORM_INFORMATION() { } pub type POWER_PLATFORM_INFORMATION = _POWER_PLATFORM_INFORMATION; pub type PPOWER_PLATFORM_INFORMATION = *mut _POWER_PLATFORM_INFORMATION; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_GROUP_POLICY: POWER_SETTING_ALTITUDE = 0; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_USER: POWER_SETTING_ALTITUDE = 1; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_RUNTIME_OVERRIDE: POWER_SETTING_ALTITUDE = 2; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_PROVISIONING: POWER_SETTING_ALTITUDE = 3; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_OEM_CUSTOMIZATION: POWER_SETTING_ALTITUDE = 4; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_INTERNAL_OVERRIDE: POWER_SETTING_ALTITUDE = 5; +pub const POWER_SETTING_ALTITUDE_ALTITUDE_OS_DEFAULT: POWER_SETTING_ALTITUDE = 6; +pub type POWER_SETTING_ALTITUDE = ::std::os::raw::c_int; +pub type PPOWER_SETTING_ALTITUDE = *mut POWER_SETTING_ALTITUDE; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct BATTERY_REPORTING_SCALE { @@ -55428,6 +58420,10 @@ pub struct _IMAGE_LOAD_CONFIG_DIRECTORY32 { pub VolatileMetadataPointer: DWORD, pub GuardEHContinuationTable: DWORD, pub GuardEHContinuationCount: DWORD, + pub GuardXFGCheckFunctionPointer: DWORD, + pub GuardXFGDispatchFunctionPointer: DWORD, + pub GuardXFGTableDispatchFunctionPointer: DWORD, + pub CastGuardOsDeterminedFailureMode: DWORD, } #[test] fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY32() { @@ -55436,7 +58432,7 @@ fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY32() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_IMAGE_LOAD_CONFIG_DIRECTORY32>(), - 172usize, + 188usize, concat!("Size of: ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32)) ); assert_eq!( @@ -55902,6 +58898,55 @@ fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY32() { stringify!(GuardEHContinuationCount) ) ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGCheckFunctionPointer) as usize - ptr as usize + }, + 172usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32), + "::", + stringify!(GuardXFGCheckFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGDispatchFunctionPointer) as usize - ptr as usize + }, + 176usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32), + "::", + stringify!(GuardXFGDispatchFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGTableDispatchFunctionPointer) as usize + - ptr as usize + }, + 180usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32), + "::", + stringify!(GuardXFGTableDispatchFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).CastGuardOsDeterminedFailureMode) as usize - ptr as usize + }, + 184usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY32), + "::", + stringify!(CastGuardOsDeterminedFailureMode) + ) + ); } pub type IMAGE_LOAD_CONFIG_DIRECTORY32 = _IMAGE_LOAD_CONFIG_DIRECTORY32; pub type PIMAGE_LOAD_CONFIG_DIRECTORY32 = *mut _IMAGE_LOAD_CONFIG_DIRECTORY32; @@ -55952,6 +58997,10 @@ pub struct _IMAGE_LOAD_CONFIG_DIRECTORY64 { pub VolatileMetadataPointer: ULONGLONG, pub GuardEHContinuationTable: ULONGLONG, pub GuardEHContinuationCount: ULONGLONG, + pub GuardXFGCheckFunctionPointer: ULONGLONG, + pub GuardXFGDispatchFunctionPointer: ULONGLONG, + pub GuardXFGTableDispatchFunctionPointer: ULONGLONG, + pub CastGuardOsDeterminedFailureMode: ULONGLONG, } #[test] fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY64() { @@ -55960,7 +59009,7 @@ fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY64() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_IMAGE_LOAD_CONFIG_DIRECTORY64>(), - 280usize, + 312usize, concat!("Size of: ", stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64)) ); assert_eq!( @@ -56426,6 +59475,55 @@ fn bindgen_test_layout__IMAGE_LOAD_CONFIG_DIRECTORY64() { stringify!(GuardEHContinuationCount) ) ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGCheckFunctionPointer) as usize - ptr as usize + }, + 280usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64), + "::", + stringify!(GuardXFGCheckFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGDispatchFunctionPointer) as usize - ptr as usize + }, + 288usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64), + "::", + stringify!(GuardXFGDispatchFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).GuardXFGTableDispatchFunctionPointer) as usize + - ptr as usize + }, + 296usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64), + "::", + stringify!(GuardXFGTableDispatchFunctionPointer) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).CastGuardOsDeterminedFailureMode) as usize - ptr as usize + }, + 304usize, + concat!( + "Offset of field: ", + stringify!(_IMAGE_LOAD_CONFIG_DIRECTORY64), + "::", + stringify!(CastGuardOsDeterminedFailureMode) + ) + ); } pub type IMAGE_LOAD_CONFIG_DIRECTORY64 = _IMAGE_LOAD_CONFIG_DIRECTORY64; pub type PIMAGE_LOAD_CONFIG_DIRECTORY64 = *mut _IMAGE_LOAD_CONFIG_DIRECTORY64; @@ -57702,6 +60800,8 @@ fn bindgen_test_layout__IMAGE_RUNTIME_FUNCTION_ENTRY() { pub type _PIMAGE_RUNTIME_FUNCTION_ENTRY = *mut _IMAGE_RUNTIME_FUNCTION_ENTRY; pub type IMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY; pub type PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY; +pub type IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY; +pub type PIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY; pub type IMAGE_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY; pub type PIMAGE_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY; #[repr(C)] @@ -59589,6 +62689,160 @@ extern "C" { extern "C" { pub fn RtlCaptureContext2(ContextRecord: PCONTEXT); } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _UNWIND_HISTORY_TABLE_ENTRY { + pub ImageBase: ULONG_PTR, + pub FunctionEntry: PRUNTIME_FUNCTION, +} +#[test] +fn bindgen_test_layout__UNWIND_HISTORY_TABLE_ENTRY() { + const UNINIT: ::std::mem::MaybeUninit<_UNWIND_HISTORY_TABLE_ENTRY> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_UNWIND_HISTORY_TABLE_ENTRY>(), + 16usize, + concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY)) + ); + assert_eq!( + ::std::mem::align_of::<_UNWIND_HISTORY_TABLE_ENTRY>(), + 8usize, + concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE_ENTRY)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ImageBase) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE_ENTRY), + "::", + stringify!(ImageBase) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FunctionEntry) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE_ENTRY), + "::", + stringify!(FunctionEntry) + ) + ); +} +pub type UNWIND_HISTORY_TABLE_ENTRY = _UNWIND_HISTORY_TABLE_ENTRY; +pub type PUNWIND_HISTORY_TABLE_ENTRY = *mut _UNWIND_HISTORY_TABLE_ENTRY; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _UNWIND_HISTORY_TABLE { + pub Count: DWORD, + pub LocalHint: BYTE, + pub GlobalHint: BYTE, + pub Search: BYTE, + pub Once: BYTE, + pub LowAddress: ULONG_PTR, + pub HighAddress: ULONG_PTR, + pub Entry: [UNWIND_HISTORY_TABLE_ENTRY; 12usize], +} +#[test] +fn bindgen_test_layout__UNWIND_HISTORY_TABLE() { + const UNINIT: ::std::mem::MaybeUninit<_UNWIND_HISTORY_TABLE> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_UNWIND_HISTORY_TABLE>(), + 216usize, + concat!("Size of: ", stringify!(_UNWIND_HISTORY_TABLE)) + ); + assert_eq!( + ::std::mem::align_of::<_UNWIND_HISTORY_TABLE>(), + 8usize, + concat!("Alignment of ", stringify!(_UNWIND_HISTORY_TABLE)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Count) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(Count) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).LocalHint) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(LocalHint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GlobalHint) as usize - ptr as usize }, + 5usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(GlobalHint) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Search) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(Search) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Once) as usize - ptr as usize }, + 7usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(Once) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).LowAddress) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(LowAddress) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).HighAddress) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(HighAddress) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Entry) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_UNWIND_HISTORY_TABLE), + "::", + stringify!(Entry) + ) + ); +} +pub type UNWIND_HISTORY_TABLE = _UNWIND_HISTORY_TABLE; +pub type PUNWIND_HISTORY_TABLE = *mut _UNWIND_HISTORY_TABLE; extern "C" { pub fn RtlUnwind( TargetFrame: PVOID, @@ -61215,6 +64469,39 @@ extern "C" { CheckOnly: BOOLEAN, ) -> BOOLEAN; } +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdUnknown: _RTL_SYSTEM_GLOBAL_DATA_ID = 0; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdRngSeedVersion: _RTL_SYSTEM_GLOBAL_DATA_ID = 1; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdInterruptTime: _RTL_SYSTEM_GLOBAL_DATA_ID = 2; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdTimeZoneBias: _RTL_SYSTEM_GLOBAL_DATA_ID = 3; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdImageNumberLow: _RTL_SYSTEM_GLOBAL_DATA_ID = 4; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdImageNumberHigh: _RTL_SYSTEM_GLOBAL_DATA_ID = 5; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdTimeZoneId: _RTL_SYSTEM_GLOBAL_DATA_ID = 6; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdNtMajorVersion: _RTL_SYSTEM_GLOBAL_DATA_ID = 7; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdNtMinorVersion: _RTL_SYSTEM_GLOBAL_DATA_ID = 8; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdSystemExpirationDate: _RTL_SYSTEM_GLOBAL_DATA_ID = + 9; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdKdDebuggerEnabled: _RTL_SYSTEM_GLOBAL_DATA_ID = 10; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdCyclesPerYield: _RTL_SYSTEM_GLOBAL_DATA_ID = 11; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdSafeBootMode: _RTL_SYSTEM_GLOBAL_DATA_ID = 12; +pub const _RTL_SYSTEM_GLOBAL_DATA_ID_GlobalDataIdLastSystemRITEventTickCount: + _RTL_SYSTEM_GLOBAL_DATA_ID = 13; +pub type _RTL_SYSTEM_GLOBAL_DATA_ID = ::std::os::raw::c_int; +pub use self::_RTL_SYSTEM_GLOBAL_DATA_ID as RTL_SYSTEM_GLOBAL_DATA_ID; +pub type PRTL_SYSTEM_GLOBAL_DATA_ID = *mut _RTL_SYSTEM_GLOBAL_DATA_ID; +extern "C" { + pub fn RtlGetSystemGlobalData( + DataId: RTL_SYSTEM_GLOBAL_DATA_ID, + Buffer: PVOID, + Size: DWORD, + ) -> DWORD; +} +extern "C" { + pub fn RtlSetSystemGlobalData( + DataId: RTL_SYSTEM_GLOBAL_DATA_ID, + Buffer: PVOID, + Size: DWORD, + ) -> DWORD; +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _RTL_CRITICAL_SECTION_DEBUG { @@ -61497,6 +64784,7 @@ pub type PVECTORED_EXCEPTION_HANDLER = pub const _HEAP_INFORMATION_CLASS_HeapCompatibilityInformation: _HEAP_INFORMATION_CLASS = 0; pub const _HEAP_INFORMATION_CLASS_HeapEnableTerminationOnCorruption: _HEAP_INFORMATION_CLASS = 1; pub const _HEAP_INFORMATION_CLASS_HeapOptimizeResources: _HEAP_INFORMATION_CLASS = 3; +pub const _HEAP_INFORMATION_CLASS_HeapTag: _HEAP_INFORMATION_CLASS = 7; pub type _HEAP_INFORMATION_CLASS = ::std::os::raw::c_int; pub use self::_HEAP_INFORMATION_CLASS as HEAP_INFORMATION_CLASS; #[repr(C)] @@ -69449,6 +72737,9 @@ extern "C" { cchBuffer: DWORD, ) -> DWORD; } +extern "C" { + pub fn AreShortNamesEnabled(Handle: HANDLE, Enabled: *mut BOOL) -> BOOL; +} extern "C" { pub fn GetShortPathNameW( lpszLongPath: LPCWSTR, @@ -69879,6 +73170,12 @@ extern "C" { extern "C" { pub fn SetFileApisToANSI(); } +extern "C" { + pub fn GetTempPath2W(BufferLength: DWORD, Buffer: LPWSTR) -> DWORD; +} +extern "C" { + pub fn GetTempPath2A(BufferLength: DWORD, Buffer: LPSTR) -> DWORD; +} extern "C" { pub fn CopyFileFromAppW( lpExistingFileName: LPCWSTR, @@ -71310,6 +74607,18 @@ pub type LPSTARTUPINFO = LPSTARTUPINFOA; extern "C" { pub fn QueueUserAPC(pfnAPC: PAPCFUNC, hThread: HANDLE, dwData: ULONG_PTR) -> DWORD; } +pub const _QUEUE_USER_APC_FLAGS_QUEUE_USER_APC_FLAGS_NONE: _QUEUE_USER_APC_FLAGS = 0; +pub const _QUEUE_USER_APC_FLAGS_QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC: _QUEUE_USER_APC_FLAGS = 1; +pub type _QUEUE_USER_APC_FLAGS = ::std::os::raw::c_int; +pub use self::_QUEUE_USER_APC_FLAGS as QUEUE_USER_APC_FLAGS; +extern "C" { + pub fn QueueUserAPC2( + ApcRoutine: PAPCFUNC, + Thread: HANDLE, + Data: ULONG_PTR, + Flags: QUEUE_USER_APC_FLAGS, + ) -> BOOL; +} extern "C" { pub fn GetProcessTimes( hProcess: HANDLE, @@ -71773,7 +75082,8 @@ pub const _PROCESS_INFORMATION_CLASS_ProcessReservedValue1: _PROCESS_INFORMATION pub const _PROCESS_INFORMATION_CLASS_ProcessTelemetryCoverageInfo: _PROCESS_INFORMATION_CLASS = 6; pub const _PROCESS_INFORMATION_CLASS_ProcessProtectionLevelInfo: _PROCESS_INFORMATION_CLASS = 7; pub const _PROCESS_INFORMATION_CLASS_ProcessLeapSecondInfo: _PROCESS_INFORMATION_CLASS = 8; -pub const _PROCESS_INFORMATION_CLASS_ProcessInformationClassMax: _PROCESS_INFORMATION_CLASS = 9; +pub const _PROCESS_INFORMATION_CLASS_ProcessMachineTypeInfo: _PROCESS_INFORMATION_CLASS = 9; +pub const _PROCESS_INFORMATION_CLASS_ProcessInformationClassMax: _PROCESS_INFORMATION_CLASS = 10; pub type _PROCESS_INFORMATION_CLASS = ::std::os::raw::c_int; pub use self::_PROCESS_INFORMATION_CLASS as PROCESS_INFORMATION_CLASS; #[repr(C)] @@ -71842,6 +75152,65 @@ fn bindgen_test_layout__APP_MEMORY_INFORMATION() { } pub type APP_MEMORY_INFORMATION = _APP_MEMORY_INFORMATION; pub type PAPP_MEMORY_INFORMATION = *mut _APP_MEMORY_INFORMATION; +pub const _MACHINE_ATTRIBUTES_UserEnabled: _MACHINE_ATTRIBUTES = 1; +pub const _MACHINE_ATTRIBUTES_KernelEnabled: _MACHINE_ATTRIBUTES = 2; +pub const _MACHINE_ATTRIBUTES_Wow64Container: _MACHINE_ATTRIBUTES = 4; +pub type _MACHINE_ATTRIBUTES = ::std::os::raw::c_int; +pub use self::_MACHINE_ATTRIBUTES as MACHINE_ATTRIBUTES; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _PROCESS_MACHINE_INFORMATION { + pub ProcessMachine: USHORT, + pub Res0: USHORT, + pub MachineAttributes: MACHINE_ATTRIBUTES, +} +#[test] +fn bindgen_test_layout__PROCESS_MACHINE_INFORMATION() { + const UNINIT: ::std::mem::MaybeUninit<_PROCESS_MACHINE_INFORMATION> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_PROCESS_MACHINE_INFORMATION>(), + 8usize, + concat!("Size of: ", stringify!(_PROCESS_MACHINE_INFORMATION)) + ); + assert_eq!( + ::std::mem::align_of::<_PROCESS_MACHINE_INFORMATION>(), + 4usize, + concat!("Alignment of ", stringify!(_PROCESS_MACHINE_INFORMATION)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ProcessMachine) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_PROCESS_MACHINE_INFORMATION), + "::", + stringify!(ProcessMachine) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Res0) as usize - ptr as usize }, + 2usize, + concat!( + "Offset of field: ", + stringify!(_PROCESS_MACHINE_INFORMATION), + "::", + stringify!(Res0) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).MachineAttributes) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_PROCESS_MACHINE_INFORMATION), + "::", + stringify!(MachineAttributes) + ) + ); +} +pub type PROCESS_MACHINE_INFORMATION = _PROCESS_MACHINE_INFORMATION; pub const _PROCESS_MEMORY_EXHAUSTION_TYPE_PMETypeFailFastOnCommitFailure: _PROCESS_MEMORY_EXHAUSTION_TYPE = 0; pub const _PROCESS_MEMORY_EXHAUSTION_TYPE_PMETypeMax: _PROCESS_MEMORY_EXHAUSTION_TYPE = 1; @@ -72123,6 +75492,42 @@ extern "C" { extern "C" { pub fn GetProcessShutdownParameters(lpdwLevel: LPDWORD, lpdwFlags: LPDWORD) -> BOOL; } +extern "C" { + pub fn GetProcessDefaultCpuSetMasks( + Process: HANDLE, + CpuSetMasks: PGROUP_AFFINITY, + CpuSetMaskCount: USHORT, + RequiredMaskCount: PUSHORT, + ) -> BOOL; +} +extern "C" { + pub fn SetProcessDefaultCpuSetMasks( + Process: HANDLE, + CpuSetMasks: PGROUP_AFFINITY, + CpuSetMaskCount: USHORT, + ) -> BOOL; +} +extern "C" { + pub fn GetThreadSelectedCpuSetMasks( + Thread: HANDLE, + CpuSetMasks: PGROUP_AFFINITY, + CpuSetMaskCount: USHORT, + RequiredMaskCount: PUSHORT, + ) -> BOOL; +} +extern "C" { + pub fn SetThreadSelectedCpuSetMasks( + Thread: HANDLE, + CpuSetMasks: PGROUP_AFFINITY, + CpuSetMaskCount: USHORT, + ) -> BOOL; +} +extern "C" { + pub fn GetMachineTypeAttributes( + Machine: USHORT, + MachineTypeAttributes: *mut MACHINE_ATTRIBUTES, + ) -> HRESULT; +} extern "C" { pub fn SetThreadDescription(hThread: HANDLE, lpThreadDescription: PCWSTR) -> HRESULT; } @@ -72772,6 +76177,13 @@ extern "C" { extern "C" { pub fn GetLargePageMinimum() -> SIZE_T; } +extern "C" { + pub fn GetProcessWorkingSetSize( + hProcess: HANDLE, + lpMinimumWorkingSetSize: PSIZE_T, + lpMaximumWorkingSetSize: PSIZE_T, + ) -> BOOL; +} extern "C" { pub fn GetProcessWorkingSetSizeEx( hProcess: HANDLE, @@ -72780,6 +76192,13 @@ extern "C" { Flags: PDWORD, ) -> BOOL; } +extern "C" { + pub fn SetProcessWorkingSetSize( + hProcess: HANDLE, + dwMinimumWorkingSetSize: SIZE_T, + dwMaximumWorkingSetSize: SIZE_T, + ) -> BOOL; +} extern "C" { pub fn SetProcessWorkingSetSizeEx( hProcess: HANDLE, @@ -73374,6 +76793,246 @@ extern "C" { ParameterCount: ULONG, ) -> HANDLE; } +extern "C" { + pub fn AllocateUserPhysicalPages2( + ObjectHandle: HANDLE, + NumberOfPages: PULONG_PTR, + PageArray: PULONG_PTR, + ExtendedParameters: PMEM_EXTENDED_PARAMETER, + ExtendedParameterCount: ULONG, + ) -> BOOL; +} +pub const WIN32_MEMORY_PARTITION_INFORMATION_CLASS_MemoryPartitionInfo: + WIN32_MEMORY_PARTITION_INFORMATION_CLASS = 0; +pub const WIN32_MEMORY_PARTITION_INFORMATION_CLASS_MemoryPartitionDedicatedMemoryInfo: + WIN32_MEMORY_PARTITION_INFORMATION_CLASS = 1; +pub type WIN32_MEMORY_PARTITION_INFORMATION_CLASS = ::std::os::raw::c_int; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct WIN32_MEMORY_PARTITION_INFORMATION { + pub Flags: ULONG, + pub NumaNode: ULONG, + pub Channel: ULONG, + pub NumberOfNumaNodes: ULONG, + pub ResidentAvailablePages: ULONG64, + pub CommittedPages: ULONG64, + pub CommitLimit: ULONG64, + pub PeakCommitment: ULONG64, + pub TotalNumberOfPages: ULONG64, + pub AvailablePages: ULONG64, + pub ZeroPages: ULONG64, + pub FreePages: ULONG64, + pub StandbyPages: ULONG64, + pub Reserved: [ULONG64; 16usize], + pub MaximumCommitLimit: ULONG64, + pub Reserved2: ULONG64, + pub PartitionId: ULONG, +} +#[test] +fn bindgen_test_layout_WIN32_MEMORY_PARTITION_INFORMATION() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 240usize, + concat!("Size of: ", stringify!(WIN32_MEMORY_PARTITION_INFORMATION)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).NumaNode) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(NumaNode) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Channel) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(Channel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).NumberOfNumaNodes) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(NumberOfNumaNodes) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ResidentAvailablePages) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(ResidentAvailablePages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).CommittedPages) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(CommittedPages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).CommitLimit) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(CommitLimit) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PeakCommitment) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(PeakCommitment) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TotalNumberOfPages) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(TotalNumberOfPages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AvailablePages) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(AvailablePages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ZeroPages) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(ZeroPages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FreePages) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(FreePages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).StandbyPages) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(StandbyPages) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(Reserved) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).MaximumCommitLimit) as usize - ptr as usize }, + 216usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(MaximumCommitLimit) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, + 224usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(Reserved2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PartitionId) as usize - ptr as usize }, + 232usize, + concat!( + "Offset of field: ", + stringify!(WIN32_MEMORY_PARTITION_INFORMATION), + "::", + stringify!(PartitionId) + ) + ); +} +extern "C" { + pub fn OpenDedicatedMemoryPartition( + Partition: HANDLE, + DedicatedMemoryTypeId: ULONG64, + DesiredAccess: ACCESS_MASK, + InheritHandle: BOOL, + ) -> HANDLE; +} +extern "C" { + pub fn QueryPartitionInformation( + Partition: HANDLE, + PartitionInformationClass: WIN32_MEMORY_PARTITION_INFORMATION_CLASS, + PartitionInformation: PVOID, + PartitionInformationLength: ULONG, + ) -> BOOL; +} extern "C" { pub fn IsEnclaveTypeSupported(flEnclaveType: DWORD) -> BOOL; } @@ -73470,6 +77129,9 @@ extern "C" { CompletionEvent: HANDLE, ) -> BOOL; } +extern "C" { + pub fn DeleteTimerQueue(TimerQueue: HANDLE) -> BOOL; +} extern "C" { pub fn DeleteTimerQueueEx(TimerQueue: HANDLE, CompletionEvent: HANDLE) -> BOOL; } @@ -73786,6 +77448,9 @@ extern "C" { InfoBlockCount: *mut ULONG, ) -> DWORD; } +extern "C" { + pub fn Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: BOOLEAN) -> BOOLEAN; +} extern "C" { pub fn Wow64DisableWow64FsRedirection(OldValue: *mut PVOID) -> BOOL; } @@ -74225,6 +77890,14 @@ extern "C" { lParam: LONG_PTR, ) -> BOOL; } +extern "C" { + pub fn EnumResourceNamesA( + hModule: HMODULE, + lpType: LPCSTR, + lpEnumFunc: ENUMRESNAMEPROCA, + lParam: LONG_PTR, + ) -> BOOL; +} extern "C" { pub fn AccessCheck( pSecurityDescriptor: PSECURITY_DESCRIPTOR, @@ -75046,6 +78719,14 @@ extern "C" { extern "C" { pub fn GetNumaNodeProcessorMaskEx(Node: USHORT, ProcessorMask: PGROUP_AFFINITY) -> BOOL; } +extern "C" { + pub fn GetNumaNodeProcessorMask2( + NodeNumber: USHORT, + ProcessorMasks: PGROUP_AFFINITY, + ProcessorMaskCount: USHORT, + RequiredMaskCount: PUSHORT, + ) -> BOOL; +} extern "C" { pub fn GetNumaProximityNodeEx(ProximityId: ULONG, NodeNumber: PUSHORT) -> BOOL; } @@ -76551,20 +80232,6 @@ extern "C" { extern "C" { pub fn GetProcessIoCounters(hProcess: HANDLE, lpIoCounters: PIO_COUNTERS) -> BOOL; } -extern "C" { - pub fn GetProcessWorkingSetSize( - hProcess: HANDLE, - lpMinimumWorkingSetSize: PSIZE_T, - lpMaximumWorkingSetSize: PSIZE_T, - ) -> BOOL; -} -extern "C" { - pub fn SetProcessWorkingSetSize( - hProcess: HANDLE, - dwMinimumWorkingSetSize: SIZE_T, - dwMaximumWorkingSetSize: SIZE_T, - ) -> BOOL; -} extern "C" { pub fn FatalExit(ExitCode: ::std::os::raw::c_int); } @@ -77636,6 +81303,12 @@ pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributePseudoConsole: _PROC_THR 22; pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeMitigationAuditPolicy: _PROC_THREAD_ATTRIBUTE_NUM = 24; +pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeMachineType: _PROC_THREAD_ATTRIBUTE_NUM = + 25; +pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeComponentFilter: + _PROC_THREAD_ATTRIBUTE_NUM = 26; +pub const _PROC_THREAD_ATTRIBUTE_NUM_ProcThreadAttributeEnableOptionalXStateFeatures: + _PROC_THREAD_ATTRIBUTE_NUM = 27; pub type _PROC_THREAD_ATTRIBUTE_NUM = ::std::os::raw::c_int; pub use self::_PROC_THREAD_ATTRIBUTE_NUM as PROC_THREAD_ATTRIBUTE_NUM; extern "C" { @@ -77740,14 +81413,6 @@ extern "C" { lParam: LONG_PTR, ) -> BOOL; } -extern "C" { - pub fn EnumResourceNamesA( - hModule: HMODULE, - lpType: LPCSTR, - lpEnumFunc: ENUMRESNAMEPROCA, - lParam: LONG_PTR, - ) -> BOOL; -} extern "C" { pub fn EnumResourceLanguagesA( hModule: HMODULE, @@ -78014,9 +81679,6 @@ extern "C" { szFile: LPCWSTR, ) -> BOOL; } -extern "C" { - pub fn Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: BOOLEAN) -> BOOLEAN; -} pub type PGET_SYSTEM_WOW64_DIRECTORY_A = ::std::option::Option UINT>; pub type PGET_SYSTEM_WOW64_DIRECTORY_W = @@ -79155,6 +82817,128 @@ fn bindgen_test_layout_COPYFILE2_EXTENDED_PARAMETERS() { ) ); } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct COPYFILE2_EXTENDED_PARAMETERS_V2 { + pub dwSize: DWORD, + pub dwCopyFlags: DWORD, + pub pfCancel: *mut BOOL, + pub pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE, + pub pvCallbackContext: PVOID, + pub dwCopyFlagsV2: DWORD, + pub ioDesiredSize: ULONG, + pub ioDesiredRate: ULONG, + pub reserved: [PVOID; 8usize], +} +#[test] +fn bindgen_test_layout_COPYFILE2_EXTENDED_PARAMETERS_V2() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dwSize) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(dwSize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dwCopyFlags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(dwCopyFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pfCancel) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(pfCancel) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pProgressRoutine) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(pProgressRoutine) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).pvCallbackContext) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(pvCallbackContext) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).dwCopyFlagsV2) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(dwCopyFlagsV2) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ioDesiredSize) as usize - ptr as usize }, + 36usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(ioDesiredSize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ioDesiredRate) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(ioDesiredRate) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).reserved) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(COPYFILE2_EXTENDED_PARAMETERS_V2), + "::", + stringify!(reserved) + ) + ); +} extern "C" { pub fn CopyFile2( pwszExistingFileName: PCWSTR, @@ -80125,9 +83909,6 @@ extern "C" { extern "C" { pub fn CancelTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE) -> BOOL; } -extern "C" { - pub fn DeleteTimerQueue(TimerQueue: HANDLE) -> BOOL; -} extern "C" { pub fn CreatePrivateNamespaceA( lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, @@ -83566,6 +87347,12 @@ extern "C" { extern "C" { pub fn SetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: DWORD64) -> BOOL; } +extern "C" { + pub fn GetThreadEnabledXStateFeatures() -> DWORD64; +} +extern "C" { + pub fn EnableProcessOptionalXStateFeatures(Features: DWORD64) -> BOOL; +} extern "C" { pub fn EnableThreadProfiling( ThreadHandle: HANDLE, @@ -90175,6 +93962,7 @@ pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_ DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 16; pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INDIRECT_VIRTUAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 17; +pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_USB_TUNNEL : DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = 18 ; pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = -2147483648; pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY_DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32: @@ -91208,6 +94996,10 @@ pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_SET_ADVANCED_ DISPLAYCONFIG_DEVICE_INFO_TYPE = 10; pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_SDR_WHITE_LEVEL: DISPLAYCONFIG_DEVICE_INFO_TYPE = 11; +pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_SPECIALIZATION: + DISPLAYCONFIG_DEVICE_INFO_TYPE = 12; +pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_SET_MONITOR_SPECIALIZATION: + DISPLAYCONFIG_DEVICE_INFO_TYPE = 13; pub const DISPLAYCONFIG_DEVICE_INFO_TYPE_DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32: DISPLAYCONFIG_DEVICE_INFO_TYPE = -1; pub type DISPLAYCONFIG_DEVICE_INFO_TYPE = ::std::os::raw::c_int; @@ -92452,6 +96244,367 @@ fn bindgen_test_layout__DISPLAYCONFIG_SDR_WHITE_LEVEL() { } pub type DISPLAYCONFIG_SDR_WHITE_LEVEL = _DISPLAYCONFIG_SDR_WHITE_LEVEL; #[repr(C)] +#[derive(Copy, Clone)] +pub struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub __bindgen_anon_1: _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1 { + pub __bindgen_anon_1: _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1, + pub value: UINT32, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1>( + ), + 4usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1>( + ), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1) + ) + ); +} +impl _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn isSpecializationEnabled(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_isSpecializationEnabled(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn isSpecializationAvailableForMonitor(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_isSpecializationAvailableForMonitor(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn isSpecializationAvailableForSystem(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_isSpecializationAvailableForSystem(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 29u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + isSpecializationEnabled: UINT32, + isSpecializationAvailableForMonitor: UINT32, + isSpecializationAvailableForSystem: UINT32, + reserved: UINT32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let isSpecializationEnabled: u32 = + unsafe { ::std::mem::transmute(isSpecializationEnabled) }; + isSpecializationEnabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let isSpecializationAvailableForMonitor: u32 = + unsafe { ::std::mem::transmute(isSpecializationAvailableForMonitor) }; + isSpecializationAvailableForMonitor as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let isSpecializationAvailableForSystem: u32 = + unsafe { ::std::mem::transmute(isSpecializationAvailableForSystem) }; + isSpecializationAvailableForSystem as u64 + }); + __bindgen_bitfield_unit.set(3usize, 29u8, { + let reserved: u32 = unsafe { ::std::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION() { + const UNINIT: ::std::mem::MaybeUninit<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION>(), + 24usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION), + "::", + stringify!(header) + ) + ); +} +pub type DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION = _DISPLAYCONFIG_GET_MONITOR_SPECIALIZATION; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION { + pub header: DISPLAYCONFIG_DEVICE_INFO_HEADER, + pub __bindgen_anon_1: _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1, + pub specializationType: GUID, + pub specializationSubType: GUID, + pub specializationApplicationName: [WCHAR; 128usize], +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1 { + pub __bindgen_anon_1: _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1, + pub value: UINT32, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1>( + ), + 4usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1>( + ), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1) + ) + ); +} +impl _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn isSpecializationEnabled(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_isSpecializationEnabled(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn reserved(&self) -> UINT32 { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 31u8) as u32) } + } + #[inline] + pub fn set_reserved(&mut self, val: UINT32) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 31u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + isSpecializationEnabled: UINT32, + reserved: UINT32, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let isSpecializationEnabled: u32 = + unsafe { ::std::mem::transmute(isSpecializationEnabled) }; + isSpecializationEnabled as u64 + }); + __bindgen_bitfield_unit.set(1usize, 31u8, { + let reserved: u32 = unsafe { ::std::mem::transmute(reserved) }; + reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).value) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION__bindgen_ty_1), + "::", + stringify!(value) + ) + ); +} +#[test] +fn bindgen_test_layout__DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION() { + const UNINIT: ::std::mem::MaybeUninit<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION>(), + 312usize, + concat!( + "Size of: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION) + ) + ); + assert_eq!( + ::std::mem::align_of::<_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).header) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION), + "::", + stringify!(header) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).specializationType) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION), + "::", + stringify!(specializationType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).specializationSubType) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION), + "::", + stringify!(specializationSubType) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).specializationApplicationName) as usize - ptr as usize + }, + 56usize, + concat!( + "Offset of field: ", + stringify!(_DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION), + "::", + stringify!(specializationApplicationName) + ) + ); +} +pub type DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION = _DISPLAYCONFIG_SET_MONITOR_SPECIALIZATION; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _RGNDATAHEADER { pub dwSize: DWORD, @@ -113474,6 +117627,9 @@ fn bindgen_test_layout_tagCURSORSHAPE() { } pub type CURSORSHAPE = tagCURSORSHAPE; pub type LPCURSORSHAPE = *mut tagCURSORSHAPE; +extern "C" { + pub fn SetThreadCursorCreationScaling(cursorDpi: UINT) -> UINT; +} extern "C" { pub fn LoadImageA( hInst: HINSTANCE, @@ -140983,6 +145139,12 @@ extern "C" { Binding: *mut RPC_BINDING_HANDLE, ) -> RPC_STATUS; } +extern "C" { + pub fn RpcBindingInqMaxCalls( + Binding: RPC_BINDING_HANDLE, + MaxCalls: *mut ::std::os::raw::c_uint, + ) -> RPC_STATUS; +} extern "C" { pub fn RpcBindingInqObject(Binding: RPC_BINDING_HANDLE, ObjectUuid: *mut UUID) -> RPC_STATUS; } @@ -180491,30 +184653,30 @@ extern "C" { pub type NDR_CCONTEXT = *mut ::std::os::raw::c_void; #[repr(C)] #[derive(Debug, Copy, Clone)] -pub struct _bindgen_ty_2 { +pub struct _NDR_SCONTEXT { pub pad: [*mut ::std::os::raw::c_void; 2usize], pub userContext: *mut ::std::os::raw::c_void, } #[test] -fn bindgen_test_layout__bindgen_ty_2() { - const UNINIT: ::std::mem::MaybeUninit<_bindgen_ty_2> = ::std::mem::MaybeUninit::uninit(); +fn bindgen_test_layout__NDR_SCONTEXT() { + const UNINIT: ::std::mem::MaybeUninit<_NDR_SCONTEXT> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::<_bindgen_ty_2>(), + ::std::mem::size_of::<_NDR_SCONTEXT>(), 24usize, - concat!("Size of: ", stringify!(_bindgen_ty_2)) + concat!("Size of: ", stringify!(_NDR_SCONTEXT)) ); assert_eq!( - ::std::mem::align_of::<_bindgen_ty_2>(), + ::std::mem::align_of::<_NDR_SCONTEXT>(), 8usize, - concat!("Alignment of ", stringify!(_bindgen_ty_2)) + concat!("Alignment of ", stringify!(_NDR_SCONTEXT)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).pad) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(_bindgen_ty_2), + stringify!(_NDR_SCONTEXT), "::", stringify!(pad) ) @@ -180524,13 +184686,13 @@ fn bindgen_test_layout__bindgen_ty_2() { 16usize, concat!( "Offset of field: ", - stringify!(_bindgen_ty_2), + stringify!(_NDR_SCONTEXT), "::", stringify!(userContext) ) ); } -pub type NDR_SCONTEXT = *mut _bindgen_ty_2; +pub type NDR_SCONTEXT = *mut _NDR_SCONTEXT; pub type NDR_RUNDOWN = ::std::option::Option; pub type NDR_NOTIFY_ROUTINE = ::std::option::Option; @@ -183267,10 +187429,10 @@ pub const _system_handle_t_SYSTEM_HANDLE_MAX: _system_handle_t = 12; pub const _system_handle_t_SYSTEM_HANDLE_INVALID: _system_handle_t = 255; pub type _system_handle_t = ::std::os::raw::c_int; pub use self::_system_handle_t as system_handle_t; -pub const MidlInterceptionInfoVersionOne: _bindgen_ty_3 = 1; +pub const MidlInterceptionInfoVersionOne: _bindgen_ty_2 = 1; +pub type _bindgen_ty_2 = ::std::os::raw::c_int; +pub const MidlWinrtTypeSerializationInfoVersionOne: _bindgen_ty_3 = 1; pub type _bindgen_ty_3 = ::std::os::raw::c_int; -pub const MidlWinrtTypeSerializationInfoVersionOne: _bindgen_ty_4 = 1; -pub type _bindgen_ty_4 = ::std::os::raw::c_int; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _MIDL_INTERCEPTION_INFO { @@ -185054,6 +189216,7 @@ pub const tagCLSCTX_CLSCTX_APPCONTAINER: tagCLSCTX = 4194304; pub const tagCLSCTX_CLSCTX_ACTIVATE_AAA_AS_IU: tagCLSCTX = 8388608; pub const tagCLSCTX_CLSCTX_RESERVED6: tagCLSCTX = 16777216; pub const tagCLSCTX_CLSCTX_ACTIVATE_ARM32_SERVER: tagCLSCTX = 33554432; +pub const tagCLSCTX_CLSCTX_ALLOW_LOWER_TRUST_REGISTRATION: tagCLSCTX = 67108864; pub const tagCLSCTX_CLSCTX_PS_DLL: tagCLSCTX = -2147483648; pub type tagCLSCTX = ::std::os::raw::c_int; pub use self::tagCLSCTX as CLSCTX; @@ -185072,7 +189235,7 @@ pub const tagMSHCTX_MSHCTX_NOSHAREDMEM: tagMSHCTX = 1; pub const tagMSHCTX_MSHCTX_DIFFERENTMACHINE: tagMSHCTX = 2; pub const tagMSHCTX_MSHCTX_INPROC: tagMSHCTX = 3; pub const tagMSHCTX_MSHCTX_CROSSCTX: tagMSHCTX = 4; -pub const tagMSHCTX_MSHCTX_RESERVED1: tagMSHCTX = 5; +pub const tagMSHCTX_MSHCTX_CONTAINER: tagMSHCTX = 5; pub type tagMSHCTX = ::std::os::raw::c_int; pub use self::tagMSHCTX as MSHCTX; #[repr(C)] @@ -187786,6 +191949,9 @@ extern "C" { extern "C" { pub static GUID_DEVINTERFACE_SES: GUID; } +extern "C" { + pub static GUID_DEVINTERFACE_ZNSDISK: GUID; +} extern "C" { pub static GUID_DEVINTERFACE_SERVICE_VOLUME: GUID; } @@ -189219,6 +193385,9 @@ pub const _STORAGE_PROPERTY_ID_StorageDeviceNumaProperty: _STORAGE_PROPERTY_ID = pub const _STORAGE_PROPERTY_ID_StorageDeviceZonedDeviceProperty: _STORAGE_PROPERTY_ID = 60; pub const _STORAGE_PROPERTY_ID_StorageDeviceUnsafeShutdownCount: _STORAGE_PROPERTY_ID = 61; pub const _STORAGE_PROPERTY_ID_StorageDeviceEnduranceProperty: _STORAGE_PROPERTY_ID = 62; +pub const _STORAGE_PROPERTY_ID_StorageDeviceLedStateProperty: _STORAGE_PROPERTY_ID = 63; +pub const _STORAGE_PROPERTY_ID_StorageDeviceSelfEncryptionProperty: _STORAGE_PROPERTY_ID = 64; +pub const _STORAGE_PROPERTY_ID_StorageFruIdProperty: _STORAGE_PROPERTY_ID = 65; pub type _STORAGE_PROPERTY_ID = ::std::os::raw::c_int; pub use self::_STORAGE_PROPERTY_ID as STORAGE_PROPERTY_ID; pub type PSTORAGE_PROPERTY_ID = *mut _STORAGE_PROPERTY_ID; @@ -189899,7 +194068,7 @@ pub type _STORAGE_PORT_CODE_SET = ::std::os::raw::c_int; pub use self::_STORAGE_PORT_CODE_SET as STORAGE_PORT_CODE_SET; pub type PSTORAGE_PORT_CODE_SET = *mut _STORAGE_PORT_CODE_SET; #[repr(C)] -#[derive(Debug, Copy, Clone)] +#[derive(Copy, Clone)] pub struct _STORAGE_MINIPORT_DESCRIPTOR { pub Version: DWORD, pub Size: DWORD, @@ -189908,9 +194077,113 @@ pub struct _STORAGE_MINIPORT_DESCRIPTOR { pub TargetResetSupported: BOOLEAN, pub IoTimeoutValue: WORD, pub ExtraIoInfoSupported: BOOLEAN, - pub Reserved0: [BYTE; 3usize], + pub Flags: _STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1, + pub Reserved0: [BYTE; 2usize], pub Reserved1: DWORD, } +#[repr(C)] +#[derive(Copy, Clone)] +pub union _STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1 { + pub __bindgen_anon_1: _STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1, + pub AsBYTE: BYTE, +} +#[repr(C, packed)] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 { + pub _bitfield_align_1: [u8; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1usize]>, +} +#[test] +fn bindgen_test_layout__STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(), + 1usize, + concat!( + "Size of: ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1>(), + 1usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1) + ) + ); +} +impl _STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1__bindgen_ty_1 { + #[inline] + pub fn LogicalPoFxForDisk(&self) -> BYTE { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) } + } + #[inline] + pub fn set_LogicalPoFxForDisk(&mut self, val: BYTE) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn Reserved(&self) -> BYTE { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 7u8) as u8) } + } + #[inline] + pub fn set_Reserved(&mut self, val: BYTE) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 7u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + LogicalPoFxForDisk: BYTE, + Reserved: BYTE, + ) -> __BindgenBitfieldUnit<[u8; 1usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let LogicalPoFxForDisk: u8 = unsafe { ::std::mem::transmute(LogicalPoFxForDisk) }; + LogicalPoFxForDisk as u64 + }); + __bindgen_bitfield_unit.set(1usize, 7u8, { + let Reserved: u8 = unsafe { ::std::mem::transmute(Reserved) }; + Reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1>(), + 1usize, + concat!( + "Size of: ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1>(), + 1usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AsBYTE) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR__bindgen_ty_1), + "::", + stringify!(AsBYTE) + ) + ); +} #[test] fn bindgen_test_layout__STORAGE_MINIPORT_DESCRIPTOR() { const UNINIT: ::std::mem::MaybeUninit<_STORAGE_MINIPORT_DESCRIPTOR> = @@ -189997,8 +194270,18 @@ fn bindgen_test_layout__STORAGE_MINIPORT_DESCRIPTOR() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Reserved0) as usize - ptr as usize }, + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, 17usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_MINIPORT_DESCRIPTOR), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved0) as usize - ptr as usize }, + 18usize, concat!( "Offset of field: ", stringify!(_STORAGE_MINIPORT_DESCRIPTOR), @@ -190528,14 +194811,25 @@ impl _DEVICE_LB_PROVISIONING_DESCRIPTOR { } } #[inline] - pub fn Reserved0(&self) -> BYTE { - unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 2u8) as u8) } + pub fn GetFreeSpaceSupported(&self) -> BYTE { + unsafe { ::std::mem::transmute(self._bitfield_1.get(6usize, 1u8) as u8) } } #[inline] - pub fn set_Reserved0(&mut self, val: BYTE) { + pub fn set_GetFreeSpaceSupported(&mut self, val: BYTE) { unsafe { let val: u8 = ::std::mem::transmute(val); - self._bitfield_1.set(6usize, 2u8, val as u64) + self._bitfield_1.set(6usize, 1u8, val as u64) + } + } + #[inline] + pub fn MapSupported(&self) -> BYTE { + unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u8) } + } + #[inline] + pub fn set_MapSupported(&mut self, val: BYTE) { + unsafe { + let val: u8 = ::std::mem::transmute(val); + self._bitfield_1.set(7usize, 1u8, val as u64) } } #[inline] @@ -190544,7 +194838,8 @@ impl _DEVICE_LB_PROVISIONING_DESCRIPTOR { ThinProvisioningReadZeros: BYTE, AnchorSupported: BYTE, UnmapGranularityAlignmentValid: BYTE, - Reserved0: BYTE, + GetFreeSpaceSupported: BYTE, + MapSupported: BYTE, ) -> __BindgenBitfieldUnit<[u8; 1usize]> { let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 1usize]> = Default::default(); __bindgen_bitfield_unit.set(0usize, 1u8, { @@ -190566,9 +194861,13 @@ impl _DEVICE_LB_PROVISIONING_DESCRIPTOR { unsafe { ::std::mem::transmute(UnmapGranularityAlignmentValid) }; UnmapGranularityAlignmentValid as u64 }); - __bindgen_bitfield_unit.set(6usize, 2u8, { - let Reserved0: u8 = unsafe { ::std::mem::transmute(Reserved0) }; - Reserved0 as u64 + __bindgen_bitfield_unit.set(6usize, 1u8, { + let GetFreeSpaceSupported: u8 = unsafe { ::std::mem::transmute(GetFreeSpaceSupported) }; + GetFreeSpaceSupported as u64 + }); + __bindgen_bitfield_unit.set(7usize, 1u8, { + let MapSupported: u8 = unsafe { ::std::mem::transmute(MapSupported) }; + MapSupported as u64 }); __bindgen_bitfield_unit } @@ -191763,11 +196062,141 @@ pub type PSTORAGE_PROTOCOL_ATA_DATA_TYPE = *mut _STORAGE_PROTOCOL_ATA_DATA_TYPE; pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeUnknown: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 0; pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryDescriptor: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 1; -pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeMax: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 2; +pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryAttribute: + _STORAGE_PROTOCOL_UFS_DATA_TYPE = 2; +pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryFlag: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 3; +pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryDmeAttribute: + _STORAGE_PROTOCOL_UFS_DATA_TYPE = 4; +pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeQueryDmePeerAttribute: + _STORAGE_PROTOCOL_UFS_DATA_TYPE = 5; +pub const _STORAGE_PROTOCOL_UFS_DATA_TYPE_UfsDataTypeMax: _STORAGE_PROTOCOL_UFS_DATA_TYPE = 6; pub type _STORAGE_PROTOCOL_UFS_DATA_TYPE = ::std::os::raw::c_int; pub use self::_STORAGE_PROTOCOL_UFS_DATA_TYPE as STORAGE_PROTOCOL_UFS_DATA_TYPE; pub type PSTORAGE_PROTOCOL_UFS_DATA_TYPE = *mut _STORAGE_PROTOCOL_UFS_DATA_TYPE; #[repr(C)] +#[derive(Copy, Clone)] +pub union _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE { + pub __bindgen_anon_1: _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1, + pub AsUlong: DWORD, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1) + ) + ); +} +impl _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE__bindgen_ty_1 { + #[inline] + pub fn RetainAsynEvent(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_RetainAsynEvent(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn LogSpecificField(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 4u8) as u32) } + } + #[inline] + pub fn set_LogSpecificField(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 4u8, val as u64) + } + } + #[inline] + pub fn Reserved(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } + } + #[inline] + pub fn set_Reserved(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 27u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + RetainAsynEvent: DWORD, + LogSpecificField: DWORD, + Reserved: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let RetainAsynEvent: u32 = unsafe { ::std::mem::transmute(RetainAsynEvent) }; + RetainAsynEvent as u64 + }); + __bindgen_bitfield_unit.set(1usize, 4u8, { + let LogSpecificField: u32 = unsafe { ::std::mem::transmute(LogSpecificField) }; + LogSpecificField as u64 + }); + __bindgen_bitfield_unit.set(5usize, 27u8, { + let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) }; + Reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE>(), + 4usize, + concat!( + "Size of: ", + stringify!(_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AsUlong) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE), + "::", + stringify!(AsUlong) + ) + ); +} +pub type STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE; +pub type PSTORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE = + *mut _STORAGE_PROTOCOL_DATA_SUBVALUE_GET_LOG_PAGE; +#[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _STORAGE_PROTOCOL_SPECIFIC_DATA { pub ProtocolType: STORAGE_PROTOCOL_TYPE, @@ -191779,7 +196208,7 @@ pub struct _STORAGE_PROTOCOL_SPECIFIC_DATA { pub FixedProtocolReturnData: DWORD, pub ProtocolDataRequestSubValue2: DWORD, pub ProtocolDataRequestSubValue3: DWORD, - pub Reserved: DWORD, + pub ProtocolDataRequestSubValue4: DWORD, } #[test] fn bindgen_test_layout__STORAGE_PROTOCOL_SPECIFIC_DATA() { @@ -191891,13 +196320,15 @@ fn bindgen_test_layout__STORAGE_PROTOCOL_SPECIFIC_DATA() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, + unsafe { + ::std::ptr::addr_of!((*ptr).ProtocolDataRequestSubValue4) as usize - ptr as usize + }, 36usize, concat!( "Offset of field: ", stringify!(_STORAGE_PROTOCOL_SPECIFIC_DATA), "::", - stringify!(Reserved) + stringify!(ProtocolDataRequestSubValue4) ) ); } @@ -194719,6 +199150,194 @@ fn bindgen_test_layout__STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR() { } pub type STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR = _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR; pub type PSTORAGE_HW_ENDURANCE_DATA_DESCRIPTOR = *mut _STORAGE_HW_ENDURANCE_DATA_DESCRIPTOR; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_DEVICE_LED_STATE_DESCRIPTOR { + pub Version: DWORD, + pub Size: DWORD, + pub State: DWORDLONG, +} +#[test] +fn bindgen_test_layout__STORAGE_DEVICE_LED_STATE_DESCRIPTOR() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_DEVICE_LED_STATE_DESCRIPTOR> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_DEVICE_LED_STATE_DESCRIPTOR>(), + 16usize, + concat!( + "Size of: ", + stringify!(_STORAGE_DEVICE_LED_STATE_DESCRIPTOR) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_DEVICE_LED_STATE_DESCRIPTOR>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_DEVICE_LED_STATE_DESCRIPTOR) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_LED_STATE_DESCRIPTOR), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_LED_STATE_DESCRIPTOR), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).State) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_LED_STATE_DESCRIPTOR), + "::", + stringify!(State) + ) + ); +} +pub type STORAGE_DEVICE_LED_STATE_DESCRIPTOR = _STORAGE_DEVICE_LED_STATE_DESCRIPTOR; +pub type PSTORAGE_DEVICE_LED_STATE_DESCRIPTOR = *mut _STORAGE_DEVICE_LED_STATE_DESCRIPTOR; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY { + pub Version: DWORD, + pub Size: DWORD, + pub SupportsSelfEncryption: BOOLEAN, +} +#[test] +fn bindgen_test_layout__STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY>(), + 12usize, + concat!( + "Size of: ", + stringify!(_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SupportsSelfEncryption) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY), + "::", + stringify!(SupportsSelfEncryption) + ) + ); +} +pub type STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY = _STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY; +pub type PSTORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY = *mut _STORAGE_DEVICE_SELF_ENCRYPTION_PROPERTY; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_FRU_ID_DESCRIPTOR { + pub Version: DWORD, + pub Size: DWORD, + pub IdentifierSize: DWORD, + pub Identifier: [BYTE; 1usize], +} +#[test] +fn bindgen_test_layout__STORAGE_FRU_ID_DESCRIPTOR() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_FRU_ID_DESCRIPTOR> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_FRU_ID_DESCRIPTOR>(), + 16usize, + concat!("Size of: ", stringify!(_STORAGE_FRU_ID_DESCRIPTOR)) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_FRU_ID_DESCRIPTOR>(), + 4usize, + concat!("Alignment of ", stringify!(_STORAGE_FRU_ID_DESCRIPTOR)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_FRU_ID_DESCRIPTOR), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_FRU_ID_DESCRIPTOR), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IdentifierSize) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_FRU_ID_DESCRIPTOR), + "::", + stringify!(IdentifierSize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Identifier) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_FRU_ID_DESCRIPTOR), + "::", + stringify!(Identifier) + ) + ); +} +pub type STORAGE_FRU_ID_DESCRIPTOR = _STORAGE_FRU_ID_DESCRIPTOR; +pub type PSTORAGE_FRU_ID_DESCRIPTOR = *mut _STORAGE_FRU_ID_DESCRIPTOR; pub type DEVICE_DATA_MANAGEMENT_SET_ACTION = DWORD; pub type DEVICE_DSM_ACTION = DWORD; #[repr(C)] @@ -196022,6 +200641,7 @@ pub struct _DEVICE_DATA_SET_SCRUB_EX_OUTPUT { pub BytesRepaired: DWORDLONG, pub BytesFailed: DWORDLONG, pub ParityExtent: DEVICE_DSM_RANGE, + pub BytesScrubbed: DWORDLONG, } #[test] fn bindgen_test_layout__DEVICE_DATA_SET_SCRUB_EX_OUTPUT() { @@ -196030,7 +200650,7 @@ fn bindgen_test_layout__DEVICE_DATA_SET_SCRUB_EX_OUTPUT() { let ptr = UNINIT.as_ptr(); assert_eq!( ::std::mem::size_of::<_DEVICE_DATA_SET_SCRUB_EX_OUTPUT>(), - 40usize, + 48usize, concat!("Size of: ", stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT)) ); assert_eq!( @@ -196081,6 +200701,16 @@ fn bindgen_test_layout__DEVICE_DATA_SET_SCRUB_EX_OUTPUT() { stringify!(ParityExtent) ) ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).BytesScrubbed) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_DEVICE_DATA_SET_SCRUB_EX_OUTPUT), + "::", + stringify!(BytesScrubbed) + ) + ); } pub type DEVICE_DATA_SET_SCRUB_EX_OUTPUT = _DEVICE_DATA_SET_SCRUB_EX_OUTPUT; pub type PDEVICE_DATA_SET_SCRUB_EX_OUTPUT = *mut _DEVICE_DATA_SET_SCRUB_EX_OUTPUT; @@ -197575,7 +202205,7 @@ pub type PSTORAGE_DIAGNOSTIC_TARGET_TYPE = *mut _STORAGE_DIAGNOSTIC_TARGET_TYPE; pub struct _STORAGE_DIAGNOSTIC_REQUEST { pub Version: DWORD, pub Size: DWORD, - pub Reserved: DWORD, + pub Flags: DWORD, pub TargetType: STORAGE_DIAGNOSTIC_TARGET_TYPE, pub Level: STORAGE_DIAGNOSTIC_LEVEL, } @@ -197615,13 +202245,13 @@ fn bindgen_test_layout__STORAGE_DIAGNOSTIC_REQUEST() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Reserved) as usize - ptr as usize }, + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", stringify!(_STORAGE_DIAGNOSTIC_REQUEST), "::", - stringify!(Reserved) + stringify!(Flags) ) ); assert_eq!( @@ -198129,6 +202759,10 @@ pub const _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE_DeviceCurrentInternalStatusD _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 1; pub const _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE_DeviceCurrentInternalStatusData: _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 2; +pub const _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE_DeviceSavedInternalStatusDataHeader: + _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 3; +pub const _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE_DeviceSavedInternalStatusData: + _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = 4; pub type _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = ::std::os::raw::c_int; pub use self::_DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE as DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE; pub type PDEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE = *mut _DEVICE_INTERNAL_STATUS_DATA_REQUEST_TYPE; @@ -198373,6 +203007,161 @@ fn bindgen_test_layout__DEVICE_INTERNAL_STATUS_DATA() { } pub type DEVICE_INTERNAL_STATUS_DATA = _DEVICE_INTERNAL_STATUS_DATA; pub type PDEVICE_INTERNAL_STATUS_DATA = *mut _DEVICE_INTERNAL_STATUS_DATA; +pub const _STORAGE_SANITIZE_METHOD_StorageSanitizeMethodDefault: _STORAGE_SANITIZE_METHOD = 0; +pub const _STORAGE_SANITIZE_METHOD_StorageSanitizeMethodBlockErase: _STORAGE_SANITIZE_METHOD = 1; +pub const _STORAGE_SANITIZE_METHOD_StorageSanitizeMethodCryptoErase: _STORAGE_SANITIZE_METHOD = 2; +pub type _STORAGE_SANITIZE_METHOD = ::std::os::raw::c_int; +pub use self::_STORAGE_SANITIZE_METHOD as STORAGE_SANITIZE_METHOD; +pub type PSTORAGE_SANITIZE_METHOD = *mut _STORAGE_SANITIZE_METHOD; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_REINITIALIZE_MEDIA { + pub Version: DWORD, + pub Size: DWORD, + pub TimeoutInSeconds: DWORD, + pub SanitizeOption: _STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1) + ) + ); +} +impl _STORAGE_REINITIALIZE_MEDIA__bindgen_ty_1 { + #[inline] + pub fn SanitizeMethod(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 4u8) as u32) } + } + #[inline] + pub fn set_SanitizeMethod(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 4u8, val as u64) + } + } + #[inline] + pub fn DisallowUnrestrictedSanitizeExit(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(4usize, 1u8) as u32) } + } + #[inline] + pub fn set_DisallowUnrestrictedSanitizeExit(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(4usize, 1u8, val as u64) + } + } + #[inline] + pub fn Reserved(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(5usize, 27u8) as u32) } + } + #[inline] + pub fn set_Reserved(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(5usize, 27u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + SanitizeMethod: DWORD, + DisallowUnrestrictedSanitizeExit: DWORD, + Reserved: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 4u8, { + let SanitizeMethod: u32 = unsafe { ::std::mem::transmute(SanitizeMethod) }; + SanitizeMethod as u64 + }); + __bindgen_bitfield_unit.set(4usize, 1u8, { + let DisallowUnrestrictedSanitizeExit: u32 = + unsafe { ::std::mem::transmute(DisallowUnrestrictedSanitizeExit) }; + DisallowUnrestrictedSanitizeExit as u64 + }); + __bindgen_bitfield_unit.set(5usize, 27u8, { + let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) }; + Reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__STORAGE_REINITIALIZE_MEDIA() { + const UNINIT: ::std::mem::MaybeUninit<_STORAGE_REINITIALIZE_MEDIA> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_STORAGE_REINITIALIZE_MEDIA>(), + 16usize, + concat!("Size of: ", stringify!(_STORAGE_REINITIALIZE_MEDIA)) + ); + assert_eq!( + ::std::mem::align_of::<_STORAGE_REINITIALIZE_MEDIA>(), + 4usize, + concat!("Alignment of ", stringify!(_STORAGE_REINITIALIZE_MEDIA)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_REINITIALIZE_MEDIA), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_REINITIALIZE_MEDIA), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TimeoutInSeconds) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_REINITIALIZE_MEDIA), + "::", + stringify!(TimeoutInSeconds) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SanitizeOption) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_STORAGE_REINITIALIZE_MEDIA), + "::", + stringify!(SanitizeOption) + ) + ); +} +pub type STORAGE_REINITIALIZE_MEDIA = _STORAGE_REINITIALIZE_MEDIA; +pub type PSTORAGE_REINITIALIZE_MEDIA = *mut _STORAGE_REINITIALIZE_MEDIA; #[repr(C)] #[derive(Debug)] pub struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA { @@ -202015,6 +206804,687 @@ fn bindgen_test_layout__SCM_REGIONS() { } pub type SCM_REGIONS = _SCM_REGIONS; pub type PSCM_REGIONS = *mut _SCM_REGIONS; +pub const _SCM_BUS_QUERY_TYPE_ScmBusQuery_Descriptor: _SCM_BUS_QUERY_TYPE = 0; +pub const _SCM_BUS_QUERY_TYPE_ScmBusQuery_IsSupported: _SCM_BUS_QUERY_TYPE = 1; +pub const _SCM_BUS_QUERY_TYPE_ScmBusQuery_Max: _SCM_BUS_QUERY_TYPE = 2; +pub type _SCM_BUS_QUERY_TYPE = ::std::os::raw::c_int; +pub use self::_SCM_BUS_QUERY_TYPE as SCM_BUS_QUERY_TYPE; +pub type PSCM_BUS_QUERY_TYPE = *mut _SCM_BUS_QUERY_TYPE; +pub const _SCM_BUS_SET_TYPE_ScmBusSet_Descriptor: _SCM_BUS_SET_TYPE = 0; +pub const _SCM_BUS_SET_TYPE_ScmBusSet_IsSupported: _SCM_BUS_SET_TYPE = 1; +pub const _SCM_BUS_SET_TYPE_ScmBusSet_Max: _SCM_BUS_SET_TYPE = 2; +pub type _SCM_BUS_SET_TYPE = ::std::os::raw::c_int; +pub use self::_SCM_BUS_SET_TYPE as SCM_BUS_SET_TYPE; +pub type PSCM_BUS_SET_TYPE = *mut _SCM_BUS_SET_TYPE; +pub const _SCM_BUS_PROPERTY_ID_ScmBusProperty_RuntimeFwActivationInfo: _SCM_BUS_PROPERTY_ID = 0; +pub const _SCM_BUS_PROPERTY_ID_ScmBusProperty_DedicatedMemoryInfo: _SCM_BUS_PROPERTY_ID = 1; +pub const _SCM_BUS_PROPERTY_ID_ScmBusProperty_DedicatedMemoryState: _SCM_BUS_PROPERTY_ID = 2; +pub const _SCM_BUS_PROPERTY_ID_ScmBusProperty_Max: _SCM_BUS_PROPERTY_ID = 3; +pub type _SCM_BUS_PROPERTY_ID = ::std::os::raw::c_int; +pub use self::_SCM_BUS_PROPERTY_ID as SCM_BUS_PROPERTY_ID; +pub type PSCM_BUS_PROPERTY_ID = *mut _SCM_BUS_PROPERTY_ID; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_PROPERTY_QUERY { + pub Version: DWORD, + pub Size: DWORD, + pub PropertyId: SCM_BUS_PROPERTY_ID, + pub QueryType: SCM_BUS_QUERY_TYPE, + pub AdditionalParameters: [BYTE; 1usize], +} +#[test] +fn bindgen_test_layout__SCM_BUS_PROPERTY_QUERY() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_PROPERTY_QUERY> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_PROPERTY_QUERY>(), + 20usize, + concat!("Size of: ", stringify!(_SCM_BUS_PROPERTY_QUERY)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_PROPERTY_QUERY>(), + 4usize, + concat!("Alignment of ", stringify!(_SCM_BUS_PROPERTY_QUERY)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_QUERY), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_QUERY), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PropertyId) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_QUERY), + "::", + stringify!(PropertyId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryType) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_QUERY), + "::", + stringify!(QueryType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AdditionalParameters) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_QUERY), + "::", + stringify!(AdditionalParameters) + ) + ); +} +pub type SCM_BUS_PROPERTY_QUERY = _SCM_BUS_PROPERTY_QUERY; +pub type PSCM_BUS_PROPERTY_QUERY = *mut _SCM_BUS_PROPERTY_QUERY; +pub const _SCM_BUS_FIRMWARE_ACTIVATION_STATE_ScmBusFirmwareActivationState_Idle: + _SCM_BUS_FIRMWARE_ACTIVATION_STATE = 0; +pub const _SCM_BUS_FIRMWARE_ACTIVATION_STATE_ScmBusFirmwareActivationState_Armed: + _SCM_BUS_FIRMWARE_ACTIVATION_STATE = 1; +pub const _SCM_BUS_FIRMWARE_ACTIVATION_STATE_ScmBusFirmwareActivationState_Busy: + _SCM_BUS_FIRMWARE_ACTIVATION_STATE = 2; +pub type _SCM_BUS_FIRMWARE_ACTIVATION_STATE = ::std::os::raw::c_int; +pub use self::_SCM_BUS_FIRMWARE_ACTIVATION_STATE as SCM_BUS_FIRMWARE_ACTIVATION_STATE; +pub type PSCM_BUS_FIRMWARE_ACTIVATION_STATE = *mut _SCM_BUS_FIRMWARE_ACTIVATION_STATE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO { + pub Version: DWORD, + pub Size: DWORD, + pub RuntimeFwActivationSupported: BOOLEAN, + pub FirmwareActivationState: SCM_BUS_FIRMWARE_ACTIVATION_STATE, + pub FirmwareActivationCapability: _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1, + pub EstimatedFirmwareActivationTimeInUSecs: DWORDLONG, + pub EstimatedProcessorAccessQuiesceTimeInUSecs: DWORDLONG, + pub EstimatedIOAccessQuiesceTimeInUSecs: DWORDLONG, + pub PlatformSupportedMaxIOAccessQuiesceTimeInUSecs: DWORDLONG, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1) + ) + ); +} +impl _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO__bindgen_ty_1 { + #[inline] + pub fn FwManagedIoQuiesceFwActivationSupported(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_FwManagedIoQuiesceFwActivationSupported(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn OsManagedIoQuiesceFwActivationSupported(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_OsManagedIoQuiesceFwActivationSupported(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn WarmResetBasedFwActivationSupported(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 1u8) as u32) } + } + #[inline] + pub fn set_WarmResetBasedFwActivationSupported(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 1u8, val as u64) + } + } + #[inline] + pub fn Reserved(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(3usize, 29u8) as u32) } + } + #[inline] + pub fn set_Reserved(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(3usize, 29u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + FwManagedIoQuiesceFwActivationSupported: DWORD, + OsManagedIoQuiesceFwActivationSupported: DWORD, + WarmResetBasedFwActivationSupported: DWORD, + Reserved: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let FwManagedIoQuiesceFwActivationSupported: u32 = + unsafe { ::std::mem::transmute(FwManagedIoQuiesceFwActivationSupported) }; + FwManagedIoQuiesceFwActivationSupported as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let OsManagedIoQuiesceFwActivationSupported: u32 = + unsafe { ::std::mem::transmute(OsManagedIoQuiesceFwActivationSupported) }; + OsManagedIoQuiesceFwActivationSupported as u64 + }); + __bindgen_bitfield_unit.set(2usize, 1u8, { + let WarmResetBasedFwActivationSupported: u32 = + unsafe { ::std::mem::transmute(WarmResetBasedFwActivationSupported) }; + WarmResetBasedFwActivationSupported as u64 + }); + __bindgen_bitfield_unit.set(3usize, 29u8, { + let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) }; + Reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__SCM_BUS_RUNTIME_FW_ACTIVATION_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO>(), + 56usize, + concat!("Size of: ", stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).RuntimeFwActivationSupported) as usize - ptr as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(RuntimeFwActivationSupported) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FirmwareActivationState) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(FirmwareActivationState) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).FirmwareActivationCapability) as usize - ptr as usize + }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(FirmwareActivationCapability) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).EstimatedFirmwareActivationTimeInUSecs) as usize + - ptr as usize + }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(EstimatedFirmwareActivationTimeInUSecs) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).EstimatedProcessorAccessQuiesceTimeInUSecs) as usize + - ptr as usize + }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(EstimatedProcessorAccessQuiesceTimeInUSecs) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).EstimatedIOAccessQuiesceTimeInUSecs) as usize - ptr as usize + }, + 40usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(EstimatedIOAccessQuiesceTimeInUSecs) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).PlatformSupportedMaxIOAccessQuiesceTimeInUSecs) as usize + - ptr as usize + }, + 48usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(PlatformSupportedMaxIOAccessQuiesceTimeInUSecs) + ) + ); +} +pub type SCM_BUS_RUNTIME_FW_ACTIVATION_INFO = _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO; +pub type PSCM_BUS_RUNTIME_FW_ACTIVATION_INFO = *mut _SCM_BUS_RUNTIME_FW_ACTIVATION_INFO; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO { + pub DeviceGuid: GUID, + pub DeviceNumber: DWORD, + pub Flags: _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1, + pub DeviceSize: DWORDLONG, +} +#[repr(C)] +#[repr(align(4))] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1 { + pub _bitfield_align_1: [u32; 0], + pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>, +} +#[test] +fn bindgen_test_layout__SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1() { + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1>(), + 4usize, + concat!( + "Size of: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1) + ) + ); +} +impl _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO__bindgen_ty_1 { + #[inline] + pub fn ForcedByRegistry(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u32) } + } + #[inline] + pub fn set_ForcedByRegistry(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(0usize, 1u8, val as u64) + } + } + #[inline] + pub fn Initialized(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(1usize, 1u8) as u32) } + } + #[inline] + pub fn set_Initialized(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(1usize, 1u8, val as u64) + } + } + #[inline] + pub fn Reserved(&self) -> DWORD { + unsafe { ::std::mem::transmute(self._bitfield_1.get(2usize, 30u8) as u32) } + } + #[inline] + pub fn set_Reserved(&mut self, val: DWORD) { + unsafe { + let val: u32 = ::std::mem::transmute(val); + self._bitfield_1.set(2usize, 30u8, val as u64) + } + } + #[inline] + pub fn new_bitfield_1( + ForcedByRegistry: DWORD, + Initialized: DWORD, + Reserved: DWORD, + ) -> __BindgenBitfieldUnit<[u8; 4usize]> { + let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default(); + __bindgen_bitfield_unit.set(0usize, 1u8, { + let ForcedByRegistry: u32 = unsafe { ::std::mem::transmute(ForcedByRegistry) }; + ForcedByRegistry as u64 + }); + __bindgen_bitfield_unit.set(1usize, 1u8, { + let Initialized: u32 = unsafe { ::std::mem::transmute(Initialized) }; + Initialized as u64 + }); + __bindgen_bitfield_unit.set(2usize, 30u8, { + let Reserved: u32 = unsafe { ::std::mem::transmute(Reserved) }; + Reserved as u64 + }); + __bindgen_bitfield_unit + } +} +#[test] +fn bindgen_test_layout__SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO>(), + 32usize, + concat!( + "Size of: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceGuid) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO), + "::", + stringify!(DeviceGuid) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceNumber) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO), + "::", + stringify!(DeviceNumber) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Flags) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO), + "::", + stringify!(Flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceSize) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO), + "::", + stringify!(DeviceSize) + ) + ); +} +pub type SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO = _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO; +pub type PSCM_BUS_DEDICATED_MEMORY_DEVICE_INFO = *mut _SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO { + pub Version: DWORD, + pub Size: DWORD, + pub DeviceCount: DWORD, + pub Devices: [SCM_BUS_DEDICATED_MEMORY_DEVICE_INFO; 1usize], +} +#[test] +fn bindgen_test_layout__SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO>(), + 48usize, + concat!( + "Size of: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO>(), + 8usize, + concat!( + "Alignment of ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).DeviceCount) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO), + "::", + stringify!(DeviceCount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Devices) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO), + "::", + stringify!(Devices) + ) + ); +} +pub type SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO = _SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO; +pub type PSCM_BUS_DEDICATED_MEMORY_DEVICES_INFO = *mut _SCM_BUS_DEDICATED_MEMORY_DEVICES_INFO; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_PROPERTY_SET { + pub Version: DWORD, + pub Size: DWORD, + pub PropertyId: SCM_BUS_PROPERTY_ID, + pub SetType: SCM_BUS_SET_TYPE, + pub AdditionalParameters: [BYTE; 1usize], +} +#[test] +fn bindgen_test_layout__SCM_BUS_PROPERTY_SET() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_PROPERTY_SET> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_PROPERTY_SET>(), + 20usize, + concat!("Size of: ", stringify!(_SCM_BUS_PROPERTY_SET)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_PROPERTY_SET>(), + 4usize, + concat!("Alignment of ", stringify!(_SCM_BUS_PROPERTY_SET)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_SET), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_SET), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PropertyId) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_SET), + "::", + stringify!(PropertyId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SetType) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_SET), + "::", + stringify!(SetType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AdditionalParameters) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_PROPERTY_SET), + "::", + stringify!(AdditionalParameters) + ) + ); +} +pub type SCM_BUS_PROPERTY_SET = _SCM_BUS_PROPERTY_SET; +pub type PSCM_BUS_PROPERTY_SET = *mut _SCM_BUS_PROPERTY_SET; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_BUS_DEDICATED_MEMORY_STATE { + pub ActivateState: BOOLEAN, +} +#[test] +fn bindgen_test_layout__SCM_BUS_DEDICATED_MEMORY_STATE() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_BUS_DEDICATED_MEMORY_STATE> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_BUS_DEDICATED_MEMORY_STATE>(), + 1usize, + concat!("Size of: ", stringify!(_SCM_BUS_DEDICATED_MEMORY_STATE)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_BUS_DEDICATED_MEMORY_STATE>(), + 1usize, + concat!("Alignment of ", stringify!(_SCM_BUS_DEDICATED_MEMORY_STATE)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ActivateState) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_BUS_DEDICATED_MEMORY_STATE), + "::", + stringify!(ActivateState) + ) + ); +} +pub type SCM_BUS_DEDICATED_MEMORY_STATE = _SCM_BUS_DEDICATED_MEMORY_STATE; +pub type PSCM_BUS_DEDICATED_MEMORY_STATE = *mut _SCM_BUS_DEDICATED_MEMORY_STATE; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _SCM_INTERLEAVED_PD_INFO { @@ -202131,13 +207601,24 @@ pub const _SCM_PD_QUERY_TYPE_ScmPhysicalDeviceQuery_Max: _SCM_PD_QUERY_TYPE = 2; pub type _SCM_PD_QUERY_TYPE = ::std::os::raw::c_int; pub use self::_SCM_PD_QUERY_TYPE as SCM_PD_QUERY_TYPE; pub type PSCM_PD_QUERY_TYPE = *mut _SCM_PD_QUERY_TYPE; +pub const _SCM_PD_SET_TYPE_ScmPhysicalDeviceSet_Descriptor: _SCM_PD_SET_TYPE = 0; +pub const _SCM_PD_SET_TYPE_ScmPhysicalDeviceSet_IsSupported: _SCM_PD_SET_TYPE = 1; +pub const _SCM_PD_SET_TYPE_ScmPhysicalDeviceSet_Max: _SCM_PD_SET_TYPE = 2; +pub type _SCM_PD_SET_TYPE = ::std::os::raw::c_int; +pub use self::_SCM_PD_SET_TYPE as SCM_PD_SET_TYPE; +pub type PSCM_PD_SET_TYPE = *mut _SCM_PD_SET_TYPE; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceInfo: _SCM_PD_PROPERTY_ID = 0; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_ManagementStatus: _SCM_PD_PROPERTY_ID = 1; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_FirmwareInfo: _SCM_PD_PROPERTY_ID = 2; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_LocationString: _SCM_PD_PROPERTY_ID = 3; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceSpecificInfo: _SCM_PD_PROPERTY_ID = 4; pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_DeviceHandle: _SCM_PD_PROPERTY_ID = 5; -pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_Max: _SCM_PD_PROPERTY_ID = 6; +pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_FruIdString: _SCM_PD_PROPERTY_ID = 6; +pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_RuntimeFwActivationInfo: + _SCM_PD_PROPERTY_ID = 7; +pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_RuntimeFwActivationArmState: + _SCM_PD_PROPERTY_ID = 8; +pub const _SCM_PD_PROPERTY_ID_ScmPhysicalDeviceProperty_Max: _SCM_PD_PROPERTY_ID = 9; pub type _SCM_PD_PROPERTY_ID = ::std::os::raw::c_int; pub use self::_SCM_PD_PROPERTY_ID as SCM_PD_PROPERTY_ID; pub type PSCM_PD_PROPERTY_ID = *mut _SCM_PD_PROPERTY_ID; @@ -202220,6 +207701,121 @@ pub type SCM_PD_PROPERTY_QUERY = _SCM_PD_PROPERTY_QUERY; pub type PSCM_PD_PROPERTY_QUERY = *mut _SCM_PD_PROPERTY_QUERY; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct _SCM_PD_PROPERTY_SET { + pub Version: DWORD, + pub Size: DWORD, + pub PropertyId: SCM_PD_PROPERTY_ID, + pub SetType: SCM_PD_SET_TYPE, + pub AdditionalParameters: [BYTE; 1usize], +} +#[test] +fn bindgen_test_layout__SCM_PD_PROPERTY_SET() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_PD_PROPERTY_SET> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_PD_PROPERTY_SET>(), + 20usize, + concat!("Size of: ", stringify!(_SCM_PD_PROPERTY_SET)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_PD_PROPERTY_SET>(), + 4usize, + concat!("Alignment of ", stringify!(_SCM_PD_PROPERTY_SET)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_PROPERTY_SET), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_PROPERTY_SET), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).PropertyId) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_PROPERTY_SET), + "::", + stringify!(PropertyId) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SetType) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_PROPERTY_SET), + "::", + stringify!(SetType) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AdditionalParameters) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_PROPERTY_SET), + "::", + stringify!(AdditionalParameters) + ) + ); +} +pub type SCM_PD_PROPERTY_SET = _SCM_PD_PROPERTY_SET; +pub type PSCM_PD_PROPERTY_SET = *mut _SCM_PD_PROPERTY_SET; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE { + pub ArmState: BOOLEAN, +} +#[test] +fn bindgen_test_layout__SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE>(), + 1usize, + concat!( + "Size of: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE) + ) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE>(), + 1usize, + concat!( + "Alignment of ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ArmState) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE), + "::", + stringify!(ArmState) + ) + ); +} +pub type SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE = _SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE; +pub type PSCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE = *mut _SCM_PD_RUNTIME_FW_ACTIVATION_ARM_STATE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct _SCM_PD_DESCRIPTOR_HEADER { pub Version: DWORD, pub Size: DWORD, @@ -202979,8 +208575,10 @@ pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Performanc _SCM_PD_OPERATIONAL_STATUS_REASON = 20; pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_ExcessiveTemperature: _SCM_PD_OPERATIONAL_STATUS_REASON = 21; -pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Max: +pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_InternalFailure: _SCM_PD_OPERATIONAL_STATUS_REASON = 22; +pub const _SCM_PD_OPERATIONAL_STATUS_REASON_ScmPhysicalDeviceOpReason_Max: + _SCM_PD_OPERATIONAL_STATUS_REASON = 23; pub type _SCM_PD_OPERATIONAL_STATUS_REASON = ::std::os::raw::c_int; pub use self::_SCM_PD_OPERATIONAL_STATUS_REASON as SCM_PD_OPERATIONAL_STATUS_REASON; pub type PSCM_PD_OPERATIONAL_STATUS_REASON = *mut _SCM_PD_OPERATIONAL_STATUS_REASON; @@ -203140,6 +208738,72 @@ pub type SCM_PD_LOCATION_STRING = _SCM_PD_LOCATION_STRING; pub type PSCM_PD_LOCATION_STRING = *mut _SCM_PD_LOCATION_STRING; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct _SCM_PD_FRU_ID_STRING { + pub Version: DWORD, + pub Size: DWORD, + pub IdentifierSize: DWORD, + pub Identifier: [BYTE; 1usize], +} +#[test] +fn bindgen_test_layout__SCM_PD_FRU_ID_STRING() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_PD_FRU_ID_STRING> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_PD_FRU_ID_STRING>(), + 16usize, + concat!("Size of: ", stringify!(_SCM_PD_FRU_ID_STRING)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_PD_FRU_ID_STRING>(), + 4usize, + concat!("Alignment of ", stringify!(_SCM_PD_FRU_ID_STRING)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_FRU_ID_STRING), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_FRU_ID_STRING), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).IdentifierSize) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_FRU_ID_STRING), + "::", + stringify!(IdentifierSize) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Identifier) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_FRU_ID_STRING), + "::", + stringify!(Identifier) + ) + ); +} +pub type SCM_PD_FRU_ID_STRING = _SCM_PD_FRU_ID_STRING; +pub type PSCM_PD_FRU_ID_STRING = *mut _SCM_PD_FRU_ID_STRING; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct _SCM_PD_FIRMWARE_DOWNLOAD { pub Version: DWORD, pub Size: DWORD, @@ -203314,6 +208978,105 @@ fn bindgen_test_layout__SCM_PD_FIRMWARE_ACTIVATE() { } pub type SCM_PD_FIRMWARE_ACTIVATE = _SCM_PD_FIRMWARE_ACTIVATE; pub type PSCM_PD_FIRMWARE_ACTIVATE = *mut _SCM_PD_FIRMWARE_ACTIVATE; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivationStatus_None: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 0; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivationStatus_Success: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 1; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivationStatus_FwNotFound: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 2; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivationStatus_ColdRebootRequired: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 3; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivaitonStatus_ActivationInProgress: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 4; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivaitonStatus_Retry: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 5; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivaitonStatus_FwUnsupported: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 6; +pub const _SCM_PD_LAST_FW_ACTIVATION_STATUS_ScmPdLastFwActivaitonStatus_UnknownError: + _SCM_PD_LAST_FW_ACTIVATION_STATUS = 7; +pub type _SCM_PD_LAST_FW_ACTIVATION_STATUS = ::std::os::raw::c_int; +pub use self::_SCM_PD_LAST_FW_ACTIVATION_STATUS as SCM_PD_LAST_FW_ACTIVATION_STATUS; +pub type PSCM_PD_LAST_FW_ACTIVATION_STATUS = *mut _SCM_PD_LAST_FW_ACTIVATION_STATUS; +pub const _SCM_PD_FIRMWARE_ACTIVATION_STATE_ScmPdFirmwareActivationState_Idle: + _SCM_PD_FIRMWARE_ACTIVATION_STATE = 0; +pub const _SCM_PD_FIRMWARE_ACTIVATION_STATE_ScmPdFirmwareActivationState_Armed: + _SCM_PD_FIRMWARE_ACTIVATION_STATE = 1; +pub const _SCM_PD_FIRMWARE_ACTIVATION_STATE_ScmPdFirmwareActivationState_Busy: + _SCM_PD_FIRMWARE_ACTIVATION_STATE = 2; +pub type _SCM_PD_FIRMWARE_ACTIVATION_STATE = ::std::os::raw::c_int; +pub use self::_SCM_PD_FIRMWARE_ACTIVATION_STATE as SCM_PD_FIRMWARE_ACTIVATION_STATE; +pub type PSCM_PD_FIRMWARE_ACTIVATION_STATE = *mut _SCM_PD_FIRMWARE_ACTIVATION_STATE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SCM_PD_RUNTIME_FW_ACTIVATION_INFO { + pub Version: DWORD, + pub Size: DWORD, + pub LastFirmwareActivationStatus: SCM_PD_LAST_FW_ACTIVATION_STATUS, + pub FirmwareActivationState: SCM_PD_FIRMWARE_ACTIVATION_STATE, +} +#[test] +fn bindgen_test_layout__SCM_PD_RUNTIME_FW_ACTIVATION_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_SCM_PD_RUNTIME_FW_ACTIVATION_INFO> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SCM_PD_RUNTIME_FW_ACTIVATION_INFO>(), + 16usize, + concat!("Size of: ", stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO)) + ); + assert_eq!( + ::std::mem::align_of::<_SCM_PD_RUNTIME_FW_ACTIVATION_INFO>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Size) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(Size) + ) + ); + assert_eq!( + unsafe { + ::std::ptr::addr_of!((*ptr).LastFirmwareActivationStatus) as usize - ptr as usize + }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(LastFirmwareActivationStatus) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FirmwareActivationState) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(_SCM_PD_RUNTIME_FW_ACTIVATION_INFO), + "::", + stringify!(FirmwareActivationState) + ) + ); +} +pub type SCM_PD_RUNTIME_FW_ACTIVATION_INFO = _SCM_PD_RUNTIME_FW_ACTIVATION_INFO; +pub type PSCM_PD_RUNTIME_FW_ACTIVATION_INFO = *mut _SCM_PD_RUNTIME_FW_ACTIVATION_INFO; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _SCM_PD_PASSTHROUGH_INPUT { @@ -211466,38 +217229,38 @@ fn bindgen_test_layout_DELETE_USN_JOURNAL_DATA() { pub type PDELETE_USN_JOURNAL_DATA = *mut DELETE_USN_JOURNAL_DATA; #[repr(C)] #[derive(Copy, Clone)] -pub struct MARK_HANDLE_INFO { - pub __bindgen_anon_1: MARK_HANDLE_INFO__bindgen_ty_1, +pub struct _MARK_HANDLE_INFO { + pub __bindgen_anon_1: _MARK_HANDLE_INFO__bindgen_ty_1, pub VolumeHandle: HANDLE, pub HandleInfo: DWORD, } #[repr(C)] #[derive(Copy, Clone)] -pub union MARK_HANDLE_INFO__bindgen_ty_1 { +pub union _MARK_HANDLE_INFO__bindgen_ty_1 { pub UsnSourceInfo: DWORD, pub CopyNumber: DWORD, } #[test] -fn bindgen_test_layout_MARK_HANDLE_INFO__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = +fn bindgen_test_layout__MARK_HANDLE_INFO__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_MARK_HANDLE_INFO__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), + ::std::mem::size_of::<_MARK_HANDLE_INFO__bindgen_ty_1>(), 4usize, - concat!("Size of: ", stringify!(MARK_HANDLE_INFO__bindgen_ty_1)) + concat!("Size of: ", stringify!(_MARK_HANDLE_INFO__bindgen_ty_1)) ); assert_eq!( - ::std::mem::align_of::(), + ::std::mem::align_of::<_MARK_HANDLE_INFO__bindgen_ty_1>(), 4usize, - concat!("Alignment of ", stringify!(MARK_HANDLE_INFO__bindgen_ty_1)) + concat!("Alignment of ", stringify!(_MARK_HANDLE_INFO__bindgen_ty_1)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).UsnSourceInfo) as usize - ptr as usize }, 0usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO__bindgen_ty_1), + stringify!(_MARK_HANDLE_INFO__bindgen_ty_1), "::", stringify!(UsnSourceInfo) ) @@ -211507,32 +217270,32 @@ fn bindgen_test_layout_MARK_HANDLE_INFO__bindgen_ty_1() { 0usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO__bindgen_ty_1), + stringify!(_MARK_HANDLE_INFO__bindgen_ty_1), "::", stringify!(CopyNumber) ) ); } #[test] -fn bindgen_test_layout_MARK_HANDLE_INFO() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); +fn bindgen_test_layout__MARK_HANDLE_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_MARK_HANDLE_INFO> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), + ::std::mem::size_of::<_MARK_HANDLE_INFO>(), 24usize, - concat!("Size of: ", stringify!(MARK_HANDLE_INFO)) + concat!("Size of: ", stringify!(_MARK_HANDLE_INFO)) ); assert_eq!( - ::std::mem::align_of::(), + ::std::mem::align_of::<_MARK_HANDLE_INFO>(), 8usize, - concat!("Alignment of ", stringify!(MARK_HANDLE_INFO)) + concat!("Alignment of ", stringify!(_MARK_HANDLE_INFO)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).VolumeHandle) as usize - ptr as usize }, 8usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO), + stringify!(_MARK_HANDLE_INFO), "::", stringify!(VolumeHandle) ) @@ -211542,42 +217305,43 @@ fn bindgen_test_layout_MARK_HANDLE_INFO() { 16usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO), + stringify!(_MARK_HANDLE_INFO), "::", stringify!(HandleInfo) ) ); } -pub type PMARK_HANDLE_INFO = *mut MARK_HANDLE_INFO; +pub type MARK_HANDLE_INFO = _MARK_HANDLE_INFO; +pub type PMARK_HANDLE_INFO = *mut _MARK_HANDLE_INFO; #[repr(C)] #[derive(Copy, Clone)] -pub struct MARK_HANDLE_INFO32 { - pub __bindgen_anon_1: MARK_HANDLE_INFO32__bindgen_ty_1, +pub struct _MARK_HANDLE_INFO32 { + pub __bindgen_anon_1: _MARK_HANDLE_INFO32__bindgen_ty_1, pub VolumeHandle: UINT32, pub HandleInfo: DWORD, } #[repr(C)] #[derive(Copy, Clone)] -pub union MARK_HANDLE_INFO32__bindgen_ty_1 { +pub union _MARK_HANDLE_INFO32__bindgen_ty_1 { pub UsnSourceInfo: DWORD, pub CopyNumber: DWORD, } #[test] -fn bindgen_test_layout_MARK_HANDLE_INFO32__bindgen_ty_1() { - const UNINIT: ::std::mem::MaybeUninit = +fn bindgen_test_layout__MARK_HANDLE_INFO32__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_MARK_HANDLE_INFO32__bindgen_ty_1> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), + ::std::mem::size_of::<_MARK_HANDLE_INFO32__bindgen_ty_1>(), 4usize, - concat!("Size of: ", stringify!(MARK_HANDLE_INFO32__bindgen_ty_1)) + concat!("Size of: ", stringify!(_MARK_HANDLE_INFO32__bindgen_ty_1)) ); assert_eq!( - ::std::mem::align_of::(), + ::std::mem::align_of::<_MARK_HANDLE_INFO32__bindgen_ty_1>(), 4usize, concat!( "Alignment of ", - stringify!(MARK_HANDLE_INFO32__bindgen_ty_1) + stringify!(_MARK_HANDLE_INFO32__bindgen_ty_1) ) ); assert_eq!( @@ -211585,7 +217349,7 @@ fn bindgen_test_layout_MARK_HANDLE_INFO32__bindgen_ty_1() { 0usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO32__bindgen_ty_1), + stringify!(_MARK_HANDLE_INFO32__bindgen_ty_1), "::", stringify!(UsnSourceInfo) ) @@ -211595,32 +217359,32 @@ fn bindgen_test_layout_MARK_HANDLE_INFO32__bindgen_ty_1() { 0usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO32__bindgen_ty_1), + stringify!(_MARK_HANDLE_INFO32__bindgen_ty_1), "::", stringify!(CopyNumber) ) ); } #[test] -fn bindgen_test_layout_MARK_HANDLE_INFO32() { - const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); +fn bindgen_test_layout__MARK_HANDLE_INFO32() { + const UNINIT: ::std::mem::MaybeUninit<_MARK_HANDLE_INFO32> = ::std::mem::MaybeUninit::uninit(); let ptr = UNINIT.as_ptr(); assert_eq!( - ::std::mem::size_of::(), + ::std::mem::size_of::<_MARK_HANDLE_INFO32>(), 12usize, - concat!("Size of: ", stringify!(MARK_HANDLE_INFO32)) + concat!("Size of: ", stringify!(_MARK_HANDLE_INFO32)) ); assert_eq!( - ::std::mem::align_of::(), + ::std::mem::align_of::<_MARK_HANDLE_INFO32>(), 4usize, - concat!("Alignment of ", stringify!(MARK_HANDLE_INFO32)) + concat!("Alignment of ", stringify!(_MARK_HANDLE_INFO32)) ); assert_eq!( unsafe { ::std::ptr::addr_of!((*ptr).VolumeHandle) as usize - ptr as usize }, 4usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO32), + stringify!(_MARK_HANDLE_INFO32), "::", stringify!(VolumeHandle) ) @@ -211630,13 +217394,14 @@ fn bindgen_test_layout_MARK_HANDLE_INFO32() { 8usize, concat!( "Offset of field: ", - stringify!(MARK_HANDLE_INFO32), + stringify!(_MARK_HANDLE_INFO32), "::", stringify!(HandleInfo) ) ); } -pub type PMARK_HANDLE_INFO32 = *mut MARK_HANDLE_INFO32; +pub type MARK_HANDLE_INFO32 = _MARK_HANDLE_INFO32; +pub type PMARK_HANDLE_INFO32 = *mut _MARK_HANDLE_INFO32; #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct BULK_SECURITY_TEST_DATA { @@ -218836,6 +224601,9 @@ pub const _CSV_CONTROL_OP_CsvControlDisableCaching: _CSV_CONTROL_OP = 19; pub const _CSV_CONTROL_OP_CsvControlEnableCaching: _CSV_CONTROL_OP = 20; pub const _CSV_CONTROL_OP_CsvControlStartForceDFO: _CSV_CONTROL_OP = 21; pub const _CSV_CONTROL_OP_CsvControlStopForceDFO: _CSV_CONTROL_OP = 22; +pub const _CSV_CONTROL_OP_CsvControlQueryMdsPathNoPause: _CSV_CONTROL_OP = 23; +pub const _CSV_CONTROL_OP_CsvControlSetVolumeId: _CSV_CONTROL_OP = 24; +pub const _CSV_CONTROL_OP_CsvControlQueryVolumeId: _CSV_CONTROL_OP = 25; pub type _CSV_CONTROL_OP = ::std::os::raw::c_int; pub use self::_CSV_CONTROL_OP as CSV_CONTROL_OP; pub type PCSV_CONTROL_OP = *mut _CSV_CONTROL_OP; @@ -219328,6 +225096,140 @@ pub type CSV_QUERY_MDS_PATH_V2 = _CSV_QUERY_MDS_PATH_V2; pub type PCSV_QUERY_MDS_PATH_V2 = *mut _CSV_QUERY_MDS_PATH_V2; #[repr(C)] #[derive(Debug, Copy, Clone)] +pub struct _CSV_SET_VOLUME_ID { + pub VolumeId: GUID, +} +#[test] +fn bindgen_test_layout__CSV_SET_VOLUME_ID() { + const UNINIT: ::std::mem::MaybeUninit<_CSV_SET_VOLUME_ID> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_CSV_SET_VOLUME_ID>(), + 16usize, + concat!("Size of: ", stringify!(_CSV_SET_VOLUME_ID)) + ); + assert_eq!( + ::std::mem::align_of::<_CSV_SET_VOLUME_ID>(), + 4usize, + concat!("Alignment of ", stringify!(_CSV_SET_VOLUME_ID)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VolumeId) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_CSV_SET_VOLUME_ID), + "::", + stringify!(VolumeId) + ) + ); +} +pub type CSV_SET_VOLUME_ID = _CSV_SET_VOLUME_ID; +pub type PCSV_SET_VOLUME_ID = *mut _CSV_SET_VOLUME_ID; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _CSV_QUERY_VOLUME_ID { + pub VolumeId: GUID, +} +#[test] +fn bindgen_test_layout__CSV_QUERY_VOLUME_ID() { + const UNINIT: ::std::mem::MaybeUninit<_CSV_QUERY_VOLUME_ID> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_CSV_QUERY_VOLUME_ID>(), + 16usize, + concat!("Size of: ", stringify!(_CSV_QUERY_VOLUME_ID)) + ); + assert_eq!( + ::std::mem::align_of::<_CSV_QUERY_VOLUME_ID>(), + 4usize, + concat!("Alignment of ", stringify!(_CSV_QUERY_VOLUME_ID)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VolumeId) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_CSV_QUERY_VOLUME_ID), + "::", + stringify!(VolumeId) + ) + ); +} +pub type CSV_QUERY_VOLUME_ID = _CSV_QUERY_VOLUME_ID; +pub type PCSV_QUERY_VOLUME_ID = *mut _CSV_QUERY_VOLUME_ID; +pub const _LMR_QUERY_INFO_CLASS_LMRQuerySessionInfo: _LMR_QUERY_INFO_CLASS = 1; +pub type _LMR_QUERY_INFO_CLASS = ::std::os::raw::c_int; +pub use self::_LMR_QUERY_INFO_CLASS as LMR_QUERY_INFO_CLASS; +pub type PLMR_QUERY_INFO_CLASS = *mut _LMR_QUERY_INFO_CLASS; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _LMR_QUERY_INFO_PARAM { + pub Operation: LMR_QUERY_INFO_CLASS, +} +#[test] +fn bindgen_test_layout__LMR_QUERY_INFO_PARAM() { + const UNINIT: ::std::mem::MaybeUninit<_LMR_QUERY_INFO_PARAM> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_LMR_QUERY_INFO_PARAM>(), + 4usize, + concat!("Size of: ", stringify!(_LMR_QUERY_INFO_PARAM)) + ); + assert_eq!( + ::std::mem::align_of::<_LMR_QUERY_INFO_PARAM>(), + 4usize, + concat!("Alignment of ", stringify!(_LMR_QUERY_INFO_PARAM)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_LMR_QUERY_INFO_PARAM), + "::", + stringify!(Operation) + ) + ); +} +pub type LMR_QUERY_INFO_PARAM = _LMR_QUERY_INFO_PARAM; +pub type PLMR_QUERY_INFO_PARAM = *mut _LMR_QUERY_INFO_PARAM; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _LMR_QUERY_SESSION_INFO { + pub SessionId: UINT64, +} +#[test] +fn bindgen_test_layout__LMR_QUERY_SESSION_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_LMR_QUERY_SESSION_INFO> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_LMR_QUERY_SESSION_INFO>(), + 8usize, + concat!("Size of: ", stringify!(_LMR_QUERY_SESSION_INFO)) + ); + assert_eq!( + ::std::mem::align_of::<_LMR_QUERY_SESSION_INFO>(), + 8usize, + concat!("Alignment of ", stringify!(_LMR_QUERY_SESSION_INFO)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SessionId) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_LMR_QUERY_SESSION_INFO), + "::", + stringify!(SessionId) + ) + ); +} +pub type LMR_QUERY_SESSION_INFO = _LMR_QUERY_SESSION_INFO; +pub type PLMR_QUERY_SESSION_INFO = *mut _LMR_QUERY_SESSION_INFO; +#[repr(C)] +#[derive(Debug, Copy, Clone)] pub struct _CSV_QUERY_VETO_FILE_DIRECT_IO_OUTPUT { pub VetoedFromAltitudeIntegral: DWORDLONG, pub VetoedFromAltitudeDecimal: DWORDLONG, @@ -222638,6 +228540,100 @@ fn bindgen_test_layout__DUPLICATE_EXTENTS_DATA_EX32() { } pub type DUPLICATE_EXTENTS_DATA_EX32 = _DUPLICATE_EXTENTS_DATA_EX32; pub type PDUPLICATE_EXTENTS_DATA_EX32 = *mut _DUPLICATE_EXTENTS_DATA_EX32; +pub const _DUPLICATE_EXTENTS_STATE_FileSnapStateInactive: _DUPLICATE_EXTENTS_STATE = 0; +pub const _DUPLICATE_EXTENTS_STATE_FileSnapStateSource: _DUPLICATE_EXTENTS_STATE = 1; +pub const _DUPLICATE_EXTENTS_STATE_FileSnapStateTarget: _DUPLICATE_EXTENTS_STATE = 2; +pub type _DUPLICATE_EXTENTS_STATE = ::std::os::raw::c_int; +pub use self::_DUPLICATE_EXTENTS_STATE as DUPLICATE_EXTENTS_STATE; +pub type PDUPLICATE_EXTENTS_STATE = *mut _DUPLICATE_EXTENTS_STATE; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _ASYNC_DUPLICATE_EXTENTS_STATUS { + pub Version: DWORD, + pub State: DUPLICATE_EXTENTS_STATE, + pub SourceFileOffset: DWORDLONG, + pub TargetFileOffset: DWORDLONG, + pub ByteCount: DWORDLONG, + pub BytesDuplicated: DWORDLONG, +} +#[test] +fn bindgen_test_layout__ASYNC_DUPLICATE_EXTENTS_STATUS() { + const UNINIT: ::std::mem::MaybeUninit<_ASYNC_DUPLICATE_EXTENTS_STATUS> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_ASYNC_DUPLICATE_EXTENTS_STATUS>(), + 40usize, + concat!("Size of: ", stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS)) + ); + assert_eq!( + ::std::mem::align_of::<_ASYNC_DUPLICATE_EXTENTS_STATUS>(), + 8usize, + concat!("Alignment of ", stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(Version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).State) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(State) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).SourceFileOffset) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(SourceFileOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).TargetFileOffset) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(TargetFileOffset) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ByteCount) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(ByteCount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).BytesDuplicated) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(_ASYNC_DUPLICATE_EXTENTS_STATUS), + "::", + stringify!(BytesDuplicated) + ) + ); +} +pub type ASYNC_DUPLICATE_EXTENTS_STATUS = _ASYNC_DUPLICATE_EXTENTS_STATUS; +pub type PASYNC_DUPLICATE_EXTENTS_STATUS = *mut _ASYNC_DUPLICATE_EXTENTS_STATUS; pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStateInactive: _REFS_SMR_VOLUME_GC_STATE = 0; pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStatePaused: _REFS_SMR_VOLUME_GC_STATE = 1; pub const _REFS_SMR_VOLUME_GC_STATE_SmrGcStateActive: _REFS_SMR_VOLUME_GC_STATE = 2; @@ -222657,7 +228653,8 @@ pub struct _REFS_SMR_VOLUME_INFO_OUTPUT { pub UsableFreeSpaceInSMRTier: LARGE_INTEGER, pub VolumeGcState: REFS_SMR_VOLUME_GC_STATE, pub VolumeGcLastStatus: DWORD, - pub Unused: [DWORDLONG; 7usize], + pub CurrentGcBandFillPercentage: DWORD, + pub Unused: [DWORDLONG; 6usize], } #[test] fn bindgen_test_layout__REFS_SMR_VOLUME_INFO_OUTPUT() { @@ -222767,8 +228764,18 @@ fn bindgen_test_layout__REFS_SMR_VOLUME_INFO_OUTPUT() { ) ); assert_eq!( - unsafe { ::std::ptr::addr_of!((*ptr).Unused) as usize - ptr as usize }, + unsafe { ::std::ptr::addr_of!((*ptr).CurrentGcBandFillPercentage) as usize - ptr as usize }, 56usize, + concat!( + "Offset of field: ", + stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT), + "::", + stringify!(CurrentGcBandFillPercentage) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Unused) as usize - ptr as usize }, + 64usize, concat!( "Offset of field: ", stringify!(_REFS_SMR_VOLUME_INFO_OUTPUT), @@ -223349,6 +229356,10 @@ pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorCacheWriteThrough _VIRTUAL_STORAGE_BEHAVIOR_CODE = 1; pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorCacheWriteBack: _VIRTUAL_STORAGE_BEHAVIOR_CODE = 2; +pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorStopIoProcessing: + _VIRTUAL_STORAGE_BEHAVIOR_CODE = 3; +pub const _VIRTUAL_STORAGE_BEHAVIOR_CODE_VirtualStorageBehaviorRestartIoProcessing: + _VIRTUAL_STORAGE_BEHAVIOR_CODE = 4; pub type _VIRTUAL_STORAGE_BEHAVIOR_CODE = ::std::os::raw::c_int; pub use self::_VIRTUAL_STORAGE_BEHAVIOR_CODE as VIRTUAL_STORAGE_BEHAVIOR_CODE; pub type PVIRTUAL_STORAGE_BEHAVIOR_CODE = *mut _VIRTUAL_STORAGE_BEHAVIOR_CODE; @@ -224441,6 +230452,438 @@ fn bindgen_test_layout__GET_FILTER_FILE_IDENTIFIER_OUTPUT() { } pub type GET_FILTER_FILE_IDENTIFIER_OUTPUT = _GET_FILTER_FILE_IDENTIFIER_OUTPUT; pub type PGET_FILTER_FILE_IDENTIFIER_OUTPUT = *mut _GET_FILTER_FILE_IDENTIFIER_OUTPUT; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_ENABLE: _FS_BPIO_OPERATIONS = 1; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_DISABLE: _FS_BPIO_OPERATIONS = 2; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_QUERY: _FS_BPIO_OPERATIONS = 3; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_VOLUME_STACK_PAUSE: _FS_BPIO_OPERATIONS = 4; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_VOLUME_STACK_RESUME: _FS_BPIO_OPERATIONS = 5; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_STREAM_PAUSE: _FS_BPIO_OPERATIONS = 6; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_STREAM_RESUME: _FS_BPIO_OPERATIONS = 7; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_GET_INFO: _FS_BPIO_OPERATIONS = 8; +pub const _FS_BPIO_OPERATIONS_FS_BPIO_OP_MAX_OPERATION: _FS_BPIO_OPERATIONS = 9; +pub type _FS_BPIO_OPERATIONS = ::std::os::raw::c_int; +pub use self::_FS_BPIO_OPERATIONS as FS_BPIO_OPERATIONS; +pub const _FS_BPIO_INFLAGS_FSBPIO_INFL_None: _FS_BPIO_INFLAGS = 0; +pub const _FS_BPIO_INFLAGS_FSBPIO_INFL_SKIP_STORAGE_STACK_QUERY: _FS_BPIO_INFLAGS = 1; +pub type _FS_BPIO_INFLAGS = ::std::os::raw::c_int; +pub use self::_FS_BPIO_INFLAGS as FS_BPIO_INFLAGS; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _FS_BPIO_INPUT { + pub Operation: FS_BPIO_OPERATIONS, + pub InFlags: FS_BPIO_INFLAGS, + pub Reserved1: DWORDLONG, + pub Reserved2: DWORDLONG, +} +#[test] +fn bindgen_test_layout__FS_BPIO_INPUT() { + const UNINIT: ::std::mem::MaybeUninit<_FS_BPIO_INPUT> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_FS_BPIO_INPUT>(), + 24usize, + concat!("Size of: ", stringify!(_FS_BPIO_INPUT)) + ); + assert_eq!( + ::std::mem::align_of::<_FS_BPIO_INPUT>(), + 8usize, + concat!("Alignment of ", stringify!(_FS_BPIO_INPUT)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INPUT), + "::", + stringify!(Operation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).InFlags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INPUT), + "::", + stringify!(InFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INPUT), + "::", + stringify!(Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INPUT), + "::", + stringify!(Reserved2) + ) + ); +} +pub type FS_BPIO_INPUT = _FS_BPIO_INPUT; +pub type PFS_BPIO_INPUT = *mut _FS_BPIO_INPUT; +pub const _FS_BPIO_OUTFLAGS_FSBPIO_OUTFL_None: _FS_BPIO_OUTFLAGS = 0; +pub const _FS_BPIO_OUTFLAGS_FSBPIO_OUTFL_VOLUME_STACK_BYPASS_PAUSED: _FS_BPIO_OUTFLAGS = 1; +pub const _FS_BPIO_OUTFLAGS_FSBPIO_OUTFL_STREAM_BYPASS_PAUSED: _FS_BPIO_OUTFLAGS = 2; +pub const _FS_BPIO_OUTFLAGS_FSBPIO_OUTFL_FILTER_ATTACH_BLOCKED: _FS_BPIO_OUTFLAGS = 4; +pub const _FS_BPIO_OUTFLAGS_FSBPIO_OUTFL_COMPATIBLE_STORAGE_DRIVER: _FS_BPIO_OUTFLAGS = 8; +pub type _FS_BPIO_OUTFLAGS = ::std::os::raw::c_int; +pub use self::_FS_BPIO_OUTFLAGS as FS_BPIO_OUTFLAGS; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _FS_BPIO_RESULTS { + pub OpStatus: DWORD, + pub FailingDriverNameLen: WORD, + pub FailingDriverName: [WCHAR; 32usize], + pub FailureReasonLen: WORD, + pub FailureReason: [WCHAR; 128usize], +} +#[test] +fn bindgen_test_layout__FS_BPIO_RESULTS() { + const UNINIT: ::std::mem::MaybeUninit<_FS_BPIO_RESULTS> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_FS_BPIO_RESULTS>(), + 328usize, + concat!("Size of: ", stringify!(_FS_BPIO_RESULTS)) + ); + assert_eq!( + ::std::mem::align_of::<_FS_BPIO_RESULTS>(), + 4usize, + concat!("Alignment of ", stringify!(_FS_BPIO_RESULTS)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).OpStatus) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_RESULTS), + "::", + stringify!(OpStatus) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FailingDriverNameLen) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_RESULTS), + "::", + stringify!(FailingDriverNameLen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FailingDriverName) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_RESULTS), + "::", + stringify!(FailingDriverName) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FailureReasonLen) as usize - ptr as usize }, + 70usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_RESULTS), + "::", + stringify!(FailureReasonLen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).FailureReason) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_RESULTS), + "::", + stringify!(FailureReason) + ) + ); +} +pub type FS_BPIO_RESULTS = _FS_BPIO_RESULTS; +pub type PFS_BPIO_RESULTS = *mut _FS_BPIO_RESULTS; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _FS_BPIO_INFO { + pub ActiveBypassIoCount: DWORD, + pub StorageDriverNameLen: WORD, + pub StorageDriverName: [WCHAR; 32usize], +} +#[test] +fn bindgen_test_layout__FS_BPIO_INFO() { + const UNINIT: ::std::mem::MaybeUninit<_FS_BPIO_INFO> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_FS_BPIO_INFO>(), + 72usize, + concat!("Size of: ", stringify!(_FS_BPIO_INFO)) + ); + assert_eq!( + ::std::mem::align_of::<_FS_BPIO_INFO>(), + 4usize, + concat!("Alignment of ", stringify!(_FS_BPIO_INFO)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ActiveBypassIoCount) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INFO), + "::", + stringify!(ActiveBypassIoCount) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).StorageDriverNameLen) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INFO), + "::", + stringify!(StorageDriverNameLen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).StorageDriverName) as usize - ptr as usize }, + 6usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_INFO), + "::", + stringify!(StorageDriverName) + ) + ); +} +pub type FS_BPIO_INFO = _FS_BPIO_INFO; +pub type PFS_BPIO_INFO = *mut _FS_BPIO_INFO; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct _FS_BPIO_OUTPUT { + pub Operation: FS_BPIO_OPERATIONS, + pub OutFlags: FS_BPIO_OUTFLAGS, + pub Reserved1: DWORDLONG, + pub Reserved2: DWORDLONG, + pub __bindgen_anon_1: _FS_BPIO_OUTPUT__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union _FS_BPIO_OUTPUT__bindgen_ty_1 { + pub Enable: FS_BPIO_RESULTS, + pub Query: FS_BPIO_RESULTS, + pub VolumeStackResume: FS_BPIO_RESULTS, + pub StreamResume: FS_BPIO_RESULTS, + pub GetInfo: FS_BPIO_INFO, +} +#[test] +fn bindgen_test_layout__FS_BPIO_OUTPUT__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit<_FS_BPIO_OUTPUT__bindgen_ty_1> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_FS_BPIO_OUTPUT__bindgen_ty_1>(), + 328usize, + concat!("Size of: ", stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::<_FS_BPIO_OUTPUT__bindgen_ty_1>(), + 4usize, + concat!("Alignment of ", stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Enable) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1), + "::", + stringify!(Enable) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Query) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1), + "::", + stringify!(Query) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).VolumeStackResume) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1), + "::", + stringify!(VolumeStackResume) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).StreamResume) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1), + "::", + stringify!(StreamResume) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetInfo) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT__bindgen_ty_1), + "::", + stringify!(GetInfo) + ) + ); +} +#[test] +fn bindgen_test_layout__FS_BPIO_OUTPUT() { + const UNINIT: ::std::mem::MaybeUninit<_FS_BPIO_OUTPUT> = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_FS_BPIO_OUTPUT>(), + 352usize, + concat!("Size of: ", stringify!(_FS_BPIO_OUTPUT)) + ); + assert_eq!( + ::std::mem::align_of::<_FS_BPIO_OUTPUT>(), + 8usize, + concat!("Alignment of ", stringify!(_FS_BPIO_OUTPUT)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Operation) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT), + "::", + stringify!(Operation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).OutFlags) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT), + "::", + stringify!(OutFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved1) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT), + "::", + stringify!(Reserved1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Reserved2) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(_FS_BPIO_OUTPUT), + "::", + stringify!(Reserved2) + ) + ); +} +pub type FS_BPIO_OUTPUT = _FS_BPIO_OUTPUT; +pub type PFS_BPIO_OUTPUT = *mut _FS_BPIO_OUTPUT; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SMB_SHARE_FLUSH_AND_PURGE_INPUT { + pub Version: WORD, +} +#[test] +fn bindgen_test_layout__SMB_SHARE_FLUSH_AND_PURGE_INPUT() { + const UNINIT: ::std::mem::MaybeUninit<_SMB_SHARE_FLUSH_AND_PURGE_INPUT> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SMB_SHARE_FLUSH_AND_PURGE_INPUT>(), + 2usize, + concat!("Size of: ", stringify!(_SMB_SHARE_FLUSH_AND_PURGE_INPUT)) + ); + assert_eq!( + ::std::mem::align_of::<_SMB_SHARE_FLUSH_AND_PURGE_INPUT>(), + 2usize, + concat!( + "Alignment of ", + stringify!(_SMB_SHARE_FLUSH_AND_PURGE_INPUT) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Version) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SMB_SHARE_FLUSH_AND_PURGE_INPUT), + "::", + stringify!(Version) + ) + ); +} +pub type SMB_SHARE_FLUSH_AND_PURGE_INPUT = _SMB_SHARE_FLUSH_AND_PURGE_INPUT; +pub type PSMB_SHARE_FLUSH_AND_PURGE_INPUT = *mut _SMB_SHARE_FLUSH_AND_PURGE_INPUT; +pub type PCSMB_SHARE_FLUSH_AND_PURGE_INPUT = *const _SMB_SHARE_FLUSH_AND_PURGE_INPUT; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct _SMB_SHARE_FLUSH_AND_PURGE_OUTPUT { + pub cEntriesPurged: DWORD, +} +#[test] +fn bindgen_test_layout__SMB_SHARE_FLUSH_AND_PURGE_OUTPUT() { + const UNINIT: ::std::mem::MaybeUninit<_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT> = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::<_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT>(), + 4usize, + concat!("Size of: ", stringify!(_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT)) + ); + assert_eq!( + ::std::mem::align_of::<_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT>(), + 4usize, + concat!( + "Alignment of ", + stringify!(_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).cEntriesPurged) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(_SMB_SHARE_FLUSH_AND_PURGE_OUTPUT), + "::", + stringify!(cEntriesPurged) + ) + ); +} +pub type SMB_SHARE_FLUSH_AND_PURGE_OUTPUT = _SMB_SHARE_FLUSH_AND_PURGE_OUTPUT; +pub type PSMB_SHARE_FLUSH_AND_PURGE_OUTPUT = *mut _SMB_SHARE_FLUSH_AND_PURGE_OUTPUT; +pub type PCSMB_SHARE_FLUSH_AND_PURGE_OUTPUT = *const _SMB_SHARE_FLUSH_AND_PURGE_OUTPUT; #[repr(C)] #[derive(Copy, Clone)] pub struct _DISK_EXTENT { @@ -250849,12 +257292,318 @@ fn bindgen_test_layout_IAgileReference() { extern "C" { pub static IID_ICallbackWithNoReentrancyToApplicationSTA: GUID; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct MachineGlobalObjectTableRegistrationToken__ { + pub unused: ::std::os::raw::c_int, +} +#[test] +fn bindgen_test_layout_MachineGlobalObjectTableRegistrationToken__() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 4usize, + concat!( + "Size of: ", + stringify!(MachineGlobalObjectTableRegistrationToken__) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 4usize, + concat!( + "Alignment of ", + stringify!(MachineGlobalObjectTableRegistrationToken__) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).unused) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(MachineGlobalObjectTableRegistrationToken__), + "::", + stringify!(unused) + ) + ); +} +pub type MachineGlobalObjectTableRegistrationToken = + *mut MachineGlobalObjectTableRegistrationToken__; extern "C" { pub static mut __MIDL_itf_objidlbase_0000_0053_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { pub static mut __MIDL_itf_objidlbase_0000_0053_v0_0_s_ifspec: RPC_IF_HANDLE; } +extern "C" { + pub static IID_IMachineGlobalObjectTable: IID; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IMachineGlobalObjectTableVtbl { + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + This: *mut IMachineGlobalObjectTable, + riid: *const IID, + ppvObject: *mut *mut ::std::os::raw::c_void, + ) -> HRESULT, + >, + pub AddRef: + ::std::option::Option ULONG>, + pub Release: + ::std::option::Option ULONG>, + pub RegisterObject: ::std::option::Option< + unsafe extern "C" fn( + This: *mut IMachineGlobalObjectTable, + clsid: *const IID, + identifier: LPCWSTR, + object: *mut IUnknown, + token: *mut MachineGlobalObjectTableRegistrationToken, + ) -> HRESULT, + >, + pub GetObjectA: ::std::option::Option< + unsafe extern "C" fn( + This: *mut IMachineGlobalObjectTable, + clsid: *const IID, + identifier: LPCWSTR, + riid: *const IID, + ppv: *mut *mut ::std::os::raw::c_void, + ) -> HRESULT, + >, + pub RevokeObject: ::std::option::Option< + unsafe extern "C" fn( + This: *mut IMachineGlobalObjectTable, + token: MachineGlobalObjectTableRegistrationToken, + ) -> HRESULT, + >, +} +#[test] +fn bindgen_test_layout_IMachineGlobalObjectTableVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 48usize, + concat!("Size of: ", stringify!(IMachineGlobalObjectTableVtbl)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IMachineGlobalObjectTableVtbl)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AddRef) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(AddRef) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(Release) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).RegisterObject) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(RegisterObject) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).GetObjectA) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(GetObjectA) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).RevokeObject) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTableVtbl), + "::", + stringify!(RevokeObject) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct IMachineGlobalObjectTable { + pub lpVtbl: *mut IMachineGlobalObjectTableVtbl, +} +#[test] +fn bindgen_test_layout_IMachineGlobalObjectTable() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(IMachineGlobalObjectTable)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(IMachineGlobalObjectTable)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lpVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(IMachineGlobalObjectTable), + "::", + stringify!(lpVtbl) + ) + ); +} +extern "C" { + pub static mut __MIDL_itf_objidlbase_0000_0054_v0_0_c_ifspec: RPC_IF_HANDLE; +} +extern "C" { + pub static mut __MIDL_itf_objidlbase_0000_0054_v0_0_s_ifspec: RPC_IF_HANDLE; +} +extern "C" { + pub static IID_ISupportAllowLowerTrustActivation: IID; +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ISupportAllowLowerTrustActivationVtbl { + pub QueryInterface: ::std::option::Option< + unsafe extern "C" fn( + This: *mut ISupportAllowLowerTrustActivation, + riid: *const IID, + ppvObject: *mut *mut ::std::os::raw::c_void, + ) -> HRESULT, + >, + pub AddRef: ::std::option::Option< + unsafe extern "C" fn(This: *mut ISupportAllowLowerTrustActivation) -> ULONG, + >, + pub Release: ::std::option::Option< + unsafe extern "C" fn(This: *mut ISupportAllowLowerTrustActivation) -> ULONG, + >, +} +#[test] +fn bindgen_test_layout_ISupportAllowLowerTrustActivationVtbl() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!( + "Size of: ", + stringify!(ISupportAllowLowerTrustActivationVtbl) + ) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(ISupportAllowLowerTrustActivationVtbl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).QueryInterface) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ISupportAllowLowerTrustActivationVtbl), + "::", + stringify!(QueryInterface) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).AddRef) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(ISupportAllowLowerTrustActivationVtbl), + "::", + stringify!(AddRef) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).Release) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(ISupportAllowLowerTrustActivationVtbl), + "::", + stringify!(Release) + ) + ); +} +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct ISupportAllowLowerTrustActivation { + pub lpVtbl: *mut ISupportAllowLowerTrustActivationVtbl, +} +#[test] +fn bindgen_test_layout_ISupportAllowLowerTrustActivation() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(ISupportAllowLowerTrustActivation)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(ISupportAllowLowerTrustActivation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).lpVtbl) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(ISupportAllowLowerTrustActivation), + "::", + stringify!(lpVtbl) + ) + ); +} +extern "C" { + pub static mut __MIDL_itf_objidlbase_0000_0055_v0_0_c_ifspec: RPC_IF_HANDLE; +} +extern "C" { + pub static mut __MIDL_itf_objidlbase_0000_0055_v0_0_s_ifspec: RPC_IF_HANDLE; +} extern "C" { pub fn IEnumUnknown_Next_Proxy( This: *mut IEnumUnknown, @@ -251067,6 +257816,12 @@ extern "C" { extern "C" { pub static CLSID_StdGlobalInterfaceTable: CLSID; } +extern "C" { + pub static CLSID_MachineGlobalObjectTable: CLSID; +} +extern "C" { + pub static CLSID_ActivationCapabilities: CLSID; +} extern "C" { pub static CLSID_ComBinding: CLSID; } @@ -251784,10 +258539,10 @@ extern "C" { pub static mut __MIDL_itf_unknwn_0000_0003_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0053_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0055_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0053_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0055_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPMALLOCSPY = *mut IMallocSpy; extern "C" { @@ -252062,10 +258817,10 @@ fn bindgen_test_layout_IMallocSpy() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0054_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0056_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0054_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0056_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPBC = *mut IBindCtx; pub type LPBINDCTX = *mut IBindCtx; @@ -252783,10 +259538,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0056_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0058_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0056_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0058_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPRUNNABLEOBJECT = *mut IRunnableObject; extern "C" { @@ -253169,10 +259924,10 @@ fn bindgen_test_layout_IRunningObjectTable() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0058_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0060_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0058_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0060_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPPERSIST = *mut IPersist; extern "C" { @@ -253898,10 +260653,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0061_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0063_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0061_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0063_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IROTData: IID; @@ -254013,10 +260768,10 @@ fn bindgen_test_layout_IROTData() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0062_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0064_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0062_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0064_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPENUMSTATSTG = *mut IEnumSTATSTG; extern "C" { @@ -254637,10 +261392,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0064_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0066_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0064_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0066_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPPERSISTFILE = *mut IPersistFile; extern "C" { @@ -255003,10 +261758,10 @@ fn bindgen_test_layout_IPersistStorage() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0066_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0068_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0066_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0068_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPLOCKBYTES = *mut ILockBytes; extern "C" { @@ -257099,10 +263854,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0071_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0073_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0071_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0073_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPADVISESINK2 = *mut IAdviseSink2; extern "C" { @@ -257553,10 +264308,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0072_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0074_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0072_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0074_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPDATAOBJECT = *mut IDataObject; pub const tagDATADIR_DATADIR_GET: tagDATADIR = 1; @@ -257848,10 +264603,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0073_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0075_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0073_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0075_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPDATAADVISEHOLDER = *mut IDataAdviseHolder; extern "C" { @@ -258260,10 +265015,10 @@ extern "C" { pub static FMTID_MediaFileSummaryInformation: FMTID; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0075_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0077_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0075_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0077_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IClassActivator: IID; @@ -258377,10 +265132,10 @@ fn bindgen_test_layout_IClassActivator() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0076_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0078_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0076_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0078_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IFillLockBytes: IID; @@ -258570,10 +265325,10 @@ extern "C" { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0077_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0079_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0077_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0079_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IProgressNotify: IID; @@ -258686,10 +265441,10 @@ fn bindgen_test_layout_IProgressNotify() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0078_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0080_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0078_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0080_v0_0_s_ifspec: RPC_IF_HANDLE; } #[repr(C)] #[derive(Copy, Clone)] @@ -258915,10 +265670,10 @@ fn bindgen_test_layout_ILayoutStorage() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0079_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0081_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0079_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0081_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IBlockingLock: IID; @@ -259277,10 +266032,10 @@ fn bindgen_test_layout_IOplockStorage() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0082_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0084_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0082_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0084_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IDirectWriterLock: IID; @@ -259412,10 +266167,10 @@ fn bindgen_test_layout_IDirectWriterLock() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0083_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0085_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0083_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0085_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IUrlMon: IID; @@ -259887,10 +266642,10 @@ pub const tagShutdownType_ForcedShutdown: tagShutdownType = 1; pub type tagShutdownType = ::std::os::raw::c_int; pub use self::tagShutdownType as ShutdownType; extern "C" { - pub static mut __MIDL_itf_objidl_0000_0087_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0089_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0087_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0089_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IProcessLock: IID; @@ -260174,10 +266929,10 @@ fn bindgen_test_layout_ISurrogateService() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0089_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0091_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0089_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0091_v0_0_s_ifspec: RPC_IF_HANDLE; } pub type LPINITIALIZESPY = *mut IInitializeSpy; extern "C" { @@ -260333,10 +267088,10 @@ fn bindgen_test_layout_IInitializeSpy() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0090_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0092_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0090_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0092_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub static IID_IApartmentShutdown: IID; @@ -260445,10 +267200,10 @@ fn bindgen_test_layout_IApartmentShutdown() { ); } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0091_v0_0_c_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0093_v0_0_c_ifspec: RPC_IF_HANDLE; } extern "C" { - pub static mut __MIDL_itf_objidl_0000_0091_v0_0_s_ifspec: RPC_IF_HANDLE; + pub static mut __MIDL_itf_objidl_0000_0093_v0_0_s_ifspec: RPC_IF_HANDLE; } extern "C" { pub fn ASYNC_STGMEDIUM_UserSize( @@ -297621,7 +304376,8 @@ pub const tagBINDSTATUS_BINDSTATUS_RESERVED_10: tagBINDSTATUS = 73; pub const tagBINDSTATUS_BINDSTATUS_RESERVED_11: tagBINDSTATUS = 74; pub const tagBINDSTATUS_BINDSTATUS_RESERVED_12: tagBINDSTATUS = 75; pub const tagBINDSTATUS_BINDSTATUS_RESERVED_13: tagBINDSTATUS = 76; -pub const tagBINDSTATUS_BINDSTATUS_LAST_PRIVATE: tagBINDSTATUS = 76; +pub const tagBINDSTATUS_BINDSTATUS_RESERVED_14: tagBINDSTATUS = 77; +pub const tagBINDSTATUS_BINDSTATUS_LAST_PRIVATE: tagBINDSTATUS = 77; pub type tagBINDSTATUS = ::std::os::raw::c_int; pub use self::tagBINDSTATUS as BINDSTATUS; extern "C" { @@ -318106,6 +324862,29 @@ extern "C" { lpcchRequiredBufferLength: *mut DWORD, ) -> DWORD; } +pub const SERVICE_SHARED_REGISTRY_STATE_TYPE_ServiceSharedRegistryPersistentState: + SERVICE_SHARED_REGISTRY_STATE_TYPE = 0; +pub type SERVICE_SHARED_REGISTRY_STATE_TYPE = ::std::os::raw::c_int; +extern "C" { + pub fn GetSharedServiceRegistryStateKey( + ServiceHandle: SC_HANDLE, + StateType: SERVICE_SHARED_REGISTRY_STATE_TYPE, + AccessMask: DWORD, + ServiceStateKey: *mut HKEY, + ) -> DWORD; +} +pub const SERVICE_SHARED_DIRECTORY_TYPE_ServiceSharedDirectoryPersistentState: + SERVICE_SHARED_DIRECTORY_TYPE = 0; +pub type SERVICE_SHARED_DIRECTORY_TYPE = ::std::os::raw::c_int; +extern "C" { + pub fn GetSharedServiceDirectory( + ServiceHandle: SC_HANDLE, + DirectoryType: SERVICE_SHARED_DIRECTORY_TYPE, + PathBuffer: PWCHAR, + PathBufferLength: DWORD, + RequiredBufferLength: *mut DWORD, + ) -> DWORD; +} #[repr(C)] #[derive(Debug, Copy, Clone)] pub struct _MODEMDEVCAPS { @@ -321979,6 +328758,533 @@ fn bindgen_test_layout_addrinfoex4() { pub type ADDRINFOEX4 = addrinfoex4; pub type PADDRINFOEX4 = *mut addrinfoex4; pub type LPADDRINFOEX4 = *mut addrinfoex4; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfoex5 { + pub ai_flags: ::std::os::raw::c_int, + pub ai_family: ::std::os::raw::c_int, + pub ai_socktype: ::std::os::raw::c_int, + pub ai_protocol: ::std::os::raw::c_int, + pub ai_addrlen: usize, + pub ai_canonname: PWSTR, + pub ai_addr: *mut sockaddr, + pub ai_blob: *mut ::std::os::raw::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut GUID, + pub ai_next: *mut addrinfoex5, + pub ai_version: ::std::os::raw::c_int, + pub ai_fqdn: PWSTR, + pub ai_interfaceindex: ::std::os::raw::c_int, + pub ai_resolutionhandle: HANDLE, + pub ai_ttl: ::std::os::raw::c_uint, +} +#[test] +fn bindgen_test_layout_addrinfoex5() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 112usize, + concat!("Size of: ", stringify!(addrinfoex5)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(addrinfoex5)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_family) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_family) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_socktype) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_socktype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_protocol) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_protocol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addrlen) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_addrlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_canonname) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_canonname) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addr) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_blob) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_blob) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_bloblen) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_bloblen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_provider) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_provider) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_next) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_version) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_fqdn) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_fqdn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_interfaceindex) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_interfaceindex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_resolutionhandle) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_resolutionhandle) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_ttl) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex5), + "::", + stringify!(ai_ttl) + ) + ); +} +pub type ADDRINFOEX5 = addrinfoex5; +pub type PADDRINFOEX5 = *mut addrinfoex5; +pub type LPADDRINFOEX5 = *mut addrinfoex5; +#[repr(C)] +#[derive(Copy, Clone)] +pub struct addrinfo_dns_server { + pub ai_servertype: ::std::os::raw::c_uint, + pub ai_flags: ::std::os::raw::c_ulonglong, + pub ai_addrlen: ::std::os::raw::c_uint, + pub ai_addr: *mut sockaddr, + pub __bindgen_anon_1: addrinfo_dns_server__bindgen_ty_1, +} +#[repr(C)] +#[derive(Copy, Clone)] +pub union addrinfo_dns_server__bindgen_ty_1 { + pub ai_template: PWSTR, +} +#[test] +fn bindgen_test_layout_addrinfo_dns_server__bindgen_ty_1() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 8usize, + concat!("Size of: ", stringify!(addrinfo_dns_server__bindgen_ty_1)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!( + "Alignment of ", + stringify!(addrinfo_dns_server__bindgen_ty_1) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_template) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_dns_server__bindgen_ty_1), + "::", + stringify!(ai_template) + ) + ); +} +#[test] +fn bindgen_test_layout_addrinfo_dns_server() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 40usize, + concat!("Size of: ", stringify!(addrinfo_dns_server)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(addrinfo_dns_server)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_servertype) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_dns_server), + "::", + stringify!(ai_servertype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_flags) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_dns_server), + "::", + stringify!(ai_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addrlen) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_dns_server), + "::", + stringify!(ai_addrlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addr) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(addrinfo_dns_server), + "::", + stringify!(ai_addr) + ) + ); +} +pub type ADDRINFO_DNS_SERVER = addrinfo_dns_server; +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct addrinfoex6 { + pub ai_flags: ::std::os::raw::c_int, + pub ai_family: ::std::os::raw::c_int, + pub ai_socktype: ::std::os::raw::c_int, + pub ai_protocol: ::std::os::raw::c_int, + pub ai_addrlen: usize, + pub ai_canonname: PWSTR, + pub ai_addr: *mut sockaddr, + pub ai_blob: *mut ::std::os::raw::c_void, + pub ai_bloblen: usize, + pub ai_provider: *mut GUID, + pub ai_next: *mut addrinfoex5, + pub ai_version: ::std::os::raw::c_int, + pub ai_fqdn: PWSTR, + pub ai_interfaceindex: ::std::os::raw::c_int, + pub ai_resolutionhandle: HANDLE, + pub ai_ttl: ::std::os::raw::c_uint, + pub ai_numservers: ::std::os::raw::c_uint, + pub ai_servers: *mut ADDRINFO_DNS_SERVER, + pub ai_responseflags: ULONG64, +} +#[test] +fn bindgen_test_layout_addrinfoex6() { + const UNINIT: ::std::mem::MaybeUninit = ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 128usize, + concat!("Size of: ", stringify!(addrinfoex6)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(addrinfoex6)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_flags) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_flags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_family) as usize - ptr as usize }, + 4usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_family) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_socktype) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_socktype) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_protocol) as usize - ptr as usize }, + 12usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_protocol) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addrlen) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_addrlen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_canonname) as usize - ptr as usize }, + 24usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_canonname) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_addr) as usize - ptr as usize }, + 32usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_addr) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_blob) as usize - ptr as usize }, + 40usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_blob) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_bloblen) as usize - ptr as usize }, + 48usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_bloblen) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_provider) as usize - ptr as usize }, + 56usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_provider) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_next) as usize - ptr as usize }, + 64usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_next) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_version) as usize - ptr as usize }, + 72usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_version) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_fqdn) as usize - ptr as usize }, + 80usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_fqdn) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_interfaceindex) as usize - ptr as usize }, + 88usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_interfaceindex) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_resolutionhandle) as usize - ptr as usize }, + 96usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_resolutionhandle) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_ttl) as usize - ptr as usize }, + 104usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_ttl) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_numservers) as usize - ptr as usize }, + 108usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_numservers) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_servers) as usize - ptr as usize }, + 112usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_servers) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).ai_responseflags) as usize - ptr as usize }, + 120usize, + concat!( + "Offset of field: ", + stringify!(addrinfoex6), + "::", + stringify!(ai_responseflags) + ) + ); +} +pub type ADDRINFOEX6 = addrinfoex6; +pub type PADDRINFOEX6 = *mut addrinfoex6; pub type SOCKET = UINT_PTR; #[repr(C)] #[derive(Debug, Copy, Clone)] @@ -325921,6 +333227,103 @@ extern "C" { extern "C" { pub fn WSAPoll(fdArray: LPWSAPOLLFD, fds: ULONG, timeout: INT) -> ::std::os::raw::c_int; } +#[repr(C)] +#[derive(Debug, Copy, Clone)] +pub struct SOCK_NOTIFY_REGISTRATION { + pub socket: SOCKET, + pub completionKey: PVOID, + pub eventFilter: UINT16, + pub operation: UINT8, + pub triggerFlags: UINT8, + pub registrationResult: DWORD, +} +#[test] +fn bindgen_test_layout_SOCK_NOTIFY_REGISTRATION() { + const UNINIT: ::std::mem::MaybeUninit = + ::std::mem::MaybeUninit::uninit(); + let ptr = UNINIT.as_ptr(); + assert_eq!( + ::std::mem::size_of::(), + 24usize, + concat!("Size of: ", stringify!(SOCK_NOTIFY_REGISTRATION)) + ); + assert_eq!( + ::std::mem::align_of::(), + 8usize, + concat!("Alignment of ", stringify!(SOCK_NOTIFY_REGISTRATION)) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).socket) as usize - ptr as usize }, + 0usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(socket) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).completionKey) as usize - ptr as usize }, + 8usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(completionKey) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).eventFilter) as usize - ptr as usize }, + 16usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(eventFilter) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).operation) as usize - ptr as usize }, + 18usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(operation) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).triggerFlags) as usize - ptr as usize }, + 19usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(triggerFlags) + ) + ); + assert_eq!( + unsafe { ::std::ptr::addr_of!((*ptr).registrationResult) as usize - ptr as usize }, + 20usize, + concat!( + "Offset of field: ", + stringify!(SOCK_NOTIFY_REGISTRATION), + "::", + stringify!(registrationResult) + ) + ); +} +extern "C" { + pub fn ProcessSocketNotifications( + completionPort: HANDLE, + registrationCount: UINT32, + registrationInfos: *mut SOCK_NOTIFY_REGISTRATION, + timeoutMs: UINT32, + completionCount: ULONG, + completionPortEntries: *mut OVERLAPPED_ENTRY, + receivedEntryCount: *mut UINT32, + ) -> DWORD; +} pub type LPSOCKADDR_IN = *mut sockaddr_in; pub type LINGER = linger; pub type PLINGER = *mut linger; diff --git a/csbindgen/src/alias_map.rs b/csbindgen/src/alias_map.rs index 370b08b..96fdf1f 100644 --- a/csbindgen/src/alias_map.rs +++ b/csbindgen/src/alias_map.rs @@ -84,6 +84,13 @@ impl AliasMap { None => None, } } + + pub fn get_mapped_name_or_self(&self, name: &String) -> String { + match self.get_mapped_value(name) { + Some(x) => x.type_name.to_owned(), + None => name.to_owned(), + } + } } #[cfg(test)] diff --git a/csbindgen/src/emitter.rs b/csbindgen/src/emitter.rs index 1d4525d..aef1032 100644 --- a/csbindgen/src/emitter.rs +++ b/csbindgen/src/emitter.rs @@ -214,6 +214,7 @@ pub fn emit_csharp( // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; diff --git a/csbindgen/src/field_map.rs b/csbindgen/src/field_map.rs new file mode 100644 index 0000000..9464749 --- /dev/null +++ b/csbindgen/src/field_map.rs @@ -0,0 +1,58 @@ +use std::{ + cell::RefCell, + collections::{HashMap, HashSet}, +}; + +#[derive(Clone, Debug)] +pub struct FieldMap { + fields: HashMap>>, // field_type_name -> DeclaringType(s) +} + +impl FieldMap { + pub fn new() -> Self { + Self { + fields: HashMap::new(), + } + } + + // type_name must be normalized + pub fn insert(&mut self, type_name: &String, field_type: &String) { + match self.fields.get(field_type) { + Some(x) => { + x.borrow_mut().insert(type_name.to_owned()); + } + None => { + let map = RefCell::new(HashSet::new()); + map.borrow_mut().insert(type_name.to_owned()); + + self.fields.insert(field_type.to_owned(), map); + } + } + } + + pub fn exists_in_using_types( + &self, + struct_name: &String, + using_types: &HashSet, + recursive_count: i32, // detect recrusive reference + ) -> bool { + if recursive_count >= 10 { + return false; + } + + if using_types.contains(struct_name) { + return true; + } + + // try to find declaring types + if let Some(x) = self.fields.get(struct_name) { + for name in x.borrow().iter() { + if self.exists_in_using_types(name, using_types, recursive_count + 1) { + return true; + } + } + } + + false + } +} diff --git a/csbindgen/src/lib.rs b/csbindgen/src/lib.rs index 61e94c9..f1d3b69 100644 --- a/csbindgen/src/lib.rs +++ b/csbindgen/src/lib.rs @@ -1,6 +1,7 @@ mod alias_map; mod builder; mod emitter; +mod field_map; mod parser; mod type_meta; mod util; @@ -9,6 +10,7 @@ pub use builder::Builder; use builder::BindgenOptions; use emitter::*; +use field_map::FieldMap; use parser::*; use std::{collections::HashSet, error::Error}; @@ -37,26 +39,31 @@ pub(crate) fn generate( let structs = collect_struct(&file_ast); let enums = collect_enum(&file_ast); + // collect using_types let mut using_types = HashSet::new(); for method in &methods { + // add to using_types with normalize if let Some(x) = &method.return_type { - using_types.insert(x.type_name.clone()); + let normalized = aliases.get_mapped_name_or_self(&x.type_name); + using_types.insert(normalized.clone()); } for p in &method.parameters { - using_types.insert(p.rust_type.type_name.clone()); + let normalized = aliases.get_mapped_name_or_self(&p.rust_type.type_name); + using_types.insert(normalized); } } - for item in &structs { - if using_types.contains(&item.struct_name) { - for item in &item.fields { - using_types.insert(item.rust_type.type_name.clone()); - } + let mut field_map = FieldMap::new(); + for struct_type in &structs { + for field in &struct_type.fields { + let struct_type_normalized = aliases.get_mapped_name_or_self(&struct_type.struct_name); + let field_type_normalized = aliases.get_mapped_name_or_self(&field.rust_type.type_name); + field_map.insert(&struct_type_normalized, &field_type_normalized); } } - let structs = reduce_struct(&structs, &using_types); - let enums = reduce_enum(&enums, &using_types); + let structs = reduce_struct(&structs, &field_map, &using_types); + let enums = reduce_enum(&enums, &field_map, &using_types); let rust = if generate_rust { Some(emit_rust_method(&methods, options)) @@ -68,16 +75,18 @@ pub(crate) fn generate( Ok((rust, csharp)) } -// #[test] -// fn test() { -// let path = std::env::current_dir().unwrap(); -// println!("starting dir: {}", path.display()); // csbindgen/csbindgen +#[test] +fn test() { + let path = std::env::current_dir().unwrap(); + println!("starting dir: {}", path.display()); // csbindgen/csbindgen -// Builder::new() -// .input_bindgen_file("../csbindgen-tests/src/quiche.rs") -// .rust_method_prefix("csbindgen_quiche_") -// .csharp_class_name("LibQuiche") -// .csharp_dll_name("libquiche") -// .generate_to_file("../csbindgen-tests/src/quiche_ffi.rs", "../csbindgen-tests/../dotnet-sandbox/quiche_bindgen.cs") -// .unwrap(); -// } + Builder::new() + .input_bindgen_file("csbindgen-tests/src/lz4.rs") + .csharp_class_name("LibLz4") + .csharp_dll_name("csbindgen_tests") + .generate_to_file( + "csbindgen-tests/src/lz4_ffi.rs", + "dotnet-sandbox/lz4_bindgen.cs", + ) + .unwrap(); +} diff --git a/csbindgen/src/parser.rs b/csbindgen/src/parser.rs index be91319..8bff2db 100644 --- a/csbindgen/src/parser.rs +++ b/csbindgen/src/parser.rs @@ -1,4 +1,4 @@ -use crate::{alias_map::AliasMap, builder::BindgenOptions, type_meta::*}; +use crate::{alias_map::AliasMap, builder::BindgenOptions, field_map::FieldMap, type_meta::*}; use std::collections::HashSet; use syn::{ForeignItem, Item, Pat, ReturnType}; @@ -227,10 +227,14 @@ pub fn collect_enum(ast: &syn::File) -> Vec { result } -pub fn reduce_struct(structs: &Vec, using_types: &HashSet) -> Vec { +pub fn reduce_struct( + structs: &Vec, + field_map: &FieldMap, + using_types: &HashSet, +) -> Vec { let mut result = Vec::new(); for item in structs { - if using_types.contains(&item.struct_name) { + if field_map.exists_in_using_types(&item.struct_name, using_types, 0) { result.push(item.clone()); } } @@ -238,10 +242,14 @@ pub fn reduce_struct(structs: &Vec, using_types: &HashSet) - result } -pub fn reduce_enum(enums: &Vec, using_types: &HashSet) -> Vec { +pub fn reduce_enum( + enums: &Vec, + field_map: &FieldMap, + using_types: &HashSet, +) -> Vec { let mut result = Vec::new(); for item in enums { - if using_types.contains(&item.enum_name) { + if field_map.exists_in_using_types(&item.enum_name, using_types, 0) { result.push(item.clone()); } } diff --git a/dotnet-sandbox/CsbindgenDotnetConsoleApp.csproj b/dotnet-sandbox/CsbindgenDotnetConsoleApp.csproj index 890666e..f5e0449 100644 --- a/dotnet-sandbox/CsbindgenDotnetConsoleApp.csproj +++ b/dotnet-sandbox/CsbindgenDotnetConsoleApp.csproj @@ -8,6 +8,13 @@ true + + + + Always diff --git a/dotnet-sandbox/Program.cs b/dotnet-sandbox/Program.cs index d35b757..c24c2e0 100644 --- a/dotnet-sandbox/Program.cs +++ b/dotnet-sandbox/Program.cs @@ -13,6 +13,10 @@ using System.Text; unsafe { + + LibRust.call_bindgen_lz4(); + + [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })] static int Method(int x) => x * x; diff --git a/dotnet-sandbox/bullet3_bindgen.cs b/dotnet-sandbox/bullet3_bindgen.cs index 9c5e028..141e6ba 100644 --- a/dotnet-sandbox/bullet3_bindgen.cs +++ b/dotnet-sandbox/bullet3_bindgen.cs @@ -2,6 +2,7 @@ // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; @@ -1767,6 +1768,24 @@ namespace CsBindgen public fixed byte/* b3ForwardDynamicsAnalyticsIslandData, this length is invalid so must keep pointer and can't edit from C# */ m_islandData[64]; } + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct b3PhysicsClientHandle__ + { + public int unused; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct b3SharedMemoryCommandHandle__ + { + public int unused; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct b3SharedMemoryStatusHandle__ + { + public int unused; + } + } diff --git a/dotnet-sandbox/lz4_bindgen.cs b/dotnet-sandbox/lz4_bindgen.cs index 636dfd2..aa9abc5 100644 --- a/dotnet-sandbox/lz4_bindgen.cs +++ b/dotnet-sandbox/lz4_bindgen.cs @@ -2,6 +2,7 @@ // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; @@ -332,6 +333,70 @@ namespace CsBindgen } + [StructLayout(LayoutKind.Sequential)] + public unsafe partial struct LZ4_stream_t_internal + { + public fixed uint hashTable[4096]; + public byte* dictionary; + public LZ4_stream_t_internal* dictCtx; + public uint currentOffset; + public uint tableType; + public uint dictSize; + } + + [StructLayout(LayoutKind.Explicit)] + public unsafe partial struct LZ4_stream_u + { + [FieldOffset(0)] + public fixed byte minStateSize[16416]; + [FieldOffset(0)] + public LZ4_stream_t_internal internal_donotuse; + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe partial struct LZ4_streamDecode_t_internal + { + public byte* externalDict; + public byte* prefixEnd; + public UIntPtr extDictSize; + public UIntPtr prefixSize; + } + + [StructLayout(LayoutKind.Explicit)] + public unsafe partial struct LZ4_streamDecode_u + { + [FieldOffset(0)] + public fixed byte minStateSize[32]; + [FieldOffset(0)] + public LZ4_streamDecode_t_internal internal_donotuse; + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe partial struct LZ4HC_CCtx_internal + { + public fixed uint hashTable[32768]; + public fixed ushort chainTable[65536]; + public byte* end; + public byte* prefixStart; + public byte* dictStart; + public uint dictLimit; + public uint lowLimit; + public uint nextToUpdate; + public short compressionLevel; + public sbyte favorDecSpeed; + public sbyte dirty; + public LZ4HC_CCtx_internal* dictCtx; + } + + [StructLayout(LayoutKind.Explicit)] + public unsafe partial struct LZ4_streamHC_u + { + [FieldOffset(0)] + public fixed byte minStateSize[262200]; + [FieldOffset(0)] + public LZ4HC_CCtx_internal internal_donotuse; + } + [StructLayout(LayoutKind.Sequential)] public unsafe partial struct LZ4F_frameInfo_t { @@ -354,6 +419,12 @@ namespace CsBindgen public fixed uint reserved[3]; } + [StructLayout(LayoutKind.Sequential)] + public unsafe partial struct LZ4F_cctx_s + { + public fixed byte _unused[1]; + } + [StructLayout(LayoutKind.Sequential)] public unsafe partial struct LZ4F_compressOptions_t { @@ -361,6 +432,12 @@ namespace CsBindgen public fixed uint reserved[3]; } + [StructLayout(LayoutKind.Sequential)] + public unsafe partial struct LZ4F_dctx_s + { + public fixed byte _unused[1]; + } + [StructLayout(LayoutKind.Sequential)] public unsafe partial struct LZ4F_decompressOptions_t { diff --git a/dotnet-sandbox/method_call.cs b/dotnet-sandbox/method_call.cs index 2fe2f09..0753a16 100644 --- a/dotnet-sandbox/method_call.cs +++ b/dotnet-sandbox/method_call.cs @@ -2,6 +2,7 @@ // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; @@ -78,6 +79,9 @@ namespace CsBindgen [DllImport(__DllName, EntryPoint = "call_bindgen", CallingConvention = CallingConvention.Cdecl)] public static extern void call_bindgen(); + [DllImport(__DllName, EntryPoint = "call_bindgen_lz4", CallingConvention = CallingConvention.Cdecl)] + public static extern void call_bindgen_lz4(); + } diff --git a/dotnet-sandbox/quiche_bindgen.cs b/dotnet-sandbox/quiche_bindgen.cs index 29de5ed..381fc2a 100644 --- a/dotnet-sandbox/quiche_bindgen.cs +++ b/dotnet-sandbox/quiche_bindgen.cs @@ -2,6 +2,7 @@ // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; diff --git a/dotnet-sandbox/zstd_bindgen.cs b/dotnet-sandbox/zstd_bindgen.cs index a55d2e6..d3d2cc3 100644 --- a/dotnet-sandbox/zstd_bindgen.cs +++ b/dotnet-sandbox/zstd_bindgen.cs @@ -2,6 +2,7 @@ // This code is generated by csbindgen. // DON'T CHANGE THIS DIRECTLY. // +#pragma warning disable CS8981 using System; using System.Runtime.InteropServices; @@ -254,6 +255,18 @@ namespace CsBindgen } + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_CCtx_s + { + public fixed byte _unused[1]; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_DCtx_s + { + public fixed byte _unused[1]; + } + [StructLayout(LayoutKind.Sequential)] internal unsafe partial struct ZSTD_bounds { @@ -262,6 +275,34 @@ namespace CsBindgen public int upperBound; } + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_inBuffer_s + { + public void* src; + public UIntPtr size; + public UIntPtr pos; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_outBuffer_s + { + public void* dst; + public UIntPtr size; + public UIntPtr pos; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_CDict_s + { + public fixed byte _unused[1]; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe partial struct ZSTD_DDict_s + { + public fixed byte _unused[1]; + } + }