From c4c6569436fb0319104eda97ad9e06ec1c85157d Mon Sep 17 00:00:00 2001 From: albab-hasan Date: Wed, 2 Sep 2026 12:18:39 +0600 Subject: [PATCH 01/24] mention the opaque when its hidden type cannot be inferred when the hidden type of an opaque was never constrained, typeck reported E0282 with only the shared cannot infer type label. nothing in the output said an opaque was involved, so the error read like an ordinary local inference failure. the unconstrained hidden type arm now adds a note naming the opaque as the source of the ambiguity. fixes https://github.com/rust-lang/rust/issues/146231 --- compiler/rustc_hir_typeck/src/opaque_types.rs | 4 ++++ ...mbig-hr-projection-issue-93340.next.stderr | 1 + ...-method-resolution-opaque-type.next.stderr | 1 + .../auto-trait-selection-freeze.next.stderr | 1 + .../auto-trait-selection.next.stderr | 1 + .../ice-issue-146191.next.stderr | 2 ++ ...ained-hidden-type-issue-146231.next.stderr | 11 ++++++++++ .../unconstrained-hidden-type-issue-146231.rs | 20 +++++++++++++++++++ .../recursive-in-exhaustiveness.next.stderr | 4 ++++ .../two_tait_defining_each_other2.next.stderr | 2 ++ ...e_of-tait-in-defining-scope.is_send.stderr | 2 ++ ..._of-tait-in-defining-scope.not_send.stderr | 2 ++ ...ursive-hidden-type-canonicalization.stderr | 1 + .../constrain_in_projection2.next.stderr | 2 ++ .../issue-84660-unsoundness.next.stderr | 2 ++ ...ution_trait_method_from_opaque.next.stderr | 1 + .../nested-tait-inference2.next.stderr | 2 ++ 17 files changed, 59 insertions(+) create mode 100644 tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.next.stderr create mode 100644 tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.rs diff --git a/compiler/rustc_hir_typeck/src/opaque_types.rs b/compiler/rustc_hir_typeck/src/opaque_types.rs index 17e193d7f44ab..ae46378cd8241 100644 --- a/compiler/rustc_hir_typeck/src/opaque_types.rs +++ b/compiler/rustc_hir_typeck/src/opaque_types.rs @@ -198,6 +198,10 @@ impl<'tcx> FnCtxt<'_, 'tcx> { TypeAnnotationNeeded::E0282, false, ) + // The shared E0282 label only says "cannot infer type", which gives no + // hint that the ambiguity is in an opaque's hidden type rather than an + // ordinary local inference failure. + .with_note("cannot infer type of hidden type of opaque") .emit() } } diff --git a/tests/ui/generic-associated-types/ambig-hr-projection-issue-93340.next.stderr b/tests/ui/generic-associated-types/ambig-hr-projection-issue-93340.next.stderr index d6294efbd2803..d2ed88c1125ba 100644 --- a/tests/ui/generic-associated-types/ambig-hr-projection-issue-93340.next.stderr +++ b/tests/ui/generic-associated-types/ambig-hr-projection-issue-93340.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed LL | cmp_eq | ^^^^^^ cannot infer type of the type parameter `A` declared on the function `cmp_eq` | + = note: cannot infer type of hidden type of opaque help: consider specifying the generic arguments | LL | cmp_eq:: diff --git a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr index 723dd097f9b97..dd8375c8b9409 100644 --- a/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr +++ b/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/norm-before-method-resolution-opaque-type.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed for `>::Out<_>` LL | let x = *x; | ^ | + = note: cannot infer type of hidden type of opaque help: consider giving `x` an explicit type, where the placeholders `_` are specified | LL | let x: <_ as Trait<'static>>::Out<_> = *x; diff --git a/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr b/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr index 7170efc863870..d52cd6833c342 100644 --- a/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr +++ b/tests/ui/impl-trait/auto-trait-selection-freeze.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `is_trait` | + = note: cannot infer type of hidden type of opaque help: consider specifying the generic arguments | LL | if false { is_trait::(foo()) } else { Default::default() } diff --git a/tests/ui/impl-trait/auto-trait-selection.next.stderr b/tests/ui/impl-trait/auto-trait-selection.next.stderr index 0f33aca301914..ec65bdc48a089 100644 --- a/tests/ui/impl-trait/auto-trait-selection.next.stderr +++ b/tests/ui/impl-trait/auto-trait-selection.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed LL | if false { is_trait(foo()) } else { Default::default() } | ^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `is_trait` | + = note: cannot infer type of hidden type of opaque help: consider specifying the generic arguments | LL | if false { is_trait::(foo()) } else { Default::default() } diff --git a/tests/ui/impl-trait/non-defining-uses/ice-issue-146191.next.stderr b/tests/ui/impl-trait/non-defining-uses/ice-issue-146191.next.stderr index e146d492155f0..b6a953d218be4 100644 --- a/tests/ui/impl-trait/non-defining-uses/ice-issue-146191.next.stderr +++ b/tests/ui/impl-trait/non-defining-uses/ice-issue-146191.next.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | fn create_complex_future() -> impl Future { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error diff --git a/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.next.stderr b/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.next.stderr new file mode 100644 index 0000000000000..39900da55df78 --- /dev/null +++ b/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.next.stderr @@ -0,0 +1,11 @@ +error[E0282]: type annotations needed + --> $DIR/unconstrained-hidden-type-issue-146231.rs:15:24 + | +LL | fn recursive_rpit() -> impl Sized { + | ^^^^^^^^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0282`. diff --git a/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.rs b/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.rs new file mode 100644 index 0000000000000..a60fe5a20eaca --- /dev/null +++ b/tests/ui/impl-trait/non-defining-uses/unconstrained-hidden-type-issue-146231.rs @@ -0,0 +1,20 @@ +//@ revisions: current next +//@[current] check-pass +//@[next] compile-flags: -Znext-solver +//@ ignore-compare-mode-next-solver (explicit revisions) + +// The only use of the opaque below is the recursive call, so nothing ever +// constrains its hidden type. The error has to say that the ambiguity is in +// the opaque's hidden type, otherwise it reads as an ordinary inference +// failure and gives no hint that an opaque is involved at all. +// +// Only the next solver reports this; the old solver accepts the item. + +#![allow(unconditional_recursion)] + +fn recursive_rpit() -> impl Sized { + //[next]~^ ERROR type annotations needed + recursive_rpit() +} + +fn main() {} diff --git a/tests/ui/impl-trait/recursive-in-exhaustiveness.next.stderr b/tests/ui/impl-trait/recursive-in-exhaustiveness.next.stderr index 59bcdd9f3cea2..878e10557f26a 100644 --- a/tests/ui/impl-trait/recursive-in-exhaustiveness.next.stderr +++ b/tests/ui/impl-trait/recursive-in-exhaustiveness.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed for `(_,)` LL | let (x,) = (build(x),); | ^^^^ | + = note: cannot infer type of hidden type of opaque help: consider giving this pattern a type, where the placeholder `_` is specified | LL | let (x,): (_,) = (build(x),); @@ -15,6 +16,7 @@ error[E0282]: type annotations needed for `((_,),)` LL | let (x,) = (build2(x),); | ^^^^ | + = note: cannot infer type of hidden type of opaque help: consider giving this pattern a type, where the placeholder `_` is specified | LL | let (x,): ((_,),) = (build2(x),); @@ -25,6 +27,8 @@ error[E0282]: type annotations needed | LL | fn build3(x: T) -> impl Sized { | ^^^^^^^^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 3 previous errors diff --git a/tests/ui/impl-trait/two_tait_defining_each_other2.next.stderr b/tests/ui/impl-trait/two_tait_defining_each_other2.next.stderr index fac4776905d06..a2d25fafb2a0b 100644 --- a/tests/ui/impl-trait/two_tait_defining_each_other2.next.stderr +++ b/tests/ui/impl-trait/two_tait_defining_each_other2.next.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | fn muh(x: A) -> B { | ^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error diff --git a/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.is_send.stderr b/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.is_send.stderr index 84f9d784b042c..fc285abc9fe40 100644 --- a/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.is_send.stderr +++ b/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.is_send.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | needs_send::(); | ^^^^^^^^^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `needs_send` + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error diff --git a/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.not_send.stderr b/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.not_send.stderr index 84f9d784b042c..fc285abc9fe40 100644 --- a/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.not_send.stderr +++ b/tests/ui/traits/next-solver/opaques/dont-type_of-tait-in-defining-scope.not_send.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | needs_send::(); | ^^^^^^^^^^^^^^^^^ cannot infer type of the type parameter `T` declared on the function `needs_send` + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error diff --git a/tests/ui/traits/next-solver/opaques/recursive-hidden-type-canonicalization.stderr b/tests/ui/traits/next-solver/opaques/recursive-hidden-type-canonicalization.stderr index b3b173def6a01..d6fc9584ef516 100644 --- a/tests/ui/traits/next-solver/opaques/recursive-hidden-type-canonicalization.stderr +++ b/tests/ui/traits/next-solver/opaques/recursive-hidden-type-canonicalization.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed for `*mut _` LL | let r = random_paulis().unwrap(); | ^ | + = note: cannot infer type of hidden type of opaque help: consider giving `r` an explicit type, where the placeholder `_` is specified | LL | let r: *mut _ = random_paulis().unwrap(); diff --git a/tests/ui/type-alias-impl-trait/constrain_in_projection2.next.stderr b/tests/ui/type-alias-impl-trait/constrain_in_projection2.next.stderr index b8fe2f8e35628..3862479fee380 100644 --- a/tests/ui/type-alias-impl-trait/constrain_in_projection2.next.stderr +++ b/tests/ui/type-alias-impl-trait/constrain_in_projection2.next.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | let x = >::Assoc::default(); | ^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error diff --git a/tests/ui/type-alias-impl-trait/issue-84660-unsoundness.next.stderr b/tests/ui/type-alias-impl-trait/issue-84660-unsoundness.next.stderr index 3399c85a3034e..d025a821d1b45 100644 --- a/tests/ui/type-alias-impl-trait/issue-84660-unsoundness.next.stderr +++ b/tests/ui/type-alias-impl-trait/issue-84660-unsoundness.next.stderr @@ -12,6 +12,8 @@ error[E0282]: type annotations needed | LL | fn convert(_i: In) -> Self::Out { | ^^^^^^^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 2 previous errors diff --git a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr index 37bde4b18a45b..0c1e6a997ffec 100644 --- a/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr +++ b/tests/ui/type-alias-impl-trait/method_resolution_trait_method_from_opaque.next.stderr @@ -4,6 +4,7 @@ error[E0282]: type annotations needed LL | self.bar.next().unwrap(); | ^^^^ | + = note: cannot infer type of hidden type of opaque help: try using a fully qualified path to specify the expected types | LL - self.bar.next().unwrap(); diff --git a/tests/ui/type-alias-impl-trait/nested-tait-inference2.next.stderr b/tests/ui/type-alias-impl-trait/nested-tait-inference2.next.stderr index f70e4d4cae29e..9e8857201e72c 100644 --- a/tests/ui/type-alias-impl-trait/nested-tait-inference2.next.stderr +++ b/tests/ui/type-alias-impl-trait/nested-tait-inference2.next.stderr @@ -3,6 +3,8 @@ error[E0282]: type annotations needed | LL | fn foo() -> impl Foo { | ^^^^^^^^^^^^^^ cannot infer type + | + = note: cannot infer type of hidden type of opaque error: aborting due to 1 previous error From 9bce023c1fa35d7900949d73a617879912cde9fc Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 4 Sep 2026 01:47:20 +0000 Subject: [PATCH 02/24] Upgrade windows-bindgen in generate-windows-sys --- Cargo.lock | 23 ++++++-- .../std/src/sys/pal/windows/c/bindings.txt | 58 ++++--------------- src/tools/generate-windows-sys/Cargo.toml | 2 +- src/tools/generate-windows-sys/src/main.rs | 4 +- 4 files changed, 32 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b398d06c347df..4b2697c8988dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6557,13 +6557,14 @@ dependencies = [ [[package]] name = "windows-bindgen" -version = "0.66.0" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b7ec123a4eadd44d1f44f76804316b477b2537abed9a2ab950b3c54afa1fcf" +checksum = "c6bb7c22ca81c6dc1554fd328c12697b4b0ad5c45081df2c3c9a3f89cc467da2" dependencies = [ - "serde", - "serde_json", - "windows-threading 0.2.1", + "proc-macro2", + "quote", + "windows-default", + "windows-metadata", ] [[package]] @@ -6610,6 +6611,12 @@ dependencies = [ "windows-strings 0.5.1", ] +[[package]] +name = "windows-default" +version = "0.100.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4882bb065b03115aa8891d44d076bbe843d286d8bfd0b55caaa4b049141a712" + [[package]] name = "windows-future" version = "0.2.1" @@ -6666,6 +6673,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-metadata" +version = "0.100.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d3a758dc1da4ae61aa7f93afbb505d564c72dd6431e513ed581377857896a72" + [[package]] name = "windows-numerics" version = "0.2.0" diff --git a/library/std/src/sys/pal/windows/c/bindings.txt b/library/std/src/sys/pal/windows/c/bindings.txt index c4c4ac8c7d06e..64751b13f9e79 100644 --- a/library/std/src/sys/pal/windows/c/bindings.txt +++ b/library/std/src/sys/pal/windows/c/bindings.txt @@ -1,8 +1,6 @@ --out windows_sys.rs --flat --sys ---no-deps ---link windows_link --filter !INVALID_HANDLE_VALUE ABOVE_NORMAL_PRIORITY_CLASS @@ -26,10 +24,9 @@ CALLBACK_STREAM_SWITCH CancelIo CloseHandle closesocket -COMPARESTRING_RESULT CompareStringOrdinal +CONDITION_VARIABLE connect -CONSOLE_MODE CONSOLE_READCONSOLE_CONTROL CONTEXT CopyFileExW @@ -253,7 +250,6 @@ DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED DNS_ERROR_ZONESCOPE_IS_REFERENCED DUPLICATE_CLOSE_SOURCE -DUPLICATE_HANDLE_OPTIONS DUPLICATE_SAME_ACCESS DuplicateHandle E_NOTIMPL @@ -1966,13 +1962,11 @@ ExceptionContinueSearch ExceptionNestedException ExitProcess EXTENDED_STARTUPINFO_PRESENT -FACILITY_CODE FACILITY_NT_BIT FALSE FARPROC FAST_FAIL_FATAL_APP_EXIT FD_SET -FILE_ACCESS_RIGHTS FILE_ADD_FILE FILE_ADD_SUBDIRECTORY FILE_ALL_ACCESS @@ -2008,7 +2002,6 @@ FILE_CONTAINS_EXTENDED_CREATE_INFORMATION FILE_CREATE FILE_CREATE_PIPE_INSTANCE FILE_CREATE_TREE_CONNECTION -FILE_CREATION_DISPOSITION FILE_CURRENT FILE_DELETE_CHILD FILE_DELETE_ON_CLOSE @@ -2022,7 +2015,6 @@ FILE_DISPOSITION_FLAG_ON_CLOSE FILE_DISPOSITION_FLAG_POSIX_SEMANTICS FILE_DISPOSITION_INFO FILE_DISPOSITION_INFO_EX -FILE_DISPOSITION_INFO_EX_FLAGS FILE_END FILE_END_OF_FILE_INFO FILE_EXECUTE @@ -2038,7 +2030,6 @@ FILE_FLAG_RANDOM_ACCESS FILE_FLAG_SEQUENTIAL_SCAN FILE_FLAG_SESSION_AWARE FILE_FLAG_WRITE_THROUGH -FILE_FLAGS_AND_ATTRIBUTES FILE_GENERIC_EXECUTE FILE_GENERIC_READ FILE_GENERIC_WRITE @@ -2048,6 +2039,7 @@ FILE_IO_PRIORITY_HINT_INFO FILE_LIST_DIRECTORY FILE_NAME_NORMALIZED FILE_NAME_OPENED +FILE_NO_COMPRESSION FILE_NO_EA_KNOWLEDGE FILE_NO_INTERMEDIATE_BUFFERING FILE_NON_DIRECTORY_FILE @@ -2056,6 +2048,7 @@ FILE_OPEN_BY_FILE_ID FILE_OPEN_FOR_BACKUP_INTENT FILE_OPEN_FOR_FREE_SPACE_QUERY FILE_OPEN_IF +FILE_OPEN_NO_RECALL FILE_OPEN_REPARSE_POINT FILE_OPEN_REQUIRING_OPLOCK FILE_OVERWRITE @@ -2080,8 +2073,6 @@ FILE_RESERVE_OPFILTER FILE_SEQUENTIAL_ONLY FILE_SESSION_AWARE FILE_SHARE_DELETE -FILE_SHARE_MODE -FILE_SHARE_NONE FILE_SHARE_READ FILE_SHARE_WRITE FILE_STANDARD_INFO @@ -2089,7 +2080,6 @@ FILE_SUPERSEDE FILE_SYNCHRONOUS_IO_ALERT FILE_SYNCHRONOUS_IO_NONALERT FILE_TRAVERSE -FILE_TYPE FILE_TYPE_CHAR FILE_TYPE_DISK FILE_TYPE_PIPE @@ -2133,6 +2123,7 @@ FindExSearchNameMatch FindFirstFileExW FindNextFileW FIONBIO +FLOATING_SAVE_AREA FLS_OUT_OF_INDEXES FlsAlloc FlsFree @@ -2145,14 +2136,12 @@ FORMAT_MESSAGE_FROM_HMODULE FORMAT_MESSAGE_FROM_STRING FORMAT_MESSAGE_FROM_SYSTEM FORMAT_MESSAGE_IGNORE_INSERTS -FORMAT_MESSAGE_OPTIONS FormatMessageW freeaddrinfo FreeEnvironmentStringsW FRS_ERR_SYSVOL_POPULATE_TIMEOUT FSCTL_GET_REPARSE_POINT FSCTL_SET_REPARSE_POINT -GENERIC_ACCESS_RIGHTS GENERIC_ALL GENERIC_EXECUTE GENERIC_READ @@ -2177,7 +2166,6 @@ GetFileInformationByHandle GetFileInformationByHandleEx GetFileSizeEx GetFileType -GETFINALPATHNAMEBYHANDLE_FLAGS GetFinalPathNameByHandleW GetFullPathNameW GetLastError @@ -2203,7 +2191,6 @@ GetWindowsDirectoryW HANDLE HANDLE_FLAG_INHERIT HANDLE_FLAG_PROTECT_FROM_CLOSE -HANDLE_FLAGS HIGH_PRIORITY_CLASS HMODULE IDLE_PRIORITY_CLASS @@ -2212,6 +2199,7 @@ IN_ADDR INFINITE INHERIT_CALLER_PRIORITY INHERIT_PARENT_AFFINITY +INIT_ONCE INIT_ONCE_INIT_FAILED InitializeProcThreadAttributeList InitOnceBeginInitialize @@ -2280,7 +2268,6 @@ LockFileEx LPOVERLAPPED_COMPLETION_ROUTINE LPPROC_THREAD_ATTRIBUTE_LIST LPPROGRESS_ROUTINE -LPPROGRESS_ROUTINE_CALLBACK_REASON LPTHREAD_START_ROUTINE LPWSAOVERLAPPED_COMPLETION_ROUTINE lstrlenW @@ -2292,7 +2279,6 @@ MB_COMPOSITE MB_ERR_INVALID_CHARS MB_PRECOMPOSED MB_USEGLYPHCHARS -MOVE_FILE_FLAGS MOVEFILE_COPY_ALLOWED MOVEFILE_CREATE_HARDLINK MOVEFILE_DELAY_UNTIL_REBOOT @@ -2305,18 +2291,13 @@ MSG_OOB MSG_PEEK MSG_PUSH_IMMEDIATE MSG_WAITALL -MULTI_BYTE_TO_WIDE_CHAR_FLAGS MultiByteToWideChar -NAMED_PIPE_MODE NO_ERROR NORMAL_PRIORITY_CLASS NtCreateFile -NTCREATEFILE_CREATE_DISPOSITION -NTCREATEFILE_CREATE_OPTIONS NtOpenFile NtReadFile NtSetInformationFile -NTSTATUS NtWriteFile OBJ_CASE_INSENSITIVE OBJ_DONT_REPARSE @@ -2346,11 +2327,9 @@ PIPE_SERVER_END PIPE_TYPE_BYTE PIPE_TYPE_MESSAGE PIPE_WAIT -PROCESS_CREATION_FLAGS PROCESS_INFORMATION PROCESS_MODE_BACKGROUND_BEGIN PROCESS_MODE_BACKGROUND_END -PROCESSOR_ARCHITECTURE PROFILE_KERNEL PROFILE_SERVER PROFILE_USER @@ -2384,9 +2363,7 @@ SECURITY_SQOS_PRESENT SECURITY_VALID_SQOS_FLAGS select send -SEND_RECV_FLAGS sendto -SET_FILE_POINTER_MOVE_METHOD SetCurrentDirectoryW SetEnvironmentVariableW SetFileAttributesW @@ -2421,6 +2398,7 @@ SOCKET SOCKET_ERROR SOL_SOCKET SPECIFIC_RIGHTS_ALL +SRWLOCK STACK_SIZE_PARAM_IS_A_RESERVATION STANDARD_RIGHTS_ALL STANDARD_RIGHTS_EXECUTE @@ -2443,7 +2421,6 @@ STARTF_USESIZE STARTF_USESTDHANDLES STARTUPINFOEXW STARTUPINFOW -STARTUPINFOW_FLAGS STATUS_DELETE_PENDING STATUS_DIRECTORY_NOT_EMPTY STATUS_END_OF_FILE @@ -2455,21 +2432,16 @@ STATUS_PENDING STATUS_SHARING_VIOLATION STATUS_SUCCESS STD_ERROR_HANDLE -STD_HANDLE STD_INPUT_HANDLE STD_OUTPUT_HANDLE SwitchToThread SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE SYMBOLIC_LINK_FLAG_DIRECTORY -SYMBOLIC_LINK_FLAGS SYMLINK_FLAG_RELATIVE SYNCHRONIZE SYSTEM_INFO TCP_NODELAY TerminateProcess -THREAD_CREATE_RUN_IMMEDIATELY -THREAD_CREATE_SUSPENDED -THREAD_CREATION_FLAGS TIMER_ALL_ACCESS TIMER_MODIFY_STATE TIMEVAL @@ -2478,28 +2450,22 @@ TlsAlloc TlsFree TlsGetValue TlsSetValue -TOKEN_ACCESS_MASK TOKEN_ACCESS_PSEUDO_HANDLE TOKEN_ACCESS_PSEUDO_HANDLE_WIN8 -TOKEN_ACCESS_SYSTEM_SECURITY TOKEN_ADJUST_DEFAULT TOKEN_ADJUST_GROUPS TOKEN_ADJUST_PRIVILEGES TOKEN_ADJUST_SESSIONID TOKEN_ALL_ACCESS TOKEN_ASSIGN_PRIMARY -TOKEN_DELETE TOKEN_DUPLICATE TOKEN_EXECUTE TOKEN_IMPERSONATE TOKEN_QUERY TOKEN_QUERY_SOURCE TOKEN_READ -TOKEN_READ_CONTROL TOKEN_TRUST_CONSTRAINT_MASK TOKEN_WRITE -TOKEN_WRITE_DAC -TOKEN_WRITE_OWNER TRUE TRUNCATE_EXISTING TryAcquireSRWLockExclusive @@ -2519,25 +2485,20 @@ WAIT_OBJECT_0 WAIT_TIMEOUT WaitForMultipleObjects WaitForSingleObject +WaitOnAddress WakeAllConditionVariable +WakeByAddressAll +WakeByAddressSingle WakeConditionVariable WC_ERR_INVALID_CHARS WideCharToMultiByte -WIN32_ERROR WIN32_FIND_DATAW -Windows.Wdk.Storage.FileSystem.FILE_NO_COMPRESSION -Windows.Wdk.Storage.FileSystem.FILE_OPEN_NO_RECALL -Windows.Win32.System.Diagnostics.Debug.XSAVE_FORMAT -Windows.Win32.System.Kernel.FLOATING_SAVE_AREA -WINSOCK_SHUTDOWN_HOW -WINSOCK_SOCKET_TYPE WRITE_DAC WRITE_OWNER WriteConsoleW WriteFileEx WSA_E_CANCELLED WSA_E_NO_MORE -WSA_ERROR WSA_FLAG_NO_HANDLE_INHERIT WSA_FLAG_OVERLAPPED WSA_INVALID_HANDLE @@ -2649,3 +2610,4 @@ WSASYSNOTREADY WSATRY_AGAIN WSATYPE_NOT_FOUND WSAVERNOTSUPPORTED +XSAVE_FORMAT diff --git a/src/tools/generate-windows-sys/Cargo.toml b/src/tools/generate-windows-sys/Cargo.toml index 5627a8555943b..5c620674be6dd 100644 --- a/src/tools/generate-windows-sys/Cargo.toml +++ b/src/tools/generate-windows-sys/Cargo.toml @@ -4,4 +4,4 @@ version = "0.1.0" edition = "2021" [dependencies.windows-bindgen] -version = "0.66.0" +version = "0.100.0" diff --git a/src/tools/generate-windows-sys/src/main.rs b/src/tools/generate-windows-sys/src/main.rs index e51340af9a95c..0976caa11156a 100644 --- a/src/tools/generate-windows-sys/src/main.rs +++ b/src/tools/generate-windows-sys/src/main.rs @@ -19,6 +19,8 @@ pub struct WSADATA { } #[cfg(target_arch = "arm")] pub enum CONTEXT {} +#[cfg(target_arch = "arm")] +pub type PCONTEXT = *mut CONTEXT; "#; fn main() -> Result<(), Box> { @@ -29,7 +31,7 @@ fn main() -> Result<(), Box> { sort_bindings("bindings.txt")?; - windows_bindgen::bindgen(["--etc", "bindings.txt"]).unwrap(); + windows_bindgen::bindgen(["--etc", "bindings.txt"]); let mut f = std::fs::File::options().append(true).open("windows_sys.rs")?; f.write_all(ARM32_SHIM.as_bytes())?; From c27758d1665c31b2dee206ff30dba5c4f7df0681 Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 4 Sep 2026 01:47:50 +0000 Subject: [PATCH 03/24] Generate new windows bindings --- .../std/src/sys/pal/windows/c/windows_sys.rs | 5468 ++++++++--------- 1 file changed, 2703 insertions(+), 2765 deletions(-) diff --git a/library/std/src/sys/pal/windows/c/windows_sys.rs b/library/std/src/sys/pal/windows/c/windows_sys.rs index c3c5e193e41f1..c73817fd4ef27 100644 --- a/library/std/src/sys/pal/windows/c/windows_sys.rs +++ b/library/std/src/sys/pal/windows/c/windows_sys.rs @@ -1,59 +1,55 @@ -// Bindings generated by `windows-bindgen` 0.66.0 - -#![allow(non_snake_case, non_upper_case_globals, non_camel_case_types, dead_code, clippy::all)] - -windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut SRWLOCK)); -windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut SRWLOCK)); +windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut RTL_SRWLOCK)); +windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut RTL_SRWLOCK)); windows_link::link!("kernel32.dll" "system" fn AddVectoredExceptionHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut core::ffi::c_void); windows_link::link!("kernel32.dll" "system" fn CancelIo(hfile : HANDLE) -> BOOL); windows_link::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn CompareStringOrdinal(lpstring1 : PCWSTR, cchcount1 : i32, lpstring2 : PCWSTR, cchcount2 : i32, bignorecase : BOOL) -> COMPARESTRING_RESULT); -windows_link::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : COPYFILE_FLAGS) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn CompareStringOrdinal(lpstring1 : *const u16, cchcount1 : i32, lpstring2 : *const u16, cchcount2 : i32, bignorecase : BOOL) -> i32); +windows_link::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn CreateDirectoryW(lppathname : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); windows_link::link!("kernel32.dll" "system" fn CreateEventW(lpeventattributes : *const SECURITY_ATTRIBUTES, bmanualreset : BOOL, binitialstate : BOOL, lpname : PCWSTR) -> HANDLE); -windows_link::link!("kernel32.dll" "system" fn CreateFileW(lpfilename : PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : HANDLE) -> HANDLE); +windows_link::link!("kernel32.dll" "system" fn CreateFileW(lpfilename : PCWSTR, dwdesiredaccess : u32, dwsharemode : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES, dwcreationdisposition : u32, dwflagsandattributes : u32, htemplatefile : HANDLE) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn CreateHardLinkW(lpfilename : PCWSTR, lpexistingfilename : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn CreateNamedPipeW(lpname : PCWSTR, dwopenmode : FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> HANDLE); +windows_link::link!("kernel32.dll" "system" fn CreateNamedPipeW(lpname : PCWSTR, dwopenmode : u32, dwpipemode : u32, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn CreatePipe(hreadpipe : *mut HANDLE, hwritepipe : *mut HANDLE, lppipeattributes : *const SECURITY_ATTRIBUTES, nsize : u32) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn CreateProcessW(lpapplicationname : PCWSTR, lpcommandline : PWSTR, lpprocessattributes : *const SECURITY_ATTRIBUTES, lpthreadattributes : *const SECURITY_ATTRIBUTES, binherithandles : BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const core::ffi::c_void, lpcurrentdirectory : PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> bool); -windows_link::link!("kernel32.dll" "system" fn CreateThread(lpthreadattributes : *const SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const core::ffi::c_void, dwcreationflags : THREAD_CREATION_FLAGS, lpthreadid : *mut u32) -> HANDLE); +windows_link::link!("kernel32.dll" "system" fn CreateProcessW(lpapplicationname : PCWSTR, lpcommandline : PWSTR, lpprocessattributes : *const SECURITY_ATTRIBUTES, lpthreadattributes : *const SECURITY_ATTRIBUTES, binherithandles : BOOL, dwcreationflags : u32, lpenvironment : *const core::ffi::c_void, lpcurrentdirectory : PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : u32) -> bool); +windows_link::link!("kernel32.dll" "system" fn CreateThread(lpthreadattributes : *const SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const core::ffi::c_void, dwcreationflags : u32, lpthreadid : *mut u32) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn CreateWaitableTimerExW(lptimerattributes : *const SECURITY_ATTRIBUTES, lptimername : PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn DeleteFileW(lpfilename : PCWSTR) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn DeleteProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST)); +windows_link::link!("kernel32.dll" "system" fn DeleteProcThreadAttributeList(lpattributelist : *mut _PROC_THREAD_ATTRIBUTE_LIST)); windows_link::link!("kernel32.dll" "system" fn DeviceIoControl(hdevice : HANDLE, dwiocontrolcode : u32, lpinbuffer : *const core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn DuplicateHandle(hsourceprocesshandle : HANDLE, hsourcehandle : HANDLE, htargetprocesshandle : HANDLE, lptargethandle : *mut HANDLE, dwdesiredaccess : u32, binherithandle : BOOL, dwoptions : DUPLICATE_HANDLE_OPTIONS) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn DuplicateHandle(hsourceprocesshandle : HANDLE, hsourcehandle : HANDLE, htargetprocesshandle : HANDLE, lptargethandle : *mut HANDLE, dwdesiredaccess : u32, binherithandle : BOOL, dwoptions : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn ExitProcess(uexitcode : u32) -> !); windows_link::link!("kernel32.dll" "system" fn FindClose(hfindfile : HANDLE) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn FindFirstFileExW(lpfilename : PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const core::ffi::c_void, dwadditionalflags : FIND_FIRST_EX_FLAGS) -> HANDLE); +windows_link::link!("kernel32.dll" "system" fn FindFirstFileExW(lpfilename : PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const core::ffi::c_void, dwadditionalflags : u32) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn FindNextFileW(hfindfile : HANDLE, lpfindfiledata : *mut WIN32_FIND_DATAW) -> BOOL); windows_link::link!("kernel32.dll" "system" fn FlsAlloc(lpcallback : PFLS_CALLBACK_FUNCTION) -> u32); windows_link::link!("kernel32.dll" "system" fn FlsFree(dwflsindex : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn FlsGetValue(dwflsindex : u32) -> *mut core::ffi::c_void); windows_link::link!("kernel32.dll" "system" fn FlsSetValue(dwflsindex : u32, lpflsdata : *const core::ffi::c_void) -> BOOL); windows_link::link!("kernel32.dll" "system" fn FlushFileBuffers(hfile : HANDLE) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn FormatMessageW(dwflags : FORMAT_MESSAGE_OPTIONS, lpsource : *const core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : PWSTR, nsize : u32, arguments : *const *const i8) -> u32); -windows_link::link!("kernel32.dll" "system" fn FreeEnvironmentStringsW(penv : PCWSTR) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn FormatMessageW(dwflags : u32, lpsource : *const core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : PCWSTR, nsize : u32, arguments : *const va_list) -> u32); +windows_link::link!("kernel32.dll" "system" fn FreeEnvironmentStringsW(penv : *const u16) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetActiveProcessorCount(groupnumber : u16) -> u32); -windows_link::link!("kernel32.dll" "system" fn GetCommandLineW() -> PCWSTR); -windows_link::link!("kernel32.dll" "system" fn GetConsoleMode(hconsolehandle : HANDLE, lpmode : *mut CONSOLE_MODE) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn GetCommandLineW() -> PWSTR); +windows_link::link!("kernel32.dll" "system" fn GetConsoleMode(hconsolehandle : HANDLE, lpmode : *mut u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetConsoleOutputCP() -> u32); windows_link::link!("kernel32.dll" "system" fn GetCurrentDirectoryW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); windows_link::link!("kernel32.dll" "system" fn GetCurrentProcess() -> HANDLE); windows_link::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32); windows_link::link!("kernel32.dll" "system" fn GetCurrentThread() -> HANDLE); windows_link::link!("kernel32.dll" "system" fn GetCurrentThreadId() -> u32); -windows_link::link!("kernel32.dll" "system" fn GetEnvironmentStringsW() -> PWSTR); +windows_link::link!("kernel32.dll" "system" fn GetEnvironmentStringsW() -> LPWCH); windows_link::link!("kernel32.dll" "system" fn GetEnvironmentVariableW(lpname : PCWSTR, lpbuffer : PWSTR, nsize : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn GetExitCodeProcess(hprocess : HANDLE, lpexitcode : *mut u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetFileAttributesW(lpfilename : PCWSTR) -> u32); windows_link::link!("kernel32.dll" "system" fn GetFileInformationByHandle(hfile : HANDLE, lpfileinformation : *mut BY_HANDLE_FILE_INFORMATION) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetFileInformationByHandleEx(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *mut core::ffi::c_void, dwbuffersize : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetFileSizeEx(hfile : HANDLE, lpfilesize : *mut i64) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn GetFileType(hfile : HANDLE) -> FILE_TYPE); -windows_link::link!("kernel32.dll" "system" fn GetFinalPathNameByHandleW(hfile : HANDLE, lpszfilepath : PWSTR, cchfilepath : u32, dwflags : GETFINALPATHNAMEBYHANDLE_FLAGS) -> u32); +windows_link::link!("kernel32.dll" "system" fn GetFileType(hfile : HANDLE) -> u32); +windows_link::link!("kernel32.dll" "system" fn GetFinalPathNameByHandleW(hfile : HANDLE, lpszfilepath : PWSTR, cchfilepath : u32, dwflags : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn GetFullPathNameW(lpfilename : PCWSTR, nbufferlength : u32, lpbuffer : PWSTR, lpfilepart : *mut PWSTR) -> u32); -windows_link::link!("kernel32.dll" "system" fn GetLastError() -> WIN32_ERROR); +windows_link::link!("kernel32.dll" "system" fn GetLastError() -> u32); windows_link::link!("kernel32.dll" "system" fn GetLogicalDrives() -> u32); windows_link::link!("kernel32.dll" "system" fn GetModuleFileNameW(hmodule : HMODULE, lpfilename : PWSTR, nsize : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn GetModuleHandleA(lpmodulename : PCSTR) -> HMODULE); @@ -62,7 +58,7 @@ windows_link::link!("kernel32.dll" "system" fn GetModuleHandleW(lpmodulename : P windows_link::link!("kernel32.dll" "system" fn GetOverlappedResult(hfile : HANDLE, lpoverlapped : *const OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : BOOL) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC); windows_link::link!("kernel32.dll" "system" fn GetProcessId(process : HANDLE) -> u32); -windows_link::link!("kernel32.dll" "system" fn GetStdHandle(nstdhandle : STD_HANDLE) -> HANDLE); +windows_link::link!("kernel32.dll" "system" fn GetStdHandle(nstdhandle : u32) -> HANDLE); windows_link::link!("kernel32.dll" "system" fn GetSystemDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn GetSystemInfo(lpsysteminfo : *mut SYSTEM_INFO)); windows_link::link!("kernel32.dll" "system" fn GetSystemTimeAsFileTime(lpsystemtimeasfiletime : *mut FILETIME)); @@ -70,44 +66,44 @@ windows_link::link!("kernel32.dll" "system" fn GetSystemTimePreciseAsFileTime(lp windows_link::link!("kernel32.dll" "system" fn GetTempPathW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); windows_link::link!("userenv.dll" "system" fn GetUserProfileDirectoryW(htoken : HANDLE, lpprofiledir : PWSTR, lpcchsize : *mut u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn GetWindowsDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); -windows_link::link!("kernel32.dll" "system" fn InitOnceBeginInitialize(lpinitonce : *mut INIT_ONCE, dwflags : u32, fpending : *mut BOOL, lpcontext : *mut *mut core::ffi::c_void) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn InitOnceComplete(lpinitonce : *mut INIT_ONCE, dwflags : u32, lpcontext : *const core::ffi::c_void) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn InitializeProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwattributecount : u32, dwflags : u32, lpsize : *mut usize) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn InitOnceBeginInitialize(lpinitonce : LPINIT_ONCE, dwflags : u32, fpending : *mut BOOL, lpcontext : *mut *mut core::ffi::c_void) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn InitOnceComplete(lpinitonce : LPINIT_ONCE, dwflags : u32, lpcontext : *const core::ffi::c_void) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn InitializeProcThreadAttributeList(lpattributelist : *mut _PROC_THREAD_ATTRIBUTE_LIST, dwattributecount : u32, dwflags : u32, lpsize : *mut usize) -> BOOL); windows_link::link!("kernel32.dll" "system" fn IsThreadAFiber() -> BOOL); windows_link::link!("kernel32.dll" "system" fn LocalFree(hmem : HLOCAL) -> HLOCAL); -windows_link::link!("kernel32.dll" "system" fn LockFileEx(hfile : HANDLE, dwflags : LOCK_FILE_FLAGS, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn MoveFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, dwflags : MOVE_FILE_FLAGS) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr : PCSTR, cbmultibyte : i32, lpwidecharstr : PWSTR, cchwidechar : i32) -> i32); -windows_link::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); -windows_link::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); +windows_link::link!("kernel32.dll" "system" fn LockFileEx(hfile : HANDLE, dwflags : u32, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn MoveFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, dwflags : u32) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : u32, lpmultibytestr : *const i8, cbmultibyte : i32, lpwidecharstr : PWSTR, cchwidechar : i32) -> i32); +windows_link::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : ACCESS_MASK, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); +windows_link::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : ACCESS_MASK, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); windows_link::link!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); windows_link::link!("ntdll.dll" "system" fn NtSetInformationFile(filehandle : HANDLE, iostatusblock : *mut IO_STATUS_BLOCK, fileinformation : *const core::ffi::c_void, length : u32, fileinformationclass : FILE_INFORMATION_CLASS) -> NTSTATUS); windows_link::link!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); -windows_link::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : TOKEN_ACCESS_MASK, tokenhandle : *mut HANDLE) -> BOOL); +windows_link::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : u32, tokenhandle : *mut HANDLE) -> BOOL); windows_link::link!("kernel32.dll" "system" fn QueryDosDeviceW(lpdevicename : PCWSTR, lptargetpath : PWSTR, ucchmax : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn QueryPerformanceCounter(lpperformancecount : *mut i64) -> BOOL); windows_link::link!("kernel32.dll" "system" fn QueryPerformanceFrequency(lpfrequency : *mut i64) -> BOOL); windows_link::link!("kernel32.dll" "system" fn ReadConsoleW(hconsoleinput : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn ReadFile(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn ReadFileEx(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut SRWLOCK)); -windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut SRWLOCK)); +windows_link::link!("kernel32.dll" "system" fn ReadFile(hfile : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn ReadFileEx(hfile : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofbytestoread : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut RTL_SRWLOCK)); +windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut RTL_SRWLOCK)); windows_link::link!("kernel32.dll" "system" fn RemoveDirectoryW(lppathname : PCWSTR) -> BOOL); windows_link::link!("advapi32.dll" "system" "SystemFunction036" fn RtlGenRandom(randombuffer : *mut core::ffi::c_void, randombufferlength : u32) -> bool); windows_link::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); windows_link::link!("kernel32.dll" "system" fn SetCurrentDirectoryW(lppathname : PCWSTR) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SetEnvironmentVariableW(lpname : PCWSTR, lpvalue : PCWSTR) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn SetFileAttributesW(lpfilename : PCWSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn SetFileAttributesW(lpfilename : PCWSTR, dwfileattributes : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SetFileInformationByHandle(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *const core::ffi::c_void, dwbuffersize : u32) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn SetFilePointerEx(hfile : HANDLE, lidistancetomove : i64, lpnewfilepointer : *mut i64, dwmovemethod : SET_FILE_POINTER_MOVE_METHOD) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn SetFilePointerEx(hfile : HANDLE, lidistancetomove : i64, lpnewfilepointer : *mut i64, dwmovemethod : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SetFileTime(hfile : HANDLE, lpcreationtime : *const FILETIME, lplastaccesstime : *const FILETIME, lplastwritetime : *const FILETIME) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn SetHandleInformation(hobject : HANDLE, dwmask : u32, dwflags : HANDLE_FLAGS) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn SetLastError(dwerrcode : WIN32_ERROR)); -windows_link::link!("kernel32.dll" "system" fn SetStdHandle(nstdhandle : STD_HANDLE, hhandle : HANDLE) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn SetHandleInformation(hobject : HANDLE, dwmask : u32, dwflags : u32) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn SetLastError(dwerrcode : u32)); +windows_link::link!("kernel32.dll" "system" fn SetStdHandle(nstdhandle : u32, hhandle : HANDLE) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SetThreadStackGuarantee(stacksizeinbytes : *mut u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SetWaitableTimer(htimer : HANDLE, lpduetime : *const i64, lperiod : i32, pfncompletionroutine : PTIMERAPCROUTINE, lpargtocompletionroutine : *const core::ffi::c_void, fresume : BOOL) -> BOOL); windows_link::link!("kernel32.dll" "system" fn Sleep(dwmilliseconds : u32)); -windows_link::link!("kernel32.dll" "system" fn SleepConditionVariableSRW(conditionvariable : *mut CONDITION_VARIABLE, srwlock : *mut SRWLOCK, dwmilliseconds : u32, flags : u32) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn SleepConditionVariableSRW(conditionvariable : *mut RTL_CONDITION_VARIABLE, srwlock : *mut RTL_SRWLOCK, dwmilliseconds : u32, flags : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn SleepEx(dwmilliseconds : u32, balertable : BOOL) -> u32); windows_link::link!("kernel32.dll" "system" fn SwitchToThread() -> BOOL); windows_link::link!("kernel32.dll" "system" fn TerminateProcess(hprocess : HANDLE, uexitcode : u32) -> BOOL); @@ -115,76 +111,210 @@ windows_link::link!("kernel32.dll" "system" fn TlsAlloc() -> u32); windows_link::link!("kernel32.dll" "system" fn TlsFree(dwtlsindex : u32) -> BOOL); windows_link::link!("kernel32.dll" "system" fn TlsGetValue(dwtlsindex : u32) -> *mut core::ffi::c_void); windows_link::link!("kernel32.dll" "system" fn TlsSetValue(dwtlsindex : u32, lptlsvalue : *const core::ffi::c_void) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> bool); -windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> bool); +windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut RTL_SRWLOCK) -> bool); +windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut RTL_SRWLOCK) -> bool); windows_link::link!("kernel32.dll" "system" fn UnlockFile(hfile : HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn UpdateProcThreadAttribute(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut core::ffi::c_void, lpreturnsize : *const usize) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn UpdateProcThreadAttribute(lpattributelist : *mut _PROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut core::ffi::c_void, lpreturnsize : *const usize) -> BOOL); windows_link::link!("ws2_32.dll" "system" fn WSACleanup() -> i32); windows_link::link!("ws2_32.dll" "system" fn WSADuplicateSocketW(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOW) -> i32); -windows_link::link!("ws2_32.dll" "system" fn WSAGetLastError() -> WSA_ERROR); +windows_link::link!("ws2_32.dll" "system" fn WSAGetLastError() -> i32); windows_link::link!("ws2_32.dll" "system" fn WSARecv(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytesrecvd : *mut u32, lpflags : *mut u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); windows_link::link!("ws2_32.dll" "system" fn WSASend(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); -windows_link::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : u32, dwflags : u32) -> SOCKET); +windows_link::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : GROUP, dwflags : u32) -> SOCKET); windows_link::link!("ws2_32.dll" "system" fn WSAStartup(wversionrequested : u16, lpwsadata : *mut WSADATA) -> i32); -windows_link::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> WAIT_EVENT); -windows_link::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT); -windows_link::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); -windows_link::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); -windows_link::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32); -windows_link::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : PCWSTR, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL); -windows_link::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> u32); +windows_link::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> u32); +windows_link::link!("api-ms-win-core-synch-l1-2-0.dll" "system" fn WaitOnAddress(address : *const core::ffi::c_void, compareaddress : *const core::ffi::c_void, addresssize : usize, dwmilliseconds : u32) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut RTL_CONDITION_VARIABLE)); +windows_link::link!("api-ms-win-core-synch-l1-2-0.dll" "system" fn WakeByAddressAll(address : *const core::ffi::c_void)); +windows_link::link!("api-ms-win-core-synch-l1-2-0.dll" "system" fn WakeByAddressSingle(address : *const core::ffi::c_void)); +windows_link::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut RTL_CONDITION_VARIABLE)); +windows_link::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : *const u16, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : *const i8, lpuseddefaultchar : *mut BOOL) -> i32); +windows_link::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : *const core::ffi::c_void, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL); +windows_link::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const core::ffi::c_void, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); windows_link::link!("ws2_32.dll" "system" fn accept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32) -> SOCKET); windows_link::link!("ws2_32.dll" "system" fn bind(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); windows_link::link!("ws2_32.dll" "system" fn closesocket(s : SOCKET) -> i32); windows_link::link!("ws2_32.dll" "system" fn connect(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); windows_link::link!("ws2_32.dll" "system" fn freeaddrinfo(paddrinfo : *const ADDRINFOA)); -windows_link::link!("ws2_32.dll" "system" fn getaddrinfo(pnodename : PCSTR, pservicename : PCSTR, phints : *const ADDRINFOA, ppresult : *mut *mut ADDRINFOA) -> i32); +windows_link::link!("ws2_32.dll" "system" fn getaddrinfo(pnodename : PCSTR, pservicename : PCSTR, phints : *const ADDRINFOA, ppresult : *mut PADDRINFOA) -> i32); windows_link::link!("ws2_32.dll" "system" fn getpeername(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); windows_link::link!("ws2_32.dll" "system" fn getsockname(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); -windows_link::link!("ws2_32.dll" "system" fn getsockopt(s : SOCKET, level : i32, optname : i32, optval : PSTR, optlen : *mut i32) -> i32); -windows_link::link!("ws2_32.dll" "system" fn ioctlsocket(s : SOCKET, cmd : i32, argp : *mut u32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn getsockopt(s : SOCKET, level : i32, optname : i32, optval : *mut i8, optlen : *mut i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn ioctlsocket(s : SOCKET, cmd : i32, argp : *mut u_long) -> i32); windows_link::link!("ws2_32.dll" "system" fn listen(s : SOCKET, backlog : i32) -> i32); windows_link::link!("kernel32.dll" "system" fn lstrlenW(lpstring : PCWSTR) -> i32); -windows_link::link!("ws2_32.dll" "system" fn recv(s : SOCKET, buf : PSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); -windows_link::link!("ws2_32.dll" "system" fn recvfrom(s : SOCKET, buf : PSTR, len : i32, flags : i32, from : *mut SOCKADDR, fromlen : *mut i32) -> i32); -windows_link::link!("ws2_32.dll" "system" fn select(nfds : i32, readfds : *mut FD_SET, writefds : *mut FD_SET, exceptfds : *mut FD_SET, timeout : *const TIMEVAL) -> i32); -windows_link::link!("ws2_32.dll" "system" fn send(s : SOCKET, buf : PCSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); -windows_link::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : PCSTR, len : i32, flags : i32, to : *const SOCKADDR, tolen : i32) -> i32); -windows_link::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : PCSTR, optlen : i32) -> i32); -windows_link::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : WINSOCK_SHUTDOWN_HOW) -> i32); -pub const ABOVE_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32768u32; -#[repr(C)] -#[derive(Clone, Copy, Default)] -pub struct ACL { - pub AclRevision: u8, - pub Sbz1: u8, - pub AclSize: u16, - pub AceCount: u16, - pub Sbz2: u16, -} +windows_link::link!("ws2_32.dll" "system" fn recv(s : SOCKET, buf : *mut i8, len : i32, flags : i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn recvfrom(s : SOCKET, buf : *mut i8, len : i32, flags : i32, from : *mut SOCKADDR, fromlen : *mut i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn select(nfds : i32, readfds : *mut fd_set, writefds : *mut fd_set, exceptfds : *mut fd_set, timeout : *const timeval) -> i32); +windows_link::link!("ws2_32.dll" "system" fn send(s : SOCKET, buf : *const i8, len : i32, flags : i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : *const i8, len : i32, flags : i32, to : *const SOCKADDR, tolen : i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : *const i8, optlen : i32) -> i32); +windows_link::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : i32) -> i32); +pub const ABOVE_NORMAL_PRIORITY_CLASS: i32 = 32768; +pub type ACCESS_MASK = u32; pub type ADDRESS_FAMILY = u16; #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct ADDRINFOA { pub ai_flags: i32, pub ai_family: i32, pub ai_socktype: i32, pub ai_protocol: i32, pub ai_addrlen: usize, - pub ai_canonname: PSTR, + pub ai_canonname: *mut i8, pub ai_addr: *mut SOCKADDR, - pub ai_next: *mut ADDRINFOA, + pub ai_next: *mut Self, +} +pub const AF_INET: i32 = 2; +pub const AF_INET6: i32 = 23; +pub const AF_UNIX: i32 = 1; +pub const AF_UNSPEC: i32 = 0; +pub const ALL_PROCESSOR_GROUPS: i32 = 65535; +#[repr(C, align(16))] +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +#[derive(Clone, Copy)] +pub struct ARM64_NT_CONTEXT { + pub ContextFlags: u32, + pub Cpsr: u32, + pub Anonymous: ARM64_NT_CONTEXT_0, + pub Sp: u64, + pub Pc: u64, + pub V: [ARM64_NT_NEON128; 32], + pub Fpcr: u32, + pub Fpsr: u32, + pub Bcr: [u32; 8], + pub Bvr: [u64; 8], + pub Wcr: [u32; 2], + pub Wvr: [u64; 2], +} +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +impl Default for ARM64_NT_CONTEXT { + fn default() -> Self { + unsafe { core::mem::zeroed() } + } +} +#[repr(C)] +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +#[derive(Clone, Copy)] +pub union ARM64_NT_CONTEXT_0 { + pub Anonymous: ARM64_NT_CONTEXT_0_0, + pub X: [u64; 31], +} +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +impl Default for ARM64_NT_CONTEXT_0 { + fn default() -> Self { + unsafe { core::mem::zeroed() } + } +} +#[repr(C)] +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +#[derive(Clone, Copy, Default)] +pub struct ARM64_NT_CONTEXT_0_0 { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub Fp: u64, + pub Lr: u64, +} +#[repr(C, align(16))] +#[cfg(target_arch = "aarch64")] +#[derive(Clone, Copy)] +pub struct ARM64_NT_CONTEXT { + pub ContextFlags: u32, + pub Cpsr: u32, + pub Anonymous: ARM64_NT_CONTEXT_0, + pub Sp: u64, + pub Pc: u64, + pub V: [NEON128; 32], + pub Fpcr: u32, + pub Fpsr: u32, + pub Bcr: [u32; 8], + pub Bvr: [u64; 8], + pub Wcr: [u32; 2], + pub Wvr: [u64; 2], +} +#[cfg(target_arch = "aarch64")] +impl Default for ARM64_NT_CONTEXT { + fn default() -> Self { + unsafe { core::mem::zeroed() } + } +} +#[repr(C)] +#[cfg(target_arch = "aarch64")] +#[derive(Clone, Copy)] +pub union ARM64_NT_CONTEXT_0 { + pub Anonymous: ARM64_NT_CONTEXT_0_0, + pub X: [u64; 31], } -impl Default for ADDRINFOA { +#[cfg(target_arch = "aarch64")] +impl Default for ARM64_NT_CONTEXT_0 { fn default() -> Self { unsafe { core::mem::zeroed() } } } -pub const AF_INET: ADDRESS_FAMILY = 2u16; -pub const AF_INET6: ADDRESS_FAMILY = 23u16; -pub const AF_UNIX: u16 = 1u16; -pub const AF_UNSPEC: ADDRESS_FAMILY = 0u16; -pub const ALL_PROCESSOR_GROUPS: u16 = 65535u16; +#[repr(C)] +#[cfg(target_arch = "aarch64")] +#[derive(Clone, Copy, Default)] +pub struct ARM64_NT_CONTEXT_0_0 { + pub X0: u64, + pub X1: u64, + pub X2: u64, + pub X3: u64, + pub X4: u64, + pub X5: u64, + pub X6: u64, + pub X7: u64, + pub X8: u64, + pub X9: u64, + pub X10: u64, + pub X11: u64, + pub X12: u64, + pub X13: u64, + pub X14: u64, + pub X15: u64, + pub X16: u64, + pub X17: u64, + pub X18: u64, + pub X19: u64, + pub X20: u64, + pub X21: u64, + pub X22: u64, + pub X23: u64, + pub X24: u64, + pub X25: u64, + pub X26: u64, + pub X27: u64, + pub X28: u64, + pub Fp: u64, + pub Lr: u64, +} #[repr(C)] #[derive(Clone, Copy)] pub union ARM64_NT_NEON128 { @@ -205,7 +335,7 @@ pub struct ARM64_NT_NEON128_0 { pub Low: u64, pub High: i64, } -pub const BELOW_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 16384u32; +pub const BELOW_NORMAL_PRIORITY_CLASS: i32 = 16384; pub type BOOL = i32; #[repr(C)] #[derive(Clone, Copy, Default)] @@ -221,20 +351,10 @@ pub struct BY_HANDLE_FILE_INFORMATION { pub nFileIndexHigh: u32, pub nFileIndexLow: u32, } -pub const CALLBACK_CHUNK_FINISHED: LPPROGRESS_ROUTINE_CALLBACK_REASON = 0u32; -pub const CALLBACK_STREAM_SWITCH: LPPROGRESS_ROUTINE_CALLBACK_REASON = 1u32; -pub type COMPARESTRING_RESULT = i32; -#[repr(C)] -#[derive(Clone, Copy)] -pub struct CONDITION_VARIABLE { - pub Ptr: *mut core::ffi::c_void, -} -impl Default for CONDITION_VARIABLE { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub type CONSOLE_MODE = u32; +pub const CALLBACK_CHUNK_FINISHED: i32 = 0; +pub const CALLBACK_STREAM_SWITCH: i32 = 1; +pub type CCHAR = i8; +pub type CONDITION_VARIABLE = RTL_CONDITION_VARIABLE; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct CONSOLE_READCONSOLE_CONTROL { @@ -247,7 +367,7 @@ pub struct CONSOLE_READCONSOLE_CONTROL { #[cfg(target_arch = "x86")] #[derive(Clone, Copy)] pub struct CONTEXT { - pub ContextFlags: CONTEXT_FLAGS, + pub ContextFlags: u32, pub Dr0: u32, pub Dr1: u32, pub Dr2: u32, @@ -289,7 +409,7 @@ pub struct CONTEXT { pub P4Home: u64, pub P5Home: u64, pub P6Home: u64, - pub ContextFlags: CONTEXT_FLAGS, + pub ContextFlags: u32, pub MxCsr: u32, pub SegCs: u16, pub SegDs: u16, @@ -340,7 +460,7 @@ impl Default for CONTEXT { #[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))] #[derive(Clone, Copy)] pub union CONTEXT_0 { - pub FltSave: XSAVE_FORMAT, + pub FltSave: XMM_SAVE_AREA32, pub Anonymous: CONTEXT_0_0, } #[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))] @@ -378,2008 +498,1929 @@ impl Default for CONTEXT_0_0 { unsafe { core::mem::zeroed() } } } -#[repr(C)] -#[cfg(target_arch = "aarch64")] -#[derive(Clone, Copy)] -pub struct CONTEXT { - pub ContextFlags: CONTEXT_FLAGS, - pub Cpsr: u32, - pub Anonymous: CONTEXT_0, - pub Sp: u64, - pub Pc: u64, - pub V: [ARM64_NT_NEON128; 32], - pub Fpcr: u32, - pub Fpsr: u32, - pub Bcr: [u32; 8], - pub Bvr: [u64; 8], - pub Wcr: [u32; 2], - pub Wvr: [u64; 2], -} #[cfg(target_arch = "aarch64")] -impl Default for CONTEXT { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -#[repr(C)] -#[cfg(target_arch = "aarch64")] -#[derive(Clone, Copy)] -pub union CONTEXT_0 { - pub Anonymous: CONTEXT_0_0, - pub X: [u64; 31], -} -#[cfg(target_arch = "aarch64")] -impl Default for CONTEXT_0 { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -#[repr(C)] -#[cfg(target_arch = "aarch64")] -#[derive(Clone, Copy, Default)] -pub struct CONTEXT_0_0 { - pub X0: u64, - pub X1: u64, - pub X2: u64, - pub X3: u64, - pub X4: u64, - pub X5: u64, - pub X6: u64, - pub X7: u64, - pub X8: u64, - pub X9: u64, - pub X10: u64, - pub X11: u64, - pub X12: u64, - pub X13: u64, - pub X14: u64, - pub X15: u64, - pub X16: u64, - pub X17: u64, - pub X18: u64, - pub X19: u64, - pub X20: u64, - pub X21: u64, - pub X22: u64, - pub X23: u64, - pub X24: u64, - pub X25: u64, - pub X26: u64, - pub X27: u64, - pub X28: u64, - pub Fp: u64, - pub Lr: u64, -} -pub type CONTEXT_FLAGS = u32; -pub type COPYFILE_FLAGS = u32; -pub type COPYPROGRESSROUTINE_PROGRESS = u32; -pub const CP_UTF8: u32 = 65001u32; -pub const CREATE_ALWAYS: FILE_CREATION_DISPOSITION = 2u32; -pub const CREATE_BREAKAWAY_FROM_JOB: PROCESS_CREATION_FLAGS = 16777216u32; -pub const CREATE_DEFAULT_ERROR_MODE: PROCESS_CREATION_FLAGS = 67108864u32; -pub const CREATE_FORCEDOS: PROCESS_CREATION_FLAGS = 8192u32; -pub const CREATE_IGNORE_SYSTEM_DEFAULT: PROCESS_CREATION_FLAGS = 2147483648u32; -pub const CREATE_NEW: FILE_CREATION_DISPOSITION = 1u32; -pub const CREATE_NEW_CONSOLE: PROCESS_CREATION_FLAGS = 16u32; -pub const CREATE_NEW_PROCESS_GROUP: PROCESS_CREATION_FLAGS = 512u32; -pub const CREATE_NO_WINDOW: PROCESS_CREATION_FLAGS = 134217728u32; -pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL: PROCESS_CREATION_FLAGS = 33554432u32; -pub const CREATE_PROTECTED_PROCESS: PROCESS_CREATION_FLAGS = 262144u32; -pub const CREATE_SECURE_PROCESS: PROCESS_CREATION_FLAGS = 4194304u32; -pub const CREATE_SEPARATE_WOW_VDM: PROCESS_CREATION_FLAGS = 2048u32; -pub const CREATE_SHARED_WOW_VDM: PROCESS_CREATION_FLAGS = 4096u32; -pub const CREATE_SUSPENDED: PROCESS_CREATION_FLAGS = 4u32; -pub const CREATE_UNICODE_ENVIRONMENT: PROCESS_CREATION_FLAGS = 1024u32; -pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION: u32 = 2u32; -pub const CREATE_WAITABLE_TIMER_MANUAL_RESET: u32 = 1u32; -pub const CSTR_EQUAL: COMPARESTRING_RESULT = 2i32; -pub const CSTR_GREATER_THAN: COMPARESTRING_RESULT = 3i32; -pub const CSTR_LESS_THAN: COMPARESTRING_RESULT = 1i32; -pub const DEBUG_ONLY_THIS_PROCESS: PROCESS_CREATION_FLAGS = 2u32; -pub const DEBUG_PROCESS: PROCESS_CREATION_FLAGS = 1u32; -pub const DELETE: FILE_ACCESS_RIGHTS = 65536u32; -pub const DETACHED_PROCESS: PROCESS_CREATION_FLAGS = 8u32; -pub const DISABLE_NEWLINE_AUTO_RETURN: CONSOLE_MODE = 8u32; -pub const DLL_PROCESS_DETACH: u32 = 0u32; -pub const DLL_THREAD_DETACH: u32 = 3u32; -pub const DNS_ERROR_ADDRESS_REQUIRED: WIN32_ERROR = 9573u32; -pub const DNS_ERROR_ALIAS_LOOP: WIN32_ERROR = 9722u32; -pub const DNS_ERROR_AUTOZONE_ALREADY_EXISTS: WIN32_ERROR = 9610u32; -pub const DNS_ERROR_AXFR: WIN32_ERROR = 9752u32; -pub const DNS_ERROR_BACKGROUND_LOADING: WIN32_ERROR = 9568u32; -pub const DNS_ERROR_BAD_KEYMASTER: WIN32_ERROR = 9122u32; -pub const DNS_ERROR_BAD_PACKET: WIN32_ERROR = 9502u32; -pub const DNS_ERROR_CANNOT_FIND_ROOT_HINTS: WIN32_ERROR = 9564u32; -pub const DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS: WIN32_ERROR = 9977u32; -pub const DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST: WIN32_ERROR = 9976u32; -pub const DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED: WIN32_ERROR = 9975u32; -pub const DNS_ERROR_CNAME_COLLISION: WIN32_ERROR = 9709u32; -pub const DNS_ERROR_CNAME_LOOP: WIN32_ERROR = 9707u32; -pub const DNS_ERROR_DATAFILE_OPEN_FAILURE: WIN32_ERROR = 9653u32; -pub const DNS_ERROR_DATAFILE_PARSING: WIN32_ERROR = 9655u32; -pub const DNS_ERROR_DEFAULT_SCOPE: WIN32_ERROR = 9960u32; -pub const DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE: WIN32_ERROR = 9925u32; -pub const DNS_ERROR_DEFAULT_ZONESCOPE: WIN32_ERROR = 9953u32; -pub const DNS_ERROR_DELEGATION_REQUIRED: WIN32_ERROR = 9571u32; -pub const DNS_ERROR_DNAME_COLLISION: WIN32_ERROR = 9721u32; -pub const DNS_ERROR_DNSSEC_IS_DISABLED: WIN32_ERROR = 9125u32; -pub const DNS_ERROR_DP_ALREADY_ENLISTED: WIN32_ERROR = 9904u32; -pub const DNS_ERROR_DP_ALREADY_EXISTS: WIN32_ERROR = 9902u32; -pub const DNS_ERROR_DP_DOES_NOT_EXIST: WIN32_ERROR = 9901u32; -pub const DNS_ERROR_DP_FSMO_ERROR: WIN32_ERROR = 9906u32; -pub const DNS_ERROR_DP_NOT_AVAILABLE: WIN32_ERROR = 9905u32; -pub const DNS_ERROR_DP_NOT_ENLISTED: WIN32_ERROR = 9903u32; -pub const DNS_ERROR_DS_UNAVAILABLE: WIN32_ERROR = 9717u32; -pub const DNS_ERROR_DS_ZONE_ALREADY_EXISTS: WIN32_ERROR = 9718u32; -pub const DNS_ERROR_DWORD_VALUE_TOO_LARGE: WIN32_ERROR = 9567u32; -pub const DNS_ERROR_DWORD_VALUE_TOO_SMALL: WIN32_ERROR = 9566u32; -pub const DNS_ERROR_FILE_WRITEBACK_FAILED: WIN32_ERROR = 9654u32; -pub const DNS_ERROR_FORWARDER_ALREADY_EXISTS: WIN32_ERROR = 9619u32; -pub const DNS_ERROR_INCONSISTENT_ROOT_HINTS: WIN32_ERROR = 9565u32; -pub const DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME: WIN32_ERROR = 9924u32; -pub const DNS_ERROR_INVALID_CLIENT_SUBNET_NAME: WIN32_ERROR = 9984u32; -pub const DNS_ERROR_INVALID_DATA: WIN32_ERROR = 13u32; -pub const DNS_ERROR_INVALID_DATAFILE_NAME: WIN32_ERROR = 9652u32; -pub const DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET: WIN32_ERROR = 9115u32; -pub const DNS_ERROR_INVALID_IP_ADDRESS: WIN32_ERROR = 9552u32; -pub const DNS_ERROR_INVALID_KEY_SIZE: WIN32_ERROR = 9106u32; -pub const DNS_ERROR_INVALID_NAME: WIN32_ERROR = 123u32; -pub const DNS_ERROR_INVALID_NAME_CHAR: WIN32_ERROR = 9560u32; -pub const DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT: WIN32_ERROR = 9124u32; -pub const DNS_ERROR_INVALID_POLICY_TABLE: WIN32_ERROR = 9572u32; -pub const DNS_ERROR_INVALID_PROPERTY: WIN32_ERROR = 9553u32; -pub const DNS_ERROR_INVALID_ROLLOVER_PERIOD: WIN32_ERROR = 9114u32; -pub const DNS_ERROR_INVALID_SCOPE_NAME: WIN32_ERROR = 9958u32; -pub const DNS_ERROR_INVALID_SCOPE_OPERATION: WIN32_ERROR = 9961u32; -pub const DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD: WIN32_ERROR = 9123u32; -pub const DNS_ERROR_INVALID_TYPE: WIN32_ERROR = 9551u32; -pub const DNS_ERROR_INVALID_XML: WIN32_ERROR = 9126u32; -pub const DNS_ERROR_INVALID_ZONESCOPE_NAME: WIN32_ERROR = 9954u32; -pub const DNS_ERROR_INVALID_ZONE_OPERATION: WIN32_ERROR = 9603u32; -pub const DNS_ERROR_INVALID_ZONE_TYPE: WIN32_ERROR = 9611u32; -pub const DNS_ERROR_KEYMASTER_REQUIRED: WIN32_ERROR = 9101u32; -pub const DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION: WIN32_ERROR = 9108u32; -pub const DNS_ERROR_KSP_NOT_ACCESSIBLE: WIN32_ERROR = 9112u32; -pub const DNS_ERROR_LOAD_ZONESCOPE_FAILED: WIN32_ERROR = 9956u32; -pub const DNS_ERROR_NAME_DOES_NOT_EXIST: WIN32_ERROR = 9714u32; -pub const DNS_ERROR_NAME_NOT_IN_ZONE: WIN32_ERROR = 9706u32; -pub const DNS_ERROR_NBSTAT_INIT_FAILED: WIN32_ERROR = 9617u32; -pub const DNS_ERROR_NEED_SECONDARY_ADDRESSES: WIN32_ERROR = 9614u32; -pub const DNS_ERROR_NEED_WINS_SERVERS: WIN32_ERROR = 9616u32; -pub const DNS_ERROR_NODE_CREATION_FAILED: WIN32_ERROR = 9703u32; -pub const DNS_ERROR_NODE_IS_CNAME: WIN32_ERROR = 9708u32; -pub const DNS_ERROR_NODE_IS_DNAME: WIN32_ERROR = 9720u32; -pub const DNS_ERROR_NON_RFC_NAME: WIN32_ERROR = 9556u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD: WIN32_ERROR = 9119u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_RODC: WIN32_ERROR = 9569u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER: WIN32_ERROR = 9562u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE: WIN32_ERROR = 9102u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE: WIN32_ERROR = 9121u32; -pub const DNS_ERROR_NOT_ALLOWED_ON_ZSK: WIN32_ERROR = 9118u32; -pub const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION: WIN32_ERROR = 9563u32; -pub const DNS_ERROR_NOT_ALLOWED_UNDER_DNAME: WIN32_ERROR = 9570u32; -pub const DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES: WIN32_ERROR = 9955u32; -pub const DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS: WIN32_ERROR = 9104u32; -pub const DNS_ERROR_NOT_UNIQUE: WIN32_ERROR = 9555u32; -pub const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE: WIN32_ERROR = 9719u32; -pub const DNS_ERROR_NO_CREATE_CACHE_DATA: WIN32_ERROR = 9713u32; -pub const DNS_ERROR_NO_DNS_SERVERS: WIN32_ERROR = 9852u32; -pub const DNS_ERROR_NO_MEMORY: WIN32_ERROR = 14u32; -pub const DNS_ERROR_NO_PACKET: WIN32_ERROR = 9503u32; -pub const DNS_ERROR_NO_TCPIP: WIN32_ERROR = 9851u32; -pub const DNS_ERROR_NO_VALID_TRUST_ANCHORS: WIN32_ERROR = 9127u32; -pub const DNS_ERROR_NO_ZONE_INFO: WIN32_ERROR = 9602u32; -pub const DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1: WIN32_ERROR = 9103u32; -pub const DNS_ERROR_NSEC3_NAME_COLLISION: WIN32_ERROR = 9129u32; -pub const DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1: WIN32_ERROR = 9130u32; -pub const DNS_ERROR_NUMERIC_NAME: WIN32_ERROR = 9561u32; -pub const DNS_ERROR_POLICY_ALREADY_EXISTS: WIN32_ERROR = 9971u32; -pub const DNS_ERROR_POLICY_DOES_NOT_EXIST: WIN32_ERROR = 9972u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA: WIN32_ERROR = 9973u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET: WIN32_ERROR = 9990u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN: WIN32_ERROR = 9994u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE: WIN32_ERROR = 9993u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL: WIN32_ERROR = 9992u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE: WIN32_ERROR = 9995u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY: WIN32_ERROR = 9996u32; -pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL: WIN32_ERROR = 9991u32; -pub const DNS_ERROR_POLICY_INVALID_NAME: WIN32_ERROR = 9982u32; -pub const DNS_ERROR_POLICY_INVALID_SETTINGS: WIN32_ERROR = 9974u32; -pub const DNS_ERROR_POLICY_INVALID_WEIGHT: WIN32_ERROR = 9981u32; -pub const DNS_ERROR_POLICY_LOCKED: WIN32_ERROR = 9980u32; -pub const DNS_ERROR_POLICY_MISSING_CRITERIA: WIN32_ERROR = 9983u32; -pub const DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID: WIN32_ERROR = 9985u32; -pub const DNS_ERROR_POLICY_SCOPE_MISSING: WIN32_ERROR = 9986u32; -pub const DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED: WIN32_ERROR = 9987u32; -pub const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE: WIN32_ERROR = 9651u32; -pub const DNS_ERROR_RCODE: WIN32_ERROR = 9504u32; -pub const DNS_ERROR_RCODE_BADKEY: WIN32_ERROR = 9017u32; -pub const DNS_ERROR_RCODE_BADSIG: WIN32_ERROR = 9016u32; -pub const DNS_ERROR_RCODE_BADTIME: WIN32_ERROR = 9018u32; -pub const DNS_ERROR_RCODE_FORMAT_ERROR: WIN32_ERROR = 9001u32; -pub const DNS_ERROR_RCODE_NAME_ERROR: WIN32_ERROR = 9003u32; -pub const DNS_ERROR_RCODE_NOTAUTH: WIN32_ERROR = 9009u32; -pub const DNS_ERROR_RCODE_NOTZONE: WIN32_ERROR = 9010u32; -pub const DNS_ERROR_RCODE_NOT_IMPLEMENTED: WIN32_ERROR = 9004u32; -pub const DNS_ERROR_RCODE_NXRRSET: WIN32_ERROR = 9008u32; -pub const DNS_ERROR_RCODE_REFUSED: WIN32_ERROR = 9005u32; -pub const DNS_ERROR_RCODE_SERVER_FAILURE: WIN32_ERROR = 9002u32; -pub const DNS_ERROR_RCODE_YXDOMAIN: WIN32_ERROR = 9006u32; -pub const DNS_ERROR_RCODE_YXRRSET: WIN32_ERROR = 9007u32; -pub const DNS_ERROR_RECORD_ALREADY_EXISTS: WIN32_ERROR = 9711u32; -pub const DNS_ERROR_RECORD_DOES_NOT_EXIST: WIN32_ERROR = 9701u32; -pub const DNS_ERROR_RECORD_FORMAT: WIN32_ERROR = 9702u32; -pub const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT: WIN32_ERROR = 9710u32; -pub const DNS_ERROR_RECORD_TIMED_OUT: WIN32_ERROR = 9705u32; -pub const DNS_ERROR_ROLLOVER_ALREADY_QUEUED: WIN32_ERROR = 9120u32; -pub const DNS_ERROR_ROLLOVER_IN_PROGRESS: WIN32_ERROR = 9116u32; -pub const DNS_ERROR_ROLLOVER_NOT_POKEABLE: WIN32_ERROR = 9128u32; -pub const DNS_ERROR_RRL_INVALID_IPV4_PREFIX: WIN32_ERROR = 9913u32; -pub const DNS_ERROR_RRL_INVALID_IPV6_PREFIX: WIN32_ERROR = 9914u32; -pub const DNS_ERROR_RRL_INVALID_LEAK_RATE: WIN32_ERROR = 9916u32; -pub const DNS_ERROR_RRL_INVALID_TC_RATE: WIN32_ERROR = 9915u32; -pub const DNS_ERROR_RRL_INVALID_WINDOW_SIZE: WIN32_ERROR = 9912u32; -pub const DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE: WIN32_ERROR = 9917u32; -pub const DNS_ERROR_RRL_NOT_ENABLED: WIN32_ERROR = 9911u32; -pub const DNS_ERROR_SCOPE_ALREADY_EXISTS: WIN32_ERROR = 9963u32; -pub const DNS_ERROR_SCOPE_DOES_NOT_EXIST: WIN32_ERROR = 9959u32; -pub const DNS_ERROR_SCOPE_LOCKED: WIN32_ERROR = 9962u32; -pub const DNS_ERROR_SECONDARY_DATA: WIN32_ERROR = 9712u32; -pub const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP: WIN32_ERROR = 9612u32; -pub const DNS_ERROR_SERVERSCOPE_IS_REFERENCED: WIN32_ERROR = 9988u32; -pub const DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE: WIN32_ERROR = 9107u32; -pub const DNS_ERROR_SOA_DELETE_INVALID: WIN32_ERROR = 9618u32; -pub const DNS_ERROR_STANDBY_KEY_NOT_PRESENT: WIN32_ERROR = 9117u32; -pub const DNS_ERROR_SUBNET_ALREADY_EXISTS: WIN32_ERROR = 9979u32; -pub const DNS_ERROR_SUBNET_DOES_NOT_EXIST: WIN32_ERROR = 9978u32; -pub const DNS_ERROR_TOO_MANY_SKDS: WIN32_ERROR = 9113u32; -pub const DNS_ERROR_TRY_AGAIN_LATER: WIN32_ERROR = 9554u32; -pub const DNS_ERROR_UNEXPECTED_CNG_ERROR: WIN32_ERROR = 9110u32; -pub const DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR: WIN32_ERROR = 9109u32; -pub const DNS_ERROR_UNKNOWN_RECORD_TYPE: WIN32_ERROR = 9704u32; -pub const DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION: WIN32_ERROR = 9111u32; -pub const DNS_ERROR_UNSECURE_PACKET: WIN32_ERROR = 9505u32; -pub const DNS_ERROR_UNSUPPORTED_ALGORITHM: WIN32_ERROR = 9105u32; -pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS: WIN32_ERROR = 9921u32; -pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST: WIN32_ERROR = 9922u32; -pub const DNS_ERROR_VIRTUALIZATION_TREE_LOCKED: WIN32_ERROR = 9923u32; -pub const DNS_ERROR_WINS_INIT_FAILED: WIN32_ERROR = 9615u32; -pub const DNS_ERROR_ZONESCOPE_ALREADY_EXISTS: WIN32_ERROR = 9951u32; -pub const DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST: WIN32_ERROR = 9952u32; -pub const DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED: WIN32_ERROR = 9957u32; -pub const DNS_ERROR_ZONESCOPE_IS_REFERENCED: WIN32_ERROR = 9989u32; -pub const DNS_ERROR_ZONE_ALREADY_EXISTS: WIN32_ERROR = 9609u32; -pub const DNS_ERROR_ZONE_CONFIGURATION_ERROR: WIN32_ERROR = 9604u32; -pub const DNS_ERROR_ZONE_CREATION_FAILED: WIN32_ERROR = 9608u32; -pub const DNS_ERROR_ZONE_DOES_NOT_EXIST: WIN32_ERROR = 9601u32; -pub const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS: WIN32_ERROR = 9606u32; -pub const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD: WIN32_ERROR = 9605u32; -pub const DNS_ERROR_ZONE_IS_SHUTDOWN: WIN32_ERROR = 9621u32; -pub const DNS_ERROR_ZONE_LOCKED: WIN32_ERROR = 9607u32; -pub const DNS_ERROR_ZONE_LOCKED_FOR_SIGNING: WIN32_ERROR = 9622u32; -pub const DNS_ERROR_ZONE_NOT_SECONDARY: WIN32_ERROR = 9613u32; -pub const DNS_ERROR_ZONE_REQUIRES_MASTER_IP: WIN32_ERROR = 9620u32; -pub const DUPLICATE_CLOSE_SOURCE: DUPLICATE_HANDLE_OPTIONS = 1u32; -pub type DUPLICATE_HANDLE_OPTIONS = u32; -pub const DUPLICATE_SAME_ACCESS: DUPLICATE_HANDLE_OPTIONS = 2u32; -pub const ENABLE_AUTO_POSITION: CONSOLE_MODE = 256u32; -pub const ENABLE_ECHO_INPUT: CONSOLE_MODE = 4u32; -pub const ENABLE_EXTENDED_FLAGS: CONSOLE_MODE = 128u32; -pub const ENABLE_INSERT_MODE: CONSOLE_MODE = 32u32; -pub const ENABLE_LINE_INPUT: CONSOLE_MODE = 2u32; -pub const ENABLE_LVB_GRID_WORLDWIDE: CONSOLE_MODE = 16u32; -pub const ENABLE_MOUSE_INPUT: CONSOLE_MODE = 16u32; -pub const ENABLE_PROCESSED_INPUT: CONSOLE_MODE = 1u32; -pub const ENABLE_PROCESSED_OUTPUT: CONSOLE_MODE = 1u32; -pub const ENABLE_QUICK_EDIT_MODE: CONSOLE_MODE = 64u32; -pub const ENABLE_VIRTUAL_TERMINAL_INPUT: CONSOLE_MODE = 512u32; -pub const ENABLE_VIRTUAL_TERMINAL_PROCESSING: CONSOLE_MODE = 4u32; -pub const ENABLE_WINDOW_INPUT: CONSOLE_MODE = 8u32; -pub const ENABLE_WRAP_AT_EOL_OUTPUT: CONSOLE_MODE = 2u32; -pub const ERROR_ABANDONED_WAIT_0: WIN32_ERROR = 735u32; -pub const ERROR_ABANDONED_WAIT_63: WIN32_ERROR = 736u32; -pub const ERROR_ABANDON_HIBERFILE: WIN32_ERROR = 787u32; -pub const ERROR_ABIOS_ERROR: WIN32_ERROR = 538u32; -pub const ERROR_ACCESS_AUDIT_BY_POLICY: WIN32_ERROR = 785u32; -pub const ERROR_ACCESS_DENIED: WIN32_ERROR = 5u32; -pub const ERROR_ACCESS_DENIED_APPDATA: WIN32_ERROR = 502u32; -pub const ERROR_ACCESS_DISABLED_BY_POLICY: WIN32_ERROR = 1260u32; -pub const ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: WIN32_ERROR = 786u32; -pub const ERROR_ACCESS_DISABLED_WEBBLADE: WIN32_ERROR = 1277u32; -pub const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER: WIN32_ERROR = 1278u32; -pub const ERROR_ACCOUNT_DISABLED: WIN32_ERROR = 1331u32; -pub const ERROR_ACCOUNT_EXPIRED: WIN32_ERROR = 1793u32; -pub const ERROR_ACCOUNT_LOCKED_OUT: WIN32_ERROR = 1909u32; -pub const ERROR_ACCOUNT_RESTRICTION: WIN32_ERROR = 1327u32; -pub const ERROR_ACPI_ERROR: WIN32_ERROR = 669u32; -pub const ERROR_ACTIVE_CONNECTIONS: WIN32_ERROR = 2402u32; -pub const ERROR_ADAP_HDW_ERR: WIN32_ERROR = 57u32; -pub const ERROR_ADDRESS_ALREADY_ASSOCIATED: WIN32_ERROR = 1227u32; -pub const ERROR_ADDRESS_NOT_ASSOCIATED: WIN32_ERROR = 1228u32; -pub const ERROR_ALERTED: WIN32_ERROR = 739u32; -pub const ERROR_ALIAS_EXISTS: WIN32_ERROR = 1379u32; -pub const ERROR_ALLOCATE_BUCKET: WIN32_ERROR = 602u32; -pub const ERROR_ALLOTTED_SPACE_EXCEEDED: WIN32_ERROR = 1344u32; -pub const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1933u32; -pub const ERROR_ALREADY_ASSIGNED: WIN32_ERROR = 85u32; -pub const ERROR_ALREADY_EXISTS: WIN32_ERROR = 183u32; -pub const ERROR_ALREADY_FIBER: WIN32_ERROR = 1280u32; -pub const ERROR_ALREADY_HAS_STREAM_ID: WIN32_ERROR = 4444u32; -pub const ERROR_ALREADY_INITIALIZED: WIN32_ERROR = 1247u32; -pub const ERROR_ALREADY_REGISTERED: WIN32_ERROR = 1242u32; -pub const ERROR_ALREADY_RUNNING_LKG: WIN32_ERROR = 1074u32; -pub const ERROR_ALREADY_THREAD: WIN32_ERROR = 1281u32; -pub const ERROR_ALREADY_WAITING: WIN32_ERROR = 1904u32; -pub const ERROR_ALREADY_WIN32: WIN32_ERROR = 719u32; -pub const ERROR_API_UNAVAILABLE: WIN32_ERROR = 15841u32; -pub const ERROR_APPCONTAINER_REQUIRED: WIN32_ERROR = 4251u32; -pub const ERROR_APPEXEC_APP_COMPAT_BLOCK: WIN32_ERROR = 3068u32; -pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT: WIN32_ERROR = 3069u32; -pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING: WIN32_ERROR = 3071u32; -pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES: WIN32_ERROR = 3072u32; -pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION: WIN32_ERROR = 3070u32; -pub const ERROR_APPEXEC_CONDITION_NOT_SATISFIED: WIN32_ERROR = 3060u32; -pub const ERROR_APPEXEC_HANDLE_INVALIDATED: WIN32_ERROR = 3061u32; -pub const ERROR_APPEXEC_HOST_ID_MISMATCH: WIN32_ERROR = 3066u32; -pub const ERROR_APPEXEC_INVALID_HOST_GENERATION: WIN32_ERROR = 3062u32; -pub const ERROR_APPEXEC_INVALID_HOST_STATE: WIN32_ERROR = 3064u32; -pub const ERROR_APPEXEC_NO_DONOR: WIN32_ERROR = 3065u32; -pub const ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION: WIN32_ERROR = 3063u32; -pub const ERROR_APPEXEC_UNKNOWN_USER: WIN32_ERROR = 3067u32; -pub const ERROR_APPHELP_BLOCK: WIN32_ERROR = 1259u32; -pub const ERROR_APPX_FILE_NOT_ENCRYPTED: WIN32_ERROR = 409u32; -pub const ERROR_APP_HANG: WIN32_ERROR = 1298u32; -pub const ERROR_APP_INIT_FAILURE: WIN32_ERROR = 575u32; -pub const ERROR_APP_WRONG_OS: WIN32_ERROR = 1151u32; -pub const ERROR_ARBITRATION_UNHANDLED: WIN32_ERROR = 723u32; -pub const ERROR_ARENA_TRASHED: WIN32_ERROR = 7u32; -pub const ERROR_ARITHMETIC_OVERFLOW: WIN32_ERROR = 534u32; -pub const ERROR_ASSERTION_FAILURE: WIN32_ERROR = 668u32; -pub const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED: WIN32_ERROR = 174u32; -pub const ERROR_AUDIT_FAILED: WIN32_ERROR = 606u32; -pub const ERROR_AUTHENTICATION_FIREWALL_FAILED: WIN32_ERROR = 1935u32; -pub const ERROR_AUTHIP_FAILURE: WIN32_ERROR = 1469u32; -pub const ERROR_AUTODATASEG_EXCEEDS_64k: WIN32_ERROR = 199u32; -pub const ERROR_BACKUP_CONTROLLER: WIN32_ERROR = 586u32; -pub const ERROR_BADDB: WIN32_ERROR = 1009u32; -pub const ERROR_BADKEY: WIN32_ERROR = 1010u32; -pub const ERROR_BADSTARTPOSITION: WIN32_ERROR = 778u32; -pub const ERROR_BAD_ACCESSOR_FLAGS: WIN32_ERROR = 773u32; -pub const ERROR_BAD_ARGUMENTS: WIN32_ERROR = 160u32; -pub const ERROR_BAD_COMMAND: WIN32_ERROR = 22u32; -pub const ERROR_BAD_COMPRESSION_BUFFER: WIN32_ERROR = 605u32; -pub const ERROR_BAD_CONFIGURATION: WIN32_ERROR = 1610u32; -pub const ERROR_BAD_CURRENT_DIRECTORY: WIN32_ERROR = 703u32; -pub const ERROR_BAD_DESCRIPTOR_FORMAT: WIN32_ERROR = 1361u32; -pub const ERROR_BAD_DEVICE: WIN32_ERROR = 1200u32; -pub const ERROR_BAD_DEVICE_PATH: WIN32_ERROR = 330u32; -pub const ERROR_BAD_DEV_TYPE: WIN32_ERROR = 66u32; -pub const ERROR_BAD_DLL_ENTRYPOINT: WIN32_ERROR = 609u32; -pub const ERROR_BAD_DRIVER_LEVEL: WIN32_ERROR = 119u32; -pub const ERROR_BAD_ENVIRONMENT: WIN32_ERROR = 10u32; -pub const ERROR_BAD_EXE_FORMAT: WIN32_ERROR = 193u32; -pub const ERROR_BAD_FILE_TYPE: WIN32_ERROR = 222u32; -pub const ERROR_BAD_FORMAT: WIN32_ERROR = 11u32; -pub const ERROR_BAD_FUNCTION_TABLE: WIN32_ERROR = 559u32; -pub const ERROR_BAD_IMPERSONATION_LEVEL: WIN32_ERROR = 1346u32; -pub const ERROR_BAD_INHERITANCE_ACL: WIN32_ERROR = 1340u32; -pub const ERROR_BAD_LENGTH: WIN32_ERROR = 24u32; -pub const ERROR_BAD_LOGON_SESSION_STATE: WIN32_ERROR = 1365u32; -pub const ERROR_BAD_MCFG_TABLE: WIN32_ERROR = 791u32; -pub const ERROR_BAD_NETPATH: WIN32_ERROR = 53u32; -pub const ERROR_BAD_NET_NAME: WIN32_ERROR = 67u32; -pub const ERROR_BAD_NET_RESP: WIN32_ERROR = 58u32; -pub const ERROR_BAD_PATHNAME: WIN32_ERROR = 161u32; -pub const ERROR_BAD_PIPE: WIN32_ERROR = 230u32; -pub const ERROR_BAD_PROFILE: WIN32_ERROR = 1206u32; -pub const ERROR_BAD_PROVIDER: WIN32_ERROR = 1204u32; -pub const ERROR_BAD_QUERY_SYNTAX: WIN32_ERROR = 1615u32; -pub const ERROR_BAD_RECOVERY_POLICY: WIN32_ERROR = 6012u32; -pub const ERROR_BAD_REM_ADAP: WIN32_ERROR = 60u32; -pub const ERROR_BAD_SERVICE_ENTRYPOINT: WIN32_ERROR = 610u32; -pub const ERROR_BAD_STACK: WIN32_ERROR = 543u32; -pub const ERROR_BAD_THREADID_ADDR: WIN32_ERROR = 159u32; -pub const ERROR_BAD_TOKEN_TYPE: WIN32_ERROR = 1349u32; -pub const ERROR_BAD_UNIT: WIN32_ERROR = 20u32; -pub const ERROR_BAD_USERNAME: WIN32_ERROR = 2202u32; -pub const ERROR_BAD_USER_PROFILE: WIN32_ERROR = 1253u32; -pub const ERROR_BAD_VALIDATION_CLASS: WIN32_ERROR = 1348u32; -pub const ERROR_BEGINNING_OF_MEDIA: WIN32_ERROR = 1102u32; -pub const ERROR_BEYOND_VDL: WIN32_ERROR = 1289u32; -pub const ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT: WIN32_ERROR = 585u32; -pub const ERROR_BLOCKED_BY_PARENTAL_CONTROLS: WIN32_ERROR = 346u32; -pub const ERROR_BLOCK_SHARED: WIN32_ERROR = 514u32; -pub const ERROR_BLOCK_SOURCE_WEAK_REFERENCE_INVALID: WIN32_ERROR = 512u32; -pub const ERROR_BLOCK_TARGET_WEAK_REFERENCE_INVALID: WIN32_ERROR = 513u32; -pub const ERROR_BLOCK_TOO_MANY_REFERENCES: WIN32_ERROR = 347u32; -pub const ERROR_BLOCK_WEAK_REFERENCE_INVALID: WIN32_ERROR = 511u32; -pub const ERROR_BOOT_ALREADY_ACCEPTED: WIN32_ERROR = 1076u32; -pub const ERROR_BROKEN_PIPE: WIN32_ERROR = 109u32; -pub const ERROR_BUFFER_ALL_ZEROS: WIN32_ERROR = 754u32; -pub const ERROR_BUFFER_OVERFLOW: WIN32_ERROR = 111u32; -pub const ERROR_BUSY: WIN32_ERROR = 170u32; -pub const ERROR_BUSY_DRIVE: WIN32_ERROR = 142u32; -pub const ERROR_BUS_RESET: WIN32_ERROR = 1111u32; -pub const ERROR_BYPASSIO_FLT_NOT_SUPPORTED: WIN32_ERROR = 506u32; -pub const ERROR_CACHE_PAGE_LOCKED: WIN32_ERROR = 752u32; -pub const ERROR_CALLBACK_INVOKE_INLINE: WIN32_ERROR = 812u32; -pub const ERROR_CALLBACK_POP_STACK: WIN32_ERROR = 768u32; -pub const ERROR_CALLBACK_SUPPLIED_INVALID_DATA: WIN32_ERROR = 1273u32; -pub const ERROR_CALL_NOT_IMPLEMENTED: WIN32_ERROR = 120u32; -pub const ERROR_CANCELLED: WIN32_ERROR = 1223u32; -pub const ERROR_CANCEL_VIOLATION: WIN32_ERROR = 173u32; -pub const ERROR_CANNOT_BREAK_OPLOCK: WIN32_ERROR = 802u32; -pub const ERROR_CANNOT_COPY: WIN32_ERROR = 266u32; -pub const ERROR_CANNOT_DETECT_DRIVER_FAILURE: WIN32_ERROR = 1080u32; -pub const ERROR_CANNOT_DETECT_PROCESS_ABORT: WIN32_ERROR = 1081u32; -pub const ERROR_CANNOT_FIND_WND_CLASS: WIN32_ERROR = 1407u32; -pub const ERROR_CANNOT_GRANT_REQUESTED_OPLOCK: WIN32_ERROR = 801u32; -pub const ERROR_CANNOT_IMPERSONATE: WIN32_ERROR = 1368u32; -pub const ERROR_CANNOT_LOAD_REGISTRY_FILE: WIN32_ERROR = 589u32; -pub const ERROR_CANNOT_MAKE: WIN32_ERROR = 82u32; -pub const ERROR_CANNOT_OPEN_PROFILE: WIN32_ERROR = 1205u32; -pub const ERROR_CANTFETCHBACKWARDS: WIN32_ERROR = 770u32; -pub const ERROR_CANTOPEN: WIN32_ERROR = 1011u32; -pub const ERROR_CANTREAD: WIN32_ERROR = 1012u32; -pub const ERROR_CANTSCROLLBACKWARDS: WIN32_ERROR = 771u32; -pub const ERROR_CANTWRITE: WIN32_ERROR = 1013u32; -pub const ERROR_CANT_ACCESS_DOMAIN_INFO: WIN32_ERROR = 1351u32; -pub const ERROR_CANT_ACCESS_FILE: WIN32_ERROR = 1920u32; -pub const ERROR_CANT_CLEAR_ENCRYPTION_FLAG: WIN32_ERROR = 432u32; -pub const ERROR_CANT_DISABLE_MANDATORY: WIN32_ERROR = 1310u32; -pub const ERROR_CANT_ENABLE_DENY_ONLY: WIN32_ERROR = 629u32; -pub const ERROR_CANT_OPEN_ANONYMOUS: WIN32_ERROR = 1347u32; -pub const ERROR_CANT_RESOLVE_FILENAME: WIN32_ERROR = 1921u32; -pub const ERROR_CANT_TERMINATE_SELF: WIN32_ERROR = 555u32; -pub const ERROR_CANT_WAIT: WIN32_ERROR = 554u32; -pub const ERROR_CAN_NOT_COMPLETE: WIN32_ERROR = 1003u32; -pub const ERROR_CAPAUTHZ_CHANGE_TYPE: WIN32_ERROR = 451u32; -pub const ERROR_CAPAUTHZ_DB_CORRUPTED: WIN32_ERROR = 455u32; -pub const ERROR_CAPAUTHZ_NOT_AUTHORIZED: WIN32_ERROR = 453u32; -pub const ERROR_CAPAUTHZ_NOT_DEVUNLOCKED: WIN32_ERROR = 450u32; -pub const ERROR_CAPAUTHZ_NOT_PROVISIONED: WIN32_ERROR = 452u32; -pub const ERROR_CAPAUTHZ_NO_POLICY: WIN32_ERROR = 454u32; -pub const ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED: WIN32_ERROR = 459u32; -pub const ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG: WIN32_ERROR = 456u32; -pub const ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY: WIN32_ERROR = 457u32; -pub const ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH: WIN32_ERROR = 460u32; -pub const ERROR_CAPAUTHZ_SCCD_PARSE_ERROR: WIN32_ERROR = 458u32; -pub const ERROR_CARDBUS_NOT_SUPPORTED: WIN32_ERROR = 724u32; -pub const ERROR_CASE_DIFFERING_NAMES_IN_DIR: WIN32_ERROR = 424u32; -pub const ERROR_CASE_SENSITIVE_PATH: WIN32_ERROR = 442u32; -pub const ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT: WIN32_ERROR = 817u32; -pub const ERROR_CHECKING_FILE_SYSTEM: WIN32_ERROR = 712u32; -pub const ERROR_CHECKOUT_REQUIRED: WIN32_ERROR = 221u32; -pub const ERROR_CHILD_MUST_BE_VOLATILE: WIN32_ERROR = 1021u32; -pub const ERROR_CHILD_NOT_COMPLETE: WIN32_ERROR = 129u32; -pub const ERROR_CHILD_PROCESS_BLOCKED: WIN32_ERROR = 367u32; -pub const ERROR_CHILD_WINDOW_MENU: WIN32_ERROR = 1436u32; -pub const ERROR_CIMFS_IMAGE_CORRUPT: WIN32_ERROR = 470u32; -pub const ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED: WIN32_ERROR = 471u32; -pub const ERROR_CIRCULAR_DEPENDENCY: WIN32_ERROR = 1059u32; -pub const ERROR_CLASS_ALREADY_EXISTS: WIN32_ERROR = 1410u32; -pub const ERROR_CLASS_DOES_NOT_EXIST: WIN32_ERROR = 1411u32; -pub const ERROR_CLASS_HAS_WINDOWS: WIN32_ERROR = 1412u32; -pub const ERROR_CLIENT_SERVER_PARAMETERS_INVALID: WIN32_ERROR = 597u32; -pub const ERROR_CLIPBOARD_NOT_OPEN: WIN32_ERROR = 1418u32; -pub const ERROR_CLOUD_FILE_ACCESS_DENIED: WIN32_ERROR = 395u32; -pub const ERROR_CLOUD_FILE_ALREADY_CONNECTED: WIN32_ERROR = 378u32; -pub const ERROR_CLOUD_FILE_AUTHENTICATION_FAILED: WIN32_ERROR = 386u32; -pub const ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY: WIN32_ERROR = 382u32; -pub const ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED: WIN32_ERROR = 434u32; -pub const ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS: WIN32_ERROR = 396u32; -pub const ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES: WIN32_ERROR = 387u32; -pub const ERROR_CLOUD_FILE_INVALID_REQUEST: WIN32_ERROR = 380u32; -pub const ERROR_CLOUD_FILE_IN_USE: WIN32_ERROR = 391u32; -pub const ERROR_CLOUD_FILE_METADATA_CORRUPT: WIN32_ERROR = 363u32; -pub const ERROR_CLOUD_FILE_METADATA_TOO_LARGE: WIN32_ERROR = 364u32; -pub const ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE: WIN32_ERROR = 388u32; -pub const ERROR_CLOUD_FILE_NOT_IN_SYNC: WIN32_ERROR = 377u32; -pub const ERROR_CLOUD_FILE_NOT_SUPPORTED: WIN32_ERROR = 379u32; -pub const ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT: WIN32_ERROR = 390u32; -pub const ERROR_CLOUD_FILE_PINNED: WIN32_ERROR = 392u32; -pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: WIN32_ERROR = 366u32; -pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: WIN32_ERROR = 365u32; -pub const ERROR_CLOUD_FILE_PROPERTY_CORRUPT: WIN32_ERROR = 394u32; -pub const ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT: WIN32_ERROR = 397u32; -pub const ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED: WIN32_ERROR = 375u32; -pub const ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING: WIN32_ERROR = 362u32; -pub const ERROR_CLOUD_FILE_PROVIDER_TERMINATED: WIN32_ERROR = 404u32; -pub const ERROR_CLOUD_FILE_READ_ONLY_VOLUME: WIN32_ERROR = 381u32; -pub const ERROR_CLOUD_FILE_REQUEST_ABORTED: WIN32_ERROR = 393u32; -pub const ERROR_CLOUD_FILE_REQUEST_CANCELED: WIN32_ERROR = 398u32; -pub const ERROR_CLOUD_FILE_REQUEST_TIMEOUT: WIN32_ERROR = 426u32; -pub const ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT: WIN32_ERROR = 358u32; -pub const ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS: WIN32_ERROR = 374u32; -pub const ERROR_CLOUD_FILE_UNSUCCESSFUL: WIN32_ERROR = 389u32; -pub const ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT: WIN32_ERROR = 475u32; -pub const ERROR_CLOUD_FILE_VALIDATION_FAILED: WIN32_ERROR = 383u32; -pub const ERROR_COMMITMENT_LIMIT: WIN32_ERROR = 1455u32; -pub const ERROR_COMMITMENT_MINIMUM: WIN32_ERROR = 635u32; -pub const ERROR_COMPRESSED_FILE_NOT_SUPPORTED: WIN32_ERROR = 335u32; -pub const ERROR_COMPRESSION_DISABLED: WIN32_ERROR = 769u32; -pub const ERROR_COMPRESSION_NOT_BENEFICIAL: WIN32_ERROR = 344u32; -pub const ERROR_CONNECTED_OTHER_PASSWORD: WIN32_ERROR = 2108u32; -pub const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT: WIN32_ERROR = 2109u32; -pub const ERROR_CONNECTION_ABORTED: WIN32_ERROR = 1236u32; -pub const ERROR_CONNECTION_ACTIVE: WIN32_ERROR = 1230u32; -pub const ERROR_CONNECTION_COUNT_LIMIT: WIN32_ERROR = 1238u32; -pub const ERROR_CONNECTION_INVALID: WIN32_ERROR = 1229u32; -pub const ERROR_CONNECTION_REFUSED: WIN32_ERROR = 1225u32; -pub const ERROR_CONNECTION_UNAVAIL: WIN32_ERROR = 1201u32; -pub const ERROR_CONTAINER_ASSIGNED: WIN32_ERROR = 1504u32; -pub const ERROR_CONTENT_BLOCKED: WIN32_ERROR = 1296u32; -pub const ERROR_CONTEXT_EXPIRED: WIN32_ERROR = 1931u32; -pub const ERROR_CONTINUE: WIN32_ERROR = 1246u32; -pub const ERROR_CONTROL_C_EXIT: WIN32_ERROR = 572u32; -pub const ERROR_CONTROL_ID_NOT_FOUND: WIN32_ERROR = 1421u32; -pub const ERROR_CONVERT_TO_LARGE: WIN32_ERROR = 600u32; -pub const ERROR_CORRUPT_LOG_CLEARED: WIN32_ERROR = 798u32; -pub const ERROR_CORRUPT_LOG_CORRUPTED: WIN32_ERROR = 795u32; -pub const ERROR_CORRUPT_LOG_DELETED_FULL: WIN32_ERROR = 797u32; -pub const ERROR_CORRUPT_LOG_OVERFULL: WIN32_ERROR = 794u32; -pub const ERROR_CORRUPT_LOG_UNAVAILABLE: WIN32_ERROR = 796u32; -pub const ERROR_CORRUPT_SYSTEM_FILE: WIN32_ERROR = 634u32; -pub const ERROR_COULD_NOT_INTERPRET: WIN32_ERROR = 552u32; -pub const ERROR_COUNTER_TIMEOUT: WIN32_ERROR = 1121u32; -pub const ERROR_CPU_SET_INVALID: WIN32_ERROR = 813u32; -pub const ERROR_CRASH_DUMP: WIN32_ERROR = 753u32; -pub const ERROR_CRC: WIN32_ERROR = 23u32; -pub const ERROR_CREATE_FAILED: WIN32_ERROR = 1631u32; -pub const ERROR_CROSS_PARTITION_VIOLATION: WIN32_ERROR = 1661u32; -pub const ERROR_CSCSHARE_OFFLINE: WIN32_ERROR = 1262u32; -pub const ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: WIN32_ERROR = 6019u32; -pub const ERROR_CS_ENCRYPTION_FILE_NOT_CSE: WIN32_ERROR = 6021u32; -pub const ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: WIN32_ERROR = 6017u32; -pub const ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: WIN32_ERROR = 6020u32; -pub const ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER: WIN32_ERROR = 6018u32; -pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: WIN32_ERROR = 7040u32; -pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: WIN32_ERROR = 7012u32; -pub const ERROR_CURRENT_DIRECTORY: WIN32_ERROR = 16u32; -pub const ERROR_CURRENT_DOMAIN_NOT_ALLOWED: WIN32_ERROR = 1399u32; -pub const ERROR_DATABASE_DOES_NOT_EXIST: WIN32_ERROR = 1065u32; -pub const ERROR_DATATYPE_MISMATCH: WIN32_ERROR = 1629u32; -pub const ERROR_DATA_CHECKSUM_ERROR: WIN32_ERROR = 323u32; -pub const ERROR_DATA_NOT_ACCEPTED: WIN32_ERROR = 592u32; -pub const ERROR_DAX_MAPPING_EXISTS: WIN32_ERROR = 361u32; -pub const ERROR_DBG_COMMAND_EXCEPTION: WIN32_ERROR = 697u32; -pub const ERROR_DBG_CONTINUE: WIN32_ERROR = 767u32; -pub const ERROR_DBG_CONTROL_BREAK: WIN32_ERROR = 696u32; -pub const ERROR_DBG_CONTROL_C: WIN32_ERROR = 693u32; -pub const ERROR_DBG_EXCEPTION_HANDLED: WIN32_ERROR = 766u32; -pub const ERROR_DBG_EXCEPTION_NOT_HANDLED: WIN32_ERROR = 688u32; -pub const ERROR_DBG_PRINTEXCEPTION_C: WIN32_ERROR = 694u32; -pub const ERROR_DBG_REPLY_LATER: WIN32_ERROR = 689u32; -pub const ERROR_DBG_RIPEXCEPTION: WIN32_ERROR = 695u32; -pub const ERROR_DBG_TERMINATE_PROCESS: WIN32_ERROR = 692u32; -pub const ERROR_DBG_TERMINATE_THREAD: WIN32_ERROR = 691u32; -pub const ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE: WIN32_ERROR = 690u32; -pub const ERROR_DC_NOT_FOUND: WIN32_ERROR = 1425u32; -pub const ERROR_DDE_FAIL: WIN32_ERROR = 1156u32; -pub const ERROR_DEBUGGER_INACTIVE: WIN32_ERROR = 1284u32; -pub const ERROR_DEBUG_ATTACH_FAILED: WIN32_ERROR = 590u32; -pub const ERROR_DECRYPTION_FAILED: WIN32_ERROR = 6001u32; -pub const ERROR_DELAY_LOAD_FAILED: WIN32_ERROR = 1285u32; -pub const ERROR_DELETE_PENDING: WIN32_ERROR = 303u32; -pub const ERROR_DEPENDENT_SERVICES_RUNNING: WIN32_ERROR = 1051u32; -pub const ERROR_DESTINATION_ELEMENT_FULL: WIN32_ERROR = 1161u32; -pub const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD: WIN32_ERROR = 1435u32; -pub const ERROR_DEVICE_ALREADY_ATTACHED: WIN32_ERROR = 548u32; -pub const ERROR_DEVICE_ALREADY_REMEMBERED: WIN32_ERROR = 1202u32; -pub const ERROR_DEVICE_DOOR_OPEN: WIN32_ERROR = 1166u32; -pub const ERROR_DEVICE_ENUMERATION_ERROR: WIN32_ERROR = 648u32; -pub const ERROR_DEVICE_FEATURE_NOT_SUPPORTED: WIN32_ERROR = 316u32; -pub const ERROR_DEVICE_HARDWARE_ERROR: WIN32_ERROR = 483u32; -pub const ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: WIN32_ERROR = 355u32; -pub const ERROR_DEVICE_IN_MAINTENANCE: WIN32_ERROR = 359u32; -pub const ERROR_DEVICE_IN_USE: WIN32_ERROR = 2404u32; -pub const ERROR_DEVICE_NOT_CONNECTED: WIN32_ERROR = 1167u32; -pub const ERROR_DEVICE_NOT_PARTITIONED: WIN32_ERROR = 1107u32; -pub const ERROR_DEVICE_NO_RESOURCES: WIN32_ERROR = 322u32; -pub const ERROR_DEVICE_REINITIALIZATION_NEEDED: WIN32_ERROR = 1164u32; -pub const ERROR_DEVICE_REMOVED: WIN32_ERROR = 1617u32; -pub const ERROR_DEVICE_REQUIRES_CLEANING: WIN32_ERROR = 1165u32; -pub const ERROR_DEVICE_RESET_REQUIRED: WIN32_ERROR = 507u32; -pub const ERROR_DEVICE_SUPPORT_IN_PROGRESS: WIN32_ERROR = 171u32; -pub const ERROR_DEVICE_UNREACHABLE: WIN32_ERROR = 321u32; -pub const ERROR_DEV_NOT_EXIST: WIN32_ERROR = 55u32; -pub const ERROR_DHCP_ADDRESS_CONFLICT: WIN32_ERROR = 4100u32; -pub const ERROR_DIFFERENT_SERVICE_ACCOUNT: WIN32_ERROR = 1079u32; -pub const ERROR_DIRECTORY: WIN32_ERROR = 267u32; -pub const ERROR_DIRECTORY_NOT_SUPPORTED: WIN32_ERROR = 336u32; -pub const ERROR_DIRECT_ACCESS_HANDLE: WIN32_ERROR = 130u32; -pub const ERROR_DIR_EFS_DISALLOWED: WIN32_ERROR = 6010u32; -pub const ERROR_DIR_NOT_EMPTY: WIN32_ERROR = 145u32; -pub const ERROR_DIR_NOT_ROOT: WIN32_ERROR = 144u32; -pub const ERROR_DISCARDED: WIN32_ERROR = 157u32; -pub const ERROR_DISK_CHANGE: WIN32_ERROR = 107u32; -pub const ERROR_DISK_CORRUPT: WIN32_ERROR = 1393u32; -pub const ERROR_DISK_FULL: WIN32_ERROR = 112u32; -pub const ERROR_DISK_OPERATION_FAILED: WIN32_ERROR = 1127u32; -pub const ERROR_DISK_QUOTA_EXCEEDED: WIN32_ERROR = 1295u32; -pub const ERROR_DISK_RECALIBRATE_FAILED: WIN32_ERROR = 1126u32; -pub const ERROR_DISK_REPAIR_DISABLED: WIN32_ERROR = 780u32; -pub const ERROR_DISK_REPAIR_REDIRECTED: WIN32_ERROR = 792u32; -pub const ERROR_DISK_REPAIR_UNSUCCESSFUL: WIN32_ERROR = 793u32; -pub const ERROR_DISK_RESET_FAILED: WIN32_ERROR = 1128u32; -pub const ERROR_DISK_RESOURCES_EXHAUSTED: WIN32_ERROR = 314u32; -pub const ERROR_DISK_TOO_FRAGMENTED: WIN32_ERROR = 302u32; -pub const ERROR_DLL_INIT_FAILED: WIN32_ERROR = 1114u32; -pub const ERROR_DLL_INIT_FAILED_LOGOFF: WIN32_ERROR = 624u32; -pub const ERROR_DLL_MIGHT_BE_INCOMPATIBLE: WIN32_ERROR = 687u32; -pub const ERROR_DLL_MIGHT_BE_INSECURE: WIN32_ERROR = 686u32; -pub const ERROR_DLL_NOT_FOUND: WIN32_ERROR = 1157u32; -pub const ERROR_DLP_POLICY_DENIES_OPERATION: WIN32_ERROR = 446u32; -pub const ERROR_DLP_POLICY_SILENTLY_FAIL: WIN32_ERROR = 449u32; -pub const ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION: WIN32_ERROR = 445u32; -pub const ERROR_DOMAIN_CONTROLLER_EXISTS: WIN32_ERROR = 1250u32; -pub const ERROR_DOMAIN_CONTROLLER_NOT_FOUND: WIN32_ERROR = 1908u32; -pub const ERROR_DOMAIN_CTRLR_CONFIG_ERROR: WIN32_ERROR = 581u32; -pub const ERROR_DOMAIN_EXISTS: WIN32_ERROR = 1356u32; -pub const ERROR_DOMAIN_LIMIT_EXCEEDED: WIN32_ERROR = 1357u32; -pub const ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION: WIN32_ERROR = 8644u32; -pub const ERROR_DOMAIN_TRUST_INCONSISTENT: WIN32_ERROR = 1810u32; -pub const ERROR_DOWNGRADE_DETECTED: WIN32_ERROR = 1265u32; -pub const ERROR_DPL_NOT_SUPPORTED_FOR_USER: WIN32_ERROR = 423u32; -pub const ERROR_DRIVERS_LEAKING_LOCKED_PAGES: WIN32_ERROR = 729u32; -pub const ERROR_DRIVER_BLOCKED: WIN32_ERROR = 1275u32; -pub const ERROR_DRIVER_CANCEL_TIMEOUT: WIN32_ERROR = 594u32; -pub const ERROR_DRIVER_DATABASE_ERROR: WIN32_ERROR = 652u32; -pub const ERROR_DRIVER_FAILED_PRIOR_UNLOAD: WIN32_ERROR = 654u32; -pub const ERROR_DRIVER_FAILED_SLEEP: WIN32_ERROR = 633u32; -pub const ERROR_DRIVER_PROCESS_TERMINATED: WIN32_ERROR = 1291u32; -pub const ERROR_DRIVE_LOCKED: WIN32_ERROR = 108u32; -pub const ERROR_DS_ADD_REPLICA_INHIBITED: WIN32_ERROR = 8302u32; -pub const ERROR_DS_ADMIN_LIMIT_EXCEEDED: WIN32_ERROR = 8228u32; -pub const ERROR_DS_AFFECTS_MULTIPLE_DSAS: WIN32_ERROR = 8249u32; -pub const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: WIN32_ERROR = 8578u32; -pub const ERROR_DS_ALIASED_OBJ_MISSING: WIN32_ERROR = 8334u32; -pub const ERROR_DS_ALIAS_DEREF_PROBLEM: WIN32_ERROR = 8244u32; -pub const ERROR_DS_ALIAS_POINTS_TO_ALIAS: WIN32_ERROR = 8336u32; -pub const ERROR_DS_ALIAS_PROBLEM: WIN32_ERROR = 8241u32; -pub const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS: WIN32_ERROR = 8205u32; -pub const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM: WIN32_ERROR = 8346u32; -pub const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED: WIN32_ERROR = 8204u32; -pub const ERROR_DS_ATT_ALREADY_EXISTS: WIN32_ERROR = 8318u32; -pub const ERROR_DS_ATT_IS_NOT_ON_OBJ: WIN32_ERROR = 8310u32; -pub const ERROR_DS_ATT_NOT_DEF_FOR_CLASS: WIN32_ERROR = 8317u32; -pub const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA: WIN32_ERROR = 8303u32; -pub const ERROR_DS_ATT_SCHEMA_REQ_ID: WIN32_ERROR = 8399u32; -pub const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX: WIN32_ERROR = 8416u32; -pub const ERROR_DS_ATT_VAL_ALREADY_EXISTS: WIN32_ERROR = 8323u32; -pub const ERROR_DS_AUDIT_FAILURE: WIN32_ERROR = 8625u32; -pub const ERROR_DS_AUTHORIZATION_FAILED: WIN32_ERROR = 8599u32; -pub const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED: WIN32_ERROR = 8231u32; -pub const ERROR_DS_AUTH_UNKNOWN: WIN32_ERROR = 8234u32; -pub const ERROR_DS_AUX_CLS_TEST_FAIL: WIN32_ERROR = 8389u32; -pub const ERROR_DS_BACKLINK_WITHOUT_LINK: WIN32_ERROR = 8482u32; -pub const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX: WIN32_ERROR = 8400u32; -pub const ERROR_DS_BAD_HIERARCHY_FILE: WIN32_ERROR = 8425u32; -pub const ERROR_DS_BAD_INSTANCE_TYPE: WIN32_ERROR = 8313u32; -pub const ERROR_DS_BAD_NAME_SYNTAX: WIN32_ERROR = 8335u32; -pub const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX: WIN32_ERROR = 8392u32; -pub const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED: WIN32_ERROR = 8426u32; -pub const ERROR_DS_BUSY: WIN32_ERROR = 8206u32; -pub const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD: WIN32_ERROR = 8585u32; -pub const ERROR_DS_CANT_ADD_ATT_VALUES: WIN32_ERROR = 8320u32; -pub const ERROR_DS_CANT_ADD_SYSTEM_ONLY: WIN32_ERROR = 8358u32; -pub const ERROR_DS_CANT_ADD_TO_GC: WIN32_ERROR = 8550u32; -pub const ERROR_DS_CANT_CACHE_ATT: WIN32_ERROR = 8401u32; -pub const ERROR_DS_CANT_CACHE_CLASS: WIN32_ERROR = 8402u32; -pub const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC: WIN32_ERROR = 8553u32; -pub const ERROR_DS_CANT_CREATE_UNDER_SCHEMA: WIN32_ERROR = 8510u32; -pub const ERROR_DS_CANT_DELETE: WIN32_ERROR = 8398u32; -pub const ERROR_DS_CANT_DELETE_DSA_OBJ: WIN32_ERROR = 8340u32; -pub const ERROR_DS_CANT_DEL_MASTER_CROSSREF: WIN32_ERROR = 8375u32; -pub const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC: WIN32_ERROR = 8604u32; -pub const ERROR_DS_CANT_DEREF_ALIAS: WIN32_ERROR = 8337u32; -pub const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN: WIN32_ERROR = 8603u32; -pub const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF: WIN32_ERROR = 8589u32; -pub const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN: WIN32_ERROR = 8537u32; -pub const ERROR_DS_CANT_FIND_DSA_OBJ: WIN32_ERROR = 8419u32; -pub const ERROR_DS_CANT_FIND_EXPECTED_NC: WIN32_ERROR = 8420u32; -pub const ERROR_DS_CANT_FIND_NC_IN_CACHE: WIN32_ERROR = 8421u32; -pub const ERROR_DS_CANT_MIX_MASTER_AND_REPS: WIN32_ERROR = 8331u32; -pub const ERROR_DS_CANT_MOD_OBJ_CLASS: WIN32_ERROR = 8215u32; -pub const ERROR_DS_CANT_MOD_PRIMARYGROUPID: WIN32_ERROR = 8506u32; -pub const ERROR_DS_CANT_MOD_SYSTEM_ONLY: WIN32_ERROR = 8369u32; -pub const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP: WIN32_ERROR = 8498u32; -pub const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP: WIN32_ERROR = 8608u32; -pub const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP: WIN32_ERROR = 8609u32; -pub const ERROR_DS_CANT_MOVE_DELETED_OBJECT: WIN32_ERROR = 8489u32; -pub const ERROR_DS_CANT_MOVE_RESOURCE_GROUP: WIN32_ERROR = 8499u32; -pub const ERROR_DS_CANT_ON_NON_LEAF: WIN32_ERROR = 8213u32; -pub const ERROR_DS_CANT_ON_RDN: WIN32_ERROR = 8214u32; -pub const ERROR_DS_CANT_REMOVE_ATT_CACHE: WIN32_ERROR = 8403u32; -pub const ERROR_DS_CANT_REMOVE_CLASS_CACHE: WIN32_ERROR = 8404u32; -pub const ERROR_DS_CANT_REM_MISSING_ATT: WIN32_ERROR = 8324u32; -pub const ERROR_DS_CANT_REM_MISSING_ATT_VAL: WIN32_ERROR = 8325u32; -pub const ERROR_DS_CANT_REPLACE_HIDDEN_REC: WIN32_ERROR = 8424u32; -pub const ERROR_DS_CANT_RETRIEVE_ATTS: WIN32_ERROR = 8481u32; -pub const ERROR_DS_CANT_RETRIEVE_CHILD: WIN32_ERROR = 8422u32; -pub const ERROR_DS_CANT_RETRIEVE_DN: WIN32_ERROR = 8405u32; -pub const ERROR_DS_CANT_RETRIEVE_INSTANCE: WIN32_ERROR = 8407u32; -pub const ERROR_DS_CANT_RETRIEVE_SD: WIN32_ERROR = 8526u32; -pub const ERROR_DS_CANT_START: WIN32_ERROR = 8531u32; -pub const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ: WIN32_ERROR = 8560u32; -pub const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS: WIN32_ERROR = 8493u32; -pub const ERROR_DS_CHILDREN_EXIST: WIN32_ERROR = 8332u32; -pub const ERROR_DS_CLASS_MUST_BE_CONCRETE: WIN32_ERROR = 8359u32; -pub const ERROR_DS_CLASS_NOT_DSA: WIN32_ERROR = 8343u32; -pub const ERROR_DS_CLIENT_LOOP: WIN32_ERROR = 8259u32; -pub const ERROR_DS_CODE_INCONSISTENCY: WIN32_ERROR = 8408u32; -pub const ERROR_DS_COMPARE_FALSE: WIN32_ERROR = 8229u32; -pub const ERROR_DS_COMPARE_TRUE: WIN32_ERROR = 8230u32; -pub const ERROR_DS_CONFIDENTIALITY_REQUIRED: WIN32_ERROR = 8237u32; -pub const ERROR_DS_CONFIG_PARAM_MISSING: WIN32_ERROR = 8427u32; -pub const ERROR_DS_CONSTRAINT_VIOLATION: WIN32_ERROR = 8239u32; -pub const ERROR_DS_CONSTRUCTED_ATT_MOD: WIN32_ERROR = 8475u32; -pub const ERROR_DS_CONTROL_NOT_FOUND: WIN32_ERROR = 8258u32; -pub const ERROR_DS_COULDNT_CONTACT_FSMO: WIN32_ERROR = 8367u32; -pub const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE: WIN32_ERROR = 8503u32; -pub const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE: WIN32_ERROR = 8502u32; -pub const ERROR_DS_COULDNT_UPDATE_SPNS: WIN32_ERROR = 8525u32; -pub const ERROR_DS_COUNTING_AB_INDICES_FAILED: WIN32_ERROR = 8428u32; -pub const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD: WIN32_ERROR = 8491u32; -pub const ERROR_DS_CROSS_DOM_MOVE_ERROR: WIN32_ERROR = 8216u32; -pub const ERROR_DS_CROSS_NC_DN_RENAME: WIN32_ERROR = 8368u32; -pub const ERROR_DS_CROSS_REF_BUSY: WIN32_ERROR = 8602u32; -pub const ERROR_DS_CROSS_REF_EXISTS: WIN32_ERROR = 8374u32; -pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE: WIN32_ERROR = 8495u32; -pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2: WIN32_ERROR = 8586u32; -pub const ERROR_DS_DATABASE_ERROR: WIN32_ERROR = 8409u32; -pub const ERROR_DS_DECODING_ERROR: WIN32_ERROR = 8253u32; -pub const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED: WIN32_ERROR = 8536u32; -pub const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST: WIN32_ERROR = 8535u32; -pub const ERROR_DS_DIFFERENT_REPL_EPOCHS: WIN32_ERROR = 8593u32; -pub const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER: WIN32_ERROR = 8615u32; -pub const ERROR_DS_DISALLOWED_NC_REDIRECT: WIN32_ERROR = 8640u32; -pub const ERROR_DS_DNS_LOOKUP_FAILURE: WIN32_ERROR = 8524u32; -pub const ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST: WIN32_ERROR = 8634u32; -pub const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS: WIN32_ERROR = 8612u32; -pub const ERROR_DS_DOMAIN_VERSION_TOO_HIGH: WIN32_ERROR = 8564u32; -pub const ERROR_DS_DOMAIN_VERSION_TOO_LOW: WIN32_ERROR = 8566u32; -pub const ERROR_DS_DRA_ABANDON_SYNC: WIN32_ERROR = 8462u32; -pub const ERROR_DS_DRA_ACCESS_DENIED: WIN32_ERROR = 8453u32; -pub const ERROR_DS_DRA_BAD_DN: WIN32_ERROR = 8439u32; -pub const ERROR_DS_DRA_BAD_INSTANCE_TYPE: WIN32_ERROR = 8445u32; -pub const ERROR_DS_DRA_BAD_NC: WIN32_ERROR = 8440u32; -pub const ERROR_DS_DRA_BUSY: WIN32_ERROR = 8438u32; -pub const ERROR_DS_DRA_CONNECTION_FAILED: WIN32_ERROR = 8444u32; -pub const ERROR_DS_DRA_CORRUPT_UTD_VECTOR: WIN32_ERROR = 8629u32; -pub const ERROR_DS_DRA_DB_ERROR: WIN32_ERROR = 8451u32; -pub const ERROR_DS_DRA_DN_EXISTS: WIN32_ERROR = 8441u32; -pub const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT: WIN32_ERROR = 8544u32; -pub const ERROR_DS_DRA_EXTN_CONNECTION_FAILED: WIN32_ERROR = 8466u32; -pub const ERROR_DS_DRA_GENERIC: WIN32_ERROR = 8436u32; -pub const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET: WIN32_ERROR = 8464u32; -pub const ERROR_DS_DRA_INCONSISTENT_DIT: WIN32_ERROR = 8443u32; -pub const ERROR_DS_DRA_INTERNAL_ERROR: WIN32_ERROR = 8442u32; -pub const ERROR_DS_DRA_INVALID_PARAMETER: WIN32_ERROR = 8437u32; -pub const ERROR_DS_DRA_MAIL_PROBLEM: WIN32_ERROR = 8447u32; -pub const ERROR_DS_DRA_MISSING_KRBTGT_SECRET: WIN32_ERROR = 8633u32; -pub const ERROR_DS_DRA_MISSING_PARENT: WIN32_ERROR = 8460u32; -pub const ERROR_DS_DRA_NAME_COLLISION: WIN32_ERROR = 8458u32; -pub const ERROR_DS_DRA_NOT_SUPPORTED: WIN32_ERROR = 8454u32; -pub const ERROR_DS_DRA_NO_REPLICA: WIN32_ERROR = 8452u32; -pub const ERROR_DS_DRA_OBJ_IS_REP_SOURCE: WIN32_ERROR = 8450u32; -pub const ERROR_DS_DRA_OBJ_NC_MISMATCH: WIN32_ERROR = 8545u32; -pub const ERROR_DS_DRA_OUT_OF_MEM: WIN32_ERROR = 8446u32; -pub const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW: WIN32_ERROR = 8617u32; -pub const ERROR_DS_DRA_PREEMPTED: WIN32_ERROR = 8461u32; -pub const ERROR_DS_DRA_RECYCLED_TARGET: WIN32_ERROR = 8639u32; -pub const ERROR_DS_DRA_REF_ALREADY_EXISTS: WIN32_ERROR = 8448u32; -pub const ERROR_DS_DRA_REF_NOT_FOUND: WIN32_ERROR = 8449u32; -pub const ERROR_DS_DRA_REPL_PENDING: WIN32_ERROR = 8477u32; -pub const ERROR_DS_DRA_RPC_CANCELLED: WIN32_ERROR = 8455u32; -pub const ERROR_DS_DRA_SCHEMA_CONFLICT: WIN32_ERROR = 8543u32; -pub const ERROR_DS_DRA_SCHEMA_INFO_SHIP: WIN32_ERROR = 8542u32; -pub const ERROR_DS_DRA_SCHEMA_MISMATCH: WIN32_ERROR = 8418u32; -pub const ERROR_DS_DRA_SECRETS_DENIED: WIN32_ERROR = 8630u32; -pub const ERROR_DS_DRA_SHUTDOWN: WIN32_ERROR = 8463u32; -pub const ERROR_DS_DRA_SINK_DISABLED: WIN32_ERROR = 8457u32; -pub const ERROR_DS_DRA_SOURCE_DISABLED: WIN32_ERROR = 8456u32; -pub const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA: WIN32_ERROR = 8465u32; -pub const ERROR_DS_DRA_SOURCE_REINSTALLED: WIN32_ERROR = 8459u32; -pub const ERROR_DS_DRS_EXTENSIONS_CHANGED: WIN32_ERROR = 8594u32; -pub const ERROR_DS_DSA_MUST_BE_INT_MASTER: WIN32_ERROR = 8342u32; -pub const ERROR_DS_DST_DOMAIN_NOT_NATIVE: WIN32_ERROR = 8496u32; -pub const ERROR_DS_DST_NC_MISMATCH: WIN32_ERROR = 8486u32; -pub const ERROR_DS_DS_REQUIRED: WIN32_ERROR = 8478u32; -pub const ERROR_DS_DUPLICATE_ID_FOUND: WIN32_ERROR = 8605u32; -pub const ERROR_DS_DUP_LDAP_DISPLAY_NAME: WIN32_ERROR = 8382u32; -pub const ERROR_DS_DUP_LINK_ID: WIN32_ERROR = 8468u32; -pub const ERROR_DS_DUP_MAPI_ID: WIN32_ERROR = 8380u32; -pub const ERROR_DS_DUP_MSDS_INTID: WIN32_ERROR = 8597u32; -pub const ERROR_DS_DUP_OID: WIN32_ERROR = 8379u32; -pub const ERROR_DS_DUP_RDN: WIN32_ERROR = 8378u32; -pub const ERROR_DS_DUP_SCHEMA_ID_GUID: WIN32_ERROR = 8381u32; -pub const ERROR_DS_ENCODING_ERROR: WIN32_ERROR = 8252u32; -pub const ERROR_DS_EPOCH_MISMATCH: WIN32_ERROR = 8483u32; -pub const ERROR_DS_EXISTING_AD_CHILD_NC: WIN32_ERROR = 8613u32; -pub const ERROR_DS_EXISTS_IN_AUX_CLS: WIN32_ERROR = 8393u32; -pub const ERROR_DS_EXISTS_IN_MAY_HAVE: WIN32_ERROR = 8386u32; -pub const ERROR_DS_EXISTS_IN_MUST_HAVE: WIN32_ERROR = 8385u32; -pub const ERROR_DS_EXISTS_IN_POSS_SUP: WIN32_ERROR = 8395u32; -pub const ERROR_DS_EXISTS_IN_RDNATTID: WIN32_ERROR = 8598u32; -pub const ERROR_DS_EXISTS_IN_SUB_CLS: WIN32_ERROR = 8394u32; -pub const ERROR_DS_FILTER_UNKNOWN: WIN32_ERROR = 8254u32; -pub const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS: WIN32_ERROR = 8555u32; -pub const ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST: WIN32_ERROR = 8635u32; -pub const ERROR_DS_FOREST_VERSION_TOO_HIGH: WIN32_ERROR = 8563u32; -pub const ERROR_DS_FOREST_VERSION_TOO_LOW: WIN32_ERROR = 8565u32; -pub const ERROR_DS_GCVERIFY_ERROR: WIN32_ERROR = 8417u32; -pub const ERROR_DS_GC_NOT_AVAILABLE: WIN32_ERROR = 8217u32; -pub const ERROR_DS_GC_REQUIRED: WIN32_ERROR = 8547u32; -pub const ERROR_DS_GENERIC_ERROR: WIN32_ERROR = 8341u32; -pub const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: WIN32_ERROR = 8519u32; -pub const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: WIN32_ERROR = 8516u32; -pub const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: WIN32_ERROR = 8517u32; -pub const ERROR_DS_GOVERNSID_MISSING: WIN32_ERROR = 8410u32; -pub const ERROR_DS_GROUP_CONVERSION_ERROR: WIN32_ERROR = 8607u32; -pub const ERROR_DS_HAVE_PRIMARY_MEMBERS: WIN32_ERROR = 8521u32; -pub const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED: WIN32_ERROR = 8429u32; -pub const ERROR_DS_HIERARCHY_TABLE_TOO_DEEP: WIN32_ERROR = 8628u32; -pub const ERROR_DS_HIGH_ADLDS_FFL: WIN32_ERROR = 8641u32; -pub const ERROR_DS_HIGH_DSA_VERSION: WIN32_ERROR = 8642u32; -pub const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD: WIN32_ERROR = 8507u32; -pub const ERROR_DS_ILLEGAL_MOD_OPERATION: WIN32_ERROR = 8311u32; -pub const ERROR_DS_ILLEGAL_SUPERIOR: WIN32_ERROR = 8345u32; -pub const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION: WIN32_ERROR = 8492u32; -pub const ERROR_DS_INAPPROPRIATE_AUTH: WIN32_ERROR = 8233u32; -pub const ERROR_DS_INAPPROPRIATE_MATCHING: WIN32_ERROR = 8238u32; -pub const ERROR_DS_INCOMPATIBLE_CONTROLS_USED: WIN32_ERROR = 8574u32; -pub const ERROR_DS_INCOMPATIBLE_VERSION: WIN32_ERROR = 8567u32; -pub const ERROR_DS_INCORRECT_ROLE_OWNER: WIN32_ERROR = 8210u32; -pub const ERROR_DS_INIT_FAILURE: WIN32_ERROR = 8532u32; -pub const ERROR_DS_INIT_FAILURE_CONSOLE: WIN32_ERROR = 8561u32; -pub const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE: WIN32_ERROR = 8512u32; -pub const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION: WIN32_ERROR = 8511u32; -pub const ERROR_DS_INSTALL_SCHEMA_MISMATCH: WIN32_ERROR = 8467u32; -pub const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT: WIN32_ERROR = 8606u32; -pub const ERROR_DS_INSUFF_ACCESS_RIGHTS: WIN32_ERROR = 8344u32; -pub const ERROR_DS_INTERNAL_FAILURE: WIN32_ERROR = 8430u32; -pub const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX: WIN32_ERROR = 8203u32; -pub const ERROR_DS_INVALID_DMD: WIN32_ERROR = 8360u32; -pub const ERROR_DS_INVALID_DN_SYNTAX: WIN32_ERROR = 8242u32; -pub const ERROR_DS_INVALID_GROUP_TYPE: WIN32_ERROR = 8513u32; -pub const ERROR_DS_INVALID_LDAP_DISPLAY_NAME: WIN32_ERROR = 8479u32; -pub const ERROR_DS_INVALID_NAME_FOR_SPN: WIN32_ERROR = 8554u32; -pub const ERROR_DS_INVALID_ROLE_OWNER: WIN32_ERROR = 8366u32; -pub const ERROR_DS_INVALID_SCRIPT: WIN32_ERROR = 8600u32; -pub const ERROR_DS_INVALID_SEARCH_FLAG: WIN32_ERROR = 8500u32; -pub const ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE: WIN32_ERROR = 8626u32; -pub const ERROR_DS_INVALID_SEARCH_FLAG_TUPLE: WIN32_ERROR = 8627u32; -pub const ERROR_DS_IS_LEAF: WIN32_ERROR = 8243u32; -pub const ERROR_DS_KEY_NOT_UNIQUE: WIN32_ERROR = 8527u32; -pub const ERROR_DS_LDAP_SEND_QUEUE_FULL: WIN32_ERROR = 8616u32; -pub const ERROR_DS_LINK_ID_NOT_AVAILABLE: WIN32_ERROR = 8577u32; -pub const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: WIN32_ERROR = 8520u32; -pub const ERROR_DS_LOCAL_ERROR: WIN32_ERROR = 8251u32; -pub const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: WIN32_ERROR = 8548u32; -pub const ERROR_DS_LOOP_DETECT: WIN32_ERROR = 8246u32; -pub const ERROR_DS_LOW_ADLDS_FFL: WIN32_ERROR = 8643u32; -pub const ERROR_DS_LOW_DSA_VERSION: WIN32_ERROR = 8568u32; -pub const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4: WIN32_ERROR = 8572u32; -pub const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: WIN32_ERROR = 8557u32; -pub const ERROR_DS_MAPI_ID_NOT_AVAILABLE: WIN32_ERROR = 8632u32; -pub const ERROR_DS_MASTERDSA_REQUIRED: WIN32_ERROR = 8314u32; -pub const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED: WIN32_ERROR = 8304u32; -pub const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY: WIN32_ERROR = 8201u32; -pub const ERROR_DS_MISSING_EXPECTED_ATT: WIN32_ERROR = 8411u32; -pub const ERROR_DS_MISSING_FOREST_TRUST: WIN32_ERROR = 8649u32; -pub const ERROR_DS_MISSING_FSMO_SETTINGS: WIN32_ERROR = 8434u32; -pub const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER: WIN32_ERROR = 8497u32; -pub const ERROR_DS_MISSING_REQUIRED_ATT: WIN32_ERROR = 8316u32; -pub const ERROR_DS_MISSING_SUPREF: WIN32_ERROR = 8406u32; -pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG: WIN32_ERROR = 8581u32; -pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE: WIN32_ERROR = 8579u32; -pub const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT: WIN32_ERROR = 8582u32; -pub const ERROR_DS_MUST_BE_RUN_ON_DST_DC: WIN32_ERROR = 8558u32; -pub const ERROR_DS_NAME_ERROR_DOMAIN_ONLY: WIN32_ERROR = 8473u32; -pub const ERROR_DS_NAME_ERROR_NOT_FOUND: WIN32_ERROR = 8470u32; -pub const ERROR_DS_NAME_ERROR_NOT_UNIQUE: WIN32_ERROR = 8471u32; -pub const ERROR_DS_NAME_ERROR_NO_MAPPING: WIN32_ERROR = 8472u32; -pub const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: WIN32_ERROR = 8474u32; -pub const ERROR_DS_NAME_ERROR_RESOLVING: WIN32_ERROR = 8469u32; -pub const ERROR_DS_NAME_ERROR_TRUST_REFERRAL: WIN32_ERROR = 8583u32; -pub const ERROR_DS_NAME_NOT_UNIQUE: WIN32_ERROR = 8571u32; -pub const ERROR_DS_NAME_REFERENCE_INVALID: WIN32_ERROR = 8373u32; -pub const ERROR_DS_NAME_TOO_LONG: WIN32_ERROR = 8348u32; -pub const ERROR_DS_NAME_TOO_MANY_PARTS: WIN32_ERROR = 8347u32; -pub const ERROR_DS_NAME_TYPE_UNKNOWN: WIN32_ERROR = 8351u32; -pub const ERROR_DS_NAME_UNPARSEABLE: WIN32_ERROR = 8350u32; -pub const ERROR_DS_NAME_VALUE_TOO_LONG: WIN32_ERROR = 8349u32; -pub const ERROR_DS_NAMING_MASTER_GC: WIN32_ERROR = 8523u32; -pub const ERROR_DS_NAMING_VIOLATION: WIN32_ERROR = 8247u32; -pub const ERROR_DS_NCNAME_MISSING_CR_REF: WIN32_ERROR = 8412u32; -pub const ERROR_DS_NCNAME_MUST_BE_NC: WIN32_ERROR = 8357u32; -pub const ERROR_DS_NC_MUST_HAVE_NC_PARENT: WIN32_ERROR = 8494u32; -pub const ERROR_DS_NC_STILL_HAS_DSAS: WIN32_ERROR = 8546u32; -pub const ERROR_DS_NONEXISTENT_MAY_HAVE: WIN32_ERROR = 8387u32; -pub const ERROR_DS_NONEXISTENT_MUST_HAVE: WIN32_ERROR = 8388u32; -pub const ERROR_DS_NONEXISTENT_POSS_SUP: WIN32_ERROR = 8390u32; -pub const ERROR_DS_NONSAFE_SCHEMA_CHANGE: WIN32_ERROR = 8508u32; -pub const ERROR_DS_NON_ASQ_SEARCH: WIN32_ERROR = 8624u32; -pub const ERROR_DS_NON_BASE_SEARCH: WIN32_ERROR = 8480u32; -pub const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX: WIN32_ERROR = 8377u32; -pub const ERROR_DS_NOT_AN_OBJECT: WIN32_ERROR = 8352u32; -pub const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC: WIN32_ERROR = 8487u32; -pub const ERROR_DS_NOT_CLOSEST: WIN32_ERROR = 8588u32; -pub const ERROR_DS_NOT_INSTALLED: WIN32_ERROR = 8200u32; -pub const ERROR_DS_NOT_ON_BACKLINK: WIN32_ERROR = 8362u32; -pub const ERROR_DS_NOT_SUPPORTED: WIN32_ERROR = 8256u32; -pub const ERROR_DS_NOT_SUPPORTED_SORT_ORDER: WIN32_ERROR = 8570u32; -pub const ERROR_DS_NO_ATTRIBUTE_OR_VALUE: WIN32_ERROR = 8202u32; -pub const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN: WIN32_ERROR = 8569u32; -pub const ERROR_DS_NO_CHAINED_EVAL: WIN32_ERROR = 8328u32; -pub const ERROR_DS_NO_CHAINING: WIN32_ERROR = 8327u32; -pub const ERROR_DS_NO_CHECKPOINT_WITH_PDC: WIN32_ERROR = 8551u32; -pub const ERROR_DS_NO_CROSSREF_FOR_NC: WIN32_ERROR = 8363u32; -pub const ERROR_DS_NO_DELETED_NAME: WIN32_ERROR = 8355u32; -pub const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS: WIN32_ERROR = 8549u32; -pub const ERROR_DS_NO_MORE_RIDS: WIN32_ERROR = 8209u32; -pub const ERROR_DS_NO_MSDS_INTID: WIN32_ERROR = 8596u32; -pub const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: WIN32_ERROR = 8514u32; -pub const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: WIN32_ERROR = 8515u32; -pub const ERROR_DS_NO_NTDSA_OBJECT: WIN32_ERROR = 8623u32; -pub const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC: WIN32_ERROR = 8580u32; -pub const ERROR_DS_NO_PARENT_OBJECT: WIN32_ERROR = 8329u32; -pub const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION: WIN32_ERROR = 8533u32; -pub const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA: WIN32_ERROR = 8306u32; -pub const ERROR_DS_NO_REF_DOMAIN: WIN32_ERROR = 8575u32; -pub const ERROR_DS_NO_REQUESTED_ATTS_FOUND: WIN32_ERROR = 8308u32; -pub const ERROR_DS_NO_RESULTS_RETURNED: WIN32_ERROR = 8257u32; -pub const ERROR_DS_NO_RIDS_ALLOCATED: WIN32_ERROR = 8208u32; -pub const ERROR_DS_NO_SERVER_OBJECT: WIN32_ERROR = 8622u32; -pub const ERROR_DS_NO_SUCH_OBJECT: WIN32_ERROR = 8240u32; -pub const ERROR_DS_NO_TREE_DELETE_ABOVE_NC: WIN32_ERROR = 8501u32; -pub const ERROR_DS_NTDSCRIPT_PROCESS_ERROR: WIN32_ERROR = 8592u32; -pub const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR: WIN32_ERROR = 8591u32; -pub const ERROR_DS_OBJECT_BEING_REMOVED: WIN32_ERROR = 8339u32; -pub const ERROR_DS_OBJECT_CLASS_REQUIRED: WIN32_ERROR = 8315u32; -pub const ERROR_DS_OBJECT_RESULTS_TOO_LARGE: WIN32_ERROR = 8248u32; -pub const ERROR_DS_OBJ_CLASS_NOT_DEFINED: WIN32_ERROR = 8371u32; -pub const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS: WIN32_ERROR = 8372u32; -pub const ERROR_DS_OBJ_CLASS_VIOLATION: WIN32_ERROR = 8212u32; -pub const ERROR_DS_OBJ_GUID_EXISTS: WIN32_ERROR = 8361u32; -pub const ERROR_DS_OBJ_NOT_FOUND: WIN32_ERROR = 8333u32; -pub const ERROR_DS_OBJ_STRING_NAME_EXISTS: WIN32_ERROR = 8305u32; -pub const ERROR_DS_OBJ_TOO_LARGE: WIN32_ERROR = 8312u32; -pub const ERROR_DS_OFFSET_RANGE_ERROR: WIN32_ERROR = 8262u32; -pub const ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: WIN32_ERROR = 8637u32; -pub const ERROR_DS_OID_NOT_FOUND: WIN32_ERROR = 8638u32; -pub const ERROR_DS_OPERATIONS_ERROR: WIN32_ERROR = 8224u32; -pub const ERROR_DS_OUT_OF_SCOPE: WIN32_ERROR = 8338u32; -pub const ERROR_DS_OUT_OF_VERSION_STORE: WIN32_ERROR = 8573u32; -pub const ERROR_DS_PARAM_ERROR: WIN32_ERROR = 8255u32; -pub const ERROR_DS_PARENT_IS_AN_ALIAS: WIN32_ERROR = 8330u32; -pub const ERROR_DS_PDC_OPERATION_IN_PROGRESS: WIN32_ERROR = 8490u32; -pub const ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD: WIN32_ERROR = 8652u32; -pub const ERROR_DS_POLICY_NOT_KNOWN: WIN32_ERROR = 8618u32; -pub const ERROR_DS_PROTOCOL_ERROR: WIN32_ERROR = 8225u32; -pub const ERROR_DS_RANGE_CONSTRAINT: WIN32_ERROR = 8322u32; -pub const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA: WIN32_ERROR = 8307u32; -pub const ERROR_DS_RECALCSCHEMA_FAILED: WIN32_ERROR = 8396u32; -pub const ERROR_DS_REFERRAL: WIN32_ERROR = 8235u32; -pub const ERROR_DS_REFERRAL_LIMIT_EXCEEDED: WIN32_ERROR = 8260u32; -pub const ERROR_DS_REFUSING_FSMO_ROLES: WIN32_ERROR = 8433u32; -pub const ERROR_DS_REMOTE_CROSSREF_OP_FAILED: WIN32_ERROR = 8601u32; -pub const ERROR_DS_REPLICATOR_ONLY: WIN32_ERROR = 8370u32; -pub const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR: WIN32_ERROR = 8595u32; -pub const ERROR_DS_REPL_LIFETIME_EXCEEDED: WIN32_ERROR = 8614u32; -pub const ERROR_DS_RESERVED_LINK_ID: WIN32_ERROR = 8576u32; -pub const ERROR_DS_RESERVED_MAPI_ID: WIN32_ERROR = 8631u32; -pub const ERROR_DS_RIDMGR_DISABLED: WIN32_ERROR = 8263u32; -pub const ERROR_DS_RIDMGR_INIT_ERROR: WIN32_ERROR = 8211u32; -pub const ERROR_DS_ROLE_NOT_VERIFIED: WIN32_ERROR = 8610u32; -pub const ERROR_DS_ROOT_CANT_BE_SUBREF: WIN32_ERROR = 8326u32; -pub const ERROR_DS_ROOT_MUST_BE_NC: WIN32_ERROR = 8301u32; -pub const ERROR_DS_ROOT_REQUIRES_CLASS_TOP: WIN32_ERROR = 8432u32; -pub const ERROR_DS_SAM_INIT_FAILURE: WIN32_ERROR = 8504u32; -pub const ERROR_DS_SAM_INIT_FAILURE_CONSOLE: WIN32_ERROR = 8562u32; -pub const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY: WIN32_ERROR = 8530u32; -pub const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD: WIN32_ERROR = 8529u32; -pub const ERROR_DS_SCHEMA_ALLOC_FAILED: WIN32_ERROR = 8415u32; -pub const ERROR_DS_SCHEMA_NOT_LOADED: WIN32_ERROR = 8414u32; -pub const ERROR_DS_SCHEMA_UPDATE_DISALLOWED: WIN32_ERROR = 8509u32; -pub const ERROR_DS_SECURITY_CHECKING_ERROR: WIN32_ERROR = 8413u32; -pub const ERROR_DS_SECURITY_ILLEGAL_MODIFY: WIN32_ERROR = 8423u32; -pub const ERROR_DS_SEC_DESC_INVALID: WIN32_ERROR = 8354u32; -pub const ERROR_DS_SEC_DESC_TOO_SHORT: WIN32_ERROR = 8353u32; -pub const ERROR_DS_SEMANTIC_ATT_TEST: WIN32_ERROR = 8383u32; -pub const ERROR_DS_SENSITIVE_GROUP_VIOLATION: WIN32_ERROR = 8505u32; -pub const ERROR_DS_SERVER_DOWN: WIN32_ERROR = 8250u32; -pub const ERROR_DS_SHUTTING_DOWN: WIN32_ERROR = 8364u32; -pub const ERROR_DS_SINGLE_USER_MODE_FAILED: WIN32_ERROR = 8590u32; -pub const ERROR_DS_SINGLE_VALUE_CONSTRAINT: WIN32_ERROR = 8321u32; -pub const ERROR_DS_SIZELIMIT_EXCEEDED: WIN32_ERROR = 8227u32; -pub const ERROR_DS_SORT_CONTROL_MISSING: WIN32_ERROR = 8261u32; -pub const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED: WIN32_ERROR = 8552u32; -pub const ERROR_DS_SOURCE_DOMAIN_IN_FOREST: WIN32_ERROR = 8534u32; -pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: WIN32_ERROR = 8647u32; -pub const ERROR_DS_SRC_AND_DST_NC_IDENTICAL: WIN32_ERROR = 8485u32; -pub const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH: WIN32_ERROR = 8540u32; -pub const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER: WIN32_ERROR = 8559u32; -pub const ERROR_DS_SRC_GUID_MISMATCH: WIN32_ERROR = 8488u32; -pub const ERROR_DS_SRC_NAME_MISMATCH: WIN32_ERROR = 8484u32; -pub const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER: WIN32_ERROR = 8538u32; -pub const ERROR_DS_SRC_SID_EXISTS_IN_FOREST: WIN32_ERROR = 8539u32; -pub const ERROR_DS_STRING_SD_CONVERSION_FAILED: WIN32_ERROR = 8522u32; -pub const ERROR_DS_STRONG_AUTH_REQUIRED: WIN32_ERROR = 8232u32; -pub const ERROR_DS_SUBREF_MUST_HAVE_PARENT: WIN32_ERROR = 8356u32; -pub const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD: WIN32_ERROR = 8376u32; -pub const ERROR_DS_SUB_CLS_TEST_FAIL: WIN32_ERROR = 8391u32; -pub const ERROR_DS_SYNTAX_MISMATCH: WIN32_ERROR = 8384u32; -pub const ERROR_DS_THREAD_LIMIT_EXCEEDED: WIN32_ERROR = 8587u32; -pub const ERROR_DS_TIMELIMIT_EXCEEDED: WIN32_ERROR = 8226u32; -pub const ERROR_DS_TREE_DELETE_NOT_FINISHED: WIN32_ERROR = 8397u32; -pub const ERROR_DS_UNABLE_TO_SURRENDER_ROLES: WIN32_ERROR = 8435u32; -pub const ERROR_DS_UNAVAILABLE: WIN32_ERROR = 8207u32; -pub const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION: WIN32_ERROR = 8236u32; -pub const ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED: WIN32_ERROR = 8645u32; -pub const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES: WIN32_ERROR = 8556u32; -pub const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: WIN32_ERROR = 8518u32; -pub const ERROR_DS_UNKNOWN_ERROR: WIN32_ERROR = 8431u32; -pub const ERROR_DS_UNKNOWN_OPERATION: WIN32_ERROR = 8365u32; -pub const ERROR_DS_UNWILLING_TO_PERFORM: WIN32_ERROR = 8245u32; -pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: WIN32_ERROR = 8648u32; -pub const ERROR_DS_USER_BUFFER_TO_SMALL: WIN32_ERROR = 8309u32; -pub const ERROR_DS_VALUE_KEY_NOT_UNIQUE: WIN32_ERROR = 8650u32; -pub const ERROR_DS_VERSION_CHECK_FAILURE: WIN32_ERROR = 643u32; -pub const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL: WIN32_ERROR = 8611u32; -pub const ERROR_DS_WRONG_LINKED_ATT_SYNTAX: WIN32_ERROR = 8528u32; -pub const ERROR_DS_WRONG_OM_OBJ_CLASS: WIN32_ERROR = 8476u32; -pub const ERROR_DUPLICATE_PRIVILEGES: WIN32_ERROR = 311u32; -pub const ERROR_DUPLICATE_SERVICE_NAME: WIN32_ERROR = 1078u32; -pub const ERROR_DUP_DOMAINNAME: WIN32_ERROR = 1221u32; -pub const ERROR_DUP_NAME: WIN32_ERROR = 52u32; -pub const ERROR_DYNAMIC_CODE_BLOCKED: WIN32_ERROR = 1655u32; -pub const ERROR_DYNLINK_FROM_INVALID_RING: WIN32_ERROR = 196u32; -pub const ERROR_EAS_DIDNT_FIT: WIN32_ERROR = 275u32; -pub const ERROR_EAS_NOT_SUPPORTED: WIN32_ERROR = 282u32; -pub const ERROR_EA_ACCESS_DENIED: WIN32_ERROR = 994u32; -pub const ERROR_EA_FILE_CORRUPT: WIN32_ERROR = 276u32; -pub const ERROR_EA_LIST_INCONSISTENT: WIN32_ERROR = 255u32; -pub const ERROR_EA_TABLE_FULL: WIN32_ERROR = 277u32; -pub const ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED: WIN32_ERROR = 357u32; -pub const ERROR_EDP_POLICY_DENIES_OPERATION: WIN32_ERROR = 356u32; -pub const ERROR_EFS_ALG_BLOB_TOO_BIG: WIN32_ERROR = 6013u32; -pub const ERROR_EFS_DISABLED: WIN32_ERROR = 6015u32; -pub const ERROR_EFS_SERVER_NOT_TRUSTED: WIN32_ERROR = 6011u32; -pub const ERROR_EFS_VERSION_NOT_SUPPORT: WIN32_ERROR = 6016u32; -pub const ERROR_ELEVATION_REQUIRED: WIN32_ERROR = 740u32; -pub const ERROR_ENCLAVE_FAILURE: WIN32_ERROR = 349u32; -pub const ERROR_ENCLAVE_NOT_TERMINATED: WIN32_ERROR = 814u32; -pub const ERROR_ENCLAVE_VIOLATION: WIN32_ERROR = 815u32; -pub const ERROR_ENCRYPTED_FILE_NOT_SUPPORTED: WIN32_ERROR = 489u32; -pub const ERROR_ENCRYPTED_IO_NOT_POSSIBLE: WIN32_ERROR = 808u32; -pub const ERROR_ENCRYPTING_METADATA_DISALLOWED: WIN32_ERROR = 431u32; -pub const ERROR_ENCRYPTION_DISABLED: WIN32_ERROR = 430u32; -pub const ERROR_ENCRYPTION_FAILED: WIN32_ERROR = 6000u32; -pub const ERROR_ENCRYPTION_POLICY_DENIES_OPERATION: WIN32_ERROR = 6022u32; -pub const ERROR_END_OF_MEDIA: WIN32_ERROR = 1100u32; -pub const ERROR_ENVVAR_NOT_FOUND: WIN32_ERROR = 203u32; -pub const ERROR_EOM_OVERFLOW: WIN32_ERROR = 1129u32; -pub const ERROR_ERRORS_ENCOUNTERED: WIN32_ERROR = 774u32; -pub const ERROR_EVALUATION_EXPIRATION: WIN32_ERROR = 622u32; -pub const ERROR_EVENTLOG_CANT_START: WIN32_ERROR = 1501u32; -pub const ERROR_EVENTLOG_FILE_CHANGED: WIN32_ERROR = 1503u32; -pub const ERROR_EVENTLOG_FILE_CORRUPT: WIN32_ERROR = 1500u32; -pub const ERROR_EVENT_DONE: WIN32_ERROR = 710u32; -pub const ERROR_EVENT_PENDING: WIN32_ERROR = 711u32; -pub const ERROR_EXCEPTION_IN_SERVICE: WIN32_ERROR = 1064u32; -pub const ERROR_EXCL_SEM_ALREADY_OWNED: WIN32_ERROR = 101u32; -pub const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY: WIN32_ERROR = 217u32; -pub const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY: WIN32_ERROR = 218u32; -pub const ERROR_EXE_MACHINE_TYPE_MISMATCH: WIN32_ERROR = 216u32; -pub const ERROR_EXE_MARKED_INVALID: WIN32_ERROR = 192u32; -pub const ERROR_EXTENDED_ERROR: WIN32_ERROR = 1208u32; -pub const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN: WIN32_ERROR = 343u32; -pub const ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED: WIN32_ERROR = 399u32; -pub const ERROR_EXTRANEOUS_INFORMATION: WIN32_ERROR = 677u32; -pub const ERROR_FAILED_DRIVER_ENTRY: WIN32_ERROR = 647u32; -pub const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT: WIN32_ERROR = 1063u32; -pub const ERROR_FAIL_FAST_EXCEPTION: WIN32_ERROR = 1653u32; -pub const ERROR_FAIL_I24: WIN32_ERROR = 83u32; -pub const ERROR_FAIL_NOACTION_REBOOT: WIN32_ERROR = 350u32; -pub const ERROR_FAIL_RESTART: WIN32_ERROR = 352u32; -pub const ERROR_FAIL_SHUTDOWN: WIN32_ERROR = 351u32; -pub const ERROR_FATAL_APP_EXIT: WIN32_ERROR = 713u32; -pub const ERROR_FILEMARK_DETECTED: WIN32_ERROR = 1101u32; -pub const ERROR_FILENAME_EXCED_RANGE: WIN32_ERROR = 206u32; -pub const ERROR_FILE_CHECKED_OUT: WIN32_ERROR = 220u32; -pub const ERROR_FILE_CORRUPT: WIN32_ERROR = 1392u32; -pub const ERROR_FILE_ENCRYPTED: WIN32_ERROR = 6002u32; -pub const ERROR_FILE_EXISTS: WIN32_ERROR = 80u32; -pub const ERROR_FILE_HANDLE_REVOKED: WIN32_ERROR = 806u32; -pub const ERROR_FILE_INVALID: WIN32_ERROR = 1006u32; -pub const ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED: WIN32_ERROR = 326u32; -pub const ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: WIN32_ERROR = 809u32; -pub const ERROR_FILE_NOT_ENCRYPTED: WIN32_ERROR = 6007u32; -pub const ERROR_FILE_NOT_FOUND: WIN32_ERROR = 2u32; -pub const ERROR_FILE_NOT_SUPPORTED: WIN32_ERROR = 425u32; -pub const ERROR_FILE_OFFLINE: WIN32_ERROR = 4350u32; -pub const ERROR_FILE_PROTECTED_UNDER_DPL: WIN32_ERROR = 406u32; -pub const ERROR_FILE_READ_ONLY: WIN32_ERROR = 6009u32; -pub const ERROR_FILE_SNAP_INVALID_PARAMETER: WIN32_ERROR = 440u32; -pub const ERROR_FILE_SNAP_IN_PROGRESS: WIN32_ERROR = 435u32; -pub const ERROR_FILE_SNAP_IO_NOT_COORDINATED: WIN32_ERROR = 438u32; -pub const ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED: WIN32_ERROR = 437u32; -pub const ERROR_FILE_SNAP_UNEXPECTED_ERROR: WIN32_ERROR = 439u32; -pub const ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED: WIN32_ERROR = 436u32; -pub const ERROR_FILE_SYSTEM_LIMITATION: WIN32_ERROR = 665u32; -pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY: WIN32_ERROR = 371u32; -pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION: WIN32_ERROR = 385u32; -pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT: WIN32_ERROR = 370u32; -pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN: WIN32_ERROR = 372u32; -pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE: WIN32_ERROR = 369u32; -pub const ERROR_FILE_TOO_LARGE: WIN32_ERROR = 223u32; -pub const ERROR_FIRMWARE_UPDATED: WIN32_ERROR = 728u32; -pub const ERROR_FLOAT_MULTIPLE_FAULTS: WIN32_ERROR = 630u32; -pub const ERROR_FLOAT_MULTIPLE_TRAPS: WIN32_ERROR = 631u32; -pub const ERROR_FLOPPY_BAD_REGISTERS: WIN32_ERROR = 1125u32; -pub const ERROR_FLOPPY_ID_MARK_NOT_FOUND: WIN32_ERROR = 1122u32; -pub const ERROR_FLOPPY_UNKNOWN_ERROR: WIN32_ERROR = 1124u32; -pub const ERROR_FLOPPY_VOLUME: WIN32_ERROR = 584u32; -pub const ERROR_FLOPPY_WRONG_CYLINDER: WIN32_ERROR = 1123u32; -pub const ERROR_FORMS_AUTH_REQUIRED: WIN32_ERROR = 224u32; -pub const ERROR_FOUND_OUT_OF_SCOPE: WIN32_ERROR = 601u32; -pub const ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY: WIN32_ERROR = 762u32; -pub const ERROR_FS_DRIVER_REQUIRED: WIN32_ERROR = 588u32; -pub const ERROR_FS_METADATA_INCONSISTENT: WIN32_ERROR = 510u32; -pub const ERROR_FT_DI_SCAN_REQUIRED: WIN32_ERROR = 339u32; -pub const ERROR_FT_READ_FAILURE: WIN32_ERROR = 415u32; -pub const ERROR_FT_READ_FROM_COPY_FAILURE: WIN32_ERROR = 818u32; -pub const ERROR_FT_READ_RECOVERY_FROM_BACKUP: WIN32_ERROR = 704u32; -pub const ERROR_FT_WRITE_FAILURE: WIN32_ERROR = 338u32; -pub const ERROR_FT_WRITE_RECOVERY: WIN32_ERROR = 705u32; -pub const ERROR_FULLSCREEN_MODE: WIN32_ERROR = 1007u32; -pub const ERROR_FUNCTION_FAILED: WIN32_ERROR = 1627u32; -pub const ERROR_FUNCTION_NOT_CALLED: WIN32_ERROR = 1626u32; -pub const ERROR_GDI_HANDLE_LEAK: WIN32_ERROR = 373u32; -pub const ERROR_GENERIC_NOT_MAPPED: WIN32_ERROR = 1360u32; -pub const ERROR_GEN_FAILURE: WIN32_ERROR = 31u32; -pub const ERROR_GLOBAL_ONLY_HOOK: WIN32_ERROR = 1429u32; -pub const ERROR_GRACEFUL_DISCONNECT: WIN32_ERROR = 1226u32; -pub const ERROR_GROUP_EXISTS: WIN32_ERROR = 1318u32; -pub const ERROR_GUID_SUBSTITUTION_MADE: WIN32_ERROR = 680u32; -pub const ERROR_HANDLES_CLOSED: WIN32_ERROR = 676u32; -pub const ERROR_HANDLE_DISK_FULL: WIN32_ERROR = 39u32; -pub const ERROR_HANDLE_EOF: WIN32_ERROR = 38u32; -pub const ERROR_HANDLE_REVOKED: WIN32_ERROR = 811u32; -pub const ERROR_HAS_SYSTEM_CRITICAL_FILES: WIN32_ERROR = 488u32; -pub const ERROR_HIBERNATED: WIN32_ERROR = 726u32; -pub const ERROR_HIBERNATION_FAILURE: WIN32_ERROR = 656u32; -pub const ERROR_HOOK_NEEDS_HMOD: WIN32_ERROR = 1428u32; -pub const ERROR_HOOK_NOT_INSTALLED: WIN32_ERROR = 1431u32; -pub const ERROR_HOOK_TYPE_NOT_ALLOWED: WIN32_ERROR = 1458u32; -pub const ERROR_HOST_DOWN: WIN32_ERROR = 1256u32; -pub const ERROR_HOST_UNREACHABLE: WIN32_ERROR = 1232u32; -pub const ERROR_HOTKEY_ALREADY_REGISTERED: WIN32_ERROR = 1409u32; -pub const ERROR_HOTKEY_NOT_REGISTERED: WIN32_ERROR = 1419u32; -pub const ERROR_HWNDS_HAVE_DIFF_PARENT: WIN32_ERROR = 1441u32; -pub const ERROR_ILLEGAL_CHARACTER: WIN32_ERROR = 582u32; -pub const ERROR_ILLEGAL_DLL_RELOCATION: WIN32_ERROR = 623u32; -pub const ERROR_ILLEGAL_ELEMENT_ADDRESS: WIN32_ERROR = 1162u32; -pub const ERROR_ILLEGAL_FLOAT_CONTEXT: WIN32_ERROR = 579u32; -pub const ERROR_ILL_FORMED_PASSWORD: WIN32_ERROR = 1324u32; -pub const ERROR_IMAGE_AT_DIFFERENT_BASE: WIN32_ERROR = 807u32; -pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH: WIN32_ERROR = 706u32; -pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE: WIN32_ERROR = 720u32; -pub const ERROR_IMAGE_NOT_AT_BASE: WIN32_ERROR = 700u32; -pub const ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT: WIN32_ERROR = 308u32; -pub const ERROR_IMPLEMENTATION_LIMIT: WIN32_ERROR = 1292u32; -pub const ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE: WIN32_ERROR = 1297u32; -pub const ERROR_INCOMPATIBLE_SERVICE_SID_TYPE: WIN32_ERROR = 1290u32; -pub const ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: WIN32_ERROR = 304u32; -pub const ERROR_INCORRECT_ACCOUNT_TYPE: WIN32_ERROR = 8646u32; -pub const ERROR_INCORRECT_ADDRESS: WIN32_ERROR = 1241u32; -pub const ERROR_INCORRECT_SIZE: WIN32_ERROR = 1462u32; -pub const ERROR_INDEX_ABSENT: WIN32_ERROR = 1611u32; -pub const ERROR_INDEX_OUT_OF_BOUNDS: WIN32_ERROR = 474u32; -pub const ERROR_INFLOOP_IN_RELOC_CHAIN: WIN32_ERROR = 202u32; -pub const ERROR_INSTALL_ALREADY_RUNNING: WIN32_ERROR = 1618u32; -pub const ERROR_INSTALL_FAILURE: WIN32_ERROR = 1603u32; -pub const ERROR_INSTALL_LANGUAGE_UNSUPPORTED: WIN32_ERROR = 1623u32; -pub const ERROR_INSTALL_LOG_FAILURE: WIN32_ERROR = 1622u32; -pub const ERROR_INSTALL_NOTUSED: WIN32_ERROR = 1634u32; -pub const ERROR_INSTALL_PACKAGE_INVALID: WIN32_ERROR = 1620u32; -pub const ERROR_INSTALL_PACKAGE_OPEN_FAILED: WIN32_ERROR = 1619u32; -pub const ERROR_INSTALL_PACKAGE_REJECTED: WIN32_ERROR = 1625u32; -pub const ERROR_INSTALL_PACKAGE_VERSION: WIN32_ERROR = 1613u32; -pub const ERROR_INSTALL_PLATFORM_UNSUPPORTED: WIN32_ERROR = 1633u32; -pub const ERROR_INSTALL_REJECTED: WIN32_ERROR = 1654u32; -pub const ERROR_INSTALL_REMOTE_DISALLOWED: WIN32_ERROR = 1640u32; -pub const ERROR_INSTALL_REMOTE_PROHIBITED: WIN32_ERROR = 1645u32; -pub const ERROR_INSTALL_SERVICE_FAILURE: WIN32_ERROR = 1601u32; -pub const ERROR_INSTALL_SERVICE_SAFEBOOT: WIN32_ERROR = 1652u32; -pub const ERROR_INSTALL_SOURCE_ABSENT: WIN32_ERROR = 1612u32; -pub const ERROR_INSTALL_SUSPEND: WIN32_ERROR = 1604u32; -pub const ERROR_INSTALL_TEMP_UNWRITABLE: WIN32_ERROR = 1632u32; -pub const ERROR_INSTALL_TRANSFORM_FAILURE: WIN32_ERROR = 1624u32; -pub const ERROR_INSTALL_TRANSFORM_REJECTED: WIN32_ERROR = 1644u32; -pub const ERROR_INSTALL_UI_FAILURE: WIN32_ERROR = 1621u32; -pub const ERROR_INSTALL_USEREXIT: WIN32_ERROR = 1602u32; -pub const ERROR_INSTRUCTION_MISALIGNMENT: WIN32_ERROR = 549u32; -pub const ERROR_INSUFFICIENT_BUFFER: WIN32_ERROR = 122u32; -pub const ERROR_INSUFFICIENT_LOGON_INFO: WIN32_ERROR = 608u32; -pub const ERROR_INSUFFICIENT_POWER: WIN32_ERROR = 639u32; -pub const ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: WIN32_ERROR = 781u32; -pub const ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES: WIN32_ERROR = 473u32; -pub const ERROR_INTERMIXED_KERNEL_EA_OPERATION: WIN32_ERROR = 324u32; -pub const ERROR_INTERNAL_DB_CORRUPTION: WIN32_ERROR = 1358u32; -pub const ERROR_INTERNAL_DB_ERROR: WIN32_ERROR = 1383u32; -pub const ERROR_INTERNAL_ERROR: WIN32_ERROR = 1359u32; -pub const ERROR_INTERRUPT_STILL_CONNECTED: WIN32_ERROR = 764u32; -pub const ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED: WIN32_ERROR = 763u32; -pub const ERROR_INVALID_ACCEL_HANDLE: WIN32_ERROR = 1403u32; -pub const ERROR_INVALID_ACCESS: WIN32_ERROR = 12u32; -pub const ERROR_INVALID_ACCOUNT_NAME: WIN32_ERROR = 1315u32; -pub const ERROR_INVALID_ACE_CONDITION: WIN32_ERROR = 805u32; -pub const ERROR_INVALID_ACL: WIN32_ERROR = 1336u32; -pub const ERROR_INVALID_ADDRESS: WIN32_ERROR = 487u32; -pub const ERROR_INVALID_AT_INTERRUPT_TIME: WIN32_ERROR = 104u32; -pub const ERROR_INVALID_BLOCK: WIN32_ERROR = 9u32; -pub const ERROR_INVALID_BLOCK_LENGTH: WIN32_ERROR = 1106u32; -pub const ERROR_INVALID_CAP: WIN32_ERROR = 320u32; -pub const ERROR_INVALID_CATEGORY: WIN32_ERROR = 117u32; -pub const ERROR_INVALID_COMBOBOX_MESSAGE: WIN32_ERROR = 1422u32; -pub const ERROR_INVALID_COMMAND_LINE: WIN32_ERROR = 1639u32; -pub const ERROR_INVALID_COMPUTERNAME: WIN32_ERROR = 1210u32; -pub const ERROR_INVALID_CRUNTIME_PARAMETER: WIN32_ERROR = 1288u32; -pub const ERROR_INVALID_CURSOR_HANDLE: WIN32_ERROR = 1402u32; -pub const ERROR_INVALID_DATA: WIN32_ERROR = 13u32; -pub const ERROR_INVALID_DATATYPE: WIN32_ERROR = 1804u32; -pub const ERROR_INVALID_DEVICE_OBJECT_PARAMETER: WIN32_ERROR = 650u32; -pub const ERROR_INVALID_DLL: WIN32_ERROR = 1154u32; -pub const ERROR_INVALID_DOMAINNAME: WIN32_ERROR = 1212u32; -pub const ERROR_INVALID_DOMAIN_ROLE: WIN32_ERROR = 1354u32; -pub const ERROR_INVALID_DOMAIN_STATE: WIN32_ERROR = 1353u32; -pub const ERROR_INVALID_DRIVE: WIN32_ERROR = 15u32; -pub const ERROR_INVALID_DWP_HANDLE: WIN32_ERROR = 1405u32; -pub const ERROR_INVALID_EA_HANDLE: WIN32_ERROR = 278u32; -pub const ERROR_INVALID_EA_NAME: WIN32_ERROR = 254u32; -pub const ERROR_INVALID_EDIT_HEIGHT: WIN32_ERROR = 1424u32; -pub const ERROR_INVALID_ENVIRONMENT: WIN32_ERROR = 1805u32; -pub const ERROR_INVALID_EVENTNAME: WIN32_ERROR = 1211u32; -pub const ERROR_INVALID_EVENT_COUNT: WIN32_ERROR = 151u32; -pub const ERROR_INVALID_EXCEPTION_HANDLER: WIN32_ERROR = 310u32; -pub const ERROR_INVALID_EXE_SIGNATURE: WIN32_ERROR = 191u32; -pub const ERROR_INVALID_FIELD: WIN32_ERROR = 1616u32; -pub const ERROR_INVALID_FIELD_IN_PARAMETER_LIST: WIN32_ERROR = 328u32; -pub const ERROR_INVALID_FILTER_PROC: WIN32_ERROR = 1427u32; -pub const ERROR_INVALID_FLAGS: WIN32_ERROR = 1004u32; -pub const ERROR_INVALID_FLAG_NUMBER: WIN32_ERROR = 186u32; -pub const ERROR_INVALID_FORM_NAME: WIN32_ERROR = 1902u32; -pub const ERROR_INVALID_FORM_SIZE: WIN32_ERROR = 1903u32; -pub const ERROR_INVALID_FUNCTION: WIN32_ERROR = 1u32; -pub const ERROR_INVALID_GROUPNAME: WIN32_ERROR = 1209u32; -pub const ERROR_INVALID_GROUP_ATTRIBUTES: WIN32_ERROR = 1345u32; -pub const ERROR_INVALID_GW_COMMAND: WIN32_ERROR = 1443u32; -pub const ERROR_INVALID_HANDLE: WIN32_ERROR = 6u32; -pub const ERROR_INVALID_HANDLE_STATE: WIN32_ERROR = 1609u32; -pub const ERROR_INVALID_HOOK_FILTER: WIN32_ERROR = 1426u32; -pub const ERROR_INVALID_HOOK_HANDLE: WIN32_ERROR = 1404u32; -pub const ERROR_INVALID_HW_PROFILE: WIN32_ERROR = 619u32; -pub const ERROR_INVALID_ICON_HANDLE: WIN32_ERROR = 1414u32; -pub const ERROR_INVALID_ID_AUTHORITY: WIN32_ERROR = 1343u32; -pub const ERROR_INVALID_IMAGE_HASH: WIN32_ERROR = 577u32; -pub const ERROR_INVALID_IMPORT_OF_NON_DLL: WIN32_ERROR = 1276u32; -pub const ERROR_INVALID_INDEX: WIN32_ERROR = 1413u32; -pub const ERROR_INVALID_KERNEL_INFO_VERSION: WIN32_ERROR = 340u32; -pub const ERROR_INVALID_KEYBOARD_HANDLE: WIN32_ERROR = 1457u32; -pub const ERROR_INVALID_LABEL: WIN32_ERROR = 1299u32; -pub const ERROR_INVALID_LB_MESSAGE: WIN32_ERROR = 1432u32; -pub const ERROR_INVALID_LDT_DESCRIPTOR: WIN32_ERROR = 564u32; -pub const ERROR_INVALID_LDT_OFFSET: WIN32_ERROR = 563u32; -pub const ERROR_INVALID_LDT_SIZE: WIN32_ERROR = 561u32; -pub const ERROR_INVALID_LEVEL: WIN32_ERROR = 124u32; -pub const ERROR_INVALID_LIST_FORMAT: WIN32_ERROR = 153u32; -pub const ERROR_INVALID_LOCK_RANGE: WIN32_ERROR = 307u32; -pub const ERROR_INVALID_LOGON_HOURS: WIN32_ERROR = 1328u32; -pub const ERROR_INVALID_LOGON_TYPE: WIN32_ERROR = 1367u32; -pub const ERROR_INVALID_MEMBER: WIN32_ERROR = 1388u32; -pub const ERROR_INVALID_MENU_HANDLE: WIN32_ERROR = 1401u32; -pub const ERROR_INVALID_MESSAGE: WIN32_ERROR = 1002u32; -pub const ERROR_INVALID_MESSAGEDEST: WIN32_ERROR = 1218u32; -pub const ERROR_INVALID_MESSAGENAME: WIN32_ERROR = 1217u32; -pub const ERROR_INVALID_MINALLOCSIZE: WIN32_ERROR = 195u32; -pub const ERROR_INVALID_MODULETYPE: WIN32_ERROR = 190u32; -pub const ERROR_INVALID_MONITOR_HANDLE: WIN32_ERROR = 1461u32; -pub const ERROR_INVALID_MSGBOX_STYLE: WIN32_ERROR = 1438u32; -pub const ERROR_INVALID_NAME: WIN32_ERROR = 123u32; -pub const ERROR_INVALID_NETNAME: WIN32_ERROR = 1214u32; -pub const ERROR_INVALID_OPLOCK_PROTOCOL: WIN32_ERROR = 301u32; -pub const ERROR_INVALID_ORDINAL: WIN32_ERROR = 182u32; -pub const ERROR_INVALID_OWNER: WIN32_ERROR = 1307u32; -pub const ERROR_INVALID_PACKAGE_SID_LENGTH: WIN32_ERROR = 4253u32; -pub const ERROR_INVALID_PARAMETER: WIN32_ERROR = 87u32; -pub const ERROR_INVALID_PASSWORD: WIN32_ERROR = 86u32; -pub const ERROR_INVALID_PASSWORDNAME: WIN32_ERROR = 1216u32; -pub const ERROR_INVALID_PATCH_XML: WIN32_ERROR = 1650u32; -pub const ERROR_INVALID_PEP_INFO_VERSION: WIN32_ERROR = 341u32; -pub const ERROR_INVALID_PLUGPLAY_DEVICE_PATH: WIN32_ERROR = 620u32; -pub const ERROR_INVALID_PORT_ATTRIBUTES: WIN32_ERROR = 545u32; -pub const ERROR_INVALID_PRIMARY_GROUP: WIN32_ERROR = 1308u32; -pub const ERROR_INVALID_PRINTER_COMMAND: WIN32_ERROR = 1803u32; -pub const ERROR_INVALID_PRINTER_NAME: WIN32_ERROR = 1801u32; -pub const ERROR_INVALID_PRINTER_STATE: WIN32_ERROR = 1906u32; -pub const ERROR_INVALID_PRIORITY: WIN32_ERROR = 1800u32; -pub const ERROR_INVALID_QUOTA_LOWER: WIN32_ERROR = 547u32; -pub const ERROR_INVALID_REPARSE_DATA: WIN32_ERROR = 4392u32; -pub const ERROR_INVALID_SCROLLBAR_RANGE: WIN32_ERROR = 1448u32; -pub const ERROR_INVALID_SECURITY_DESCR: WIN32_ERROR = 1338u32; -pub const ERROR_INVALID_SEGDPL: WIN32_ERROR = 198u32; -pub const ERROR_INVALID_SEGMENT_NUMBER: WIN32_ERROR = 180u32; -pub const ERROR_INVALID_SEPARATOR_FILE: WIN32_ERROR = 1799u32; -pub const ERROR_INVALID_SERVER_STATE: WIN32_ERROR = 1352u32; -pub const ERROR_INVALID_SERVICENAME: WIN32_ERROR = 1213u32; -pub const ERROR_INVALID_SERVICE_ACCOUNT: WIN32_ERROR = 1057u32; -pub const ERROR_INVALID_SERVICE_CONTROL: WIN32_ERROR = 1052u32; -pub const ERROR_INVALID_SERVICE_LOCK: WIN32_ERROR = 1071u32; -pub const ERROR_INVALID_SHARENAME: WIN32_ERROR = 1215u32; -pub const ERROR_INVALID_SHOWWIN_COMMAND: WIN32_ERROR = 1449u32; -pub const ERROR_INVALID_SID: WIN32_ERROR = 1337u32; -pub const ERROR_INVALID_SIGNAL_NUMBER: WIN32_ERROR = 209u32; -pub const ERROR_INVALID_SPI_VALUE: WIN32_ERROR = 1439u32; -pub const ERROR_INVALID_STACKSEG: WIN32_ERROR = 189u32; -pub const ERROR_INVALID_STARTING_CODESEG: WIN32_ERROR = 188u32; -pub const ERROR_INVALID_SUB_AUTHORITY: WIN32_ERROR = 1335u32; -pub const ERROR_INVALID_TABLE: WIN32_ERROR = 1628u32; -pub const ERROR_INVALID_TARGET_HANDLE: WIN32_ERROR = 114u32; -pub const ERROR_INVALID_TASK_INDEX: WIN32_ERROR = 1551u32; -pub const ERROR_INVALID_TASK_NAME: WIN32_ERROR = 1550u32; -pub const ERROR_INVALID_THREAD_ID: WIN32_ERROR = 1444u32; -pub const ERROR_INVALID_TIME: WIN32_ERROR = 1901u32; -pub const ERROR_INVALID_TOKEN: WIN32_ERROR = 315u32; -pub const ERROR_INVALID_UNWIND_TARGET: WIN32_ERROR = 544u32; -pub const ERROR_INVALID_USER_BUFFER: WIN32_ERROR = 1784u32; -pub const ERROR_INVALID_USER_PRINCIPAL_NAME: WIN32_ERROR = 8636u32; -pub const ERROR_INVALID_VARIANT: WIN32_ERROR = 604u32; -pub const ERROR_INVALID_VERIFY_SWITCH: WIN32_ERROR = 118u32; -pub const ERROR_INVALID_WINDOW_HANDLE: WIN32_ERROR = 1400u32; -pub const ERROR_INVALID_WORKSTATION: WIN32_ERROR = 1329u32; -pub const ERROR_IOPL_NOT_ENABLED: WIN32_ERROR = 197u32; -pub const ERROR_IO_DEVICE: WIN32_ERROR = 1117u32; -pub const ERROR_IO_INCOMPLETE: WIN32_ERROR = 996u32; -pub const ERROR_IO_PENDING: WIN32_ERROR = 997u32; -pub const ERROR_IO_PRIVILEGE_FAILED: WIN32_ERROR = 571u32; -pub const ERROR_IO_REISSUE_AS_CACHED: WIN32_ERROR = 3950u32; -pub const ERROR_IPSEC_IKE_TIMED_OUT: WIN32_ERROR = 13805u32; -pub const ERROR_IP_ADDRESS_CONFLICT1: WIN32_ERROR = 611u32; -pub const ERROR_IP_ADDRESS_CONFLICT2: WIN32_ERROR = 612u32; -pub const ERROR_IRQ_BUSY: WIN32_ERROR = 1119u32; -pub const ERROR_IS_JOINED: WIN32_ERROR = 134u32; -pub const ERROR_IS_JOIN_PATH: WIN32_ERROR = 147u32; -pub const ERROR_IS_JOIN_TARGET: WIN32_ERROR = 133u32; -pub const ERROR_IS_SUBSTED: WIN32_ERROR = 135u32; -pub const ERROR_IS_SUBST_PATH: WIN32_ERROR = 146u32; -pub const ERROR_IS_SUBST_TARGET: WIN32_ERROR = 149u32; -pub const ERROR_ITERATED_DATA_EXCEEDS_64k: WIN32_ERROR = 194u32; -pub const ERROR_JOB_NO_CONTAINER: WIN32_ERROR = 1505u32; -pub const ERROR_JOIN_TO_JOIN: WIN32_ERROR = 138u32; -pub const ERROR_JOIN_TO_SUBST: WIN32_ERROR = 140u32; -pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: WIN32_ERROR = 1178u32; -pub const ERROR_JOURNAL_ENTRY_DELETED: WIN32_ERROR = 1181u32; -pub const ERROR_JOURNAL_HOOK_SET: WIN32_ERROR = 1430u32; -pub const ERROR_JOURNAL_NOT_ACTIVE: WIN32_ERROR = 1179u32; -pub const ERROR_KERNEL_APC: WIN32_ERROR = 738u32; -pub const ERROR_KEY_DELETED: WIN32_ERROR = 1018u32; -pub const ERROR_KEY_HAS_CHILDREN: WIN32_ERROR = 1020u32; -pub const ERROR_KM_DRIVER_BLOCKED: WIN32_ERROR = 1930u32; -pub const ERROR_LABEL_TOO_LONG: WIN32_ERROR = 154u32; -pub const ERROR_LAST_ADMIN: WIN32_ERROR = 1322u32; -pub const ERROR_LB_WITHOUT_TABSTOPS: WIN32_ERROR = 1434u32; -pub const ERROR_LICENSE_QUOTA_EXCEEDED: WIN32_ERROR = 1395u32; -pub const ERROR_LINUX_SUBSYSTEM_NOT_PRESENT: WIN32_ERROR = 414u32; -pub const ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED: WIN32_ERROR = 444u32; -pub const ERROR_LISTBOX_ID_NOT_FOUND: WIN32_ERROR = 1416u32; -pub const ERROR_LM_CROSS_ENCRYPTION_REQUIRED: WIN32_ERROR = 1390u32; -pub const ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED: WIN32_ERROR = 8653u32; -pub const ERROR_LOCAL_USER_SESSION_KEY: WIN32_ERROR = 1303u32; -pub const ERROR_LOCKED: WIN32_ERROR = 212u32; -pub const ERROR_LOCK_FAILED: WIN32_ERROR = 167u32; -pub const ERROR_LOCK_VIOLATION: WIN32_ERROR = 33u32; -pub const ERROR_LOGIN_TIME_RESTRICTION: WIN32_ERROR = 1239u32; -pub const ERROR_LOGIN_WKSTA_RESTRICTION: WIN32_ERROR = 1240u32; -pub const ERROR_LOGON_FAILURE: WIN32_ERROR = 1326u32; -pub const ERROR_LOGON_NOT_GRANTED: WIN32_ERROR = 1380u32; -pub const ERROR_LOGON_SERVER_CONFLICT: WIN32_ERROR = 568u32; -pub const ERROR_LOGON_SESSION_COLLISION: WIN32_ERROR = 1366u32; -pub const ERROR_LOGON_SESSION_EXISTS: WIN32_ERROR = 1363u32; -pub const ERROR_LOGON_TYPE_NOT_GRANTED: WIN32_ERROR = 1385u32; -pub const ERROR_LOG_FILE_FULL: WIN32_ERROR = 1502u32; -pub const ERROR_LOG_HARD_ERROR: WIN32_ERROR = 718u32; -pub const ERROR_LONGJUMP: WIN32_ERROR = 682u32; -pub const ERROR_LOST_MODE_LOGON_RESTRICTION: WIN32_ERROR = 1939u32; -pub const ERROR_LOST_WRITEBEHIND_DATA: WIN32_ERROR = 596u32; -pub const ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: WIN32_ERROR = 790u32; -pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: WIN32_ERROR = 788u32; -pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: WIN32_ERROR = 789u32; -pub const ERROR_LUIDS_EXHAUSTED: WIN32_ERROR = 1334u32; -pub const ERROR_MACHINE_LOCKED: WIN32_ERROR = 1271u32; -pub const ERROR_MAGAZINE_NOT_PRESENT: WIN32_ERROR = 1163u32; -pub const ERROR_MAPPED_ALIGNMENT: WIN32_ERROR = 1132u32; -pub const ERROR_MARKED_TO_DISALLOW_WRITES: WIN32_ERROR = 348u32; -pub const ERROR_MARSHALL_OVERFLOW: WIN32_ERROR = 603u32; -pub const ERROR_MAX_SESSIONS_REACHED: WIN32_ERROR = 353u32; -pub const ERROR_MAX_THRDS_REACHED: WIN32_ERROR = 164u32; -pub const ERROR_MCA_EXCEPTION: WIN32_ERROR = 784u32; -pub const ERROR_MCA_OCCURED: WIN32_ERROR = 651u32; -pub const ERROR_MEDIA_CHANGED: WIN32_ERROR = 1110u32; -pub const ERROR_MEDIA_CHECK: WIN32_ERROR = 679u32; -pub const ERROR_MEMBERS_PRIMARY_GROUP: WIN32_ERROR = 1374u32; -pub const ERROR_MEMBER_IN_ALIAS: WIN32_ERROR = 1378u32; -pub const ERROR_MEMBER_IN_GROUP: WIN32_ERROR = 1320u32; -pub const ERROR_MEMBER_NOT_IN_ALIAS: WIN32_ERROR = 1377u32; -pub const ERROR_MEMBER_NOT_IN_GROUP: WIN32_ERROR = 1321u32; -pub const ERROR_MEMORY_HARDWARE: WIN32_ERROR = 779u32; -pub const ERROR_MENU_ITEM_NOT_FOUND: WIN32_ERROR = 1456u32; -pub const ERROR_MESSAGE_SYNC_ONLY: WIN32_ERROR = 1159u32; -pub const ERROR_META_EXPANSION_TOO_LONG: WIN32_ERROR = 208u32; -pub const ERROR_MISSING_SYSTEMFILE: WIN32_ERROR = 573u32; -pub const ERROR_MOD_NOT_FOUND: WIN32_ERROR = 126u32; -pub const ERROR_MORE_DATA: WIN32_ERROR = 234u32; -pub const ERROR_MORE_WRITES: WIN32_ERROR = 1120u32; -pub const ERROR_MOUNT_POINT_NOT_RESOLVED: WIN32_ERROR = 649u32; -pub const ERROR_MP_PROCESSOR_MISMATCH: WIN32_ERROR = 725u32; -pub const ERROR_MR_MID_NOT_FOUND: WIN32_ERROR = 317u32; -pub const ERROR_MULTIPLE_FAULT_VIOLATION: WIN32_ERROR = 640u32; -pub const ERROR_MUTANT_LIMIT_EXCEEDED: WIN32_ERROR = 587u32; -pub const ERROR_MUTUAL_AUTH_FAILED: WIN32_ERROR = 1397u32; -pub const ERROR_NEGATIVE_SEEK: WIN32_ERROR = 131u32; -pub const ERROR_NESTING_NOT_ALLOWED: WIN32_ERROR = 215u32; -pub const ERROR_NETLOGON_NOT_STARTED: WIN32_ERROR = 1792u32; -pub const ERROR_NETNAME_DELETED: WIN32_ERROR = 64u32; -pub const ERROR_NETWORK_ACCESS_DENIED: WIN32_ERROR = 65u32; -pub const ERROR_NETWORK_ACCESS_DENIED_EDP: WIN32_ERROR = 354u32; -pub const ERROR_NETWORK_BUSY: WIN32_ERROR = 54u32; -pub const ERROR_NETWORK_UNREACHABLE: WIN32_ERROR = 1231u32; -pub const ERROR_NET_OPEN_FAILED: WIN32_ERROR = 570u32; -pub const ERROR_NET_WRITE_FAULT: WIN32_ERROR = 88u32; -pub const ERROR_NOACCESS: WIN32_ERROR = 998u32; -pub const ERROR_NOINTERFACE: WIN32_ERROR = 632u32; -pub const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: WIN32_ERROR = 1807u32; -pub const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT: WIN32_ERROR = 1809u32; -pub const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT: WIN32_ERROR = 1808u32; -pub const ERROR_NONE_MAPPED: WIN32_ERROR = 1332u32; -pub const ERROR_NONPAGED_SYSTEM_RESOURCES: WIN32_ERROR = 1451u32; -pub const ERROR_NON_ACCOUNT_SID: WIN32_ERROR = 1257u32; -pub const ERROR_NON_DOMAIN_SID: WIN32_ERROR = 1258u32; -pub const ERROR_NON_MDICHILD_WINDOW: WIN32_ERROR = 1445u32; -pub const ERROR_NOTHING_TO_TERMINATE: WIN32_ERROR = 758u32; -pub const ERROR_NOTIFICATION_GUID_ALREADY_DEFINED: WIN32_ERROR = 309u32; -pub const ERROR_NOTIFY_CLEANUP: WIN32_ERROR = 745u32; -pub const ERROR_NOTIFY_ENUM_DIR: WIN32_ERROR = 1022u32; -pub const ERROR_NOT_ALLOWED_ON_SYSTEM_FILE: WIN32_ERROR = 313u32; -pub const ERROR_NOT_ALL_ASSIGNED: WIN32_ERROR = 1300u32; -pub const ERROR_NOT_APPCONTAINER: WIN32_ERROR = 4250u32; -pub const ERROR_NOT_AUTHENTICATED: WIN32_ERROR = 1244u32; -pub const ERROR_NOT_A_CLOUD_FILE: WIN32_ERROR = 376u32; -pub const ERROR_NOT_A_CLOUD_SYNC_ROOT: WIN32_ERROR = 405u32; -pub const ERROR_NOT_A_DAX_VOLUME: WIN32_ERROR = 420u32; -pub const ERROR_NOT_A_REPARSE_POINT: WIN32_ERROR = 4390u32; -pub const ERROR_NOT_CAPABLE: WIN32_ERROR = 775u32; -pub const ERROR_NOT_CHILD_WINDOW: WIN32_ERROR = 1442u32; -pub const ERROR_NOT_CONNECTED: WIN32_ERROR = 2250u32; -pub const ERROR_NOT_CONTAINER: WIN32_ERROR = 1207u32; -pub const ERROR_NOT_DAX_MAPPABLE: WIN32_ERROR = 421u32; -pub const ERROR_NOT_DOS_DISK: WIN32_ERROR = 26u32; -pub const ERROR_NOT_ENOUGH_MEMORY: WIN32_ERROR = 8u32; -pub const ERROR_NOT_ENOUGH_QUOTA: WIN32_ERROR = 1816u32; -pub const ERROR_NOT_ENOUGH_SERVER_MEMORY: WIN32_ERROR = 1130u32; -pub const ERROR_NOT_EXPORT_FORMAT: WIN32_ERROR = 6008u32; -pub const ERROR_NOT_FOUND: WIN32_ERROR = 1168u32; -pub const ERROR_NOT_GUI_PROCESS: WIN32_ERROR = 1471u32; -pub const ERROR_NOT_JOINED: WIN32_ERROR = 136u32; -pub const ERROR_NOT_LOCKED: WIN32_ERROR = 158u32; -pub const ERROR_NOT_LOGGED_ON: WIN32_ERROR = 1245u32; -pub const ERROR_NOT_LOGON_PROCESS: WIN32_ERROR = 1362u32; -pub const ERROR_NOT_OWNER: WIN32_ERROR = 288u32; -pub const ERROR_NOT_READY: WIN32_ERROR = 21u32; -pub const ERROR_NOT_READ_FROM_COPY: WIN32_ERROR = 337u32; -pub const ERROR_NOT_REDUNDANT_STORAGE: WIN32_ERROR = 333u32; -pub const ERROR_NOT_REGISTRY_FILE: WIN32_ERROR = 1017u32; -pub const ERROR_NOT_SAFEBOOT_SERVICE: WIN32_ERROR = 1084u32; -pub const ERROR_NOT_SAFE_MODE_DRIVER: WIN32_ERROR = 646u32; -pub const ERROR_NOT_SAME_DEVICE: WIN32_ERROR = 17u32; -pub const ERROR_NOT_SAME_OBJECT: WIN32_ERROR = 1656u32; -pub const ERROR_NOT_SUBSTED: WIN32_ERROR = 137u32; -pub const ERROR_NOT_SUPPORTED: WIN32_ERROR = 50u32; -pub const ERROR_NOT_SUPPORTED_IN_APPCONTAINER: WIN32_ERROR = 4252u32; -pub const ERROR_NOT_SUPPORTED_ON_DAX: WIN32_ERROR = 360u32; -pub const ERROR_NOT_SUPPORTED_ON_SBS: WIN32_ERROR = 1254u32; -pub const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER: WIN32_ERROR = 8584u32; -pub const ERROR_NOT_SUPPORTED_WITH_AUDITING: WIN32_ERROR = 499u32; -pub const ERROR_NOT_SUPPORTED_WITH_BTT: WIN32_ERROR = 429u32; -pub const ERROR_NOT_SUPPORTED_WITH_BYPASSIO: WIN32_ERROR = 493u32; -pub const ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE: WIN32_ERROR = 509u32; -pub const ERROR_NOT_SUPPORTED_WITH_COMPRESSION: WIN32_ERROR = 496u32; -pub const ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION: WIN32_ERROR = 498u32; -pub const ERROR_NOT_SUPPORTED_WITH_ENCRYPTION: WIN32_ERROR = 495u32; -pub const ERROR_NOT_SUPPORTED_WITH_MONITORING: WIN32_ERROR = 503u32; -pub const ERROR_NOT_SUPPORTED_WITH_REPLICATION: WIN32_ERROR = 497u32; -pub const ERROR_NOT_SUPPORTED_WITH_SNAPSHOT: WIN32_ERROR = 504u32; -pub const ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION: WIN32_ERROR = 505u32; -pub const ERROR_NOT_TINY_STREAM: WIN32_ERROR = 598u32; -pub const ERROR_NO_ACE_CONDITION: WIN32_ERROR = 804u32; -pub const ERROR_NO_ASSOCIATION: WIN32_ERROR = 1155u32; -pub const ERROR_NO_BYPASSIO_DRIVER_SUPPORT: WIN32_ERROR = 494u32; -pub const ERROR_NO_CALLBACK_ACTIVE: WIN32_ERROR = 614u32; -pub const ERROR_NO_DATA: WIN32_ERROR = 232u32; -pub const ERROR_NO_DATA_DETECTED: WIN32_ERROR = 1104u32; -pub const ERROR_NO_EFS: WIN32_ERROR = 6004u32; -pub const ERROR_NO_EVENT_PAIR: WIN32_ERROR = 580u32; -pub const ERROR_NO_GUID_TRANSLATION: WIN32_ERROR = 560u32; -pub const ERROR_NO_IMPERSONATION_TOKEN: WIN32_ERROR = 1309u32; -pub const ERROR_NO_INHERITANCE: WIN32_ERROR = 1391u32; -pub const ERROR_NO_LOGON_SERVERS: WIN32_ERROR = 1311u32; -pub const ERROR_NO_LOG_SPACE: WIN32_ERROR = 1019u32; -pub const ERROR_NO_MATCH: WIN32_ERROR = 1169u32; -pub const ERROR_NO_MEDIA_IN_DRIVE: WIN32_ERROR = 1112u32; -pub const ERROR_NO_MORE_DEVICES: WIN32_ERROR = 1248u32; -pub const ERROR_NO_MORE_FILES: WIN32_ERROR = 18u32; -pub const ERROR_NO_MORE_ITEMS: WIN32_ERROR = 259u32; -pub const ERROR_NO_MORE_MATCHES: WIN32_ERROR = 626u32; -pub const ERROR_NO_MORE_SEARCH_HANDLES: WIN32_ERROR = 113u32; -pub const ERROR_NO_MORE_USER_HANDLES: WIN32_ERROR = 1158u32; -pub const ERROR_NO_NETWORK: WIN32_ERROR = 1222u32; -pub const ERROR_NO_NET_OR_BAD_PATH: WIN32_ERROR = 1203u32; -pub const ERROR_NO_NVRAM_RESOURCES: WIN32_ERROR = 1470u32; -pub const ERROR_NO_PAGEFILE: WIN32_ERROR = 578u32; -pub const ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND: WIN32_ERROR = 408u32; -pub const ERROR_NO_PROC_SLOTS: WIN32_ERROR = 89u32; -pub const ERROR_NO_PROMOTION_ACTIVE: WIN32_ERROR = 8222u32; -pub const ERROR_NO_QUOTAS_FOR_ACCOUNT: WIN32_ERROR = 1302u32; -pub const ERROR_NO_RANGES_PROCESSED: WIN32_ERROR = 312u32; -pub const ERROR_NO_RECOVERY_POLICY: WIN32_ERROR = 6003u32; -pub const ERROR_NO_RECOVERY_PROGRAM: WIN32_ERROR = 1082u32; -pub const ERROR_NO_SCROLLBARS: WIN32_ERROR = 1447u32; -pub const ERROR_NO_SECRETS: WIN32_ERROR = 8620u32; -pub const ERROR_NO_SECURITY_ON_OBJECT: WIN32_ERROR = 1350u32; -pub const ERROR_NO_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1116u32; -pub const ERROR_NO_SIGNAL_SENT: WIN32_ERROR = 205u32; -pub const ERROR_NO_SITENAME: WIN32_ERROR = 1919u32; -pub const ERROR_NO_SITE_SETTINGS_OBJECT: WIN32_ERROR = 8619u32; -pub const ERROR_NO_SPOOL_SPACE: WIN32_ERROR = 62u32; -pub const ERROR_NO_SUCH_ALIAS: WIN32_ERROR = 1376u32; -pub const ERROR_NO_SUCH_DEVICE: WIN32_ERROR = 433u32; -pub const ERROR_NO_SUCH_DOMAIN: WIN32_ERROR = 1355u32; -pub const ERROR_NO_SUCH_GROUP: WIN32_ERROR = 1319u32; -pub const ERROR_NO_SUCH_LOGON_SESSION: WIN32_ERROR = 1312u32; -pub const ERROR_NO_SUCH_MEMBER: WIN32_ERROR = 1387u32; -pub const ERROR_NO_SUCH_PACKAGE: WIN32_ERROR = 1364u32; -pub const ERROR_NO_SUCH_PRIVILEGE: WIN32_ERROR = 1313u32; -pub const ERROR_NO_SUCH_SITE: WIN32_ERROR = 1249u32; -pub const ERROR_NO_SUCH_USER: WIN32_ERROR = 1317u32; -pub const ERROR_NO_SYSTEM_MENU: WIN32_ERROR = 1437u32; -pub const ERROR_NO_SYSTEM_RESOURCES: WIN32_ERROR = 1450u32; -pub const ERROR_NO_TASK_QUEUE: WIN32_ERROR = 427u32; -pub const ERROR_NO_TOKEN: WIN32_ERROR = 1008u32; -pub const ERROR_NO_TRACKING_SERVICE: WIN32_ERROR = 1172u32; -pub const ERROR_NO_TRUST_LSA_SECRET: WIN32_ERROR = 1786u32; -pub const ERROR_NO_TRUST_SAM_ACCOUNT: WIN32_ERROR = 1787u32; -pub const ERROR_NO_UNICODE_TRANSLATION: WIN32_ERROR = 1113u32; -pub const ERROR_NO_USER_KEYS: WIN32_ERROR = 6006u32; -pub const ERROR_NO_USER_SESSION_KEY: WIN32_ERROR = 1394u32; -pub const ERROR_NO_VOLUME_ID: WIN32_ERROR = 1173u32; -pub const ERROR_NO_VOLUME_LABEL: WIN32_ERROR = 125u32; -pub const ERROR_NO_WILDCARD_CHARACTERS: WIN32_ERROR = 1417u32; -pub const ERROR_NO_WORK_DONE: WIN32_ERROR = 235u32; -pub const ERROR_NO_WRITABLE_DC_FOUND: WIN32_ERROR = 8621u32; -pub const ERROR_NO_YIELD_PERFORMED: WIN32_ERROR = 721u32; -pub const ERROR_NTLM_BLOCKED: WIN32_ERROR = 1937u32; -pub const ERROR_NT_CROSS_ENCRYPTION_REQUIRED: WIN32_ERROR = 1386u32; -pub const ERROR_NULL_LM_PASSWORD: WIN32_ERROR = 1304u32; -pub const ERROR_OBJECT_IS_IMMUTABLE: WIN32_ERROR = 4449u32; -pub const ERROR_OBJECT_NAME_EXISTS: WIN32_ERROR = 698u32; -pub const ERROR_OBJECT_NOT_EXTERNALLY_BACKED: WIN32_ERROR = 342u32; -pub const ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED: WIN32_ERROR = 4442u32; -pub const ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED: WIN32_ERROR = 4440u32; -pub const ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: WIN32_ERROR = 4443u32; -pub const ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: WIN32_ERROR = 4441u32; -pub const ERROR_OFFSET_ALIGNMENT_VIOLATION: WIN32_ERROR = 327u32; -pub const ERROR_OLD_WIN_VERSION: WIN32_ERROR = 1150u32; -pub const ERROR_ONLY_IF_CONNECTED: WIN32_ERROR = 1251u32; -pub const ERROR_OPEN_FAILED: WIN32_ERROR = 110u32; -pub const ERROR_OPEN_FILES: WIN32_ERROR = 2401u32; -pub const ERROR_OPERATION_ABORTED: WIN32_ERROR = 995u32; -pub const ERROR_OPERATION_IN_PROGRESS: WIN32_ERROR = 329u32; -pub const ERROR_OPLOCK_BREAK_IN_PROGRESS: WIN32_ERROR = 742u32; -pub const ERROR_OPLOCK_HANDLE_CLOSED: WIN32_ERROR = 803u32; -pub const ERROR_OPLOCK_NOT_GRANTED: WIN32_ERROR = 300u32; -pub const ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE: WIN32_ERROR = 800u32; -pub const ERROR_ORPHAN_NAME_EXHAUSTED: WIN32_ERROR = 799u32; -pub const ERROR_OUTOFMEMORY: WIN32_ERROR = 14u32; -pub const ERROR_OUT_OF_PAPER: WIN32_ERROR = 28u32; -pub const ERROR_OUT_OF_STRUCTURES: WIN32_ERROR = 84u32; -pub const ERROR_OVERRIDE_NOCHANGES: WIN32_ERROR = 1252u32; -pub const ERROR_PAGED_SYSTEM_RESOURCES: WIN32_ERROR = 1452u32; -pub const ERROR_PAGEFILE_CREATE_FAILED: WIN32_ERROR = 576u32; -pub const ERROR_PAGEFILE_NOT_SUPPORTED: WIN32_ERROR = 491u32; -pub const ERROR_PAGEFILE_QUOTA: WIN32_ERROR = 1454u32; -pub const ERROR_PAGEFILE_QUOTA_EXCEEDED: WIN32_ERROR = 567u32; -pub const ERROR_PAGE_FAULT_COPY_ON_WRITE: WIN32_ERROR = 749u32; -pub const ERROR_PAGE_FAULT_DEMAND_ZERO: WIN32_ERROR = 748u32; -pub const ERROR_PAGE_FAULT_GUARD_PAGE: WIN32_ERROR = 750u32; -pub const ERROR_PAGE_FAULT_PAGING_FILE: WIN32_ERROR = 751u32; -pub const ERROR_PAGE_FAULT_TRANSITION: WIN32_ERROR = 747u32; -pub const ERROR_PARAMETER_QUOTA_EXCEEDED: WIN32_ERROR = 1283u32; -pub const ERROR_PARTIAL_COPY: WIN32_ERROR = 299u32; -pub const ERROR_PARTITION_FAILURE: WIN32_ERROR = 1105u32; -pub const ERROR_PARTITION_TERMINATING: WIN32_ERROR = 1184u32; -pub const ERROR_PASSWORD_CHANGE_REQUIRED: WIN32_ERROR = 1938u32; -pub const ERROR_PASSWORD_EXPIRED: WIN32_ERROR = 1330u32; -pub const ERROR_PASSWORD_MUST_CHANGE: WIN32_ERROR = 1907u32; -pub const ERROR_PASSWORD_RESTRICTION: WIN32_ERROR = 1325u32; -pub const ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT: WIN32_ERROR = 1651u32; -pub const ERROR_PATCH_NO_SEQUENCE: WIN32_ERROR = 1648u32; -pub const ERROR_PATCH_PACKAGE_INVALID: WIN32_ERROR = 1636u32; -pub const ERROR_PATCH_PACKAGE_OPEN_FAILED: WIN32_ERROR = 1635u32; -pub const ERROR_PATCH_PACKAGE_REJECTED: WIN32_ERROR = 1643u32; -pub const ERROR_PATCH_PACKAGE_UNSUPPORTED: WIN32_ERROR = 1637u32; -pub const ERROR_PATCH_REMOVAL_DISALLOWED: WIN32_ERROR = 1649u32; -pub const ERROR_PATCH_REMOVAL_UNSUPPORTED: WIN32_ERROR = 1646u32; -pub const ERROR_PATCH_TARGET_NOT_FOUND: WIN32_ERROR = 1642u32; -pub const ERROR_PATH_BUSY: WIN32_ERROR = 148u32; -pub const ERROR_PATH_NOT_FOUND: WIN32_ERROR = 3u32; -pub const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1932u32; -pub const ERROR_PIPE_BUSY: WIN32_ERROR = 231u32; -pub const ERROR_PIPE_CONNECTED: WIN32_ERROR = 535u32; -pub const ERROR_PIPE_LISTENING: WIN32_ERROR = 536u32; -pub const ERROR_PIPE_LOCAL: WIN32_ERROR = 229u32; -pub const ERROR_PIPE_NOT_CONNECTED: WIN32_ERROR = 233u32; -pub const ERROR_PKINIT_FAILURE: WIN32_ERROR = 1263u32; -pub const ERROR_PLUGPLAY_QUERY_VETOED: WIN32_ERROR = 683u32; -pub const ERROR_PNP_BAD_MPS_TABLE: WIN32_ERROR = 671u32; -pub const ERROR_PNP_INVALID_ID: WIN32_ERROR = 674u32; -pub const ERROR_PNP_IRQ_TRANSLATION_FAILED: WIN32_ERROR = 673u32; -pub const ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT: WIN32_ERROR = 480u32; -pub const ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT: WIN32_ERROR = 481u32; -pub const ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT: WIN32_ERROR = 482u32; -pub const ERROR_PNP_REBOOT_REQUIRED: WIN32_ERROR = 638u32; -pub const ERROR_PNP_RESTART_ENUMERATION: WIN32_ERROR = 636u32; -pub const ERROR_PNP_TRANSLATION_FAILED: WIN32_ERROR = 672u32; -pub const ERROR_POINT_NOT_FOUND: WIN32_ERROR = 1171u32; -pub const ERROR_POLICY_OBJECT_NOT_FOUND: WIN32_ERROR = 8219u32; -pub const ERROR_POLICY_ONLY_IN_DS: WIN32_ERROR = 8220u32; -pub const ERROR_POPUP_ALREADY_ACTIVE: WIN32_ERROR = 1446u32; -pub const ERROR_PORT_MESSAGE_TOO_LONG: WIN32_ERROR = 546u32; -pub const ERROR_PORT_NOT_SET: WIN32_ERROR = 642u32; -pub const ERROR_PORT_UNREACHABLE: WIN32_ERROR = 1234u32; -pub const ERROR_POSSIBLE_DEADLOCK: WIN32_ERROR = 1131u32; -pub const ERROR_POTENTIAL_FILE_FOUND: WIN32_ERROR = 1180u32; -pub const ERROR_PREDEFINED_HANDLE: WIN32_ERROR = 714u32; -pub const ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED: WIN32_ERROR = 746u32; -pub const ERROR_PRINTER_ALREADY_EXISTS: WIN32_ERROR = 1802u32; -pub const ERROR_PRINTER_DELETED: WIN32_ERROR = 1905u32; -pub const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED: WIN32_ERROR = 1795u32; -pub const ERROR_PRINTQ_FULL: WIN32_ERROR = 61u32; -pub const ERROR_PRINT_CANCELLED: WIN32_ERROR = 63u32; -pub const ERROR_PRIVATE_DIALOG_INDEX: WIN32_ERROR = 1415u32; -pub const ERROR_PRIVILEGE_NOT_HELD: WIN32_ERROR = 1314u32; -pub const ERROR_PROCESS_ABORTED: WIN32_ERROR = 1067u32; -pub const ERROR_PROCESS_IN_JOB: WIN32_ERROR = 760u32; -pub const ERROR_PROCESS_IS_PROTECTED: WIN32_ERROR = 1293u32; -pub const ERROR_PROCESS_MODE_ALREADY_BACKGROUND: WIN32_ERROR = 402u32; -pub const ERROR_PROCESS_MODE_NOT_BACKGROUND: WIN32_ERROR = 403u32; -pub const ERROR_PROCESS_NOT_IN_JOB: WIN32_ERROR = 759u32; -pub const ERROR_PROC_NOT_FOUND: WIN32_ERROR = 127u32; -pub const ERROR_PRODUCT_UNINSTALLED: WIN32_ERROR = 1614u32; -pub const ERROR_PRODUCT_VERSION: WIN32_ERROR = 1638u32; -pub const ERROR_PROFILING_AT_LIMIT: WIN32_ERROR = 553u32; -pub const ERROR_PROFILING_NOT_STARTED: WIN32_ERROR = 550u32; -pub const ERROR_PROFILING_NOT_STOPPED: WIN32_ERROR = 551u32; -pub const ERROR_PROMOTION_ACTIVE: WIN32_ERROR = 8221u32; -pub const ERROR_PROTOCOL_UNREACHABLE: WIN32_ERROR = 1233u32; -pub const ERROR_PWD_HISTORY_CONFLICT: WIN32_ERROR = 617u32; -pub const ERROR_PWD_TOO_LONG: WIN32_ERROR = 657u32; -pub const ERROR_PWD_TOO_RECENT: WIN32_ERROR = 616u32; -pub const ERROR_PWD_TOO_SHORT: WIN32_ERROR = 615u32; -pub const ERROR_QUOTA_ACTIVITY: WIN32_ERROR = 810u32; -pub const ERROR_QUOTA_LIST_INCONSISTENT: WIN32_ERROR = 621u32; -pub const ERROR_RANGE_LIST_CONFLICT: WIN32_ERROR = 627u32; -pub const ERROR_RANGE_NOT_FOUND: WIN32_ERROR = 644u32; -pub const ERROR_READ_FAULT: WIN32_ERROR = 30u32; -pub const ERROR_RECEIVE_EXPEDITED: WIN32_ERROR = 708u32; -pub const ERROR_RECEIVE_PARTIAL: WIN32_ERROR = 707u32; -pub const ERROR_RECEIVE_PARTIAL_EXPEDITED: WIN32_ERROR = 709u32; -pub const ERROR_RECOVERY_FAILURE: WIN32_ERROR = 1279u32; -pub const ERROR_REDIRECTOR_HAS_OPEN_HANDLES: WIN32_ERROR = 1794u32; -pub const ERROR_REDIR_PAUSED: WIN32_ERROR = 72u32; -pub const ERROR_REGISTRY_CORRUPT: WIN32_ERROR = 1015u32; -pub const ERROR_REGISTRY_HIVE_RECOVERED: WIN32_ERROR = 685u32; -pub const ERROR_REGISTRY_IO_FAILED: WIN32_ERROR = 1016u32; -pub const ERROR_REGISTRY_QUOTA_LIMIT: WIN32_ERROR = 613u32; -pub const ERROR_REGISTRY_RECOVERED: WIN32_ERROR = 1014u32; -pub const ERROR_REG_NAT_CONSUMPTION: WIN32_ERROR = 1261u32; -pub const ERROR_RELOC_CHAIN_XEEDS_SEGLIM: WIN32_ERROR = 201u32; -pub const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED: WIN32_ERROR = 1936u32; -pub const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED: WIN32_ERROR = 1220u32; -pub const ERROR_REMOTE_STORAGE_MEDIA_ERROR: WIN32_ERROR = 4352u32; -pub const ERROR_REMOTE_STORAGE_NOT_ACTIVE: WIN32_ERROR = 4351u32; -pub const ERROR_REM_NOT_LIST: WIN32_ERROR = 51u32; -pub const ERROR_REPARSE: WIN32_ERROR = 741u32; -pub const ERROR_REPARSE_ATTRIBUTE_CONFLICT: WIN32_ERROR = 4391u32; -pub const ERROR_REPARSE_OBJECT: WIN32_ERROR = 755u32; -pub const ERROR_REPARSE_POINT_ENCOUNTERED: WIN32_ERROR = 4395u32; -pub const ERROR_REPARSE_TAG_INVALID: WIN32_ERROR = 4393u32; -pub const ERROR_REPARSE_TAG_MISMATCH: WIN32_ERROR = 4394u32; -pub const ERROR_REPLY_MESSAGE_MISMATCH: WIN32_ERROR = 595u32; -pub const ERROR_REQUEST_ABORTED: WIN32_ERROR = 1235u32; -pub const ERROR_REQUEST_OUT_OF_SEQUENCE: WIN32_ERROR = 776u32; -pub const ERROR_REQUEST_PAUSED: WIN32_ERROR = 3050u32; -pub const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION: WIN32_ERROR = 1459u32; -pub const ERROR_REQ_NOT_ACCEP: WIN32_ERROR = 71u32; -pub const ERROR_RESIDENT_FILE_NOT_SUPPORTED: WIN32_ERROR = 334u32; -pub const ERROR_RESOURCE_CALL_TIMED_OUT: WIN32_ERROR = 5910u32; -pub const ERROR_RESOURCE_DATA_NOT_FOUND: WIN32_ERROR = 1812u32; -pub const ERROR_RESOURCE_LANG_NOT_FOUND: WIN32_ERROR = 1815u32; -pub const ERROR_RESOURCE_NAME_NOT_FOUND: WIN32_ERROR = 1814u32; -pub const ERROR_RESOURCE_REQUIREMENTS_CHANGED: WIN32_ERROR = 756u32; -pub const ERROR_RESOURCE_TYPE_NOT_FOUND: WIN32_ERROR = 1813u32; -pub const ERROR_RESTART_APPLICATION: WIN32_ERROR = 1467u32; -pub const ERROR_RESUME_HIBERNATION: WIN32_ERROR = 727u32; -pub const ERROR_RETRY: WIN32_ERROR = 1237u32; -pub const ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT: WIN32_ERROR = 1662u32; -pub const ERROR_REVISION_MISMATCH: WIN32_ERROR = 1306u32; -pub const ERROR_RING2SEG_MUST_BE_MOVABLE: WIN32_ERROR = 200u32; -pub const ERROR_RING2_STACK_IN_USE: WIN32_ERROR = 207u32; -pub const ERROR_RMODE_APP: WIN32_ERROR = 1153u32; -pub const ERROR_ROWSNOTRELEASED: WIN32_ERROR = 772u32; -pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: WIN32_ERROR = 15403u32; -pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: WIN32_ERROR = 15402u32; -pub const ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED: WIN32_ERROR = 410u32; -pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET: WIN32_ERROR = 411u32; -pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE: WIN32_ERROR = 412u32; -pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER: WIN32_ERROR = 413u32; -pub const ERROR_RXACT_COMMITTED: WIN32_ERROR = 744u32; -pub const ERROR_RXACT_COMMIT_FAILURE: WIN32_ERROR = 1370u32; -pub const ERROR_RXACT_COMMIT_NECESSARY: WIN32_ERROR = 678u32; -pub const ERROR_RXACT_INVALID_STATE: WIN32_ERROR = 1369u32; -pub const ERROR_RXACT_STATE_CREATED: WIN32_ERROR = 701u32; -pub const ERROR_SAME_DRIVE: WIN32_ERROR = 143u32; -pub const ERROR_SAM_INIT_FAILURE: WIN32_ERROR = 8541u32; -pub const ERROR_SCOPE_NOT_FOUND: WIN32_ERROR = 318u32; -pub const ERROR_SCREEN_ALREADY_LOCKED: WIN32_ERROR = 1440u32; -pub const ERROR_SCRUB_DATA_DISABLED: WIN32_ERROR = 332u32; -pub const ERROR_SECRET_TOO_LONG: WIN32_ERROR = 1382u32; -pub const ERROR_SECTION_DIRECT_MAP_ONLY: WIN32_ERROR = 819u32; -pub const ERROR_SECTOR_NOT_FOUND: WIN32_ERROR = 27u32; -pub const ERROR_SECURITY_DENIES_OPERATION: WIN32_ERROR = 447u32; -pub const ERROR_SECURITY_STREAM_IS_INCONSISTENT: WIN32_ERROR = 306u32; -pub const ERROR_SEEK: WIN32_ERROR = 25u32; -pub const ERROR_SEEK_ON_DEVICE: WIN32_ERROR = 132u32; -pub const ERROR_SEGMENT_NOTIFICATION: WIN32_ERROR = 702u32; -pub const ERROR_SEM_IS_SET: WIN32_ERROR = 102u32; -pub const ERROR_SEM_NOT_FOUND: WIN32_ERROR = 187u32; -pub const ERROR_SEM_OWNER_DIED: WIN32_ERROR = 105u32; -pub const ERROR_SEM_TIMEOUT: WIN32_ERROR = 121u32; -pub const ERROR_SEM_USER_LIMIT: WIN32_ERROR = 106u32; -pub const ERROR_SERIAL_NO_DEVICE: WIN32_ERROR = 1118u32; -pub const ERROR_SERVER_DISABLED: WIN32_ERROR = 1341u32; -pub const ERROR_SERVER_HAS_OPEN_HANDLES: WIN32_ERROR = 1811u32; -pub const ERROR_SERVER_NOT_DISABLED: WIN32_ERROR = 1342u32; -pub const ERROR_SERVER_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1255u32; -pub const ERROR_SERVER_SID_MISMATCH: WIN32_ERROR = 628u32; -pub const ERROR_SERVER_TRANSPORT_CONFLICT: WIN32_ERROR = 816u32; -pub const ERROR_SERVICE_ALREADY_RUNNING: WIN32_ERROR = 1056u32; -pub const ERROR_SERVICE_CANNOT_ACCEPT_CTRL: WIN32_ERROR = 1061u32; -pub const ERROR_SERVICE_DATABASE_LOCKED: WIN32_ERROR = 1055u32; -pub const ERROR_SERVICE_DEPENDENCY_DELETED: WIN32_ERROR = 1075u32; -pub const ERROR_SERVICE_DEPENDENCY_FAIL: WIN32_ERROR = 1068u32; -pub const ERROR_SERVICE_DISABLED: WIN32_ERROR = 1058u32; -pub const ERROR_SERVICE_DOES_NOT_EXIST: WIN32_ERROR = 1060u32; -pub const ERROR_SERVICE_EXISTS: WIN32_ERROR = 1073u32; -pub const ERROR_SERVICE_LOGON_FAILED: WIN32_ERROR = 1069u32; -pub const ERROR_SERVICE_MARKED_FOR_DELETE: WIN32_ERROR = 1072u32; -pub const ERROR_SERVICE_NEVER_STARTED: WIN32_ERROR = 1077u32; -pub const ERROR_SERVICE_NOTIFICATION: WIN32_ERROR = 716u32; -pub const ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: WIN32_ERROR = 1294u32; -pub const ERROR_SERVICE_NOT_ACTIVE: WIN32_ERROR = 1062u32; -pub const ERROR_SERVICE_NOT_FOUND: WIN32_ERROR = 1243u32; -pub const ERROR_SERVICE_NOT_IN_EXE: WIN32_ERROR = 1083u32; -pub const ERROR_SERVICE_NO_THREAD: WIN32_ERROR = 1054u32; -pub const ERROR_SERVICE_REQUEST_TIMEOUT: WIN32_ERROR = 1053u32; -pub const ERROR_SERVICE_SPECIFIC_ERROR: WIN32_ERROR = 1066u32; -pub const ERROR_SERVICE_START_HANG: WIN32_ERROR = 1070u32; -pub const ERROR_SESSION_CREDENTIAL_CONFLICT: WIN32_ERROR = 1219u32; -pub const ERROR_SESSION_KEY_TOO_SHORT: WIN32_ERROR = 501u32; -pub const ERROR_SETCOUNT_ON_BAD_LB: WIN32_ERROR = 1433u32; -pub const ERROR_SETMARK_DETECTED: WIN32_ERROR = 1103u32; -pub const ERROR_SET_CONTEXT_DENIED: WIN32_ERROR = 1660u32; -pub const ERROR_SET_NOT_FOUND: WIN32_ERROR = 1170u32; -pub const ERROR_SET_POWER_STATE_FAILED: WIN32_ERROR = 1141u32; -pub const ERROR_SET_POWER_STATE_VETOED: WIN32_ERROR = 1140u32; -pub const ERROR_SHARED_POLICY: WIN32_ERROR = 8218u32; -pub const ERROR_SHARING_BUFFER_EXCEEDED: WIN32_ERROR = 36u32; -pub const ERROR_SHARING_PAUSED: WIN32_ERROR = 70u32; -pub const ERROR_SHARING_VIOLATION: WIN32_ERROR = 32u32; -pub const ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: WIN32_ERROR = 305u32; -pub const ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE: WIN32_ERROR = 1192u32; -pub const ERROR_SHUTDOWN_IN_PROGRESS: WIN32_ERROR = 1115u32; -pub const ERROR_SHUTDOWN_IS_SCHEDULED: WIN32_ERROR = 1190u32; -pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: WIN32_ERROR = 1191u32; -pub const ERROR_SIGNAL_PENDING: WIN32_ERROR = 162u32; -pub const ERROR_SIGNAL_REFUSED: WIN32_ERROR = 156u32; -pub const ERROR_SINGLE_INSTANCE_APP: WIN32_ERROR = 1152u32; -pub const ERROR_SMARTCARD_SUBSYSTEM_FAILURE: WIN32_ERROR = 1264u32; -pub const ERROR_SMB1_NOT_AVAILABLE: WIN32_ERROR = 384u32; -pub const ERROR_SMB_GUEST_LOGON_BLOCKED: WIN32_ERROR = 1272u32; -pub const ERROR_SMR_GARBAGE_COLLECTION_REQUIRED: WIN32_ERROR = 4445u32; -pub const ERROR_SOME_NOT_MAPPED: WIN32_ERROR = 1301u32; -pub const ERROR_SOURCE_ELEMENT_EMPTY: WIN32_ERROR = 1160u32; -pub const ERROR_SPARSE_FILE_NOT_SUPPORTED: WIN32_ERROR = 490u32; -pub const ERROR_SPECIAL_ACCOUNT: WIN32_ERROR = 1371u32; -pub const ERROR_SPECIAL_GROUP: WIN32_ERROR = 1372u32; -pub const ERROR_SPECIAL_USER: WIN32_ERROR = 1373u32; -pub const ERROR_SRC_SRV_DLL_LOAD_FAILED: WIN32_ERROR = 428u32; -pub const ERROR_STACK_BUFFER_OVERRUN: WIN32_ERROR = 1282u32; -pub const ERROR_STACK_OVERFLOW: WIN32_ERROR = 1001u32; -pub const ERROR_STACK_OVERFLOW_READ: WIN32_ERROR = 599u32; -pub const ERROR_STOPPED_ON_SYMLINK: WIN32_ERROR = 681u32; -pub const ERROR_STORAGE_LOST_DATA_PERSISTENCE: WIN32_ERROR = 368u32; -pub const ERROR_STORAGE_RESERVE_ALREADY_EXISTS: WIN32_ERROR = 418u32; -pub const ERROR_STORAGE_RESERVE_DOES_NOT_EXIST: WIN32_ERROR = 417u32; -pub const ERROR_STORAGE_RESERVE_ID_INVALID: WIN32_ERROR = 416u32; -pub const ERROR_STORAGE_RESERVE_NOT_EMPTY: WIN32_ERROR = 419u32; -pub const ERROR_STORAGE_STACK_ACCESS_DENIED: WIN32_ERROR = 472u32; -pub const ERROR_STORAGE_TOPOLOGY_ID_MISMATCH: WIN32_ERROR = 345u32; -pub const ERROR_STRICT_CFG_VIOLATION: WIN32_ERROR = 1657u32; -pub const ERROR_SUBST_TO_JOIN: WIN32_ERROR = 141u32; -pub const ERROR_SUBST_TO_SUBST: WIN32_ERROR = 139u32; -pub const ERROR_SUCCESS: WIN32_ERROR = 0u32; -pub const ERROR_SUCCESS_REBOOT_INITIATED: WIN32_ERROR = 1641u32; -pub const ERROR_SWAPERROR: WIN32_ERROR = 999u32; -pub const ERROR_SYMLINK_CLASS_DISABLED: WIN32_ERROR = 1463u32; -pub const ERROR_SYMLINK_NOT_SUPPORTED: WIN32_ERROR = 1464u32; -pub const ERROR_SYNCHRONIZATION_REQUIRED: WIN32_ERROR = 569u32; -pub const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED: WIN32_ERROR = 1274u32; -pub const ERROR_SYSTEM_HIVE_TOO_LARGE: WIN32_ERROR = 653u32; -pub const ERROR_SYSTEM_IMAGE_BAD_SIGNATURE: WIN32_ERROR = 637u32; -pub const ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: WIN32_ERROR = 783u32; -pub const ERROR_SYSTEM_POWERSTATE_TRANSITION: WIN32_ERROR = 782u32; -pub const ERROR_SYSTEM_PROCESS_TERMINATED: WIN32_ERROR = 591u32; -pub const ERROR_SYSTEM_SHUTDOWN: WIN32_ERROR = 641u32; -pub const ERROR_SYSTEM_TRACE: WIN32_ERROR = 150u32; -pub const ERROR_THREAD_1_INACTIVE: WIN32_ERROR = 210u32; -pub const ERROR_THREAD_ALREADY_IN_TASK: WIN32_ERROR = 1552u32; -pub const ERROR_THREAD_MODE_ALREADY_BACKGROUND: WIN32_ERROR = 400u32; -pub const ERROR_THREAD_MODE_NOT_BACKGROUND: WIN32_ERROR = 401u32; -pub const ERROR_THREAD_NOT_IN_PROCESS: WIN32_ERROR = 566u32; -pub const ERROR_THREAD_WAS_SUSPENDED: WIN32_ERROR = 699u32; -pub const ERROR_TIMEOUT: WIN32_ERROR = 1460u32; -pub const ERROR_TIMER_NOT_CANCELED: WIN32_ERROR = 541u32; -pub const ERROR_TIMER_RESOLUTION_NOT_SET: WIN32_ERROR = 607u32; -pub const ERROR_TIMER_RESUME_IGNORED: WIN32_ERROR = 722u32; -pub const ERROR_TIME_SENSITIVE_THREAD: WIN32_ERROR = 422u32; -pub const ERROR_TIME_SKEW: WIN32_ERROR = 1398u32; -pub const ERROR_TLW_WITH_WSCHILD: WIN32_ERROR = 1406u32; -pub const ERROR_TOKEN_ALREADY_IN_USE: WIN32_ERROR = 1375u32; -pub const ERROR_TOO_MANY_CMDS: WIN32_ERROR = 56u32; -pub const ERROR_TOO_MANY_CONTEXT_IDS: WIN32_ERROR = 1384u32; -pub const ERROR_TOO_MANY_DESCRIPTORS: WIN32_ERROR = 331u32; -pub const ERROR_TOO_MANY_LINKS: WIN32_ERROR = 1142u32; -pub const ERROR_TOO_MANY_LUIDS_REQUESTED: WIN32_ERROR = 1333u32; -pub const ERROR_TOO_MANY_MODULES: WIN32_ERROR = 214u32; -pub const ERROR_TOO_MANY_MUXWAITERS: WIN32_ERROR = 152u32; -pub const ERROR_TOO_MANY_NAMES: WIN32_ERROR = 68u32; -pub const ERROR_TOO_MANY_OPEN_FILES: WIN32_ERROR = 4u32; -pub const ERROR_TOO_MANY_POSTS: WIN32_ERROR = 298u32; -pub const ERROR_TOO_MANY_SECRETS: WIN32_ERROR = 1381u32; -pub const ERROR_TOO_MANY_SEMAPHORES: WIN32_ERROR = 100u32; -pub const ERROR_TOO_MANY_SEM_REQUESTS: WIN32_ERROR = 103u32; -pub const ERROR_TOO_MANY_SESS: WIN32_ERROR = 69u32; -pub const ERROR_TOO_MANY_SIDS: WIN32_ERROR = 1389u32; -pub const ERROR_TOO_MANY_TCBS: WIN32_ERROR = 155u32; -pub const ERROR_TOO_MANY_THREADS: WIN32_ERROR = 565u32; -pub const ERROR_TRANSLATION_COMPLETE: WIN32_ERROR = 757u32; -pub const ERROR_TRUSTED_DOMAIN_FAILURE: WIN32_ERROR = 1788u32; -pub const ERROR_TRUSTED_RELATIONSHIP_FAILURE: WIN32_ERROR = 1789u32; -pub const ERROR_TRUST_FAILURE: WIN32_ERROR = 1790u32; -pub const ERROR_UNABLE_TO_LOCK_MEDIA: WIN32_ERROR = 1108u32; -pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT: WIN32_ERROR = 1176u32; -pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2: WIN32_ERROR = 1177u32; -pub const ERROR_UNABLE_TO_REMOVE_REPLACED: WIN32_ERROR = 1175u32; -pub const ERROR_UNABLE_TO_UNLOAD_MEDIA: WIN32_ERROR = 1109u32; -pub const ERROR_UNDEFINED_CHARACTER: WIN32_ERROR = 583u32; -pub const ERROR_UNDEFINED_SCOPE: WIN32_ERROR = 319u32; -pub const ERROR_UNEXPECTED_MM_CREATE_ERR: WIN32_ERROR = 556u32; -pub const ERROR_UNEXPECTED_MM_EXTEND_ERR: WIN32_ERROR = 558u32; -pub const ERROR_UNEXPECTED_MM_MAP_ERROR: WIN32_ERROR = 557u32; -pub const ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR: WIN32_ERROR = 443u32; -pub const ERROR_UNEXP_NET_ERR: WIN32_ERROR = 59u32; -pub const ERROR_UNHANDLED_EXCEPTION: WIN32_ERROR = 574u32; -pub const ERROR_UNIDENTIFIED_ERROR: WIN32_ERROR = 1287u32; -pub const ERROR_UNKNOWN_COMPONENT: WIN32_ERROR = 1607u32; -pub const ERROR_UNKNOWN_FEATURE: WIN32_ERROR = 1606u32; -pub const ERROR_UNKNOWN_PATCH: WIN32_ERROR = 1647u32; -pub const ERROR_UNKNOWN_PORT: WIN32_ERROR = 1796u32; -pub const ERROR_UNKNOWN_PRINTER_DRIVER: WIN32_ERROR = 1797u32; -pub const ERROR_UNKNOWN_PRINTPROCESSOR: WIN32_ERROR = 1798u32; -pub const ERROR_UNKNOWN_PRODUCT: WIN32_ERROR = 1605u32; -pub const ERROR_UNKNOWN_PROPERTY: WIN32_ERROR = 1608u32; -pub const ERROR_UNKNOWN_REVISION: WIN32_ERROR = 1305u32; -pub const ERROR_UNRECOGNIZED_MEDIA: WIN32_ERROR = 1785u32; -pub const ERROR_UNRECOGNIZED_VOLUME: WIN32_ERROR = 1005u32; -pub const ERROR_UNSATISFIED_DEPENDENCIES: WIN32_ERROR = 441u32; -pub const ERROR_UNSUPPORTED_COMPRESSION: WIN32_ERROR = 618u32; -pub const ERROR_UNSUPPORTED_TYPE: WIN32_ERROR = 1630u32; -pub const ERROR_UNTRUSTED_MOUNT_POINT: WIN32_ERROR = 448u32; -pub const ERROR_UNWIND: WIN32_ERROR = 542u32; -pub const ERROR_UNWIND_CONSOLIDATE: WIN32_ERROR = 684u32; -pub const ERROR_USER_APC: WIN32_ERROR = 737u32; -pub const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED: WIN32_ERROR = 1934u32; -pub const ERROR_USER_EXISTS: WIN32_ERROR = 1316u32; -pub const ERROR_USER_MAPPED_FILE: WIN32_ERROR = 1224u32; -pub const ERROR_USER_PROFILE_LOAD: WIN32_ERROR = 500u32; -pub const ERROR_VALIDATE_CONTINUE: WIN32_ERROR = 625u32; -pub const ERROR_VC_DISCONNECTED: WIN32_ERROR = 240u32; -pub const ERROR_VDM_DISALLOWED: WIN32_ERROR = 1286u32; -pub const ERROR_VDM_HARD_ERROR: WIN32_ERROR = 593u32; -pub const ERROR_VERIFIER_STOP: WIN32_ERROR = 537u32; -pub const ERROR_VERSION_PARSE_ERROR: WIN32_ERROR = 777u32; -pub const ERROR_VIRUS_DELETED: WIN32_ERROR = 226u32; -pub const ERROR_VIRUS_INFECTED: WIN32_ERROR = 225u32; -pub const ERROR_VOLSNAP_HIBERNATE_READY: WIN32_ERROR = 761u32; -pub const ERROR_VOLSNAP_PREPARE_HIBERNATE: WIN32_ERROR = 655u32; -pub const ERROR_VOLUME_MOUNTED: WIN32_ERROR = 743u32; -pub const ERROR_VOLUME_NOT_CLUSTER_ALIGNED: WIN32_ERROR = 407u32; -pub const ERROR_VOLUME_NOT_SIS_ENABLED: WIN32_ERROR = 4500u32; -pub const ERROR_VOLUME_NOT_SUPPORTED: WIN32_ERROR = 492u32; -pub const ERROR_VOLUME_NOT_SUPPORT_EFS: WIN32_ERROR = 6014u32; -pub const ERROR_VOLUME_WRITE_ACCESS_DENIED: WIN32_ERROR = 508u32; -pub const ERROR_WAIT_1: WIN32_ERROR = 731u32; -pub const ERROR_WAIT_2: WIN32_ERROR = 732u32; -pub const ERROR_WAIT_3: WIN32_ERROR = 733u32; -pub const ERROR_WAIT_63: WIN32_ERROR = 734u32; -pub const ERROR_WAIT_FOR_OPLOCK: WIN32_ERROR = 765u32; -pub const ERROR_WAIT_NO_CHILDREN: WIN32_ERROR = 128u32; -pub const ERROR_WAKE_SYSTEM: WIN32_ERROR = 730u32; -pub const ERROR_WAKE_SYSTEM_DEBUGGER: WIN32_ERROR = 675u32; -pub const ERROR_WAS_LOCKED: WIN32_ERROR = 717u32; -pub const ERROR_WAS_UNLOCKED: WIN32_ERROR = 715u32; -pub const ERROR_WEAK_WHFBKEY_BLOCKED: WIN32_ERROR = 8651u32; -pub const ERROR_WINDOW_NOT_COMBOBOX: WIN32_ERROR = 1423u32; -pub const ERROR_WINDOW_NOT_DIALOG: WIN32_ERROR = 1420u32; -pub const ERROR_WINDOW_OF_OTHER_THREAD: WIN32_ERROR = 1408u32; -pub const ERROR_WIP_ENCRYPTION_FAILED: WIN32_ERROR = 6023u32; -pub const ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT: WIN32_ERROR = 4448u32; -pub const ERROR_WOF_WIM_HEADER_CORRUPT: WIN32_ERROR = 4446u32; -pub const ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT: WIN32_ERROR = 4447u32; -pub const ERROR_WORKING_SET_QUOTA: WIN32_ERROR = 1453u32; -pub const ERROR_WOW_ASSERTION: WIN32_ERROR = 670u32; -pub const ERROR_WRITE_FAULT: WIN32_ERROR = 29u32; -pub const ERROR_WRITE_PROTECT: WIN32_ERROR = 19u32; -pub const ERROR_WRONG_COMPARTMENT: WIN32_ERROR = 1468u32; -pub const ERROR_WRONG_DISK: WIN32_ERROR = 34u32; -pub const ERROR_WRONG_EFS: WIN32_ERROR = 6005u32; -pub const ERROR_WRONG_PASSWORD: WIN32_ERROR = 1323u32; -pub const ERROR_WRONG_TARGET_NAME: WIN32_ERROR = 1396u32; -pub const ERROR_WX86_ERROR: WIN32_ERROR = 540u32; -pub const ERROR_WX86_WARNING: WIN32_ERROR = 539u32; -pub const ERROR_XMLDSIG_ERROR: WIN32_ERROR = 1466u32; -pub const ERROR_XML_PARSE_ERROR: WIN32_ERROR = 1465u32; +pub type CONTEXT = ARM64_NT_CONTEXT; +pub const CP_UTF8: i32 = 65001; +pub const CREATE_ALWAYS: i32 = 2; +pub const CREATE_BREAKAWAY_FROM_JOB: i32 = 16777216; +pub const CREATE_DEFAULT_ERROR_MODE: i32 = 67108864; +pub const CREATE_FORCEDOS: i32 = 8192; +pub const CREATE_IGNORE_SYSTEM_DEFAULT: u32 = 2147483648; +pub const CREATE_NEW: i32 = 1; +pub const CREATE_NEW_CONSOLE: i32 = 16; +pub const CREATE_NEW_PROCESS_GROUP: i32 = 512; +pub const CREATE_NO_WINDOW: i32 = 134217728; +pub const CREATE_PRESERVE_CODE_AUTHZ_LEVEL: i32 = 33554432; +pub const CREATE_PROTECTED_PROCESS: i32 = 262144; +pub const CREATE_SECURE_PROCESS: i32 = 4194304; +pub const CREATE_SEPARATE_WOW_VDM: i32 = 2048; +pub const CREATE_SHARED_WOW_VDM: i32 = 4096; +pub const CREATE_SUSPENDED: i32 = 4; +pub const CREATE_UNICODE_ENVIRONMENT: i32 = 1024; +pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION: i32 = 2; +pub const CREATE_WAITABLE_TIMER_MANUAL_RESET: i32 = 1; +pub const CSTR_EQUAL: i32 = 2; +pub const CSTR_GREATER_THAN: i32 = 3; +pub const CSTR_LESS_THAN: i32 = 1; +pub const DEBUG_ONLY_THIS_PROCESS: i32 = 2; +pub const DEBUG_PROCESS: i32 = 1; +pub const DELETE: i32 = 65536; +pub const DETACHED_PROCESS: i32 = 8; +pub const DISABLE_NEWLINE_AUTO_RETURN: i32 = 8; +pub const DLL_PROCESS_DETACH: i32 = 0; +pub const DLL_THREAD_DETACH: i32 = 3; +pub const DNS_ERROR_ADDRESS_REQUIRED: i32 = 9573; +pub const DNS_ERROR_ALIAS_LOOP: i32 = 9722; +pub const DNS_ERROR_AUTOZONE_ALREADY_EXISTS: i32 = 9610; +pub const DNS_ERROR_AXFR: i32 = 9752; +pub const DNS_ERROR_BACKGROUND_LOADING: i32 = 9568; +pub const DNS_ERROR_BAD_KEYMASTER: i32 = 9122; +pub const DNS_ERROR_BAD_PACKET: i32 = 9502; +pub const DNS_ERROR_CANNOT_FIND_ROOT_HINTS: i32 = 9564; +pub const DNS_ERROR_CLIENT_SUBNET_ALREADY_EXISTS: i32 = 9977; +pub const DNS_ERROR_CLIENT_SUBNET_DOES_NOT_EXIST: i32 = 9976; +pub const DNS_ERROR_CLIENT_SUBNET_IS_ACCESSED: i32 = 9975; +pub const DNS_ERROR_CNAME_COLLISION: i32 = 9709; +pub const DNS_ERROR_CNAME_LOOP: i32 = 9707; +pub const DNS_ERROR_DATAFILE_OPEN_FAILURE: i32 = 9653; +pub const DNS_ERROR_DATAFILE_PARSING: i32 = 9655; +pub const DNS_ERROR_DEFAULT_SCOPE: i32 = 9960; +pub const DNS_ERROR_DEFAULT_VIRTUALIZATION_INSTANCE: i32 = 9925; +pub const DNS_ERROR_DEFAULT_ZONESCOPE: i32 = 9953; +pub const DNS_ERROR_DELEGATION_REQUIRED: i32 = 9571; +pub const DNS_ERROR_DNAME_COLLISION: i32 = 9721; +pub const DNS_ERROR_DNSSEC_IS_DISABLED: i32 = 9125; +pub const DNS_ERROR_DP_ALREADY_ENLISTED: i32 = 9904; +pub const DNS_ERROR_DP_ALREADY_EXISTS: i32 = 9902; +pub const DNS_ERROR_DP_DOES_NOT_EXIST: i32 = 9901; +pub const DNS_ERROR_DP_FSMO_ERROR: i32 = 9906; +pub const DNS_ERROR_DP_NOT_AVAILABLE: i32 = 9905; +pub const DNS_ERROR_DP_NOT_ENLISTED: i32 = 9903; +pub const DNS_ERROR_DS_UNAVAILABLE: i32 = 9717; +pub const DNS_ERROR_DS_ZONE_ALREADY_EXISTS: i32 = 9718; +pub const DNS_ERROR_DWORD_VALUE_TOO_LARGE: i32 = 9567; +pub const DNS_ERROR_DWORD_VALUE_TOO_SMALL: i32 = 9566; +pub const DNS_ERROR_FILE_WRITEBACK_FAILED: i32 = 9654; +pub const DNS_ERROR_FORWARDER_ALREADY_EXISTS: i32 = 9619; +pub const DNS_ERROR_INCONSISTENT_ROOT_HINTS: i32 = 9565; +pub const DNS_ERROR_INVAILD_VIRTUALIZATION_INSTANCE_NAME: i32 = 9924; +pub const DNS_ERROR_INVALID_CLIENT_SUBNET_NAME: i32 = 9984; +pub const DNS_ERROR_INVALID_DATA: i32 = 13; +pub const DNS_ERROR_INVALID_DATAFILE_NAME: i32 = 9652; +pub const DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET: i32 = 9115; +pub const DNS_ERROR_INVALID_IP_ADDRESS: i32 = 9552; +pub const DNS_ERROR_INVALID_KEY_SIZE: i32 = 9106; +pub const DNS_ERROR_INVALID_NAME: i32 = 123; +pub const DNS_ERROR_INVALID_NAME_CHAR: i32 = 9560; +pub const DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT: i32 = 9124; +pub const DNS_ERROR_INVALID_POLICY_TABLE: i32 = 9572; +pub const DNS_ERROR_INVALID_PROPERTY: i32 = 9553; +pub const DNS_ERROR_INVALID_ROLLOVER_PERIOD: i32 = 9114; +pub const DNS_ERROR_INVALID_SCOPE_NAME: i32 = 9958; +pub const DNS_ERROR_INVALID_SCOPE_OPERATION: i32 = 9961; +pub const DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD: i32 = 9123; +pub const DNS_ERROR_INVALID_TYPE: i32 = 9551; +pub const DNS_ERROR_INVALID_XML: i32 = 9126; +pub const DNS_ERROR_INVALID_ZONESCOPE_NAME: i32 = 9954; +pub const DNS_ERROR_INVALID_ZONE_OPERATION: i32 = 9603; +pub const DNS_ERROR_INVALID_ZONE_TYPE: i32 = 9611; +pub const DNS_ERROR_KEYMASTER_REQUIRED: i32 = 9101; +pub const DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION: i32 = 9108; +pub const DNS_ERROR_KSP_NOT_ACCESSIBLE: i32 = 9112; +pub const DNS_ERROR_LOAD_ZONESCOPE_FAILED: i32 = 9956; +pub const DNS_ERROR_NAME_DOES_NOT_EXIST: i32 = 9714; +pub const DNS_ERROR_NAME_NOT_IN_ZONE: i32 = 9706; +pub const DNS_ERROR_NBSTAT_INIT_FAILED: i32 = 9617; +pub const DNS_ERROR_NEED_SECONDARY_ADDRESSES: i32 = 9614; +pub const DNS_ERROR_NEED_WINS_SERVERS: i32 = 9616; +pub const DNS_ERROR_NODE_CREATION_FAILED: i32 = 9703; +pub const DNS_ERROR_NODE_IS_CNAME: i32 = 9708; +pub const DNS_ERROR_NODE_IS_DNAME: i32 = 9720; +pub const DNS_ERROR_NON_RFC_NAME: i32 = 9556; +pub const DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD: i32 = 9119; +pub const DNS_ERROR_NOT_ALLOWED_ON_RODC: i32 = 9569; +pub const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER: i32 = 9562; +pub const DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE: i32 = 9102; +pub const DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE: i32 = 9121; +pub const DNS_ERROR_NOT_ALLOWED_ON_ZSK: i32 = 9118; +pub const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION: i32 = 9563; +pub const DNS_ERROR_NOT_ALLOWED_UNDER_DNAME: i32 = 9570; +pub const DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES: i32 = 9955; +pub const DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS: i32 = 9104; +pub const DNS_ERROR_NOT_UNIQUE: i32 = 9555; +pub const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE: i32 = 9719; +pub const DNS_ERROR_NO_CREATE_CACHE_DATA: i32 = 9713; +pub const DNS_ERROR_NO_DNS_SERVERS: i32 = 9852; +pub const DNS_ERROR_NO_MEMORY: i32 = 14; +pub const DNS_ERROR_NO_PACKET: i32 = 9503; +pub const DNS_ERROR_NO_TCPIP: i32 = 9851; +pub const DNS_ERROR_NO_VALID_TRUST_ANCHORS: i32 = 9127; +pub const DNS_ERROR_NO_ZONE_INFO: i32 = 9602; +pub const DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1: i32 = 9103; +pub const DNS_ERROR_NSEC3_NAME_COLLISION: i32 = 9129; +pub const DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1: i32 = 9130; +pub const DNS_ERROR_NUMERIC_NAME: i32 = 9561; +pub const DNS_ERROR_POLICY_ALREADY_EXISTS: i32 = 9971; +pub const DNS_ERROR_POLICY_DOES_NOT_EXIST: i32 = 9972; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA: i32 = 9973; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_CLIENT_SUBNET: i32 = 9990; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_FQDN: i32 = 9994; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_INTERFACE: i32 = 9993; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_NETWORK_PROTOCOL: i32 = 9992; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_QUERY_TYPE: i32 = 9995; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TIME_OF_DAY: i32 = 9996; +pub const DNS_ERROR_POLICY_INVALID_CRITERIA_TRANSPORT_PROTOCOL: i32 = 9991; +pub const DNS_ERROR_POLICY_INVALID_NAME: i32 = 9982; +pub const DNS_ERROR_POLICY_INVALID_SETTINGS: i32 = 9974; +pub const DNS_ERROR_POLICY_INVALID_WEIGHT: i32 = 9981; +pub const DNS_ERROR_POLICY_LOCKED: i32 = 9980; +pub const DNS_ERROR_POLICY_MISSING_CRITERIA: i32 = 9983; +pub const DNS_ERROR_POLICY_PROCESSING_ORDER_INVALID: i32 = 9985; +pub const DNS_ERROR_POLICY_SCOPE_MISSING: i32 = 9986; +pub const DNS_ERROR_POLICY_SCOPE_NOT_ALLOWED: i32 = 9987; +pub const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE: i32 = 9651; +pub const DNS_ERROR_RCODE: i32 = 9504; +pub const DNS_ERROR_RCODE_BADKEY: i32 = 9017; +pub const DNS_ERROR_RCODE_BADSIG: i32 = 9016; +pub const DNS_ERROR_RCODE_BADTIME: i32 = 9018; +pub const DNS_ERROR_RCODE_FORMAT_ERROR: i32 = 9001; +pub const DNS_ERROR_RCODE_NAME_ERROR: i32 = 9003; +pub const DNS_ERROR_RCODE_NOTAUTH: i32 = 9009; +pub const DNS_ERROR_RCODE_NOTZONE: i32 = 9010; +pub const DNS_ERROR_RCODE_NOT_IMPLEMENTED: i32 = 9004; +pub const DNS_ERROR_RCODE_NXRRSET: i32 = 9008; +pub const DNS_ERROR_RCODE_REFUSED: i32 = 9005; +pub const DNS_ERROR_RCODE_SERVER_FAILURE: i32 = 9002; +pub const DNS_ERROR_RCODE_YXDOMAIN: i32 = 9006; +pub const DNS_ERROR_RCODE_YXRRSET: i32 = 9007; +pub const DNS_ERROR_RECORD_ALREADY_EXISTS: i32 = 9711; +pub const DNS_ERROR_RECORD_DOES_NOT_EXIST: i32 = 9701; +pub const DNS_ERROR_RECORD_FORMAT: i32 = 9702; +pub const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT: i32 = 9710; +pub const DNS_ERROR_RECORD_TIMED_OUT: i32 = 9705; +pub const DNS_ERROR_ROLLOVER_ALREADY_QUEUED: i32 = 9120; +pub const DNS_ERROR_ROLLOVER_IN_PROGRESS: i32 = 9116; +pub const DNS_ERROR_ROLLOVER_NOT_POKEABLE: i32 = 9128; +pub const DNS_ERROR_RRL_INVALID_IPV4_PREFIX: i32 = 9913; +pub const DNS_ERROR_RRL_INVALID_IPV6_PREFIX: i32 = 9914; +pub const DNS_ERROR_RRL_INVALID_LEAK_RATE: i32 = 9916; +pub const DNS_ERROR_RRL_INVALID_TC_RATE: i32 = 9915; +pub const DNS_ERROR_RRL_INVALID_WINDOW_SIZE: i32 = 9912; +pub const DNS_ERROR_RRL_LEAK_RATE_LESSTHAN_TC_RATE: i32 = 9917; +pub const DNS_ERROR_RRL_NOT_ENABLED: i32 = 9911; +pub const DNS_ERROR_SCOPE_ALREADY_EXISTS: i32 = 9963; +pub const DNS_ERROR_SCOPE_DOES_NOT_EXIST: i32 = 9959; +pub const DNS_ERROR_SCOPE_LOCKED: i32 = 9962; +pub const DNS_ERROR_SECONDARY_DATA: i32 = 9712; +pub const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP: i32 = 9612; +pub const DNS_ERROR_SERVERSCOPE_IS_REFERENCED: i32 = 9988; +pub const DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE: i32 = 9107; +pub const DNS_ERROR_SOA_DELETE_INVALID: i32 = 9618; +pub const DNS_ERROR_STANDBY_KEY_NOT_PRESENT: i32 = 9117; +pub const DNS_ERROR_SUBNET_ALREADY_EXISTS: i32 = 9979; +pub const DNS_ERROR_SUBNET_DOES_NOT_EXIST: i32 = 9978; +pub const DNS_ERROR_TOO_MANY_SKDS: i32 = 9113; +pub const DNS_ERROR_TRY_AGAIN_LATER: i32 = 9554; +pub const DNS_ERROR_UNEXPECTED_CNG_ERROR: i32 = 9110; +pub const DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR: i32 = 9109; +pub const DNS_ERROR_UNKNOWN_RECORD_TYPE: i32 = 9704; +pub const DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION: i32 = 9111; +pub const DNS_ERROR_UNSECURE_PACKET: i32 = 9505; +pub const DNS_ERROR_UNSUPPORTED_ALGORITHM: i32 = 9105; +pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_ALREADY_EXISTS: i32 = 9921; +pub const DNS_ERROR_VIRTUALIZATION_INSTANCE_DOES_NOT_EXIST: i32 = 9922; +pub const DNS_ERROR_VIRTUALIZATION_TREE_LOCKED: i32 = 9923; +pub const DNS_ERROR_WINS_INIT_FAILED: i32 = 9615; +pub const DNS_ERROR_ZONESCOPE_ALREADY_EXISTS: i32 = 9951; +pub const DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST: i32 = 9952; +pub const DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED: i32 = 9957; +pub const DNS_ERROR_ZONESCOPE_IS_REFERENCED: i32 = 9989; +pub const DNS_ERROR_ZONE_ALREADY_EXISTS: i32 = 9609; +pub const DNS_ERROR_ZONE_CONFIGURATION_ERROR: i32 = 9604; +pub const DNS_ERROR_ZONE_CREATION_FAILED: i32 = 9608; +pub const DNS_ERROR_ZONE_DOES_NOT_EXIST: i32 = 9601; +pub const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS: i32 = 9606; +pub const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD: i32 = 9605; +pub const DNS_ERROR_ZONE_IS_SHUTDOWN: i32 = 9621; +pub const DNS_ERROR_ZONE_LOCKED: i32 = 9607; +pub const DNS_ERROR_ZONE_LOCKED_FOR_SIGNING: i32 = 9622; +pub const DNS_ERROR_ZONE_NOT_SECONDARY: i32 = 9613; +pub const DNS_ERROR_ZONE_REQUIRES_MASTER_IP: i32 = 9620; +pub const DUPLICATE_CLOSE_SOURCE: i32 = 1; +pub const DUPLICATE_SAME_ACCESS: i32 = 2; +pub const ENABLE_AUTO_POSITION: i32 = 256; +pub const ENABLE_ECHO_INPUT: i32 = 4; +pub const ENABLE_EXTENDED_FLAGS: i32 = 128; +pub const ENABLE_INSERT_MODE: i32 = 32; +pub const ENABLE_LINE_INPUT: i32 = 2; +pub const ENABLE_LVB_GRID_WORLDWIDE: i32 = 16; +pub const ENABLE_MOUSE_INPUT: i32 = 16; +pub const ENABLE_PROCESSED_INPUT: i32 = 1; +pub const ENABLE_PROCESSED_OUTPUT: i32 = 1; +pub const ENABLE_QUICK_EDIT_MODE: i32 = 64; +pub const ENABLE_VIRTUAL_TERMINAL_INPUT: i32 = 512; +pub const ENABLE_VIRTUAL_TERMINAL_PROCESSING: i32 = 4; +pub const ENABLE_WINDOW_INPUT: i32 = 8; +pub const ENABLE_WRAP_AT_EOL_OUTPUT: i32 = 2; +pub const ERROR_ABANDONED_WAIT_0: i32 = 735; +pub const ERROR_ABANDONED_WAIT_63: i32 = 736; +pub const ERROR_ABANDON_HIBERFILE: i32 = 787; +pub const ERROR_ABIOS_ERROR: i32 = 538; +pub const ERROR_ACCESS_AUDIT_BY_POLICY: i32 = 785; +pub const ERROR_ACCESS_DENIED: i32 = 5; +pub const ERROR_ACCESS_DENIED_APPDATA: i32 = 502; +pub const ERROR_ACCESS_DISABLED_BY_POLICY: i32 = 1260; +pub const ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: i32 = 786; +pub const ERROR_ACCESS_DISABLED_WEBBLADE: i32 = 1277; +pub const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER: i32 = 1278; +pub const ERROR_ACCOUNT_DISABLED: i32 = 1331; +pub const ERROR_ACCOUNT_EXPIRED: i32 = 1793; +pub const ERROR_ACCOUNT_LOCKED_OUT: i32 = 1909; +pub const ERROR_ACCOUNT_RESTRICTION: i32 = 1327; +pub const ERROR_ACPI_ERROR: i32 = 669; +pub const ERROR_ACTIVE_CONNECTIONS: i32 = 2402; +pub const ERROR_ADAP_HDW_ERR: i32 = 57; +pub const ERROR_ADDRESS_ALREADY_ASSOCIATED: i32 = 1227; +pub const ERROR_ADDRESS_NOT_ASSOCIATED: i32 = 1228; +pub const ERROR_ALERTED: i32 = 739; +pub const ERROR_ALIAS_EXISTS: i32 = 1379; +pub const ERROR_ALLOCATE_BUCKET: i32 = 602; +pub const ERROR_ALLOTTED_SPACE_EXCEEDED: i32 = 1344; +pub const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED: i32 = 1933; +pub const ERROR_ALREADY_ASSIGNED: i32 = 85; +pub const ERROR_ALREADY_EXISTS: i32 = 183; +pub const ERROR_ALREADY_FIBER: i32 = 1280; +pub const ERROR_ALREADY_HAS_STREAM_ID: i32 = 4444; +pub const ERROR_ALREADY_INITIALIZED: i32 = 1247; +pub const ERROR_ALREADY_REGISTERED: i32 = 1242; +pub const ERROR_ALREADY_RUNNING_LKG: i32 = 1074; +pub const ERROR_ALREADY_THREAD: i32 = 1281; +pub const ERROR_ALREADY_WAITING: i32 = 1904; +pub const ERROR_ALREADY_WIN32: i32 = 719; +pub const ERROR_API_UNAVAILABLE: i32 = 15841; +pub const ERROR_APPCONTAINER_REQUIRED: i32 = 4251; +pub const ERROR_APPEXEC_APP_COMPAT_BLOCK: i32 = 3068; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT: i32 = 3069; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_LICENSING: i32 = 3071; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_RESOURCES: i32 = 3072; +pub const ERROR_APPEXEC_CALLER_WAIT_TIMEOUT_TERMINATION: i32 = 3070; +pub const ERROR_APPEXEC_CONDITION_NOT_SATISFIED: i32 = 3060; +pub const ERROR_APPEXEC_HANDLE_INVALIDATED: i32 = 3061; +pub const ERROR_APPEXEC_HOST_ID_MISMATCH: i32 = 3066; +pub const ERROR_APPEXEC_INVALID_HOST_GENERATION: i32 = 3062; +pub const ERROR_APPEXEC_INVALID_HOST_STATE: i32 = 3064; +pub const ERROR_APPEXEC_NO_DONOR: i32 = 3065; +pub const ERROR_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION: i32 = 3063; +pub const ERROR_APPEXEC_UNKNOWN_USER: i32 = 3067; +pub const ERROR_APPHELP_BLOCK: i32 = 1259; +pub const ERROR_APPX_FILE_NOT_ENCRYPTED: i32 = 409; +pub const ERROR_APP_HANG: i32 = 1298; +pub const ERROR_APP_INIT_FAILURE: i32 = 575; +pub const ERROR_APP_WRONG_OS: i32 = 1151; +pub const ERROR_ARBITRATION_UNHANDLED: i32 = 723; +pub const ERROR_ARENA_TRASHED: i32 = 7; +pub const ERROR_ARITHMETIC_OVERFLOW: i32 = 534; +pub const ERROR_ASSERTION_FAILURE: i32 = 668; +pub const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED: i32 = 174; +pub const ERROR_AUDIT_FAILED: i32 = 606; +pub const ERROR_AUTHENTICATION_FIREWALL_FAILED: i32 = 1935; +pub const ERROR_AUTHIP_FAILURE: i32 = 1469; +pub const ERROR_AUTODATASEG_EXCEEDS_64k: i32 = 199; +pub const ERROR_BACKUP_CONTROLLER: i32 = 586; +pub const ERROR_BADDB: i32 = 1009; +pub const ERROR_BADKEY: i32 = 1010; +pub const ERROR_BADSTARTPOSITION: i32 = 778; +pub const ERROR_BAD_ACCESSOR_FLAGS: i32 = 773; +pub const ERROR_BAD_ARGUMENTS: i32 = 160; +pub const ERROR_BAD_COMMAND: i32 = 22; +pub const ERROR_BAD_COMPRESSION_BUFFER: i32 = 605; +pub const ERROR_BAD_CONFIGURATION: i32 = 1610; +pub const ERROR_BAD_CURRENT_DIRECTORY: i32 = 703; +pub const ERROR_BAD_DESCRIPTOR_FORMAT: i32 = 1361; +pub const ERROR_BAD_DEVICE: i32 = 1200; +pub const ERROR_BAD_DEVICE_PATH: i32 = 330; +pub const ERROR_BAD_DEV_TYPE: i32 = 66; +pub const ERROR_BAD_DLL_ENTRYPOINT: i32 = 609; +pub const ERROR_BAD_DRIVER_LEVEL: i32 = 119; +pub const ERROR_BAD_ENVIRONMENT: i32 = 10; +pub const ERROR_BAD_EXE_FORMAT: i32 = 193; +pub const ERROR_BAD_FILE_TYPE: i32 = 222; +pub const ERROR_BAD_FORMAT: i32 = 11; +pub const ERROR_BAD_FUNCTION_TABLE: i32 = 559; +pub const ERROR_BAD_IMPERSONATION_LEVEL: i32 = 1346; +pub const ERROR_BAD_INHERITANCE_ACL: i32 = 1340; +pub const ERROR_BAD_LENGTH: i32 = 24; +pub const ERROR_BAD_LOGON_SESSION_STATE: i32 = 1365; +pub const ERROR_BAD_MCFG_TABLE: i32 = 791; +pub const ERROR_BAD_NETPATH: i32 = 53; +pub const ERROR_BAD_NET_NAME: i32 = 67; +pub const ERROR_BAD_NET_RESP: i32 = 58; +pub const ERROR_BAD_PATHNAME: i32 = 161; +pub const ERROR_BAD_PIPE: i32 = 230; +pub const ERROR_BAD_PROFILE: i32 = 1206; +pub const ERROR_BAD_PROVIDER: i32 = 1204; +pub const ERROR_BAD_QUERY_SYNTAX: i32 = 1615; +pub const ERROR_BAD_RECOVERY_POLICY: i32 = 6012; +pub const ERROR_BAD_REM_ADAP: i32 = 60; +pub const ERROR_BAD_SERVICE_ENTRYPOINT: i32 = 610; +pub const ERROR_BAD_STACK: i32 = 543; +pub const ERROR_BAD_THREADID_ADDR: i32 = 159; +pub const ERROR_BAD_TOKEN_TYPE: i32 = 1349; +pub const ERROR_BAD_UNIT: i32 = 20; +pub const ERROR_BAD_USERNAME: i32 = 2202; +pub const ERROR_BAD_USER_PROFILE: i32 = 1253; +pub const ERROR_BAD_VALIDATION_CLASS: i32 = 1348; +pub const ERROR_BEGINNING_OF_MEDIA: i32 = 1102; +pub const ERROR_BEYOND_VDL: i32 = 1289; +pub const ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT: i32 = 585; +pub const ERROR_BLOCKED_BY_PARENTAL_CONTROLS: i32 = 346; +pub const ERROR_BLOCK_SHARED: i32 = 514; +pub const ERROR_BLOCK_SOURCE_WEAK_REFERENCE_INVALID: i32 = 512; +pub const ERROR_BLOCK_TARGET_WEAK_REFERENCE_INVALID: i32 = 513; +pub const ERROR_BLOCK_TOO_MANY_REFERENCES: i32 = 347; +pub const ERROR_BLOCK_WEAK_REFERENCE_INVALID: i32 = 511; +pub const ERROR_BOOT_ALREADY_ACCEPTED: i32 = 1076; +pub const ERROR_BROKEN_PIPE: i32 = 109; +pub const ERROR_BUFFER_ALL_ZEROS: i32 = 754; +pub const ERROR_BUFFER_OVERFLOW: i32 = 111; +pub const ERROR_BUSY: i32 = 170; +pub const ERROR_BUSY_DRIVE: i32 = 142; +pub const ERROR_BUS_RESET: i32 = 1111; +pub const ERROR_BYPASSIO_FLT_NOT_SUPPORTED: i32 = 506; +pub const ERROR_CACHE_PAGE_LOCKED: i32 = 752; +pub const ERROR_CALLBACK_INVOKE_INLINE: i32 = 812; +pub const ERROR_CALLBACK_POP_STACK: i32 = 768; +pub const ERROR_CALLBACK_SUPPLIED_INVALID_DATA: i32 = 1273; +pub const ERROR_CALL_NOT_IMPLEMENTED: i32 = 120; +pub const ERROR_CANCELLED: i32 = 1223; +pub const ERROR_CANCEL_VIOLATION: i32 = 173; +pub const ERROR_CANNOT_BREAK_OPLOCK: i32 = 802; +pub const ERROR_CANNOT_COPY: i32 = 266; +pub const ERROR_CANNOT_DETECT_DRIVER_FAILURE: i32 = 1080; +pub const ERROR_CANNOT_DETECT_PROCESS_ABORT: i32 = 1081; +pub const ERROR_CANNOT_FIND_WND_CLASS: i32 = 1407; +pub const ERROR_CANNOT_GRANT_REQUESTED_OPLOCK: i32 = 801; +pub const ERROR_CANNOT_IMPERSONATE: i32 = 1368; +pub const ERROR_CANNOT_LOAD_REGISTRY_FILE: i32 = 589; +pub const ERROR_CANNOT_MAKE: i32 = 82; +pub const ERROR_CANNOT_OPEN_PROFILE: i32 = 1205; +pub const ERROR_CANTFETCHBACKWARDS: i32 = 770; +pub const ERROR_CANTOPEN: i32 = 1011; +pub const ERROR_CANTREAD: i32 = 1012; +pub const ERROR_CANTSCROLLBACKWARDS: i32 = 771; +pub const ERROR_CANTWRITE: i32 = 1013; +pub const ERROR_CANT_ACCESS_DOMAIN_INFO: i32 = 1351; +pub const ERROR_CANT_ACCESS_FILE: i32 = 1920; +pub const ERROR_CANT_CLEAR_ENCRYPTION_FLAG: i32 = 432; +pub const ERROR_CANT_DISABLE_MANDATORY: i32 = 1310; +pub const ERROR_CANT_ENABLE_DENY_ONLY: i32 = 629; +pub const ERROR_CANT_OPEN_ANONYMOUS: i32 = 1347; +pub const ERROR_CANT_RESOLVE_FILENAME: i32 = 1921; +pub const ERROR_CANT_TERMINATE_SELF: i32 = 555; +pub const ERROR_CANT_WAIT: i32 = 554; +pub const ERROR_CAN_NOT_COMPLETE: i32 = 1003; +pub const ERROR_CAPAUTHZ_CHANGE_TYPE: i32 = 451; +pub const ERROR_CAPAUTHZ_DB_CORRUPTED: i32 = 455; +pub const ERROR_CAPAUTHZ_NOT_AUTHORIZED: i32 = 453; +pub const ERROR_CAPAUTHZ_NOT_DEVUNLOCKED: i32 = 450; +pub const ERROR_CAPAUTHZ_NOT_PROVISIONED: i32 = 452; +pub const ERROR_CAPAUTHZ_NO_POLICY: i32 = 454; +pub const ERROR_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED: i32 = 459; +pub const ERROR_CAPAUTHZ_SCCD_INVALID_CATALOG: i32 = 456; +pub const ERROR_CAPAUTHZ_SCCD_NO_AUTH_ENTITY: i32 = 457; +pub const ERROR_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH: i32 = 460; +pub const ERROR_CAPAUTHZ_SCCD_PARSE_ERROR: i32 = 458; +pub const ERROR_CARDBUS_NOT_SUPPORTED: i32 = 724; +pub const ERROR_CASE_DIFFERING_NAMES_IN_DIR: i32 = 424; +pub const ERROR_CASE_SENSITIVE_PATH: i32 = 442; +pub const ERROR_CERTIFICATE_VALIDATION_PREFERENCE_CONFLICT: i32 = 817; +pub const ERROR_CHECKING_FILE_SYSTEM: i32 = 712; +pub const ERROR_CHECKOUT_REQUIRED: i32 = 221; +pub const ERROR_CHILD_MUST_BE_VOLATILE: i32 = 1021; +pub const ERROR_CHILD_NOT_COMPLETE: i32 = 129; +pub const ERROR_CHILD_PROCESS_BLOCKED: i32 = 367; +pub const ERROR_CHILD_WINDOW_MENU: i32 = 1436; +pub const ERROR_CIMFS_IMAGE_CORRUPT: i32 = 470; +pub const ERROR_CIMFS_IMAGE_VERSION_NOT_SUPPORTED: i32 = 471; +pub const ERROR_CIRCULAR_DEPENDENCY: i32 = 1059; +pub const ERROR_CLASS_ALREADY_EXISTS: i32 = 1410; +pub const ERROR_CLASS_DOES_NOT_EXIST: i32 = 1411; +pub const ERROR_CLASS_HAS_WINDOWS: i32 = 1412; +pub const ERROR_CLIENT_SERVER_PARAMETERS_INVALID: i32 = 597; +pub const ERROR_CLIPBOARD_NOT_OPEN: i32 = 1418; +pub const ERROR_CLOUD_FILE_ACCESS_DENIED: i32 = 395; +pub const ERROR_CLOUD_FILE_ALREADY_CONNECTED: i32 = 378; +pub const ERROR_CLOUD_FILE_AUTHENTICATION_FAILED: i32 = 386; +pub const ERROR_CLOUD_FILE_CONNECTED_PROVIDER_ONLY: i32 = 382; +pub const ERROR_CLOUD_FILE_DEHYDRATION_DISALLOWED: i32 = 434; +pub const ERROR_CLOUD_FILE_INCOMPATIBLE_HARDLINKS: i32 = 396; +pub const ERROR_CLOUD_FILE_INSUFFICIENT_RESOURCES: i32 = 387; +pub const ERROR_CLOUD_FILE_INVALID_REQUEST: i32 = 380; +pub const ERROR_CLOUD_FILE_IN_USE: i32 = 391; +pub const ERROR_CLOUD_FILE_METADATA_CORRUPT: i32 = 363; +pub const ERROR_CLOUD_FILE_METADATA_TOO_LARGE: i32 = 364; +pub const ERROR_CLOUD_FILE_NETWORK_UNAVAILABLE: i32 = 388; +pub const ERROR_CLOUD_FILE_NOT_IN_SYNC: i32 = 377; +pub const ERROR_CLOUD_FILE_NOT_SUPPORTED: i32 = 379; +pub const ERROR_CLOUD_FILE_NOT_UNDER_SYNC_ROOT: i32 = 390; +pub const ERROR_CLOUD_FILE_PINNED: i32 = 392; +pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: i32 = 366; +pub const ERROR_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: i32 = 365; +pub const ERROR_CLOUD_FILE_PROPERTY_CORRUPT: i32 = 394; +pub const ERROR_CLOUD_FILE_PROPERTY_LOCK_CONFLICT: i32 = 397; +pub const ERROR_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED: i32 = 375; +pub const ERROR_CLOUD_FILE_PROVIDER_NOT_RUNNING: i32 = 362; +pub const ERROR_CLOUD_FILE_PROVIDER_TERMINATED: i32 = 404; +pub const ERROR_CLOUD_FILE_READ_ONLY_VOLUME: i32 = 381; +pub const ERROR_CLOUD_FILE_REQUEST_ABORTED: i32 = 393; +pub const ERROR_CLOUD_FILE_REQUEST_CANCELED: i32 = 398; +pub const ERROR_CLOUD_FILE_REQUEST_TIMEOUT: i32 = 426; +pub const ERROR_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT: i32 = 358; +pub const ERROR_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS: i32 = 374; +pub const ERROR_CLOUD_FILE_UNSUCCESSFUL: i32 = 389; +pub const ERROR_CLOUD_FILE_US_MESSAGE_TIMEOUT: i32 = 475; +pub const ERROR_CLOUD_FILE_VALIDATION_FAILED: i32 = 383; +pub const ERROR_COMMITMENT_LIMIT: i32 = 1455; +pub const ERROR_COMMITMENT_MINIMUM: i32 = 635; +pub const ERROR_COMPRESSED_FILE_NOT_SUPPORTED: i32 = 335; +pub const ERROR_COMPRESSION_DISABLED: i32 = 769; +pub const ERROR_COMPRESSION_NOT_BENEFICIAL: i32 = 344; +pub const ERROR_CONNECTED_OTHER_PASSWORD: i32 = 2108; +pub const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT: i32 = 2109; +pub const ERROR_CONNECTION_ABORTED: i32 = 1236; +pub const ERROR_CONNECTION_ACTIVE: i32 = 1230; +pub const ERROR_CONNECTION_COUNT_LIMIT: i32 = 1238; +pub const ERROR_CONNECTION_INVALID: i32 = 1229; +pub const ERROR_CONNECTION_REFUSED: i32 = 1225; +pub const ERROR_CONNECTION_UNAVAIL: i32 = 1201; +pub const ERROR_CONTAINER_ASSIGNED: i32 = 1504; +pub const ERROR_CONTENT_BLOCKED: i32 = 1296; +pub const ERROR_CONTEXT_EXPIRED: i32 = 1931; +pub const ERROR_CONTINUE: i32 = 1246; +pub const ERROR_CONTROL_C_EXIT: i32 = 572; +pub const ERROR_CONTROL_ID_NOT_FOUND: i32 = 1421; +pub const ERROR_CONVERT_TO_LARGE: i32 = 600; +pub const ERROR_CORRUPT_LOG_CLEARED: i32 = 798; +pub const ERROR_CORRUPT_LOG_CORRUPTED: i32 = 795; +pub const ERROR_CORRUPT_LOG_DELETED_FULL: i32 = 797; +pub const ERROR_CORRUPT_LOG_OVERFULL: i32 = 794; +pub const ERROR_CORRUPT_LOG_UNAVAILABLE: i32 = 796; +pub const ERROR_CORRUPT_SYSTEM_FILE: i32 = 634; +pub const ERROR_COULD_NOT_INTERPRET: i32 = 552; +pub const ERROR_COUNTER_TIMEOUT: i32 = 1121; +pub const ERROR_CPU_SET_INVALID: i32 = 813; +pub const ERROR_CRASH_DUMP: i32 = 753; +pub const ERROR_CRC: i32 = 23; +pub const ERROR_CREATE_FAILED: i32 = 1631; +pub const ERROR_CROSS_PARTITION_VIOLATION: i32 = 1661; +pub const ERROR_CSCSHARE_OFFLINE: i32 = 1262; +pub const ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: i32 = 6019; +pub const ERROR_CS_ENCRYPTION_FILE_NOT_CSE: i32 = 6021; +pub const ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: i32 = 6017; +pub const ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: i32 = 6020; +pub const ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER: i32 = 6018; +pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: i32 = 7040; +pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: i32 = 7012; +pub const ERROR_CURRENT_DIRECTORY: i32 = 16; +pub const ERROR_CURRENT_DOMAIN_NOT_ALLOWED: i32 = 1399; +pub const ERROR_DATABASE_DOES_NOT_EXIST: i32 = 1065; +pub const ERROR_DATATYPE_MISMATCH: i32 = 1629; +pub const ERROR_DATA_CHECKSUM_ERROR: i32 = 323; +pub const ERROR_DATA_NOT_ACCEPTED: i32 = 592; +pub const ERROR_DAX_MAPPING_EXISTS: i32 = 361; +pub const ERROR_DBG_COMMAND_EXCEPTION: i32 = 697; +pub const ERROR_DBG_CONTINUE: i32 = 767; +pub const ERROR_DBG_CONTROL_BREAK: i32 = 696; +pub const ERROR_DBG_CONTROL_C: i32 = 693; +pub const ERROR_DBG_EXCEPTION_HANDLED: i32 = 766; +pub const ERROR_DBG_EXCEPTION_NOT_HANDLED: i32 = 688; +pub const ERROR_DBG_PRINTEXCEPTION_C: i32 = 694; +pub const ERROR_DBG_REPLY_LATER: i32 = 689; +pub const ERROR_DBG_RIPEXCEPTION: i32 = 695; +pub const ERROR_DBG_TERMINATE_PROCESS: i32 = 692; +pub const ERROR_DBG_TERMINATE_THREAD: i32 = 691; +pub const ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE: i32 = 690; +pub const ERROR_DC_NOT_FOUND: i32 = 1425; +pub const ERROR_DDE_FAIL: i32 = 1156; +pub const ERROR_DEBUGGER_INACTIVE: i32 = 1284; +pub const ERROR_DEBUG_ATTACH_FAILED: i32 = 590; +pub const ERROR_DECRYPTION_FAILED: i32 = 6001; +pub const ERROR_DELAY_LOAD_FAILED: i32 = 1285; +pub const ERROR_DELETE_PENDING: i32 = 303; +pub const ERROR_DEPENDENT_SERVICES_RUNNING: i32 = 1051; +pub const ERROR_DESTINATION_ELEMENT_FULL: i32 = 1161; +pub const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD: i32 = 1435; +pub const ERROR_DEVICE_ALREADY_ATTACHED: i32 = 548; +pub const ERROR_DEVICE_ALREADY_REMEMBERED: i32 = 1202; +pub const ERROR_DEVICE_DOOR_OPEN: i32 = 1166; +pub const ERROR_DEVICE_ENUMERATION_ERROR: i32 = 648; +pub const ERROR_DEVICE_FEATURE_NOT_SUPPORTED: i32 = 316; +pub const ERROR_DEVICE_HARDWARE_ERROR: i32 = 483; +pub const ERROR_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: i32 = 355; +pub const ERROR_DEVICE_IN_MAINTENANCE: i32 = 359; +pub const ERROR_DEVICE_IN_USE: i32 = 2404; +pub const ERROR_DEVICE_NOT_CONNECTED: i32 = 1167; +pub const ERROR_DEVICE_NOT_PARTITIONED: i32 = 1107; +pub const ERROR_DEVICE_NO_RESOURCES: i32 = 322; +pub const ERROR_DEVICE_REINITIALIZATION_NEEDED: i32 = 1164; +pub const ERROR_DEVICE_REMOVED: i32 = 1617; +pub const ERROR_DEVICE_REQUIRES_CLEANING: i32 = 1165; +pub const ERROR_DEVICE_RESET_REQUIRED: i32 = 507; +pub const ERROR_DEVICE_SUPPORT_IN_PROGRESS: i32 = 171; +pub const ERROR_DEVICE_UNREACHABLE: i32 = 321; +pub const ERROR_DEV_NOT_EXIST: i32 = 55; +pub const ERROR_DHCP_ADDRESS_CONFLICT: i32 = 4100; +pub const ERROR_DIFFERENT_SERVICE_ACCOUNT: i32 = 1079; +pub const ERROR_DIRECTORY: i32 = 267; +pub const ERROR_DIRECTORY_NOT_SUPPORTED: i32 = 336; +pub const ERROR_DIRECT_ACCESS_HANDLE: i32 = 130; +pub const ERROR_DIR_EFS_DISALLOWED: i32 = 6010; +pub const ERROR_DIR_NOT_EMPTY: i32 = 145; +pub const ERROR_DIR_NOT_ROOT: i32 = 144; +pub const ERROR_DISCARDED: i32 = 157; +pub const ERROR_DISK_CHANGE: i32 = 107; +pub const ERROR_DISK_CORRUPT: i32 = 1393; +pub const ERROR_DISK_FULL: i32 = 112; +pub const ERROR_DISK_OPERATION_FAILED: i32 = 1127; +pub const ERROR_DISK_QUOTA_EXCEEDED: i32 = 1295; +pub const ERROR_DISK_RECALIBRATE_FAILED: i32 = 1126; +pub const ERROR_DISK_REPAIR_DISABLED: i32 = 780; +pub const ERROR_DISK_REPAIR_REDIRECTED: i32 = 792; +pub const ERROR_DISK_REPAIR_UNSUCCESSFUL: i32 = 793; +pub const ERROR_DISK_RESET_FAILED: i32 = 1128; +pub const ERROR_DISK_RESOURCES_EXHAUSTED: i32 = 314; +pub const ERROR_DISK_TOO_FRAGMENTED: i32 = 302; +pub const ERROR_DLL_INIT_FAILED: i32 = 1114; +pub const ERROR_DLL_INIT_FAILED_LOGOFF: i32 = 624; +pub const ERROR_DLL_MIGHT_BE_INCOMPATIBLE: i32 = 687; +pub const ERROR_DLL_MIGHT_BE_INSECURE: i32 = 686; +pub const ERROR_DLL_NOT_FOUND: i32 = 1157; +pub const ERROR_DLP_POLICY_DENIES_OPERATION: i32 = 446; +pub const ERROR_DLP_POLICY_SILENTLY_FAIL: i32 = 449; +pub const ERROR_DLP_POLICY_WARNS_AGAINST_OPERATION: i32 = 445; +pub const ERROR_DOMAIN_CONTROLLER_EXISTS: i32 = 1250; +pub const ERROR_DOMAIN_CONTROLLER_NOT_FOUND: i32 = 1908; +pub const ERROR_DOMAIN_CTRLR_CONFIG_ERROR: i32 = 581; +pub const ERROR_DOMAIN_EXISTS: i32 = 1356; +pub const ERROR_DOMAIN_LIMIT_EXCEEDED: i32 = 1357; +pub const ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION: i32 = 8644; +pub const ERROR_DOMAIN_TRUST_INCONSISTENT: i32 = 1810; +pub const ERROR_DOWNGRADE_DETECTED: i32 = 1265; +pub const ERROR_DPL_NOT_SUPPORTED_FOR_USER: i32 = 423; +pub const ERROR_DRIVERS_LEAKING_LOCKED_PAGES: i32 = 729; +pub const ERROR_DRIVER_BLOCKED: i32 = 1275; +pub const ERROR_DRIVER_CANCEL_TIMEOUT: i32 = 594; +pub const ERROR_DRIVER_DATABASE_ERROR: i32 = 652; +pub const ERROR_DRIVER_FAILED_PRIOR_UNLOAD: i32 = 654; +pub const ERROR_DRIVER_FAILED_SLEEP: i32 = 633; +pub const ERROR_DRIVER_PROCESS_TERMINATED: i32 = 1291; +pub const ERROR_DRIVE_LOCKED: i32 = 108; +pub const ERROR_DS_ADD_REPLICA_INHIBITED: i32 = 8302; +pub const ERROR_DS_ADMIN_LIMIT_EXCEEDED: i32 = 8228; +pub const ERROR_DS_AFFECTS_MULTIPLE_DSAS: i32 = 8249; +pub const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: i32 = 8578; +pub const ERROR_DS_ALIASED_OBJ_MISSING: i32 = 8334; +pub const ERROR_DS_ALIAS_DEREF_PROBLEM: i32 = 8244; +pub const ERROR_DS_ALIAS_POINTS_TO_ALIAS: i32 = 8336; +pub const ERROR_DS_ALIAS_PROBLEM: i32 = 8241; +pub const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS: i32 = 8205; +pub const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM: i32 = 8346; +pub const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED: i32 = 8204; +pub const ERROR_DS_ATT_ALREADY_EXISTS: i32 = 8318; +pub const ERROR_DS_ATT_IS_NOT_ON_OBJ: i32 = 8310; +pub const ERROR_DS_ATT_NOT_DEF_FOR_CLASS: i32 = 8317; +pub const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA: i32 = 8303; +pub const ERROR_DS_ATT_SCHEMA_REQ_ID: i32 = 8399; +pub const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX: i32 = 8416; +pub const ERROR_DS_ATT_VAL_ALREADY_EXISTS: i32 = 8323; +pub const ERROR_DS_AUDIT_FAILURE: i32 = 8625; +pub const ERROR_DS_AUTHORIZATION_FAILED: i32 = 8599; +pub const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED: i32 = 8231; +pub const ERROR_DS_AUTH_UNKNOWN: i32 = 8234; +pub const ERROR_DS_AUX_CLS_TEST_FAIL: i32 = 8389; +pub const ERROR_DS_BACKLINK_WITHOUT_LINK: i32 = 8482; +pub const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX: i32 = 8400; +pub const ERROR_DS_BAD_HIERARCHY_FILE: i32 = 8425; +pub const ERROR_DS_BAD_INSTANCE_TYPE: i32 = 8313; +pub const ERROR_DS_BAD_NAME_SYNTAX: i32 = 8335; +pub const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX: i32 = 8392; +pub const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED: i32 = 8426; +pub const ERROR_DS_BUSY: i32 = 8206; +pub const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD: i32 = 8585; +pub const ERROR_DS_CANT_ADD_ATT_VALUES: i32 = 8320; +pub const ERROR_DS_CANT_ADD_SYSTEM_ONLY: i32 = 8358; +pub const ERROR_DS_CANT_ADD_TO_GC: i32 = 8550; +pub const ERROR_DS_CANT_CACHE_ATT: i32 = 8401; +pub const ERROR_DS_CANT_CACHE_CLASS: i32 = 8402; +pub const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC: i32 = 8553; +pub const ERROR_DS_CANT_CREATE_UNDER_SCHEMA: i32 = 8510; +pub const ERROR_DS_CANT_DELETE: i32 = 8398; +pub const ERROR_DS_CANT_DELETE_DSA_OBJ: i32 = 8340; +pub const ERROR_DS_CANT_DEL_MASTER_CROSSREF: i32 = 8375; +pub const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC: i32 = 8604; +pub const ERROR_DS_CANT_DEREF_ALIAS: i32 = 8337; +pub const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN: i32 = 8603; +pub const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF: i32 = 8589; +pub const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN: i32 = 8537; +pub const ERROR_DS_CANT_FIND_DSA_OBJ: i32 = 8419; +pub const ERROR_DS_CANT_FIND_EXPECTED_NC: i32 = 8420; +pub const ERROR_DS_CANT_FIND_NC_IN_CACHE: i32 = 8421; +pub const ERROR_DS_CANT_MIX_MASTER_AND_REPS: i32 = 8331; +pub const ERROR_DS_CANT_MOD_OBJ_CLASS: i32 = 8215; +pub const ERROR_DS_CANT_MOD_PRIMARYGROUPID: i32 = 8506; +pub const ERROR_DS_CANT_MOD_SYSTEM_ONLY: i32 = 8369; +pub const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP: i32 = 8498; +pub const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP: i32 = 8608; +pub const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP: i32 = 8609; +pub const ERROR_DS_CANT_MOVE_DELETED_OBJECT: i32 = 8489; +pub const ERROR_DS_CANT_MOVE_RESOURCE_GROUP: i32 = 8499; +pub const ERROR_DS_CANT_ON_NON_LEAF: i32 = 8213; +pub const ERROR_DS_CANT_ON_RDN: i32 = 8214; +pub const ERROR_DS_CANT_REMOVE_ATT_CACHE: i32 = 8403; +pub const ERROR_DS_CANT_REMOVE_CLASS_CACHE: i32 = 8404; +pub const ERROR_DS_CANT_REM_MISSING_ATT: i32 = 8324; +pub const ERROR_DS_CANT_REM_MISSING_ATT_VAL: i32 = 8325; +pub const ERROR_DS_CANT_REPLACE_HIDDEN_REC: i32 = 8424; +pub const ERROR_DS_CANT_RETRIEVE_ATTS: i32 = 8481; +pub const ERROR_DS_CANT_RETRIEVE_CHILD: i32 = 8422; +pub const ERROR_DS_CANT_RETRIEVE_DN: i32 = 8405; +pub const ERROR_DS_CANT_RETRIEVE_INSTANCE: i32 = 8407; +pub const ERROR_DS_CANT_RETRIEVE_SD: i32 = 8526; +pub const ERROR_DS_CANT_START: i32 = 8531; +pub const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ: i32 = 8560; +pub const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS: i32 = 8493; +pub const ERROR_DS_CHILDREN_EXIST: i32 = 8332; +pub const ERROR_DS_CLASS_MUST_BE_CONCRETE: i32 = 8359; +pub const ERROR_DS_CLASS_NOT_DSA: i32 = 8343; +pub const ERROR_DS_CLIENT_LOOP: i32 = 8259; +pub const ERROR_DS_CODE_INCONSISTENCY: i32 = 8408; +pub const ERROR_DS_COMPARE_FALSE: i32 = 8229; +pub const ERROR_DS_COMPARE_TRUE: i32 = 8230; +pub const ERROR_DS_CONFIDENTIALITY_REQUIRED: i32 = 8237; +pub const ERROR_DS_CONFIG_PARAM_MISSING: i32 = 8427; +pub const ERROR_DS_CONSTRAINT_VIOLATION: i32 = 8239; +pub const ERROR_DS_CONSTRUCTED_ATT_MOD: i32 = 8475; +pub const ERROR_DS_CONTROL_NOT_FOUND: i32 = 8258; +pub const ERROR_DS_COULDNT_CONTACT_FSMO: i32 = 8367; +pub const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE: i32 = 8503; +pub const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE: i32 = 8502; +pub const ERROR_DS_COULDNT_UPDATE_SPNS: i32 = 8525; +pub const ERROR_DS_COUNTING_AB_INDICES_FAILED: i32 = 8428; +pub const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD: i32 = 8491; +pub const ERROR_DS_CROSS_DOM_MOVE_ERROR: i32 = 8216; +pub const ERROR_DS_CROSS_NC_DN_RENAME: i32 = 8368; +pub const ERROR_DS_CROSS_REF_BUSY: i32 = 8602; +pub const ERROR_DS_CROSS_REF_EXISTS: i32 = 8374; +pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE: i32 = 8495; +pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2: i32 = 8586; +pub const ERROR_DS_DATABASE_ERROR: i32 = 8409; +pub const ERROR_DS_DECODING_ERROR: i32 = 8253; +pub const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED: i32 = 8536; +pub const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST: i32 = 8535; +pub const ERROR_DS_DIFFERENT_REPL_EPOCHS: i32 = 8593; +pub const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER: i32 = 8615; +pub const ERROR_DS_DISALLOWED_NC_REDIRECT: i32 = 8640; +pub const ERROR_DS_DNS_LOOKUP_FAILURE: i32 = 8524; +pub const ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST: i32 = 8634; +pub const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS: i32 = 8612; +pub const ERROR_DS_DOMAIN_VERSION_TOO_HIGH: i32 = 8564; +pub const ERROR_DS_DOMAIN_VERSION_TOO_LOW: i32 = 8566; +pub const ERROR_DS_DRA_ABANDON_SYNC: i32 = 8462; +pub const ERROR_DS_DRA_ACCESS_DENIED: i32 = 8453; +pub const ERROR_DS_DRA_BAD_DN: i32 = 8439; +pub const ERROR_DS_DRA_BAD_INSTANCE_TYPE: i32 = 8445; +pub const ERROR_DS_DRA_BAD_NC: i32 = 8440; +pub const ERROR_DS_DRA_BUSY: i32 = 8438; +pub const ERROR_DS_DRA_CONNECTION_FAILED: i32 = 8444; +pub const ERROR_DS_DRA_CORRUPT_UTD_VECTOR: i32 = 8629; +pub const ERROR_DS_DRA_DB_ERROR: i32 = 8451; +pub const ERROR_DS_DRA_DN_EXISTS: i32 = 8441; +pub const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT: i32 = 8544; +pub const ERROR_DS_DRA_EXTN_CONNECTION_FAILED: i32 = 8466; +pub const ERROR_DS_DRA_GENERIC: i32 = 8436; +pub const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET: i32 = 8464; +pub const ERROR_DS_DRA_INCONSISTENT_DIT: i32 = 8443; +pub const ERROR_DS_DRA_INTERNAL_ERROR: i32 = 8442; +pub const ERROR_DS_DRA_INVALID_PARAMETER: i32 = 8437; +pub const ERROR_DS_DRA_MAIL_PROBLEM: i32 = 8447; +pub const ERROR_DS_DRA_MISSING_KRBTGT_SECRET: i32 = 8633; +pub const ERROR_DS_DRA_MISSING_PARENT: i32 = 8460; +pub const ERROR_DS_DRA_NAME_COLLISION: i32 = 8458; +pub const ERROR_DS_DRA_NOT_SUPPORTED: i32 = 8454; +pub const ERROR_DS_DRA_NO_REPLICA: i32 = 8452; +pub const ERROR_DS_DRA_OBJ_IS_REP_SOURCE: i32 = 8450; +pub const ERROR_DS_DRA_OBJ_NC_MISMATCH: i32 = 8545; +pub const ERROR_DS_DRA_OUT_OF_MEM: i32 = 8446; +pub const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW: i32 = 8617; +pub const ERROR_DS_DRA_PREEMPTED: i32 = 8461; +pub const ERROR_DS_DRA_RECYCLED_TARGET: i32 = 8639; +pub const ERROR_DS_DRA_REF_ALREADY_EXISTS: i32 = 8448; +pub const ERROR_DS_DRA_REF_NOT_FOUND: i32 = 8449; +pub const ERROR_DS_DRA_REPL_PENDING: i32 = 8477; +pub const ERROR_DS_DRA_RPC_CANCELLED: i32 = 8455; +pub const ERROR_DS_DRA_SCHEMA_CONFLICT: i32 = 8543; +pub const ERROR_DS_DRA_SCHEMA_INFO_SHIP: i32 = 8542; +pub const ERROR_DS_DRA_SCHEMA_MISMATCH: i32 = 8418; +pub const ERROR_DS_DRA_SECRETS_DENIED: i32 = 8630; +pub const ERROR_DS_DRA_SHUTDOWN: i32 = 8463; +pub const ERROR_DS_DRA_SINK_DISABLED: i32 = 8457; +pub const ERROR_DS_DRA_SOURCE_DISABLED: i32 = 8456; +pub const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA: i32 = 8465; +pub const ERROR_DS_DRA_SOURCE_REINSTALLED: i32 = 8459; +pub const ERROR_DS_DRS_EXTENSIONS_CHANGED: i32 = 8594; +pub const ERROR_DS_DSA_MUST_BE_INT_MASTER: i32 = 8342; +pub const ERROR_DS_DST_DOMAIN_NOT_NATIVE: i32 = 8496; +pub const ERROR_DS_DST_NC_MISMATCH: i32 = 8486; +pub const ERROR_DS_DS_REQUIRED: i32 = 8478; +pub const ERROR_DS_DUPLICATE_ID_FOUND: i32 = 8605; +pub const ERROR_DS_DUP_LDAP_DISPLAY_NAME: i32 = 8382; +pub const ERROR_DS_DUP_LINK_ID: i32 = 8468; +pub const ERROR_DS_DUP_MAPI_ID: i32 = 8380; +pub const ERROR_DS_DUP_MSDS_INTID: i32 = 8597; +pub const ERROR_DS_DUP_OID: i32 = 8379; +pub const ERROR_DS_DUP_RDN: i32 = 8378; +pub const ERROR_DS_DUP_SCHEMA_ID_GUID: i32 = 8381; +pub const ERROR_DS_ENCODING_ERROR: i32 = 8252; +pub const ERROR_DS_EPOCH_MISMATCH: i32 = 8483; +pub const ERROR_DS_EXISTING_AD_CHILD_NC: i32 = 8613; +pub const ERROR_DS_EXISTS_IN_AUX_CLS: i32 = 8393; +pub const ERROR_DS_EXISTS_IN_MAY_HAVE: i32 = 8386; +pub const ERROR_DS_EXISTS_IN_MUST_HAVE: i32 = 8385; +pub const ERROR_DS_EXISTS_IN_POSS_SUP: i32 = 8395; +pub const ERROR_DS_EXISTS_IN_RDNATTID: i32 = 8598; +pub const ERROR_DS_EXISTS_IN_SUB_CLS: i32 = 8394; +pub const ERROR_DS_FILTER_UNKNOWN: i32 = 8254; +pub const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS: i32 = 8555; +pub const ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST: i32 = 8635; +pub const ERROR_DS_FOREST_VERSION_TOO_HIGH: i32 = 8563; +pub const ERROR_DS_FOREST_VERSION_TOO_LOW: i32 = 8565; +pub const ERROR_DS_GCVERIFY_ERROR: i32 = 8417; +pub const ERROR_DS_GC_NOT_AVAILABLE: i32 = 8217; +pub const ERROR_DS_GC_REQUIRED: i32 = 8547; +pub const ERROR_DS_GENERIC_ERROR: i32 = 8341; +pub const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: i32 = 8519; +pub const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: i32 = 8516; +pub const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: i32 = 8517; +pub const ERROR_DS_GOVERNSID_MISSING: i32 = 8410; +pub const ERROR_DS_GROUP_CONVERSION_ERROR: i32 = 8607; +pub const ERROR_DS_HAVE_PRIMARY_MEMBERS: i32 = 8521; +pub const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED: i32 = 8429; +pub const ERROR_DS_HIERARCHY_TABLE_TOO_DEEP: i32 = 8628; +pub const ERROR_DS_HIGH_ADLDS_FFL: i32 = 8641; +pub const ERROR_DS_HIGH_DSA_VERSION: i32 = 8642; +pub const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD: i32 = 8507; +pub const ERROR_DS_ILLEGAL_MOD_OPERATION: i32 = 8311; +pub const ERROR_DS_ILLEGAL_SUPERIOR: i32 = 8345; +pub const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION: i32 = 8492; +pub const ERROR_DS_INAPPROPRIATE_AUTH: i32 = 8233; +pub const ERROR_DS_INAPPROPRIATE_MATCHING: i32 = 8238; +pub const ERROR_DS_INCOMPATIBLE_CONTROLS_USED: i32 = 8574; +pub const ERROR_DS_INCOMPATIBLE_VERSION: i32 = 8567; +pub const ERROR_DS_INCORRECT_ROLE_OWNER: i32 = 8210; +pub const ERROR_DS_INIT_FAILURE: i32 = 8532; +pub const ERROR_DS_INIT_FAILURE_CONSOLE: i32 = 8561; +pub const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE: i32 = 8512; +pub const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION: i32 = 8511; +pub const ERROR_DS_INSTALL_SCHEMA_MISMATCH: i32 = 8467; +pub const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT: i32 = 8606; +pub const ERROR_DS_INSUFF_ACCESS_RIGHTS: i32 = 8344; +pub const ERROR_DS_INTERNAL_FAILURE: i32 = 8430; +pub const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX: i32 = 8203; +pub const ERROR_DS_INVALID_DMD: i32 = 8360; +pub const ERROR_DS_INVALID_DN_SYNTAX: i32 = 8242; +pub const ERROR_DS_INVALID_GROUP_TYPE: i32 = 8513; +pub const ERROR_DS_INVALID_LDAP_DISPLAY_NAME: i32 = 8479; +pub const ERROR_DS_INVALID_NAME_FOR_SPN: i32 = 8554; +pub const ERROR_DS_INVALID_ROLE_OWNER: i32 = 8366; +pub const ERROR_DS_INVALID_SCRIPT: i32 = 8600; +pub const ERROR_DS_INVALID_SEARCH_FLAG: i32 = 8500; +pub const ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE: i32 = 8626; +pub const ERROR_DS_INVALID_SEARCH_FLAG_TUPLE: i32 = 8627; +pub const ERROR_DS_IS_LEAF: i32 = 8243; +pub const ERROR_DS_KEY_NOT_UNIQUE: i32 = 8527; +pub const ERROR_DS_LDAP_SEND_QUEUE_FULL: i32 = 8616; +pub const ERROR_DS_LINK_ID_NOT_AVAILABLE: i32 = 8577; +pub const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: i32 = 8520; +pub const ERROR_DS_LOCAL_ERROR: i32 = 8251; +pub const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: i32 = 8548; +pub const ERROR_DS_LOOP_DETECT: i32 = 8246; +pub const ERROR_DS_LOW_ADLDS_FFL: i32 = 8643; +pub const ERROR_DS_LOW_DSA_VERSION: i32 = 8568; +pub const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4: i32 = 8572; +pub const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: i32 = 8557; +pub const ERROR_DS_MAPI_ID_NOT_AVAILABLE: i32 = 8632; +pub const ERROR_DS_MASTERDSA_REQUIRED: i32 = 8314; +pub const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED: i32 = 8304; +pub const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY: i32 = 8201; +pub const ERROR_DS_MISSING_EXPECTED_ATT: i32 = 8411; +pub const ERROR_DS_MISSING_FOREST_TRUST: i32 = 8649; +pub const ERROR_DS_MISSING_FSMO_SETTINGS: i32 = 8434; +pub const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER: i32 = 8497; +pub const ERROR_DS_MISSING_REQUIRED_ATT: i32 = 8316; +pub const ERROR_DS_MISSING_SUPREF: i32 = 8406; +pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG: i32 = 8581; +pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE: i32 = 8579; +pub const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT: i32 = 8582; +pub const ERROR_DS_MUST_BE_RUN_ON_DST_DC: i32 = 8558; +pub const ERROR_DS_NAME_ERROR_DOMAIN_ONLY: i32 = 8473; +pub const ERROR_DS_NAME_ERROR_NOT_FOUND: i32 = 8470; +pub const ERROR_DS_NAME_ERROR_NOT_UNIQUE: i32 = 8471; +pub const ERROR_DS_NAME_ERROR_NO_MAPPING: i32 = 8472; +pub const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: i32 = 8474; +pub const ERROR_DS_NAME_ERROR_RESOLVING: i32 = 8469; +pub const ERROR_DS_NAME_ERROR_TRUST_REFERRAL: i32 = 8583; +pub const ERROR_DS_NAME_NOT_UNIQUE: i32 = 8571; +pub const ERROR_DS_NAME_REFERENCE_INVALID: i32 = 8373; +pub const ERROR_DS_NAME_TOO_LONG: i32 = 8348; +pub const ERROR_DS_NAME_TOO_MANY_PARTS: i32 = 8347; +pub const ERROR_DS_NAME_TYPE_UNKNOWN: i32 = 8351; +pub const ERROR_DS_NAME_UNPARSEABLE: i32 = 8350; +pub const ERROR_DS_NAME_VALUE_TOO_LONG: i32 = 8349; +pub const ERROR_DS_NAMING_MASTER_GC: i32 = 8523; +pub const ERROR_DS_NAMING_VIOLATION: i32 = 8247; +pub const ERROR_DS_NCNAME_MISSING_CR_REF: i32 = 8412; +pub const ERROR_DS_NCNAME_MUST_BE_NC: i32 = 8357; +pub const ERROR_DS_NC_MUST_HAVE_NC_PARENT: i32 = 8494; +pub const ERROR_DS_NC_STILL_HAS_DSAS: i32 = 8546; +pub const ERROR_DS_NONEXISTENT_MAY_HAVE: i32 = 8387; +pub const ERROR_DS_NONEXISTENT_MUST_HAVE: i32 = 8388; +pub const ERROR_DS_NONEXISTENT_POSS_SUP: i32 = 8390; +pub const ERROR_DS_NONSAFE_SCHEMA_CHANGE: i32 = 8508; +pub const ERROR_DS_NON_ASQ_SEARCH: i32 = 8624; +pub const ERROR_DS_NON_BASE_SEARCH: i32 = 8480; +pub const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX: i32 = 8377; +pub const ERROR_DS_NOT_AN_OBJECT: i32 = 8352; +pub const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC: i32 = 8487; +pub const ERROR_DS_NOT_CLOSEST: i32 = 8588; +pub const ERROR_DS_NOT_INSTALLED: i32 = 8200; +pub const ERROR_DS_NOT_ON_BACKLINK: i32 = 8362; +pub const ERROR_DS_NOT_SUPPORTED: i32 = 8256; +pub const ERROR_DS_NOT_SUPPORTED_SORT_ORDER: i32 = 8570; +pub const ERROR_DS_NO_ATTRIBUTE_OR_VALUE: i32 = 8202; +pub const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN: i32 = 8569; +pub const ERROR_DS_NO_CHAINED_EVAL: i32 = 8328; +pub const ERROR_DS_NO_CHAINING: i32 = 8327; +pub const ERROR_DS_NO_CHECKPOINT_WITH_PDC: i32 = 8551; +pub const ERROR_DS_NO_CROSSREF_FOR_NC: i32 = 8363; +pub const ERROR_DS_NO_DELETED_NAME: i32 = 8355; +pub const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS: i32 = 8549; +pub const ERROR_DS_NO_MORE_RIDS: i32 = 8209; +pub const ERROR_DS_NO_MSDS_INTID: i32 = 8596; +pub const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: i32 = 8514; +pub const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: i32 = 8515; +pub const ERROR_DS_NO_NTDSA_OBJECT: i32 = 8623; +pub const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC: i32 = 8580; +pub const ERROR_DS_NO_PARENT_OBJECT: i32 = 8329; +pub const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION: i32 = 8533; +pub const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA: i32 = 8306; +pub const ERROR_DS_NO_REF_DOMAIN: i32 = 8575; +pub const ERROR_DS_NO_REQUESTED_ATTS_FOUND: i32 = 8308; +pub const ERROR_DS_NO_RESULTS_RETURNED: i32 = 8257; +pub const ERROR_DS_NO_RIDS_ALLOCATED: i32 = 8208; +pub const ERROR_DS_NO_SERVER_OBJECT: i32 = 8622; +pub const ERROR_DS_NO_SUCH_OBJECT: i32 = 8240; +pub const ERROR_DS_NO_TREE_DELETE_ABOVE_NC: i32 = 8501; +pub const ERROR_DS_NTDSCRIPT_PROCESS_ERROR: i32 = 8592; +pub const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR: i32 = 8591; +pub const ERROR_DS_OBJECT_BEING_REMOVED: i32 = 8339; +pub const ERROR_DS_OBJECT_CLASS_REQUIRED: i32 = 8315; +pub const ERROR_DS_OBJECT_RESULTS_TOO_LARGE: i32 = 8248; +pub const ERROR_DS_OBJ_CLASS_NOT_DEFINED: i32 = 8371; +pub const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS: i32 = 8372; +pub const ERROR_DS_OBJ_CLASS_VIOLATION: i32 = 8212; +pub const ERROR_DS_OBJ_GUID_EXISTS: i32 = 8361; +pub const ERROR_DS_OBJ_NOT_FOUND: i32 = 8333; +pub const ERROR_DS_OBJ_STRING_NAME_EXISTS: i32 = 8305; +pub const ERROR_DS_OBJ_TOO_LARGE: i32 = 8312; +pub const ERROR_DS_OFFSET_RANGE_ERROR: i32 = 8262; +pub const ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: i32 = 8637; +pub const ERROR_DS_OID_NOT_FOUND: i32 = 8638; +pub const ERROR_DS_OPERATIONS_ERROR: i32 = 8224; +pub const ERROR_DS_OUT_OF_SCOPE: i32 = 8338; +pub const ERROR_DS_OUT_OF_VERSION_STORE: i32 = 8573; +pub const ERROR_DS_PARAM_ERROR: i32 = 8255; +pub const ERROR_DS_PARENT_IS_AN_ALIAS: i32 = 8330; +pub const ERROR_DS_PDC_OPERATION_IN_PROGRESS: i32 = 8490; +pub const ERROR_DS_PER_ATTRIBUTE_AUTHZ_FAILED_DURING_ADD: i32 = 8652; +pub const ERROR_DS_POLICY_NOT_KNOWN: i32 = 8618; +pub const ERROR_DS_PROTOCOL_ERROR: i32 = 8225; +pub const ERROR_DS_RANGE_CONSTRAINT: i32 = 8322; +pub const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA: i32 = 8307; +pub const ERROR_DS_RECALCSCHEMA_FAILED: i32 = 8396; +pub const ERROR_DS_REFERRAL: i32 = 8235; +pub const ERROR_DS_REFERRAL_LIMIT_EXCEEDED: i32 = 8260; +pub const ERROR_DS_REFUSING_FSMO_ROLES: i32 = 8433; +pub const ERROR_DS_REMOTE_CROSSREF_OP_FAILED: i32 = 8601; +pub const ERROR_DS_REPLICATOR_ONLY: i32 = 8370; +pub const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR: i32 = 8595; +pub const ERROR_DS_REPL_LIFETIME_EXCEEDED: i32 = 8614; +pub const ERROR_DS_RESERVED_LINK_ID: i32 = 8576; +pub const ERROR_DS_RESERVED_MAPI_ID: i32 = 8631; +pub const ERROR_DS_RIDMGR_DISABLED: i32 = 8263; +pub const ERROR_DS_RIDMGR_INIT_ERROR: i32 = 8211; +pub const ERROR_DS_ROLE_NOT_VERIFIED: i32 = 8610; +pub const ERROR_DS_ROOT_CANT_BE_SUBREF: i32 = 8326; +pub const ERROR_DS_ROOT_MUST_BE_NC: i32 = 8301; +pub const ERROR_DS_ROOT_REQUIRES_CLASS_TOP: i32 = 8432; +pub const ERROR_DS_SAM_INIT_FAILURE: i32 = 8504; +pub const ERROR_DS_SAM_INIT_FAILURE_CONSOLE: i32 = 8562; +pub const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY: i32 = 8530; +pub const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD: i32 = 8529; +pub const ERROR_DS_SCHEMA_ALLOC_FAILED: i32 = 8415; +pub const ERROR_DS_SCHEMA_NOT_LOADED: i32 = 8414; +pub const ERROR_DS_SCHEMA_UPDATE_DISALLOWED: i32 = 8509; +pub const ERROR_DS_SECURITY_CHECKING_ERROR: i32 = 8413; +pub const ERROR_DS_SECURITY_ILLEGAL_MODIFY: i32 = 8423; +pub const ERROR_DS_SEC_DESC_INVALID: i32 = 8354; +pub const ERROR_DS_SEC_DESC_TOO_SHORT: i32 = 8353; +pub const ERROR_DS_SEMANTIC_ATT_TEST: i32 = 8383; +pub const ERROR_DS_SENSITIVE_GROUP_VIOLATION: i32 = 8505; +pub const ERROR_DS_SERVER_DOWN: i32 = 8250; +pub const ERROR_DS_SHUTTING_DOWN: i32 = 8364; +pub const ERROR_DS_SINGLE_USER_MODE_FAILED: i32 = 8590; +pub const ERROR_DS_SINGLE_VALUE_CONSTRAINT: i32 = 8321; +pub const ERROR_DS_SIZELIMIT_EXCEEDED: i32 = 8227; +pub const ERROR_DS_SORT_CONTROL_MISSING: i32 = 8261; +pub const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED: i32 = 8552; +pub const ERROR_DS_SOURCE_DOMAIN_IN_FOREST: i32 = 8534; +pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: i32 = 8647; +pub const ERROR_DS_SRC_AND_DST_NC_IDENTICAL: i32 = 8485; +pub const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH: i32 = 8540; +pub const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER: i32 = 8559; +pub const ERROR_DS_SRC_GUID_MISMATCH: i32 = 8488; +pub const ERROR_DS_SRC_NAME_MISMATCH: i32 = 8484; +pub const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER: i32 = 8538; +pub const ERROR_DS_SRC_SID_EXISTS_IN_FOREST: i32 = 8539; +pub const ERROR_DS_STRING_SD_CONVERSION_FAILED: i32 = 8522; +pub const ERROR_DS_STRONG_AUTH_REQUIRED: i32 = 8232; +pub const ERROR_DS_SUBREF_MUST_HAVE_PARENT: i32 = 8356; +pub const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD: i32 = 8376; +pub const ERROR_DS_SUB_CLS_TEST_FAIL: i32 = 8391; +pub const ERROR_DS_SYNTAX_MISMATCH: i32 = 8384; +pub const ERROR_DS_THREAD_LIMIT_EXCEEDED: i32 = 8587; +pub const ERROR_DS_TIMELIMIT_EXCEEDED: i32 = 8226; +pub const ERROR_DS_TREE_DELETE_NOT_FINISHED: i32 = 8397; +pub const ERROR_DS_UNABLE_TO_SURRENDER_ROLES: i32 = 8435; +pub const ERROR_DS_UNAVAILABLE: i32 = 8207; +pub const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION: i32 = 8236; +pub const ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED: i32 = 8645; +pub const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES: i32 = 8556; +pub const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: i32 = 8518; +pub const ERROR_DS_UNKNOWN_ERROR: i32 = 8431; +pub const ERROR_DS_UNKNOWN_OPERATION: i32 = 8365; +pub const ERROR_DS_UNWILLING_TO_PERFORM: i32 = 8245; +pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: i32 = 8648; +pub const ERROR_DS_USER_BUFFER_TO_SMALL: i32 = 8309; +pub const ERROR_DS_VALUE_KEY_NOT_UNIQUE: i32 = 8650; +pub const ERROR_DS_VERSION_CHECK_FAILURE: i32 = 643; +pub const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL: i32 = 8611; +pub const ERROR_DS_WRONG_LINKED_ATT_SYNTAX: i32 = 8528; +pub const ERROR_DS_WRONG_OM_OBJ_CLASS: i32 = 8476; +pub const ERROR_DUPLICATE_PRIVILEGES: i32 = 311; +pub const ERROR_DUPLICATE_SERVICE_NAME: i32 = 1078; +pub const ERROR_DUP_DOMAINNAME: i32 = 1221; +pub const ERROR_DUP_NAME: i32 = 52; +pub const ERROR_DYNAMIC_CODE_BLOCKED: i32 = 1655; +pub const ERROR_DYNLINK_FROM_INVALID_RING: i32 = 196; +pub const ERROR_EAS_DIDNT_FIT: i32 = 275; +pub const ERROR_EAS_NOT_SUPPORTED: i32 = 282; +pub const ERROR_EA_ACCESS_DENIED: i32 = 994; +pub const ERROR_EA_FILE_CORRUPT: i32 = 276; +pub const ERROR_EA_LIST_INCONSISTENT: i32 = 255; +pub const ERROR_EA_TABLE_FULL: i32 = 277; +pub const ERROR_EDP_DPL_POLICY_CANT_BE_SATISFIED: i32 = 357; +pub const ERROR_EDP_POLICY_DENIES_OPERATION: i32 = 356; +pub const ERROR_EFS_ALG_BLOB_TOO_BIG: i32 = 6013; +pub const ERROR_EFS_DISABLED: i32 = 6015; +pub const ERROR_EFS_SERVER_NOT_TRUSTED: i32 = 6011; +pub const ERROR_EFS_VERSION_NOT_SUPPORT: i32 = 6016; +pub const ERROR_ELEVATION_REQUIRED: i32 = 740; +pub const ERROR_ENCLAVE_FAILURE: i32 = 349; +pub const ERROR_ENCLAVE_NOT_TERMINATED: i32 = 814; +pub const ERROR_ENCLAVE_VIOLATION: i32 = 815; +pub const ERROR_ENCRYPTED_FILE_NOT_SUPPORTED: i32 = 489; +pub const ERROR_ENCRYPTED_IO_NOT_POSSIBLE: i32 = 808; +pub const ERROR_ENCRYPTING_METADATA_DISALLOWED: i32 = 431; +pub const ERROR_ENCRYPTION_DISABLED: i32 = 430; +pub const ERROR_ENCRYPTION_FAILED: i32 = 6000; +pub const ERROR_ENCRYPTION_POLICY_DENIES_OPERATION: i32 = 6022; +pub const ERROR_END_OF_MEDIA: i32 = 1100; +pub const ERROR_ENVVAR_NOT_FOUND: i32 = 203; +pub const ERROR_EOM_OVERFLOW: i32 = 1129; +pub const ERROR_ERRORS_ENCOUNTERED: i32 = 774; +pub const ERROR_EVALUATION_EXPIRATION: i32 = 622; +pub const ERROR_EVENTLOG_CANT_START: i32 = 1501; +pub const ERROR_EVENTLOG_FILE_CHANGED: i32 = 1503; +pub const ERROR_EVENTLOG_FILE_CORRUPT: i32 = 1500; +pub const ERROR_EVENT_DONE: i32 = 710; +pub const ERROR_EVENT_PENDING: i32 = 711; +pub const ERROR_EXCEPTION_IN_SERVICE: i32 = 1064; +pub const ERROR_EXCL_SEM_ALREADY_OWNED: i32 = 101; +pub const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY: i32 = 217; +pub const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY: i32 = 218; +pub const ERROR_EXE_MACHINE_TYPE_MISMATCH: i32 = 216; +pub const ERROR_EXE_MARKED_INVALID: i32 = 192; +pub const ERROR_EXTENDED_ERROR: i32 = 1208; +pub const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN: i32 = 343; +pub const ERROR_EXTERNAL_SYSKEY_NOT_SUPPORTED: i32 = 399; +pub const ERROR_EXTRANEOUS_INFORMATION: i32 = 677; +pub const ERROR_FAILED_DRIVER_ENTRY: i32 = 647; +pub const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT: i32 = 1063; +pub const ERROR_FAIL_FAST_EXCEPTION: i32 = 1653; +pub const ERROR_FAIL_I24: i32 = 83; +pub const ERROR_FAIL_NOACTION_REBOOT: i32 = 350; +pub const ERROR_FAIL_RESTART: i32 = 352; +pub const ERROR_FAIL_SHUTDOWN: i32 = 351; +pub const ERROR_FATAL_APP_EXIT: i32 = 713; +pub const ERROR_FILEMARK_DETECTED: i32 = 1101; +pub const ERROR_FILENAME_EXCED_RANGE: i32 = 206; +pub const ERROR_FILE_CHECKED_OUT: i32 = 220; +pub const ERROR_FILE_CORRUPT: i32 = 1392; +pub const ERROR_FILE_ENCRYPTED: i32 = 6002; +pub const ERROR_FILE_EXISTS: i32 = 80; +pub const ERROR_FILE_HANDLE_REVOKED: i32 = 806; +pub const ERROR_FILE_INVALID: i32 = 1006; +pub const ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED: i32 = 326; +pub const ERROR_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: i32 = 809; +pub const ERROR_FILE_NOT_ENCRYPTED: i32 = 6007; +pub const ERROR_FILE_NOT_FOUND: i32 = 2; +pub const ERROR_FILE_NOT_SUPPORTED: i32 = 425; +pub const ERROR_FILE_OFFLINE: i32 = 4350; +pub const ERROR_FILE_PROTECTED_UNDER_DPL: i32 = 406; +pub const ERROR_FILE_READ_ONLY: i32 = 6009; +pub const ERROR_FILE_SNAP_INVALID_PARAMETER: i32 = 440; +pub const ERROR_FILE_SNAP_IN_PROGRESS: i32 = 435; +pub const ERROR_FILE_SNAP_IO_NOT_COORDINATED: i32 = 438; +pub const ERROR_FILE_SNAP_MODIFY_NOT_SUPPORTED: i32 = 437; +pub const ERROR_FILE_SNAP_UNEXPECTED_ERROR: i32 = 439; +pub const ERROR_FILE_SNAP_USER_SECTION_NOT_SUPPORTED: i32 = 436; +pub const ERROR_FILE_SYSTEM_LIMITATION: i32 = 665; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_BUSY: i32 = 371; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION: i32 = 385; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT: i32 = 370; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN: i32 = 372; +pub const ERROR_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE: i32 = 369; +pub const ERROR_FILE_TOO_LARGE: i32 = 223; +pub const ERROR_FIRMWARE_UPDATED: i32 = 728; +pub const ERROR_FLOAT_MULTIPLE_FAULTS: i32 = 630; +pub const ERROR_FLOAT_MULTIPLE_TRAPS: i32 = 631; +pub const ERROR_FLOPPY_BAD_REGISTERS: i32 = 1125; +pub const ERROR_FLOPPY_ID_MARK_NOT_FOUND: i32 = 1122; +pub const ERROR_FLOPPY_UNKNOWN_ERROR: i32 = 1124; +pub const ERROR_FLOPPY_VOLUME: i32 = 584; +pub const ERROR_FLOPPY_WRONG_CYLINDER: i32 = 1123; +pub const ERROR_FORMS_AUTH_REQUIRED: i32 = 224; +pub const ERROR_FOUND_OUT_OF_SCOPE: i32 = 601; +pub const ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY: i32 = 762; +pub const ERROR_FS_DRIVER_REQUIRED: i32 = 588; +pub const ERROR_FS_METADATA_INCONSISTENT: i32 = 510; +pub const ERROR_FT_DI_SCAN_REQUIRED: i32 = 339; +pub const ERROR_FT_READ_FAILURE: i32 = 415; +pub const ERROR_FT_READ_FROM_COPY_FAILURE: i32 = 818; +pub const ERROR_FT_READ_RECOVERY_FROM_BACKUP: i32 = 704; +pub const ERROR_FT_WRITE_FAILURE: i32 = 338; +pub const ERROR_FT_WRITE_RECOVERY: i32 = 705; +pub const ERROR_FULLSCREEN_MODE: i32 = 1007; +pub const ERROR_FUNCTION_FAILED: i32 = 1627; +pub const ERROR_FUNCTION_NOT_CALLED: i32 = 1626; +pub const ERROR_GDI_HANDLE_LEAK: i32 = 373; +pub const ERROR_GENERIC_NOT_MAPPED: i32 = 1360; +pub const ERROR_GEN_FAILURE: i32 = 31; +pub const ERROR_GLOBAL_ONLY_HOOK: i32 = 1429; +pub const ERROR_GRACEFUL_DISCONNECT: i32 = 1226; +pub const ERROR_GROUP_EXISTS: i32 = 1318; +pub const ERROR_GUID_SUBSTITUTION_MADE: i32 = 680; +pub const ERROR_HANDLES_CLOSED: i32 = 676; +pub const ERROR_HANDLE_DISK_FULL: i32 = 39; +pub const ERROR_HANDLE_EOF: i32 = 38; +pub const ERROR_HANDLE_REVOKED: i32 = 811; +pub const ERROR_HAS_SYSTEM_CRITICAL_FILES: i32 = 488; +pub const ERROR_HIBERNATED: i32 = 726; +pub const ERROR_HIBERNATION_FAILURE: i32 = 656; +pub const ERROR_HOOK_NEEDS_HMOD: i32 = 1428; +pub const ERROR_HOOK_NOT_INSTALLED: i32 = 1431; +pub const ERROR_HOOK_TYPE_NOT_ALLOWED: i32 = 1458; +pub const ERROR_HOST_DOWN: i32 = 1256; +pub const ERROR_HOST_UNREACHABLE: i32 = 1232; +pub const ERROR_HOTKEY_ALREADY_REGISTERED: i32 = 1409; +pub const ERROR_HOTKEY_NOT_REGISTERED: i32 = 1419; +pub const ERROR_HWNDS_HAVE_DIFF_PARENT: i32 = 1441; +pub const ERROR_ILLEGAL_CHARACTER: i32 = 582; +pub const ERROR_ILLEGAL_DLL_RELOCATION: i32 = 623; +pub const ERROR_ILLEGAL_ELEMENT_ADDRESS: i32 = 1162; +pub const ERROR_ILLEGAL_FLOAT_CONTEXT: i32 = 579; +pub const ERROR_ILL_FORMED_PASSWORD: i32 = 1324; +pub const ERROR_IMAGE_AT_DIFFERENT_BASE: i32 = 807; +pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH: i32 = 706; +pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE: i32 = 720; +pub const ERROR_IMAGE_NOT_AT_BASE: i32 = 700; +pub const ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT: i32 = 308; +pub const ERROR_IMPLEMENTATION_LIMIT: i32 = 1292; +pub const ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE: i32 = 1297; +pub const ERROR_INCOMPATIBLE_SERVICE_SID_TYPE: i32 = 1290; +pub const ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: i32 = 304; +pub const ERROR_INCORRECT_ACCOUNT_TYPE: i32 = 8646; +pub const ERROR_INCORRECT_ADDRESS: i32 = 1241; +pub const ERROR_INCORRECT_SIZE: i32 = 1462; +pub const ERROR_INDEX_ABSENT: i32 = 1611; +pub const ERROR_INDEX_OUT_OF_BOUNDS: i32 = 474; +pub const ERROR_INFLOOP_IN_RELOC_CHAIN: i32 = 202; +pub const ERROR_INSTALL_ALREADY_RUNNING: i32 = 1618; +pub const ERROR_INSTALL_FAILURE: i32 = 1603; +pub const ERROR_INSTALL_LANGUAGE_UNSUPPORTED: i32 = 1623; +pub const ERROR_INSTALL_LOG_FAILURE: i32 = 1622; +pub const ERROR_INSTALL_NOTUSED: i32 = 1634; +pub const ERROR_INSTALL_PACKAGE_INVALID: i32 = 1620; +pub const ERROR_INSTALL_PACKAGE_OPEN_FAILED: i32 = 1619; +pub const ERROR_INSTALL_PACKAGE_REJECTED: i32 = 1625; +pub const ERROR_INSTALL_PACKAGE_VERSION: i32 = 1613; +pub const ERROR_INSTALL_PLATFORM_UNSUPPORTED: i32 = 1633; +pub const ERROR_INSTALL_REJECTED: i32 = 1654; +pub const ERROR_INSTALL_REMOTE_DISALLOWED: i32 = 1640; +pub const ERROR_INSTALL_REMOTE_PROHIBITED: i32 = 1645; +pub const ERROR_INSTALL_SERVICE_FAILURE: i32 = 1601; +pub const ERROR_INSTALL_SERVICE_SAFEBOOT: i32 = 1652; +pub const ERROR_INSTALL_SOURCE_ABSENT: i32 = 1612; +pub const ERROR_INSTALL_SUSPEND: i32 = 1604; +pub const ERROR_INSTALL_TEMP_UNWRITABLE: i32 = 1632; +pub const ERROR_INSTALL_TRANSFORM_FAILURE: i32 = 1624; +pub const ERROR_INSTALL_TRANSFORM_REJECTED: i32 = 1644; +pub const ERROR_INSTALL_UI_FAILURE: i32 = 1621; +pub const ERROR_INSTALL_USEREXIT: i32 = 1602; +pub const ERROR_INSTRUCTION_MISALIGNMENT: i32 = 549; +pub const ERROR_INSUFFICIENT_BUFFER: i32 = 122; +pub const ERROR_INSUFFICIENT_LOGON_INFO: i32 = 608; +pub const ERROR_INSUFFICIENT_POWER: i32 = 639; +pub const ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: i32 = 781; +pub const ERROR_INSUFFICIENT_VIRTUAL_ADDR_RESOURCES: i32 = 473; +pub const ERROR_INTERMIXED_KERNEL_EA_OPERATION: i32 = 324; +pub const ERROR_INTERNAL_DB_CORRUPTION: i32 = 1358; +pub const ERROR_INTERNAL_DB_ERROR: i32 = 1383; +pub const ERROR_INTERNAL_ERROR: i32 = 1359; +pub const ERROR_INTERRUPT_STILL_CONNECTED: i32 = 764; +pub const ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED: i32 = 763; +pub const ERROR_INVALID_ACCEL_HANDLE: i32 = 1403; +pub const ERROR_INVALID_ACCESS: i32 = 12; +pub const ERROR_INVALID_ACCOUNT_NAME: i32 = 1315; +pub const ERROR_INVALID_ACE_CONDITION: i32 = 805; +pub const ERROR_INVALID_ACL: i32 = 1336; +pub const ERROR_INVALID_ADDRESS: i32 = 487; +pub const ERROR_INVALID_AT_INTERRUPT_TIME: i32 = 104; +pub const ERROR_INVALID_BLOCK: i32 = 9; +pub const ERROR_INVALID_BLOCK_LENGTH: i32 = 1106; +pub const ERROR_INVALID_CAP: i32 = 320; +pub const ERROR_INVALID_CATEGORY: i32 = 117; +pub const ERROR_INVALID_COMBOBOX_MESSAGE: i32 = 1422; +pub const ERROR_INVALID_COMMAND_LINE: i32 = 1639; +pub const ERROR_INVALID_COMPUTERNAME: i32 = 1210; +pub const ERROR_INVALID_CRUNTIME_PARAMETER: i32 = 1288; +pub const ERROR_INVALID_CURSOR_HANDLE: i32 = 1402; +pub const ERROR_INVALID_DATA: i32 = 13; +pub const ERROR_INVALID_DATATYPE: i32 = 1804; +pub const ERROR_INVALID_DEVICE_OBJECT_PARAMETER: i32 = 650; +pub const ERROR_INVALID_DLL: i32 = 1154; +pub const ERROR_INVALID_DOMAINNAME: i32 = 1212; +pub const ERROR_INVALID_DOMAIN_ROLE: i32 = 1354; +pub const ERROR_INVALID_DOMAIN_STATE: i32 = 1353; +pub const ERROR_INVALID_DRIVE: i32 = 15; +pub const ERROR_INVALID_DWP_HANDLE: i32 = 1405; +pub const ERROR_INVALID_EA_HANDLE: i32 = 278; +pub const ERROR_INVALID_EA_NAME: i32 = 254; +pub const ERROR_INVALID_EDIT_HEIGHT: i32 = 1424; +pub const ERROR_INVALID_ENVIRONMENT: i32 = 1805; +pub const ERROR_INVALID_EVENTNAME: i32 = 1211; +pub const ERROR_INVALID_EVENT_COUNT: i32 = 151; +pub const ERROR_INVALID_EXCEPTION_HANDLER: i32 = 310; +pub const ERROR_INVALID_EXE_SIGNATURE: i32 = 191; +pub const ERROR_INVALID_FIELD: i32 = 1616; +pub const ERROR_INVALID_FIELD_IN_PARAMETER_LIST: i32 = 328; +pub const ERROR_INVALID_FILTER_PROC: i32 = 1427; +pub const ERROR_INVALID_FLAGS: i32 = 1004; +pub const ERROR_INVALID_FLAG_NUMBER: i32 = 186; +pub const ERROR_INVALID_FORM_NAME: i32 = 1902; +pub const ERROR_INVALID_FORM_SIZE: i32 = 1903; +pub const ERROR_INVALID_FUNCTION: i32 = 1; +pub const ERROR_INVALID_GROUPNAME: i32 = 1209; +pub const ERROR_INVALID_GROUP_ATTRIBUTES: i32 = 1345; +pub const ERROR_INVALID_GW_COMMAND: i32 = 1443; +pub const ERROR_INVALID_HANDLE: i32 = 6; +pub const ERROR_INVALID_HANDLE_STATE: i32 = 1609; +pub const ERROR_INVALID_HOOK_FILTER: i32 = 1426; +pub const ERROR_INVALID_HOOK_HANDLE: i32 = 1404; +pub const ERROR_INVALID_HW_PROFILE: i32 = 619; +pub const ERROR_INVALID_ICON_HANDLE: i32 = 1414; +pub const ERROR_INVALID_ID_AUTHORITY: i32 = 1343; +pub const ERROR_INVALID_IMAGE_HASH: i32 = 577; +pub const ERROR_INVALID_IMPORT_OF_NON_DLL: i32 = 1276; +pub const ERROR_INVALID_INDEX: i32 = 1413; +pub const ERROR_INVALID_KERNEL_INFO_VERSION: i32 = 340; +pub const ERROR_INVALID_KEYBOARD_HANDLE: i32 = 1457; +pub const ERROR_INVALID_LABEL: i32 = 1299; +pub const ERROR_INVALID_LB_MESSAGE: i32 = 1432; +pub const ERROR_INVALID_LDT_DESCRIPTOR: i32 = 564; +pub const ERROR_INVALID_LDT_OFFSET: i32 = 563; +pub const ERROR_INVALID_LDT_SIZE: i32 = 561; +pub const ERROR_INVALID_LEVEL: i32 = 124; +pub const ERROR_INVALID_LIST_FORMAT: i32 = 153; +pub const ERROR_INVALID_LOCK_RANGE: i32 = 307; +pub const ERROR_INVALID_LOGON_HOURS: i32 = 1328; +pub const ERROR_INVALID_LOGON_TYPE: i32 = 1367; +pub const ERROR_INVALID_MEMBER: i32 = 1388; +pub const ERROR_INVALID_MENU_HANDLE: i32 = 1401; +pub const ERROR_INVALID_MESSAGE: i32 = 1002; +pub const ERROR_INVALID_MESSAGEDEST: i32 = 1218; +pub const ERROR_INVALID_MESSAGENAME: i32 = 1217; +pub const ERROR_INVALID_MINALLOCSIZE: i32 = 195; +pub const ERROR_INVALID_MODULETYPE: i32 = 190; +pub const ERROR_INVALID_MONITOR_HANDLE: i32 = 1461; +pub const ERROR_INVALID_MSGBOX_STYLE: i32 = 1438; +pub const ERROR_INVALID_NAME: i32 = 123; +pub const ERROR_INVALID_NETNAME: i32 = 1214; +pub const ERROR_INVALID_OPLOCK_PROTOCOL: i32 = 301; +pub const ERROR_INVALID_ORDINAL: i32 = 182; +pub const ERROR_INVALID_OWNER: i32 = 1307; +pub const ERROR_INVALID_PACKAGE_SID_LENGTH: i32 = 4253; +pub const ERROR_INVALID_PARAMETER: i32 = 87; +pub const ERROR_INVALID_PASSWORD: i32 = 86; +pub const ERROR_INVALID_PASSWORDNAME: i32 = 1216; +pub const ERROR_INVALID_PATCH_XML: i32 = 1650; +pub const ERROR_INVALID_PEP_INFO_VERSION: i32 = 341; +pub const ERROR_INVALID_PLUGPLAY_DEVICE_PATH: i32 = 620; +pub const ERROR_INVALID_PORT_ATTRIBUTES: i32 = 545; +pub const ERROR_INVALID_PRIMARY_GROUP: i32 = 1308; +pub const ERROR_INVALID_PRINTER_COMMAND: i32 = 1803; +pub const ERROR_INVALID_PRINTER_NAME: i32 = 1801; +pub const ERROR_INVALID_PRINTER_STATE: i32 = 1906; +pub const ERROR_INVALID_PRIORITY: i32 = 1800; +pub const ERROR_INVALID_QUOTA_LOWER: i32 = 547; +pub const ERROR_INVALID_REPARSE_DATA: i32 = 4392; +pub const ERROR_INVALID_SCROLLBAR_RANGE: i32 = 1448; +pub const ERROR_INVALID_SECURITY_DESCR: i32 = 1338; +pub const ERROR_INVALID_SEGDPL: i32 = 198; +pub const ERROR_INVALID_SEGMENT_NUMBER: i32 = 180; +pub const ERROR_INVALID_SEPARATOR_FILE: i32 = 1799; +pub const ERROR_INVALID_SERVER_STATE: i32 = 1352; +pub const ERROR_INVALID_SERVICENAME: i32 = 1213; +pub const ERROR_INVALID_SERVICE_ACCOUNT: i32 = 1057; +pub const ERROR_INVALID_SERVICE_CONTROL: i32 = 1052; +pub const ERROR_INVALID_SERVICE_LOCK: i32 = 1071; +pub const ERROR_INVALID_SHARENAME: i32 = 1215; +pub const ERROR_INVALID_SHOWWIN_COMMAND: i32 = 1449; +pub const ERROR_INVALID_SID: i32 = 1337; +pub const ERROR_INVALID_SIGNAL_NUMBER: i32 = 209; +pub const ERROR_INVALID_SPI_VALUE: i32 = 1439; +pub const ERROR_INVALID_STACKSEG: i32 = 189; +pub const ERROR_INVALID_STARTING_CODESEG: i32 = 188; +pub const ERROR_INVALID_SUB_AUTHORITY: i32 = 1335; +pub const ERROR_INVALID_TABLE: i32 = 1628; +pub const ERROR_INVALID_TARGET_HANDLE: i32 = 114; +pub const ERROR_INVALID_TASK_INDEX: i32 = 1551; +pub const ERROR_INVALID_TASK_NAME: i32 = 1550; +pub const ERROR_INVALID_THREAD_ID: i32 = 1444; +pub const ERROR_INVALID_TIME: i32 = 1901; +pub const ERROR_INVALID_TOKEN: i32 = 315; +pub const ERROR_INVALID_UNWIND_TARGET: i32 = 544; +pub const ERROR_INVALID_USER_BUFFER: i32 = 1784; +pub const ERROR_INVALID_USER_PRINCIPAL_NAME: i32 = 8636; +pub const ERROR_INVALID_VARIANT: i32 = 604; +pub const ERROR_INVALID_VERIFY_SWITCH: i32 = 118; +pub const ERROR_INVALID_WINDOW_HANDLE: i32 = 1400; +pub const ERROR_INVALID_WORKSTATION: i32 = 1329; +pub const ERROR_IOPL_NOT_ENABLED: i32 = 197; +pub const ERROR_IO_DEVICE: i32 = 1117; +pub const ERROR_IO_INCOMPLETE: i32 = 996; +pub const ERROR_IO_PENDING: i32 = 997; +pub const ERROR_IO_PRIVILEGE_FAILED: i32 = 571; +pub const ERROR_IO_REISSUE_AS_CACHED: i32 = 3950; +pub const ERROR_IPSEC_IKE_TIMED_OUT: i32 = 13805; +pub const ERROR_IP_ADDRESS_CONFLICT1: i32 = 611; +pub const ERROR_IP_ADDRESS_CONFLICT2: i32 = 612; +pub const ERROR_IRQ_BUSY: i32 = 1119; +pub const ERROR_IS_JOINED: i32 = 134; +pub const ERROR_IS_JOIN_PATH: i32 = 147; +pub const ERROR_IS_JOIN_TARGET: i32 = 133; +pub const ERROR_IS_SUBSTED: i32 = 135; +pub const ERROR_IS_SUBST_PATH: i32 = 146; +pub const ERROR_IS_SUBST_TARGET: i32 = 149; +pub const ERROR_ITERATED_DATA_EXCEEDS_64k: i32 = 194; +pub const ERROR_JOB_NO_CONTAINER: i32 = 1505; +pub const ERROR_JOIN_TO_JOIN: i32 = 138; +pub const ERROR_JOIN_TO_SUBST: i32 = 140; +pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: i32 = 1178; +pub const ERROR_JOURNAL_ENTRY_DELETED: i32 = 1181; +pub const ERROR_JOURNAL_HOOK_SET: i32 = 1430; +pub const ERROR_JOURNAL_NOT_ACTIVE: i32 = 1179; +pub const ERROR_KERNEL_APC: i32 = 738; +pub const ERROR_KEY_DELETED: i32 = 1018; +pub const ERROR_KEY_HAS_CHILDREN: i32 = 1020; +pub const ERROR_KM_DRIVER_BLOCKED: i32 = 1930; +pub const ERROR_LABEL_TOO_LONG: i32 = 154; +pub const ERROR_LAST_ADMIN: i32 = 1322; +pub const ERROR_LB_WITHOUT_TABSTOPS: i32 = 1434; +pub const ERROR_LICENSE_QUOTA_EXCEEDED: i32 = 1395; +pub const ERROR_LINUX_SUBSYSTEM_NOT_PRESENT: i32 = 414; +pub const ERROR_LINUX_SUBSYSTEM_UPDATE_REQUIRED: i32 = 444; +pub const ERROR_LISTBOX_ID_NOT_FOUND: i32 = 1416; +pub const ERROR_LM_CROSS_ENCRYPTION_REQUIRED: i32 = 1390; +pub const ERROR_LOCAL_POLICY_MODIFICATION_NOT_SUPPORTED: i32 = 8653; +pub const ERROR_LOCAL_USER_SESSION_KEY: i32 = 1303; +pub const ERROR_LOCKED: i32 = 212; +pub const ERROR_LOCK_FAILED: i32 = 167; +pub const ERROR_LOCK_VIOLATION: i32 = 33; +pub const ERROR_LOGIN_TIME_RESTRICTION: i32 = 1239; +pub const ERROR_LOGIN_WKSTA_RESTRICTION: i32 = 1240; +pub const ERROR_LOGON_FAILURE: i32 = 1326; +pub const ERROR_LOGON_NOT_GRANTED: i32 = 1380; +pub const ERROR_LOGON_SERVER_CONFLICT: i32 = 568; +pub const ERROR_LOGON_SESSION_COLLISION: i32 = 1366; +pub const ERROR_LOGON_SESSION_EXISTS: i32 = 1363; +pub const ERROR_LOGON_TYPE_NOT_GRANTED: i32 = 1385; +pub const ERROR_LOG_FILE_FULL: i32 = 1502; +pub const ERROR_LOG_HARD_ERROR: i32 = 718; +pub const ERROR_LONGJUMP: i32 = 682; +pub const ERROR_LOST_MODE_LOGON_RESTRICTION: i32 = 1939; +pub const ERROR_LOST_WRITEBEHIND_DATA: i32 = 596; +pub const ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: i32 = 790; +pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: i32 = 788; +pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: i32 = 789; +pub const ERROR_LUIDS_EXHAUSTED: i32 = 1334; +pub const ERROR_MACHINE_LOCKED: i32 = 1271; +pub const ERROR_MAGAZINE_NOT_PRESENT: i32 = 1163; +pub const ERROR_MAPPED_ALIGNMENT: i32 = 1132; +pub const ERROR_MARKED_TO_DISALLOW_WRITES: i32 = 348; +pub const ERROR_MARSHALL_OVERFLOW: i32 = 603; +pub const ERROR_MAX_SESSIONS_REACHED: i32 = 353; +pub const ERROR_MAX_THRDS_REACHED: i32 = 164; +pub const ERROR_MCA_EXCEPTION: i32 = 784; +pub const ERROR_MCA_OCCURED: i32 = 651; +pub const ERROR_MEDIA_CHANGED: i32 = 1110; +pub const ERROR_MEDIA_CHECK: i32 = 679; +pub const ERROR_MEMBERS_PRIMARY_GROUP: i32 = 1374; +pub const ERROR_MEMBER_IN_ALIAS: i32 = 1378; +pub const ERROR_MEMBER_IN_GROUP: i32 = 1320; +pub const ERROR_MEMBER_NOT_IN_ALIAS: i32 = 1377; +pub const ERROR_MEMBER_NOT_IN_GROUP: i32 = 1321; +pub const ERROR_MEMORY_HARDWARE: i32 = 779; +pub const ERROR_MENU_ITEM_NOT_FOUND: i32 = 1456; +pub const ERROR_MESSAGE_SYNC_ONLY: i32 = 1159; +pub const ERROR_META_EXPANSION_TOO_LONG: i32 = 208; +pub const ERROR_MISSING_SYSTEMFILE: i32 = 573; +pub const ERROR_MOD_NOT_FOUND: i32 = 126; +pub const ERROR_MORE_DATA: i32 = 234; +pub const ERROR_MORE_WRITES: i32 = 1120; +pub const ERROR_MOUNT_POINT_NOT_RESOLVED: i32 = 649; +pub const ERROR_MP_PROCESSOR_MISMATCH: i32 = 725; +pub const ERROR_MR_MID_NOT_FOUND: i32 = 317; +pub const ERROR_MULTIPLE_FAULT_VIOLATION: i32 = 640; +pub const ERROR_MUTANT_LIMIT_EXCEEDED: i32 = 587; +pub const ERROR_MUTUAL_AUTH_FAILED: i32 = 1397; +pub const ERROR_NEGATIVE_SEEK: i32 = 131; +pub const ERROR_NESTING_NOT_ALLOWED: i32 = 215; +pub const ERROR_NETLOGON_NOT_STARTED: i32 = 1792; +pub const ERROR_NETNAME_DELETED: i32 = 64; +pub const ERROR_NETWORK_ACCESS_DENIED: i32 = 65; +pub const ERROR_NETWORK_ACCESS_DENIED_EDP: i32 = 354; +pub const ERROR_NETWORK_BUSY: i32 = 54; +pub const ERROR_NETWORK_UNREACHABLE: i32 = 1231; +pub const ERROR_NET_OPEN_FAILED: i32 = 570; +pub const ERROR_NET_WRITE_FAULT: i32 = 88; +pub const ERROR_NOACCESS: i32 = 998; +pub const ERROR_NOINTERFACE: i32 = 632; +pub const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: i32 = 1807; +pub const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT: i32 = 1809; +pub const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT: i32 = 1808; +pub const ERROR_NONE_MAPPED: i32 = 1332; +pub const ERROR_NONPAGED_SYSTEM_RESOURCES: i32 = 1451; +pub const ERROR_NON_ACCOUNT_SID: i32 = 1257; +pub const ERROR_NON_DOMAIN_SID: i32 = 1258; +pub const ERROR_NON_MDICHILD_WINDOW: i32 = 1445; +pub const ERROR_NOTHING_TO_TERMINATE: i32 = 758; +pub const ERROR_NOTIFICATION_GUID_ALREADY_DEFINED: i32 = 309; +pub const ERROR_NOTIFY_CLEANUP: i32 = 745; +pub const ERROR_NOTIFY_ENUM_DIR: i32 = 1022; +pub const ERROR_NOT_ALLOWED_ON_SYSTEM_FILE: i32 = 313; +pub const ERROR_NOT_ALL_ASSIGNED: i32 = 1300; +pub const ERROR_NOT_APPCONTAINER: i32 = 4250; +pub const ERROR_NOT_AUTHENTICATED: i32 = 1244; +pub const ERROR_NOT_A_CLOUD_FILE: i32 = 376; +pub const ERROR_NOT_A_CLOUD_SYNC_ROOT: i32 = 405; +pub const ERROR_NOT_A_DAX_VOLUME: i32 = 420; +pub const ERROR_NOT_A_REPARSE_POINT: i32 = 4390; +pub const ERROR_NOT_CAPABLE: i32 = 775; +pub const ERROR_NOT_CHILD_WINDOW: i32 = 1442; +pub const ERROR_NOT_CONNECTED: i32 = 2250; +pub const ERROR_NOT_CONTAINER: i32 = 1207; +pub const ERROR_NOT_DAX_MAPPABLE: i32 = 421; +pub const ERROR_NOT_DOS_DISK: i32 = 26; +pub const ERROR_NOT_ENOUGH_MEMORY: i32 = 8; +pub const ERROR_NOT_ENOUGH_QUOTA: i32 = 1816; +pub const ERROR_NOT_ENOUGH_SERVER_MEMORY: i32 = 1130; +pub const ERROR_NOT_EXPORT_FORMAT: i32 = 6008; +pub const ERROR_NOT_FOUND: i32 = 1168; +pub const ERROR_NOT_GUI_PROCESS: i32 = 1471; +pub const ERROR_NOT_JOINED: i32 = 136; +pub const ERROR_NOT_LOCKED: i32 = 158; +pub const ERROR_NOT_LOGGED_ON: i32 = 1245; +pub const ERROR_NOT_LOGON_PROCESS: i32 = 1362; +pub const ERROR_NOT_OWNER: i32 = 288; +pub const ERROR_NOT_READY: i32 = 21; +pub const ERROR_NOT_READ_FROM_COPY: i32 = 337; +pub const ERROR_NOT_REDUNDANT_STORAGE: i32 = 333; +pub const ERROR_NOT_REGISTRY_FILE: i32 = 1017; +pub const ERROR_NOT_SAFEBOOT_SERVICE: i32 = 1084; +pub const ERROR_NOT_SAFE_MODE_DRIVER: i32 = 646; +pub const ERROR_NOT_SAME_DEVICE: i32 = 17; +pub const ERROR_NOT_SAME_OBJECT: i32 = 1656; +pub const ERROR_NOT_SUBSTED: i32 = 137; +pub const ERROR_NOT_SUPPORTED: i32 = 50; +pub const ERROR_NOT_SUPPORTED_IN_APPCONTAINER: i32 = 4252; +pub const ERROR_NOT_SUPPORTED_ON_DAX: i32 = 360; +pub const ERROR_NOT_SUPPORTED_ON_SBS: i32 = 1254; +pub const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER: i32 = 8584; +pub const ERROR_NOT_SUPPORTED_WITH_AUDITING: i32 = 499; +pub const ERROR_NOT_SUPPORTED_WITH_BTT: i32 = 429; +pub const ERROR_NOT_SUPPORTED_WITH_BYPASSIO: i32 = 493; +pub const ERROR_NOT_SUPPORTED_WITH_CACHED_HANDLE: i32 = 509; +pub const ERROR_NOT_SUPPORTED_WITH_COMPRESSION: i32 = 496; +pub const ERROR_NOT_SUPPORTED_WITH_DEDUPLICATION: i32 = 498; +pub const ERROR_NOT_SUPPORTED_WITH_ENCRYPTION: i32 = 495; +pub const ERROR_NOT_SUPPORTED_WITH_MONITORING: i32 = 503; +pub const ERROR_NOT_SUPPORTED_WITH_REPLICATION: i32 = 497; +pub const ERROR_NOT_SUPPORTED_WITH_SNAPSHOT: i32 = 504; +pub const ERROR_NOT_SUPPORTED_WITH_VIRTUALIZATION: i32 = 505; +pub const ERROR_NOT_TINY_STREAM: i32 = 598; +pub const ERROR_NO_ACE_CONDITION: i32 = 804; +pub const ERROR_NO_ASSOCIATION: i32 = 1155; +pub const ERROR_NO_BYPASSIO_DRIVER_SUPPORT: i32 = 494; +pub const ERROR_NO_CALLBACK_ACTIVE: i32 = 614; +pub const ERROR_NO_DATA: i32 = 232; +pub const ERROR_NO_DATA_DETECTED: i32 = 1104; +pub const ERROR_NO_EFS: i32 = 6004; +pub const ERROR_NO_EVENT_PAIR: i32 = 580; +pub const ERROR_NO_GUID_TRANSLATION: i32 = 560; +pub const ERROR_NO_IMPERSONATION_TOKEN: i32 = 1309; +pub const ERROR_NO_INHERITANCE: i32 = 1391; +pub const ERROR_NO_LOGON_SERVERS: i32 = 1311; +pub const ERROR_NO_LOG_SPACE: i32 = 1019; +pub const ERROR_NO_MATCH: i32 = 1169; +pub const ERROR_NO_MEDIA_IN_DRIVE: i32 = 1112; +pub const ERROR_NO_MORE_DEVICES: i32 = 1248; +pub const ERROR_NO_MORE_FILES: i32 = 18; +pub const ERROR_NO_MORE_ITEMS: i32 = 259; +pub const ERROR_NO_MORE_MATCHES: i32 = 626; +pub const ERROR_NO_MORE_SEARCH_HANDLES: i32 = 113; +pub const ERROR_NO_MORE_USER_HANDLES: i32 = 1158; +pub const ERROR_NO_NETWORK: i32 = 1222; +pub const ERROR_NO_NET_OR_BAD_PATH: i32 = 1203; +pub const ERROR_NO_NVRAM_RESOURCES: i32 = 1470; +pub const ERROR_NO_PAGEFILE: i32 = 578; +pub const ERROR_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND: i32 = 408; +pub const ERROR_NO_PROC_SLOTS: i32 = 89; +pub const ERROR_NO_PROMOTION_ACTIVE: i32 = 8222; +pub const ERROR_NO_QUOTAS_FOR_ACCOUNT: i32 = 1302; +pub const ERROR_NO_RANGES_PROCESSED: i32 = 312; +pub const ERROR_NO_RECOVERY_POLICY: i32 = 6003; +pub const ERROR_NO_RECOVERY_PROGRAM: i32 = 1082; +pub const ERROR_NO_SCROLLBARS: i32 = 1447; +pub const ERROR_NO_SECRETS: i32 = 8620; +pub const ERROR_NO_SECURITY_ON_OBJECT: i32 = 1350; +pub const ERROR_NO_SHUTDOWN_IN_PROGRESS: i32 = 1116; +pub const ERROR_NO_SIGNAL_SENT: i32 = 205; +pub const ERROR_NO_SITENAME: i32 = 1919; +pub const ERROR_NO_SITE_SETTINGS_OBJECT: i32 = 8619; +pub const ERROR_NO_SPOOL_SPACE: i32 = 62; +pub const ERROR_NO_SUCH_ALIAS: i32 = 1376; +pub const ERROR_NO_SUCH_DEVICE: i32 = 433; +pub const ERROR_NO_SUCH_DOMAIN: i32 = 1355; +pub const ERROR_NO_SUCH_GROUP: i32 = 1319; +pub const ERROR_NO_SUCH_LOGON_SESSION: i32 = 1312; +pub const ERROR_NO_SUCH_MEMBER: i32 = 1387; +pub const ERROR_NO_SUCH_PACKAGE: i32 = 1364; +pub const ERROR_NO_SUCH_PRIVILEGE: i32 = 1313; +pub const ERROR_NO_SUCH_SITE: i32 = 1249; +pub const ERROR_NO_SUCH_USER: i32 = 1317; +pub const ERROR_NO_SYSTEM_MENU: i32 = 1437; +pub const ERROR_NO_SYSTEM_RESOURCES: i32 = 1450; +pub const ERROR_NO_TASK_QUEUE: i32 = 427; +pub const ERROR_NO_TOKEN: i32 = 1008; +pub const ERROR_NO_TRACKING_SERVICE: i32 = 1172; +pub const ERROR_NO_TRUST_LSA_SECRET: i32 = 1786; +pub const ERROR_NO_TRUST_SAM_ACCOUNT: i32 = 1787; +pub const ERROR_NO_UNICODE_TRANSLATION: i32 = 1113; +pub const ERROR_NO_USER_KEYS: i32 = 6006; +pub const ERROR_NO_USER_SESSION_KEY: i32 = 1394; +pub const ERROR_NO_VOLUME_ID: i32 = 1173; +pub const ERROR_NO_VOLUME_LABEL: i32 = 125; +pub const ERROR_NO_WILDCARD_CHARACTERS: i32 = 1417; +pub const ERROR_NO_WORK_DONE: i32 = 235; +pub const ERROR_NO_WRITABLE_DC_FOUND: i32 = 8621; +pub const ERROR_NO_YIELD_PERFORMED: i32 = 721; +pub const ERROR_NTLM_BLOCKED: i32 = 1937; +pub const ERROR_NT_CROSS_ENCRYPTION_REQUIRED: i32 = 1386; +pub const ERROR_NULL_LM_PASSWORD: i32 = 1304; +pub const ERROR_OBJECT_IS_IMMUTABLE: i32 = 4449; +pub const ERROR_OBJECT_NAME_EXISTS: i32 = 698; +pub const ERROR_OBJECT_NOT_EXTERNALLY_BACKED: i32 = 342; +pub const ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED: i32 = 4442; +pub const ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED: i32 = 4440; +pub const ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: i32 = 4443; +pub const ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: i32 = 4441; +pub const ERROR_OFFSET_ALIGNMENT_VIOLATION: i32 = 327; +pub const ERROR_OLD_WIN_VERSION: i32 = 1150; +pub const ERROR_ONLY_IF_CONNECTED: i32 = 1251; +pub const ERROR_OPEN_FAILED: i32 = 110; +pub const ERROR_OPEN_FILES: i32 = 2401; +pub const ERROR_OPERATION_ABORTED: i32 = 995; +pub const ERROR_OPERATION_IN_PROGRESS: i32 = 329; +pub const ERROR_OPLOCK_BREAK_IN_PROGRESS: i32 = 742; +pub const ERROR_OPLOCK_HANDLE_CLOSED: i32 = 803; +pub const ERROR_OPLOCK_NOT_GRANTED: i32 = 300; +pub const ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE: i32 = 800; +pub const ERROR_ORPHAN_NAME_EXHAUSTED: i32 = 799; +pub const ERROR_OUTOFMEMORY: i32 = 14; +pub const ERROR_OUT_OF_PAPER: i32 = 28; +pub const ERROR_OUT_OF_STRUCTURES: i32 = 84; +pub const ERROR_OVERRIDE_NOCHANGES: i32 = 1252; +pub const ERROR_PAGED_SYSTEM_RESOURCES: i32 = 1452; +pub const ERROR_PAGEFILE_CREATE_FAILED: i32 = 576; +pub const ERROR_PAGEFILE_NOT_SUPPORTED: i32 = 491; +pub const ERROR_PAGEFILE_QUOTA: i32 = 1454; +pub const ERROR_PAGEFILE_QUOTA_EXCEEDED: i32 = 567; +pub const ERROR_PAGE_FAULT_COPY_ON_WRITE: i32 = 749; +pub const ERROR_PAGE_FAULT_DEMAND_ZERO: i32 = 748; +pub const ERROR_PAGE_FAULT_GUARD_PAGE: i32 = 750; +pub const ERROR_PAGE_FAULT_PAGING_FILE: i32 = 751; +pub const ERROR_PAGE_FAULT_TRANSITION: i32 = 747; +pub const ERROR_PARAMETER_QUOTA_EXCEEDED: i32 = 1283; +pub const ERROR_PARTIAL_COPY: i32 = 299; +pub const ERROR_PARTITION_FAILURE: i32 = 1105; +pub const ERROR_PARTITION_TERMINATING: i32 = 1184; +pub const ERROR_PASSWORD_CHANGE_REQUIRED: i32 = 1938; +pub const ERROR_PASSWORD_EXPIRED: i32 = 1330; +pub const ERROR_PASSWORD_MUST_CHANGE: i32 = 1907; +pub const ERROR_PASSWORD_RESTRICTION: i32 = 1325; +pub const ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT: i32 = 1651; +pub const ERROR_PATCH_NO_SEQUENCE: i32 = 1648; +pub const ERROR_PATCH_PACKAGE_INVALID: i32 = 1636; +pub const ERROR_PATCH_PACKAGE_OPEN_FAILED: i32 = 1635; +pub const ERROR_PATCH_PACKAGE_REJECTED: i32 = 1643; +pub const ERROR_PATCH_PACKAGE_UNSUPPORTED: i32 = 1637; +pub const ERROR_PATCH_REMOVAL_DISALLOWED: i32 = 1649; +pub const ERROR_PATCH_REMOVAL_UNSUPPORTED: i32 = 1646; +pub const ERROR_PATCH_TARGET_NOT_FOUND: i32 = 1642; +pub const ERROR_PATH_BUSY: i32 = 148; +pub const ERROR_PATH_NOT_FOUND: i32 = 3; +pub const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED: i32 = 1932; +pub const ERROR_PIPE_BUSY: i32 = 231; +pub const ERROR_PIPE_CONNECTED: i32 = 535; +pub const ERROR_PIPE_LISTENING: i32 = 536; +pub const ERROR_PIPE_LOCAL: i32 = 229; +pub const ERROR_PIPE_NOT_CONNECTED: i32 = 233; +pub const ERROR_PKINIT_FAILURE: i32 = 1263; +pub const ERROR_PLUGPLAY_QUERY_VETOED: i32 = 683; +pub const ERROR_PNP_BAD_MPS_TABLE: i32 = 671; +pub const ERROR_PNP_INVALID_ID: i32 = 674; +pub const ERROR_PNP_IRQ_TRANSLATION_FAILED: i32 = 673; +pub const ERROR_PNP_QUERY_REMOVE_DEVICE_TIMEOUT: i32 = 480; +pub const ERROR_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT: i32 = 481; +pub const ERROR_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT: i32 = 482; +pub const ERROR_PNP_REBOOT_REQUIRED: i32 = 638; +pub const ERROR_PNP_RESTART_ENUMERATION: i32 = 636; +pub const ERROR_PNP_TRANSLATION_FAILED: i32 = 672; +pub const ERROR_POINT_NOT_FOUND: i32 = 1171; +pub const ERROR_POLICY_OBJECT_NOT_FOUND: i32 = 8219; +pub const ERROR_POLICY_ONLY_IN_DS: i32 = 8220; +pub const ERROR_POPUP_ALREADY_ACTIVE: i32 = 1446; +pub const ERROR_PORT_MESSAGE_TOO_LONG: i32 = 546; +pub const ERROR_PORT_NOT_SET: i32 = 642; +pub const ERROR_PORT_UNREACHABLE: i32 = 1234; +pub const ERROR_POSSIBLE_DEADLOCK: i32 = 1131; +pub const ERROR_POTENTIAL_FILE_FOUND: i32 = 1180; +pub const ERROR_PREDEFINED_HANDLE: i32 = 714; +pub const ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED: i32 = 746; +pub const ERROR_PRINTER_ALREADY_EXISTS: i32 = 1802; +pub const ERROR_PRINTER_DELETED: i32 = 1905; +pub const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED: i32 = 1795; +pub const ERROR_PRINTQ_FULL: i32 = 61; +pub const ERROR_PRINT_CANCELLED: i32 = 63; +pub const ERROR_PRIVATE_DIALOG_INDEX: i32 = 1415; +pub const ERROR_PRIVILEGE_NOT_HELD: i32 = 1314; +pub const ERROR_PROCESS_ABORTED: i32 = 1067; +pub const ERROR_PROCESS_IN_JOB: i32 = 760; +pub const ERROR_PROCESS_IS_PROTECTED: i32 = 1293; +pub const ERROR_PROCESS_MODE_ALREADY_BACKGROUND: i32 = 402; +pub const ERROR_PROCESS_MODE_NOT_BACKGROUND: i32 = 403; +pub const ERROR_PROCESS_NOT_IN_JOB: i32 = 759; +pub const ERROR_PROC_NOT_FOUND: i32 = 127; +pub const ERROR_PRODUCT_UNINSTALLED: i32 = 1614; +pub const ERROR_PRODUCT_VERSION: i32 = 1638; +pub const ERROR_PROFILING_AT_LIMIT: i32 = 553; +pub const ERROR_PROFILING_NOT_STARTED: i32 = 550; +pub const ERROR_PROFILING_NOT_STOPPED: i32 = 551; +pub const ERROR_PROMOTION_ACTIVE: i32 = 8221; +pub const ERROR_PROTOCOL_UNREACHABLE: i32 = 1233; +pub const ERROR_PWD_HISTORY_CONFLICT: i32 = 617; +pub const ERROR_PWD_TOO_LONG: i32 = 657; +pub const ERROR_PWD_TOO_RECENT: i32 = 616; +pub const ERROR_PWD_TOO_SHORT: i32 = 615; +pub const ERROR_QUOTA_ACTIVITY: i32 = 810; +pub const ERROR_QUOTA_LIST_INCONSISTENT: i32 = 621; +pub const ERROR_RANGE_LIST_CONFLICT: i32 = 627; +pub const ERROR_RANGE_NOT_FOUND: i32 = 644; +pub const ERROR_READ_FAULT: i32 = 30; +pub const ERROR_RECEIVE_EXPEDITED: i32 = 708; +pub const ERROR_RECEIVE_PARTIAL: i32 = 707; +pub const ERROR_RECEIVE_PARTIAL_EXPEDITED: i32 = 709; +pub const ERROR_RECOVERY_FAILURE: i32 = 1279; +pub const ERROR_REDIRECTOR_HAS_OPEN_HANDLES: i32 = 1794; +pub const ERROR_REDIR_PAUSED: i32 = 72; +pub const ERROR_REGISTRY_CORRUPT: i32 = 1015; +pub const ERROR_REGISTRY_HIVE_RECOVERED: i32 = 685; +pub const ERROR_REGISTRY_IO_FAILED: i32 = 1016; +pub const ERROR_REGISTRY_QUOTA_LIMIT: i32 = 613; +pub const ERROR_REGISTRY_RECOVERED: i32 = 1014; +pub const ERROR_REG_NAT_CONSUMPTION: i32 = 1261; +pub const ERROR_RELOC_CHAIN_XEEDS_SEGLIM: i32 = 201; +pub const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED: i32 = 1936; +pub const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED: i32 = 1220; +pub const ERROR_REMOTE_STORAGE_MEDIA_ERROR: i32 = 4352; +pub const ERROR_REMOTE_STORAGE_NOT_ACTIVE: i32 = 4351; +pub const ERROR_REM_NOT_LIST: i32 = 51; +pub const ERROR_REPARSE: i32 = 741; +pub const ERROR_REPARSE_ATTRIBUTE_CONFLICT: i32 = 4391; +pub const ERROR_REPARSE_OBJECT: i32 = 755; +pub const ERROR_REPARSE_POINT_ENCOUNTERED: i32 = 4395; +pub const ERROR_REPARSE_TAG_INVALID: i32 = 4393; +pub const ERROR_REPARSE_TAG_MISMATCH: i32 = 4394; +pub const ERROR_REPLY_MESSAGE_MISMATCH: i32 = 595; +pub const ERROR_REQUEST_ABORTED: i32 = 1235; +pub const ERROR_REQUEST_OUT_OF_SEQUENCE: i32 = 776; +pub const ERROR_REQUEST_PAUSED: i32 = 3050; +pub const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION: i32 = 1459; +pub const ERROR_REQ_NOT_ACCEP: i32 = 71; +pub const ERROR_RESIDENT_FILE_NOT_SUPPORTED: i32 = 334; +pub const ERROR_RESOURCE_CALL_TIMED_OUT: i32 = 5910; +pub const ERROR_RESOURCE_DATA_NOT_FOUND: i32 = 1812; +pub const ERROR_RESOURCE_LANG_NOT_FOUND: i32 = 1815; +pub const ERROR_RESOURCE_NAME_NOT_FOUND: i32 = 1814; +pub const ERROR_RESOURCE_REQUIREMENTS_CHANGED: i32 = 756; +pub const ERROR_RESOURCE_TYPE_NOT_FOUND: i32 = 1813; +pub const ERROR_RESTART_APPLICATION: i32 = 1467; +pub const ERROR_RESUME_HIBERNATION: i32 = 727; +pub const ERROR_RETRY: i32 = 1237; +pub const ERROR_RETURN_ADDRESS_HIJACK_ATTEMPT: i32 = 1662; +pub const ERROR_REVISION_MISMATCH: i32 = 1306; +pub const ERROR_RING2SEG_MUST_BE_MOVABLE: i32 = 200; +pub const ERROR_RING2_STACK_IN_USE: i32 = 207; +pub const ERROR_RMODE_APP: i32 = 1153; +pub const ERROR_ROWSNOTRELEASED: i32 = 772; +pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: i32 = 15403; +pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: i32 = 15402; +pub const ERROR_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED: i32 = 410; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET: i32 = 411; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE: i32 = 412; +pub const ERROR_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER: i32 = 413; +pub const ERROR_RXACT_COMMITTED: i32 = 744; +pub const ERROR_RXACT_COMMIT_FAILURE: i32 = 1370; +pub const ERROR_RXACT_COMMIT_NECESSARY: i32 = 678; +pub const ERROR_RXACT_INVALID_STATE: i32 = 1369; +pub const ERROR_RXACT_STATE_CREATED: i32 = 701; +pub const ERROR_SAME_DRIVE: i32 = 143; +pub const ERROR_SAM_INIT_FAILURE: i32 = 8541; +pub const ERROR_SCOPE_NOT_FOUND: i32 = 318; +pub const ERROR_SCREEN_ALREADY_LOCKED: i32 = 1440; +pub const ERROR_SCRUB_DATA_DISABLED: i32 = 332; +pub const ERROR_SECRET_TOO_LONG: i32 = 1382; +pub const ERROR_SECTION_DIRECT_MAP_ONLY: i32 = 819; +pub const ERROR_SECTOR_NOT_FOUND: i32 = 27; +pub const ERROR_SECURITY_DENIES_OPERATION: i32 = 447; +pub const ERROR_SECURITY_STREAM_IS_INCONSISTENT: i32 = 306; +pub const ERROR_SEEK: i32 = 25; +pub const ERROR_SEEK_ON_DEVICE: i32 = 132; +pub const ERROR_SEGMENT_NOTIFICATION: i32 = 702; +pub const ERROR_SEM_IS_SET: i32 = 102; +pub const ERROR_SEM_NOT_FOUND: i32 = 187; +pub const ERROR_SEM_OWNER_DIED: i32 = 105; +pub const ERROR_SEM_TIMEOUT: i32 = 121; +pub const ERROR_SEM_USER_LIMIT: i32 = 106; +pub const ERROR_SERIAL_NO_DEVICE: i32 = 1118; +pub const ERROR_SERVER_DISABLED: i32 = 1341; +pub const ERROR_SERVER_HAS_OPEN_HANDLES: i32 = 1811; +pub const ERROR_SERVER_NOT_DISABLED: i32 = 1342; +pub const ERROR_SERVER_SHUTDOWN_IN_PROGRESS: i32 = 1255; +pub const ERROR_SERVER_SID_MISMATCH: i32 = 628; +pub const ERROR_SERVER_TRANSPORT_CONFLICT: i32 = 816; +pub const ERROR_SERVICE_ALREADY_RUNNING: i32 = 1056; +pub const ERROR_SERVICE_CANNOT_ACCEPT_CTRL: i32 = 1061; +pub const ERROR_SERVICE_DATABASE_LOCKED: i32 = 1055; +pub const ERROR_SERVICE_DEPENDENCY_DELETED: i32 = 1075; +pub const ERROR_SERVICE_DEPENDENCY_FAIL: i32 = 1068; +pub const ERROR_SERVICE_DISABLED: i32 = 1058; +pub const ERROR_SERVICE_DOES_NOT_EXIST: i32 = 1060; +pub const ERROR_SERVICE_EXISTS: i32 = 1073; +pub const ERROR_SERVICE_LOGON_FAILED: i32 = 1069; +pub const ERROR_SERVICE_MARKED_FOR_DELETE: i32 = 1072; +pub const ERROR_SERVICE_NEVER_STARTED: i32 = 1077; +pub const ERROR_SERVICE_NOTIFICATION: i32 = 716; +pub const ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: i32 = 1294; +pub const ERROR_SERVICE_NOT_ACTIVE: i32 = 1062; +pub const ERROR_SERVICE_NOT_FOUND: i32 = 1243; +pub const ERROR_SERVICE_NOT_IN_EXE: i32 = 1083; +pub const ERROR_SERVICE_NO_THREAD: i32 = 1054; +pub const ERROR_SERVICE_REQUEST_TIMEOUT: i32 = 1053; +pub const ERROR_SERVICE_SPECIFIC_ERROR: i32 = 1066; +pub const ERROR_SERVICE_START_HANG: i32 = 1070; +pub const ERROR_SESSION_CREDENTIAL_CONFLICT: i32 = 1219; +pub const ERROR_SESSION_KEY_TOO_SHORT: i32 = 501; +pub const ERROR_SETCOUNT_ON_BAD_LB: i32 = 1433; +pub const ERROR_SETMARK_DETECTED: i32 = 1103; +pub const ERROR_SET_CONTEXT_DENIED: i32 = 1660; +pub const ERROR_SET_NOT_FOUND: i32 = 1170; +pub const ERROR_SET_POWER_STATE_FAILED: i32 = 1141; +pub const ERROR_SET_POWER_STATE_VETOED: i32 = 1140; +pub const ERROR_SHARED_POLICY: i32 = 8218; +pub const ERROR_SHARING_BUFFER_EXCEEDED: i32 = 36; +pub const ERROR_SHARING_PAUSED: i32 = 70; +pub const ERROR_SHARING_VIOLATION: i32 = 32; +pub const ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: i32 = 305; +pub const ERROR_SHUTDOWN_DISKS_NOT_IN_MAINTENANCE_MODE: i32 = 1192; +pub const ERROR_SHUTDOWN_IN_PROGRESS: i32 = 1115; +pub const ERROR_SHUTDOWN_IS_SCHEDULED: i32 = 1190; +pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: i32 = 1191; +pub const ERROR_SIGNAL_PENDING: i32 = 162; +pub const ERROR_SIGNAL_REFUSED: i32 = 156; +pub const ERROR_SINGLE_INSTANCE_APP: i32 = 1152; +pub const ERROR_SMARTCARD_SUBSYSTEM_FAILURE: i32 = 1264; +pub const ERROR_SMB1_NOT_AVAILABLE: i32 = 384; +pub const ERROR_SMB_GUEST_LOGON_BLOCKED: i32 = 1272; +pub const ERROR_SMR_GARBAGE_COLLECTION_REQUIRED: i32 = 4445; +pub const ERROR_SOME_NOT_MAPPED: i32 = 1301; +pub const ERROR_SOURCE_ELEMENT_EMPTY: i32 = 1160; +pub const ERROR_SPARSE_FILE_NOT_SUPPORTED: i32 = 490; +pub const ERROR_SPECIAL_ACCOUNT: i32 = 1371; +pub const ERROR_SPECIAL_GROUP: i32 = 1372; +pub const ERROR_SPECIAL_USER: i32 = 1373; +pub const ERROR_SRC_SRV_DLL_LOAD_FAILED: i32 = 428; +pub const ERROR_STACK_BUFFER_OVERRUN: i32 = 1282; +pub const ERROR_STACK_OVERFLOW: i32 = 1001; +pub const ERROR_STACK_OVERFLOW_READ: i32 = 599; +pub const ERROR_STOPPED_ON_SYMLINK: i32 = 681; +pub const ERROR_STORAGE_LOST_DATA_PERSISTENCE: i32 = 368; +pub const ERROR_STORAGE_RESERVE_ALREADY_EXISTS: i32 = 418; +pub const ERROR_STORAGE_RESERVE_DOES_NOT_EXIST: i32 = 417; +pub const ERROR_STORAGE_RESERVE_ID_INVALID: i32 = 416; +pub const ERROR_STORAGE_RESERVE_NOT_EMPTY: i32 = 419; +pub const ERROR_STORAGE_STACK_ACCESS_DENIED: i32 = 472; +pub const ERROR_STORAGE_TOPOLOGY_ID_MISMATCH: i32 = 345; +pub const ERROR_STRICT_CFG_VIOLATION: i32 = 1657; +pub const ERROR_SUBST_TO_JOIN: i32 = 141; +pub const ERROR_SUBST_TO_SUBST: i32 = 139; +pub const ERROR_SUCCESS: i32 = 0; +pub const ERROR_SUCCESS_REBOOT_INITIATED: i32 = 1641; +pub const ERROR_SWAPERROR: i32 = 999; +pub const ERROR_SYMLINK_CLASS_DISABLED: i32 = 1463; +pub const ERROR_SYMLINK_NOT_SUPPORTED: i32 = 1464; +pub const ERROR_SYNCHRONIZATION_REQUIRED: i32 = 569; +pub const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED: i32 = 1274; +pub const ERROR_SYSTEM_HIVE_TOO_LARGE: i32 = 653; +pub const ERROR_SYSTEM_IMAGE_BAD_SIGNATURE: i32 = 637; +pub const ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: i32 = 783; +pub const ERROR_SYSTEM_POWERSTATE_TRANSITION: i32 = 782; +pub const ERROR_SYSTEM_PROCESS_TERMINATED: i32 = 591; +pub const ERROR_SYSTEM_SHUTDOWN: i32 = 641; +pub const ERROR_SYSTEM_TRACE: i32 = 150; +pub const ERROR_THREAD_1_INACTIVE: i32 = 210; +pub const ERROR_THREAD_ALREADY_IN_TASK: i32 = 1552; +pub const ERROR_THREAD_MODE_ALREADY_BACKGROUND: i32 = 400; +pub const ERROR_THREAD_MODE_NOT_BACKGROUND: i32 = 401; +pub const ERROR_THREAD_NOT_IN_PROCESS: i32 = 566; +pub const ERROR_THREAD_WAS_SUSPENDED: i32 = 699; +pub const ERROR_TIMEOUT: i32 = 1460; +pub const ERROR_TIMER_NOT_CANCELED: i32 = 541; +pub const ERROR_TIMER_RESOLUTION_NOT_SET: i32 = 607; +pub const ERROR_TIMER_RESUME_IGNORED: i32 = 722; +pub const ERROR_TIME_SENSITIVE_THREAD: i32 = 422; +pub const ERROR_TIME_SKEW: i32 = 1398; +pub const ERROR_TLW_WITH_WSCHILD: i32 = 1406; +pub const ERROR_TOKEN_ALREADY_IN_USE: i32 = 1375; +pub const ERROR_TOO_MANY_CMDS: i32 = 56; +pub const ERROR_TOO_MANY_CONTEXT_IDS: i32 = 1384; +pub const ERROR_TOO_MANY_DESCRIPTORS: i32 = 331; +pub const ERROR_TOO_MANY_LINKS: i32 = 1142; +pub const ERROR_TOO_MANY_LUIDS_REQUESTED: i32 = 1333; +pub const ERROR_TOO_MANY_MODULES: i32 = 214; +pub const ERROR_TOO_MANY_MUXWAITERS: i32 = 152; +pub const ERROR_TOO_MANY_NAMES: i32 = 68; +pub const ERROR_TOO_MANY_OPEN_FILES: i32 = 4; +pub const ERROR_TOO_MANY_POSTS: i32 = 298; +pub const ERROR_TOO_MANY_SECRETS: i32 = 1381; +pub const ERROR_TOO_MANY_SEMAPHORES: i32 = 100; +pub const ERROR_TOO_MANY_SEM_REQUESTS: i32 = 103; +pub const ERROR_TOO_MANY_SESS: i32 = 69; +pub const ERROR_TOO_MANY_SIDS: i32 = 1389; +pub const ERROR_TOO_MANY_TCBS: i32 = 155; +pub const ERROR_TOO_MANY_THREADS: i32 = 565; +pub const ERROR_TRANSLATION_COMPLETE: i32 = 757; +pub const ERROR_TRUSTED_DOMAIN_FAILURE: i32 = 1788; +pub const ERROR_TRUSTED_RELATIONSHIP_FAILURE: i32 = 1789; +pub const ERROR_TRUST_FAILURE: i32 = 1790; +pub const ERROR_UNABLE_TO_LOCK_MEDIA: i32 = 1108; +pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT: i32 = 1176; +pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2: i32 = 1177; +pub const ERROR_UNABLE_TO_REMOVE_REPLACED: i32 = 1175; +pub const ERROR_UNABLE_TO_UNLOAD_MEDIA: i32 = 1109; +pub const ERROR_UNDEFINED_CHARACTER: i32 = 583; +pub const ERROR_UNDEFINED_SCOPE: i32 = 319; +pub const ERROR_UNEXPECTED_MM_CREATE_ERR: i32 = 556; +pub const ERROR_UNEXPECTED_MM_EXTEND_ERR: i32 = 558; +pub const ERROR_UNEXPECTED_MM_MAP_ERROR: i32 = 557; +pub const ERROR_UNEXPECTED_NTCACHEMANAGER_ERROR: i32 = 443; +pub const ERROR_UNEXP_NET_ERR: i32 = 59; +pub const ERROR_UNHANDLED_EXCEPTION: i32 = 574; +pub const ERROR_UNIDENTIFIED_ERROR: i32 = 1287; +pub const ERROR_UNKNOWN_COMPONENT: i32 = 1607; +pub const ERROR_UNKNOWN_FEATURE: i32 = 1606; +pub const ERROR_UNKNOWN_PATCH: i32 = 1647; +pub const ERROR_UNKNOWN_PORT: i32 = 1796; +pub const ERROR_UNKNOWN_PRINTER_DRIVER: i32 = 1797; +pub const ERROR_UNKNOWN_PRINTPROCESSOR: i32 = 1798; +pub const ERROR_UNKNOWN_PRODUCT: i32 = 1605; +pub const ERROR_UNKNOWN_PROPERTY: i32 = 1608; +pub const ERROR_UNKNOWN_REVISION: i32 = 1305; +pub const ERROR_UNRECOGNIZED_MEDIA: i32 = 1785; +pub const ERROR_UNRECOGNIZED_VOLUME: i32 = 1005; +pub const ERROR_UNSATISFIED_DEPENDENCIES: i32 = 441; +pub const ERROR_UNSUPPORTED_COMPRESSION: i32 = 618; +pub const ERROR_UNSUPPORTED_TYPE: i32 = 1630; +pub const ERROR_UNTRUSTED_MOUNT_POINT: i32 = 448; +pub const ERROR_UNWIND: i32 = 542; +pub const ERROR_UNWIND_CONSOLIDATE: i32 = 684; +pub const ERROR_USER_APC: i32 = 737; +pub const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED: i32 = 1934; +pub const ERROR_USER_EXISTS: i32 = 1316; +pub const ERROR_USER_MAPPED_FILE: i32 = 1224; +pub const ERROR_USER_PROFILE_LOAD: i32 = 500; +pub const ERROR_VALIDATE_CONTINUE: i32 = 625; +pub const ERROR_VC_DISCONNECTED: i32 = 240; +pub const ERROR_VDM_DISALLOWED: i32 = 1286; +pub const ERROR_VDM_HARD_ERROR: i32 = 593; +pub const ERROR_VERIFIER_STOP: i32 = 537; +pub const ERROR_VERSION_PARSE_ERROR: i32 = 777; +pub const ERROR_VIRUS_DELETED: i32 = 226; +pub const ERROR_VIRUS_INFECTED: i32 = 225; +pub const ERROR_VOLSNAP_HIBERNATE_READY: i32 = 761; +pub const ERROR_VOLSNAP_PREPARE_HIBERNATE: i32 = 655; +pub const ERROR_VOLUME_MOUNTED: i32 = 743; +pub const ERROR_VOLUME_NOT_CLUSTER_ALIGNED: i32 = 407; +pub const ERROR_VOLUME_NOT_SIS_ENABLED: i32 = 4500; +pub const ERROR_VOLUME_NOT_SUPPORTED: i32 = 492; +pub const ERROR_VOLUME_NOT_SUPPORT_EFS: i32 = 6014; +pub const ERROR_VOLUME_WRITE_ACCESS_DENIED: i32 = 508; +pub const ERROR_WAIT_1: i32 = 731; +pub const ERROR_WAIT_2: i32 = 732; +pub const ERROR_WAIT_3: i32 = 733; +pub const ERROR_WAIT_63: i32 = 734; +pub const ERROR_WAIT_FOR_OPLOCK: i32 = 765; +pub const ERROR_WAIT_NO_CHILDREN: i32 = 128; +pub const ERROR_WAKE_SYSTEM: i32 = 730; +pub const ERROR_WAKE_SYSTEM_DEBUGGER: i32 = 675; +pub const ERROR_WAS_LOCKED: i32 = 717; +pub const ERROR_WAS_UNLOCKED: i32 = 715; +pub const ERROR_WEAK_WHFBKEY_BLOCKED: i32 = 8651; +pub const ERROR_WINDOW_NOT_COMBOBOX: i32 = 1423; +pub const ERROR_WINDOW_NOT_DIALOG: i32 = 1420; +pub const ERROR_WINDOW_OF_OTHER_THREAD: i32 = 1408; +pub const ERROR_WIP_ENCRYPTION_FAILED: i32 = 6023; +pub const ERROR_WOF_FILE_RESOURCE_TABLE_CORRUPT: i32 = 4448; +pub const ERROR_WOF_WIM_HEADER_CORRUPT: i32 = 4446; +pub const ERROR_WOF_WIM_RESOURCE_TABLE_CORRUPT: i32 = 4447; +pub const ERROR_WORKING_SET_QUOTA: i32 = 1453; +pub const ERROR_WOW_ASSERTION: i32 = 670; +pub const ERROR_WRITE_FAULT: i32 = 29; +pub const ERROR_WRITE_PROTECT: i32 = 19; +pub const ERROR_WRONG_COMPARTMENT: i32 = 1468; +pub const ERROR_WRONG_DISK: i32 = 34; +pub const ERROR_WRONG_EFS: i32 = 6005; +pub const ERROR_WRONG_PASSWORD: i32 = 1323; +pub const ERROR_WRONG_TARGET_NAME: i32 = 1396; +pub const ERROR_WX86_ERROR: i32 = 540; +pub const ERROR_WX86_WARNING: i32 = 539; +pub const ERROR_XMLDSIG_ERROR: i32 = 1466; +pub const ERROR_XML_PARSE_ERROR: i32 = 1465; pub type EXCEPTION_DISPOSITION = i32; -pub const EXCEPTION_MAXIMUM_PARAMETERS: u32 = 15u32; +pub const EXCEPTION_MAXIMUM_PARAMETERS: i32 = 15; #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct EXCEPTION_POINTERS { - pub ExceptionRecord: *mut EXCEPTION_RECORD, - pub ContextRecord: *mut CONTEXT, -} -impl Default for EXCEPTION_POINTERS { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } + pub ExceptionRecord: PEXCEPTION_RECORD, + pub ContextRecord: PCONTEXT, } #[repr(C)] #[derive(Clone, Copy)] pub struct EXCEPTION_RECORD { - pub ExceptionCode: NTSTATUS, + pub ExceptionCode: u32, pub ExceptionFlags: u32, - pub ExceptionRecord: *mut EXCEPTION_RECORD, + pub ExceptionRecord: *mut Self, pub ExceptionAddress: *mut core::ffi::c_void, pub NumberParameters: u32, pub ExceptionInformation: [usize; 15], @@ -2389,73 +2430,61 @@ impl Default for EXCEPTION_RECORD { unsafe { core::mem::zeroed() } } } -pub const EXCEPTION_STACK_OVERFLOW: NTSTATUS = 0xC00000FD_u32 as _; -pub const EXTENDED_STARTUPINFO_PRESENT: PROCESS_CREATION_FLAGS = 524288u32; +pub const EXCEPTION_STACK_OVERFLOW: i32 = -1073741571; +pub const EXTENDED_STARTUPINFO_PRESENT: i32 = 524288; pub const E_NOTIMPL: HRESULT = 0x80004001_u32 as _; -pub const ExceptionCollidedUnwind: EXCEPTION_DISPOSITION = 3i32; -pub const ExceptionContinueExecution: EXCEPTION_DISPOSITION = 0i32; -pub const ExceptionContinueSearch: EXCEPTION_DISPOSITION = 1i32; -pub const ExceptionNestedException: EXCEPTION_DISPOSITION = 2i32; -pub type FACILITY_CODE = u32; -pub const FACILITY_NT_BIT: FACILITY_CODE = 268435456u32; -pub const FALSE: BOOL = 0i32; +pub const ExceptionCollidedUnwind: EXCEPTION_DISPOSITION = 3; +pub const ExceptionContinueExecution: EXCEPTION_DISPOSITION = 0; +pub const ExceptionContinueSearch: EXCEPTION_DISPOSITION = 1; +pub const ExceptionNestedException: EXCEPTION_DISPOSITION = 2; +pub const FACILITY_NT_BIT: i32 = 268435456; +pub const FALSE: i32 = 0; pub type FARPROC = Option isize>; -pub const FAST_FAIL_FATAL_APP_EXIT: u32 = 7u32; -#[repr(C)] -#[derive(Clone, Copy)] -pub struct FD_SET { - pub fd_count: u32, - pub fd_array: [SOCKET; 64], -} -impl Default for FD_SET { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} +pub const FAST_FAIL_FATAL_APP_EXIT: i32 = 7; +pub type FD_SET = fd_set; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILETIME { pub dwLowDateTime: u32, pub dwHighDateTime: u32, } -pub type FILE_ACCESS_RIGHTS = u32; -pub const FILE_ADD_FILE: FILE_ACCESS_RIGHTS = 2u32; -pub const FILE_ADD_SUBDIRECTORY: FILE_ACCESS_RIGHTS = 4u32; +pub const FILE_ADD_FILE: i32 = 2; +pub const FILE_ADD_SUBDIRECTORY: i32 = 4; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_ALLOCATION_INFO { pub AllocationSize: i64, } -pub const FILE_ALL_ACCESS: FILE_ACCESS_RIGHTS = 2032127u32; -pub const FILE_APPEND_DATA: FILE_ACCESS_RIGHTS = 4u32; -pub const FILE_ATTRIBUTE_ARCHIVE: FILE_FLAGS_AND_ATTRIBUTES = 32u32; -pub const FILE_ATTRIBUTE_COMPRESSED: FILE_FLAGS_AND_ATTRIBUTES = 2048u32; -pub const FILE_ATTRIBUTE_DEVICE: FILE_FLAGS_AND_ATTRIBUTES = 64u32; -pub const FILE_ATTRIBUTE_DIRECTORY: FILE_FLAGS_AND_ATTRIBUTES = 16u32; -pub const FILE_ATTRIBUTE_EA: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; -pub const FILE_ATTRIBUTE_ENCRYPTED: FILE_FLAGS_AND_ATTRIBUTES = 16384u32; -pub const FILE_ATTRIBUTE_HIDDEN: FILE_FLAGS_AND_ATTRIBUTES = 2u32; -pub const FILE_ATTRIBUTE_INTEGRITY_STREAM: FILE_FLAGS_AND_ATTRIBUTES = 32768u32; -pub const FILE_ATTRIBUTE_NORMAL: FILE_FLAGS_AND_ATTRIBUTES = 128u32; -pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: FILE_FLAGS_AND_ATTRIBUTES = 8192u32; -pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: FILE_FLAGS_AND_ATTRIBUTES = 131072u32; -pub const FILE_ATTRIBUTE_OFFLINE: FILE_FLAGS_AND_ATTRIBUTES = 4096u32; -pub const FILE_ATTRIBUTE_PINNED: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; -pub const FILE_ATTRIBUTE_READONLY: FILE_FLAGS_AND_ATTRIBUTES = 1u32; -pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS: FILE_FLAGS_AND_ATTRIBUTES = 4194304u32; -pub const FILE_ATTRIBUTE_RECALL_ON_OPEN: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; -pub const FILE_ATTRIBUTE_REPARSE_POINT: FILE_FLAGS_AND_ATTRIBUTES = 1024u32; -pub const FILE_ATTRIBUTE_SPARSE_FILE: FILE_FLAGS_AND_ATTRIBUTES = 512u32; -pub const FILE_ATTRIBUTE_SYSTEM: FILE_FLAGS_AND_ATTRIBUTES = 4u32; +pub const FILE_ALL_ACCESS: i32 = 2032127; +pub const FILE_APPEND_DATA: i32 = 4; +pub const FILE_ATTRIBUTE_ARCHIVE: i32 = 32; +pub const FILE_ATTRIBUTE_COMPRESSED: i32 = 2048; +pub const FILE_ATTRIBUTE_DEVICE: i32 = 64; +pub const FILE_ATTRIBUTE_DIRECTORY: i32 = 16; +pub const FILE_ATTRIBUTE_EA: i32 = 262144; +pub const FILE_ATTRIBUTE_ENCRYPTED: i32 = 16384; +pub const FILE_ATTRIBUTE_HIDDEN: i32 = 2; +pub const FILE_ATTRIBUTE_INTEGRITY_STREAM: i32 = 32768; +pub const FILE_ATTRIBUTE_NORMAL: i32 = 128; +pub const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED: i32 = 8192; +pub const FILE_ATTRIBUTE_NO_SCRUB_DATA: i32 = 131072; +pub const FILE_ATTRIBUTE_OFFLINE: i32 = 4096; +pub const FILE_ATTRIBUTE_PINNED: i32 = 524288; +pub const FILE_ATTRIBUTE_READONLY: i32 = 1; +pub const FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS: i32 = 4194304; +pub const FILE_ATTRIBUTE_RECALL_ON_OPEN: i32 = 262144; +pub const FILE_ATTRIBUTE_REPARSE_POINT: i32 = 1024; +pub const FILE_ATTRIBUTE_SPARSE_FILE: i32 = 512; +pub const FILE_ATTRIBUTE_SYSTEM: i32 = 4; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_ATTRIBUTE_TAG_INFO { pub FileAttributes: u32, pub ReparseTag: u32, } -pub const FILE_ATTRIBUTE_TEMPORARY: FILE_FLAGS_AND_ATTRIBUTES = 256u32; -pub const FILE_ATTRIBUTE_UNPINNED: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; -pub const FILE_ATTRIBUTE_VIRTUAL: FILE_FLAGS_AND_ATTRIBUTES = 65536u32; +pub const FILE_ATTRIBUTE_TEMPORARY: i32 = 256; +pub const FILE_ATTRIBUTE_UNPINNED: i32 = 1048576; +pub const FILE_ATTRIBUTE_VIRTUAL: i32 = 65536; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_BASIC_INFO { @@ -2465,24 +2494,23 @@ pub struct FILE_BASIC_INFO { pub ChangeTime: i64, pub FileAttributes: u32, } -pub const FILE_BEGIN: SET_FILE_POINTER_MOVE_METHOD = 0u32; -pub const FILE_COMPLETE_IF_OPLOCKED: NTCREATEFILE_CREATE_OPTIONS = 256u32; -pub const FILE_CONTAINS_EXTENDED_CREATE_INFORMATION: NTCREATEFILE_CREATE_OPTIONS = 268435456u32; -pub const FILE_CREATE: NTCREATEFILE_CREATE_DISPOSITION = 2u32; -pub const FILE_CREATE_PIPE_INSTANCE: FILE_ACCESS_RIGHTS = 4u32; -pub const FILE_CREATE_TREE_CONNECTION: NTCREATEFILE_CREATE_OPTIONS = 128u32; -pub type FILE_CREATION_DISPOSITION = u32; -pub const FILE_CURRENT: SET_FILE_POINTER_MOVE_METHOD = 1u32; -pub const FILE_DELETE_CHILD: FILE_ACCESS_RIGHTS = 64u32; -pub const FILE_DELETE_ON_CLOSE: NTCREATEFILE_CREATE_OPTIONS = 4096u32; -pub const FILE_DIRECTORY_FILE: NTCREATEFILE_CREATE_OPTIONS = 1u32; -pub const FILE_DISALLOW_EXCLUSIVE: NTCREATEFILE_CREATE_OPTIONS = 131072u32; -pub const FILE_DISPOSITION_FLAG_DELETE: FILE_DISPOSITION_INFO_EX_FLAGS = 1u32; -pub const FILE_DISPOSITION_FLAG_DO_NOT_DELETE: FILE_DISPOSITION_INFO_EX_FLAGS = 0u32; -pub const FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK: FILE_DISPOSITION_INFO_EX_FLAGS = 4u32; -pub const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE: FILE_DISPOSITION_INFO_EX_FLAGS = 16u32; -pub const FILE_DISPOSITION_FLAG_ON_CLOSE: FILE_DISPOSITION_INFO_EX_FLAGS = 8u32; -pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: FILE_DISPOSITION_INFO_EX_FLAGS = 2u32; +pub const FILE_BEGIN: i32 = 0; +pub const FILE_COMPLETE_IF_OPLOCKED: i32 = 256; +pub const FILE_CONTAINS_EXTENDED_CREATE_INFORMATION: i32 = 268435456; +pub const FILE_CREATE: i32 = 2; +pub const FILE_CREATE_PIPE_INSTANCE: i32 = 4; +pub const FILE_CREATE_TREE_CONNECTION: i32 = 128; +pub const FILE_CURRENT: i32 = 1; +pub const FILE_DELETE_CHILD: i32 = 64; +pub const FILE_DELETE_ON_CLOSE: i32 = 4096; +pub const FILE_DIRECTORY_FILE: i32 = 1; +pub const FILE_DISALLOW_EXCLUSIVE: i32 = 131072; +pub const FILE_DISPOSITION_FLAG_DELETE: i32 = 1; +pub const FILE_DISPOSITION_FLAG_DO_NOT_DELETE: i32 = 0; +pub const FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK: i32 = 4; +pub const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE: i32 = 16; +pub const FILE_DISPOSITION_FLAG_ON_CLOSE: i32 = 8; +pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: i32 = 2; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_DISPOSITION_INFO { @@ -2491,32 +2519,30 @@ pub struct FILE_DISPOSITION_INFO { #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_DISPOSITION_INFO_EX { - pub Flags: FILE_DISPOSITION_INFO_EX_FLAGS, + pub Flags: u32, } -pub type FILE_DISPOSITION_INFO_EX_FLAGS = u32; -pub const FILE_END: SET_FILE_POINTER_MOVE_METHOD = 2u32; +pub const FILE_END: i32 = 2; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_END_OF_FILE_INFO { pub EndOfFile: i64, } -pub const FILE_EXECUTE: FILE_ACCESS_RIGHTS = 32u32; -pub type FILE_FLAGS_AND_ATTRIBUTES = u32; -pub const FILE_FLAG_BACKUP_SEMANTICS: FILE_FLAGS_AND_ATTRIBUTES = 33554432u32; -pub const FILE_FLAG_DELETE_ON_CLOSE: FILE_FLAGS_AND_ATTRIBUTES = 67108864u32; -pub const FILE_FLAG_FIRST_PIPE_INSTANCE: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; -pub const FILE_FLAG_NO_BUFFERING: FILE_FLAGS_AND_ATTRIBUTES = 536870912u32; -pub const FILE_FLAG_OPEN_NO_RECALL: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; -pub const FILE_FLAG_OPEN_REPARSE_POINT: FILE_FLAGS_AND_ATTRIBUTES = 2097152u32; -pub const FILE_FLAG_OVERLAPPED: FILE_FLAGS_AND_ATTRIBUTES = 1073741824u32; -pub const FILE_FLAG_POSIX_SEMANTICS: FILE_FLAGS_AND_ATTRIBUTES = 16777216u32; -pub const FILE_FLAG_RANDOM_ACCESS: FILE_FLAGS_AND_ATTRIBUTES = 268435456u32; -pub const FILE_FLAG_SEQUENTIAL_SCAN: FILE_FLAGS_AND_ATTRIBUTES = 134217728u32; -pub const FILE_FLAG_SESSION_AWARE: FILE_FLAGS_AND_ATTRIBUTES = 8388608u32; -pub const FILE_FLAG_WRITE_THROUGH: FILE_FLAGS_AND_ATTRIBUTES = 2147483648u32; -pub const FILE_GENERIC_EXECUTE: FILE_ACCESS_RIGHTS = 1179808u32; -pub const FILE_GENERIC_READ: FILE_ACCESS_RIGHTS = 1179785u32; -pub const FILE_GENERIC_WRITE: FILE_ACCESS_RIGHTS = 1179926u32; +pub const FILE_EXECUTE: i32 = 32; +pub const FILE_FLAG_BACKUP_SEMANTICS: i32 = 33554432; +pub const FILE_FLAG_DELETE_ON_CLOSE: i32 = 67108864; +pub const FILE_FLAG_FIRST_PIPE_INSTANCE: i32 = 524288; +pub const FILE_FLAG_NO_BUFFERING: i32 = 536870912; +pub const FILE_FLAG_OPEN_NO_RECALL: i32 = 1048576; +pub const FILE_FLAG_OPEN_REPARSE_POINT: i32 = 2097152; +pub const FILE_FLAG_OVERLAPPED: i32 = 1073741824; +pub const FILE_FLAG_POSIX_SEMANTICS: i32 = 16777216; +pub const FILE_FLAG_RANDOM_ACCESS: i32 = 268435456; +pub const FILE_FLAG_SEQUENTIAL_SCAN: i32 = 134217728; +pub const FILE_FLAG_SESSION_AWARE: i32 = 8388608; +pub const FILE_FLAG_WRITE_THROUGH: u32 = 2147483648; +pub const FILE_GENERIC_EXECUTE: i32 = 1179808; +pub const FILE_GENERIC_READ: i32 = 1179785; +pub const FILE_GENERIC_WRITE: i32 = 1179926; #[repr(C)] #[derive(Clone, Copy)] pub struct FILE_ID_BOTH_DIR_INFO { @@ -2531,7 +2557,7 @@ pub struct FILE_ID_BOTH_DIR_INFO { pub FileAttributes: u32, pub FileNameLength: u32, pub EaSize: u32, - pub ShortNameLength: i8, + pub ShortNameLength: CCHAR, pub ShortName: [u16; 12], pub FileId: i64, pub FileName: [u16; 1], @@ -2548,37 +2574,37 @@ pub type FILE_INFO_BY_HANDLE_CLASS = i32; pub struct FILE_IO_PRIORITY_HINT_INFO { pub PriorityHint: PRIORITY_HINT, } -pub const FILE_LIST_DIRECTORY: FILE_ACCESS_RIGHTS = 1u32; -pub const FILE_NAME_NORMALIZED: GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32; -pub const FILE_NAME_OPENED: GETFINALPATHNAMEBYHANDLE_FLAGS = 8u32; -pub const FILE_NON_DIRECTORY_FILE: NTCREATEFILE_CREATE_OPTIONS = 64u32; -pub const FILE_NO_COMPRESSION: NTCREATEFILE_CREATE_OPTIONS = 32768u32; -pub const FILE_NO_EA_KNOWLEDGE: NTCREATEFILE_CREATE_OPTIONS = 512u32; -pub const FILE_NO_INTERMEDIATE_BUFFERING: NTCREATEFILE_CREATE_OPTIONS = 8u32; -pub const FILE_OPEN: NTCREATEFILE_CREATE_DISPOSITION = 1u32; -pub const FILE_OPEN_BY_FILE_ID: NTCREATEFILE_CREATE_OPTIONS = 8192u32; -pub const FILE_OPEN_FOR_BACKUP_INTENT: NTCREATEFILE_CREATE_OPTIONS = 16384u32; -pub const FILE_OPEN_FOR_FREE_SPACE_QUERY: NTCREATEFILE_CREATE_OPTIONS = 8388608u32; -pub const FILE_OPEN_IF: NTCREATEFILE_CREATE_DISPOSITION = 3u32; -pub const FILE_OPEN_NO_RECALL: NTCREATEFILE_CREATE_OPTIONS = 4194304u32; -pub const FILE_OPEN_REPARSE_POINT: NTCREATEFILE_CREATE_OPTIONS = 2097152u32; -pub const FILE_OPEN_REQUIRING_OPLOCK: NTCREATEFILE_CREATE_OPTIONS = 65536u32; -pub const FILE_OVERWRITE: NTCREATEFILE_CREATE_DISPOSITION = 4u32; -pub const FILE_OVERWRITE_IF: NTCREATEFILE_CREATE_DISPOSITION = 5u32; -pub const FILE_PIPE_ACCEPT_REMOTE_CLIENTS: u32 = 0u32; -pub const FILE_PIPE_BYTE_STREAM_MODE: u32 = 0u32; -pub const FILE_PIPE_BYTE_STREAM_TYPE: u32 = 0u32; -pub const FILE_PIPE_COMPLETE_OPERATION: u32 = 1u32; -pub const FILE_PIPE_MESSAGE_MODE: u32 = 1u32; -pub const FILE_PIPE_MESSAGE_TYPE: u32 = 1u32; -pub const FILE_PIPE_QUEUE_OPERATION: u32 = 0u32; -pub const FILE_PIPE_REJECT_REMOTE_CLIENTS: u32 = 2u32; -pub const FILE_RANDOM_ACCESS: NTCREATEFILE_CREATE_OPTIONS = 2048u32; -pub const FILE_READ_ATTRIBUTES: FILE_ACCESS_RIGHTS = 128u32; -pub const FILE_READ_DATA: FILE_ACCESS_RIGHTS = 1u32; -pub const FILE_READ_EA: FILE_ACCESS_RIGHTS = 8u32; -pub const FILE_RENAME_FLAG_POSIX_SEMANTICS: u32 = 2u32; -pub const FILE_RENAME_FLAG_REPLACE_IF_EXISTS: u32 = 1u32; +pub const FILE_LIST_DIRECTORY: i32 = 1; +pub const FILE_NAME_NORMALIZED: i32 = 0; +pub const FILE_NAME_OPENED: i32 = 8; +pub const FILE_NON_DIRECTORY_FILE: i32 = 64; +pub const FILE_NO_COMPRESSION: i32 = 32768; +pub const FILE_NO_EA_KNOWLEDGE: i32 = 512; +pub const FILE_NO_INTERMEDIATE_BUFFERING: i32 = 8; +pub const FILE_OPEN: i32 = 1; +pub const FILE_OPEN_BY_FILE_ID: i32 = 8192; +pub const FILE_OPEN_FOR_BACKUP_INTENT: i32 = 16384; +pub const FILE_OPEN_FOR_FREE_SPACE_QUERY: i32 = 8388608; +pub const FILE_OPEN_IF: i32 = 3; +pub const FILE_OPEN_NO_RECALL: i32 = 4194304; +pub const FILE_OPEN_REPARSE_POINT: i32 = 2097152; +pub const FILE_OPEN_REQUIRING_OPLOCK: i32 = 65536; +pub const FILE_OVERWRITE: i32 = 4; +pub const FILE_OVERWRITE_IF: i32 = 5; +pub const FILE_PIPE_ACCEPT_REMOTE_CLIENTS: i32 = 0; +pub const FILE_PIPE_BYTE_STREAM_MODE: i32 = 0; +pub const FILE_PIPE_BYTE_STREAM_TYPE: i32 = 0; +pub const FILE_PIPE_COMPLETE_OPERATION: i32 = 1; +pub const FILE_PIPE_MESSAGE_MODE: i32 = 1; +pub const FILE_PIPE_MESSAGE_TYPE: i32 = 1; +pub const FILE_PIPE_QUEUE_OPERATION: i32 = 0; +pub const FILE_PIPE_REJECT_REMOTE_CLIENTS: i32 = 2; +pub const FILE_RANDOM_ACCESS: i32 = 2048; +pub const FILE_READ_ATTRIBUTES: i32 = 128; +pub const FILE_READ_DATA: i32 = 1; +pub const FILE_READ_EA: i32 = 8; +pub const FILE_RENAME_FLAG_POSIX_SEMANTICS: i32 = 2; +pub const FILE_RENAME_FLAG_REPLACE_IF_EXISTS: i32 = 1; #[repr(C)] #[derive(Clone, Copy)] pub struct FILE_RENAME_INFO { @@ -2627,14 +2653,12 @@ impl Default for FILE_RENAME_INFORMATION_0 { unsafe { core::mem::zeroed() } } } -pub const FILE_RESERVE_OPFILTER: NTCREATEFILE_CREATE_OPTIONS = 1048576u32; -pub const FILE_SEQUENTIAL_ONLY: NTCREATEFILE_CREATE_OPTIONS = 4u32; -pub const FILE_SESSION_AWARE: NTCREATEFILE_CREATE_OPTIONS = 262144u32; -pub const FILE_SHARE_DELETE: FILE_SHARE_MODE = 4u32; -pub type FILE_SHARE_MODE = u32; -pub const FILE_SHARE_NONE: FILE_SHARE_MODE = 0u32; -pub const FILE_SHARE_READ: FILE_SHARE_MODE = 1u32; -pub const FILE_SHARE_WRITE: FILE_SHARE_MODE = 2u32; +pub const FILE_RESERVE_OPFILTER: i32 = 1048576; +pub const FILE_SEQUENTIAL_ONLY: i32 = 4; +pub const FILE_SESSION_AWARE: i32 = 262144; +pub const FILE_SHARE_DELETE: i32 = 4; +pub const FILE_SHARE_READ: i32 = 1; +pub const FILE_SHARE_WRITE: i32 = 2; #[repr(C)] #[derive(Clone, Copy, Default)] pub struct FILE_STANDARD_INFO { @@ -2644,24 +2668,22 @@ pub struct FILE_STANDARD_INFO { pub DeletePending: bool, pub Directory: bool, } -pub const FILE_SUPERSEDE: NTCREATEFILE_CREATE_DISPOSITION = 0u32; -pub const FILE_SYNCHRONOUS_IO_ALERT: NTCREATEFILE_CREATE_OPTIONS = 16u32; -pub const FILE_SYNCHRONOUS_IO_NONALERT: NTCREATEFILE_CREATE_OPTIONS = 32u32; -pub const FILE_TRAVERSE: FILE_ACCESS_RIGHTS = 32u32; -pub type FILE_TYPE = u32; -pub const FILE_TYPE_CHAR: FILE_TYPE = 2u32; -pub const FILE_TYPE_DISK: FILE_TYPE = 1u32; -pub const FILE_TYPE_PIPE: FILE_TYPE = 3u32; -pub const FILE_TYPE_REMOTE: FILE_TYPE = 32768u32; -pub const FILE_TYPE_UNKNOWN: FILE_TYPE = 0u32; -pub const FILE_WRITE_ATTRIBUTES: FILE_ACCESS_RIGHTS = 256u32; -pub const FILE_WRITE_DATA: FILE_ACCESS_RIGHTS = 2u32; -pub const FILE_WRITE_EA: FILE_ACCESS_RIGHTS = 16u32; -pub const FILE_WRITE_THROUGH: NTCREATEFILE_CREATE_OPTIONS = 2u32; +pub const FILE_SUPERSEDE: i32 = 0; +pub const FILE_SYNCHRONOUS_IO_ALERT: i32 = 16; +pub const FILE_SYNCHRONOUS_IO_NONALERT: i32 = 32; +pub const FILE_TRAVERSE: i32 = 32; +pub const FILE_TYPE_CHAR: i32 = 2; +pub const FILE_TYPE_DISK: i32 = 1; +pub const FILE_TYPE_PIPE: i32 = 3; +pub const FILE_TYPE_REMOTE: i32 = 32768; +pub const FILE_TYPE_UNKNOWN: i32 = 0; +pub const FILE_WRITE_ATTRIBUTES: i32 = 256; +pub const FILE_WRITE_DATA: i32 = 2; +pub const FILE_WRITE_EA: i32 = 16; +pub const FILE_WRITE_THROUGH: i32 = 2; pub type FINDEX_INFO_LEVELS = i32; pub type FINDEX_SEARCH_OPS = i32; -pub type FIND_FIRST_EX_FLAGS = u32; -pub const FIONBIO: i32 = -2147195266i32; +pub const FIONBIO: u32 = 2147772030; #[repr(C)] #[cfg(target_arch = "x86")] #[derive(Clone, Copy)] @@ -2682,102 +2704,69 @@ impl Default for FLOATING_SAVE_AREA { unsafe { core::mem::zeroed() } } } +pub const FLS_OUT_OF_INDEXES: u32 = 4294967295; +pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: i32 = 256; +pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: i32 = 8192; +pub const FORMAT_MESSAGE_FROM_HMODULE: i32 = 2048; +pub const FORMAT_MESSAGE_FROM_STRING: i32 = 1024; +pub const FORMAT_MESSAGE_FROM_SYSTEM: i32 = 4096; +pub const FORMAT_MESSAGE_IGNORE_INSERTS: i32 = 512; +pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: i32 = 8014; +pub const FSCTL_GET_REPARSE_POINT: i32 = 589992; +pub const FSCTL_SET_REPARSE_POINT: i32 = 589988; +pub const FileAlignmentInfo: FILE_INFO_BY_HANDLE_CLASS = 17; +pub const FileAllocationInfo: FILE_INFO_BY_HANDLE_CLASS = 5; +pub const FileAttributeTagInfo: FILE_INFO_BY_HANDLE_CLASS = 9; +pub const FileBasicInfo: FILE_INFO_BY_HANDLE_CLASS = 0; +pub const FileCaseSensitiveInfo: FILE_INFO_BY_HANDLE_CLASS = 23; +pub const FileCompressionInfo: FILE_INFO_BY_HANDLE_CLASS = 8; +pub const FileDispositionInfo: FILE_INFO_BY_HANDLE_CLASS = 4; +pub const FileDispositionInfoEx: FILE_INFO_BY_HANDLE_CLASS = 21; +pub const FileEndOfFileInfo: FILE_INFO_BY_HANDLE_CLASS = 6; +pub const FileFullDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 14; +pub const FileFullDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 15; +pub const FileIdBothDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 10; +pub const FileIdBothDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 11; +pub const FileIdExtdDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 19; +pub const FileIdExtdDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 20; +pub const FileIdInfo: FILE_INFO_BY_HANDLE_CLASS = 18; +pub const FileIoPriorityHintInfo: FILE_INFO_BY_HANDLE_CLASS = 12; +pub const FileNameInfo: FILE_INFO_BY_HANDLE_CLASS = 2; +pub const FileNormalizedNameInfo: FILE_INFO_BY_HANDLE_CLASS = 24; +pub const FileRemoteProtocolInfo: FILE_INFO_BY_HANDLE_CLASS = 13; +pub const FileRenameInfo: FILE_INFO_BY_HANDLE_CLASS = 3; +pub const FileRenameInfoEx: FILE_INFO_BY_HANDLE_CLASS = 22; +pub const FileRenameInformation: FILE_INFORMATION_CLASS = 10; +pub const FileRenameInformationEx: FILE_INFORMATION_CLASS = 65; +pub const FileStandardInfo: FILE_INFO_BY_HANDLE_CLASS = 1; +pub const FileStorageInfo: FILE_INFO_BY_HANDLE_CLASS = 16; +pub const FileStreamInfo: FILE_INFO_BY_HANDLE_CLASS = 7; +pub const FindExInfoBasic: FINDEX_INFO_LEVELS = 1; +pub const FindExSearchNameMatch: FINDEX_SEARCH_OPS = 0; +pub const GENERIC_ALL: i32 = 268435456; +pub const GENERIC_EXECUTE: i32 = 536870912; +pub const GENERIC_READ: u32 = 2147483648; +pub const GENERIC_WRITE: i32 = 1073741824; +pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: i32 = 4; +pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: i32 = 2; +pub type GROUP = u32; #[repr(C)] -#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))] -#[derive(Clone, Copy)] -pub struct FLOATING_SAVE_AREA { - pub ControlWord: u32, - pub StatusWord: u32, - pub TagWord: u32, - pub ErrorOffset: u32, - pub ErrorSelector: u32, - pub DataOffset: u32, - pub DataSelector: u32, - pub RegisterArea: [u8; 80], - pub Cr0NpxState: u32, -} -#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "x86_64"))] -impl Default for FLOATING_SAVE_AREA { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub const FLS_OUT_OF_INDEXES: u32 = 4294967295u32; -pub const FORMAT_MESSAGE_ALLOCATE_BUFFER: FORMAT_MESSAGE_OPTIONS = 256u32; -pub const FORMAT_MESSAGE_ARGUMENT_ARRAY: FORMAT_MESSAGE_OPTIONS = 8192u32; -pub const FORMAT_MESSAGE_FROM_HMODULE: FORMAT_MESSAGE_OPTIONS = 2048u32; -pub const FORMAT_MESSAGE_FROM_STRING: FORMAT_MESSAGE_OPTIONS = 1024u32; -pub const FORMAT_MESSAGE_FROM_SYSTEM: FORMAT_MESSAGE_OPTIONS = 4096u32; -pub const FORMAT_MESSAGE_IGNORE_INSERTS: FORMAT_MESSAGE_OPTIONS = 512u32; -pub type FORMAT_MESSAGE_OPTIONS = u32; -pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: i32 = 8014i32; -pub const FSCTL_GET_REPARSE_POINT: u32 = 589992u32; -pub const FSCTL_SET_REPARSE_POINT: u32 = 589988u32; -pub const FileAlignmentInfo: FILE_INFO_BY_HANDLE_CLASS = 17i32; -pub const FileAllocationInfo: FILE_INFO_BY_HANDLE_CLASS = 5i32; -pub const FileAttributeTagInfo: FILE_INFO_BY_HANDLE_CLASS = 9i32; -pub const FileBasicInfo: FILE_INFO_BY_HANDLE_CLASS = 0i32; -pub const FileCaseSensitiveInfo: FILE_INFO_BY_HANDLE_CLASS = 23i32; -pub const FileCompressionInfo: FILE_INFO_BY_HANDLE_CLASS = 8i32; -pub const FileDispositionInfo: FILE_INFO_BY_HANDLE_CLASS = 4i32; -pub const FileDispositionInfoEx: FILE_INFO_BY_HANDLE_CLASS = 21i32; -pub const FileEndOfFileInfo: FILE_INFO_BY_HANDLE_CLASS = 6i32; -pub const FileFullDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 14i32; -pub const FileFullDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 15i32; -pub const FileIdBothDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 10i32; -pub const FileIdBothDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 11i32; -pub const FileIdExtdDirectoryInfo: FILE_INFO_BY_HANDLE_CLASS = 19i32; -pub const FileIdExtdDirectoryRestartInfo: FILE_INFO_BY_HANDLE_CLASS = 20i32; -pub const FileIdInfo: FILE_INFO_BY_HANDLE_CLASS = 18i32; -pub const FileIoPriorityHintInfo: FILE_INFO_BY_HANDLE_CLASS = 12i32; -pub const FileNameInfo: FILE_INFO_BY_HANDLE_CLASS = 2i32; -pub const FileNormalizedNameInfo: FILE_INFO_BY_HANDLE_CLASS = 24i32; -pub const FileRemoteProtocolInfo: FILE_INFO_BY_HANDLE_CLASS = 13i32; -pub const FileRenameInfo: FILE_INFO_BY_HANDLE_CLASS = 3i32; -pub const FileRenameInfoEx: FILE_INFO_BY_HANDLE_CLASS = 22i32; -pub const FileRenameInformation: FILE_INFORMATION_CLASS = 10i32; -pub const FileRenameInformationEx: FILE_INFORMATION_CLASS = 65i32; -pub const FileStandardInfo: FILE_INFO_BY_HANDLE_CLASS = 1i32; -pub const FileStorageInfo: FILE_INFO_BY_HANDLE_CLASS = 16i32; -pub const FileStreamInfo: FILE_INFO_BY_HANDLE_CLASS = 7i32; -pub const FindExInfoBasic: FINDEX_INFO_LEVELS = 1i32; -pub const FindExSearchNameMatch: FINDEX_SEARCH_OPS = 0i32; -pub type GENERIC_ACCESS_RIGHTS = u32; -pub const GENERIC_ALL: GENERIC_ACCESS_RIGHTS = 268435456u32; -pub const GENERIC_EXECUTE: GENERIC_ACCESS_RIGHTS = 536870912u32; -pub const GENERIC_READ: GENERIC_ACCESS_RIGHTS = 2147483648u32; -pub const GENERIC_WRITE: GENERIC_ACCESS_RIGHTS = 1073741824u32; -pub type GETFINALPATHNAMEBYHANDLE_FLAGS = u32; -pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: u32 = 4u32; -pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: u32 = 2u32; -#[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct GUID { pub data1: u32, pub data2: u16, pub data3: u16, pub data4: [u8; 8], } -impl GUID { - pub const fn from_u128(uuid: u128) -> Self { - Self { - data1: (uuid >> 96) as u32, - data2: (uuid >> 80 & 0xffff) as u16, - data3: (uuid >> 64 & 0xffff) as u16, - data4: (uuid as u64).to_be_bytes(), - } - } -} pub type HANDLE = *mut core::ffi::c_void; -pub type HANDLE_FLAGS = u32; -pub const HANDLE_FLAG_INHERIT: HANDLE_FLAGS = 1u32; -pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: HANDLE_FLAGS = 2u32; -pub const HIGH_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 128u32; +pub const HANDLE_FLAG_INHERIT: i32 = 1; +pub const HANDLE_FLAG_PROTECT_FROM_CLOSE: i32 = 2; +pub const HIGH_PRIORITY_CLASS: i32 = 128; pub type HINSTANCE = *mut core::ffi::c_void; -pub type HLOCAL = *mut core::ffi::c_void; -pub type HMODULE = *mut core::ffi::c_void; +pub type HLOCAL = HANDLE; +pub type HMODULE = HINSTANCE; pub type HRESULT = i32; -pub const IDLE_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 64u32; +pub const IDLE_PRIORITY_CLASS: i32 = 64; #[repr(C)] #[derive(Clone, Copy)] pub struct IN6_ADDR { @@ -2799,22 +2788,13 @@ impl Default for IN6_ADDR_0 { unsafe { core::mem::zeroed() } } } -pub const INFINITE: u32 = 4294967295u32; -pub const INHERIT_CALLER_PRIORITY: PROCESS_CREATION_FLAGS = 131072u32; -pub const INHERIT_PARENT_AFFINITY: PROCESS_CREATION_FLAGS = 65536u32; -#[repr(C)] -#[derive(Clone, Copy)] -pub union INIT_ONCE { - pub Ptr: *mut core::ffi::c_void, -} -impl Default for INIT_ONCE { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub const INIT_ONCE_INIT_FAILED: u32 = 4u32; -pub const INVALID_FILE_ATTRIBUTES: u32 = 4294967295u32; -pub const INVALID_SOCKET: SOCKET = -1i32 as _; +pub const INFINITE: u32 = 4294967295; +pub const INHERIT_CALLER_PRIORITY: i32 = 131072; +pub const INHERIT_PARENT_AFFINITY: i32 = 65536; +pub type INIT_ONCE = RTL_RUN_ONCE; +pub const INIT_ONCE_INIT_FAILED: u32 = 4; +pub const INVALID_FILE_ATTRIBUTES: u32 = 4294967295; +pub const INVALID_SOCKET: SOCKET = 18446744073709551615u64 as usize; #[repr(C)] #[derive(Clone, Copy)] pub struct IN_ADDR { @@ -2851,8 +2831,8 @@ pub struct IN_ADDR_0_1 { pub s_w1: u16, pub s_w2: u16, } -pub const IO_REPARSE_TAG_MOUNT_POINT: u32 = 2684354563u32; -pub const IO_REPARSE_TAG_SYMLINK: u32 = 2684354572u32; +pub const IO_REPARSE_TAG_MOUNT_POINT: u32 = 2684354563; +pub const IO_REPARSE_TAG_SYMLINK: u32 = 2684354572; #[repr(C)] #[derive(Clone, Copy)] pub struct IO_STATUS_BLOCK { @@ -2876,45 +2856,45 @@ impl Default for IO_STATUS_BLOCK_0 { } } pub type IPPROTO = i32; -pub const IPPROTO_AH: IPPROTO = 51i32; -pub const IPPROTO_CBT: IPPROTO = 7i32; -pub const IPPROTO_DSTOPTS: IPPROTO = 60i32; -pub const IPPROTO_EGP: IPPROTO = 8i32; -pub const IPPROTO_ESP: IPPROTO = 50i32; -pub const IPPROTO_FRAGMENT: IPPROTO = 44i32; -pub const IPPROTO_GGP: IPPROTO = 3i32; -pub const IPPROTO_HOPOPTS: IPPROTO = 0i32; -pub const IPPROTO_ICLFXBM: IPPROTO = 78i32; -pub const IPPROTO_ICMP: IPPROTO = 1i32; -pub const IPPROTO_ICMPV6: IPPROTO = 58i32; -pub const IPPROTO_IDP: IPPROTO = 22i32; -pub const IPPROTO_IGMP: IPPROTO = 2i32; -pub const IPPROTO_IGP: IPPROTO = 9i32; -pub const IPPROTO_IP: IPPROTO = 0i32; -pub const IPPROTO_IPV4: IPPROTO = 4i32; -pub const IPPROTO_IPV6: IPPROTO = 41i32; -pub const IPPROTO_L2TP: IPPROTO = 115i32; -pub const IPPROTO_MAX: IPPROTO = 256i32; -pub const IPPROTO_ND: IPPROTO = 77i32; -pub const IPPROTO_NONE: IPPROTO = 59i32; -pub const IPPROTO_PGM: IPPROTO = 113i32; -pub const IPPROTO_PIM: IPPROTO = 103i32; -pub const IPPROTO_PUP: IPPROTO = 12i32; -pub const IPPROTO_RAW: IPPROTO = 255i32; -pub const IPPROTO_RDP: IPPROTO = 27i32; -pub const IPPROTO_RESERVED_IPSEC: IPPROTO = 258i32; -pub const IPPROTO_RESERVED_IPSECOFFLOAD: IPPROTO = 259i32; -pub const IPPROTO_RESERVED_MAX: IPPROTO = 261i32; -pub const IPPROTO_RESERVED_RAW: IPPROTO = 257i32; -pub const IPPROTO_RESERVED_WNV: IPPROTO = 260i32; -pub const IPPROTO_RM: IPPROTO = 113i32; -pub const IPPROTO_ROUTING: IPPROTO = 43i32; -pub const IPPROTO_SCTP: IPPROTO = 132i32; -pub const IPPROTO_ST: IPPROTO = 5i32; -pub const IPPROTO_TCP: IPPROTO = 6i32; -pub const IPPROTO_UDP: IPPROTO = 17i32; -pub const IPV6_ADD_MEMBERSHIP: i32 = 12i32; -pub const IPV6_DROP_MEMBERSHIP: i32 = 13i32; +pub const IPPROTO_AH: IPPROTO = 51; +pub const IPPROTO_CBT: IPPROTO = 7; +pub const IPPROTO_DSTOPTS: IPPROTO = 60; +pub const IPPROTO_EGP: IPPROTO = 8; +pub const IPPROTO_ESP: IPPROTO = 50; +pub const IPPROTO_FRAGMENT: IPPROTO = 44; +pub const IPPROTO_GGP: IPPROTO = 3; +pub const IPPROTO_HOPOPTS: IPPROTO = 0; +pub const IPPROTO_ICLFXBM: IPPROTO = 78; +pub const IPPROTO_ICMP: IPPROTO = 1; +pub const IPPROTO_ICMPV6: IPPROTO = 58; +pub const IPPROTO_IDP: IPPROTO = 22; +pub const IPPROTO_IGMP: IPPROTO = 2; +pub const IPPROTO_IGP: IPPROTO = 9; +pub const IPPROTO_IP: i32 = 0; +pub const IPPROTO_IPV4: IPPROTO = 4; +pub const IPPROTO_IPV6: IPPROTO = 41; +pub const IPPROTO_L2TP: IPPROTO = 115; +pub const IPPROTO_MAX: IPPROTO = 256; +pub const IPPROTO_ND: IPPROTO = 77; +pub const IPPROTO_NONE: IPPROTO = 59; +pub const IPPROTO_PGM: IPPROTO = 113; +pub const IPPROTO_PIM: IPPROTO = 103; +pub const IPPROTO_PUP: IPPROTO = 12; +pub const IPPROTO_RAW: IPPROTO = 255; +pub const IPPROTO_RDP: IPPROTO = 27; +pub const IPPROTO_RESERVED_IPSEC: IPPROTO = 258; +pub const IPPROTO_RESERVED_IPSECOFFLOAD: IPPROTO = 259; +pub const IPPROTO_RESERVED_MAX: IPPROTO = 261; +pub const IPPROTO_RESERVED_RAW: IPPROTO = 257; +pub const IPPROTO_RESERVED_WNV: IPPROTO = 260; +pub const IPPROTO_RM: i32 = 113; +pub const IPPROTO_ROUTING: IPPROTO = 43; +pub const IPPROTO_SCTP: IPPROTO = 132; +pub const IPPROTO_ST: IPPROTO = 5; +pub const IPPROTO_TCP: IPPROTO = 6; +pub const IPPROTO_UDP: IPPROTO = 17; +pub const IPV6_ADD_MEMBERSHIP: i32 = 12; +pub const IPV6_DROP_MEMBERSHIP: i32 = 13; #[repr(C)] #[derive(Clone, Copy)] pub struct IPV6_MREQ { @@ -2926,10 +2906,10 @@ impl Default for IPV6_MREQ { unsafe { core::mem::zeroed() } } } -pub const IPV6_MULTICAST_LOOP: i32 = 11i32; -pub const IPV6_V6ONLY: i32 = 27i32; -pub const IP_ADD_MEMBERSHIP: i32 = 12i32; -pub const IP_DROP_MEMBERSHIP: i32 = 13i32; +pub const IPV6_MULTICAST_LOOP: i32 = 11; +pub const IPV6_V6ONLY: i32 = 27; +pub const IP_ADD_MEMBERSHIP: i32 = 12; +pub const IP_DROP_MEMBERSHIP: i32 = 13; #[repr(C)] #[derive(Clone, Copy)] pub struct IP_MREQ { @@ -2941,18 +2921,14 @@ impl Default for IP_MREQ { unsafe { core::mem::zeroed() } } } -pub const IP_MULTICAST_LOOP: i32 = 11i32; -pub const IP_MULTICAST_TTL: i32 = 10i32; -pub const IP_TTL: i32 = 4i32; -#[repr(C)] -#[derive(Clone, Copy, Default)] -pub struct LINGER { - pub l_onoff: u16, - pub l_linger: u16, -} -pub const LOCKFILE_EXCLUSIVE_LOCK: LOCK_FILE_FLAGS = 2u32; -pub const LOCKFILE_FAIL_IMMEDIATELY: LOCK_FILE_FLAGS = 1u32; -pub type LOCK_FILE_FLAGS = u32; +pub const IP_MULTICAST_LOOP: i32 = 11; +pub const IP_MULTICAST_TTL: i32 = 10; +pub const IP_TTL: i32 = 4; +pub type LINGER = linger; +pub const LOCKFILE_EXCLUSIVE_LOCK: i32 = 2; +pub const LOCKFILE_FAIL_IMMEDIATELY: i32 = 1; +pub type LPBYTE = *mut u8; +pub type LPINIT_ONCE = PRTL_RUN_ONCE; pub type LPOVERLAPPED_COMPLETION_ROUTINE = Option< unsafe extern "system" fn( dwerrorcode: u32, @@ -2960,7 +2936,7 @@ pub type LPOVERLAPPED_COMPLETION_ROUTINE = Option< lpoverlapped: *mut OVERLAPPED, ), >; -pub type LPPROC_THREAD_ATTRIBUTE_LIST = *mut core::ffi::c_void; +pub type LPPROC_THREAD_ATTRIBUTE_LIST = *mut _PROC_THREAD_ATTRIBUTE_LIST; pub type LPPROGRESS_ROUTINE = Option< unsafe extern "system" fn( totalfilesize: i64, @@ -2968,15 +2944,14 @@ pub type LPPROGRESS_ROUTINE = Option< streamsize: i64, streambytestransferred: i64, dwstreamnumber: u32, - dwcallbackreason: LPPROGRESS_ROUTINE_CALLBACK_REASON, + dwcallbackreason: u32, hsourcefile: HANDLE, hdestinationfile: HANDLE, lpdata: *const core::ffi::c_void, - ) -> COPYPROGRESSROUTINE_PROGRESS, + ) -> u32, >; -pub type LPPROGRESS_ROUTINE_CALLBACK_REASON = u32; -pub type LPTHREAD_START_ROUTINE = - Option u32>; +pub type LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE; +pub type LPWCH = *mut u16; pub type LPWSAOVERLAPPED_COMPLETION_ROUTINE = Option< unsafe extern "system" fn( dwerror: u32, @@ -2985,66 +2960,57 @@ pub type LPWSAOVERLAPPED_COMPLETION_ROUTINE = Option< dwflags: u32, ), >; -#[repr(C)] +#[repr(C, align(16))] #[derive(Clone, Copy, Default)] pub struct M128A { pub Low: u64, pub High: i64, } -pub const MAXIMUM_REPARSE_DATA_BUFFER_SIZE: u32 = 16384u32; -pub const MAX_PATH: u32 = 260u32; -pub const MB_COMPOSITE: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 2u32; -pub const MB_ERR_INVALID_CHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 8u32; -pub const MB_PRECOMPOSED: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 1u32; -pub const MB_USEGLYPHCHARS: MULTI_BYTE_TO_WIDE_CHAR_FLAGS = 4u32; -pub const MOVEFILE_COPY_ALLOWED: MOVE_FILE_FLAGS = 2u32; -pub const MOVEFILE_CREATE_HARDLINK: MOVE_FILE_FLAGS = 16u32; -pub const MOVEFILE_DELAY_UNTIL_REBOOT: MOVE_FILE_FLAGS = 4u32; -pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: MOVE_FILE_FLAGS = 32u32; -pub const MOVEFILE_REPLACE_EXISTING: MOVE_FILE_FLAGS = 1u32; -pub const MOVEFILE_WRITE_THROUGH: MOVE_FILE_FLAGS = 8u32; -pub type MOVE_FILE_FLAGS = u32; -pub const MSG_DONTROUTE: SEND_RECV_FLAGS = 4i32; -pub const MSG_OOB: SEND_RECV_FLAGS = 1i32; -pub const MSG_PEEK: SEND_RECV_FLAGS = 2i32; -pub const MSG_PUSH_IMMEDIATE: SEND_RECV_FLAGS = 32i32; -pub const MSG_WAITALL: SEND_RECV_FLAGS = 8i32; -pub type MULTI_BYTE_TO_WIDE_CHAR_FLAGS = u32; -pub const MaximumFileInfoByHandleClass: FILE_INFO_BY_HANDLE_CLASS = 25i32; -pub type NAMED_PIPE_MODE = u32; -pub const NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32u32; -pub const NO_ERROR: WIN32_ERROR = 0u32; -pub type NTCREATEFILE_CREATE_DISPOSITION = u32; -pub type NTCREATEFILE_CREATE_OPTIONS = u32; +pub const MAXIMUM_REPARSE_DATA_BUFFER_SIZE: i32 = 16384; +pub const MAX_PATH: i32 = 260; +pub const MB_COMPOSITE: i32 = 2; +pub const MB_ERR_INVALID_CHARS: i32 = 8; +pub const MB_PRECOMPOSED: i32 = 1; +pub const MB_USEGLYPHCHARS: i32 = 4; +pub const MOVEFILE_COPY_ALLOWED: i32 = 2; +pub const MOVEFILE_CREATE_HARDLINK: i32 = 16; +pub const MOVEFILE_DELAY_UNTIL_REBOOT: i32 = 4; +pub const MOVEFILE_FAIL_IF_NOT_TRACKABLE: i32 = 32; +pub const MOVEFILE_REPLACE_EXISTING: i32 = 1; +pub const MOVEFILE_WRITE_THROUGH: i32 = 8; +pub const MSG_DONTROUTE: i32 = 4; +pub const MSG_OOB: i32 = 1; +pub const MSG_PEEK: i32 = 2; +pub const MSG_PUSH_IMMEDIATE: i32 = 32; +pub const MSG_WAITALL: i32 = 8; +pub const MaximumFileInfoByHandleClass: FILE_INFO_BY_HANDLE_CLASS = 25; +#[cfg(target_arch = "aarch64")] +pub type NEON128 = ARM64_NT_NEON128; +pub const NORMAL_PRIORITY_CLASS: i32 = 32; +pub const NO_ERROR: i32 = 0; pub type NTSTATUS = i32; #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct OBJECT_ATTRIBUTES { pub Length: u32, pub RootDirectory: HANDLE, - pub ObjectName: *const UNICODE_STRING, - pub Attributes: OBJECT_ATTRIBUTE_FLAGS, - pub SecurityDescriptor: *const SECURITY_DESCRIPTOR, - pub SecurityQualityOfService: *const SECURITY_QUALITY_OF_SERVICE, -} -impl Default for OBJECT_ATTRIBUTES { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub type OBJECT_ATTRIBUTE_FLAGS = u32; -pub const OBJ_CASE_INSENSITIVE: OBJECT_ATTRIBUTE_FLAGS = 64u32; -pub const OBJ_DONT_REPARSE: OBJECT_ATTRIBUTE_FLAGS = 4096u32; -pub const OBJ_EXCLUSIVE: OBJECT_ATTRIBUTE_FLAGS = 32u32; -pub const OBJ_FORCE_ACCESS_CHECK: OBJECT_ATTRIBUTE_FLAGS = 1024u32; -pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: OBJECT_ATTRIBUTE_FLAGS = 2048u32; -pub const OBJ_INHERIT: OBJECT_ATTRIBUTE_FLAGS = 2u32; -pub const OBJ_KERNEL_HANDLE: OBJECT_ATTRIBUTE_FLAGS = 512u32; -pub const OBJ_OPENIF: OBJECT_ATTRIBUTE_FLAGS = 128u32; -pub const OBJ_OPENLINK: OBJECT_ATTRIBUTE_FLAGS = 256u32; -pub const OBJ_PERMANENT: OBJECT_ATTRIBUTE_FLAGS = 16u32; -pub const OPEN_ALWAYS: FILE_CREATION_DISPOSITION = 4u32; -pub const OPEN_EXISTING: FILE_CREATION_DISPOSITION = 3u32; + pub ObjectName: PUNICODE_STRING, + pub Attributes: u32, + pub SecurityDescriptor: *mut core::ffi::c_void, + pub SecurityQualityOfService: *mut core::ffi::c_void, +} +pub const OBJ_CASE_INSENSITIVE: i32 = 64; +pub const OBJ_DONT_REPARSE: i32 = 4096; +pub const OBJ_EXCLUSIVE: i32 = 32; +pub const OBJ_FORCE_ACCESS_CHECK: i32 = 1024; +pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: i32 = 2048; +pub const OBJ_INHERIT: i32 = 2; +pub const OBJ_KERNEL_HANDLE: i32 = 512; +pub const OBJ_OPENIF: i32 = 128; +pub const OBJ_OPENLINK: i32 = 256; +pub const OBJ_PERMANENT: i32 = 16; +pub const OPEN_ALWAYS: i32 = 4; +pub const OPEN_EXISTING: i32 = 3; #[repr(C)] #[derive(Clone, Copy)] pub struct OVERLAPPED { @@ -3075,8 +3041,14 @@ pub struct OVERLAPPED_0_0 { pub Offset: u32, pub OffsetHigh: u32, } +pub type PADDRINFOA = *mut ADDRINFOA; +#[cfg(any(target_arch = "arm64ec", target_arch = "x86", target_arch = "x86_64"))] +pub type PCONTEXT = *mut CONTEXT; +#[cfg(target_arch = "aarch64")] +pub type PCONTEXT = *mut ARM64_NT_CONTEXT; pub type PCSTR = *const u8; pub type PCWSTR = *const u16; +pub type PEXCEPTION_RECORD = *mut EXCEPTION_RECORD; pub type PFLS_CALLBACK_FUNCTION = Option; pub type PIO_APC_ROUTINE = Option< @@ -3086,43 +3058,38 @@ pub type PIO_APC_ROUTINE = Option< reserved: u32, ), >; -pub const PIPE_ACCEPT_REMOTE_CLIENTS: NAMED_PIPE_MODE = 0u32; -pub const PIPE_ACCESS_DUPLEX: FILE_FLAGS_AND_ATTRIBUTES = 3u32; -pub const PIPE_ACCESS_INBOUND: FILE_FLAGS_AND_ATTRIBUTES = 1u32; -pub const PIPE_ACCESS_OUTBOUND: FILE_FLAGS_AND_ATTRIBUTES = 2u32; -pub const PIPE_CLIENT_END: NAMED_PIPE_MODE = 0u32; -pub const PIPE_NOWAIT: NAMED_PIPE_MODE = 1u32; -pub const PIPE_READMODE_BYTE: NAMED_PIPE_MODE = 0u32; -pub const PIPE_READMODE_MESSAGE: NAMED_PIPE_MODE = 2u32; -pub const PIPE_REJECT_REMOTE_CLIENTS: NAMED_PIPE_MODE = 8u32; -pub const PIPE_SERVER_END: NAMED_PIPE_MODE = 1u32; -pub const PIPE_TYPE_BYTE: NAMED_PIPE_MODE = 0u32; -pub const PIPE_TYPE_MESSAGE: NAMED_PIPE_MODE = 4u32; -pub const PIPE_WAIT: NAMED_PIPE_MODE = 0u32; +pub const PIPE_ACCEPT_REMOTE_CLIENTS: i32 = 0; +pub const PIPE_ACCESS_DUPLEX: i32 = 3; +pub const PIPE_ACCESS_INBOUND: i32 = 1; +pub const PIPE_ACCESS_OUTBOUND: i32 = 2; +pub const PIPE_CLIENT_END: i32 = 0; +pub const PIPE_NOWAIT: i32 = 1; +pub const PIPE_READMODE_BYTE: i32 = 0; +pub const PIPE_READMODE_MESSAGE: i32 = 2; +pub const PIPE_REJECT_REMOTE_CLIENTS: i32 = 8; +pub const PIPE_SERVER_END: i32 = 1; +pub const PIPE_TYPE_BYTE: i32 = 0; +pub const PIPE_TYPE_MESSAGE: i32 = 4; +pub const PIPE_WAIT: i32 = 0; pub type PRIORITY_HINT = i32; -pub type PROCESSOR_ARCHITECTURE = u16; -pub type PROCESS_CREATION_FLAGS = u32; #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct PROCESS_INFORMATION { pub hProcess: HANDLE, pub hThread: HANDLE, pub dwProcessId: u32, pub dwThreadId: u32, } -impl Default for PROCESS_INFORMATION { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub const PROCESS_MODE_BACKGROUND_BEGIN: PROCESS_CREATION_FLAGS = 1048576u32; -pub const PROCESS_MODE_BACKGROUND_END: PROCESS_CREATION_FLAGS = 2097152u32; -pub const PROFILE_KERNEL: PROCESS_CREATION_FLAGS = 536870912u32; -pub const PROFILE_SERVER: PROCESS_CREATION_FLAGS = 1073741824u32; -pub const PROFILE_USER: PROCESS_CREATION_FLAGS = 268435456u32; -pub const PROGRESS_CONTINUE: COPYPROGRESSROUTINE_PROGRESS = 0u32; -pub type PSID = *mut core::ffi::c_void; +pub const PROCESS_MODE_BACKGROUND_BEGIN: i32 = 1048576; +pub const PROCESS_MODE_BACKGROUND_END: i32 = 2097152; +pub const PROFILE_KERNEL: i32 = 536870912; +pub const PROFILE_SERVER: i32 = 1073741824; +pub const PROFILE_USER: i32 = 268435456; +pub const PROGRESS_CONTINUE: i32 = 0; +pub type PRTL_RUN_ONCE = *mut RTL_RUN_ONCE; pub type PSTR = *mut u8; +pub type PTHREAD_START_ROUTINE = + Option u32>; pub type PTIMERAPCROUTINE = Option< unsafe extern "system" fn( lpargtocompletionroutine: *const core::ffi::c_void, @@ -3130,62 +3097,50 @@ pub type PTIMERAPCROUTINE = Option< dwtimerhighvalue: u32, ), >; +pub type PUNICODE_STRING = *mut UNICODE_STRING; pub type PVECTORED_EXCEPTION_HANDLER = Option i32>; pub type PWSTR = *mut u16; -pub const READ_CONTROL: FILE_ACCESS_RIGHTS = 131072u32; -pub const REALTIME_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 256u32; -pub const SD_BOTH: WINSOCK_SHUTDOWN_HOW = 2i32; -pub const SD_RECEIVE: WINSOCK_SHUTDOWN_HOW = 0i32; -pub const SD_SEND: WINSOCK_SHUTDOWN_HOW = 1i32; -pub const SECURITY_ANONYMOUS: FILE_FLAGS_AND_ATTRIBUTES = 0u32; +pub const READ_CONTROL: i32 = 131072; +pub const REALTIME_PRIORITY_CLASS: i32 = 256; +#[repr(C)] +#[derive(Clone, Copy, Default)] +pub struct RTL_CONDITION_VARIABLE { + pub Ptr: *mut core::ffi::c_void, +} #[repr(C)] #[derive(Clone, Copy)] -pub struct SECURITY_ATTRIBUTES { - pub nLength: u32, - pub lpSecurityDescriptor: *mut core::ffi::c_void, - pub bInheritHandle: BOOL, +pub union RTL_RUN_ONCE { + pub Ptr: *mut core::ffi::c_void, } -impl Default for SECURITY_ATTRIBUTES { +impl Default for RTL_RUN_ONCE { fn default() -> Self { unsafe { core::mem::zeroed() } } } -pub const SECURITY_CONTEXT_TRACKING: FILE_FLAGS_AND_ATTRIBUTES = 262144u32; -pub const SECURITY_DELEGATION: FILE_FLAGS_AND_ATTRIBUTES = 196608u32; #[repr(C)] -#[derive(Clone, Copy)] -pub struct SECURITY_DESCRIPTOR { - pub Revision: u8, - pub Sbz1: u8, - pub Control: SECURITY_DESCRIPTOR_CONTROL, - pub Owner: PSID, - pub Group: PSID, - pub Sacl: *mut ACL, - pub Dacl: *mut ACL, -} -impl Default for SECURITY_DESCRIPTOR { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } +#[derive(Clone, Copy, Default)] +pub struct RTL_SRWLOCK { + pub Ptr: *mut core::ffi::c_void, } -pub type SECURITY_DESCRIPTOR_CONTROL = u16; -pub const SECURITY_EFFECTIVE_ONLY: FILE_FLAGS_AND_ATTRIBUTES = 524288u32; -pub const SECURITY_IDENTIFICATION: FILE_FLAGS_AND_ATTRIBUTES = 65536u32; -pub const SECURITY_IMPERSONATION: FILE_FLAGS_AND_ATTRIBUTES = 131072u32; -pub type SECURITY_IMPERSONATION_LEVEL = i32; +pub const SD_BOTH: i32 = 2; +pub const SD_RECEIVE: i32 = 0; +pub const SD_SEND: i32 = 1; +pub const SECURITY_ANONYMOUS: i32 = 0; #[repr(C)] #[derive(Clone, Copy, Default)] -pub struct SECURITY_QUALITY_OF_SERVICE { - pub Length: u32, - pub ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, - pub ContextTrackingMode: u8, - pub EffectiveOnly: bool, +pub struct SECURITY_ATTRIBUTES { + pub nLength: u32, + pub lpSecurityDescriptor: *mut core::ffi::c_void, + pub bInheritHandle: BOOL, } -pub const SECURITY_SQOS_PRESENT: FILE_FLAGS_AND_ATTRIBUTES = 1048576u32; -pub const SECURITY_VALID_SQOS_FLAGS: FILE_FLAGS_AND_ATTRIBUTES = 2031616u32; -pub type SEND_RECV_FLAGS = i32; -pub type SET_FILE_POINTER_MOVE_METHOD = u32; +pub const SECURITY_CONTEXT_TRACKING: i32 = 262144; +pub const SECURITY_DELEGATION: i32 = 196608; +pub const SECURITY_EFFECTIVE_ONLY: i32 = 524288; +pub const SECURITY_IDENTIFICATION: i32 = 65536; +pub const SECURITY_IMPERSONATION: i32 = 131072; +pub const SECURITY_SQOS_PRESENT: i32 = 1048576; +pub const SECURITY_VALID_SQOS_FLAGS: i32 = 2031616; #[repr(C)] #[derive(Clone, Copy)] pub struct SOCKADDR { @@ -3197,15 +3152,16 @@ impl Default for SOCKADDR { unsafe { core::mem::zeroed() } } } +pub type SOCKADDR_STORAGE = SOCKADDR_STORAGE_LH; #[repr(C)] #[derive(Clone, Copy)] -pub struct SOCKADDR_STORAGE { +pub struct SOCKADDR_STORAGE_LH { pub ss_family: ADDRESS_FAMILY, pub __ss_pad1: [i8; 6], pub __ss_align: i64, pub __ss_pad2: [i8; 112], } -impl Default for SOCKADDR_STORAGE { +impl Default for SOCKADDR_STORAGE_LH { fn default() -> Self { unsafe { core::mem::zeroed() } } @@ -3222,63 +3178,49 @@ impl Default for SOCKADDR_UN { } } pub type SOCKET = usize; -pub const SOCKET_ERROR: i32 = -1i32; -pub const SOCK_DGRAM: WINSOCK_SOCKET_TYPE = 2i32; -pub const SOCK_RAW: WINSOCK_SOCKET_TYPE = 3i32; -pub const SOCK_RDM: WINSOCK_SOCKET_TYPE = 4i32; -pub const SOCK_SEQPACKET: WINSOCK_SOCKET_TYPE = 5i32; -pub const SOCK_STREAM: WINSOCK_SOCKET_TYPE = 1i32; -pub const SOL_SOCKET: i32 = 65535i32; -pub const SO_BROADCAST: i32 = 32i32; -pub const SO_ERROR: i32 = 4103i32; -pub const SO_KEEPALIVE: i32 = 8i32; -pub const SO_LINGER: i32 = 128i32; -pub const SO_RCVTIMEO: i32 = 4102i32; -pub const SO_SNDTIMEO: i32 = 4101i32; -pub const SPECIFIC_RIGHTS_ALL: FILE_ACCESS_RIGHTS = 65535u32; +pub const SOCKET_ERROR: i32 = -1; +pub const SOCK_DGRAM: i32 = 2; +pub const SOCK_RAW: i32 = 3; +pub const SOCK_RDM: i32 = 4; +pub const SOCK_SEQPACKET: i32 = 5; +pub const SOCK_STREAM: i32 = 1; +pub const SOL_SOCKET: i32 = 65535; +pub const SO_BROADCAST: i32 = 32; +pub const SO_ERROR: i32 = 4103; +pub const SO_KEEPALIVE: i32 = 8; +pub const SO_LINGER: i32 = 128; +pub const SO_RCVTIMEO: i32 = 4102; +pub const SO_SNDTIMEO: i32 = 4101; +pub const SPECIFIC_RIGHTS_ALL: i32 = 65535; +pub type SRWLOCK = RTL_SRWLOCK; +pub const STACK_SIZE_PARAM_IS_A_RESERVATION: i32 = 65536; +pub const STANDARD_RIGHTS_ALL: i32 = 2031616; +pub const STANDARD_RIGHTS_EXECUTE: i32 = 131072; +pub const STANDARD_RIGHTS_READ: i32 = 131072; +pub const STANDARD_RIGHTS_REQUIRED: i32 = 983040; +pub const STANDARD_RIGHTS_WRITE: i32 = 131072; +pub const STARTF_FORCEOFFFEEDBACK: i32 = 128; +pub const STARTF_FORCEONFEEDBACK: i32 = 64; +pub const STARTF_PREVENTPINNING: i32 = 8192; +pub const STARTF_RUNFULLSCREEN: i32 = 32; +pub const STARTF_TITLEISAPPID: i32 = 4096; +pub const STARTF_TITLEISLINKNAME: i32 = 2048; +pub const STARTF_UNTRUSTEDSOURCE: i32 = 32768; +pub const STARTF_USECOUNTCHARS: i32 = 8; +pub const STARTF_USEFILLATTRIBUTE: i32 = 16; +pub const STARTF_USEHOTKEY: i32 = 512; +pub const STARTF_USEPOSITION: i32 = 4; +pub const STARTF_USESHOWWINDOW: i32 = 1; +pub const STARTF_USESIZE: i32 = 2; +pub const STARTF_USESTDHANDLES: i32 = 256; #[repr(C)] -#[derive(Clone, Copy)] -pub struct SRWLOCK { - pub Ptr: *mut core::ffi::c_void, -} -impl Default for SRWLOCK { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub const STACK_SIZE_PARAM_IS_A_RESERVATION: THREAD_CREATION_FLAGS = 65536u32; -pub const STANDARD_RIGHTS_ALL: FILE_ACCESS_RIGHTS = 2031616u32; -pub const STANDARD_RIGHTS_EXECUTE: FILE_ACCESS_RIGHTS = 131072u32; -pub const STANDARD_RIGHTS_READ: FILE_ACCESS_RIGHTS = 131072u32; -pub const STANDARD_RIGHTS_REQUIRED: FILE_ACCESS_RIGHTS = 983040u32; -pub const STANDARD_RIGHTS_WRITE: FILE_ACCESS_RIGHTS = 131072u32; -pub const STARTF_FORCEOFFFEEDBACK: STARTUPINFOW_FLAGS = 128u32; -pub const STARTF_FORCEONFEEDBACK: STARTUPINFOW_FLAGS = 64u32; -pub const STARTF_PREVENTPINNING: STARTUPINFOW_FLAGS = 8192u32; -pub const STARTF_RUNFULLSCREEN: STARTUPINFOW_FLAGS = 32u32; -pub const STARTF_TITLEISAPPID: STARTUPINFOW_FLAGS = 4096u32; -pub const STARTF_TITLEISLINKNAME: STARTUPINFOW_FLAGS = 2048u32; -pub const STARTF_UNTRUSTEDSOURCE: STARTUPINFOW_FLAGS = 32768u32; -pub const STARTF_USECOUNTCHARS: STARTUPINFOW_FLAGS = 8u32; -pub const STARTF_USEFILLATTRIBUTE: STARTUPINFOW_FLAGS = 16u32; -pub const STARTF_USEHOTKEY: STARTUPINFOW_FLAGS = 512u32; -pub const STARTF_USEPOSITION: STARTUPINFOW_FLAGS = 4u32; -pub const STARTF_USESHOWWINDOW: STARTUPINFOW_FLAGS = 1u32; -pub const STARTF_USESIZE: STARTUPINFOW_FLAGS = 2u32; -pub const STARTF_USESTDHANDLES: STARTUPINFOW_FLAGS = 256u32; -#[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct STARTUPINFOEXW { pub StartupInfo: STARTUPINFOW, pub lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, } -impl Default for STARTUPINFOEXW { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct STARTUPINFOW { pub cb: u32, pub lpReserved: PWSTR, @@ -3291,20 +3233,14 @@ pub struct STARTUPINFOW { pub dwXCountChars: u32, pub dwYCountChars: u32, pub dwFillAttribute: u32, - pub dwFlags: STARTUPINFOW_FLAGS, + pub dwFlags: u32, pub wShowWindow: u16, pub cbReserved2: u16, - pub lpReserved2: *mut u8, + pub lpReserved2: LPBYTE, pub hStdInput: HANDLE, pub hStdOutput: HANDLE, pub hStdError: HANDLE, } -impl Default for STARTUPINFOW { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub type STARTUPINFOW_FLAGS = u32; pub const STATUS_DELETE_PENDING: NTSTATUS = 0xC0000056_u32 as _; pub const STATUS_DIRECTORY_NOT_EMPTY: NTSTATUS = 0xC0000101_u32 as _; pub const STATUS_END_OF_FILE: NTSTATUS = 0xC0000011_u32 as _; @@ -3315,16 +3251,13 @@ pub const STATUS_NOT_IMPLEMENTED: NTSTATUS = 0xC0000002_u32 as _; pub const STATUS_PENDING: NTSTATUS = 0x103_u32 as _; pub const STATUS_SHARING_VIOLATION: NTSTATUS = 0xC0000043_u32 as _; pub const STATUS_SUCCESS: NTSTATUS = 0x0_u32 as _; -pub const STD_ERROR_HANDLE: STD_HANDLE = 4294967284u32; -pub type STD_HANDLE = u32; -pub const STD_INPUT_HANDLE: STD_HANDLE = 4294967286u32; -pub const STD_OUTPUT_HANDLE: STD_HANDLE = 4294967285u32; -pub type SYMBOLIC_LINK_FLAGS = u32; -pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: SYMBOLIC_LINK_FLAGS = 2u32; -pub const SYMBOLIC_LINK_FLAG_DIRECTORY: SYMBOLIC_LINK_FLAGS = 1u32; -pub const SYMLINK_FLAG_RELATIVE: u32 = 1u32; -pub type SYNCHRONIZATION_ACCESS_RIGHTS = u32; -pub const SYNCHRONIZE: FILE_ACCESS_RIGHTS = 1048576u32; +pub const STD_ERROR_HANDLE: u32 = 4294967284; +pub const STD_INPUT_HANDLE: u32 = 4294967286; +pub const STD_OUTPUT_HANDLE: u32 = 4294967285; +pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: i32 = 2; +pub const SYMBOLIC_LINK_FLAG_DIRECTORY: i32 = 1; +pub const SYMLINK_FLAG_RELATIVE: i32 = 1; +pub const SYNCHRONIZE: i32 = 1048576; #[repr(C)] #[derive(Clone, Copy)] pub struct SYSTEM_INFO { @@ -3358,71 +3291,50 @@ impl Default for SYSTEM_INFO_0 { #[repr(C)] #[derive(Clone, Copy, Default)] pub struct SYSTEM_INFO_0_0 { - pub wProcessorArchitecture: PROCESSOR_ARCHITECTURE, + pub wProcessorArchitecture: u16, pub wReserved: u16, } -pub const TCP_NODELAY: i32 = 1i32; -pub const THREAD_CREATE_RUN_IMMEDIATELY: THREAD_CREATION_FLAGS = 0u32; -pub const THREAD_CREATE_SUSPENDED: THREAD_CREATION_FLAGS = 4u32; -pub type THREAD_CREATION_FLAGS = u32; -pub const TIMER_ALL_ACCESS: SYNCHRONIZATION_ACCESS_RIGHTS = 2031619u32; -pub const TIMER_MODIFY_STATE: SYNCHRONIZATION_ACCESS_RIGHTS = 2u32; +pub const TCP_NODELAY: i32 = 1; +pub const TIMER_ALL_ACCESS: i32 = 2031619; +pub const TIMER_MODIFY_STATE: i32 = 2; +pub type TIMEVAL = timeval; +pub const TLS_OUT_OF_INDEXES: u32 = 4294967295; +pub const TOKEN_ACCESS_PSEUDO_HANDLE: i32 = 24; +pub const TOKEN_ACCESS_PSEUDO_HANDLE_WIN8: i32 = 24; +pub const TOKEN_ADJUST_DEFAULT: i32 = 128; +pub const TOKEN_ADJUST_GROUPS: i32 = 64; +pub const TOKEN_ADJUST_PRIVILEGES: i32 = 32; +pub const TOKEN_ADJUST_SESSIONID: i32 = 256; +pub const TOKEN_ALL_ACCESS: i32 = 983551; +pub const TOKEN_ASSIGN_PRIMARY: i32 = 1; +pub const TOKEN_DUPLICATE: i32 = 2; +pub const TOKEN_EXECUTE: i32 = 131072; +pub const TOKEN_IMPERSONATE: i32 = 4; +pub const TOKEN_QUERY: i32 = 8; +pub const TOKEN_QUERY_SOURCE: i32 = 16; +pub const TOKEN_READ: i32 = 131080; +pub const TOKEN_TRUST_CONSTRAINT_MASK: i32 = 131096; +pub const TOKEN_WRITE: i32 = 131296; +pub const TRUE: i32 = 1; +pub const TRUNCATE_EXISTING: i32 = 5; #[repr(C)] #[derive(Clone, Copy, Default)] -pub struct TIMEVAL { - pub tv_sec: i32, - pub tv_usec: i32, -} -pub const TLS_OUT_OF_INDEXES: u32 = 4294967295u32; -pub type TOKEN_ACCESS_MASK = u32; -pub const TOKEN_ACCESS_PSEUDO_HANDLE: TOKEN_ACCESS_MASK = 24u32; -pub const TOKEN_ACCESS_PSEUDO_HANDLE_WIN8: TOKEN_ACCESS_MASK = 24u32; -pub const TOKEN_ACCESS_SYSTEM_SECURITY: TOKEN_ACCESS_MASK = 16777216u32; -pub const TOKEN_ADJUST_DEFAULT: TOKEN_ACCESS_MASK = 128u32; -pub const TOKEN_ADJUST_GROUPS: TOKEN_ACCESS_MASK = 64u32; -pub const TOKEN_ADJUST_PRIVILEGES: TOKEN_ACCESS_MASK = 32u32; -pub const TOKEN_ADJUST_SESSIONID: TOKEN_ACCESS_MASK = 256u32; -pub const TOKEN_ALL_ACCESS: TOKEN_ACCESS_MASK = 983551u32; -pub const TOKEN_ASSIGN_PRIMARY: TOKEN_ACCESS_MASK = 1u32; -pub const TOKEN_DELETE: TOKEN_ACCESS_MASK = 65536u32; -pub const TOKEN_DUPLICATE: TOKEN_ACCESS_MASK = 2u32; -pub const TOKEN_EXECUTE: TOKEN_ACCESS_MASK = 131072u32; -pub const TOKEN_IMPERSONATE: TOKEN_ACCESS_MASK = 4u32; -pub const TOKEN_QUERY: TOKEN_ACCESS_MASK = 8u32; -pub const TOKEN_QUERY_SOURCE: TOKEN_ACCESS_MASK = 16u32; -pub const TOKEN_READ: TOKEN_ACCESS_MASK = 131080u32; -pub const TOKEN_READ_CONTROL: TOKEN_ACCESS_MASK = 131072u32; -pub const TOKEN_TRUST_CONSTRAINT_MASK: TOKEN_ACCESS_MASK = 131096u32; -pub const TOKEN_WRITE: TOKEN_ACCESS_MASK = 131296u32; -pub const TOKEN_WRITE_DAC: TOKEN_ACCESS_MASK = 262144u32; -pub const TOKEN_WRITE_OWNER: TOKEN_ACCESS_MASK = 524288u32; -pub const TRUE: BOOL = 1i32; -pub const TRUNCATE_EXISTING: FILE_CREATION_DISPOSITION = 5u32; -#[repr(C)] -#[derive(Clone, Copy)] pub struct UNICODE_STRING { pub Length: u16, pub MaximumLength: u16, pub Buffer: PWSTR, } -impl Default for UNICODE_STRING { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } -} -pub const VOLUME_NAME_DOS: GETFINALPATHNAMEBYHANDLE_FLAGS = 0u32; -pub const VOLUME_NAME_GUID: GETFINALPATHNAMEBYHANDLE_FLAGS = 1u32; -pub const VOLUME_NAME_NONE: GETFINALPATHNAMEBYHANDLE_FLAGS = 4u32; -pub const VOLUME_NAME_NT: GETFINALPATHNAMEBYHANDLE_FLAGS = 2u32; -pub const WAIT_ABANDONED: WAIT_EVENT = 128u32; -pub const WAIT_ABANDONED_0: WAIT_EVENT = 128u32; -pub type WAIT_EVENT = u32; -pub const WAIT_FAILED: WAIT_EVENT = 4294967295u32; -pub const WAIT_IO_COMPLETION: WAIT_EVENT = 192u32; -pub const WAIT_OBJECT_0: WAIT_EVENT = 0u32; -pub const WAIT_TIMEOUT: WAIT_EVENT = 258u32; -pub const WC_ERR_INVALID_CHARS: u32 = 128u32; -pub type WIN32_ERROR = u32; +pub const VOLUME_NAME_DOS: i32 = 0; +pub const VOLUME_NAME_GUID: i32 = 1; +pub const VOLUME_NAME_NONE: i32 = 4; +pub const VOLUME_NAME_NT: i32 = 2; +pub const WAIT_ABANDONED: i32 = 128; +pub const WAIT_ABANDONED_0: i32 = 128; +pub const WAIT_FAILED: u32 = 4294967295; +pub const WAIT_IO_COMPLETION: i32 = 192; +pub const WAIT_OBJECT_0: i32 = 0; +pub const WAIT_TIMEOUT: i32 = 258; +pub const WC_ERR_INVALID_CHARS: i32 = 128; #[repr(C)] #[derive(Clone, Copy)] pub struct WIN32_FIND_DATAW { @@ -3442,21 +3354,14 @@ impl Default for WIN32_FIND_DATAW { unsafe { core::mem::zeroed() } } } -pub type WINSOCK_SHUTDOWN_HOW = i32; -pub type WINSOCK_SOCKET_TYPE = i32; -pub const WRITE_DAC: FILE_ACCESS_RIGHTS = 262144u32; -pub const WRITE_OWNER: FILE_ACCESS_RIGHTS = 524288u32; -pub const WSABASEERR: WSA_ERROR = 10000i32; +pub const WRITE_DAC: i32 = 262144; +pub const WRITE_OWNER: i32 = 524288; +pub const WSABASEERR: i32 = 10000; #[repr(C)] -#[derive(Clone, Copy)] +#[derive(Clone, Copy, Default)] pub struct WSABUF { pub len: u32, - pub buf: PSTR, -} -impl Default for WSABUF { - fn default() -> Self { - unsafe { core::mem::zeroed() } - } + pub buf: *mut i8, } #[repr(C)] #[cfg(target_arch = "x86")] @@ -3468,7 +3373,7 @@ pub struct WSADATA { pub szSystemStatus: [i8; 129], pub iMaxSockets: u16, pub iMaxUdpDg: u16, - pub lpVendorInfo: PSTR, + pub lpVendorInfo: *mut i8, } #[cfg(target_arch = "x86")] impl Default for WSADATA { @@ -3484,7 +3389,7 @@ pub struct WSADATA { pub wHighVersion: u16, pub iMaxSockets: u16, pub iMaxUdpDg: u16, - pub lpVendorInfo: PSTR, + pub lpVendorInfo: *mut i8, pub szDescription: [i8; 257], pub szSystemStatus: [i8; 129], } @@ -3494,60 +3399,60 @@ impl Default for WSADATA { unsafe { core::mem::zeroed() } } } -pub const WSAEACCES: WSA_ERROR = 10013i32; -pub const WSAEADDRINUSE: WSA_ERROR = 10048i32; -pub const WSAEADDRNOTAVAIL: WSA_ERROR = 10049i32; -pub const WSAEAFNOSUPPORT: WSA_ERROR = 10047i32; -pub const WSAEALREADY: WSA_ERROR = 10037i32; -pub const WSAEBADF: WSA_ERROR = 10009i32; -pub const WSAECANCELLED: WSA_ERROR = 10103i32; -pub const WSAECONNABORTED: WSA_ERROR = 10053i32; -pub const WSAECONNREFUSED: WSA_ERROR = 10061i32; -pub const WSAECONNRESET: WSA_ERROR = 10054i32; -pub const WSAEDESTADDRREQ: WSA_ERROR = 10039i32; -pub const WSAEDISCON: WSA_ERROR = 10101i32; -pub const WSAEDQUOT: WSA_ERROR = 10069i32; -pub const WSAEFAULT: WSA_ERROR = 10014i32; -pub const WSAEHOSTDOWN: WSA_ERROR = 10064i32; -pub const WSAEHOSTUNREACH: WSA_ERROR = 10065i32; -pub const WSAEINPROGRESS: WSA_ERROR = 10036i32; -pub const WSAEINTR: WSA_ERROR = 10004i32; -pub const WSAEINVAL: WSA_ERROR = 10022i32; -pub const WSAEINVALIDPROCTABLE: WSA_ERROR = 10104i32; -pub const WSAEINVALIDPROVIDER: WSA_ERROR = 10105i32; -pub const WSAEISCONN: WSA_ERROR = 10056i32; -pub const WSAELOOP: WSA_ERROR = 10062i32; -pub const WSAEMFILE: WSA_ERROR = 10024i32; -pub const WSAEMSGSIZE: WSA_ERROR = 10040i32; -pub const WSAENAMETOOLONG: WSA_ERROR = 10063i32; -pub const WSAENETDOWN: WSA_ERROR = 10050i32; -pub const WSAENETRESET: WSA_ERROR = 10052i32; -pub const WSAENETUNREACH: WSA_ERROR = 10051i32; -pub const WSAENOBUFS: WSA_ERROR = 10055i32; -pub const WSAENOMORE: WSA_ERROR = 10102i32; -pub const WSAENOPROTOOPT: WSA_ERROR = 10042i32; -pub const WSAENOTCONN: WSA_ERROR = 10057i32; -pub const WSAENOTEMPTY: WSA_ERROR = 10066i32; -pub const WSAENOTSOCK: WSA_ERROR = 10038i32; -pub const WSAEOPNOTSUPP: WSA_ERROR = 10045i32; -pub const WSAEPFNOSUPPORT: WSA_ERROR = 10046i32; -pub const WSAEPROCLIM: WSA_ERROR = 10067i32; -pub const WSAEPROTONOSUPPORT: WSA_ERROR = 10043i32; -pub const WSAEPROTOTYPE: WSA_ERROR = 10041i32; -pub const WSAEPROVIDERFAILEDINIT: WSA_ERROR = 10106i32; -pub const WSAEREFUSED: WSA_ERROR = 10112i32; -pub const WSAEREMOTE: WSA_ERROR = 10071i32; -pub const WSAESHUTDOWN: WSA_ERROR = 10058i32; -pub const WSAESOCKTNOSUPPORT: WSA_ERROR = 10044i32; -pub const WSAESTALE: WSA_ERROR = 10070i32; -pub const WSAETIMEDOUT: WSA_ERROR = 10060i32; -pub const WSAETOOMANYREFS: WSA_ERROR = 10059i32; -pub const WSAEUSERS: WSA_ERROR = 10068i32; -pub const WSAEWOULDBLOCK: WSA_ERROR = 10035i32; -pub const WSAHOST_NOT_FOUND: WSA_ERROR = 11001i32; -pub const WSANOTINITIALISED: WSA_ERROR = 10093i32; -pub const WSANO_DATA: WSA_ERROR = 11004i32; -pub const WSANO_RECOVERY: WSA_ERROR = 11003i32; +pub const WSAEACCES: i32 = 10013; +pub const WSAEADDRINUSE: i32 = 10048; +pub const WSAEADDRNOTAVAIL: i32 = 10049; +pub const WSAEAFNOSUPPORT: i32 = 10047; +pub const WSAEALREADY: i32 = 10037; +pub const WSAEBADF: i32 = 10009; +pub const WSAECANCELLED: i32 = 10103; +pub const WSAECONNABORTED: i32 = 10053; +pub const WSAECONNREFUSED: i32 = 10061; +pub const WSAECONNRESET: i32 = 10054; +pub const WSAEDESTADDRREQ: i32 = 10039; +pub const WSAEDISCON: i32 = 10101; +pub const WSAEDQUOT: i32 = 10069; +pub const WSAEFAULT: i32 = 10014; +pub const WSAEHOSTDOWN: i32 = 10064; +pub const WSAEHOSTUNREACH: i32 = 10065; +pub const WSAEINPROGRESS: i32 = 10036; +pub const WSAEINTR: i32 = 10004; +pub const WSAEINVAL: i32 = 10022; +pub const WSAEINVALIDPROCTABLE: i32 = 10104; +pub const WSAEINVALIDPROVIDER: i32 = 10105; +pub const WSAEISCONN: i32 = 10056; +pub const WSAELOOP: i32 = 10062; +pub const WSAEMFILE: i32 = 10024; +pub const WSAEMSGSIZE: i32 = 10040; +pub const WSAENAMETOOLONG: i32 = 10063; +pub const WSAENETDOWN: i32 = 10050; +pub const WSAENETRESET: i32 = 10052; +pub const WSAENETUNREACH: i32 = 10051; +pub const WSAENOBUFS: i32 = 10055; +pub const WSAENOMORE: i32 = 10102; +pub const WSAENOPROTOOPT: i32 = 10042; +pub const WSAENOTCONN: i32 = 10057; +pub const WSAENOTEMPTY: i32 = 10066; +pub const WSAENOTSOCK: i32 = 10038; +pub const WSAEOPNOTSUPP: i32 = 10045; +pub const WSAEPFNOSUPPORT: i32 = 10046; +pub const WSAEPROCLIM: i32 = 10067; +pub const WSAEPROTONOSUPPORT: i32 = 10043; +pub const WSAEPROTOTYPE: i32 = 10041; +pub const WSAEPROVIDERFAILEDINIT: i32 = 10106; +pub const WSAEREFUSED: i32 = 10112; +pub const WSAEREMOTE: i32 = 10071; +pub const WSAESHUTDOWN: i32 = 10058; +pub const WSAESOCKTNOSUPPORT: i32 = 10044; +pub const WSAESTALE: i32 = 10070; +pub const WSAETIMEDOUT: i32 = 10060; +pub const WSAETOOMANYREFS: i32 = 10059; +pub const WSAEUSERS: i32 = 10068; +pub const WSAEWOULDBLOCK: i32 = 10035; +pub const WSAHOST_NOT_FOUND: i32 = 11001; +pub const WSANOTINITIALISED: i32 = 10093; +pub const WSANO_DATA: i32 = 11004; +pub const WSANO_RECOVERY: i32 = 11003; #[repr(C)] #[derive(Clone, Copy)] pub struct WSAPROTOCOLCHAIN { @@ -3588,54 +3493,55 @@ impl Default for WSAPROTOCOL_INFOW { unsafe { core::mem::zeroed() } } } -pub const WSASERVICE_NOT_FOUND: WSA_ERROR = 10108i32; -pub const WSASYSCALLFAILURE: WSA_ERROR = 10107i32; -pub const WSASYSNOTREADY: WSA_ERROR = 10091i32; -pub const WSATRY_AGAIN: WSA_ERROR = 11002i32; -pub const WSATYPE_NOT_FOUND: WSA_ERROR = 10109i32; -pub const WSAVERNOTSUPPORTED: WSA_ERROR = 10092i32; -pub type WSA_ERROR = i32; -pub const WSA_E_CANCELLED: WSA_ERROR = 10111i32; -pub const WSA_E_NO_MORE: WSA_ERROR = 10110i32; -pub const WSA_FLAG_NO_HANDLE_INHERIT: u32 = 128u32; -pub const WSA_FLAG_OVERLAPPED: u32 = 1u32; -pub const WSA_INVALID_HANDLE: WSA_ERROR = 6i32; -pub const WSA_INVALID_PARAMETER: WSA_ERROR = 87i32; -pub const WSA_IO_INCOMPLETE: WSA_ERROR = 996i32; -pub const WSA_IO_PENDING: WSA_ERROR = 997i32; -pub const WSA_IPSEC_NAME_POLICY_ERROR: WSA_ERROR = 11033i32; -pub const WSA_NOT_ENOUGH_MEMORY: WSA_ERROR = 8i32; -pub const WSA_OPERATION_ABORTED: WSA_ERROR = 995i32; -pub const WSA_QOS_ADMISSION_FAILURE: WSA_ERROR = 11010i32; -pub const WSA_QOS_BAD_OBJECT: WSA_ERROR = 11013i32; -pub const WSA_QOS_BAD_STYLE: WSA_ERROR = 11012i32; -pub const WSA_QOS_EFILTERCOUNT: WSA_ERROR = 11021i32; -pub const WSA_QOS_EFILTERSTYLE: WSA_ERROR = 11019i32; -pub const WSA_QOS_EFILTERTYPE: WSA_ERROR = 11020i32; -pub const WSA_QOS_EFLOWCOUNT: WSA_ERROR = 11023i32; -pub const WSA_QOS_EFLOWDESC: WSA_ERROR = 11026i32; -pub const WSA_QOS_EFLOWSPEC: WSA_ERROR = 11017i32; -pub const WSA_QOS_EOBJLENGTH: WSA_ERROR = 11022i32; -pub const WSA_QOS_EPOLICYOBJ: WSA_ERROR = 11025i32; -pub const WSA_QOS_EPROVSPECBUF: WSA_ERROR = 11018i32; -pub const WSA_QOS_EPSFILTERSPEC: WSA_ERROR = 11028i32; -pub const WSA_QOS_EPSFLOWSPEC: WSA_ERROR = 11027i32; -pub const WSA_QOS_ESDMODEOBJ: WSA_ERROR = 11029i32; -pub const WSA_QOS_ESERVICETYPE: WSA_ERROR = 11016i32; -pub const WSA_QOS_ESHAPERATEOBJ: WSA_ERROR = 11030i32; -pub const WSA_QOS_EUNKOWNPSOBJ: WSA_ERROR = 11024i32; -pub const WSA_QOS_GENERIC_ERROR: WSA_ERROR = 11015i32; -pub const WSA_QOS_NO_RECEIVERS: WSA_ERROR = 11008i32; -pub const WSA_QOS_NO_SENDERS: WSA_ERROR = 11007i32; -pub const WSA_QOS_POLICY_FAILURE: WSA_ERROR = 11011i32; -pub const WSA_QOS_RECEIVERS: WSA_ERROR = 11005i32; -pub const WSA_QOS_REQUEST_CONFIRMED: WSA_ERROR = 11009i32; -pub const WSA_QOS_RESERVED_PETYPE: WSA_ERROR = 11031i32; -pub const WSA_QOS_SENDERS: WSA_ERROR = 11006i32; -pub const WSA_QOS_TRAFFIC_CTRL_ERROR: WSA_ERROR = 11014i32; -pub const WSA_SECURE_HOST_NOT_FOUND: WSA_ERROR = 11032i32; -pub const WSA_WAIT_EVENT_0: WSA_ERROR = 0i32; -pub const WSA_WAIT_IO_COMPLETION: WSA_ERROR = 192i32; +pub const WSASERVICE_NOT_FOUND: i32 = 10108; +pub const WSASYSCALLFAILURE: i32 = 10107; +pub const WSASYSNOTREADY: i32 = 10091; +pub const WSATRY_AGAIN: i32 = 11002; +pub const WSATYPE_NOT_FOUND: i32 = 10109; +pub const WSAVERNOTSUPPORTED: i32 = 10092; +pub const WSA_E_CANCELLED: i32 = 10111; +pub const WSA_E_NO_MORE: i32 = 10110; +pub const WSA_FLAG_NO_HANDLE_INHERIT: i32 = 128; +pub const WSA_FLAG_OVERLAPPED: i32 = 1; +pub const WSA_INVALID_HANDLE: i32 = 6; +pub const WSA_INVALID_PARAMETER: i32 = 87; +pub const WSA_IO_INCOMPLETE: i32 = 996; +pub const WSA_IO_PENDING: i32 = 997; +pub const WSA_IPSEC_NAME_POLICY_ERROR: i32 = 11033; +pub const WSA_NOT_ENOUGH_MEMORY: i32 = 8; +pub const WSA_OPERATION_ABORTED: i32 = 995; +pub const WSA_QOS_ADMISSION_FAILURE: i32 = 11010; +pub const WSA_QOS_BAD_OBJECT: i32 = 11013; +pub const WSA_QOS_BAD_STYLE: i32 = 11012; +pub const WSA_QOS_EFILTERCOUNT: i32 = 11021; +pub const WSA_QOS_EFILTERSTYLE: i32 = 11019; +pub const WSA_QOS_EFILTERTYPE: i32 = 11020; +pub const WSA_QOS_EFLOWCOUNT: i32 = 11023; +pub const WSA_QOS_EFLOWDESC: i32 = 11026; +pub const WSA_QOS_EFLOWSPEC: i32 = 11017; +pub const WSA_QOS_EOBJLENGTH: i32 = 11022; +pub const WSA_QOS_EPOLICYOBJ: i32 = 11025; +pub const WSA_QOS_EPROVSPECBUF: i32 = 11018; +pub const WSA_QOS_EPSFILTERSPEC: i32 = 11028; +pub const WSA_QOS_EPSFLOWSPEC: i32 = 11027; +pub const WSA_QOS_ESDMODEOBJ: i32 = 11029; +pub const WSA_QOS_ESERVICETYPE: i32 = 11016; +pub const WSA_QOS_ESHAPERATEOBJ: i32 = 11030; +pub const WSA_QOS_EUNKOWNPSOBJ: i32 = 11024; +pub const WSA_QOS_GENERIC_ERROR: i32 = 11015; +pub const WSA_QOS_NO_RECEIVERS: i32 = 11008; +pub const WSA_QOS_NO_SENDERS: i32 = 11007; +pub const WSA_QOS_POLICY_FAILURE: i32 = 11011; +pub const WSA_QOS_RECEIVERS: i32 = 11005; +pub const WSA_QOS_REQUEST_CONFIRMED: i32 = 11009; +pub const WSA_QOS_RESERVED_PETYPE: i32 = 11031; +pub const WSA_QOS_SENDERS: i32 = 11006; +pub const WSA_QOS_TRAFFIC_CTRL_ERROR: i32 = 11014; +pub const WSA_SECURE_HOST_NOT_FOUND: i32 = 11032; +pub const WSA_WAIT_EVENT_0: i32 = 0; +pub const WSA_WAIT_IO_COMPLETION: i32 = 192; +#[cfg(any(target_arch = "arm64ec", target_arch = "x86_64"))] +pub type XMM_SAVE_AREA32 = XSAVE_FORMAT; #[repr(C)] #[cfg(target_arch = "x86")] #[derive(Clone, Copy)] @@ -3690,6 +3596,36 @@ impl Default for XSAVE_FORMAT { unsafe { core::mem::zeroed() } } } +#[repr(C)] +#[derive(Clone, Copy, Default)] +pub struct _PROC_THREAD_ATTRIBUTE_LIST(pub u8); +#[repr(C)] +#[derive(Clone, Copy)] +pub struct fd_set { + pub fd_count: u_int, + pub fd_array: [SOCKET; 64], +} +impl Default for fd_set { + fn default() -> Self { + unsafe { core::mem::zeroed() } + } +} +#[repr(C)] +#[derive(Clone, Copy, Default)] +pub struct linger { + pub l_onoff: u_short, + pub l_linger: u_short, +} +#[repr(C)] +#[derive(Clone, Copy, Default)] +pub struct timeval { + pub tv_sec: i32, + pub tv_usec: i32, +} +pub type u_int = u32; +pub type u_long = u32; +pub type u_short = u16; +pub type va_list = *mut i8; #[cfg(target_arch = "arm")] #[repr(C)] @@ -3704,4 +3640,6 @@ pub struct WSADATA { } #[cfg(target_arch = "arm")] pub enum CONTEXT {} +#[cfg(target_arch = "arm")] +pub type PCONTEXT = *mut CONTEXT; // ignore-tidy-file-filelength From 97b1d0097cf1575b070b81cb79d8115bfb8f21de Mon Sep 17 00:00:00 2001 From: Crystal Durham Date: Mon, 22 Jun 2026 16:54:41 -0400 Subject: [PATCH 04/24] Revert "Rollup merge - CAD97:xdg_basedir, r=aapoalas" This reverts commit ac8006482d2fceed2530e529e6db42096420d4aa, reversing changes made to 8d6b38095ef12416976655207031eeb4337df71b. --- library/std/src/env.rs | 1 - library/std/src/os/unix/mod.rs | 1 - library/std/src/os/unix/xdg.rs | 167 --------------------------------- 3 files changed, 169 deletions(-) delete mode 100644 library/std/src/os/unix/xdg.rs diff --git a/library/std/src/env.rs b/library/std/src/env.rs index f5c60f7562d4a..762ad071e967c 100644 --- a/library/std/src/env.rs +++ b/library/std/src/env.rs @@ -606,7 +606,6 @@ impl Error for JoinPathsError { /// For example, [XDG Base Directories] on Unix or the `LOCALAPPDATA` and `APPDATA` environment variables on Windows. /// /// [XDG Base Directories]: https://specifications.freedesktop.org/basedir-spec/latest/ -// feature(xdg_basedir): This should link to std::os::unix::xdg once it's stabilized /// /// # Unix /// diff --git a/library/std/src/os/unix/mod.rs b/library/std/src/os/unix/mod.rs index c994174b744dd..436062cf0a4f2 100644 --- a/library/std/src/os/unix/mod.rs +++ b/library/std/src/os/unix/mod.rs @@ -95,7 +95,6 @@ pub mod net; pub mod process; pub mod raw; pub mod thread; -pub mod xdg; /// A prelude for conveniently writing platform-specific code. /// diff --git a/library/std/src/os/unix/xdg.rs b/library/std/src/os/unix/xdg.rs deleted file mode 100644 index b51b8ac916c24..0000000000000 --- a/library/std/src/os/unix/xdg.rs +++ /dev/null @@ -1,167 +0,0 @@ -//! XDG (X Desktop Group) related functionality for Unix platforms. -//! -//! The [XDG Base Directory Specification][basedir] defines a set of base -//! directories, relative to which user-specific files should be looked for. The -//! functions in this module provide those directory paths as configured by -//! the environment. -//! -//! Note that the use of these functions is not enforced by the system, and as -//! such, not all programs will necessarily respect all details of the XDG path -//! environment. This is a set of guidelines, and each program is ultimately -//! responsible for defining where and how it both reads and writes files. -//! -//! Use of XDG paths can be generally considered the conventional expectation -//! on Linux-based systems. Other Unix-based systems may or may not play well -//! with the XDG conventions. -//! -//! Directories returned by this module are not guaranteed to exist yet. If the -//! directory does not exist, an application should attempt to create it with -//! [permissions mode][super::fs::PermissionsExt::from_mode] `0o700`. -//! -//! [basedir]: https://specifications.freedesktop.org/basedir/latest/ -#![unstable(feature = "xdg_basedir", issue = "157515")] - -use crate::env::{home_dir, split_paths, var_os}; -use crate::ffi::{OsStr, OsString}; -use crate::path::PathBuf; - -fn xdg_home_dir() -> PathBuf { - // Note: home_dir can return `Some("")` in some cases. We assume that in - // this case the expected behavior is for `$HOME/path` to become `/path`, - // i.e. the home directory is effectively `/`. - match home_dir() { - None => panic!("an XDG environment should have a home directory"), - Some(home) if home.is_empty() => PathBuf::from("/"), - Some(home) => home, - } -} - -fn xdg_dir(env: &str, fallback_home_subdir: &str) -> PathBuf { - var_os(env) - .filter(|s| !s.is_empty()) - .map(PathBuf::from) - .unwrap_or_else(|| xdg_home_dir().join(fallback_home_subdir)) -} - -/// A base directory relative to which user-specific data files should be written. -/// -/// An application `appid` would typically be expected to write its data files -/// to `{data_home_dir}/{appid}/**/*`. -pub fn data_home_dir() -> PathBuf { - xdg_dir("XDG_DATA_HOME", ".local/share") -} - -/// A base directory relative to which user-specific configuration files should be written. -/// -/// An application `appid` would typically be expected to write its configuration -/// files to `{config_home_dir}/{appid}/**/*`. -pub fn config_home_dir() -> PathBuf { - xdg_dir("XDG_CONFIG_HOME", ".config") -} - -/// A base directory relative to which user-specific state data should be written. -/// -/// An application `appid` would typically be expected to write its state data to -/// `{state_home_dir}/{appid}/**/*`. -/// -/// Common kinds of state data include actions history (such as logs, history, -/// recently used files, etc.) and state of the application that can be reused -/// after application restart (such as view, layout, open files, undo history, -/// etc.). -pub fn state_home_dir() -> PathBuf { - xdg_dir("XDG_STATE_HOME", ".local/state") -} - -/// A base directory relative to which user-specific non-essential (cached) data should be written. -/// -/// An application `appid` would typically be expected to write its cache data to -/// `{cache_home_dir}/{appid}/**/*`. -pub fn cache_home_dir() -> PathBuf { - xdg_dir("XDG_CACHE_HOME", ".cache") -} - -/// An iterator that produces directory paths from XDG environment configuration. -/// -/// The iterator element type is [`PathBuf`]. -/// -/// This structure is created by [`xdg::data_dirs`] and [`xdg::config_dirs`]. -/// See the documentation of those functions for more. -/// -/// [`xdg::data_dirs`]: data_dirs -/// [`xdg::config_dirs`]: config_dirs -#[derive(Debug, Clone)] -pub struct XdgDirsIter { - list: OsString, - off: usize, -} - -impl XdgDirsIter { - fn new(env: &str, default: &str) -> Self { - let dirs = var_os(env).filter(|s| !s.is_empty()).unwrap_or_else(|| default.into()); - Self { list: dirs, off: 0 } - } - - fn remaining(&self) -> Option<&OsStr> { - self.list.as_encoded_bytes().get(self.off..).map(|bytes| { - // SAFETY: `self.off` is the index after a path separator (or the - // start of the string), so is a valid OsStr boundary. - unsafe { OsStr::from_encoded_bytes_unchecked(bytes) } - }) - } -} - -impl Iterator for XdgDirsIter { - type Item = PathBuf; - - fn next(&mut self) -> Option { - let rest = self.remaining()?; - let next = split_paths(rest).next()?; - let len = next.as_os_str().len(); - self.off += len + 1; // Offset after this path and the separator after it. - Some(next) - } - - fn size_hint(&self) -> (usize, Option) { - let Some(dirs) = self.remaining() else { return (0, Some(0)) }; - split_paths(dirs).size_hint() - } -} - -/// A set of preference ordered directories relative to which data files should be searched. -/// -/// If an application defines a data file to be at `$XDG_DATA_DIRS/appid/file.name`, this means that: -/// -/// - The initial data file should be installed to `{system_data_dir}/appid/file.name`. -/// - A user-specific version of the data file may be created at -/// {[data_home_dir][]()}/appid/file.name. -/// - Lookups for the data file should search for `./appid/file.name` relative to -/// `data_home_dir` and each directory in `data_dirs`, giving preference to -/// files found relative to an earlier directory in the search order. -/// -/// An application may choose to handle a file being located under multiple base -/// directories however it sees fit, so long as it respects the search order. -/// For example, it could say that only the first file found is used, or that -/// data within the files is merged in some way. -pub fn data_dirs() -> XdgDirsIter { - // NB: the spec uses trailing slashes only for this default, for some reason - XdgDirsIter::new("XDG_DATA_DIRS", "/usr/local/share/:/usr/share/") -} - -/// A set of preference ordered directories relative to which configuration files should be searched. -/// -/// If an application defines a configuration file to be at `$XDG_CONFIG_DIRS/appid/file.name`, this means that: -/// -/// - The initial configuration file should be installed to `{system_config_dir}/xdg/appid/file.name`. -/// - A user-specific version of the configuration file may be created at -/// {[config_home_dir][]()}/appid/file.name. -/// - Lookups for the configuration file should search for `./appid/file.name` -/// relative to `config_home_dir` and each directory in `config_dirs`, giving -/// preference to files found relative to an earlier directory in the search order. -/// -/// An application may choose to handle a file being located under multiple base -/// directories however it sees fit, so long as it respects the search order. -/// For example, it could say that only the first file found is used, or that -/// data within the files is merged in some way. -pub fn config_dirs() -> XdgDirsIter { - XdgDirsIter::new("XDG_CONFIG_DIRS", "/etc/xdg") -} From 25ee3c3d581c126d6c85d13a060b4d70a9209d7e Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 8 Sep 2026 23:28:47 +0800 Subject: [PATCH 05/24] Align LoongArch64 Linux segments with GNU LD Configure the LoongArch64 Linux targets to place read-only code in the first LOAD segment when linking with LLD, mold, and other GNU-compatible linkers. This keeps the segment layout consistent with GNU ld and allows Linux to make better use of file-backed PMD mappings, reducing iTLB misses. --- .../src/spec/targets/loongarch64_unknown_linux_gnu.rs | 7 ++++++- .../src/spec/targets/loongarch64_unknown_linux_musl.rs | 7 ++++++- .../src/spec/targets/loongarch64_unknown_linux_ohos.rs | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs index 8dad88bfc46fc..12c4a5d29e449 100644 --- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs +++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_gnu.rs @@ -1,5 +1,6 @@ use crate::spec::{ - Arch, CodeModel, LlvmAbi, SanitizerSet, Target, TargetMetadata, TargetOptions, base, + Arch, Cc, CodeModel, LinkerFlavor, Lld, LlvmAbi, SanitizerSet, Target, TargetMetadata, + TargetOptions, base, }; pub(crate) fn target() -> Target { @@ -21,6 +22,10 @@ pub(crate) fn target() -> Target { llvm_abiname: LlvmAbi::Lp64d, max_atomic_width: Some(64), mcount: "_mcount".into(), + pre_link_args: TargetOptions::link_args( + LinkerFlavor::Gnu(Cc::Yes, Lld::No), + &["-Wl,--no-rosegment"], + ), supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::LEAK diff --git a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs index 91a0289885483..4030152071303 100644 --- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs +++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs @@ -1,5 +1,6 @@ use crate::spec::{ - Arch, CodeModel, LlvmAbi, SanitizerSet, Target, TargetMetadata, TargetOptions, base, + Arch, Cc, CodeModel, LinkerFlavor, Lld, LlvmAbi, SanitizerSet, Target, TargetMetadata, + TargetOptions, base, }; pub(crate) fn target() -> Target { @@ -22,6 +23,10 @@ pub(crate) fn target() -> Target { max_atomic_width: Some(64), mcount: "_mcount".into(), crt_static_default: false, + pre_link_args: TargetOptions::link_args( + LinkerFlavor::Gnu(Cc::Yes, Lld::No), + &["-Wl,--no-rosegment"], + ), supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::LEAK diff --git a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_ohos.rs b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_ohos.rs index 6792356734882..c05d21276d1ff 100644 --- a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_ohos.rs +++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_ohos.rs @@ -1,5 +1,6 @@ use crate::spec::{ - Arch, CodeModel, LlvmAbi, SanitizerSet, Target, TargetMetadata, TargetOptions, base, + Arch, Cc, CodeModel, LinkerFlavor, Lld, LlvmAbi, SanitizerSet, Target, TargetMetadata, + TargetOptions, base, }; pub(crate) fn target() -> Target { @@ -21,6 +22,10 @@ pub(crate) fn target() -> Target { llvm_abiname: LlvmAbi::Lp64d, max_atomic_width: Some(64), mcount: "_mcount".into(), + pre_link_args: TargetOptions::link_args( + LinkerFlavor::Gnu(Cc::Yes, Lld::No), + &["-Wl,--no-rosegment"], + ), supported_sanitizers: SanitizerSet::ADDRESS | SanitizerSet::CFI | SanitizerSet::LEAK From f93491893766093043aab7520769a679044143dd Mon Sep 17 00:00:00 2001 From: mejrs <59372212+mejrs@users.noreply.github.com> Date: Thu, 10 Sep 2026 01:04:55 +0200 Subject: [PATCH 06/24] yeet StabilityLevel --- compiler/rustc_middle/src/middle/stability.rs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/compiler/rustc_middle/src/middle/stability.rs b/compiler/rustc_middle/src/middle/stability.rs index 099697c68464c..8dafdc9cc7d33 100644 --- a/compiler/rustc_middle/src/middle/stability.rs +++ b/compiler/rustc_middle/src/middle/stability.rs @@ -4,11 +4,13 @@ use std::num::NonZero; use rustc_ast::NodeId; +use rustc_attr_ir::{ + ConstStability, DefaultBodyStability, DeprecatedSince, Deprecation, Stability, StabilityLevel, +}; use rustc_errors::{Applicability, Diag, Diagnostic, EmissionGuarantee, LintBuffer, msg}; use rustc_feature::GateIssue; -use rustc_hir::attrs::{DeprecatedSince, Deprecation}; use rustc_hir::def_id::{DefId, LocalDefId}; -use rustc_hir::{self as hir, ConstStability, DefaultBodyStability, HirId, Stability}; +use rustc_hir::{self as hir, HirId}; use rustc_lint_defs::builtin::{DEPRECATED, DEPRECATED_IN_FUTURE}; use rustc_lint_defs::{DeprecatedSinceKind, Lint}; use rustc_macros::{Decodable, Encodable, StableHash, Subdiagnostic}; @@ -17,16 +19,9 @@ use rustc_session::diagnostics::feature_err_issue; use rustc_span::{Span, Symbol, sym}; use tracing::debug; -pub use self::StabilityLevel::*; use crate::ty::TyCtxt; use crate::ty::print::with_no_trimmed_paths; -#[derive(PartialEq, Clone, Copy, Debug)] -pub enum StabilityLevel { - Unstable, - Stable, -} - #[derive(Copy, Clone)] pub enum UnstableKind { /// Enforcing regular stability of an item @@ -389,7 +384,7 @@ impl<'tcx> TyCtxt<'tcx> { match stability { Some(Stability { - level: hir::StabilityLevel::Unstable { reason, issue, implied_by, .. }, + level: StabilityLevel::Unstable { reason, issue, implied_by, .. }, feature, .. }) => { @@ -466,7 +461,7 @@ impl<'tcx> TyCtxt<'tcx> { match stability { Some(DefaultBodyStability { - level: hir::StabilityLevel::Unstable { reason, issue, .. }, + level: StabilityLevel::Unstable { reason, issue, .. }, feature, }) => { if span.allows_unstable(feature) { @@ -607,7 +602,7 @@ impl<'tcx> TyCtxt<'tcx> { match stability { Some(ConstStability { - level: hir::StabilityLevel::Unstable { reason, issue, implied_by, .. }, + level: StabilityLevel::Unstable { reason, issue, implied_by, .. }, feature, .. }) => { From 5fc43e858d2e2fd15b000e3aebb68dc3a0e554c0 Mon Sep 17 00:00:00 2001 From: WANG Rui Date: Tue, 8 Sep 2026 10:04:02 +0800 Subject: [PATCH 07/24] Use lld by default on loongarch64-unknown-linux-gnu nightly This mirrors the existing default for x86_64-unknown-linux-gnu, but is gated to the nightly channel only, since it needs some soak time to catch any regressions before rolling it out to beta and stable. --- src/bootstrap/src/core/config/config.rs | 2 +- src/bootstrap/src/core/config/toml/target.rs | 21 ++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs index a513c45bce9b1..f8b00094a0f4b 100644 --- a/src/bootstrap/src/core/config/config.rs +++ b/src/bootstrap/src/core/config/config.rs @@ -1125,7 +1125,7 @@ impl Config { let is_host_system_llvm = target_config.get(&host_target).and_then(|c| c.llvm_config.as_ref()).is_some(); - for (target, linker_override) in default_linux_linker_overrides() { + for (target, linker_override) in default_linux_linker_overrides(&channel) { // If the user overrode the default Linux linker, do not apply bootstrap defaults if targets_with_user_linker_override.contains(&target) { continue; diff --git a/src/bootstrap/src/core/config/toml/target.rs b/src/bootstrap/src/core/config/toml/target.rs index 090ccefe700ca..cc3d066a859f0 100644 --- a/src/bootstrap/src/core/config/toml/target.rs +++ b/src/bootstrap/src/core/config/toml/target.rs @@ -130,9 +130,20 @@ impl<'de> Deserialize<'de> for DefaultLinuxLinkerOverride { /// Set of linker overrides for selected Linux targets. #[cfg(not(test))] -pub fn default_linux_linker_overrides() -> HashMap { - [("x86_64-unknown-linux-gnu".to_string(), DefaultLinuxLinkerOverride::SelfContainedLldCc)] - .into() +pub fn default_linux_linker_overrides( + channel: &str, +) -> HashMap { + let mut overrides = HashMap::from([( + "x86_64-unknown-linux-gnu".to_string(), + DefaultLinuxLinkerOverride::SelfContainedLldCc, + )]); + if channel == "nightly" || channel == "dev" { + overrides.insert( + "loongarch64-unknown-linux-gnu".to_string(), + DefaultLinuxLinkerOverride::SelfContainedLldCc, + ); + } + overrides } #[cfg(test)] @@ -141,7 +152,9 @@ thread_local! { } #[cfg(test)] -pub fn default_linux_linker_overrides() -> HashMap { +pub fn default_linux_linker_overrides( + _channel: &str, +) -> HashMap { TEST_LINUX_LINKER_OVERRIDES.with(|cell| cell.borrow().clone()).unwrap_or_default() } From 6581f4cb2b5a127e020770ac7c64418e509050fa Mon Sep 17 00:00:00 2001 From: Yukang Date: Thu, 10 Sep 2026 20:18:29 +0800 Subject: [PATCH 08/24] Test the missing Clone requirement for Cow slices --- ...-missing-clone-issue-141241.current.stderr | 16 ++++++++++++++ ...ice-missing-clone-issue-141241.next.stderr | 16 ++++++++++++++ .../cow-slice-missing-clone-issue-141241.rs | 21 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr create mode 100644 tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr create mode 100644 tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr new file mode 100644 index 0000000000000..4766e426cd331 --- /dev/null +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.current.stderr @@ -0,0 +1,16 @@ +error[E0277]: the trait bound `[A]: ToOwned` is not satisfied + --> $DIR/cow-slice-missing-clone-issue-141241.rs:16:11 + | +LL | test: Cow<'static, [A]>, + | ^^^^^^^^^^^^^^^^^ the trait `ToOwned` is not implemented for `[A]` + | +help: the trait `ToOwned` is conditionally implemented for `[T]` + --> $SRC_DIR/alloc/src/slice.rs:LL:COL + | + = note: unsatisfied requirement introduced here: `A: Clone` +note: required by a bound in `Cow` + --> $SRC_DIR/alloc/src/borrow.rs:LL:COL + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr new file mode 100644 index 0000000000000..0d5b9bc94ca27 --- /dev/null +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.next.stderr @@ -0,0 +1,16 @@ +error[E0277]: the trait bound `[A]: ToOwned` is not satisfied + --> $DIR/cow-slice-missing-clone-issue-141241.rs:16:11 + | +LL | test: Cow<'static, [A]>, + | ^^^^^^^^^^^^^^^^^ the trait `ToOwned` is not implemented for `[A]` + | +help: the trait `ToOwned` is conditionally implemented for `[T]` + --> $SRC_DIR/alloc/src/slice.rs:LL:COL + | + = note: unsatisfied requirement introduced here: `_: Clone` +note: required by a bound in `Cow` + --> $SRC_DIR/alloc/src/borrow.rs:LL:COL + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0277`. diff --git a/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs new file mode 100644 index 0000000000000..f1eccd0ce13d7 --- /dev/null +++ b/tests/ui/traits/error-reporting/cow-slice-missing-clone-issue-141241.rs @@ -0,0 +1,21 @@ +//@ revisions: current next with_clone +//@ [next] compile-flags: -Znext-solver +//@ [with_clone] check-pass + +//! Regression test for https://github.com/rust-lang/rust/issues/141241. +//! The conditional ToOwned implementation must explain its Clone requirement. + +#![allow(dead_code)] + +use std::borrow::Cow; + +#[cfg_attr(with_clone, derive(Clone))] +struct A {} + +struct B { + test: Cow<'static, [A]>, + //[current]~^ ERROR the trait bound `[A]: ToOwned` is not satisfied + //[next]~^^ ERROR the trait bound `[A]: ToOwned` is not satisfied +} + +fn main() {} From 4b5434b7106ea7150c1bf7de4f6baf8dab16f5b3 Mon Sep 17 00:00:00 2001 From: Josh Liebow-Feeser Date: Thu, 10 Sep 2026 15:40:39 +0000 Subject: [PATCH 09/24] Document transmute layout trees and test alternative pruning Explain the byte alphabet, padding, definition markers, and empty layouts. Cover surviving and fully pruned alternatives, including nested sequences, and replace obsolete visibility terminology. Validation: ./x test compiler/rustc_transmute Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf --- compiler/rustc_transmute/src/layout/mod.rs | 19 +++-- compiler/rustc_transmute/src/layout/tree.rs | 24 ++++-- .../rustc_transmute/src/layout/tree/tests.rs | 77 +++++++++++++++++-- 3 files changed, 101 insertions(+), 19 deletions(-) diff --git a/compiler/rustc_transmute/src/layout/mod.rs b/compiler/rustc_transmute/src/layout/mod.rs index 4e548ff8fe20c..54cd37a8f50dd 100644 --- a/compiler/rustc_transmute/src/layout/mod.rs +++ b/compiler/rustc_transmute/src/layout/mod.rs @@ -11,12 +11,14 @@ pub(crate) use dfa::{Dfa, union}; #[derive(Debug)] pub(crate) struct Uninhabited; -/// A range of byte values (including an uninit byte value). +/// A half-open range of byte values, which may include an uninitialized byte. +/// +/// The range is `[start, end)`. Values `0..=255` represent initialized bytes, +/// and `256` represents an uninitialized byte. A range containing that value +/// therefore has an exclusive upper bound of `257`. #[derive(Hash, Eq, PartialEq, Ord, PartialOrd, Clone, Copy)] pub(crate) struct Byte { - // An inclusive-exclusive range. We use this instead of `Range` because `Range: !Copy`. - // - // Uninit byte value is represented by 256. + // Store the endpoints separately because `Range` is not `Copy`. pub(crate) start: u16, pub(crate) end: u16, } @@ -37,6 +39,7 @@ impl Byte { Byte { start: val, end: val + 1 } } + /// A byte that may be initialized to any value or uninitialized. #[inline] fn uninit() -> Byte { Byte { start: 0, end: Self::UNINIT + 1 } @@ -136,7 +139,7 @@ pub mod rustc { use rustc_middle::ty::layout::{HasTyCtxt, LayoutCx, LayoutError}; use rustc_middle::ty::{self, Region, Ty}; - /// A visibility node in the layout. + /// A layout annotation used to check for safety invariants during pruning. #[derive(Debug, Hash, Eq, PartialEq, Clone, Copy)] pub enum Def<'tcx> { Adt(ty::AdtDef<'tcx>), @@ -147,9 +150,9 @@ pub mod rustc { impl<'tcx> super::Def for Def<'tcx> { fn has_safety_invariants(&self) -> bool { - // Rust presently has no notion of 'unsafe fields', so for now we - // make the conservative assumption that everything besides - // primitive types carry safety invariants. + // Conservatively treat every ADT, variant, and field definition as + // potentially carrying safety invariants. This check does not + // inspect `unsafe` field annotations. self != &Self::Primitive } } diff --git a/compiler/rustc_transmute/src/layout/tree.rs b/compiler/rustc_transmute/src/layout/tree.rs index d7aeb6b06b82f..43e2008c5a441 100644 --- a/compiler/rustc_transmute/src/layout/tree.rs +++ b/compiler/rustc_transmute/src/layout/tree.rs @@ -7,6 +7,14 @@ mod tests; /// A tree-based representation of a type layout. /// +/// A `Seq` concatenates layouts, while an `Alt` chooses among them. An empty +/// `Seq` represents an inhabited, zero-sized layout; an empty `Alt` represents +/// an uninhabited layout. +/// +/// `Def` nodes are zero-width annotations used by [`Tree::prune`] to decide +/// which branches to retain. Pruning removes these annotations and produces +/// a `Tree` for conversion with [`super::Dfa::from_tree`]. +/// /// Invariants: /// 1. All paths through the layout have the same length (in bytes). /// @@ -25,7 +33,7 @@ where Seq(Vec), /// A choice between alternative layouts. Alt(Vec), - /// A definition node. + /// A zero-width definition annotation used during pruning. Def(D), /// A reference node. Ref(Reference), @@ -70,7 +78,7 @@ where Self::Seq(Vec::new()) } - /// A `Tree` containing a single, uninitialized byte. + /// A `Tree` containing one byte that may be initialized to any value or uninitialized. pub(crate) fn uninit() -> Self { Self::Byte(Byte::uninit()) } @@ -134,12 +142,18 @@ where } /// A `Tree` whose layout is entirely padding of the given width. + /// + /// Each padding byte may be initialized to any value or uninitialized. pub(crate) fn padding(width_in_bytes: usize) -> Self { Self::Seq(vec![Self::uninit(); width_in_bytes]) } - /// Remove all `Def` nodes, and all branches of the layout for which `f` - /// produces `true`. + /// Removes all `Def` nodes and rejects branches whose definitions make `f` return `true`. + /// + /// A sequence becomes uninhabited if any of its elements becomes uninhabited; + /// alternatives retain their surviving branches. Retained definitions become + /// empty sequences, so the result contains no definition nodes, as expressed + /// by its `Tree` type. pub(crate) fn prune(self, f: &F) -> Tree where F: Fn(D) -> bool, @@ -473,7 +487,7 @@ pub(crate) mod rustc { }; // When this function is invoked with enum variants, - // `ty_and_layout.size` does not encompass the entire size of the + // `layout.size` does not encompass the entire size of the // enum. We rely on `total_size` for this. assert!(layout.size <= total_size); diff --git a/compiler/rustc_transmute/src/layout/tree/tests.rs b/compiler/rustc_transmute/src/layout/tree/tests.rs index bc47b19c681f4..43150369374be 100644 --- a/compiler/rustc_transmute/src/layout/tree/tests.rs +++ b/compiler/rustc_transmute/src/layout/tree/tests.rs @@ -34,13 +34,48 @@ mod prune { Tree::byte(0x00).then(Tree::byte(0x01)) ); } + + #[test] + fn single_retained_alternative() { + let layout: Tree = Tree::alt([ + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x00)), + Tree::def(Def::NoSafetyInvariants).then(Tree::byte(0x01)), + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x02)), + ]); + + assert_eq!(layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), Tree::byte(0x01)); + } + + #[test] + fn mixed_nested_alternatives_in_seq() { + let layout: Tree = Tree::seq([ + Tree::byte(0x00), + Tree::Alt(vec![ + Tree::def(Def::NoSafetyInvariants).then(Tree::byte(0x01)), + Tree::Alt(vec![ + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x02)), + Tree::def(Def::NoSafetyInvariants).then(Tree::byte(0x03)), + ]), + ]), + Tree::byte(0x04), + ]); + + assert_eq!( + layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), + Tree::seq([ + Tree::byte(0x00), + Tree::alt([Tree::byte(0x01), Tree::byte(0x03)]), + Tree::byte(0x04), + ]) + ); + } } mod should_reject { use super::*; #[test] - fn invisible_def() { + fn def_with_safety_invariants() { let layout: Tree = Tree::def(Def::HasSafetyInvariants); assert_eq!( layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), @@ -49,7 +84,7 @@ mod prune { } #[test] - fn invisible_def_in_seq_len_2() { + fn def_with_safety_invariants_in_seq_len_2() { let layout: Tree = Tree::def(Def::NoSafetyInvariants).then(Tree::def(Def::HasSafetyInvariants)); assert_eq!( @@ -59,7 +94,7 @@ mod prune { } #[test] - fn invisible_def_in_seq_len_3() { + fn def_with_safety_invariants_in_seq_len_3() { let layout: Tree = Tree::def(Def::NoSafetyInvariants) .then(Tree::byte(0x00)) .then(Tree::def(Def::HasSafetyInvariants)); @@ -68,26 +103,56 @@ mod prune { Tree::uninhabited() ); } + + #[test] + fn all_alternatives_pruned() { + let layout: Tree = Tree::alt([ + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x00)), + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x01)), + ]); + + assert_eq!( + layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), + Tree::uninhabited() + ); + } + + #[test] + fn all_alternatives_pruned_in_seq() { + let layout: Tree = Tree::seq([ + Tree::byte(0x00), + Tree::alt([ + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x01)), + Tree::def(Def::HasSafetyInvariants).then(Tree::byte(0x02)), + ]), + Tree::byte(0x03), + ]); + + assert_eq!( + layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), + Tree::uninhabited() + ); + } } mod should_accept { use super::*; #[test] - fn visible_def() { + fn def_without_safety_invariants() { let layout: Tree = Tree::def(Def::NoSafetyInvariants); assert_eq!(layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), Tree::unit()); } #[test] - fn visible_def_in_seq_len_2() { + fn def_without_safety_invariants_in_seq_len_2() { let layout: Tree = Tree::def(Def::NoSafetyInvariants).then(Tree::def(Def::NoSafetyInvariants)); assert_eq!(layout.prune(&|d| matches!(d, Def::HasSafetyInvariants)), Tree::unit()); } #[test] - fn visible_def_in_seq_len_3() { + fn def_without_safety_invariants_in_seq_len_3() { let layout: Tree = Tree::def(Def::NoSafetyInvariants) .then(Tree::byte(0x00)) .then(Tree::def(Def::NoSafetyInvariants)); From c4d1307f90f94506be5fa46bab83c47b2e31e339 Mon Sep 17 00:00:00 2001 From: Josh Liebow-Feeser Date: Thu, 10 Sep 2026 15:40:51 +0000 Subject: [PATCH 10/24] Clarify transmutability queries and cover answer composition Describe the query stages and deferred obligations, correct stale comments, and exercise both validity settings in the powerset test. Add direct checks for condition grouping, error selection, and quantifier short-circuiting. Document the existing conditional behavior of Answer::or without changing it. Validation: ./x test compiler/rustc_transmute Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf --- compiler/rustc_transmute/src/lib.rs | 24 ++- .../src/maybe_transmutable/mod.rs | 76 +++++----- .../src/maybe_transmutable/tests.rs | 138 ++++++++++++++---- 3 files changed, 161 insertions(+), 77 deletions(-) diff --git a/compiler/rustc_transmute/src/lib.rs b/compiler/rustc_transmute/src/lib.rs index b49836dd0b8ea..e2e1b0a08e15a 100644 --- a/compiler/rustc_transmute/src/lib.rs +++ b/compiler/rustc_transmute/src/lib.rs @@ -1,3 +1,11 @@ +//! Checks whether one type's representation can be reinterpreted as another. +//! +//! The analysis converts compiler layouts into trees of bytes, references, and +//! definition markers. It prunes destination paths that may carry safety invariants unless +//! safety is assumed, then converts the trees into deterministic finite automata. +//! Comparing the automata produces an [`Answer`]; reference transitions can leave +//! [`Condition`]s for the trait solver to discharge. + // tidy-alphabetical-start #![cfg_attr(bootstrap, feature(never_type))] #![cfg_attr(test, feature(test))] @@ -9,6 +17,10 @@ pub(crate) use rustc_data_structures::fx::{FxIndexMap as Map, FxIndexSet as Set} pub mod layout; mod maybe_transmutable; +/// Proof obligations supplied by the caller rather than checked by the analysis. +/// +/// This mirrors `core::mem::Assume`. A `true` field transfers the corresponding +/// obligation to the caller; the default leaves all four obligations to the compiler. #[derive(Copy, Clone, Debug, Default)] pub struct Assume { pub alignment: bool, @@ -17,12 +29,14 @@ pub struct Assume { pub validity: bool, } -/// Either transmutation is allowed, we have an error, or we have an optional -/// Condition that must hold. +/// The result of a transmutability query under the supplied [`Assume`] options. #[derive(Debug, Hash, Eq, PartialEq, Clone)] pub enum Answer { + /// The analysis requires no further conditions. Yes, + /// The analysis could not establish transmutability. No(Reason), + /// Transmutability depends on conditions that the trait solver must discharge. If(Condition), } @@ -35,7 +49,7 @@ pub enum Condition { /// The region `long` must outlive `short`. Outlives { long: R, short: R }, - /// The `ty` is immutable. + /// The type `ty` must satisfy `Freeze`. Immutable { ty: T }, /// `Src` is transmutable into `Dst`, if all of the enclosed requirements are met. @@ -60,7 +74,7 @@ pub enum Reason { DstMayHaveSafetyInvariants, /// `Dst` is larger than `Src`, and the excess bytes were not exclusively uninitialized. DstIsTooBig, - /// `Dst` is larger `Src`. + /// The destination referent is larger than the source referent. DstRefIsTooBig { /// The referent of the source type. src: T, @@ -71,7 +85,7 @@ pub enum Reason { /// The size of the destination type's referent. dst_size: usize, }, - /// Src should have a stricter alignment than Dst, but it does not. + /// The destination referent requires stricter alignment than the source referent. DstHasStricterAlignment { src_min_align: usize, dst_min_align: usize }, /// Can't go from shared pointer to unique pointer DstIsMoreUnique, diff --git a/compiler/rustc_transmute/src/maybe_transmutable/mod.rs b/compiler/rustc_transmute/src/maybe_transmutable/mod.rs index d677e88220d96..e07686bfc1feb 100644 --- a/compiler/rustc_transmute/src/maybe_transmutable/mod.rs +++ b/compiler/rustc_transmute/src/maybe_transmutable/mod.rs @@ -27,7 +27,6 @@ where } } -// FIXME: Nix this cfg, so we can write unit tests independently of rustc #[cfg(feature = "rustc")] mod rustc { use rustc_middle::ty::layout::LayoutCx; @@ -79,18 +78,17 @@ where { /// Answers whether a `Tree` is transmutable into another `Tree`. /// - /// This method begins by de-def'ing `src` and `dst`, and prunes private paths from `dst`, - /// then converts `src` and `dst` to `Dfa`s, and computes an answer using those DFAs. + /// Removes definition markers from both trees and, unless safety is assumed, + /// prunes destination paths that may carry safety invariants. It then converts + /// the remaining layouts to `Dfa`s and compares them. #[inline(always)] #[instrument(level = "debug", skip(self), fields(src = ?self.src, dst = ?self.dst))] pub(crate) fn answer(self) -> Answer<::Region, ::Type> { let Self { src, dst, assume, context } = self; - // Unconditionally remove all `Def` nodes from `src`, without pruning away the - // branches they appear in. This is valid to do for value-to-value - // transmutations, but not for `&mut T` to `&mut U`; we will need to be - // more sophisticated to handle transmutations between mutable - // references. + // Keep every source representation while removing its definition markers. + // Reference nodes remain intact; mutable destination references also generate + // a reverse transmutability obligation for their referents. let src = src.prune(&|_def| false); if src.is_inhabited() && !dst.is_inhabited() { @@ -99,20 +97,17 @@ where trace!(?src, "pruned src"); - // Remove all `Def` nodes from `dst`, additionally... + // Remove destination definition markers. Unless the caller assumes safety, + // prune paths whose definitions may carry safety invariants. let dst = if assume.safety { - // ...if safety is assumed, don't check if they carry safety - // invariants; retain all paths. dst.prune(&|_def| false) } else { - // ...otherwise, prune away all paths with safety invariants from - // the `Dst` layout. dst.prune(&|def| def.has_safety_invariants()) }; trace!(?dst, "pruned dst"); - // Convert `src` from a tree-based representation to an DFA-based + // Convert `src` from a tree-based representation to a DFA-based // representation. If the conversion fails because `src` is uninhabited, // conclude that the transmutation is acceptable, because instances of // the `src` type do not exist. @@ -121,12 +116,9 @@ where Err(layout::Uninhabited) => return Answer::Yes, }; - // Convert `dst` from a tree-based representation to an DFA-based - // representation. If the conversion fails because `src` is uninhabited, - // conclude that the transmutation is unacceptable. Valid instances of - // the `dst` type do not exist, either because it's genuinely - // uninhabited, or because there are no branches of the tree that are - // free of safety invariants. + // An inhabited source and an originally uninhabited destination were + // rejected above. If the pruned destination is now uninhabited, no path + // remains whose definitions are known to be free of safety invariants. let dst = match Dfa::from_tree(dst) { Ok(dst) => dst, Err(layout::Uninhabited) => return Answer::No(Reason::DstMayHaveSafetyInvariants), @@ -184,21 +176,10 @@ where dst_transitions_len = self.dst.transitions.len() ); if dst_state == self.dst.accept { - // truncation: `size_of(Src) >= size_of(Dst)` - // - // Why is truncation OK to do? Because even though the Src is bigger, all we care about - // is whether we have enough data for the Dst to be valid in accordance with what its - // type dictates. - // For example, in a u8 to `()` transmutation, we have enough data available from the u8 - // to transmute it to a `()` (though in this case does `()` really need any data to - // begin with? It doesn't). Same thing with u8 to fieldless struct. - // Now then, why is something like u8 to bool not allowed? That is not because the bool - // is smaller in size, but rather because those 2 bits that we are re-interpreting from - // the u8 could introduce invalid states for the bool type. - // - // So, if it's possible to transmute to a smaller Dst by truncating, and we can guarantee - // that none of the actually-used data can introduce an invalid state for Dst's type, we - // are able to safely transmute, even with truncation. + // The destination needs no more input. Union transmutation permits + // truncating the remaining source bytes: for example, `u8` to `()`. + // Compatibility of the consumed prefix is checked by the preceding + // transitions, including any conditions they generate for references. Answer::Yes } else if src_state == self.src.accept { // extension: `size_of(Src) <= size_of(Dst)` @@ -209,14 +190,13 @@ where } } else { let src_quantifier = if self.assume.validity { - // if the compiler may assume that the programmer is doing additional validity checks, - // (e.g.: that `src != 3u8` when the destination type is `bool`) - // then there must exist at least one transition out of `src_state` such that the transmute is viable... + // The caller checks validity (for example, `src <= 1u8` for a + // `u8`-to-`bool` transmutation), so at least one source transition + // must admit a compatible continuation. Quantifier::ThereExists } else { - // if the compiler cannot assume that the programmer is doing additional validity checks, - // then for all transitions out of `src_state`, such that the transmute is viable... - // then there must exist at least one transition out of `dst_state` such that the transmute is viable... + // Every source transition must admit a compatible continuation + // in the destination when the caller does not assume validity. Quantifier::ForAll }; @@ -320,10 +300,12 @@ where } impl Answer { + /// Requires both answers, combining their conditions into a conjunction. fn and(self, rhs: Answer) -> Answer { let lhs = self; match (lhs, rhs) { - // If both are errors, then we should return the more specific one + // Prefer a specific reason over generic bit incompatibility; + // otherwise, retain the left-hand reason. (Answer::No(Reason::DstIsBitIncompatible), Answer::No(reason)) | (Answer::No(reason), Answer::No(_)) // If either is an error, return it @@ -346,10 +328,15 @@ impl Answer { } } + /// Combines alternative answers and collects their conditions in an `IfAny`. + /// + /// Currently, combining `Yes` with `If` retains the condition. This differs + /// from Boolean disjunction, where unconditional success would suffice. fn or(self, rhs: Answer) -> Answer { let lhs = self; match (lhs, rhs) { - // If both are errors, then we should return the more specific one + // Prefer a specific reason over generic bit incompatibility; + // otherwise, retain the left-hand reason. (Answer::No(Reason::DstIsBitIncompatible), Answer::No(reason)) | (Answer::No(reason), Answer::No(_)) => Answer::No(reason), // Otherwise, errors can be ignored for the rest of the pattern matching @@ -379,6 +366,9 @@ enum Quantifier { } impl Quantifier { + /// Folds answers with `or` or `and`, stopping on `Yes` or `No`, respectively. + /// An empty iterator yields bit incompatibility for `ThereExists` and `Yes` + /// for `ForAll`. fn apply(&self, iter: I) -> Answer where R: layout::Region, diff --git a/compiler/rustc_transmute/src/maybe_transmutable/tests.rs b/compiler/rustc_transmute/src/maybe_transmutable/tests.rs index 8440ace260883..371a362c09ff3 100644 --- a/compiler/rustc_transmute/src/maybe_transmutable/tests.rs +++ b/compiler/rustc_transmute/src/maybe_transmutable/tests.rs @@ -43,12 +43,103 @@ fn is_transmutable( ) -> crate::Answer { let src = src.clone(); let dst = dst.clone(); - // The only dimension of the transmutability analysis we want to test - // here is the safety analysis. To ensure this, we disable all other - // toggleable aspects of the transmutability analysis. R::is_transmutable(src, dst, assume) } +mod answers { + use crate::maybe_transmutable::Quantifier; + use crate::{Condition, Reason}; + + type Answer = crate::Answer; + + const OUTLIVES: Condition = Condition::Outlives { long: 1, short: 0 }; + const IMMUTABLE: Condition = Condition::Immutable { ty: () }; + const TRANSMUTABLE: Condition = Condition::Transmutable { src: (), dst: () }; + + #[test] + fn and_yes_is_identity() { + for answer in [Answer::Yes, Answer::No(Reason::DstIsTooBig), Answer::If(IMMUTABLE)] { + assert_eq!(Answer::Yes.and(answer.clone()), answer); + assert_eq!(answer.clone().and(Answer::Yes), answer); + } + } + + #[test] + fn and_no_absorbs_conditions() { + let no = Answer::No(Reason::DstIsTooBig); + let conditional = Answer::If(IMMUTABLE); + assert_eq!(no.clone().and(conditional.clone()), no); + assert_eq!(conditional.and(no.clone()), no); + } + + #[test] + fn or_bit_incompatibility_is_identity() { + for answer in [Answer::Yes, Answer::No(Reason::DstIsTooBig), Answer::If(IMMUTABLE)] { + let no = Answer::No(Reason::DstIsBitIncompatible); + assert_eq!(no.clone().or(answer.clone()), answer); + assert_eq!(answer.clone().or(no), answer); + } + } + + #[test] + fn or_yes_preserves_conditions() { + let conditional = Answer::If(IMMUTABLE); + assert_eq!(Answer::Yes.or(conditional.clone()), conditional); + assert_eq!(conditional.clone().or(Answer::Yes), conditional); + } + + #[test] + fn and_flattens_condition_groups() { + let pair = Answer::If(OUTLIVES).and(Answer::If(IMMUTABLE)); + assert_eq!(pair, Answer::If(Condition::IfAll(vec![OUTLIVES, IMMUTABLE]))); + + let expected = Answer::If(Condition::IfAll(vec![OUTLIVES, IMMUTABLE, TRANSMUTABLE])); + assert_eq!(pair.clone().and(Answer::If(TRANSMUTABLE)), expected); + assert_eq!(Answer::If(TRANSMUTABLE).and(pair.clone()), expected); + assert_eq!(pair.and(Answer::If(Condition::IfAll(vec![TRANSMUTABLE]))), expected); + } + + #[test] + fn or_flattens_condition_groups() { + let pair = Answer::If(OUTLIVES).or(Answer::If(IMMUTABLE)); + assert_eq!(pair, Answer::If(Condition::IfAny(vec![OUTLIVES, IMMUTABLE]))); + + let expected = Answer::If(Condition::IfAny(vec![OUTLIVES, IMMUTABLE, TRANSMUTABLE])); + assert_eq!(pair.clone().or(Answer::If(TRANSMUTABLE)), expected); + assert_eq!(Answer::If(TRANSMUTABLE).or(pair.clone()), expected); + assert_eq!(pair.or(Answer::If(Condition::IfAny(vec![TRANSMUTABLE]))), expected); + } + + #[test] + fn specific_errors_take_precedence_over_bit_incompatibility() { + let combinators: [fn(Answer, Answer) -> Answer; 2] = [Answer::and, Answer::or]; + for combine in combinators { + let generic = Answer::No(Reason::DstIsBitIncompatible); + let specific = Answer::No(Reason::DstIsTooBig); + assert_eq!(combine(generic.clone(), specific.clone()), specific); + assert_eq!(combine(specific.clone(), generic), specific); + } + } + + #[test] + fn empty_quantifiers() { + assert_eq!(Quantifier::ForAll.apply([]), Answer::Yes); + assert_eq!(Quantifier::ThereExists.apply([]), Answer::No(Reason::DstIsBitIncompatible)); + } + + #[test] + fn quantifiers_short_circuit_after_a_decisive_answer() { + let no = Answer::No(Reason::DstIsTooBig); + let mut answers = [Answer::If(IMMUTABLE), no.clone(), Answer::Yes].into_iter(); + assert_eq!(Quantifier::ForAll.apply(&mut answers), no); + assert_eq!(answers.next(), Some(Answer::Yes)); + + let mut answers = [no, Answer::Yes, Answer::If(IMMUTABLE)].into_iter(); + assert_eq!(Quantifier::ThereExists.apply(&mut answers), Answer::Yes); + assert_eq!(answers.next(), Some(Answer::If(IMMUTABLE))); + } +} + mod safety { use super::*; use crate::Answer; @@ -205,33 +296,22 @@ mod bool { let dst_layout = into_layout(dst_alts.clone()); let dst_set = into_set(dst_alts.clone()); - if src_set.is_subset(&dst_set) { - assert_eq!( - Answer::Yes, - is_transmutable(&src_layout, &dst_layout, Assume::default()), - "{:?} SHOULD be transmutable into {:?}", - src_layout, - dst_layout - ); - } else if !src_set.is_disjoint(&dst_set) { - assert_eq!( - Answer::Yes, - is_transmutable( - &src_layout, - &dst_layout, - Assume { validity: true, ..Assume::default() } - ), - "{:?} SHOULD be transmutable (assuming validity) into {:?}", - src_layout, - dst_layout - ); - } else { + for validity in [false, true] { + let permitted = if validity { + src_set.is_empty() || !src_set.is_disjoint(&dst_set) + } else { + src_set.is_subset(&dst_set) + }; + let expected = if permitted { + Answer::Yes + } else { + Answer::No(Reason::DstIsBitIncompatible) + }; + let assume = Assume { validity, ..Assume::default() }; assert_eq!( - Answer::No(Reason::DstIsBitIncompatible), - is_transmutable(&src_layout, &dst_layout, Assume::default()), - "{:?} should NOT be transmutable into {:?}", - src_layout, - dst_layout + is_transmutable(&src_layout, &dst_layout, assume), + expected, + "src: {src_layout:?}, dst: {dst_layout:?}, validity: {validity}" ); } } From eb7625d36112714dd2f074cf41d86f29356fcbff Mon Sep 17 00:00:00 2001 From: Josh Liebow-Feeser Date: Thu, 10 Sep 2026 15:41:01 +0000 Subject: [PATCH 11/24] Document DFA interval union and improve debug output Specify interval-union inputs and output partitions and test overlaps, boundaries, and coalescing. Mark DOT entry and accepting states distinctly, log full graphs once per query, and omit the memoization cache from spans. Validation: ./x test compiler/rustc_transmute A manual bool identity query with RUSTC_LOG=rustc_transmute=debug confirmed one source graph, one destination graph, and no cache dumps. Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf --- compiler/rustc_transmute/src/layout/dfa.rs | 28 ++-- .../rustc_transmute/src/layout/dfa/tests.rs | 131 ++++++++++++++++++ .../src/maybe_transmutable/mod.rs | 14 +- 3 files changed, 154 insertions(+), 19 deletions(-) create mode 100644 compiler/rustc_transmute/src/layout/dfa/tests.rs diff --git a/compiler/rustc_transmute/src/layout/dfa.rs b/compiler/rustc_transmute/src/layout/dfa.rs index 92f1898658b07..ef42bbcae1f56 100644 --- a/compiler/rustc_transmute/src/layout/dfa.rs +++ b/compiler/rustc_transmute/src/layout/dfa.rs @@ -5,6 +5,9 @@ use std::sync::atomic::{AtomicU32, Ordering}; use super::{Byte, Reference, Region, Tree, Type, Uninhabited}; use crate::{Map, Set}; +#[cfg(test)] +mod tests; + #[derive(PartialEq)] #[cfg_attr(test, derive(Clone))] pub(crate) struct Dfa @@ -37,7 +40,9 @@ where } } -/// The states in a [`Dfa`] represent byte offsets. +/// An identifier for a node in a [`Dfa`]. +/// +/// The numeric identifier does not encode a byte offset. #[derive(Hash, Eq, PartialEq, PartialOrd, Ord, Copy, Clone)] pub(crate) struct State(pub(crate) u32); @@ -308,7 +313,8 @@ where { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { writeln!(f, "digraph {{")?; - writeln!(f, " {:?} [shape = doublecircle]", self.start)?; + writeln!(f, " start [shape = point, style = invis]")?; + writeln!(f, " start -> {:?}", self.start)?; writeln!(f, " {:?} [shape = doublecircle]", self.accept)?; for (src, transitions) in self.transitions.iter() { @@ -380,15 +386,7 @@ mod edge_set { } pub(crate) fn map_states(self, mut f: impl FnMut(S) -> SS) -> EdgeSet { - EdgeSet { - // NOTE: It appears as through ` as - // IntoIterator>::IntoIter` and `std::iter::Map` both implement - // `TrustedLen`, which in turn means that this `.collect()` - // allocates the correct number of elements once up-front [1]. - // - // [1] https://doc.rust-lang.org/1.85.0/src/alloc/vec/spec_from_iter_nested.rs.html#47 - runs: self.runs.into_iter().map(|(b, s)| (b, f(s))).collect(), - } + EdgeSet { runs: self.runs.into_iter().map(|(b, s)| (b, f(s))).collect() } } /// Unions two edge sets together. @@ -428,7 +426,13 @@ mod edge_set { } } -/// Merges two sorted sequences into one sorted sequence. +/// Partitions two sequences of byte edges into sorted, non-overlapping ranges. +/// +/// Within each input, ranges must be non-empty, non-overlapping, and sorted by +/// ascending start. Each output item contains a range and the destination of the +/// edge from each input that covers it. An input with no edge covering the range +/// contributes `None`. Ranges covered by neither input are omitted. Adjacent +/// output ranges are not coalesced. pub(crate) fn union, Y: Iterator>( xs: X, ys: Y, diff --git a/compiler/rustc_transmute/src/layout/dfa/tests.rs b/compiler/rustc_transmute/src/layout/dfa/tests.rs new file mode 100644 index 0000000000000..b9c1580ac6165 --- /dev/null +++ b/compiler/rustc_transmute/src/layout/dfa/tests.rs @@ -0,0 +1,131 @@ +use std::ops::Range; + +use super::{Byte, Dfa, EdgeSet, union}; + +fn bytes(range: Range) -> Byte { + Byte { start: range.start, end: range.end } +} + +fn assert_union( + xs: &[(Byte, u8)], + ys: &[(Byte, u8)], + expected: &[(Byte, (Option, Option))], +) { + let actual: Vec<_> = union(xs.iter().copied(), ys.iter().copied()).collect(); + assert_eq!(actual, expected); + + let actual: Vec<_> = union(ys.iter().copied(), xs.iter().copied()).collect(); + let expected: Vec<_> = expected.iter().map(|&(range, (x, y))| (range, (y, x))).collect(); + assert_eq!(actual, expected); +} + +#[test] +fn union_empty_inputs() { + assert_union(&[], &[], &[]); + assert_union( + &[(bytes(1..3), 1), (bytes(5..7), 2)], + &[], + &[(bytes(1..3), (Some(1), None)), (bytes(5..7), (Some(2), None))], + ); +} + +#[test] +fn union_disjoint_and_adjacent_ranges() { + assert_union( + &[(bytes(1..3), 1), (bytes(6..8), 2)], + &[(bytes(3..5), 3), (bytes(8..9), 4)], + &[ + (bytes(1..3), (Some(1), None)), + (bytes(3..5), (None, Some(3))), + (bytes(6..8), (Some(2), None)), + (bytes(8..9), (None, Some(4))), + ], + ); +} + +#[test] +fn union_equal_ranges() { + assert_union(&[(bytes(1..4), 1)], &[(bytes(1..4), 2)], &[(bytes(1..4), (Some(1), Some(2)))]); +} + +#[test] +fn union_partially_overlapping_ranges() { + assert_union( + &[(bytes(1..4), 1)], + &[(bytes(3..6), 2)], + &[ + (bytes(1..3), (Some(1), None)), + (bytes(3..4), (Some(1), Some(2))), + (bytes(4..6), (None, Some(2))), + ], + ); +} + +#[test] +fn union_contained_ranges() { + assert_union( + &[(bytes(0..8), 1)], + &[(bytes(2..4), 2), (bytes(4..6), 3)], + &[ + (bytes(0..2), (Some(1), None)), + (bytes(2..4), (Some(1), Some(2))), + (bytes(4..6), (Some(1), Some(3))), + (bytes(6..8), (Some(1), None)), + ], + ); +} + +#[test] +fn union_matching_starts_and_ends() { + assert_union( + &[(bytes(0..4), 1), (bytes(6..10), 2)], + &[(bytes(0..2), 3), (bytes(8..10), 4)], + &[ + (bytes(0..2), (Some(1), Some(3))), + (bytes(2..4), (Some(1), None)), + (bytes(6..8), (Some(2), None)), + (bytes(8..10), (Some(2), Some(4))), + ], + ); +} + +#[test] +fn union_uninit_boundary() { + let uninit = Byte::UNINIT; + assert_union( + &[(Byte::uninit(), 1)], + &[(bytes(255..uninit), 2), (bytes(uninit..uninit + 1), 3)], + &[ + (bytes(0..255), (Some(1), None)), + (bytes(255..uninit), (Some(1), Some(2))), + (bytes(uninit..uninit + 1), (Some(1), Some(3))), + ], + ); +} + +#[test] +fn edge_set_union_coalesces_only_adjacent_ranges_with_equal_destinations() { + let xs = EdgeSet::from_edges(vec![(bytes(0..4), 1), (bytes(8..10), 1)]); + let ys = EdgeSet::from_edges(vec![(bytes(2..6), 2), (bytes(10..12), 3)]); + let merged = xs.union(&ys, |_, y| if y == Some(3) { 8 } else { 7 }); + + assert_eq!( + merged.iter().collect::>(), + [(bytes(0..6), 7), (bytes(8..10), 7), (bytes(10..12), 8)], + ); +} + +#[test] +fn dot_distinguishes_start_and_accept() { + for dfa in [Dfa::::from_edges(0, 1, &[(0, 0u8, 1)]), Dfa::unit()] { + let dot = format!("{dfa:?}"); + assert!(dot.lines().any(|line| line == " start [shape = point, style = invis]")); + let start_edge = format!(" start -> {:?}", dfa.start); + assert!(dot.lines().any(|line| line == start_edge)); + + let accept_marker = format!(" {:?} [shape = doublecircle]", dfa.accept); + let accept_markers: Vec<_> = + dot.lines().filter(|line| line.contains("doublecircle")).collect(); + assert_eq!(accept_markers, [accept_marker.as_str()]); + } +} diff --git a/compiler/rustc_transmute/src/maybe_transmutable/mod.rs b/compiler/rustc_transmute/src/maybe_transmutable/mod.rs index e07686bfc1feb..e9351d4081b6e 100644 --- a/compiler/rustc_transmute/src/maybe_transmutable/mod.rs +++ b/compiler/rustc_transmute/src/maybe_transmutable/mod.rs @@ -134,11 +134,17 @@ where { /// Answers whether a `Dfa` is transmutable into another `Dfa`. pub(crate) fn answer(self) -> Answer<::Region, ::Type> { + debug!(src = ?self.src); + debug!(dst = ?self.dst); + debug!( + src_transitions_len = self.src.transitions.len(), + dst_transitions_len = self.dst.transitions.len() + ); self.answer_memo(&mut Map::default(), self.src.start, self.dst.start) } #[inline(always)] - #[instrument(level = "debug", skip(self))] + #[instrument(level = "debug", skip(self, cache))] fn answer_memo( &self, cache: &mut Map< @@ -169,12 +175,6 @@ where dst_state: dfa::State, ) -> Answer<::Region, ::Type> { debug!(?src_state, ?dst_state); - debug!(src = ?self.src); - debug!(dst = ?self.dst); - debug!( - src_transitions_len = self.src.transitions.len(), - dst_transitions_len = self.dst.transitions.len() - ); if dst_state == self.dst.accept { // The destination needs no more input. Union transmutation permits // truncating the remaining source bytes: for example, `u8` to `()`. From ac2995485253da106df073b7011bc90987aa17ac Mon Sep 17 00:00:00 2001 From: Josh Liebow-Feeser Date: Thu, 10 Sep 2026 15:41:11 +0000 Subject: [PATCH 12/24] Exercise nonzero-sized uninhabited destinations Use each YawningVoid type as a destination in its UI test instead of repeating the zero-sized Void case. Equal-sized u128 sources prevent a size mismatch from masking a failure to reject an uninhabited destination. Update the copied explanations and regenerate the diagnostic snapshot. Validation: ./x test tests/ui/transmutability Agent-Authored-By: AI agent acting on Josh Liebow-Feeser's behalf --- tests/ui/transmutability/uninhabited.rs | 12 ++++------- tests/ui/transmutability/uninhabited.stderr | 24 ++++++++++----------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/tests/ui/transmutability/uninhabited.rs b/tests/ui/transmutability/uninhabited.rs index 4e48b590c428c..ca78874366660 100644 --- a/tests/ui/transmutability/uninhabited.rs +++ b/tests/ui/transmutability/uninhabited.rs @@ -41,12 +41,10 @@ fn yawning_void_struct() { assert!(false); //~ ERROR: evaluation panicked: assertion failed: false }; - // This transmutation is vacuously acceptable; since one cannot construct a - // `Void`, unsoundness cannot directly arise from transmuting a void into - // anything else. + // No value of `YawningVoid` exists, so transmutation from it is vacuously acceptable. assert::is_maybe_transmutable::(); - assert::is_maybe_transmutable::<(), Void>(); //~ ERROR: cannot be safely transmuted + assert::is_maybe_transmutable::(); //~ ERROR: cannot be safely transmuted } // Non-ZST uninhabited types are, nonetheless, uninhabited. @@ -63,12 +61,10 @@ fn yawning_void_enum() { assert!(false); //~ ERROR: evaluation panicked: assertion failed: false }; - // This transmutation is vacuously acceptable; since one cannot construct a - // `Void`, unsoundness cannot directly arise from transmuting a void into - // anything else. + // No value of `YawningVoid` exists, so transmutation from it is vacuously acceptable. assert::is_maybe_transmutable::(); - assert::is_maybe_transmutable::<(), Void>(); //~ ERROR: cannot be safely transmuted + assert::is_maybe_transmutable::(); //~ ERROR: cannot be safely transmuted } // References to uninhabited types are, logically, uninhabited, but for layout diff --git a/tests/ui/transmutability/uninhabited.stderr b/tests/ui/transmutability/uninhabited.stderr index 4757daec9978a..ac4b342ca990c 100644 --- a/tests/ui/transmutability/uninhabited.stderr +++ b/tests/ui/transmutability/uninhabited.stderr @@ -19,11 +19,11 @@ LL | | lifetimes: true, LL | | }> | |__________^ required by this bound in `is_maybe_transmutable` -error[E0277]: `()` cannot be safely transmuted into `yawning_void_struct::Void` - --> $DIR/uninhabited.rs:49:41 +error[E0277]: `u128` cannot be safely transmuted into `yawning_void_struct::YawningVoid` + --> $DIR/uninhabited.rs:47:43 | -LL | assert::is_maybe_transmutable::<(), Void>(); - | ^^^^ `yawning_void_struct::Void` is uninhabited +LL | assert::is_maybe_transmutable::(); + | ^^^^^^^^^^^ `yawning_void_struct::YawningVoid` is uninhabited | note: required by a bound in `is_maybe_transmutable` --> $DIR/uninhabited.rs:10:14 @@ -46,11 +46,11 @@ error[E0080]: evaluation panicked: assertion failed: false LL | assert!(false); | ^^^^^^^^^^^^^^ evaluation of `yawning_void_struct::_` failed here -error[E0277]: `()` cannot be safely transmuted into `yawning_void_enum::Void` - --> $DIR/uninhabited.rs:71:41 +error[E0277]: `u128` cannot be safely transmuted into `yawning_void_enum::YawningVoid` + --> $DIR/uninhabited.rs:67:43 | -LL | assert::is_maybe_transmutable::<(), Void>(); - | ^^^^ `yawning_void_enum::Void` is uninhabited +LL | assert::is_maybe_transmutable::(); + | ^^^^^^^^^^^ `yawning_void_enum::YawningVoid` is uninhabited | note: required by a bound in `is_maybe_transmutable` --> $DIR/uninhabited.rs:10:14 @@ -68,13 +68,13 @@ LL | | }> | |__________^ required by this bound in `is_maybe_transmutable` error[E0080]: evaluation panicked: assertion failed: false - --> $DIR/uninhabited.rs:63:9 + --> $DIR/uninhabited.rs:61:9 | LL | assert!(false); | ^^^^^^^^^^^^^^ evaluation of `yawning_void_enum::_` failed here error[E0277]: `u128` cannot be safely transmuted into `DistantVoid` - --> $DIR/uninhabited.rs:92:43 + --> $DIR/uninhabited.rs:88:43 | LL | assert::is_maybe_transmutable::(); | ^^^^^^^^^^^ at least one value of `u128` isn't a bit-valid value of `DistantVoid` @@ -95,13 +95,13 @@ LL | | }> | |__________^ required by this bound in `is_maybe_transmutable` error[E0080]: evaluation panicked: assertion failed: false - --> $DIR/uninhabited.rs:87:9 + --> $DIR/uninhabited.rs:83:9 | LL | assert!(false); | ^^^^^^^^^^^^^^ evaluation of `distant_void::_` failed here error[E0277]: `Src` cannot be safely transmuted into `issue_126267::Error` - --> $DIR/uninhabited.rs:108:42 + --> $DIR/uninhabited.rs:104:42 | LL | assert::is_maybe_transmutable::(); | ^^^ the size of `Src` is smaller than the size of `issue_126267::Error` From b76081607098210b76023a393e6dceab330e4a36 Mon Sep 17 00:00:00 2001 From: voodookiidoo Date: Fri, 11 Sep 2026 01:37:53 +0500 Subject: [PATCH 13/24] iter::repeate_with and iter::successors added as diagnostic items (requiered for clippy analysis) --- library/core/src/iter/sources/repeat_with.rs | 1 + library/core/src/iter/sources/successors.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/library/core/src/iter/sources/repeat_with.rs b/library/core/src/iter/sources/repeat_with.rs index d3cd74a448375..07805f10aabe0 100644 --- a/library/core/src/iter/sources/repeat_with.rs +++ b/library/core/src/iter/sources/repeat_with.rs @@ -62,6 +62,7 @@ use crate::ops::Try; /// ``` #[inline] #[stable(feature = "iterator_repeat_with", since = "1.28.0")] +#[rustc_diagnostic_item = "iterator_repeat_with"] pub fn repeat_with A>(repeater: F) -> RepeatWith { RepeatWith { repeater } } diff --git a/library/core/src/iter/sources/successors.rs b/library/core/src/iter/sources/successors.rs index 5466131903f85..6c352dba20bb7 100644 --- a/library/core/src/iter/sources/successors.rs +++ b/library/core/src/iter/sources/successors.rs @@ -19,6 +19,7 @@ use crate::iter::FusedIterator; /// assert_eq!(powers_of_10.collect::>(), &[1, 10, 100, 1_000, 10_000]); /// ``` #[stable(feature = "iter_successors", since = "1.34.0")] +#[rustc_diagnostic_item = "iter_successors"] pub fn successors(first: Option, succ: F) -> Successors where F: FnMut(&T) -> Option, From 7bc87d508dada39dbf83f17b7aa74bd823905d38 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 8 Sep 2026 16:10:31 +1000 Subject: [PATCH 14/24] Remove most `Style` variants These are dead since the old emitter was removed in Jan 2026 (3ccabc6a8dc). Also removed: `BRIGHT_BLUE`, `Level::color`, and a couple of `level` fn parameters. --- .../src/annotate_snippet_emitter_writer.rs | 15 +++------- compiler/rustc_errors/src/emitter.rs | 25 +---------------- compiler/rustc_errors/src/lib.rs | 28 ------------------- 3 files changed, 5 insertions(+), 63 deletions(-) diff --git a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs index 7e7f72943c7cd..42c22ffc0f5f3 100644 --- a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs +++ b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs @@ -166,9 +166,7 @@ impl AnnotateSnippetEmitter { // If at least one portion of the message is styled, we need to // "pre-style" the message let mut title = if msgs.iter().any(|(_, style)| style != &crate::Style::NoStyle) { - annotation_level - .clone() - .secondary_title(Cow::Owned(self.pre_style_msgs(msgs, *level, args))) + annotation_level.clone().secondary_title(Cow::Owned(self.pre_style_msgs(msgs, args))) } else { annotation_level.clone().primary_title(format_diag_messages(msgs, args)) }; @@ -255,7 +253,7 @@ impl AnnotateSnippetEmitter { // If at least one portion of the message is styled, we need to // "pre-style" the message let msg = if c.messages.iter().any(|(_, style)| style != &crate::Style::NoStyle) { - Cow::Owned(self.pre_style_msgs(&c.messages, c.level, args)) + Cow::Owned(self.pre_style_msgs(&c.messages, args)) } else { format_diag_messages(&c.messages, args) }; @@ -544,16 +542,11 @@ impl AnnotateSnippetEmitter { .short_message(self.short_message) } - fn pre_style_msgs( - &self, - msgs: &[(DiagMessage, Style)], - level: Level, - args: &DiagArgMap, - ) -> String { + fn pre_style_msgs(&self, msgs: &[(DiagMessage, Style)], args: &DiagArgMap) -> String { msgs.iter() .filter_map(|(m, style)| { let text = format_diag_message(m, args); - let style = style.anstyle(level); + let style = style.anstyle(); if text.is_empty() { None } else { Some(format!("{style}{text}{style:#}")) } }) .collect() diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 6d5f8462ff496..e3decd29b594a 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -555,33 +555,10 @@ pub fn get_stderr_color_choice(color: ColorConfig, stderr: &std::io::Stderr) -> if matches!(choice, ColorChoice::Auto) { AutoStream::choice(stderr) } else { choice } } -/// On Windows, BRIGHT_BLUE is hard to read on black. Use cyan instead. -/// -/// See #36178. -const BRIGHT_BLUE: anstyle::Style = if cfg!(windows) { - AnsiColor::BrightCyan.on_default() -} else { - AnsiColor::BrightBlue.on_default() -}; - impl Style { - pub(crate) fn anstyle(&self, lvl: Level) -> anstyle::Style { + pub(crate) fn anstyle(&self) -> anstyle::Style { match self { - Style::Addition => AnsiColor::BrightGreen.on_default(), - Style::Removal => AnsiColor::BrightRed.on_default(), - Style::LineAndColumn => anstyle::Style::new(), - Style::LineNumber => BRIGHT_BLUE.effects(Effects::BOLD), - Style::Quotation => anstyle::Style::new(), - Style::MainHeaderMsg => if cfg!(windows) { - AnsiColor::BrightWhite.on_default() - } else { - anstyle::Style::new() - } - .effects(Effects::BOLD), - Style::UnderlinePrimary | Style::LabelPrimary => lvl.color().effects(Effects::BOLD), - Style::UnderlineSecondary | Style::LabelSecondary => BRIGHT_BLUE.effects(Effects::BOLD), Style::HeaderMsg | Style::NoStyle => anstyle::Style::new(), - Style::Level(lvl) => lvl.color().effects(Effects::BOLD), Style::Highlight => AnsiColor::Magenta.on_default().effects(Effects::BOLD), } } diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index 0fdd0f80e0433..1ba1a001836fa 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -1640,23 +1640,6 @@ impl fmt::Display for Level { } impl Level { - fn color(self) -> anstyle::Style { - match self { - Bug | Fatal | Error | DelayedBug => AnsiColor::BrightRed.on_default(), - ForceWarning | Warning => { - if cfg!(windows) { - AnsiColor::BrightYellow.on_default() - } else { - AnsiColor::Yellow.on_default() - } - } - Note | OnceNote => AnsiColor::BrightGreen.on_default(), - Help | OnceHelp => AnsiColor::BrightCyan.on_default(), - FailureNote => anstyle::Style::new(), - Allow | Expect => unreachable!(), - } - } - pub fn to_str(self) -> &'static str { match self { Bug | DelayedBug => "error: internal compiler error", @@ -1682,20 +1665,9 @@ impl IntoDiagArg for Level { #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Encodable, Decodable)] pub enum Style { - MainHeaderMsg, HeaderMsg, - LineAndColumn, - LineNumber, - Quotation, - UnderlinePrimary, - UnderlineSecondary, - LabelPrimary, - LabelSecondary, NoStyle, - Level(Level), Highlight, - Addition, - Removal, } // FIXME(eddyb) this doesn't belong here AFAICT, should be moved to callsite. From 63fddb365784980fdfd9dfdf4691e3011cdae377 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 8 Sep 2026 16:21:06 +1000 Subject: [PATCH 15/24] Remove `Style::HeaderMsg` It has a single use, where it is passed in to `format_diag_messages` which then discards it. So that use can be replaced with `Style::NoStyle`. --- .../rustc_errors/src/annotate_snippet_emitter_writer.rs | 6 ++---- compiler/rustc_errors/src/emitter.rs | 2 +- compiler/rustc_errors/src/lib.rs | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs index 42c22ffc0f5f3..df9e43fc345f0 100644 --- a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs +++ b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs @@ -307,10 +307,8 @@ impl AnnotateSnippetEmitter { // do not display this suggestion, it is meant only for tools } SuggestionStyle::HideCodeAlways => { - let msg = format_diag_messages( - &[(suggestion.msg.to_owned(), Style::HeaderMsg)], - args, - ); + let msg = + format_diag_messages(&[(suggestion.msg.to_owned(), Style::NoStyle)], args); group = group.element(annotate_snippets::Level::HELP.message(msg)); } SuggestionStyle::HideCodeInline diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index e3decd29b594a..60102a7ce8092 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -558,7 +558,7 @@ pub fn get_stderr_color_choice(color: ColorConfig, stderr: &std::io::Stderr) -> impl Style { pub(crate) fn anstyle(&self) -> anstyle::Style { match self { - Style::HeaderMsg | Style::NoStyle => anstyle::Style::new(), + Style::NoStyle => anstyle::Style::new(), Style::Highlight => AnsiColor::Magenta.on_default().effects(Effects::BOLD), } } diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index 1ba1a001836fa..7748e95f751bd 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -1665,7 +1665,6 @@ impl IntoDiagArg for Level { #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Encodable, Decodable)] pub enum Style { - HeaderMsg, NoStyle, Highlight, } From 025e02982424ad0a33400c61e083f4610e2466e2 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 8 Sep 2026 18:54:13 +1000 Subject: [PATCH 16/24] Reduce unnecessary `Cow` use in error formatting `format_diag_messages` always constructs a `String`, so it can just return that. This simplifies various call sites. --- .../src/annotate_snippet_emitter_writer.rs | 7 +++---- compiler/rustc_errors/src/formatting.rs | 7 ++----- compiler/rustc_errors/src/json.rs | 11 ++--------- 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs index df9e43fc345f0..c772ffb69ab22 100644 --- a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs +++ b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs @@ -5,7 +5,6 @@ //! //! [annotate_snippets]: https://docs.rs/crate/annotate-snippets/ -use std::borrow::Cow; use std::fmt::Debug; use std::io; use std::io::Write; @@ -166,7 +165,7 @@ impl AnnotateSnippetEmitter { // If at least one portion of the message is styled, we need to // "pre-style" the message let mut title = if msgs.iter().any(|(_, style)| style != &crate::Style::NoStyle) { - annotation_level.clone().secondary_title(Cow::Owned(self.pre_style_msgs(msgs, args))) + annotation_level.clone().secondary_title(self.pre_style_msgs(msgs, args)) } else { annotation_level.clone().primary_title(format_diag_messages(msgs, args)) }; @@ -184,7 +183,7 @@ impl AnnotateSnippetEmitter { // If we don't have span information, emit and exit let Some(sm) = self.sm.as_ref() else { group = group.elements(children.iter().map(|c| { - let msg = format_diag_messages(&c.messages, args).to_string(); + let msg = format_diag_messages(&c.messages, args); let level = annotation_level_for_level(c.level); level.message(msg) })); @@ -253,7 +252,7 @@ impl AnnotateSnippetEmitter { // If at least one portion of the message is styled, we need to // "pre-style" the message let msg = if c.messages.iter().any(|(_, style)| style != &crate::Style::NoStyle) { - Cow::Owned(self.pre_style_msgs(&c.messages, args)) + self.pre_style_msgs(&c.messages, args) } else { format_diag_messages(&c.messages, args) }; diff --git a/compiler/rustc_errors/src/formatting.rs b/compiler/rustc_errors/src/formatting.rs index 7b617031d6c8e..a56b45c729887 100644 --- a/compiler/rustc_errors/src/formatting.rs +++ b/compiler/rustc_errors/src/formatting.rs @@ -24,11 +24,8 @@ fn to_fluent_args<'iter>(iter: impl Iterator>) -> FluentAr } /// Convert `DiagMessage`s to a string -pub fn format_diag_messages( - messages: &[(DiagMessage, Style)], - args: &DiagArgMap, -) -> Cow<'static, str> { - Cow::Owned(messages.iter().map(|(m, _)| format_diag_message(m, args)).collect::()) +pub fn format_diag_messages(messages: &[(DiagMessage, Style)], args: &DiagArgMap) -> String { + messages.iter().map(|(m, _)| format_diag_message(m, args)).collect::() } /// Convert a `DiagMessage` to a string diff --git a/compiler/rustc_errors/src/json.rs b/compiler/rustc_errors/src/json.rs index 04ac140f33261..1f5a8c2fe94a6 100644 --- a/compiler/rustc_errors/src/json.rs +++ b/compiler/rustc_errors/src/json.rs @@ -379,20 +379,13 @@ impl Diagnostic { let buf = Arc::try_unwrap(buf.0).unwrap().into_inner().unwrap(); let buf = String::from_utf8(buf).unwrap(); - Diagnostic { - message: formatted_message.to_string(), - code, - level, - spans, - children, - rendered: Some(buf), - } + Diagnostic { message: formatted_message, code, level, spans, children, rendered: Some(buf) } } fn from_sub_diagnostic(subdiag: &Subdiag, args: &DiagArgMap, je: &JsonEmitter) -> Diagnostic { let formatted_message = format_diag_messages(&subdiag.messages, args); Diagnostic { - message: formatted_message.to_string(), + message: formatted_message, code: None, level: subdiag.level.to_str(), spans: DiagnosticSpan::from_multispan(&subdiag.span, args, je), From 996ef5d739983e683e40ee0da6318d521f65f83a Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 8 Sep 2026 19:03:28 +1000 Subject: [PATCH 17/24] Replace a `format_diag_messages` use When there's a single message, `format_diag_message` suffices. --- compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs index c772ffb69ab22..e82b5bd8e4370 100644 --- a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs +++ b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs @@ -306,8 +306,7 @@ impl AnnotateSnippetEmitter { // do not display this suggestion, it is meant only for tools } SuggestionStyle::HideCodeAlways => { - let msg = - format_diag_messages(&[(suggestion.msg.to_owned(), Style::NoStyle)], args); + let msg = format_diag_message(&suggestion.msg, args).into_owned(); group = group.element(annotate_snippets::Level::HELP.message(msg)); } SuggestionStyle::HideCodeInline From a956ff03c671a8fb6da64e929d031c8dc3e13034 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Wed, 9 Sep 2026 08:53:27 +1000 Subject: [PATCH 18/24] Tweak a `use` item Use the `FatalError` re-export from `rustc_errors` instead of `rustc_span`, because that's what's normally done. --- compiler/rustc_expand/src/module.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compiler/rustc_expand/src/module.rs b/compiler/rustc_expand/src/module.rs index febe5e16cf446..d49eae9830b3f 100644 --- a/compiler/rustc_expand/src/module.rs +++ b/compiler/rustc_expand/src/module.rs @@ -4,12 +4,11 @@ use std::path::{self, Path, PathBuf}; use rustc_ast::{AttrVec, Attribute, Inline, Item, ModSpans}; use rustc_attr_parsing::template; use rustc_attr_parsing::validate_attr::emit_malformed_attribute; -use rustc_errors::{Diag, ErrorGuaranteed}; +use rustc_errors::{Diag, ErrorGuaranteed, FatalError}; use rustc_parse::lexer::StripTokens; use rustc_parse::{exp, new_parser_from_file, unwrap_or_emit_fatal}; use rustc_session::Session; use rustc_session::parse::ParseSess; -use rustc_span::fatal_error::FatalError; use rustc_span::{Ident, Span, sym}; use thin_vec::ThinVec; From 6331ab69b4bbd738c4650f78d116d30649605c13 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Tue, 8 Sep 2026 19:09:01 +1000 Subject: [PATCH 19/24] Introduce `Sublevel` for errors Currently `Level` is used for both diagnostics and subdiagnostics. But both diagnostics and subdiagnostics only use some of the levels. This commit introduces `Sublevel` to tighten up the representation and prevent impossible combinations. --- compiler/rustc_codegen_ssa/src/back/write.rs | 4 +- .../src/annotate_snippet_emitter_writer.rs | 19 +++- compiler/rustc_errors/src/diagnostic.rs | 46 +++++----- compiler/rustc_errors/src/emitter.rs | 7 +- compiler/rustc_errors/src/lib.rs | 91 ++++++++++++------- .../rustc_expand/src/proc_macro_server.rs | 12 +++ .../traits/fulfillment_errors.rs | 6 +- 7 files changed, 120 insertions(+), 65 deletions(-) diff --git a/compiler/rustc_codegen_ssa/src/back/write.rs b/compiler/rustc_codegen_ssa/src/back/write.rs index e8b25eb4359d0..60ac8a2663b90 100644 --- a/compiler/rustc_codegen_ssa/src/back/write.rs +++ b/compiler/rustc_codegen_ssa/src/back/write.rs @@ -12,7 +12,7 @@ use rustc_data_structures::profiling::{SelfProfilerRef, VerboseTimingGuard}; use rustc_errors::emitter::Emitter; use rustc_errors::{ Diag, DiagArgMap, DiagCtxt, DiagCtxtHandle, DiagMessage, ErrCode, FatalError, FatalErrorMarker, - Level, MultiSpan, Style, Suggestions, catch_fatal_errors, + Level, MultiSpan, Style, Sublevel, Suggestions, catch_fatal_errors, }; use rustc_fs_util::link_or_copy; use rustc_incremental::{copy_cgu_workproduct_to_incr_comp_cache_dir, in_incr_comp_dir_sess}; @@ -1217,7 +1217,7 @@ struct Diagnostic { // missing the following fields from `rustc_errors::Subdiag`. // - `span`: it doesn't impl `Send`. struct Subdiagnostic { - level: Level, + level: Sublevel, messages: Vec<(DiagMessage, Style)>, } diff --git a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs index e82b5bd8e4370..f075ff21bc7bc 100644 --- a/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs +++ b/compiler/rustc_errors/src/annotate_snippet_emitter_writer.rs @@ -28,7 +28,7 @@ use crate::emitter::{ use crate::formatting::{format_diag_message, format_diag_messages}; use crate::{ CodeSuggestion, DiagInner, DiagMessage, Emitter, ErrCode, Level, MultiSpan, Style, Subdiag, - SuggestionStyle, TerminalUrl, + Sublevel, SuggestionStyle, TerminalUrl, }; /// Generates diagnostics using annotate-snippet @@ -125,14 +125,23 @@ fn annotation_level_for_level(level: Level) -> annotate_snippets::level::Level<' } Level::Fatal | Level::Error => annotate_snippets::level::ERROR, Level::ForceWarning | Level::Warning => annotate_snippets::Level::WARNING, - Level::Note | Level::OnceNote => annotate_snippets::Level::NOTE, - Level::Help | Level::OnceHelp => annotate_snippets::Level::HELP, + Level::Note => annotate_snippets::Level::NOTE, + Level::Help => annotate_snippets::Level::HELP, Level::FailureNote => annotate_snippets::Level::NOTE.no_name(), Level::Allow => panic!("Should not call with Allow"), Level::Expect => panic!("Should not call with Expect"), } } +fn annotation_level_for_sublevel(level: Sublevel) -> annotate_snippets::level::Level<'static> { + match level { + Sublevel::Error => annotate_snippets::Level::ERROR, + Sublevel::Warning => annotate_snippets::Level::WARNING, + Sublevel::Note | Sublevel::OnceNote => annotate_snippets::Level::NOTE, + Sublevel::Help | Sublevel::OnceHelp => annotate_snippets::Level::HELP, + } +} + impl AnnotateSnippetEmitter { pub fn new(dst: Destination) -> Self { Self { @@ -184,7 +193,7 @@ impl AnnotateSnippetEmitter { let Some(sm) = self.sm.as_ref() else { group = group.elements(children.iter().map(|c| { let msg = format_diag_messages(&c.messages, args); - let level = annotation_level_for_level(c.level); + let level = annotation_level_for_sublevel(c.level); level.message(msg) })); @@ -247,7 +256,7 @@ impl AnnotateSnippetEmitter { } for c in children { - let level = annotation_level_for_level(c.level); + let level = annotation_level_for_sublevel(c.level); // If at least one portion of the message is styled, we need to // "pre-style" the message diff --git a/compiler/rustc_errors/src/diagnostic.rs b/compiler/rustc_errors/src/diagnostic.rs index 54904f4944262..d935299769871 100644 --- a/compiler/rustc_errors/src/diagnostic.rs +++ b/compiler/rustc_errors/src/diagnostic.rs @@ -16,7 +16,8 @@ use tracing::debug; use crate::{ CodeSuggestion, DiagCtxtHandle, DiagMessage, ErrCode, ErrorGuaranteed, ExplicitBug, Level, - MultiSpan, StashKey, Style, Substitution, SubstitutionPart, SuggestionStyle, Suggestions, + MultiSpan, StashKey, Style, Sublevel, Substitution, SubstitutionPart, SuggestionStyle, + Suggestions, }; /// Trait for types that `Diag::emit` can return as a "guarantee" (or "proof") @@ -314,9 +315,7 @@ impl DiagInner { Level::ForceWarning | Level::Warning | Level::Note - | Level::OnceNote | Level::Help - | Level::OnceHelp | Level::FailureNote | Level::Allow | Level::Expect => false, @@ -343,7 +342,12 @@ impl DiagInner { } } - pub(crate) fn sub(&mut self, level: Level, message: impl Into, span: MultiSpan) { + pub(crate) fn sub( + &mut self, + level: Sublevel, + message: impl Into, + span: MultiSpan, + ) { let sub = Subdiag { level, messages: vec![(message.into(), Style::NoStyle)], span }; self.children.push(sub); } @@ -367,7 +371,7 @@ impl DiagInner { pub fn emitted_at_sub_diag(&self) -> Subdiag { let track = format!("-Ztrack-diagnostics: created at {}", self.emitted_at); Subdiag { - level: crate::Level::Note, + level: crate::Sublevel::Note, messages: vec![(DiagMessage::Str(Cow::Owned(track)), Style::NoStyle)], span: MultiSpan::new(), } @@ -420,7 +424,7 @@ impl PartialEq for DiagInner { /// For example, a note attached to an error. #[derive(Clone, Debug, PartialEq, Hash, Encodable, Decodable)] pub struct Subdiag { - pub level: Level, + pub level: Sublevel, pub messages: Vec<(DiagMessage, Style)>, pub span: MultiSpan, } @@ -701,12 +705,12 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { with_fn! { with_note, /// Add a note attached to this diagnostic. pub fn note(&mut self, msg: impl Into) -> &mut Self { - self.sub(Level::Note, msg, MultiSpan::new()); + self.sub(Sublevel::Note, msg, MultiSpan::new()); self } } pub fn highlighted_note(&mut self, msg: Vec) -> &mut Self { - self.sub_with_highlights(Level::Note, msg, MultiSpan::new()); + self.sub_with_highlights(Sublevel::Note, msg, MultiSpan::new()); self } @@ -715,13 +719,13 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { span: impl Into, msg: Vec, ) -> &mut Self { - self.sub_with_highlights(Level::Note, msg, span.into()); + self.sub_with_highlights(Sublevel::Note, msg, span.into()); self } /// This is like [`Diag::note()`], but it's only printed once. pub fn note_once(&mut self, msg: impl Into) -> &mut Self { - self.sub(Level::OnceNote, msg, MultiSpan::new()); + self.sub(Sublevel::OnceNote, msg, MultiSpan::new()); self } @@ -733,7 +737,7 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { sp: impl Into, msg: impl Into, ) -> &mut Self { - self.sub(Level::Note, msg, sp.into()); + self.sub(Sublevel::Note, msg, sp.into()); self } } @@ -744,14 +748,14 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { sp: S, msg: impl Into, ) -> &mut Self { - self.sub(Level::OnceNote, msg, sp.into()); + self.sub(Sublevel::OnceNote, msg, sp.into()); self } with_fn! { with_warn, /// Add a warning attached to this diagnostic. pub fn warn(&mut self, msg: impl Into) -> &mut Self { - self.sub(Level::Warning, msg, MultiSpan::new()); + self.sub(Sublevel::Warning, msg, MultiSpan::new()); self } } @@ -762,26 +766,26 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { sp: S, msg: impl Into, ) -> &mut Self { - self.sub(Level::Warning, msg, sp.into()); + self.sub(Sublevel::Warning, msg, sp.into()); self } with_fn! { with_help, /// Add a help message attached to this diagnostic. pub fn help(&mut self, msg: impl Into) -> &mut Self { - self.sub(Level::Help, msg, MultiSpan::new()); + self.sub(Sublevel::Help, msg, MultiSpan::new()); self } } /// This is like [`Diag::help()`], but it's only printed once. pub fn help_once(&mut self, msg: impl Into) -> &mut Self { - self.sub(Level::OnceHelp, msg, MultiSpan::new()); + self.sub(Sublevel::OnceHelp, msg, MultiSpan::new()); self } /// Add a help message attached to this diagnostic with a customizable highlighted message. pub fn highlighted_help(&mut self, msg: Vec) -> &mut Self { - self.sub_with_highlights(Level::Help, msg, MultiSpan::new()); + self.sub_with_highlights(Sublevel::Help, msg, MultiSpan::new()); self } @@ -791,7 +795,7 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { span: impl Into, msg: Vec, ) -> &mut Self { - self.sub_with_highlights(Level::Help, msg, span.into()); + self.sub_with_highlights(Sublevel::Help, msg, span.into()); self } @@ -803,7 +807,7 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { sp: impl Into, msg: impl Into, ) -> &mut Self { - self.sub(Level::Help, msg, sp.into()); + self.sub(Sublevel::Help, msg, sp.into()); self } } @@ -1226,13 +1230,13 @@ impl<'a, G: EmissionGuarantee> Diag<'a, G> { /// public methods above. /// /// Used by `proc_macro_server` for implementing `server::Diagnostic`. - pub fn sub(&mut self, level: Level, message: impl Into, span: MultiSpan) { + pub fn sub(&mut self, level: Sublevel, message: impl Into, span: MultiSpan) { self.deref_mut().sub(level, message, span); } /// Convenience function for internal use, clients should use one of the /// public methods above. - fn sub_with_highlights(&mut self, level: Level, messages: Vec, span: MultiSpan) { + fn sub_with_highlights(&mut self, level: Sublevel, messages: Vec, span: MultiSpan) { let messages = messages.into_iter().map(|m| (m.content.into(), m.style)).collect(); let sub = Subdiag { level, messages, span }; self.children.push(sub); diff --git a/compiler/rustc_errors/src/emitter.rs b/compiler/rustc_errors/src/emitter.rs index 60102a7ce8092..749b58e5d4b82 100644 --- a/compiler/rustc_errors/src/emitter.rs +++ b/compiler/rustc_errors/src/emitter.rs @@ -26,7 +26,8 @@ use tracing::{debug, warn}; use crate::formatting::format_diag_message; use crate::timings::TimingRecord; use crate::{ - CodeSuggestion, DiagInner, DiagMessage, Level, MultiSpan, Style, Subdiag, SuggestionStyle, + CodeSuggestion, DiagInner, DiagMessage, Level, MultiSpan, Style, Subdiag, Sublevel, + SuggestionStyle, }; /// Describes the way the content of the `rendered` field of the json output is generated @@ -209,7 +210,7 @@ pub trait Emitter { ); children.push(Subdiag { - level: Level::Note, + level: Sublevel::Note, messages: vec![(DiagMessage::from(msg), Style::NoStyle)], span: MultiSpan::new(), }); @@ -379,7 +380,7 @@ impl Emitter for EmitterWithNote { } fn emit_diagnostic(&mut self, mut diag: DiagInner) { - diag.sub(Level::Note, self.note.clone(), MultiSpan::new()); + diag.sub(Sublevel::Note, self.note.clone(), MultiSpan::new()); self.emitter.emit_diagnostic(diag); } } diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs index 7748e95f751bd..3374d71461cfa 100644 --- a/compiler/rustc_errors/src/lib.rs +++ b/compiler/rustc_errors/src/lib.rs @@ -617,8 +617,7 @@ impl<'a> DiagCtxtHandle<'a> { DelayedBug => { return self.dcx.inner.borrow_mut().emit_diagnostic(diag, self.tainted_with_errors); } - ForceWarning | Warning | Note | OnceNote | Help | OnceHelp | FailureNote | Allow - | Expect => None, + ForceWarning | Warning | Note | Help | FailureNote | Allow | Expect => None, }; // FIXME(Centril, #69537): Consider reintroducing panic on overwriting a stashed diagnostic @@ -1287,7 +1286,6 @@ impl DiagCtxtInner { } } Note | Help | FailureNote => {} - OnceNote | OnceHelp => panic!("bad level: {:?}", diagnostic.level), Allow => { // Nothing emitted for allowed lints. if diagnostic.has_future_breakage() { @@ -1346,8 +1344,11 @@ impl DiagCtxtInner { let not_yet_emitted = |sub: &mut Subdiag| { debug!(?sub); - if sub.level != OnceNote && sub.level != OnceHelp { - return true; + match sub.level { + Sublevel::Error | Sublevel::Warning | Sublevel::Note | Sublevel::Help => { + return true; + } + Sublevel::OnceNote | Sublevel::OnceHelp => {} } let mut hasher = StableHasher::new(); sub.hash(&mut hasher); @@ -1358,7 +1359,7 @@ impl DiagCtxtInner { diagnostic.children.retain_mut(not_yet_emitted); if already_emitted { let msg = "duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`"; - diagnostic.sub(Note, msg, MultiSpan::new()); + diagnostic.sub(Sublevel::Note, msg, MultiSpan::new()); } if is_error { @@ -1508,7 +1509,7 @@ impl DiagCtxtInner { let msg = msg!( "`flushed_delayed` got diagnostic with level {$level}, instead of the expected `DelayedBug`" ).arg("level", bug.level).format(); - bug.sub(Note, msg, bug.span.primary_span().unwrap().into()); + bug.sub(Sublevel::Note, msg, bug.span.primary_span().unwrap().into()); } bug.level = Bug; @@ -1559,26 +1560,24 @@ impl DelayedDiagInner { .arg("emitted_at", diag.emitted_at.clone()) .arg("note", self.note) .format(); - diag.sub(Note, msg, diag.span.primary_span().unwrap_or(DUMMY_SP).into()); + diag.sub(Sublevel::Note, msg, diag.span.primary_span().unwrap_or(DUMMY_SP).into()); diag } } -/// | Level | is_error | EmissionGuarantee | Top-level | Sub | Used in lints? -/// | ----- | -------- | ----------------- | --------- | --- | -------------- -/// | Bug | yes | BugAbort | yes | - | - -/// | Fatal | yes | FatalAbort | yes | - | - -/// | Error | yes | ErrorGuaranteed | yes | - | yes -/// | DelayedBug | yes | ErrorGuaranteed | yes | - | - -/// | ForceWarning | - | () | yes | - | lint-only -/// | Warning | - | () | yes | yes | yes -/// | Note | - | () | rare | yes | - -/// | OnceNote | - | () | - | yes | lint-only -/// | Help | - | () | rare | yes | - -/// | OnceHelp | - | () | - | yes | lint-only -/// | FailureNote | - | () | rare | - | - -/// | Allow | - | () | yes | - | lint-only -/// | Expect | - | () | yes | - | lint-only +/// | Level | is_error | EmissionGuarantee | Top-level | Used in lints? +/// | ----- | -------- | ----------------- | --------- | -------------- +/// | Bug | yes | BugAbort | yes | - +/// | Fatal | yes | FatalAbort | yes | - +/// | Error | yes | ErrorGuaranteed | yes | yes +/// | DelayedBug | yes | ErrorGuaranteed | yes | - +/// | ForceWarning | - | () | yes | lint-only +/// | Warning | - | () | yes | yes +/// | Note | - | () | rare | - +/// | Help | - | () | rare | - +/// | FailureNote | - | () | rare | - +/// | Allow | - | () | yes | lint-only +/// | Expect | - | () | yes | lint-only /// #[derive(Copy, PartialEq, Eq, Clone, Hash, Debug, Encodable, Decodable)] pub enum Level { @@ -1613,15 +1612,9 @@ pub enum Level { /// A message giving additional context. Note, - /// A note that is only emitted once. - OnceNote, - /// A message suggesting how to fix something. Help, - /// A help that is only emitted once. - OnceHelp, - /// Similar to `Note`, but used in cases where compilation has failed. When printed for human /// consumption, it doesn't have any kind of `note:` label. FailureNote, @@ -1645,8 +1638,8 @@ impl Level { Bug | DelayedBug => "error: internal compiler error", Fatal | Error => "error", ForceWarning | Warning => "warning", - Note | OnceNote => "note", - Help | OnceHelp => "help", + Note => "note", + Help => "help", FailureNote => "failure-note", Allow | Expect => unreachable!(), } @@ -1663,6 +1656,42 @@ impl IntoDiagArg for Level { } } +/// The level for a subdiagnostic. +#[derive(Copy, PartialEq, Eq, Clone, Hash, Debug, Encodable, Decodable)] +pub enum Sublevel { + /// See `Level::Error`. + /// + /// The compiler never uses this level in a subdiagnostic, but it can be produced by proc + /// macros. See tests/ui/proc-macro/sub-error-diag.rs for details. + Error, + + /// See `Level::Warning`. + Warning, + + /// See `Level::Note`. + Note, + + /// A note that is only emitted once. + OnceNote, + + /// See `Level::Help`. + Help, + + /// A help that is only emitted once. + OnceHelp, +} + +impl Sublevel { + pub fn to_str(self) -> &'static str { + match self { + Sublevel::Error => "error", + Sublevel::Warning => "warning", + Sublevel::Note | Sublevel::OnceNote => "note", + Sublevel::Help | Sublevel::OnceHelp => "help", + } + } +} + #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Encodable, Decodable)] pub enum Style { NoStyle, diff --git a/compiler/rustc_expand/src/proc_macro_server.rs b/compiler/rustc_expand/src/proc_macro_server.rs index c522626b39562..c0a9a43c64cdf 100644 --- a/compiler/rustc_expand/src/proc_macro_server.rs +++ b/compiler/rustc_expand/src/proc_macro_server.rs @@ -414,6 +414,18 @@ impl ToInternal for Level { } } +impl ToInternal for Level { + fn to_internal(self) -> rustc_errors::Sublevel { + match self { + Level::Error => rustc_errors::Sublevel::Error, + Level::Warning => rustc_errors::Sublevel::Warning, + Level::Note => rustc_errors::Sublevel::Note, + Level::Help => rustc_errors::Sublevel::Help, + _ => unreachable!("unknown proc_macro::Level variant: {:?}", self), + } + } +} + fn cancel_diags_into_string(diags: Vec>) -> String { let mut messages = diags.into_iter().flat_map(Diag::cancel_into_message); let msg = messages.next().expect("no diagnostic has a message"); diff --git a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs index d8a22e745bcc2..5b029d6fad5d4 100644 --- a/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs +++ b/compiler/rustc_trait_selection/src/error_reporting/traits/fulfillment_errors.rs @@ -10,8 +10,8 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet}; use rustc_data_structures::unord::UnordSet; use rustc_errors::codes::*; use rustc_errors::{ - Applicability, Diag, ErrorGuaranteed, Level, MultiSpan, StashKey, StringPart, Suggestions, msg, - pluralize, struct_span_code_err, + Applicability, Diag, ErrorGuaranteed, MultiSpan, StashKey, StringPart, Sublevel, Suggestions, + msg, pluralize, struct_span_code_err, }; use rustc_hir::attrs::diagnostic::CustomDiagnostic; use rustc_hir::attrs::lang_items::LangItem; @@ -2286,7 +2286,7 @@ impl<'a, 'tcx> TypeErrCtxt<'a, 'tcx> { } if let [child, ..] = &err.children[..] - && child.level == Level::Help + && child.level == Sublevel::Help && let Some(line) = child.messages.get(0) && let Some(line) = line.0.as_str() && line.starts_with("the trait") From 23b52a6a1868de31685eccd9836f30274a317dcf Mon Sep 17 00:00:00 2001 From: voodookiidoo Date: Fri, 11 Sep 2026 02:00:34 +0500 Subject: [PATCH 20/24] iter::from_fn added as diagnostic items (requiered for clippy analysis) --- library/core/src/iter/sources/from_fn.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/library/core/src/iter/sources/from_fn.rs b/library/core/src/iter/sources/from_fn.rs index 1c7e1b30a2f88..21a1f53c24740 100644 --- a/library/core/src/iter/sources/from_fn.rs +++ b/library/core/src/iter/sources/from_fn.rs @@ -42,6 +42,7 @@ use crate::fmt; /// ``` #[inline] #[stable(feature = "iter_from_fn", since = "1.34.0")] +#[rustc_diagnostic_item = "iter_from_fn"] pub fn from_fn(f: F) -> FromFn where F: FnMut() -> Option, From fc4de336c52e2d2135e872264867c90cf3a52fe1 Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 4 Sep 2026 01:48:25 +0000 Subject: [PATCH 21/24] Use new windows bindings --- library/std/src/os/windows/process.rs | 7 +- library/std/src/sys/fs/windows.rs | 4 +- library/std/src/sys/fs/windows/dir.rs | 4 +- .../std/src/sys/fs/windows/remove_dir_all.rs | 2 +- library/std/src/sys/io/error/windows/tests.rs | 2 +- .../src/sys/net/connection/socket/windows.rs | 4 +- library/std/src/sys/pal/windows/c.rs | 265 +++++++++++++++++- library/std/src/sys/pal/windows/handle.rs | 2 +- .../std/src/sys/pal/windows/stack_overflow.rs | 2 +- library/std/src/sys/paths/windows.rs | 4 +- library/std/src/sys/process/windows.rs | 5 +- .../std/src/sys/process/windows/child_pipe.rs | 17 +- library/std/src/sys/stdio/windows.rs | 11 +- typos.toml | 1 + 14 files changed, 296 insertions(+), 34 deletions(-) diff --git a/library/std/src/os/windows/process.rs b/library/std/src/os/windows/process.rs index 3949907888dd6..104c5dba70b68 100644 --- a/library/std/src/os/windows/process.rs +++ b/library/std/src/os/windows/process.rs @@ -518,7 +518,8 @@ impl<'a> Drop for ProcThreadAttributeList<'a> { /// /// [1]: fn drop(&mut self) { - let lp_attribute_list = self.attribute_list.as_mut_ptr().cast::(); + let lp_attribute_list = + self.attribute_list.as_mut_ptr().cast::(); unsafe { sys::c::DeleteProcThreadAttributeList(lp_attribute_list) } } } @@ -689,7 +690,7 @@ impl<'a> ProcThreadAttributeListBuilder<'a> { // `InitializeProcThreadAttributeList` to properly initialize the list. sys::cvt(unsafe { sys::c::InitializeProcThreadAttributeList( - attribute_list.as_mut_ptr().cast::(), + attribute_list.as_mut_ptr().cast::(), attribute_count, 0, &mut required_size, @@ -703,7 +704,7 @@ impl<'a> ProcThreadAttributeListBuilder<'a> { for (&attribute, value) in self.attributes.iter().take(attribute_count as usize) { sys::cvt(unsafe { sys::c::UpdateProcThreadAttribute( - attribute_list.as_mut_ptr().cast::(), + attribute_list.as_mut_ptr().cast::(), 0, attribute, value.ptr, diff --git a/library/std/src/sys/fs/windows.rs b/library/std/src/sys/fs/windows.rs index 288331d4db69a..b703ad9bd0ae8 100644 --- a/library/std/src/sys/fs/windows.rs +++ b/library/std/src/sys/fs/windows.rs @@ -410,7 +410,7 @@ impl File { self.fsync() } - fn acquire_lock(&self, flags: c::LOCK_FILE_FLAGS) -> io::Result<()> { + fn acquire_lock(&self, flags: u32) -> io::Result<()> { unsafe { let mut overlapped: c::OVERLAPPED = mem::zeroed(); let event = c::CreateEventW(ptr::null_mut(), c::FALSE, c::FALSE, ptr::null()); @@ -1173,7 +1173,7 @@ impl FilePermissions { } pub fn file_attributes(&self) -> u32 { - self.attrs as u32 + self.attrs } } diff --git a/library/std/src/sys/fs/windows/dir.rs b/library/std/src/sys/fs/windows/dir.rs index 4fe0062af821b..70bade84f58fd 100644 --- a/library/std/src/sys/fs/windows/dir.rs +++ b/library/std/src/sys/fs/windows/dir.rs @@ -30,7 +30,7 @@ fn to_u16s_without_nul(path: &Path) -> io::Result> { unsafe fn nt_create_file( opts: &OpenOptions, object_attributes: &c::OBJECT_ATTRIBUTES, - create_options: c::NTCREATEFILE_CREATE_OPTIONS, + create_options: u32, ) -> io::Result { let mut handle = ptr::null_mut(); let mut io_status = c::IO_STATUS_BLOCK::PENDING; @@ -140,7 +140,7 @@ impl Dir { let name = UnicodeStrRef::from_slice(path); let object_attributes = c::OBJECT_ATTRIBUTES { RootDirectory: self.handle.as_raw_handle(), - ObjectName: name.as_ptr(), + ObjectName: name.as_ptr().cast_mut(), ..c::OBJECT_ATTRIBUTES::with_length() }; let create_opt = if dir { c::FILE_DIRECTORY_FILE } else { c::FILE_NON_DIRECTORY_FILE }; diff --git a/library/std/src/sys/fs/windows/remove_dir_all.rs b/library/std/src/sys/fs/windows/remove_dir_all.rs index c8b1a07676855..8f89dbf1be16d 100644 --- a/library/std/src/sys/fs/windows/remove_dir_all.rs +++ b/library/std/src/sys/fs/windows/remove_dir_all.rs @@ -91,7 +91,7 @@ fn open_link_no_reparse( let result = unsafe { let mut object = c::OBJECT_ATTRIBUTES { - ObjectName: path.as_ptr(), + ObjectName: path.as_ptr().cast_mut(), RootDirectory: parent.as_raw_handle(), Attributes: ATTRIBUTES.load(Ordering::Relaxed), ..c::OBJECT_ATTRIBUTES::with_length() diff --git a/library/std/src/sys/io/error/windows/tests.rs b/library/std/src/sys/io/error/windows/tests.rs index 088472eceab71..cc88bd4707256 100644 --- a/library/std/src/sys/io/error/windows/tests.rs +++ b/library/std/src/sys/io/error/windows/tests.rs @@ -4,7 +4,7 @@ use crate::sys::pal::c; // tests `format_error` #[test] fn ntstatus_error() { - const STATUS_UNSUCCESSFUL: u32 = 0xc000_0001; + const STATUS_UNSUCCESSFUL: i32 = 0xc000_0001_u32 as i32; assert!( !Error::from_raw_os_error((STATUS_UNSUCCESSFUL | c::FACILITY_NT_BIT) as _) .to_string() diff --git a/library/std/src/sys/net/connection/socket/windows.rs b/library/std/src/sys/net/connection/socket/windows.rs index 075e77bc4457c..8b98d0d31e507 100644 --- a/library/std/src/sys/net/connection/socket/windows.rs +++ b/library/std/src/sys/net/connection/socket/windows.rs @@ -88,7 +88,7 @@ pub(super) mod netc { } pub unsafe fn send(socket: SOCKET, buf: *const c_void, len: c_int, flags: c_int) -> c_int { - unsafe { c::send(socket, buf.cast::(), len, flags) } + unsafe { c::send(socket, buf.cast::(), len, flags) } } pub unsafe fn sendto( socket: SOCKET, @@ -98,7 +98,7 @@ pub(super) mod netc { addr: *const SOCKADDR, addrlen: c_int, ) -> c_int { - unsafe { c::sendto(socket, buf.cast::(), len, flags, addr, addrlen) } + unsafe { c::sendto(socket, buf.cast::(), len, flags, addr, addrlen) } } pub unsafe fn getaddrinfo( node: *const c_char, diff --git a/library/std/src/sys/pal/windows/c.rs b/library/std/src/sys/pal/windows/c.rs index c2ddb4931365a..46e4be375e590 100644 --- a/library/std/src/sys/pal/windows/c.rs +++ b/library/std/src/sys/pal/windows/c.rs @@ -8,6 +8,11 @@ use core::ffi::{CStr, c_int, c_uint, c_ulong, c_ushort, c_void}; use core::ptr; +// Unused items in windows_sys are expected. +// Some targets use things that others don't and those targets in turn may use things that are unused by other targets. +// For the sake of contributors we also prefer to keep churn in the bindings to a minimum by only removing things once +// we're sure they will not be needed again. +#[allow(unused)] mod windows_sys; pub use windows_sys::*; @@ -19,6 +24,249 @@ pub const INVALID_HANDLE_VALUE: HANDLE = ::core::ptr::without_provenance_mut(-1i pub const EXIT_SUCCESS: u32 = 0; pub const EXIT_FAILURE: u32 = 1; +// Short-hand for cast_unsigned. +// It prevents most of the casts below from spilling over multiple lines. +const fn cu(n: i32) -> u32 { + n.cast_unsigned() +} + +// dwShareMode -- CreateFile +pub const FILE_SHARE_DELETE: u32 = cu(windows_sys::FILE_SHARE_DELETE); +pub const FILE_SHARE_READ: u32 = cu(windows_sys::FILE_SHARE_READ); +pub const FILE_SHARE_WRITE: u32 = cu(windows_sys::FILE_SHARE_WRITE); + +// CreateOptions (ULONG) -- NtCreateFile +pub const FILE_DIRECTORY_FILE: u32 = cu(windows_sys::FILE_DIRECTORY_FILE); +pub const FILE_SYNCHRONOUS_IO_NONALERT: u32 = cu(windows_sys::FILE_SYNCHRONOUS_IO_NONALERT); +pub const FILE_NON_DIRECTORY_FILE: u32 = cu(windows_sys::FILE_NON_DIRECTORY_FILE); +pub const FILE_OPEN_REPARSE_POINT: u32 = cu(windows_sys::FILE_OPEN_REPARSE_POINT); + +// dwDesiredAccess -- many, many functions +pub const DELETE: u32 = cu(windows_sys::DELETE); +pub const SYNCHRONIZE: u32 = cu(windows_sys::SYNCHRONIZE); +pub const GENERIC_WRITE: u32 = cu(windows_sys::GENERIC_WRITE); +pub const FILE_GENERIC_WRITE: u32 = cu(windows_sys::FILE_GENERIC_WRITE); +pub const FILE_LIST_DIRECTORY: u32 = cu(windows_sys::FILE_LIST_DIRECTORY); +pub const FILE_WRITE_DATA: u32 = cu(windows_sys::FILE_WRITE_DATA); +pub const FILE_READ_ATTRIBUTES: u32 = cu(windows_sys::FILE_READ_ATTRIBUTES); +pub const FILE_WRITE_ATTRIBUTES: u32 = cu(windows_sys::FILE_WRITE_ATTRIBUTES); +pub const FILE_TRAVERSE: u32 = cu(windows_sys::FILE_TRAVERSE); +pub const TIMER_ALL_ACCESS: u32 = cu(windows_sys::TIMER_ALL_ACCESS); +#[cfg(target_vendor = "win7")] +pub const TOKEN_READ: u32 = cu(windows_sys::TOKEN_READ); + +// dwOptions -- DuplicateHandle +pub const DUPLICATE_SAME_ACCESS: u32 = cu(windows_sys::DUPLICATE_SAME_ACCESS); + +// dwFlags -- GetModuleHandleEx +pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS: u32 = + cu(windows_sys::GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS); +pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT: u32 = + cu(windows_sys::GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT); + +// dwSecurityQosFlags -- CreateFile +pub const SECURITY_SQOS_PRESENT: u32 = cu(windows_sys::SECURITY_SQOS_PRESENT); + +// dwFlags -- LockFileEx +pub const LOCKFILE_EXCLUSIVE_LOCK: u32 = cu(windows_sys::LOCKFILE_EXCLUSIVE_LOCK); +pub const LOCKFILE_FAIL_IMMEDIATELY: u32 = cu(windows_sys::LOCKFILE_FAIL_IMMEDIATELY); + +// dwFileFlags -- CreateFile +pub const FILE_FLAG_BACKUP_SEMANTICS: u32 = cu(windows_sys::FILE_FLAG_BACKUP_SEMANTICS); +pub const FILE_FLAG_OPEN_REPARSE_POINT: u32 = cu(windows_sys::FILE_FLAG_OPEN_REPARSE_POINT); +pub const FILE_FLAG_POSIX_SEMANTICS: u32 = cu(windows_sys::FILE_FLAG_POSIX_SEMANTICS); + +// dwFileAttributes -- CreateFile +pub const FILE_ATTRIBUTE_DIRECTORY: u32 = cu(windows_sys::FILE_ATTRIBUTE_DIRECTORY); +pub const FILE_ATTRIBUTE_NORMAL: u32 = cu(windows_sys::FILE_ATTRIBUTE_NORMAL); +pub const FILE_ATTRIBUTE_READONLY: u32 = cu(windows_sys::FILE_ATTRIBUTE_READONLY); +pub const FILE_ATTRIBUTE_REPARSE_POINT: u32 = cu(windows_sys::FILE_ATTRIBUTE_REPARSE_POINT); + +// dwFlags -- WSASocket +pub const WSA_FLAG_NO_HANDLE_INHERIT: u32 = cu(windows_sys::WSA_FLAG_NO_HANDLE_INHERIT); +pub const WSA_FLAG_OVERLAPPED: u32 = cu(windows_sys::WSA_FLAG_OVERLAPPED); + +// Flags (ULONG) -- FILE_RENAME_INFORMATION +pub const FILE_RENAME_FLAG_REPLACE_IF_EXISTS: u32 = + cu(windows_sys::FILE_RENAME_FLAG_REPLACE_IF_EXISTS); +pub const FILE_RENAME_FLAG_POSIX_SEMANTICS: u32 = cu(windows_sys::FILE_RENAME_FLAG_POSIX_SEMANTICS); + +// Attributes (ULONG) -- OBJECT_ATTRIBUTES +pub const OBJ_INHERIT: u32 = cu(windows_sys::OBJ_INHERIT); +pub const OBJ_DONT_REPARSE: u32 = cu(windows_sys::OBJ_DONT_REPARSE); + +// Flags (DWORD) -- FILE_DISPOSITION_INFO_EX +pub const FILE_DISPOSITION_FLAG_DELETE: u32 = cu(windows_sys::FILE_DISPOSITION_FLAG_DELETE); +pub const FILE_DISPOSITION_FLAG_POSIX_SEMANTICS: u32 = + cu(windows_sys::FILE_DISPOSITION_FLAG_POSIX_SEMANTICS); +pub const FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE: u32 = + cu(windows_sys::FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE); + +// Flags (ULONG) -- SymbolicLinkReparseBuffer +pub const SYMLINK_FLAG_RELATIVE: u32 = cu(windows_sys::SYMLINK_FLAG_RELATIVE); + +// dwFlags -- CreateSymbolicLink +pub const SYMBOLIC_LINK_FLAG_DIRECTORY: u32 = cu(windows_sys::SYMBOLIC_LINK_FLAG_DIRECTORY); +pub const SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE: u32 = + cu(windows_sys::SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE); + +// dwCreationFlag -- CreateProcess +pub const DETACHED_PROCESS: u32 = cu(windows_sys::DETACHED_PROCESS); +pub const CREATE_NEW_PROCESS_GROUP: u32 = cu(windows_sys::CREATE_NEW_PROCESS_GROUP); +pub const CREATE_UNICODE_ENVIRONMENT: u32 = cu(windows_sys::CREATE_UNICODE_ENVIRONMENT); +pub const EXTENDED_STARTUPINFO_PRESENT: u32 = cu(windows_sys::EXTENDED_STARTUPINFO_PRESENT); + +// dwFlags -- STARTUPINFO +pub const STARTF_USESTDHANDLES: u32 = cu(windows_sys::STARTF_USESTDHANDLES); +pub const STARTF_USESHOWWINDOW: u32 = cu(windows_sys::STARTF_USESHOWWINDOW); +pub const STARTF_UNTRUSTEDSOURCE: u32 = cu(windows_sys::STARTF_UNTRUSTEDSOURCE); +pub const STARTF_FORCEONFEEDBACK: u32 = cu(windows_sys::STARTF_FORCEONFEEDBACK); +pub const STARTF_FORCEOFFFEEDBACK: u32 = cu(windows_sys::STARTF_FORCEOFFFEEDBACK); +pub const STARTF_RUNFULLSCREEN: u32 = cu(windows_sys::STARTF_RUNFULLSCREEN); + +// dwFlags -- MoveFileEx +pub const MOVEFILE_REPLACE_EXISTING: u32 = cu(windows_sys::MOVEFILE_REPLACE_EXISTING); + +// dwFlags -- GetFinalPathNameByHandle +pub const VOLUME_NAME_DOS: u32 = cu(windows_sys::VOLUME_NAME_DOS); +pub const VOLUME_NAME_NT: u32 = cu(windows_sys::VOLUME_NAME_NT); + +// dwFlags -- FormatMessageW +pub const FORMAT_MESSAGE_FROM_SYSTEM: u32 = cu(windows_sys::FORMAT_MESSAGE_FROM_SYSTEM); +pub const FORMAT_MESSAGE_IGNORE_INSERTS: u32 = cu(windows_sys::FORMAT_MESSAGE_IGNORE_INSERTS); +pub const FORMAT_MESSAGE_FROM_HMODULE: u32 = cu(windows_sys::FORMAT_MESSAGE_FROM_HMODULE); + +// dwFlags -- SetHandleInformation +#[cfg(not(target_vendor = "uwp"))] +pub const HANDLE_FLAG_INHERIT: u32 = cu(windows_sys::HANDLE_FLAG_INHERIT); + +// dwCreationFlags -- CreateThread +pub const STACK_SIZE_PARAM_IS_A_RESERVATION: u32 = + cu(windows_sys::STACK_SIZE_PARAM_IS_A_RESERVATION); + +// dwFlags -- WideCharToMultiByte +pub const WC_ERR_INVALID_CHARS: u32 = cu(windows_sys::WC_ERR_INVALID_CHARS); + +// dwFlags -- MultiByteToWideChar +pub const MB_ERR_INVALID_CHARS: u32 = cu(windows_sys::MB_ERR_INVALID_CHARS); + +// dwFlags -- CreateWaitableTimerExW +pub const CREATE_WAITABLE_TIMER_HIGH_RESOLUTION: u32 = + cu(windows_sys::CREATE_WAITABLE_TIMER_HIGH_RESOLUTION); + +// dwCreationDisposition -- CreateFile +pub const CREATE_NEW: u32 = cu(windows_sys::CREATE_NEW); +pub const OPEN_ALWAYS: u32 = cu(windows_sys::OPEN_ALWAYS); +pub const OPEN_EXISTING: u32 = cu(windows_sys::OPEN_EXISTING); +pub const TRUNCATE_EXISTING: u32 = cu(windows_sys::TRUNCATE_EXISTING); + +// CreateDisposition (ULONG) -- NtCreateFile +pub const FILE_OPEN: u32 = cu(windows_sys::FILE_OPEN); +pub const FILE_CREATE: u32 = cu(windows_sys::FILE_CREATE); +pub const FILE_OPEN_IF: u32 = cu(windows_sys::FILE_OPEN_IF); +pub const FILE_OVERWRITE: u32 = cu(windows_sys::FILE_OVERWRITE); +pub const FILE_OVERWRITE_IF: u32 = cu(windows_sys::FILE_OVERWRITE_IF); + +// NamedPipeType (ULONG) -- NtCreateNamedPipeFile +pub const FILE_PIPE_BYTE_STREAM_TYPE: u32 = cu(windows_sys::FILE_PIPE_BYTE_STREAM_TYPE); + +// ReadMode (ULONG) -- NtCreateNamedPipeFile +pub const FILE_PIPE_BYTE_STREAM_MODE: u32 = cu(windows_sys::FILE_PIPE_BYTE_STREAM_MODE); + +// CompletionMode (ULONG) -- NtCreateNamedPipeFile +pub const FILE_PIPE_QUEUE_OPERATION: u32 = cu(windows_sys::FILE_PIPE_QUEUE_OPERATION); + +// dwMoveMethod -- SetFilePointerEx +pub const FILE_BEGIN: u32 = cu(windows_sys::FILE_BEGIN); +pub const FILE_END: u32 = cu(windows_sys::FILE_END); +pub const FILE_CURRENT: u32 = cu(windows_sys::FILE_CURRENT); + +// dwIoControlCode -- DeviceIoControl +pub const FSCTL_GET_REPARSE_POINT: u32 = cu(windows_sys::FSCTL_GET_REPARSE_POINT); +pub const FSCTL_SET_REPARSE_POINT: u32 = cu(windows_sys::FSCTL_SET_REPARSE_POINT); + +// GetFileType return value (DWORD) +pub const FILE_TYPE_PIPE: u32 = cu(windows_sys::FILE_TYPE_PIPE); + +// GetACP return value (UINT) +pub const CP_UTF8: u32 = windows_sys::CP_UTF8.cast_unsigned(); + +// WaitForSingleObject return value (DWORD) +pub const WAIT_OBJECT_0: u32 = windows_sys::WAIT_OBJECT_0.cast_unsigned(); + +// LPPROGRESS_ROUTINE return value (DWORD) +pub const PROGRESS_CONTINUE: u32 = cu(windows_sys::PROGRESS_CONTINUE); + +// Errors +pub const ERROR_SUCCESS: u32 = cu(windows_sys::ERROR_SUCCESS); +pub const ERROR_ACCESS_DENIED: u32 = cu(windows_sys::ERROR_ACCESS_DENIED); +pub const ERROR_ALREADY_EXISTS: u32 = cu(windows_sys::ERROR_ALREADY_EXISTS); +pub const ERROR_BAD_NETPATH: u32 = cu(windows_sys::ERROR_BAD_NETPATH); +pub const ERROR_BAD_NET_NAME: u32 = cu(windows_sys::ERROR_BAD_NET_NAME); +pub const ERROR_CANT_ACCESS_FILE: u32 = cu(windows_sys::ERROR_CANT_ACCESS_FILE); +pub const ERROR_DELETE_PENDING: u32 = cu(windows_sys::ERROR_DELETE_PENDING); +pub const ERROR_DIRECTORY: u32 = cu(windows_sys::ERROR_DIRECTORY); +pub const ERROR_DIR_NOT_EMPTY: u32 = cu(windows_sys::ERROR_DIR_NOT_EMPTY); +pub const ERROR_FILE_NOT_FOUND: u32 = cu(windows_sys::ERROR_FILE_NOT_FOUND); +pub const ERROR_INSUFFICIENT_BUFFER: u32 = cu(windows_sys::ERROR_INSUFFICIENT_BUFFER); +pub const ERROR_INVALID_FUNCTION: u32 = cu(windows_sys::ERROR_INVALID_FUNCTION); +pub const ERROR_INVALID_HANDLE: u32 = cu(windows_sys::ERROR_INVALID_HANDLE); +pub const ERROR_INVALID_PARAMETER: u32 = cu(windows_sys::ERROR_INVALID_PARAMETER); +pub const ERROR_NOT_FOUND: u32 = cu(windows_sys::ERROR_NOT_FOUND); +pub const ERROR_NOT_SUPPORTED: u32 = cu(windows_sys::ERROR_NOT_SUPPORTED); +pub const ERROR_NO_MORE_FILES: u32 = cu(windows_sys::ERROR_NO_MORE_FILES); +pub const ERROR_OPERATION_ABORTED: u32 = cu(windows_sys::ERROR_OPERATION_ABORTED); +pub const ERROR_PATH_NOT_FOUND: u32 = cu(windows_sys::ERROR_PATH_NOT_FOUND); +pub const ERROR_SHARING_VIOLATION: u32 = cu(windows_sys::ERROR_SHARING_VIOLATION); +pub const ERROR_TIMEOUT: u32 = cu(windows_sys::ERROR_TIMEOUT); +pub const ERROR_FILE_EXISTS: u32 = cu(windows_sys::ERROR_FILE_EXISTS); +pub const ERROR_BROKEN_PIPE: u32 = cu(windows_sys::ERROR_BROKEN_PIPE); +pub const ERROR_INVALID_DRIVE: u32 = cu(windows_sys::ERROR_INVALID_DRIVE); +pub const ERROR_NO_DATA: u32 = cu(windows_sys::ERROR_NO_DATA); +pub const ERROR_INVALID_NAME: u32 = cu(windows_sys::ERROR_INVALID_NAME); +pub const ERROR_BAD_PATHNAME: u32 = cu(windows_sys::ERROR_BAD_PATHNAME); +pub const ERROR_NOT_ENOUGH_MEMORY: u32 = cu(windows_sys::ERROR_NOT_ENOUGH_MEMORY); +pub const ERROR_OUTOFMEMORY: u32 = cu(windows_sys::ERROR_OUTOFMEMORY); +pub const ERROR_SEM_TIMEOUT: u32 = cu(windows_sys::ERROR_SEM_TIMEOUT); +pub const ERROR_DRIVER_CANCEL_TIMEOUT: u32 = cu(windows_sys::ERROR_DRIVER_CANCEL_TIMEOUT); +pub const ERROR_SERVICE_REQUEST_TIMEOUT: u32 = cu(windows_sys::ERROR_SERVICE_REQUEST_TIMEOUT); +pub const ERROR_COUNTER_TIMEOUT: u32 = cu(windows_sys::ERROR_COUNTER_TIMEOUT); +pub const ERROR_RESOURCE_CALL_TIMED_OUT: u32 = cu(windows_sys::ERROR_RESOURCE_CALL_TIMED_OUT); +pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: u32 = cu(windows_sys::ERROR_CTX_MODEM_RESPONSE_TIMEOUT); +pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: u32 = cu(windows_sys::ERROR_CTX_CLIENT_QUERY_TIMEOUT); +pub const ERROR_DS_TIMELIMIT_EXCEEDED: u32 = cu(windows_sys::ERROR_DS_TIMELIMIT_EXCEEDED); +pub const DNS_ERROR_RECORD_TIMED_OUT: u32 = cu(windows_sys::DNS_ERROR_RECORD_TIMED_OUT); +pub const ERROR_IPSEC_IKE_TIMED_OUT: u32 = cu(windows_sys::ERROR_IPSEC_IKE_TIMED_OUT); +pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: u32 = cu(windows_sys::ERROR_RUNLEVEL_SWITCH_TIMEOUT); +pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: u32 = + cu(windows_sys::ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT); +pub const ERROR_CALL_NOT_IMPLEMENTED: u32 = cu(windows_sys::ERROR_CALL_NOT_IMPLEMENTED); +pub const ERROR_HOST_UNREACHABLE: u32 = cu(windows_sys::ERROR_HOST_UNREACHABLE); +pub const ERROR_NETWORK_UNREACHABLE: u32 = cu(windows_sys::ERROR_NETWORK_UNREACHABLE); +pub const ERROR_DIRECTORY_NOT_SUPPORTED: u32 = cu(windows_sys::ERROR_DIRECTORY_NOT_SUPPORTED); +pub const ERROR_WRITE_PROTECT: u32 = cu(windows_sys::ERROR_WRITE_PROTECT); +pub const ERROR_DISK_FULL: u32 = cu(windows_sys::ERROR_DISK_FULL); +pub const ERROR_HANDLE_DISK_FULL: u32 = cu(windows_sys::ERROR_HANDLE_DISK_FULL); +pub const ERROR_SEEK_ON_DEVICE: u32 = cu(windows_sys::ERROR_SEEK_ON_DEVICE); +pub const ERROR_DISK_QUOTA_EXCEEDED: u32 = cu(windows_sys::ERROR_DISK_QUOTA_EXCEEDED); +pub const ERROR_FILE_TOO_LARGE: u32 = cu(windows_sys::ERROR_FILE_TOO_LARGE); +pub const ERROR_BUSY: u32 = cu(windows_sys::ERROR_BUSY); +pub const ERROR_POSSIBLE_DEADLOCK: u32 = cu(windows_sys::ERROR_POSSIBLE_DEADLOCK); +pub const ERROR_NOT_SAME_DEVICE: u32 = cu(windows_sys::ERROR_NOT_SAME_DEVICE); +pub const ERROR_TOO_MANY_LINKS: u32 = cu(windows_sys::ERROR_TOO_MANY_LINKS); +pub const ERROR_TOO_MANY_OPEN_FILES: u32 = cu(windows_sys::ERROR_TOO_MANY_OPEN_FILES); +pub const ERROR_FILENAME_EXCED_RANGE: u32 = cu(windows_sys::ERROR_FILENAME_EXCED_RANGE); +pub const ERROR_CANT_RESOLVE_FILENAME: u32 = cu(windows_sys::ERROR_CANT_RESOLVE_FILENAME); +pub const ERROR_IO_DEVICE: u32 = cu(windows_sys::ERROR_IO_DEVICE); +pub const ERROR_NEGATIVE_SEEK: u32 = cu(windows_sys::ERROR_NEGATIVE_SEEK); +pub const WAIT_TIMEOUT: u32 = cu(windows_sys::WAIT_TIMEOUT); +pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: u32 = cu(windows_sys::FRS_ERR_SYSVOL_POPULATE_TIMEOUT); + +// ADDRESS_FAMILY +pub const AF_INET: ADDRESS_FAMILY = windows_sys::AF_INET as ADDRESS_FAMILY; +pub const AF_INET6: ADDRESS_FAMILY = windows_sys::AF_INET6 as ADDRESS_FAMILY; +pub const AF_UNIX: ADDRESS_FAMILY = windows_sys::AF_UNIX as ADDRESS_FAMILY; + #[cfg(target_vendor = "win7")] pub const CONDITION_VARIABLE_INIT: CONDITION_VARIABLE = CONDITION_VARIABLE { Ptr: ptr::null_mut() }; #[cfg(target_vendor = "win7")] @@ -26,11 +274,6 @@ pub const SRWLOCK_INIT: SRWLOCK = SRWLOCK { Ptr: ptr::null_mut() }; #[cfg(not(target_thread_local))] pub const INIT_ONCE_STATIC_INIT: INIT_ONCE = INIT_ONCE { Ptr: ptr::null_mut() }; -// Some windows_sys types have different signs than the types we use. -pub const OBJ_DONT_REPARSE: u32 = windows_sys::OBJ_DONT_REPARSE as u32; -pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: u32 = - windows_sys::FRS_ERR_SYSVOL_POPULATE_TIMEOUT as u32; - // Equivalent to the `NT_SUCCESS` C preprocessor macro. // See: https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/using-ntstatus-values pub fn nt_success(status: NTSTATUS) -> bool { @@ -111,12 +354,12 @@ unsafe extern "system" { windows_link::link!("ntdll.dll" "system" fn NtCreateNamedPipeFile( filehandle: *mut HANDLE, - desiredaccess: FILE_ACCESS_RIGHTS, + desiredaccess: u32, objectattributes: *const OBJECT_ATTRIBUTES, iostatusblock: *mut IO_STATUS_BLOCK, - shareaccess: FILE_SHARE_MODE, - createdisposition: NTCREATEFILE_CREATE_DISPOSITION, - createoptions: NTCREATEFILE_CREATE_OPTIONS, + shareaccess: u32, + createdisposition: u32, + createoptions: u32, namedpipetype: u32, readmode: u32, completionmode: u32, @@ -229,8 +472,8 @@ compat_fn_with_fallback! { cfg_select! { target_vendor = "uwp" => { - windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); - windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); + windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : ACCESS_MASK, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : u32, shareaccess : u32, createdisposition : u32, createoptions : u32, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); + windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : ACCESS_MASK, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); windows_link::link_raw_dylib!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); diff --git a/library/std/src/sys/pal/windows/handle.rs b/library/std/src/sys/pal/windows/handle.rs index f0885789d7070..bf892d8296d9d 100644 --- a/library/std/src/sys/pal/windows/handle.rs +++ b/library/std/src/sys/pal/windows/handle.rs @@ -163,7 +163,7 @@ impl Handle { let mut amt = 0; let res = cvt(c::ReadFile( self.as_raw_handle(), - buf.as_mut_ptr().cast::(), + buf.as_mut_ptr().cast::(), len, &mut amt, overlapped, diff --git a/library/std/src/sys/pal/windows/stack_overflow.rs b/library/std/src/sys/pal/windows/stack_overflow.rs index 9a40551b985e7..21549751889dc 100644 --- a/library/std/src/sys/pal/windows/stack_overflow.rs +++ b/library/std/src/sys/pal/windows/stack_overflow.rs @@ -17,7 +17,7 @@ unsafe extern "system" fn vectored_handler(ExceptionInfo: *mut c::EXCEPTION_POIN let rec = &(*(*ExceptionInfo).ExceptionRecord); let code = rec.ExceptionCode; - if code == c::EXCEPTION_STACK_OVERFLOW { + if code == c::EXCEPTION_STACK_OVERFLOW.cast_unsigned() { thread::with_current_name(|name| { let name = name.unwrap_or(""); let tid = thread::current_os_id(); diff --git a/library/std/src/sys/paths/windows.rs b/library/std/src/sys/paths/windows.rs index cfdc93847a97a..9b9316b2658c0 100644 --- a/library/std/src/sys/paths/windows.rs +++ b/library/std/src/sys/paths/windows.rs @@ -7,8 +7,8 @@ use crate::os::windows::ffi::EncodeWide; use crate::os::windows::prelude::*; use crate::path::{self, PathBuf}; #[cfg(not(target_vendor = "uwp"))] -use crate::sys::pal::api::WinError; -use crate::sys::pal::{api, c, cvt, fill_utf16_buf, os2path}; +use crate::sys::pal::api::{self, WinError}; +use crate::sys::pal::{c, cvt, fill_utf16_buf, os2path}; use crate::{fmt, io, ptr}; pub struct SplitPaths<'a> { diff --git a/library/std/src/sys/process/windows.rs b/library/std/src/sys/process/windows.rs index f095f829c4c67..db2e2373adf95 100644 --- a/library/std/src/sys/process/windows.rs +++ b/library/std/src/sys/process/windows.rs @@ -415,7 +415,10 @@ impl Command { // SAFETY: Casting this `*const` pointer to a `*mut` pointer is "safe" // here because windows does not internally mutate the attribute list. // Ideally this should be reflected in the interface of the `windows-sys` crate. - lpAttributeList: proc_thread_attribute_list.as_ptr().cast::().cast_mut(), + lpAttributeList: proc_thread_attribute_list + .as_ptr() + .cast::() + .cast_mut(), }; si_ptr = (&raw mut si_ex) as _; } else { diff --git a/library/std/src/sys/process/windows/child_pipe.rs b/library/std/src/sys/process/windows/child_pipe.rs index 9ac024c45b917..259313044e332 100644 --- a/library/std/src/sys/process/windows/child_pipe.rs +++ b/library/std/src/sys/process/windows/child_pipe.rs @@ -1,3 +1,4 @@ +use crate::ffi::c_void; use crate::io::{self, BorrowedCursor, IoSlice, IoSliceMut}; use crate::ops::Neg; use crate::os::windows::prelude::*; @@ -85,7 +86,7 @@ pub(super) fn child_pipe(ours_readable: bool, their_handle_inheritable: bool) -> handle } else { let path = api::unicode_str!(r"\Device\NamedPipe\"); - object_attributes.ObjectName = path.as_ptr(); + object_attributes.ObjectName = path.as_ptr().cast_mut(); let mut pipe_fs = ptr::null_mut(); let status = c::NtOpenFile( &mut pipe_fs, @@ -115,7 +116,7 @@ pub(super) fn child_pipe(ours_readable: bool, their_handle_inheritable: bool) -> // There's no difference to the OS itself but it's possible that third party // DLLs which hook in to processes could be relying on the exact form of this string. let empty = c::UNICODE_STRING::default(); - object_attributes.ObjectName = &raw const empty; + object_attributes.ObjectName = (&raw const empty).cast_mut(); // Create our side of the pipe for async access. let ours = { @@ -243,7 +244,7 @@ impl ChildPipe { pub fn read(&self, buf: &mut [u8]) -> io::Result { let result = unsafe { let len = crate::cmp::min(buf.len(), u32::MAX as usize) as u32; - let ptr = buf.as_mut_ptr(); + let ptr = buf.as_mut_ptr().cast::(); self.alertable_io_internal(|overlapped, callback| { c::ReadFileEx(self.inner.as_raw_handle(), ptr, len, overlapped, callback) }) @@ -262,7 +263,7 @@ impl ChildPipe { pub fn read_buf(&self, mut buf: BorrowedCursor<'_, u8>) -> io::Result<()> { let result = unsafe { let len = crate::cmp::min(buf.capacity(), u32::MAX as usize) as u32; - let ptr = buf.as_mut().as_mut_ptr().cast::(); + let ptr = buf.as_mut().as_mut_ptr().cast::(); self.alertable_io_internal(|overlapped, callback| { c::ReadFileEx(self.inner.as_raw_handle(), ptr, len, overlapped, callback) }) @@ -301,7 +302,13 @@ impl ChildPipe { unsafe { let len = crate::cmp::min(buf.len(), u32::MAX as usize) as u32; self.alertable_io_internal(|overlapped, callback| { - c::WriteFileEx(self.inner.as_raw_handle(), buf.as_ptr(), len, overlapped, callback) + c::WriteFileEx( + self.inner.as_raw_handle(), + buf.as_ptr().cast::(), + len, + overlapped, + callback, + ) }) } } diff --git a/library/std/src/sys/stdio/windows.rs b/library/std/src/sys/stdio/windows.rs index 48df73a97a8e3..1339048a9c039 100644 --- a/library/std/src/sys/stdio/windows.rs +++ b/library/std/src/sys/stdio/windows.rs @@ -1,5 +1,6 @@ #![unstable(issue = "none", feature = "windows_stdio")] +use core::ffi::c_void; use core::str::utf8_char_width; use crate::mem::MaybeUninit; @@ -199,7 +200,7 @@ fn write_valid_utf8_to_console(handle: c::HANDLE, utf8: &str) -> io::Result(), // lpMultiByteStr utf8.len() as i32, // cbMultiByte utf16.as_mut_ptr() as *mut c::WCHAR, // lpWideCharStr utf16.len() as i32, // cchWideChar @@ -247,7 +248,13 @@ fn write_u16s(handle: c::HANDLE, data: &[u16]) -> io::Result { debug_assert!(data.len() < u32::MAX as usize); let mut written = 0; cvt(unsafe { - c::WriteConsoleW(handle, data.as_ptr(), data.len() as u32, &mut written, ptr::null_mut()) + c::WriteConsoleW( + handle, + data.as_ptr().cast::(), + data.len() as u32, + &mut written, + ptr::null_mut(), + ) })?; Ok(written as usize) } diff --git a/typos.toml b/typos.toml index 1e3d5c5e89d09..8976759b3b259 100644 --- a/typos.toml +++ b/typos.toml @@ -75,6 +75,7 @@ ERROR_REQ_NOT_ACCEP = "ERROR_REQ_NOT_ACCEP" EnzymeTypeTreeShiftIndiciesEq = "EnzymeTypeTreeShiftIndiciesEq" EnzymeTypeTreeShiftIndiciesEqFn = "EnzymeTypeTreeShiftIndiciesEqFn" Oppen = "Oppen" # Derek C. Oppen, author of "Pretty Printing" (1979) +PUNICODE_STRING = "PUNICODE_STRING" # typos treats this as two different camelcase words (`SETTIN` and `Gs`) # Tracked in: https://github.com/crate-ci/typos/issues/745 SETTINGs = "SETTINGs" From d45c71014981026299c7686677cc1f7cbc987204 Mon Sep 17 00:00:00 2001 From: Chris Denton Date: Fri, 4 Sep 2026 14:03:32 +0000 Subject: [PATCH 22/24] Remove unnecessary manual bindings Mingw used to have an incorrect import library for the synchronization functions `WaitOnAddress`, `WakeByAddressSingle` and `WakeByAddressAll`. This was fixed a long time ago and our windows-gnu targets require a much newer mingw in any case. --- library/std/src/sys/pal/windows/c.rs | 29 ------------------- .../std/src/sys/pal/windows/c/bindings.txt | 1 + .../std/src/sys/pal/windows/c/windows_sys.rs | 1 + library/windows_link/src/lib.rs | 1 + 4 files changed, 3 insertions(+), 29 deletions(-) diff --git a/library/std/src/sys/pal/windows/c.rs b/library/std/src/sys/pal/windows/c.rs index 46e4be375e590..432cd0425ac11 100644 --- a/library/std/src/sys/pal/windows/c.rs +++ b/library/std/src/sys/pal/windows/c.rs @@ -400,31 +400,6 @@ compat_fn_with_fallback! { } } -#[cfg(not(target_vendor = "win7"))] -// Use raw-dylib to import synchronization functions to workaround issues with the older mingw import library. -#[cfg_attr( - target_arch = "x86", - link( - name = "api-ms-win-core-synch-l1-2-0", - kind = "raw-dylib", - import_name_type = "undecorated" - ) -)] -#[cfg_attr( - not(target_arch = "x86"), - link(name = "api-ms-win-core-synch-l1-2-0", kind = "raw-dylib") -)] -unsafe extern "system" { - pub fn WaitOnAddress( - address: *const c_void, - compareaddress: *const c_void, - addresssize: usize, - dwmilliseconds: u32, - ) -> BOOL; - pub fn WakeByAddressSingle(address: *const c_void); - pub fn WakeByAddressAll(address: *const c_void); -} - // These are loaded by `load_synch_functions`. #[cfg(target_vendor = "win7")] compat_fn_optional! { @@ -481,10 +456,6 @@ cfg_select! { _ => {} } -// Only available starting with Windows 8. -#[cfg(not(target_vendor = "win7"))] -windows_link::link!("ws2_32.dll" "system" fn GetHostNameW(name : PWSTR, namelen : i32) -> i32); - unsafe extern "C" { pub fn atexit(cb: unsafe extern "C" fn()) -> c_int; } diff --git a/library/std/src/sys/pal/windows/c/bindings.txt b/library/std/src/sys/pal/windows/c/bindings.txt index 64751b13f9e79..ebe4b8e128352 100644 --- a/library/std/src/sys/pal/windows/c/bindings.txt +++ b/library/std/src/sys/pal/windows/c/bindings.txt @@ -2168,6 +2168,7 @@ GetFileSizeEx GetFileType GetFinalPathNameByHandleW GetFullPathNameW +GetHostNameW GetLastError GetLogicalDrives GetModuleFileNameW diff --git a/library/std/src/sys/pal/windows/c/windows_sys.rs b/library/std/src/sys/pal/windows/c/windows_sys.rs index c73817fd4ef27..34c4407296dcf 100644 --- a/library/std/src/sys/pal/windows/c/windows_sys.rs +++ b/library/std/src/sys/pal/windows/c/windows_sys.rs @@ -49,6 +49,7 @@ windows_link::link!("kernel32.dll" "system" fn GetFileSizeEx(hfile : HANDLE, lpf windows_link::link!("kernel32.dll" "system" fn GetFileType(hfile : HANDLE) -> u32); windows_link::link!("kernel32.dll" "system" fn GetFinalPathNameByHandleW(hfile : HANDLE, lpszfilepath : PWSTR, cchfilepath : u32, dwflags : u32) -> u32); windows_link::link!("kernel32.dll" "system" fn GetFullPathNameW(lpfilename : PCWSTR, nbufferlength : u32, lpbuffer : PWSTR, lpfilepart : *mut PWSTR) -> u32); +windows_link::link!("ws2_32.dll" "system" fn GetHostNameW(name : PWSTR, namelen : i32) -> i32); windows_link::link!("kernel32.dll" "system" fn GetLastError() -> u32); windows_link::link!("kernel32.dll" "system" fn GetLogicalDrives() -> u32); windows_link::link!("kernel32.dll" "system" fn GetModuleFileNameW(hmodule : HMODULE, lpfilename : PWSTR, nsize : u32) -> u32); diff --git a/library/windows_link/src/lib.rs b/library/windows_link/src/lib.rs index 3446e2113dda9..e92602d6320fb 100644 --- a/library/windows_link/src/lib.rs +++ b/library/windows_link/src/lib.rs @@ -49,4 +49,5 @@ pub macro link($($tt:tt)*) { #[link(name = "userenv")] #[link(name = "ws2_32")] #[link(name = "dbghelp")] // required for backtrace-rs symbolization +#[link(name = "synchronization")] unsafe extern "C" {} From 98d3e1bd32002af30c92519fb2228dfe57c4a162 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC?= <65444512+voodookiidoo@users.noreply.github.com> Date: Fri, 11 Sep 2026 02:39:00 +0500 Subject: [PATCH 23/24] Update library/core/src/iter/sources/repeat_with.rs item_name fix Co-authored-by: Bruno Kolenbrander <59372212+mejrs@users.noreply.github.com> --- library/core/src/iter/sources/repeat_with.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/core/src/iter/sources/repeat_with.rs b/library/core/src/iter/sources/repeat_with.rs index 07805f10aabe0..5998f9e56f0a1 100644 --- a/library/core/src/iter/sources/repeat_with.rs +++ b/library/core/src/iter/sources/repeat_with.rs @@ -62,7 +62,7 @@ use crate::ops::Try; /// ``` #[inline] #[stable(feature = "iterator_repeat_with", since = "1.28.0")] -#[rustc_diagnostic_item = "iterator_repeat_with"] +#[rustc_diagnostic_item = "iter_repeat_with"] pub fn repeat_with A>(repeater: F) -> RepeatWith { RepeatWith { repeater } } From 01fd255335be732b5b98dfcf3d89db307c62eaa6 Mon Sep 17 00:00:00 2001 From: malezjaa Date: Fri, 11 Sep 2026 00:19:01 +0200 Subject: [PATCH 24/24] regression test for async main diagnostic --- tests/ui/entry-point/async-main.rs | 6 ++++++ tests/ui/entry-point/async-main.stderr | 9 +++++++++ 2 files changed, 15 insertions(+) create mode 100644 tests/ui/entry-point/async-main.rs create mode 100644 tests/ui/entry-point/async-main.stderr diff --git a/tests/ui/entry-point/async-main.rs b/tests/ui/entry-point/async-main.rs new file mode 100644 index 0000000000000..0d1968ca777fc --- /dev/null +++ b/tests/ui/entry-point/async-main.rs @@ -0,0 +1,6 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/78905. + +//@ edition:2018 + +async fn main() {} +//~^ ERROR `main` function is not allowed to be `async` diff --git a/tests/ui/entry-point/async-main.stderr b/tests/ui/entry-point/async-main.stderr new file mode 100644 index 0000000000000..8282fdc3c50e5 --- /dev/null +++ b/tests/ui/entry-point/async-main.stderr @@ -0,0 +1,9 @@ +error[E0752]: `main` function is not allowed to be `async` + --> $DIR/async-main.rs:5:1 + | +LL | async fn main() {} + | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async` + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0752`.