summaryrefslogtreecommitdiffstats
path: root/third_party/rust/winapi/src/shared
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/rust/winapi/src/shared
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/winapi/src/shared')
-rw-r--r--third_party/rust/winapi/src/shared/basetsd.rs70
-rw-r--r--third_party/rust/winapi/src/shared/bcrypt.rs1001
-rw-r--r--third_party/rust/winapi/src/shared/bthdef.rs1103
-rw-r--r--third_party/rust/winapi/src/shared/bthioctl.rs151
-rw-r--r--third_party/rust/winapi/src/shared/bthsdpdef.rs68
-rw-r--r--third_party/rust/winapi/src/shared/bugcodes.rs456
-rw-r--r--third_party/rust/winapi/src/shared/cderr.rs44
-rw-r--r--third_party/rust/winapi/src/shared/cfg.rs138
-rw-r--r--third_party/rust/winapi/src/shared/d3d9.rs1268
-rw-r--r--third_party/rust/winapi/src/shared/d3d9caps.rs366
-rw-r--r--third_party/rust/winapi/src/shared/d3d9types.rs1487
-rw-r--r--third_party/rust/winapi/src/shared/d3dkmdt.rs45
-rw-r--r--third_party/rust/winapi/src/shared/d3dukmdt.rs413
-rw-r--r--third_party/rust/winapi/src/shared/dcomptypes.rs50
-rw-r--r--third_party/rust/winapi/src/shared/devguid.rs178
-rw-r--r--third_party/rust/winapi/src/shared/devpkey.rs401
-rw-r--r--third_party/rust/winapi/src/shared/devpropdef.rs83
-rw-r--r--third_party/rust/winapi/src/shared/dinputd.rs21
-rw-r--r--third_party/rust/winapi/src/shared/dxgi.rs411
-rw-r--r--third_party/rust/winapi/src/shared/dxgi1_2.rs355
-rw-r--r--third_party/rust/winapi/src/shared/dxgi1_3.rs190
-rw-r--r--third_party/rust/winapi/src/shared/dxgi1_4.rs112
-rw-r--r--third_party/rust/winapi/src/shared/dxgi1_5.rs92
-rw-r--r--third_party/rust/winapi/src/shared/dxgi1_6.rs98
-rw-r--r--third_party/rust/winapi/src/shared/dxgiformat.rs127
-rw-r--r--third_party/rust/winapi/src/shared/dxgitype.rs109
-rw-r--r--third_party/rust/winapi/src/shared/evntprov.rs309
-rw-r--r--third_party/rust/winapi/src/shared/evntrace.rs990
-rw-r--r--third_party/rust/winapi/src/shared/guiddef.rs36
-rw-r--r--third_party/rust/winapi/src/shared/hidclass.rs68
-rw-r--r--third_party/rust/winapi/src/shared/hidpi.rs393
-rw-r--r--third_party/rust/winapi/src/shared/hidsdi.rs110
-rw-r--r--third_party/rust/winapi/src/shared/hidusage.rs274
-rw-r--r--third_party/rust/winapi/src/shared/ifdef.rs208
-rw-r--r--third_party/rust/winapi/src/shared/ifmib.rs53
-rw-r--r--third_party/rust/winapi/src/shared/in6addr.rs18
-rw-r--r--third_party/rust/winapi/src/shared/inaddr.rs29
-rw-r--r--third_party/rust/winapi/src/shared/intsafe.rs5
-rw-r--r--third_party/rust/winapi/src/shared/ipifcons.rs244
-rw-r--r--third_party/rust/winapi/src/shared/ipmib.rs381
-rw-r--r--third_party/rust/winapi/src/shared/iprtrmib.rs125
-rw-r--r--third_party/rust/winapi/src/shared/ks.rs63
-rw-r--r--third_party/rust/winapi/src/shared/ksmedia.rs110
-rw-r--r--third_party/rust/winapi/src/shared/ktmtypes.rs138
-rw-r--r--third_party/rust/winapi/src/shared/lmcons.rs60
-rw-r--r--third_party/rust/winapi/src/shared/minwindef.rs102
-rw-r--r--third_party/rust/winapi/src/shared/mmreg.rs309
-rw-r--r--third_party/rust/winapi/src/shared/mod.rs92
-rw-r--r--third_party/rust/winapi/src/shared/mprapidef.rs14
-rw-r--r--third_party/rust/winapi/src/shared/mstcpip.rs492
-rw-r--r--third_party/rust/winapi/src/shared/mswsockdef.rs48
-rw-r--r--third_party/rust/winapi/src/shared/netioapi.rs702
-rw-r--r--third_party/rust/winapi/src/shared/nldef.rs204
-rw-r--r--third_party/rust/winapi/src/shared/ntddndis.rs75
-rw-r--r--third_party/rust/winapi/src/shared/ntddscsi.rs834
-rw-r--r--third_party/rust/winapi/src/shared/ntddser.rs17
-rw-r--r--third_party/rust/winapi/src/shared/ntdef.rs1083
-rw-r--r--third_party/rust/winapi/src/shared/ntstatus.rs2574
-rw-r--r--third_party/rust/winapi/src/shared/qos.rs20
-rw-r--r--third_party/rust/winapi/src/shared/rpc.rs9
-rw-r--r--third_party/rust/winapi/src/shared/rpcdce.rs563
-rw-r--r--third_party/rust/winapi/src/shared/rpcndr.rs25
-rw-r--r--third_party/rust/winapi/src/shared/sddl.rs217
-rw-r--r--third_party/rust/winapi/src/shared/sspi.rs1074
-rw-r--r--third_party/rust/winapi/src/shared/stralign.rs40
-rw-r--r--third_party/rust/winapi/src/shared/tcpestats.rs211
-rw-r--r--third_party/rust/winapi/src/shared/tcpmib.rs244
-rw-r--r--third_party/rust/winapi/src/shared/transportsettingcommon.rs10
-rw-r--r--third_party/rust/winapi/src/shared/tvout.rs72
-rw-r--r--third_party/rust/winapi/src/shared/udpmib.rs130
-rw-r--r--third_party/rust/winapi/src/shared/usb.rs523
-rw-r--r--third_party/rust/winapi/src/shared/usbioctl.rs705
-rw-r--r--third_party/rust/winapi/src/shared/usbiodef.rs120
-rw-r--r--third_party/rust/winapi/src/shared/usbscan.rs21
-rw-r--r--third_party/rust/winapi/src/shared/usbspec.rs860
-rw-r--r--third_party/rust/winapi/src/shared/windef.rs125
-rw-r--r--third_party/rust/winapi/src/shared/windot11.rs2853
-rw-r--r--third_party/rust/winapi/src/shared/windowsx.rs17
-rw-r--r--third_party/rust/winapi/src/shared/winerror.rs6150
-rw-r--r--third_party/rust/winapi/src/shared/winusbio.rs38
-rw-r--r--third_party/rust/winapi/src/shared/wlantypes.rs78
-rw-r--r--third_party/rust/winapi/src/shared/wmistr.rs199
-rw-r--r--third_party/rust/winapi/src/shared/wnnc.rs77
-rw-r--r--third_party/rust/winapi/src/shared/ws2def.rs556
-rw-r--r--third_party/rust/winapi/src/shared/ws2ipdef.rs112
-rw-r--r--third_party/rust/winapi/src/shared/wtypes.rs344
-rw-r--r--third_party/rust/winapi/src/shared/wtypesbase.rs161
87 files changed, 34551 insertions, 0 deletions
diff --git a/third_party/rust/winapi/src/shared/basetsd.rs b/third_party/rust/winapi/src/shared/basetsd.rs
new file mode 100644
index 0000000000..b3b7123236
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/basetsd.rs
@@ -0,0 +1,70 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Type definitions for the basic sized types.
+use ctypes::{__int64, __uint64, c_int, c_schar, c_short, c_uchar, c_uint, c_ushort};
+pub type POINTER_64_INT = usize;
+pub type INT8 = c_schar;
+pub type PINT8 = *mut c_schar;
+pub type INT16 = c_short;
+pub type PINT16 = *mut c_short;
+pub type INT32 = c_int;
+pub type PINT32 = *mut c_int;
+pub type INT64 = __int64;
+pub type PINT64 = *mut __int64;
+pub type UINT8 = c_uchar;
+pub type PUINT8 = *mut c_uchar;
+pub type UINT16 = c_ushort;
+pub type PUINT16 = *mut c_ushort;
+pub type UINT32 = c_uint;
+pub type PUINT32 = *mut c_uint;
+pub type UINT64 = __uint64;
+pub type PUINT64 = *mut __uint64;
+pub type LONG32 = c_int;
+pub type PLONG32 = *mut c_int;
+pub type ULONG32 = c_uint;
+pub type PULONG32 = *mut c_uint;
+pub type DWORD32 = c_uint;
+pub type PDWORD32 = *mut c_uint;
+pub type INT_PTR = isize;
+pub type PINT_PTR = *mut isize;
+pub type UINT_PTR = usize;
+pub type PUINT_PTR = *mut usize;
+pub type LONG_PTR = isize;
+pub type PLONG_PTR = *mut isize;
+pub type ULONG_PTR = usize;
+pub type PULONG_PTR = *mut usize;
+pub type SHANDLE_PTR = isize;
+pub type HANDLE_PTR = usize;
+#[cfg(target_pointer_width = "32")]
+pub type UHALF_PTR = c_ushort;
+#[cfg(target_pointer_width = "64")]
+pub type UHALF_PTR = c_uint;
+#[cfg(target_pointer_width = "32")]
+pub type PUHALF_PTR = *mut c_ushort;
+#[cfg(target_pointer_width = "64")]
+pub type PUHALF_PTR = *mut c_uint;
+#[cfg(target_pointer_width = "32")]
+pub type HALF_PTR = c_short;
+#[cfg(target_pointer_width = "64")]
+pub type HALF_PTR = c_int;
+#[cfg(target_pointer_width = "32")]
+pub type PHALF_PTR = *mut c_short;
+#[cfg(target_pointer_width = "64")]
+pub type PHALF_PTR = *mut c_int;
+pub type SIZE_T = ULONG_PTR;
+pub type PSIZE_T = *mut ULONG_PTR;
+pub type SSIZE_T = LONG_PTR;
+pub type PSSIZE_T = *mut LONG_PTR;
+pub type DWORD_PTR = ULONG_PTR;
+pub type PDWORD_PTR = *mut ULONG_PTR;
+pub type LONG64 = __int64;
+pub type PLONG64 = *mut __int64;
+pub type ULONG64 = __uint64;
+pub type PULONG64 = *mut __uint64;
+pub type DWORD64 = __uint64;
+pub type PDWORD64 = *mut __uint64;
+pub type KAFFINITY = ULONG_PTR;
+pub type PKAFFINITY = *mut KAFFINITY;
diff --git a/third_party/rust/winapi/src/shared/bcrypt.rs b/third_party/rust/winapi/src/shared/bcrypt.rs
new file mode 100644
index 0000000000..4fa88ef8fd
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/bcrypt.rs
@@ -0,0 +1,1001 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Cryptographic Primitive API Prototypes and Definitions
+use shared::minwindef::{PUCHAR, UCHAR, ULONG, USHORT};
+use um::winnt::{BOOLEAN, HANDLE, LONG, LPCWSTR, LPWSTR, PVOID, PWSTR, ULONGLONG, VOID};
+pub type NTSTATUS = LONG;
+pub type PNTSTATUS = *mut NTSTATUS;
+#[inline]
+pub fn BCRYPT_SUCCESS(Status: NTSTATUS) -> bool {
+ Status >= 0
+}
+pub const BCRYPT_OBJECT_ALIGNMENT: usize = 16;
+pub const BCRYPT_KDF_HASH: &'static str = "HASH";
+pub const BCRYPT_KDF_HMAC: &'static str = "HMAC";
+pub const BCRYPT_KDF_TLS_PRF: &'static str = "TLS_PRF";
+pub const BCRYPT_KDF_SP80056A_CONCAT: &'static str = "SP800_56A_CONCAT";
+pub const BCRYPT_KDF_RAW_SECRET: &'static str = "TRUNCATE";
+pub const KDF_HASH_ALGORITHM: ULONG = 0x0;
+pub const KDF_SECRET_PREPEND: ULONG = 0x1;
+pub const KDF_SECRET_APPEND: ULONG = 0x2;
+pub const KDF_HMAC_KEY: ULONG = 0x3;
+pub const KDF_TLS_PRF_LABEL: ULONG = 0x4;
+pub const KDF_TLS_PRF_SEED: ULONG = 0x5;
+pub const KDF_SECRET_HANDLE: ULONG = 0x6;
+pub const KDF_TLS_PRF_PROTOCOL: ULONG = 0x7;
+pub const KDF_ALGORITHMID: ULONG = 0x8;
+pub const KDF_PARTYUINFO: ULONG = 0x9;
+pub const KDF_PARTYVINFO: ULONG = 0xA;
+pub const KDF_SUPPPUBINFO: ULONG = 0xB;
+pub const KDF_SUPPPRIVINFO: ULONG = 0xC;
+pub const KDF_LABEL: ULONG = 0xD;
+pub const KDF_CONTEXT: ULONG = 0xE;
+pub const KDF_SALT: ULONG = 0xF;
+pub const KDF_ITERATION_COUNT: ULONG = 0x10;
+pub const KDF_GENERIC_PARAMETER: ULONG = 0x11;
+pub const KDF_KEYBITLENGTH: ULONG = 0x12;
+pub const KDF_USE_SECRET_AS_HMAC_KEY_FLAG: ULONG = 0x1;
+STRUCT!{struct BCRYPT_KEY_LENGTHS_STRUCT {
+ dwMinLength: ULONG,
+ dwMaxLength: ULONG,
+ dwIncrement: ULONG,
+}}
+pub type BCRYPT_AUTH_TAG_LENGTHS_STRUCT = BCRYPT_KEY_LENGTHS_STRUCT;
+STRUCT!{struct BCRYPT_OID {
+ cbOID: ULONG,
+ pbOID: PUCHAR,
+}}
+STRUCT!{struct BCRYPT_OID_LIST {
+ dwOIDCount: ULONG,
+ pOIDs: *mut BCRYPT_OID,
+}}
+STRUCT!{struct BCRYPT_PKCS1_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+}}
+STRUCT!{struct BCRYPT_PSS_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+ cbSalt: ULONG,
+}}
+STRUCT!{struct BCRYPT_OAEP_PADDING_INFO {
+ pszAlgId: LPCWSTR,
+ pbLabel: PUCHAR,
+ cbLabel: ULONG,
+}}
+pub const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION: ULONG = 1;
+pub const BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG: ULONG = 0x00000001;
+pub const BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG: ULONG = 0x00000002;
+STRUCT!{struct BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {
+ cbSize: ULONG,
+ dwInfoVersion: ULONG,
+ pbNonce: PUCHAR,
+ cbNonce: ULONG,
+ pbAuthData: PUCHAR,
+ cbAuthData: ULONG,
+ pbTag: PUCHAR,
+ cbTag: ULONG,
+ pbMacContext: PUCHAR,
+ cbMacContext: ULONG,
+ cbAAD: ULONG,
+ cbData: ULONGLONG,
+ dwFlags: ULONG,
+}}
+pub type PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = *mut BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
+pub const BCRYPT_OPAQUE_KEY_BLOB: &'static str = "OpaqueKeyBlob";
+pub const BCRYPT_KEY_DATA_BLOB: &'static str = "KeyDataBlob";
+pub const BCRYPT_AES_WRAP_KEY_BLOB: &'static str = "Rfc3565KeyWrapBlob";
+pub const BCRYPT_OBJECT_LENGTH: &'static str = "ObjectLength";
+pub const BCRYPT_ALGORITHM_NAME: &'static str = "AlgorithmName";
+pub const BCRYPT_PROVIDER_HANDLE: &'static str = "ProviderHandle";
+pub const BCRYPT_CHAINING_MODE: &'static str = "ChainingMode";
+pub const BCRYPT_BLOCK_LENGTH: &'static str = "BlockLength";
+pub const BCRYPT_KEY_LENGTH: &'static str = "KeyLength";
+pub const BCRYPT_KEY_OBJECT_LENGTH: &'static str = "KeyObjectLength";
+pub const BCRYPT_KEY_STRENGTH: &'static str = "KeyStrength";
+pub const BCRYPT_KEY_LENGTHS: &'static str = "KeyLengths";
+pub const BCRYPT_BLOCK_SIZE_LIST: &'static str = "BlockSizeList";
+pub const BCRYPT_EFFECTIVE_KEY_LENGTH: &'static str = "EffectiveKeyLength";
+pub const BCRYPT_HASH_LENGTH: &'static str = "HashDigestLength";
+pub const BCRYPT_HASH_OID_LIST: &'static str = "HashOIDList";
+pub const BCRYPT_PADDING_SCHEMES: &'static str = "PaddingSchemes";
+pub const BCRYPT_SIGNATURE_LENGTH: &'static str = "SignatureLength";
+pub const BCRYPT_HASH_BLOCK_LENGTH: &'static str = "HashBlockLength";
+pub const BCRYPT_AUTH_TAG_LENGTH: &'static str = "AuthTagLength";
+pub const BCRYPT_PRIMITIVE_TYPE: &'static str = "PrimitiveType";
+pub const BCRYPT_IS_KEYED_HASH: &'static str = "IsKeyedHash";
+pub const BCRYPT_IS_REUSABLE_HASH: &'static str = "IsReusableHash";
+pub const BCRYPT_MESSAGE_BLOCK_LENGTH: &'static str = "MessageBlockLength";
+pub const BCRYPT_PUBLIC_KEY_LENGTH: &'static str = "PublicKeyLength";
+pub const BCRYPT_PCP_PLATFORM_TYPE_PROPERTY: &'static str = "PCP_PLATFORM_TYPE";
+pub const BCRYPT_PCP_PROVIDER_VERSION_PROPERTY: &'static str = "PCP_PROVIDER_VERSION";
+pub const BCRYPT_MULTI_OBJECT_LENGTH: &'static str = "MultiObjectLength";
+pub const BCRYPT_INITIALIZATION_VECTOR: &'static str = "IV";
+pub const BCRYPT_CHAIN_MODE_NA: &'static str = "ChainingModeN/A";
+pub const BCRYPT_CHAIN_MODE_CBC: &'static str = "ChainingModeCBC";
+pub const BCRYPT_CHAIN_MODE_ECB: &'static str = "ChainingModeECB";
+pub const BCRYPT_CHAIN_MODE_CFB: &'static str = "ChainingModeCFB";
+pub const BCRYPT_CHAIN_MODE_CCM: &'static str = "ChainingModeCCM";
+pub const BCRYPT_CHAIN_MODE_GCM: &'static str = "ChainingModeGCM";
+pub const BCRYPT_PROV_DISPATCH: ULONG = 0x00000001;
+pub const BCRYPT_BLOCK_PADDING: ULONG = 0x00000001;
+pub const BCRYPT_PAD_NONE: ULONG = 0x00000001;
+pub const BCRYPT_PAD_PKCS1: ULONG = 0x00000002;
+pub const BCRYPT_PAD_OAEP: ULONG = 0x00000004;
+pub const BCRYPT_PAD_PSS: ULONG = 0x00000008;
+pub const BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID: ULONG = 0x00000010;
+pub const BCRYPTBUFFER_VERSION: ULONG = 0;
+STRUCT!{struct BCryptBuffer {
+ cbBuffer: ULONG,
+ BufferType: ULONG,
+ pvBuffer: PVOID,
+}}
+pub type PBCryptBuffer = *mut BCryptBuffer;
+STRUCT!{struct BCryptBufferDesc {
+ ulVersion: ULONG,
+ cBuffers: ULONG,
+ pBuffers: PBCryptBuffer,
+}}
+pub type PBCryptBufferDesc = *mut BCryptBufferDesc;
+pub type BCRYPT_HANDLE = PVOID;
+pub type BCRYPT_ALG_HANDLE = PVOID;
+pub type BCRYPT_KEY_HANDLE = PVOID;
+pub type BCRYPT_HASH_HANDLE = PVOID;
+pub type BCRYPT_SECRET_HANDLE = PVOID;
+pub const BCRYPT_PUBLIC_KEY_BLOB: &'static str = "PUBLICBLOB";
+pub const BCRYPT_PRIVATE_KEY_BLOB: &'static str = "PRIVATEBLOB";
+STRUCT!{struct BCRYPT_KEY_BLOB {
+ Magic: ULONG,
+}}
+pub const BCRYPT_RSAPUBLIC_BLOB: &'static str = "RSAPUBLICBLOB";
+pub const BCRYPT_RSAPRIVATE_BLOB: &'static str = "RSAPRIVATEBLOB";
+pub const LEGACY_RSAPUBLIC_BLOB: &'static str = "CAPIPUBLICBLOB";
+pub const LEGACY_RSAPRIVATE_BLOB: &'static str = "CAPIPRIVATEBLOB";
+pub const BCRYPT_RSAPUBLIC_MAGIC: ULONG = 0x31415352;
+pub const BCRYPT_RSAPRIVATE_MAGIC: ULONG = 0x32415352;
+STRUCT!{struct BCRYPT_RSAKEY_BLOB {
+ Magic: ULONG,
+ BitLength: ULONG,
+ cbPublicExp: ULONG,
+ cbModulus: ULONG,
+ cbPrime1: ULONG,
+ cbPrime2: ULONG,
+}}
+pub const BCRYPT_RSAFULLPRIVATE_BLOB: &'static str = "RSAFULLPRIVATEBLOB";
+pub const BCRYPT_RSAFULLPRIVATE_MAGIC: ULONG = 0x33415352;
+pub const BCRYPT_GLOBAL_PARAMETERS: &'static str = "SecretAgreementParam";
+pub const BCRYPT_PRIVATE_KEY: &'static str = "PrivKeyVal";
+pub const BCRYPT_ECCPUBLIC_BLOB: &'static str = "ECCPUBLICBLOB";
+pub const BCRYPT_ECCPRIVATE_BLOB: &'static str = "ECCPRIVATEBLOB";
+pub const BCRYPT_ECCFULLPUBLIC_BLOB: &'static str = "ECCFULLPUBLICBLOB";
+pub const BCRYPT_ECCFULLPRIVATE_BLOB: &'static str = "ECCFULLPRIVATEBLOB";
+pub const SSL_ECCPUBLIC_BLOB: &'static str = "SSLECCPUBLICBLOB";
+pub const BCRYPT_ECDH_PUBLIC_P256_MAGIC: ULONG = 0x314B4345;
+pub const BCRYPT_ECDH_PRIVATE_P256_MAGIC: ULONG = 0x324B4345;
+pub const BCRYPT_ECDH_PUBLIC_P384_MAGIC: ULONG = 0x334B4345;
+pub const BCRYPT_ECDH_PRIVATE_P384_MAGIC: ULONG = 0x344B4345;
+pub const BCRYPT_ECDH_PUBLIC_P521_MAGIC: ULONG = 0x354B4345;
+pub const BCRYPT_ECDH_PRIVATE_P521_MAGIC: ULONG = 0x364B4345;
+pub const BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC: ULONG = 0x504B4345;
+pub const BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC: ULONG = 0x564B4345;
+pub const BCRYPT_ECDSA_PUBLIC_P256_MAGIC: ULONG = 0x31534345;
+pub const BCRYPT_ECDSA_PRIVATE_P256_MAGIC: ULONG = 0x32534345;
+pub const BCRYPT_ECDSA_PUBLIC_P384_MAGIC: ULONG = 0x33534345;
+pub const BCRYPT_ECDSA_PRIVATE_P384_MAGIC: ULONG = 0x34534345;
+pub const BCRYPT_ECDSA_PUBLIC_P521_MAGIC: ULONG = 0x35534345;
+pub const BCRYPT_ECDSA_PRIVATE_P521_MAGIC: ULONG = 0x36534345;
+pub const BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC: ULONG = 0x50444345;
+pub const BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC: ULONG = 0x56444345;
+STRUCT!{struct BCRYPT_ECCKEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+}}
+pub type PBCRYPT_ECCKEY_BLOB = *mut BCRYPT_ECCKEY_BLOB;
+STRUCT!{struct SSL_ECCKEY_BLOB {
+ dwCurveType: ULONG,
+ cbKey: ULONG,
+}}
+pub type PSSL_ECCKEY_BLOB = *mut SSL_ECCKEY_BLOB;
+pub const BCRYPT_ECC_FULLKEY_BLOB_V1: ULONG = 0x1;
+ENUM!{enum ECC_CURVE_TYPE_ENUM {
+ BCRYPT_ECC_PRIME_SHORT_WEIERSTRASS_CURVE = 0x1,
+ BCRYPT_ECC_PRIME_TWISTED_EDWARDS_CURVE = 0x2,
+ BCRYPT_ECC_PRIME_MONTGOMERY_CURVE = 0x3,
+}}
+ENUM!{enum ECC_CURVE_ALG_ID_ENUM {
+ BCRYPT_NO_CURVE_GENERATION_ALG_ID = 0x0,
+}}
+STRUCT!{struct BCRYPT_ECCFULLKEY_BLOB {
+ dwMagic: ULONG,
+ dwVersion: ULONG,
+ dwCurveType: ECC_CURVE_TYPE_ENUM,
+ dwCurveGenerationAlgId: ECC_CURVE_ALG_ID_ENUM,
+ cbFieldLength: ULONG,
+ cbSubgroupOrder: ULONG,
+ cbCofactor: ULONG,
+ cbSeed: ULONG,
+}}
+pub type PBCRYPT_ECCFULLKEY_BLOB = *mut BCRYPT_ECCFULLKEY_BLOB;
+pub const BCRYPT_DH_PUBLIC_BLOB: &'static str = "DHPUBLICBLOB";
+pub const BCRYPT_DH_PRIVATE_BLOB: &'static str = "DHPRIVATEBLOB";
+pub const LEGACY_DH_PUBLIC_BLOB: &'static str = "CAPIDHPUBLICBLOB";
+pub const LEGACY_DH_PRIVATE_BLOB: &'static str = "CAPIDHPRIVATEBLOB";
+pub const BCRYPT_DH_PUBLIC_MAGIC: ULONG = 0x42504844;
+pub const BCRYPT_DH_PRIVATE_MAGIC: ULONG = 0x56504844;
+STRUCT!{struct BCRYPT_DH_KEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+}}
+pub type PBCRYPT_DH_KEY_BLOB = *mut BCRYPT_DH_KEY_BLOB;
+pub const BCRYPT_DH_PARAMETERS: &'static str = "DHParameters";
+pub const BCRYPT_DH_PARAMETERS_MAGIC: ULONG = 0x4d504844;
+STRUCT!{struct BCRYPT_DH_PARAMETER_HEADER {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+}}
+pub const BCRYPT_DSA_PUBLIC_BLOB: &'static str = "DSAPUBLICBLOB";
+pub const BCRYPT_DSA_PRIVATE_BLOB: &'static str = "DSAPRIVATEBLOB";
+pub const LEGACY_DSA_PUBLIC_BLOB: &'static str = "CAPIDSAPUBLICBLOB";
+pub const LEGACY_DSA_PRIVATE_BLOB: &'static str = "CAPIDSAPRIVATEBLOB";
+pub const LEGACY_DSA_V2_PUBLIC_BLOB: &'static str = "V2CAPIDSAPUBLICBLOB";
+pub const LEGACY_DSA_V2_PRIVATE_BLOB: &'static str = "V2CAPIDSAPRIVATEBLOB";
+pub const BCRYPT_DSA_PUBLIC_MAGIC: ULONG = 0x42505344;
+pub const BCRYPT_DSA_PRIVATE_MAGIC: ULONG = 0x56505344;
+pub const BCRYPT_DSA_PUBLIC_MAGIC_V2: ULONG = 0x32425044;
+pub const BCRYPT_DSA_PRIVATE_MAGIC_V2: ULONG = 0x32565044;
+STRUCT!{struct BCRYPT_DSA_KEY_BLOB {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+ Count: [UCHAR; 4],
+ Seed: [UCHAR; 20],
+ q: [UCHAR; 20],
+}}
+pub type PBCRYPT_DSA_KEY_BLOB = *mut BCRYPT_DSA_KEY_BLOB;
+ENUM!{enum HASHALGORITHM_ENUM {
+ DSA_HASH_ALGORITHM_SHA1,
+ DSA_HASH_ALGORITHM_SHA256,
+ DSA_HASH_ALGORITHM_SHA512,
+}}
+ENUM!{enum DSAFIPSVERSION_ENUM {
+ DSA_FIPS186_2,
+ DSA_FIPS186_3,
+}}
+STRUCT!{struct BCRYPT_DSA_KEY_BLOB_V2 {
+ dwMagic: ULONG,
+ cbKey: ULONG,
+ hashAlgorithm: HASHALGORITHM_ENUM,
+ standardVersion: DSAFIPSVERSION_ENUM,
+ cbSeedLength: ULONG,
+ cbGroupSize: ULONG,
+ Count: [UCHAR; 4],
+}}
+pub type PBCRYPT_DSA_KEY_BLOB_V2 = *mut BCRYPT_DSA_KEY_BLOB_V2;
+STRUCT!{struct BCRYPT_KEY_DATA_BLOB_HEADER {
+ dwMagic: ULONG,
+ dwVersion: ULONG,
+ cbKeyData: ULONG,
+}}
+pub type PBCRYPT_KEY_DATA_BLOB_HEADER = *mut BCRYPT_KEY_DATA_BLOB_HEADER;
+pub const BCRYPT_KEY_DATA_BLOB_MAGIC: ULONG = 0x4d42444b;
+pub const BCRYPT_KEY_DATA_BLOB_VERSION1: ULONG = 0x1;
+pub const BCRYPT_DSA_PARAMETERS: &'static str = "DSAParameters";
+pub const BCRYPT_DSA_PARAMETERS_MAGIC: ULONG = 0x4d505344;
+pub const BCRYPT_DSA_PARAMETERS_MAGIC_V2: ULONG = 0x324d5044;
+STRUCT!{struct BCRYPT_DSA_PARAMETER_HEADER {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+ Count: [UCHAR; 4],
+ Seed: [UCHAR; 20],
+ q: [UCHAR; 20],
+}}
+STRUCT!{struct BCRYPT_DSA_PARAMETER_HEADER_V2 {
+ cbLength: ULONG,
+ dwMagic: ULONG,
+ cbKeyLength: ULONG,
+ hashAlgorithm: HASHALGORITHM_ENUM,
+ standardVersion: DSAFIPSVERSION_ENUM,
+ cbSeedLength: ULONG,
+ cbGroupSize: ULONG,
+ Count: [UCHAR; 4],
+}}
+pub const BCRYPT_ECC_PARAMETERS: &'static str = "ECCParameters";
+pub const BCRYPT_ECC_CURVE_NAME: &'static str = "ECCCurveName";
+pub const BCRYPT_ECC_CURVE_NAME_LIST: &'static str = "ECCCurveNameList";
+pub const BCRYPT_ECC_PARAMETERS_MAGIC: ULONG = 0x50434345;
+STRUCT!{struct BCRYPT_ECC_CURVE_NAMES {
+ dwEccCurveNames: ULONG,
+ pEccCurveNames: LPWSTR,
+}}
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP160R1: &'static str = "brainpoolP160r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP160T1: &'static str = "brainpoolP160t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP192R1: &'static str = "brainpoolP192r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP192T1: &'static str = "brainpoolP192t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP224R1: &'static str = "brainpoolP224r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP224T1: &'static str = "brainpoolP224t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP256R1: &'static str = "brainpoolP256r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP256T1: &'static str = "brainpoolP256t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP320R1: &'static str = "brainpoolP320r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP320T1: &'static str = "brainpoolP320t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP384R1: &'static str = "brainpoolP384r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP384T1: &'static str = "brainpoolP384t1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP512R1: &'static str = "brainpoolP512r1";
+pub const BCRYPT_ECC_CURVE_BRAINPOOLP512T1: &'static str = "brainpoolP512t1";
+pub const BCRYPT_ECC_CURVE_25519: &'static str = "curve25519";
+pub const BCRYPT_ECC_CURVE_EC192WAPI: &'static str = "ec192wapi";
+pub const BCRYPT_ECC_CURVE_NISTP192: &'static str = "nistP192";
+pub const BCRYPT_ECC_CURVE_NISTP224: &'static str = "nistP224";
+pub const BCRYPT_ECC_CURVE_NISTP256: &'static str = "nistP256";
+pub const BCRYPT_ECC_CURVE_NISTP384: &'static str = "nistP384";
+pub const BCRYPT_ECC_CURVE_NISTP521: &'static str = "nistP521";
+pub const BCRYPT_ECC_CURVE_NUMSP256T1: &'static str = "numsP256t1";
+pub const BCRYPT_ECC_CURVE_NUMSP384T1: &'static str = "numsP384t1";
+pub const BCRYPT_ECC_CURVE_NUMSP512T1: &'static str = "numsP512t1";
+pub const BCRYPT_ECC_CURVE_SECP160K1: &'static str = "secP160k1";
+pub const BCRYPT_ECC_CURVE_SECP160R1: &'static str = "secP160r1";
+pub const BCRYPT_ECC_CURVE_SECP160R2: &'static str = "secP160r2";
+pub const BCRYPT_ECC_CURVE_SECP192K1: &'static str = "secP192k1";
+pub const BCRYPT_ECC_CURVE_SECP192R1: &'static str = "secP192r1";
+pub const BCRYPT_ECC_CURVE_SECP224K1: &'static str = "secP224k1";
+pub const BCRYPT_ECC_CURVE_SECP224R1: &'static str = "secP224r1";
+pub const BCRYPT_ECC_CURVE_SECP256K1: &'static str = "secP256k1";
+pub const BCRYPT_ECC_CURVE_SECP256R1: &'static str = "secP256r1";
+pub const BCRYPT_ECC_CURVE_SECP384R1: &'static str = "secP384r1";
+pub const BCRYPT_ECC_CURVE_SECP521R1: &'static str = "secP521r1";
+pub const BCRYPT_ECC_CURVE_WTLS7: &'static str = "wtls7";
+pub const BCRYPT_ECC_CURVE_WTLS9: &'static str = "wtls9";
+pub const BCRYPT_ECC_CURVE_WTLS12: &'static str = "wtls12";
+pub const BCRYPT_ECC_CURVE_X962P192V1: &'static str = "x962P192v1";
+pub const BCRYPT_ECC_CURVE_X962P192V2: &'static str = "x962P192v2";
+pub const BCRYPT_ECC_CURVE_X962P192V3: &'static str = "x962P192v3";
+pub const BCRYPT_ECC_CURVE_X962P239V1: &'static str = "x962P239v1";
+pub const BCRYPT_ECC_CURVE_X962P239V2: &'static str = "x962P239v2";
+pub const BCRYPT_ECC_CURVE_X962P239V3: &'static str = "x962P239v3";
+pub const BCRYPT_ECC_CURVE_X962P256V1: &'static str = "x962P256v1";
+ENUM!{enum BCRYPT_HASH_OPERATION_TYPE {
+ BCRYPT_HASH_OPERATION_HASH_DATA = 1,
+ BCRYPT_HASH_OPERATION_FINISH_HASH = 2,
+}}
+STRUCT!{struct BCRYPT_MULTI_HASH_OPERATION {
+ iHash: ULONG,
+ hashOperation: BCRYPT_HASH_OPERATION_TYPE,
+ pbBuffer: PUCHAR,
+ cbBuffer: ULONG,
+}}
+ENUM!{enum BCRYPT_MULTI_OPERATION_TYPE {
+ BCRYPT_OPERATION_TYPE_HASH = 1,
+}}
+STRUCT!{struct BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {
+ cbPerObject: ULONG,
+ cbPerElement: ULONG,
+}}
+pub const MS_PRIMITIVE_PROVIDER: &'static str = "Microsoft Primitive Provider";
+pub const MS_PLATFORM_CRYPTO_PROVIDER: &'static str = "Microsoft Platform Crypto Provider";
+pub const BCRYPT_RSA_ALGORITHM: &'static str = "RSA";
+pub const BCRYPT_RSA_SIGN_ALGORITHM: &'static str = "RSA_SIGN";
+pub const BCRYPT_DH_ALGORITHM: &'static str = "DH";
+pub const BCRYPT_DSA_ALGORITHM: &'static str = "DSA";
+pub const BCRYPT_RC2_ALGORITHM: &'static str = "RC2";
+pub const BCRYPT_RC4_ALGORITHM: &'static str = "RC4";
+pub const BCRYPT_AES_ALGORITHM: &'static str = "AES";
+pub const BCRYPT_DES_ALGORITHM: &'static str = "DES";
+pub const BCRYPT_DESX_ALGORITHM: &'static str = "DESX";
+pub const BCRYPT_3DES_ALGORITHM: &'static str = "3DES";
+pub const BCRYPT_3DES_112_ALGORITHM: &'static str = "3DES_112";
+pub const BCRYPT_MD2_ALGORITHM: &'static str = "MD2";
+pub const BCRYPT_MD4_ALGORITHM: &'static str = "MD4";
+pub const BCRYPT_MD5_ALGORITHM: &'static str = "MD5";
+pub const BCRYPT_SHA1_ALGORITHM: &'static str = "SHA1";
+pub const BCRYPT_SHA256_ALGORITHM: &'static str = "SHA256";
+pub const BCRYPT_SHA384_ALGORITHM: &'static str = "SHA384";
+pub const BCRYPT_SHA512_ALGORITHM: &'static str = "SHA512";
+pub const BCRYPT_AES_GMAC_ALGORITHM: &'static str = "AES-GMAC";
+pub const BCRYPT_AES_CMAC_ALGORITHM: &'static str = "AES-CMAC";
+pub const BCRYPT_ECDSA_P256_ALGORITHM: &'static str = "ECDSA_P256";
+pub const BCRYPT_ECDSA_P384_ALGORITHM: &'static str = "ECDSA_P384";
+pub const BCRYPT_ECDSA_P521_ALGORITHM: &'static str = "ECDSA_P521";
+pub const BCRYPT_ECDH_P256_ALGORITHM: &'static str = "ECDH_P256";
+pub const BCRYPT_ECDH_P384_ALGORITHM: &'static str = "ECDH_P384";
+pub const BCRYPT_ECDH_P521_ALGORITHM: &'static str = "ECDH_P521";
+pub const BCRYPT_RNG_ALGORITHM: &'static str = "RNG";
+pub const BCRYPT_RNG_FIPS186_DSA_ALGORITHM: &'static str = "FIPS186DSARNG";
+pub const BCRYPT_RNG_DUAL_EC_ALGORITHM: &'static str = "DUALECRNG";
+pub const BCRYPT_SP800108_CTR_HMAC_ALGORITHM: &'static str = "SP800_108_CTR_HMAC";
+pub const BCRYPT_SP80056A_CONCAT_ALGORITHM: &'static str = "SP800_56A_CONCAT";
+pub const BCRYPT_PBKDF2_ALGORITHM: &'static str = "PBKDF2";
+pub const BCRYPT_CAPI_KDF_ALGORITHM: &'static str = "CAPI_KDF";
+pub const BCRYPT_TLS1_1_KDF_ALGORITHM: &'static str = "TLS1_1_KDF";
+pub const BCRYPT_TLS1_2_KDF_ALGORITHM: &'static str = "TLS1_2_KDF";
+pub const BCRYPT_ECDSA_ALGORITHM: &'static str = "ECDSA";
+pub const BCRYPT_ECDH_ALGORITHM: &'static str = "ECDH";
+pub const BCRYPT_XTS_AES_ALGORITHM: &'static str = "XTS-AES";
+pub const BCRYPT_CIPHER_INTERFACE: ULONG = 0x00000001;
+pub const BCRYPT_HASH_INTERFACE: ULONG = 0x00000002;
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE: ULONG = 0x00000003;
+pub const BCRYPT_SECRET_AGREEMENT_INTERFACE: ULONG = 0x00000004;
+pub const BCRYPT_SIGNATURE_INTERFACE: ULONG = 0x00000005;
+pub const BCRYPT_RNG_INTERFACE: ULONG = 0x00000006;
+pub const BCRYPT_KEY_DERIVATION_INTERFACE: ULONG = 0x00000007;
+pub const BCRYPT_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000001 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000011 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000021 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000031 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000041 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000051 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000061 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000071 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RNG_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000081 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD5_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000091 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA1_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_SHA512_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000000f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000101 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_GMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000111 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000121 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_HMAC_MD4_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000131 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000141 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000151 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000161 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000171 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000181 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_3DES_112_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000191 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_CCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_AES_GCM_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000001f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000201 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DES_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000211 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000221 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000231 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DESX_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000241 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_CBC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000251 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_ECB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000261 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RC2_CFB_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000271 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000281 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000291 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002a1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002b1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDH_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002c1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_DSA_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002d1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P256_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002e1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P384_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x000002f1 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ECDSA_P521_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000301 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_RSA_SIGN_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000311 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_CAPI_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000321 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_PBKDF2_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000331 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000341 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_SP80056A_CONCAT_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000351 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_TLS1_1_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000361 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_TLS1_2_KDF_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000371 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_XTS_AES_ALG_HANDLE: BCRYPT_ALG_HANDLE = 0x00000381 as BCRYPT_ALG_HANDLE;
+pub const BCRYPT_ALG_HANDLE_HMAC_FLAG: ULONG = 0x00000008;
+pub const BCRYPT_CAPI_AES_FLAG: ULONG = 0x00000010;
+pub const BCRYPT_HASH_REUSABLE_FLAG: ULONG = 0x00000020;
+pub const BCRYPT_BUFFERS_LOCKED_FLAG: ULONG = 0x00000040;
+pub const BCRYPT_EXTENDED_KEYSIZE: ULONG = 0x00000080;
+pub const BCRYPT_ENABLE_INCOMPATIBLE_FIPS_CHECKS: ULONG = 0x00000100;
+extern "system" {
+ pub fn BCryptOpenAlgorithmProvider(
+ phAlgorithm: *mut BCRYPT_ALG_HANDLE,
+ pszAlgId: LPCWSTR,
+ pszImplementation: LPCWSTR,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_CIPHER_OPERATION: ULONG = 0x00000001;
+pub const BCRYPT_HASH_OPERATION: ULONG = 0x00000002;
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION: ULONG = 0x00000004;
+pub const BCRYPT_SECRET_AGREEMENT_OPERATION: ULONG = 0x00000008;
+pub const BCRYPT_SIGNATURE_OPERATION: ULONG = 0x00000010;
+pub const BCRYPT_RNG_OPERATION: ULONG = 0x00000020;
+pub const BCRYPT_KEY_DERIVATION_OPERATION: ULONG = 0x00000040;
+STRUCT!{struct BCRYPT_ALGORITHM_IDENTIFIER {
+ pszName: LPWSTR,
+ dwClass: ULONG,
+ dwFlags: ULONG,
+}}
+extern "system" {
+ pub fn BCryptEnumAlgorithms(
+ dwAlgOperations: ULONG,
+ pAlgCount: *mut ULONG,
+ ppAlgList: *mut *mut BCRYPT_ALGORITHM_IDENTIFIER,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+STRUCT!{struct BCRYPT_PROVIDER_NAME {
+ pszProviderName: LPWSTR,
+}}
+extern "system" {
+ pub fn BCryptEnumProviders(
+ pszAlgId: LPCWSTR,
+ pImplCount: *mut ULONG,
+ ppImplList: *mut *mut BCRYPT_PROVIDER_NAME,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_PUBLIC_KEY_FLAG: ULONG = 0x00000001;
+pub const BCRYPT_PRIVATE_KEY_FLAG: ULONG = 0x00000002;
+extern "system" {
+ pub fn BCryptGetProperty(
+ hObject: BCRYPT_HANDLE,
+ pszProperty: LPCWSTR,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptSetProperty(
+ hObject: BCRYPT_HANDLE,
+ pszProperty: LPCWSTR,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCloseAlgorithmProvider(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFreeBuffer(
+ pvBuffer: PVOID,
+ );
+ pub fn BCryptGenerateSymmetricKey(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptGenerateKeyPair(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ dwLength: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptEncrypt(
+ hKey: BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pPaddingInfo: *mut VOID,
+ pbIV: PUCHAR,
+ cbIV: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDecrypt(
+ hKey: BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pPaddingInfo: *mut VOID,
+ pbIV: PUCHAR,
+ cbIV: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptExportKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ hExportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptImportKey(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ hImportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_NO_KEY_VALIDATION: ULONG = 0x00000008;
+extern "system" {
+ pub fn BCryptImportKeyPair(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ hImportKey: BCRYPT_KEY_HANDLE,
+ pszBlobType: LPCWSTR,
+ phKey: *mut BCRYPT_KEY_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDuplicateKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ phNewKey: *mut BCRYPT_KEY_HANDLE,
+ pbKeyObject: PUCHAR,
+ cbKeyObject: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFinalizeKeyPair(
+ hKey: BCRYPT_KEY_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroyKey(
+ hKey: BCRYPT_KEY_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroySecret(
+ hSecret: BCRYPT_SECRET_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptSignHash(
+ hKey: BCRYPT_KEY_HANDLE,
+ pPaddingInfo: *mut VOID,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptVerifySignature(
+ hKey: BCRYPT_KEY_HANDLE,
+ pPaddingInfo: *mut VOID,
+ pbHash: PUCHAR,
+ cbHash: ULONG,
+ pbSignature: PUCHAR,
+ cbSignature: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptSecretAgreement(
+ hPrivKey: BCRYPT_KEY_HANDLE,
+ hPubKey: BCRYPT_KEY_HANDLE,
+ phAgreedSecret: *mut BCRYPT_SECRET_HANDLE,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKey(
+ hSharedSecret: BCRYPT_SECRET_HANDLE,
+ pwszKDF: LPCWSTR,
+ pParameterList: *mut BCryptBufferDesc,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptKeyDerivation(
+ hKey: BCRYPT_KEY_HANDLE,
+ pParameterList: *mut BCryptBufferDesc,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ pcbResult: *mut ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phHash: *mut BCRYPT_HASH_HANDLE,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptHashData(
+ hHash: BCRYPT_HASH_HANDLE,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptFinishHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateMultiHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ phHash: *mut BCRYPT_HASH_HANDLE,
+ nHashes: ULONG,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptProcessMultiOperations(
+ hObject: BCRYPT_HANDLE,
+ operationType: BCRYPT_MULTI_OPERATION_TYPE,
+ pOperations: PVOID,
+ cbOperations: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDuplicateHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ phNewHash: *mut BCRYPT_HASH_HANDLE,
+ pbHashObject: PUCHAR,
+ cbHashObject: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDestroyHash(
+ hHash: BCRYPT_HASH_HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptHash(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ pbSecret: PUCHAR,
+ cbSecret: ULONG,
+ pbInput: PUCHAR,
+ cbInput: ULONG,
+ pbOutput: PUCHAR,
+ cbOutput: ULONG,
+ ) -> NTSTATUS;
+}
+pub const BCRYPT_RNG_USE_ENTROPY_IN_BUFFER: ULONG = 0x00000001;
+pub const BCRYPT_USE_SYSTEM_PREFERRED_RNG: ULONG = 0x00000002;
+extern "system" {
+ pub fn BCryptGenRandom(
+ hAlgorithm: BCRYPT_ALG_HANDLE,
+ pbBuffer: PUCHAR,
+ cbBuffer: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKeyCapi(
+ hHash: BCRYPT_HASH_HANDLE,
+ hTargetAlg: BCRYPT_ALG_HANDLE,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeriveKeyPBKDF2(
+ hPrf: BCRYPT_ALG_HANDLE,
+ pbPassword: PUCHAR,
+ cbPassword: ULONG,
+ pbSalt: PUCHAR,
+ cbSalt: ULONG,
+ cIterations: ULONGLONG,
+ pbDerivedKey: PUCHAR,
+ cbDerivedKey: ULONG,
+ dwFlags: ULONG,
+ ) -> NTSTATUS;
+}
+STRUCT!{struct BCRYPT_INTERFACE_VERSION {
+ MajorVersion: USHORT,
+ MinorVersion: USHORT,
+}}
+pub type PBCRYPT_INTERFACE_VERSION = *mut BCRYPT_INTERFACE_VERSION;
+#[inline]
+pub fn BCRYPT_IS_INTERFACE_VERSION_COMPATIBLE(
+ loader: BCRYPT_INTERFACE_VERSION,
+ provider: BCRYPT_INTERFACE_VERSION,
+) -> bool {
+ loader.MajorVersion <= provider.MajorVersion
+}
+pub const BCRYPT_CIPHER_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_HASH_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_HASH_INTERFACE_MAJORVERSION_2: USHORT = 2;
+pub const BCRYPT_HASH_INTERFACE_VERSION_2: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(BCRYPT_HASH_INTERFACE_MAJORVERSION_2, 0);
+pub const BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_SECRET_AGREEMENT_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_SIGNATURE_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const BCRYPT_RNG_INTERFACE_VERSION_1: BCRYPT_INTERFACE_VERSION =
+ BCRYPT_MAKE_INTERFACE_VERSION!(1, 0);
+pub const CRYPT_MIN_DEPENDENCIES: ULONG = 0x00000001;
+pub const CRYPT_PROCESS_ISOLATE: ULONG = 0x00010000;
+pub const CRYPT_UM: ULONG = 0x00000001;
+pub const CRYPT_KM: ULONG = 0x00000002;
+pub const CRYPT_MM: ULONG = 0x00000003;
+pub const CRYPT_ANY: ULONG = 0x00000004;
+pub const CRYPT_OVERWRITE: ULONG = 0x00000001;
+pub const CRYPT_LOCAL: ULONG = 0x00000001;
+pub const CRYPT_DOMAIN: ULONG = 0x00000002;
+pub const CRYPT_EXCLUSIVE: ULONG = 0x00000001;
+pub const CRYPT_OVERRIDE: ULONG = 0x00010000;
+pub const CRYPT_ALL_FUNCTIONS: ULONG = 0x00000001;
+pub const CRYPT_ALL_PROVIDERS: ULONG = 0x00000002;
+pub const CRYPT_PRIORITY_TOP: ULONG = 0x00000000;
+pub const CRYPT_PRIORITY_BOTTOM: ULONG = 0xFFFFFFFF;
+pub const CRYPT_DEFAULT_CONTEXT: &'static str = "Default";
+STRUCT!{struct CRYPT_INTERFACE_REG {
+ dwInterface: ULONG,
+ dwFlags: ULONG,
+ cFunctions: ULONG,
+ rgpszFunctions: *mut PWSTR,
+}}
+pub type PCRYPT_INTERFACE_REG = *mut CRYPT_INTERFACE_REG;
+STRUCT!{struct CRYPT_IMAGE_REG {
+ pszImage: PWSTR,
+ cInterfaces: ULONG,
+ rgpInterfaces: *mut PCRYPT_INTERFACE_REG,
+}}
+pub type PCRYPT_IMAGE_REG = *mut CRYPT_IMAGE_REG;
+STRUCT!{struct CRYPT_PROVIDER_REG {
+ cAliases: ULONG,
+ rgpszAliases: *mut PWSTR,
+ pUM: PCRYPT_IMAGE_REG,
+ pKM: PCRYPT_IMAGE_REG,
+}}
+pub type PCRYPT_PROVIDER_REG = *mut CRYPT_PROVIDER_REG;
+STRUCT!{struct CRYPT_PROVIDERS {
+ cProviders: ULONG,
+ rgpszProviders: *mut PWSTR,
+}}
+pub type PCRYPT_PROVIDERS = *mut CRYPT_PROVIDERS;
+STRUCT!{struct CRYPT_CONTEXT_CONFIG {
+ dwFlags: ULONG,
+ dwReserved: ULONG,
+}}
+pub type PCRYPT_CONTEXT_CONFIG = *mut CRYPT_CONTEXT_CONFIG;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTION_CONFIG {
+ dwFlags: ULONG,
+ dwReserved: ULONG,
+}}
+pub type PCRYPT_CONTEXT_FUNCTION_CONFIG = *mut CRYPT_CONTEXT_FUNCTION_CONFIG;
+STRUCT!{struct CRYPT_CONTEXTS {
+ cContexts: ULONG,
+ rgpszContexts: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXTS = *mut CRYPT_CONTEXTS;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTIONS {
+ cFunctions: ULONG,
+ rgpszFunctions: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXT_FUNCTIONS = *mut CRYPT_CONTEXT_FUNCTIONS;
+STRUCT!{struct CRYPT_CONTEXT_FUNCTION_PROVIDERS {
+ cProviders: ULONG,
+ rgpszProviders: *mut PWSTR,
+}}
+pub type PCRYPT_CONTEXT_FUNCTION_PROVIDERS = *mut CRYPT_CONTEXT_FUNCTION_PROVIDERS;
+STRUCT!{struct CRYPT_PROPERTY_REF {
+ pszProperty: PWSTR,
+ cbValue: ULONG,
+ pbValue: PUCHAR,
+}}
+pub type PCRYPT_PROPERTY_REF = *mut CRYPT_PROPERTY_REF;
+STRUCT!{struct CRYPT_IMAGE_REF {
+ pszImage: PWSTR,
+ dwFlags: ULONG,
+}}
+pub type PCRYPT_IMAGE_REF = *mut CRYPT_IMAGE_REF;
+STRUCT!{struct CRYPT_PROVIDER_REF {
+ dwInterface: ULONG,
+ pszFunction: PWSTR,
+ pszProvider: PWSTR,
+ cProperties: ULONG,
+ rgpProperties: *mut PCRYPT_PROPERTY_REF,
+ pUM: PCRYPT_IMAGE_REF,
+ pKM: PCRYPT_IMAGE_REF,
+}}
+pub type PCRYPT_PROVIDER_REF = *mut CRYPT_PROVIDER_REF;
+STRUCT!{struct CRYPT_PROVIDER_REFS {
+ cProviders: ULONG,
+ rgpProviders: *mut PCRYPT_PROVIDER_REF,
+}}
+pub type PCRYPT_PROVIDER_REFS = *mut CRYPT_PROVIDER_REFS;
+extern "system" {
+ pub fn BCryptQueryProviderRegistration(
+ pszProvider: LPCWSTR,
+ dwMode: ULONG,
+ dwInterface: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDER_REG,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumRegisteredProviders(
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDERS,
+ ) -> NTSTATUS;
+ pub fn BCryptCreateContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptDeleteContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContexts(
+ dwTable: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXTS,
+ ) -> NTSTATUS;
+ pub fn BCryptConfigureContext(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextConfiguration(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptAddContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ dwPosition: ULONG,
+ ) -> NTSTATUS;
+ pub fn BCryptRemoveContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContextFunctions(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTIONS,
+ ) -> NTSTATUS;
+ pub fn BCryptConfigureContextFunction(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextFunctionConfiguration(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_CONFIG,
+ ) -> NTSTATUS;
+ pub fn BCryptEnumContextFunctionProviders(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_CONTEXT_FUNCTION_PROVIDERS,
+ ) -> NTSTATUS;
+ pub fn BCryptSetContextFunctionProperty(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProperty: LPCWSTR,
+ cbValue: ULONG,
+ pbValue: PUCHAR,
+ ) -> NTSTATUS;
+ pub fn BCryptQueryContextFunctionProperty(
+ dwTable: ULONG,
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProperty: LPCWSTR,
+ pcbValue: *mut ULONG,
+ ppbValue: *mut PUCHAR,
+ ) -> NTSTATUS;
+ pub fn BCryptRegisterConfigChangeNotify(
+ phEvent: *mut HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptUnregisterConfigChangeNotify(
+ hEvent: HANDLE,
+ ) -> NTSTATUS;
+ pub fn BCryptResolveProviders(
+ pszContext: LPCWSTR,
+ dwInterface: ULONG,
+ pszFunction: LPCWSTR,
+ pszProvider: LPCWSTR,
+ dwMode: ULONG,
+ dwFlags: ULONG,
+ pcbBuffer: *mut ULONG,
+ ppBuffer: *mut PCRYPT_PROVIDER_REFS,
+ ) -> NTSTATUS;
+ pub fn BCryptGetFipsAlgorithmMode(
+ pfEnabled: *mut BOOLEAN,
+ ) -> NTSTATUS;
+ pub fn CngGetFipsAlgorithmMode() -> BOOLEAN;
+}
diff --git a/third_party/rust/winapi/src/shared/bthdef.rs b/third_party/rust/winapi/src/shared/bthdef.rs
new file mode 100644
index 0000000000..42a797cb6a
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/bthdef.rs
@@ -0,0 +1,1103 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::bthsdpdef::SDP_ERROR;
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT};
+use shared::ntdef::{CHAR, ULONGLONG};
+pub const BTH_MAJORVERSION: DWORD = 2;
+pub const BTH_MINORVERSION: DWORD = 1;
+DEFINE_GUID!{GUID_BTHPORT_DEVICE_INTERFACE,
+ 0x850302a, 0xb344, 0x4fda, 0x9b, 0xe9, 0x90, 0x57, 0x6b, 0x8d, 0x46, 0xf0}
+DEFINE_GUID!{GUID_BTH_RFCOMM_SERVICE_DEVICE_INTERFACE,
+ 0xb142fc3e, 0xfa4e, 0x460b, 0x8a, 0xbc, 0x07, 0x2b, 0x62, 0x8b, 0x3c, 0x70}
+DEFINE_GUID!{GUID_BLUETOOTH_RADIO_IN_RANGE,
+ 0xea3b5b82, 0x26ee, 0x450e, 0xb0, 0xd8, 0xd2, 0x6f, 0xe3, 0x0a, 0x38, 0x69}
+DEFINE_GUID!{GUID_BLUETOOTH_RADIO_OUT_OF_RANGE,
+ 0xe28867c9, 0xc2aa, 0x4ced, 0xb9, 0x69, 0x45, 0x70, 0x86, 0x60, 0x37, 0xc4}
+DEFINE_GUID!{GUID_BLUETOOTH_L2CAP_EVENT,
+ 0x7eae4030, 0xb709, 0x4aa8, 0xac, 0x55, 0xe9, 0x53, 0x82, 0x9c, 0x9d, 0xaa}
+DEFINE_GUID!{GUID_BLUETOOTH_HCI_EVENT,
+ 0xfc240062, 0x1541, 0x49be, 0xb4, 0x63, 0x84, 0xc4, 0xdc, 0xd7, 0xbf, 0x7f}
+DEFINE_GUID!{GUID_BLUETOOTH_AUTHENTICATION_REQUEST,
+ 0x5DC9136D, 0x996C, 0x46DB, 0x84, 0xF5, 0x32, 0xC0, 0xA3, 0xF4, 0x73, 0x52}
+DEFINE_GUID!{GUID_BLUETOOTH_KEYPRESS_EVENT,
+ 0xD668DFCD, 0x0F4E, 0x4EFC, 0xBF, 0xE0, 0x39, 0x2E, 0xEE, 0xC5, 0x10, 0x9C}
+DEFINE_GUID!{GUID_BLUETOOTH_HCI_VENDOR_EVENT,
+ 0x547247e6, 0x45bb, 0x4c33, 0xaf, 0x8c, 0xc0, 0x0e, 0xfe, 0x15, 0xa7, 0x1d}
+DEFINE_GUID!{Bluetooth_Base_UUID,
+ 0x00000000, 0x0000, 0x1000, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB}
+pub const SDP_PROTOCOL_UUID16: USHORT = 0x0001;
+pub const UDP_PROTOCOL_UUID16: USHORT = 0x0002;
+pub const RFCOMM_PROTOCOL_UUID16: USHORT = 0x0003;
+pub const TCP_PROTOCOL_UUID16: USHORT = 0x0004;
+pub const TCSBIN_PROTOCOL_UUID16: USHORT = 0x0005;
+pub const TCSAT_PROTOCOL_UUID16: USHORT = 0x0006;
+pub const ATT_PROTOCOL_UUID16: USHORT = 0x0007;
+pub const OBEX_PROTOCOL_UUID16: USHORT = 0x0008;
+pub const IP_PROTOCOL_UUID16: USHORT = 0x0009;
+pub const FTP_PROTOCOL_UUID16: USHORT = 0x000A;
+pub const HTTP_PROTOCOL_UUID16: USHORT = 0x000C;
+pub const WSP_PROTOCOL_UUID16: USHORT = 0x000E;
+pub const BNEP_PROTOCOL_UUID16: USHORT = 0x000F;
+pub const UPNP_PROTOCOL_UUID16: USHORT = 0x0010;
+pub const HID_PROTOCOL_UUID16: USHORT = 0x0011;
+pub const HCCC_PROTOCOL_UUID16: USHORT = 0x0012;
+pub const HCDC_PROTOCOL_UUID16: USHORT = 0x0014;
+pub const HCN_PROTOCOL_UUID16: USHORT = 0x0016;
+pub const AVCTP_PROTOCOL_UUID16: USHORT = 0x0017;
+pub const AVDTP_PROTOCOL_UUID16: USHORT = 0x0019;
+pub const CMPT_PROTOCOL_UUID16: USHORT = 0x001B;
+pub const UDI_C_PLANE_PROTOCOL_UUID16: USHORT = 0x001D;
+pub const L2CAP_PROTOCOL_UUID16: USHORT = 0x0100;
+DEFINE_BLUETOOTH_UUID128!{SDP_PROTOCOL_UUID, SDP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDP_PROTOCOL_UUID, UDP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{RFCOMM_PROTOCOL_UUID, RFCOMM_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCP_PROTOCOL_UUID, TCP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCSBIN_PROTOCOL_UUID, TCSBIN_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{TCSAT_PROTOCOL_UUID, TCSAT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ATT_PROTOCOL_UUID, ATT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEX_PROTOCOL_UUID, OBEX_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IP_PROTOCOL_UUID, IP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{FTP_PROTOCOL_UUID, FTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HTTP_PROTOCOL_UUID, HTTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WSP_PROTOCOL_UUID, WSP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BNEP_PROTOCOL_UUID, BNEP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPNP_PROTOCOL_UUID, UPNP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HID_PROTOCOL_UUID, HID_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCCC_PROTOCOL_UUID, HCCC_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCDC_PROTOCOL_UUID, HCDC_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCN_PROTOCOL_UUID, HCN_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVCTP_PROTOCOL_UUID, AVCTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVDTP_PROTOCOL_UUID, AVDTP_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CMPT_PROTOCOL_UUID, CMPT_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDI_C_PLANE_PROTOCOL_UUID, UDI_C_PLANE_PROTOCOL_UUID16}
+DEFINE_BLUETOOTH_UUID128!{L2CAP_PROTOCOL_UUID, L2CAP_PROTOCOL_UUID16}
+pub const ServiceDiscoveryServerServiceClassID_UUID16: USHORT = 0x1000;
+pub const BrowseGroupDescriptorServiceClassID_UUID16: USHORT = 0x1001;
+pub const PublicBrowseGroupServiceClassID_UUID16: USHORT = 0x1002;
+pub const SerialPortServiceClassID_UUID16: USHORT = 0x1101;
+pub const LANAccessUsingPPPServiceClassID_UUID16: USHORT = 0x1102;
+pub const DialupNetworkingServiceClassID_UUID16: USHORT = 0x1103;
+pub const IrMCSyncServiceClassID_UUID16: USHORT = 0x1104;
+pub const OBEXObjectPushServiceClassID_UUID16: USHORT = 0x1105;
+pub const OBEXFileTransferServiceClassID_UUID16: USHORT = 0x1106;
+pub const IrMcSyncCommandServiceClassID_UUID16: USHORT = 0x1107;
+pub const HeadsetServiceClassID_UUID16: USHORT = 0x1108;
+pub const CordlessTelephonyServiceClassID_UUID16: USHORT = 0x1109;
+pub const AudioSourceServiceClassID_UUID16: USHORT = 0x110A;
+pub const AudioSinkServiceClassID_UUID16: USHORT = 0x110B;
+pub const AVRemoteControlTargetServiceClassID_UUID16: USHORT = 0x110C;
+pub const AVRemoteControlServiceClassID_UUID16: USHORT = 0x110E;
+pub const AVRemoteControlControllerServiceClass_UUID16: USHORT = 0x110F;
+pub const IntercomServiceClassID_UUID16: USHORT = 0x1110;
+pub const FaxServiceClassID_UUID16: USHORT = 0x1111;
+pub const HeadsetAudioGatewayServiceClassID_UUID16: USHORT = 0x1112;
+pub const WAPServiceClassID_UUID16: USHORT = 0x1113;
+pub const WAPClientServiceClassID_UUID16: USHORT = 0x1114;
+pub const PANUServiceClassID_UUID16: USHORT = 0x1115;
+pub const NAPServiceClassID_UUID16: USHORT = 0x1116;
+pub const GNServiceClassID_UUID16: USHORT = 0x1117;
+pub const DirectPrintingServiceClassID_UUID16: USHORT = 0x1118;
+pub const ReferencePrintingServiceClassID_UUID16: USHORT = 0x1119;
+pub const ImagingResponderServiceClassID_UUID16: USHORT = 0x111B;
+pub const ImagingAutomaticArchiveServiceClassID_UUID16: USHORT = 0x111C;
+pub const ImagingReferenceObjectsServiceClassID_UUID16: USHORT = 0x111D;
+pub const HandsfreeServiceClassID_UUID16: USHORT = 0x111E;
+pub const HandsfreeAudioGatewayServiceClassID_UUID16: USHORT = 0x111F;
+pub const DirectPrintingReferenceObjectsServiceClassID_UUID16: USHORT = 0x1120;
+pub const ReflectsUIServiceClassID_UUID16: USHORT = 0x1121;
+pub const PrintingStatusServiceClassID_UUID16: USHORT = 0x1123;
+pub const HumanInterfaceDeviceServiceClassID_UUID16: USHORT = 0x1124;
+pub const HCRPrintServiceClassID_UUID16: USHORT = 0x1126;
+pub const HCRScanServiceClassID_UUID16: USHORT = 0x1127;
+pub const CommonISDNAccessServiceClassID_UUID16: USHORT = 0x1128;
+pub const VideoConferencingGWServiceClassID_UUID16: USHORT = 0x1129;
+pub const UDIMTServiceClassID_UUID16: USHORT = 0x112A;
+pub const UDITAServiceClassID_UUID16: USHORT = 0x112B;
+pub const AudioVideoServiceClassID_UUID16: USHORT = 0x112C;
+pub const SimAccessServiceClassID_UUID16: USHORT = 0x112D;
+pub const PhonebookAccessPceServiceClassID_UUID16: USHORT = 0x112E;
+pub const PhonebookAccessPseServiceClassID_UUID16: USHORT = 0x112F;
+pub const HeadsetHSServiceClassID_UUID16: USHORT = 0x1131;
+pub const MessageAccessServerServiceClassID_UUID16: USHORT = 0x1132;
+pub const MessageNotificationServerServiceClassID_UUID16: USHORT = 0x1133;
+pub const GNSSServerServiceClassID_UUID16: USHORT = 0x1136;
+pub const ThreeDimensionalDisplayServiceClassID_UUID16: USHORT = 0x1137;
+pub const ThreeDimensionalGlassesServiceClassID_UUID16: USHORT = 0x1138;
+pub const MPSServiceClassID_UUID16: USHORT = 0x113B;
+pub const CTNAccessServiceClassID_UUID16: USHORT = 0x113C;
+pub const CTNNotificationServiceClassID_UUID16: USHORT = 0x113D;
+pub const PnPInformationServiceClassID_UUID16: USHORT = 0x1200;
+pub const GenericNetworkingServiceClassID_UUID16: USHORT = 0x1201;
+pub const GenericFileTransferServiceClassID_UUID16: USHORT = 0x1202;
+pub const GenericAudioServiceClassID_UUID16: USHORT = 0x1203;
+pub const GenericTelephonyServiceClassID_UUID16: USHORT = 0x1204;
+pub const UPnpServiceClassID_UUID16: USHORT = 0x1205;
+pub const UPnpIpServiceClassID_UUID16: USHORT = 0x1206;
+pub const ESdpUpnpIpPanServiceClassID_UUID16: USHORT = 0x1300;
+pub const ESdpUpnpIpLapServiceClassID_UUID16: USHORT = 0x1301;
+pub const ESdpUpnpL2capServiceClassID_UUID16: USHORT = 0x1302;
+pub const VideoSourceServiceClassID_UUID16: USHORT = 0x1303;
+pub const VideoSinkServiceClassID_UUID16: USHORT = 0x1304;
+pub const HealthDeviceProfileSourceServiceClassID_UUID16: USHORT = 0x1401;
+pub const HealthDeviceProfileSinkServiceClassID_UUID16: USHORT = 0x1402;
+DEFINE_BLUETOOTH_UUID128!{ServiceDiscoveryServerServiceClassID_UUID,
+ ServiceDiscoveryServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BrowseGroupDescriptorServiceClassID_UUID,
+ BrowseGroupDescriptorServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PublicBrowseGroupServiceClass_UUID,
+ PublicBrowseGroupServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{SerialPortServiceClass_UUID,
+ SerialPortServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{LANAccessUsingPPPServiceClass_UUID,
+ LANAccessUsingPPPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DialupNetworkingServiceClass_UUID,
+ DialupNetworkingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IrMCSyncServiceClass_UUID,
+ IrMCSyncServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEXObjectPushServiceClass_UUID,
+ OBEXObjectPushServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{OBEXFileTransferServiceClass_UUID,
+ OBEXFileTransferServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IrMCSyncCommandServiceClass_UUID,
+ IrMcSyncCommandServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetServiceClass_UUID,
+ HeadsetServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CordlessTelephonyServiceClass_UUID,
+ CordlessTelephonyServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioSourceServiceClass_UUID,
+ AudioSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioSinkServiceClass_UUID,
+ AudioSinkServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlTargetServiceClass_UUID,
+ AVRemoteControlTargetServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlServiceClass_UUID,
+ AVRemoteControlServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AVRemoteControlControllerServiceClass_UUID,
+ AVRemoteControlControllerServiceClass_UUID16}
+DEFINE_BLUETOOTH_UUID128!{IntercomServiceClass_UUID,
+ IntercomServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{FaxServiceClass_UUID,
+ FaxServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetAudioGatewayServiceClass_UUID,
+ HeadsetAudioGatewayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WAPServiceClass_UUID,
+ WAPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{WAPClientServiceClass_UUID,
+ WAPClientServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PANUServiceClass_UUID,
+ PANUServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{NAPServiceClass_UUID,
+ NAPServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNServiceClass_UUID,
+ GNServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DirectPrintingServiceClass_UUID,
+ DirectPrintingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ReferencePrintingServiceClass_UUID,
+ ReferencePrintingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingResponderServiceClass_UUID,
+ ImagingResponderServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingAutomaticArchiveServiceClass_UUID,
+ ImagingAutomaticArchiveServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingReferenceObjectsServiceClass_UUID,
+ ImagingReferenceObjectsServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HandsfreeServiceClass_UUID,
+ HandsfreeServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HandsfreeAudioGatewayServiceClass_UUID,
+ HandsfreeAudioGatewayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{DirectPrintingReferenceObjectsServiceClass_UUID,
+ DirectPrintingReferenceObjectsServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ReflectedUIServiceClass_UUID,
+ ReflectsUIServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PrintingStatusServiceClass_UUID,
+ PrintingStatusServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HumanInterfaceDeviceServiceClass_UUID,
+ HumanInterfaceDeviceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCRPrintServiceClass_UUID,
+ HCRPrintServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HCRScanServiceClass_UUID,
+ HCRScanServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CommonISDNAccessServiceClass_UUID,
+ CommonISDNAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoConferencingGWServiceClass_UUID,
+ VideoConferencingGWServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDIMTServiceClass_UUID,
+ UDIMTServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UDITAServiceClass_UUID,
+ UDITAServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{AudioVideoServiceClass_UUID,
+ AudioVideoServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{SimAccessServiceClass_UUID,
+ SimAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessPceServiceClass_UUID,
+ PhonebookAccessPceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessPseServiceClass_UUID,
+ PhonebookAccessPseServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HeadsetHSServiceClass_UUID,
+ HeadsetHSServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageAccessServerServiceClass_UUID,
+ MessageAccessServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageNotificationServerServiceClass_UUID,
+ MessageNotificationServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNSSServerServiceClass_UUID,
+ GNSSServerServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalDisplayServiceClass_UUID,
+ ThreeDimensionalDisplayServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalGlassesServiceClass_UUID,
+ ThreeDimensionalGlassesServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MPSServiceClass_UUID,
+ MPSServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNAccessServiceClass_UUID,
+ CTNAccessServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNNotificationServiceClass_UUID,
+ CTNNotificationServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PnPInformationServiceClass_UUID,
+ PnPInformationServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericNetworkingServiceClass_UUID,
+ GenericNetworkingServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericFileTransferServiceClass_UUID,
+ GenericFileTransferServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericAudioServiceClass_UUID,
+ GenericAudioServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GenericTelephonyServiceClass_UUID,
+ GenericTelephonyServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPnpServiceClass_UUID,
+ UPnpServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{UPnpIpServiceClass_UUID,
+ UPnpIpServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpIpPanServiceClass_UUID,
+ ESdpUpnpIpPanServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpIpLapServiceClass_UUID,
+ ESdpUpnpIpLapServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ESdpUpnpL2capServiceClass_UUID,
+ ESdpUpnpL2capServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoSourceServiceClass_UUID,
+ VideoSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoSinkServiceClass_UUID,
+ VideoSinkServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfileSourceServiceClass_UUID,
+ HealthDeviceProfileSourceServiceClassID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfileSinkServiceClass_UUID,
+ HealthDeviceProfileSinkServiceClassID_UUID16}
+pub const AdvancedAudioDistributionProfileID_UUID16: USHORT = 0x110D;
+pub const ImagingServiceProfileID_UUID16: USHORT = 0x111A;
+pub const BasicPrintingProfileID_UUID16: USHORT = 0x1122;
+pub const HardcopyCableReplacementProfileID_UUID16: USHORT = 0x1125;
+pub const PhonebookAccessProfileID_UUID16: USHORT = 0x1130;
+pub const MessageAccessProfileID_UUID16: USHORT = 0x1134;
+pub const GNSSProfileID_UUID16: USHORT = 0x1135;
+pub const ThreeDimensionalSynchronizationProfileID_UUID16: USHORT = 0x1139;
+pub const MPSProfileID_UUID16: USHORT = 0x113A;
+pub const CTNProfileID_UUID16: USHORT = 0x113E;
+pub const VideoDistributionProfileID_UUID16: USHORT = 0x1305;
+pub const HealthDeviceProfileID_UUID16: USHORT = 0x1400;
+DEFINE_BLUETOOTH_UUID128!{AdvancedAudioDistributionProfile_UUID,
+ AdvancedAudioDistributionProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ImagingServiceProfile_UUID,
+ ImagingServiceProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{BasicPrintingProfile_UUID,
+ BasicPrintingProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HardcopyCableReplacementProfile_UUID,
+ HardcopyCableReplacementProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{PhonebookAccessProfile_UUID,
+ PhonebookAccessProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MessageAccessProfile_UUID,
+ MessageAccessProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{GNSSProfile_UUID,
+ GNSSProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{ThreeDimensionalSynchronizationProfile_UUID,
+ ThreeDimensionalSynchronizationProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{MPSProfile_UUID,
+ MPSProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{CTNProfile_UUID,
+ CTNProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{VideoDistributionProfile_UUID,
+ VideoDistributionProfileID_UUID16}
+DEFINE_BLUETOOTH_UUID128!{HealthDeviceProfile_UUID,
+ HealthDeviceProfileID_UUID16}
+pub const VideoConferencingServiceClass_UUID: GUID = AVRemoteControlControllerServiceClass_UUID;
+pub const VideoConferencingServiceClassID_UUID16: USHORT
+ = AVRemoteControlControllerServiceClass_UUID16;
+pub const HN_PROTOCOL_UUID: GUID = HCN_PROTOCOL_UUID;
+pub const BasicPringingServiceClass_UUID: GUID = BasicPrintingProfile_UUID;
+pub const CommonISDNAccessServiceClass_UUID16: USHORT = CommonISDNAccessServiceClassID_UUID16;
+pub const VideoConferencingGWServiceClass_UUID16: USHORT
+ = VideoConferencingGWServiceClassID_UUID16;
+pub const UDIMTServiceClass_UUID16: USHORT = UDIMTServiceClassID_UUID16;
+pub const UDITAServiceClass_UUID16: USHORT = UDITAServiceClassID_UUID16;
+pub const AudioVideoServiceClass_UUID16: USHORT = AudioVideoServiceClassID_UUID16;
+pub const CordlessServiceClassID_UUID16: USHORT = CordlessTelephonyServiceClassID_UUID16;
+pub const AudioSinkSourceServiceClassID_UUID16: USHORT = AudioSinkServiceClassID_UUID16;
+pub const AdvancedAudioDistributionServiceClassID_UUID16: USHORT
+ = AdvancedAudioDistributionProfileID_UUID16;
+pub const ImagingServiceClassID_UUID16: USHORT = ImagingServiceProfileID_UUID16;
+pub const BasicPrintingServiceClassID_UUID16: USHORT = BasicPrintingProfileID_UUID16;
+pub const HardcopyCableReplacementServiceClassID_UUID16: USHORT
+ = HardcopyCableReplacementProfileID_UUID16;
+pub const AdvancedAudioDistributionServiceClass_UUID: GUID = AdvancedAudioDistributionProfile_UUID;
+pub const ImagingServiceClass_UUID: GUID = ImagingServiceProfile_UUID;
+pub const BasicPrintingServiceClass_UUID: GUID = BasicPrintingProfile_UUID;
+pub const HardcopyCableReplacementServiceClass_UUID: GUID = HardcopyCableReplacementProfile_UUID;
+pub const VideoDistributionServiceClass_UUID: GUID = VideoDistributionProfile_UUID;
+pub const BTH_MAX_NAME_SIZE: usize = 248;
+pub const BTH_MAX_PIN_SIZE: usize = 16;
+pub const BTH_LINK_KEY_LENGTH: usize = 16;
+pub const BTH_MFG_ERICSSON: u16 = 0;
+pub const BTH_MFG_NOKIA: u16 = 1;
+pub const BTH_MFG_INTEL: u16 = 2;
+pub const BTH_MFG_IBM: u16 = 3;
+pub const BTH_MFG_TOSHIBA: u16 = 4;
+pub const BTH_MFG_3COM: u16 = 5;
+pub const BTH_MFG_MICROSOFT: u16 = 6;
+pub const BTH_MFG_LUCENT: u16 = 7;
+pub const BTH_MFG_MOTOROLA: u16 = 8;
+pub const BTH_MFG_INFINEON: u16 = 9;
+pub const BTH_MFG_CSR: u16 = 10;
+pub const BTH_MFG_SILICONWAVE: u16 = 11;
+pub const BTH_MFG_DIGIANSWER: u16 = 12;
+pub const BTH_MFG_TI: u16 = 13;
+pub const BTH_MFG_PARTHUS: u16 = 14;
+pub const BTH_MFG_BROADCOM: u16 = 15;
+pub const BTH_MFG_MITEL: u16 = 16;
+pub const BTH_MFG_WIDCOMM: u16 = 17;
+pub const BTH_MFG_ZEEVO: u16 = 18;
+pub const BTH_MFG_ATMEL: u16 = 19;
+pub const BTH_MFG_MITSIBUSHI: u16 = 20;
+pub const BTH_MFG_RTX_TELECOM: u16 = 21;
+pub const BTH_MFG_KC_TECHNOLOGY: u16 = 22;
+pub const BTH_MFG_NEWLOGIC: u16 = 23;
+pub const BTH_MFG_TRANSILICA: u16 = 24;
+pub const BTH_MFG_ROHDE_SCHWARZ: u16 = 25;
+pub const BTH_MFG_TTPCOM: u16 = 26;
+pub const BTH_MFG_SIGNIA: u16 = 27;
+pub const BTH_MFG_CONEXANT: u16 = 28;
+pub const BTH_MFG_QUALCOMM: u16 = 29;
+pub const BTH_MFG_INVENTEL: u16 = 30;
+pub const BTH_MFG_AVM_BERLIN: u16 = 31;
+pub const BTH_MFG_BANDSPEED: u16 = 32;
+pub const BTH_MFG_MANSELLA: u16 = 33;
+pub const BTH_MFG_NEC: u16 = 34;
+pub const BTH_MFG_WAVEPLUS_TECHNOLOGY_CO: u16 = 35;
+pub const BTH_MFG_ALCATEL: u16 = 36;
+pub const BTH_MFG_PHILIPS_SEMICONDUCTOR: u16 = 37;
+pub const BTH_MFG_C_TECHNOLOGIES: u16 = 38;
+pub const BTH_MFG_OPEN_INTERFACE: u16 = 39;
+pub const BTH_MFG_RF_MICRO_DEVICES: u16 = 40;
+pub const BTH_MFG_HITACHI: u16 = 41;
+pub const BTH_MFG_SYMBOL_TECHNOLOGIES: u16 = 42;
+pub const BTH_MFG_TENOVIS: u16 = 43;
+pub const BTH_MFG_MACRONIX_INTERNATIONAL: u16 = 44;
+pub const BTH_MFG_APPLE: u16 = 76;
+pub const BTH_MFG_NORDIC_SEMICONDUCTORS_ASA: u16 = 89;
+pub const BTH_MFG_ARUBA_NETWORKS: u16 = 283;
+pub const BTH_MFG_INTERNAL_USE: u16 = 65535;
+pub type BTH_ADDR = ULONGLONG;
+pub type PBTH_ADDR = *mut ULONGLONG;
+pub type BTH_COD = ULONG;
+pub type PBTH_COD = *mut ULONG;
+pub type BTH_LAP = ULONG;
+pub type PBTH_LAP = *mut ULONG;
+pub const BTH_ADDR_NULL: BTH_ADDR = 0x0000000000000000;
+pub const NAP_MASK: u64 = 0xFFFF00000000;
+pub const SAP_MASK: u64 = 0x0000FFFFFFFF;
+pub const NAP_BIT_OFFSET: u8 = 8 * 4;
+pub const SAP_BIT_OFFSET: u8 = 0;
+#[inline]
+pub fn GET_NAP(addr: BTH_ADDR) -> u16 {
+ ((addr & NAP_MASK) >> NAP_BIT_OFFSET) as u16
+}
+#[inline]
+pub fn GET_SAP(addr: BTH_ADDR) -> u32 {
+ ((addr & SAP_MASK) >> SAP_BIT_OFFSET) as u32
+}
+#[inline]
+pub fn SET_NAP(nap: u16) -> BTH_ADDR {
+ (nap as u64) << NAP_BIT_OFFSET
+}
+#[inline]
+pub fn SET_SAP(sap: u32) -> BTH_ADDR {
+ (sap as u64) << SAP_BIT_OFFSET
+}
+#[inline]
+pub fn SET_NAP_SAP(nap: u16, sap: u32) -> BTH_ADDR {
+ SET_NAP(nap) | SET_SAP(sap)
+}
+pub const COD_FORMAT_BIT_OFFSET: u8 = 0;
+pub const COD_MINOR_BIT_OFFSET: u8 = 2;
+pub const COD_MAJOR_BIT_OFFSET: u8 = 8 * 1;
+pub const COD_SERVICE_BIT_OFFSET: u8 = 8 * 1 + 5;
+pub const COD_FORMAT_MASK: u32 = 0x000003;
+pub const COD_MINOR_MASK: u32 = 0x0000FC;
+pub const COD_MAJOR_MASK: u32 = 0x001F00;
+pub const COD_SERVICE_MASK: u32 = 0xFFE000;
+#[inline]
+pub fn GET_COD_FORMAT(cod: BTH_COD) -> u8 {
+ ((cod & COD_FORMAT_MASK) >> COD_FORMAT_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_MINOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_MINOR_MASK) >> COD_MINOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_MAJOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_MAJOR_MASK) >> COD_MAJOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_SERVICE(cod: BTH_COD) -> u16 {
+ ((cod & COD_SERVICE_MASK) >> COD_SERVICE_BIT_OFFSET) as u16
+}
+#[inline]
+pub fn SET_COD_MINOR(cod: BTH_COD, minor: u8) -> BTH_COD {
+ (cod & !COD_MINOR_MASK) | ((minor as u32) << COD_MINOR_BIT_OFFSET)
+}
+#[inline]
+pub fn SET_COD_MAJOR(cod: BTH_COD, major: u8) -> BTH_COD {
+ (cod & !COD_MAJOR_MASK) | ((major as u32) << COD_MAJOR_BIT_OFFSET)
+}
+#[inline]
+pub fn SET_COD_SERVICE(cod: BTH_COD, service: u16) -> BTH_COD {
+ (cod & !COD_SERVICE_MASK) | ((service as u32) << COD_SERVICE_BIT_OFFSET)
+}
+pub const COD_VERSION: u32 = 0x0;
+pub const COD_SERVICE_LIMITED: u16 = 0x0001;
+pub const COD_SERVICE_POSITIONING: u16 = 0x0008;
+pub const COD_SERVICE_NETWORKING: u16 = 0x0010;
+pub const COD_SERVICE_RENDERING: u16 = 0x0020;
+pub const COD_SERVICE_CAPTURING: u16 = 0x0040;
+pub const COD_SERVICE_OBJECT_XFER: u16 = 0x0080;
+pub const COD_SERVICE_AUDIO: u16 = 0x0100;
+pub const COD_SERVICE_TELEPHONY: u16 = 0x0200;
+pub const COD_SERVICE_INFORMATION: u16 = 0x0400;
+pub const COD_SERVICE_VALID_MASK: u16 = COD_SERVICE_LIMITED | COD_SERVICE_POSITIONING
+ | COD_SERVICE_NETWORKING | COD_SERVICE_RENDERING | COD_SERVICE_CAPTURING
+ | COD_SERVICE_OBJECT_XFER | COD_SERVICE_AUDIO | COD_SERVICE_TELEPHONY
+ | COD_SERVICE_INFORMATION;
+pub const COD_SERVICE_MAX_COUNT: usize = 9;
+pub const COD_MAJOR_MISCELLANEOUS: u8 = 0x00;
+pub const COD_MAJOR_COMPUTER: u8 = 0x01;
+pub const COD_MAJOR_PHONE: u8 = 0x02;
+pub const COD_MAJOR_LAN_ACCESS: u8 = 0x03;
+pub const COD_MAJOR_AUDIO: u8 = 0x04;
+pub const COD_MAJOR_PERIPHERAL: u8 = 0x05;
+pub const COD_MAJOR_IMAGING: u8 = 0x06;
+pub const COD_MAJOR_WEARABLE: u8 = 0x07;
+pub const COD_MAJOR_TOY: u8 = 0x08;
+pub const COD_MAJOR_HEALTH: u8 = 0x09;
+pub const COD_MAJOR_UNCLASSIFIED: u8 = 0x1F;
+pub const COD_COMPUTER_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_COMPUTER_MINOR_DESKTOP: u8 = 0x01;
+pub const COD_COMPUTER_MINOR_SERVER: u8 = 0x02;
+pub const COD_COMPUTER_MINOR_LAPTOP: u8 = 0x03;
+pub const COD_COMPUTER_MINOR_HANDHELD: u8 = 0x04;
+pub const COD_COMPUTER_MINOR_PALM: u8 = 0x05;
+pub const COD_COMPUTER_MINOR_WEARABLE: u8 = 0x06;
+pub const COD_PHONE_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_PHONE_MINOR_CELLULAR: u8 = 0x01;
+pub const COD_PHONE_MINOR_CORDLESS: u8 = 0x02;
+pub const COD_PHONE_MINOR_SMART: u8 = 0x03;
+pub const COD_PHONE_MINOR_WIRED_MODEM: u8 = 0x04;
+pub const COD_AUDIO_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_AUDIO_MINOR_HEADSET: u8 = 0x01;
+pub const COD_AUDIO_MINOR_HANDS_FREE: u8 = 0x02;
+pub const COD_AUDIO_MINOR_HEADSET_HANDS_FREE: u8 = 0x03;
+pub const COD_AUDIO_MINOR_MICROPHONE: u8 = 0x04;
+pub const COD_AUDIO_MINOR_LOUDSPEAKER: u8 = 0x05;
+pub const COD_AUDIO_MINOR_HEADPHONES: u8 = 0x06;
+pub const COD_AUDIO_MINOR_PORTABLE_AUDIO: u8 = 0x07;
+pub const COD_AUDIO_MINOR_CAR_AUDIO: u8 = 0x08;
+pub const COD_AUDIO_MINOR_SET_TOP_BOX: u8 = 0x09;
+pub const COD_AUDIO_MINOR_HIFI_AUDIO: u8 = 0x0A;
+pub const COD_AUDIO_MINOR_VCR: u8 = 0x0B;
+pub const COD_AUDIO_MINOR_VIDEO_CAMERA: u8 = 0x0C;
+pub const COD_AUDIO_MINOR_CAMCORDER: u8 = 0x0D;
+pub const COD_AUDIO_MINOR_VIDEO_MONITOR: u8 = 0x0E;
+pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_LOUDSPEAKER: u8 = 0x0F;
+pub const COD_AUDIO_MINOR_VIDEO_DISPLAY_CONFERENCING: u8 = 0x10;
+pub const COD_AUDIO_MINOR_GAMING_TOY: u8 = 0x12;
+pub const COD_PERIPHERAL_MINOR_KEYBOARD_MASK: u8 = 0x10;
+pub const COD_PERIPHERAL_MINOR_POINTER_MASK: u8 = 0x20;
+pub const COD_PERIPHERAL_MINOR_NO_CATEGORY: u8 = 0x00;
+pub const COD_PERIPHERAL_MINOR_JOYSTICK: u8 = 0x01;
+pub const COD_PERIPHERAL_MINOR_GAMEPAD: u8 = 0x02;
+pub const COD_PERIPHERAL_MINOR_REMOTE_CONTROL: u8 = 0x03;
+pub const COD_PERIPHERAL_MINOR_SENSING: u8 = 0x04;
+pub const COD_IMAGING_MINOR_DISPLAY_MASK: u8 = 0x04;
+pub const COD_IMAGING_MINOR_CAMERA_MASK: u8 = 0x08;
+pub const COD_IMAGING_MINOR_SCANNER_MASK: u8 = 0x10;
+pub const COD_IMAGING_MINOR_PRINTER_MASK: u8 = 0x20;
+pub const COD_WEARABLE_MINOR_WRIST_WATCH: u8 = 0x01;
+pub const COD_WEARABLE_MINOR_PAGER: u8 = 0x02;
+pub const COD_WEARABLE_MINOR_JACKET: u8 = 0x03;
+pub const COD_WEARABLE_MINOR_HELMET: u8 = 0x04;
+pub const COD_WEARABLE_MINOR_GLASSES: u8 = 0x05;
+pub const COD_TOY_MINOR_ROBOT: u8 = 0x01;
+pub const COD_TOY_MINOR_VEHICLE: u8 = 0x02;
+pub const COD_TOY_MINOR_DOLL_ACTION_FIGURE: u8 = 0x03;
+pub const COD_TOY_MINOR_CONTROLLER: u8 = 0x04;
+pub const COD_TOY_MINOR_GAME: u8 = 0x05;
+pub const COD_HEALTH_MINOR_BLOOD_PRESSURE_MONITOR: u8 = 0x01;
+pub const COD_HEALTH_MINOR_THERMOMETER: u8 = 0x02;
+pub const COD_HEALTH_MINOR_WEIGHING_SCALE: u8 = 0x03;
+pub const COD_HEALTH_MINOR_GLUCOSE_METER: u8 = 0x04;
+pub const COD_HEALTH_MINOR_PULSE_OXIMETER: u8 = 0x05;
+pub const COD_HEALTH_MINOR_HEART_PULSE_MONITOR: u8 = 0x06;
+pub const COD_HEALTH_MINOR_HEALTH_DATA_DISPLAY: u8 = 0x07;
+pub const COD_HEALTH_MINOR_STEP_COUNTER: u8 = 0x08;
+pub const COD_LAN_ACCESS_BIT_OFFSET: u8 = 5;
+pub const COD_LAN_MINOR_MASK: u32 = 0x00001C;
+pub const COD_LAN_ACCESS_MASK: u32 = 0x0000E0;
+#[inline]
+pub fn GET_COD_LAN_MINOR(cod: BTH_COD) -> u8 {
+ ((cod & COD_LAN_MINOR_MASK) >> COD_MINOR_BIT_OFFSET) as u8
+}
+#[inline]
+pub fn GET_COD_LAN_ACCESS(cod: BTH_COD) -> u8 {
+ ((cod & COD_LAN_ACCESS_MASK) >> COD_LAN_ACCESS_BIT_OFFSET) as u8
+}
+pub const COD_LAN_MINOR_UNCLASSIFIED: u8 = 0x00;
+pub const COD_LAN_ACCESS_0_USED: u8 = 0x00;
+pub const COD_LAN_ACCESS_17_USED: u8 = 0x01;
+pub const COD_LAN_ACCESS_33_USED: u8 = 0x02;
+pub const COD_LAN_ACCESS_50_USED: u8 = 0x03;
+pub const COD_LAN_ACCESS_67_USED: u8 = 0x04;
+pub const COD_LAN_ACCESS_83_USED: u8 = 0x05;
+pub const COD_LAN_ACCESS_99_USED: u8 = 0x06;
+pub const COD_LAN_ACCESS_FULL: u8 = 0x07;
+pub const BTH_EIR_FLAGS_ID: u8 = 0x01;
+pub const BTH_EIR_16_UUIDS_PARTIAL_ID: u8 = 0x02;
+pub const BTH_EIR_16_UUIDS_COMPLETE_ID: u8 = 0x03;
+pub const BTH_EIR_32_UUIDS_PARTIAL_ID: u8 = 0x04;
+pub const BTH_EIR_32_UUIDS_COMPLETE_ID: u8 = 0x05;
+pub const BTH_EIR_128_UUIDS_PARTIAL_ID: u8 = 0x06;
+pub const BTH_EIR_128_UUIDS_COMPLETE_ID: u8 = 0x07;
+pub const BTH_EIR_LOCAL_NAME_PARTIAL_ID: u8 = 0x08;
+pub const BTH_EIR_LOCAL_NAME_COMPLETE_ID: u8 = 0x09;
+pub const BTH_EIR_TX_POWER_LEVEL_ID: u8 = 0x0A;
+pub const BTH_EIR_OOB_OPT_DATA_LEN_ID: u8 = 0x0B;
+pub const BTH_EIR_OOB_BD_ADDR_ID: u8 = 0x0C;
+pub const BTH_EIR_OOB_COD_ID: u8 = 0x0D;
+pub const BTH_EIR_OOB_SP_HASH_ID: u8 = 0x0E;
+pub const BTH_EIR_OOB_SP_RANDOMIZER_ID: u8 = 0x0F;
+pub const BTH_EIR_MANUFACTURER_ID: u8 = 0xFF;
+pub const BTH_EIR_SIZE: usize = 240;
+// #define LAP_GIAC_INIT { 0x33, 0x8B, 0x9E }
+// #define LAP_LIAC_INIT { 0x00, 0x8B, 0x9E }
+pub const LAP_GIAC_VALUE: BTH_LAP = 0x009E8B33;
+pub const LAP_LIAC_VALUE: BTH_LAP = 0x009E8B00;
+pub const BTH_ADDR_IAC_FIRST: BTH_ADDR = 0x9E8B00;
+pub const BTH_ADDR_IAC_LAST: BTH_ADDR = 0x9E8B3f;
+pub const BTH_ADDR_LIAC: BTH_ADDR = 0x9E8B00;
+pub const BTH_ADDR_GIAC: BTH_ADDR = 0x9E8B33;
+pub type BTHSTATUS = UCHAR;
+pub type PBTHSTATUS = *mut UCHAR;
+#[inline]
+pub fn BTH_ERROR(btStatus: BTHSTATUS) -> bool {
+ btStatus != BTH_ERROR_SUCCESS
+}
+#[inline]
+pub fn BTH_SUCCESS(btStatus: BTHSTATUS) -> bool {
+ btStatus == BTH_ERROR_SUCCESS
+}
+pub const BTH_ERROR_SUCCESS: BTHSTATUS = 0x00;
+pub const BTH_ERROR_UNKNOWN_HCI_COMMAND: BTHSTATUS = 0x01;
+pub const BTH_ERROR_NO_CONNECTION: BTHSTATUS = 0x02;
+pub const BTH_ERROR_HARDWARE_FAILURE: BTHSTATUS = 0x03;
+pub const BTH_ERROR_PAGE_TIMEOUT: BTHSTATUS = 0x04;
+pub const BTH_ERROR_AUTHENTICATION_FAILURE: BTHSTATUS = 0x05;
+pub const BTH_ERROR_KEY_MISSING: BTHSTATUS = 0x06;
+pub const BTH_ERROR_MEMORY_FULL: BTHSTATUS = 0x07;
+pub const BTH_ERROR_CONNECTION_TIMEOUT: BTHSTATUS = 0x08;
+pub const BTH_ERROR_MAX_NUMBER_OF_CONNECTIONS: BTHSTATUS = 0x09;
+pub const BTH_ERROR_MAX_NUMBER_OF_SCO_CONNECTIONS: BTHSTATUS = 0x0a;
+pub const BTH_ERROR_ACL_CONNECTION_ALREADY_EXISTS: BTHSTATUS = 0x0b;
+pub const BTH_ERROR_COMMAND_DISALLOWED: BTHSTATUS = 0x0c;
+pub const BTH_ERROR_HOST_REJECTED_LIMITED_RESOURCES: BTHSTATUS = 0x0d;
+pub const BTH_ERROR_HOST_REJECTED_SECURITY_REASONS: BTHSTATUS = 0x0e;
+pub const BTH_ERROR_HOST_REJECTED_PERSONAL_DEVICE: BTHSTATUS = 0x0f;
+pub const BTH_ERROR_HOST_TIMEOUT: BTHSTATUS = 0x10;
+pub const BTH_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER: BTHSTATUS = 0x11;
+pub const BTH_ERROR_INVALID_HCI_PARAMETER: BTHSTATUS = 0x12;
+pub const BTH_ERROR_REMOTE_USER_ENDED_CONNECTION: BTHSTATUS = 0x13;
+pub const BTH_ERROR_REMOTE_LOW_RESOURCES: BTHSTATUS = 0x14;
+pub const BTH_ERROR_REMOTE_POWERING_OFF: BTHSTATUS = 0x15;
+pub const BTH_ERROR_LOCAL_HOST_TERMINATED_CONNECTION: BTHSTATUS = 0x16;
+pub const BTH_ERROR_REPEATED_ATTEMPTS: BTHSTATUS = 0x17;
+pub const BTH_ERROR_PAIRING_NOT_ALLOWED: BTHSTATUS = 0x18;
+pub const BTH_ERROR_UKNOWN_LMP_PDU: BTHSTATUS = 0x19;
+pub const BTH_ERROR_UNSUPPORTED_REMOTE_FEATURE: BTHSTATUS = 0x1a;
+pub const BTH_ERROR_SCO_OFFSET_REJECTED: BTHSTATUS = 0x1b;
+pub const BTH_ERROR_SCO_INTERVAL_REJECTED: BTHSTATUS = 0x1c;
+pub const BTH_ERROR_SCO_AIRMODE_REJECTED: BTHSTATUS = 0x1d;
+pub const BTH_ERROR_INVALID_LMP_PARAMETERS: BTHSTATUS = 0x1e;
+pub const BTH_ERROR_UNSPECIFIED_ERROR: BTHSTATUS = 0x1f;
+pub const BTH_ERROR_UNSUPPORTED_LMP_PARM_VALUE: BTHSTATUS = 0x20;
+pub const BTH_ERROR_ROLE_CHANGE_NOT_ALLOWED: BTHSTATUS = 0x21;
+pub const BTH_ERROR_LMP_RESPONSE_TIMEOUT: BTHSTATUS = 0x22;
+pub const BTH_ERROR_LMP_TRANSACTION_COLLISION: BTHSTATUS = 0x23;
+pub const BTH_ERROR_LMP_PDU_NOT_ALLOWED: BTHSTATUS = 0x24;
+pub const BTH_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE: BTHSTATUS = 0x25;
+pub const BTH_ERROR_UNIT_KEY_NOT_USED: BTHSTATUS = 0x26;
+pub const BTH_ERROR_QOS_IS_NOT_SUPPORTED: BTHSTATUS = 0x27;
+pub const BTH_ERROR_INSTANT_PASSED: BTHSTATUS = 0x28;
+pub const BTH_ERROR_PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED: BTHSTATUS = 0x29;
+pub const BTH_ERROR_DIFFERENT_TRANSACTION_COLLISION: BTHSTATUS = 0x2a;
+pub const BTH_ERROR_QOS_UNACCEPTABLE_PARAMETER: BTHSTATUS = 0x2c;
+pub const BTH_ERROR_QOS_REJECTED: BTHSTATUS = 0x2d;
+pub const BTH_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED: BTHSTATUS = 0x2e;
+pub const BTH_ERROR_INSUFFICIENT_SECURITY: BTHSTATUS = 0x2f;
+pub const BTH_ERROR_PARAMETER_OUT_OF_MANDATORY_RANGE: BTHSTATUS = 0x30;
+pub const BTH_ERROR_ROLE_SWITCH_PENDING: BTHSTATUS = 0x32;
+pub const BTH_ERROR_RESERVED_SLOT_VIOLATION: BTHSTATUS = 0x34;
+pub const BTH_ERROR_ROLE_SWITCH_FAILED: BTHSTATUS = 0x35;
+pub const BTH_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE: BTHSTATUS = 0x36;
+pub const BTH_ERROR_SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST: BTHSTATUS = 0x37;
+pub const BTH_ERROR_HOST_BUSY_PAIRING: BTHSTATUS = 0x38;
+pub const BTH_ERROR_CONNECTION_REJECTED_DUE_TO_NO_SUITABLE_CHANNEL_FOUND: BTHSTATUS = 0x39;
+pub const BTH_ERROR_CONTROLLER_BUSY: BTHSTATUS = 0x3a;
+pub const BTH_ERROR_UNACCEPTABLE_CONNECTION_INTERVAL: BTHSTATUS = 0x3b;
+pub const BTH_ERROR_DIRECTED_ADVERTISING_TIMEOUT: BTHSTATUS = 0x3c;
+pub const BTH_ERROR_CONNECTION_TERMINATED_DUE_TO_MIC_FAILURE: BTHSTATUS = 0x3d;
+pub const BTH_ERROR_CONNECTION_FAILED_TO_BE_ESTABLISHED: BTHSTATUS = 0x3e;
+pub const BTH_ERROR_MAC_CONNECTION_FAILED: BTHSTATUS = 0x3f;
+pub const BTH_ERROR_UNSPECIFIED: BTHSTATUS = 0xFF;
+pub const L2CAP_MIN_MTU: u16 = 48;
+pub const L2CAP_MAX_MTU: u16 = 0xFFFF;
+pub const L2CAP_DEFAULT_MTU: u16 = 672;
+pub const MAX_L2CAP_PING_DATA_LENGTH: usize = 44;
+pub const MAX_L2CAP_INFO_DATA_LENGTH: usize = 44;
+pub const BDIF_ADDRESS: u32 = 0x00000001;
+pub const BDIF_COD: u32 = 0x00000002;
+pub const BDIF_NAME: u32 = 0x00000004;
+pub const BDIF_PAIRED: u32 = 0x00000008;
+pub const BDIF_PERSONAL: u32 = 0x00000010;
+pub const BDIF_CONNECTED: u32 = 0x00000020;
+pub const BDIF_SHORT_NAME: u32 = 0x00000040;
+pub const BDIF_VISIBLE: u32 = 0x00000080;
+pub const BDIF_SSP_SUPPORTED: u32 = 0x00000100;
+pub const BDIF_SSP_PAIRED: u32 = 0x00000200;
+pub const BDIF_SSP_MITM_PROTECTED: u32 = 0x00000400;
+pub const BDIF_RSSI: u32 = 0x00001000;
+pub const BDIF_EIR: u32 = 0x00002000;
+pub const BDIF_BR: u32 = 0x00004000;
+pub const BDIF_LE: u32 = 0x00008000;
+pub const BDIF_LE_PAIRED: u32 = 0x00010000;
+pub const BDIF_LE_PERSONAL: u32 = 0x00020000;
+pub const BDIF_LE_MITM_PROTECTED: u32 = 0x00040000;
+pub const BDIF_LE_PRIVACY_ENABLED: u32 = 0x00080000;
+pub const BDIF_LE_RANDOM_ADDRESS_TYPE: u32 = 0x00100000;
+pub const BDIF_LE_DISCOVERABLE: u32 = 0x00200000;
+pub const BDIF_LE_NAME: u32 = 0x00400000;
+pub const BDIF_LE_VISIBLE: u32 = 0x00800000;
+pub const BDIF_LE_CONNECTED: u32 = 0x01000000;
+pub const BDIF_LE_CONNECTABLE: u32 = 0x02000000;
+pub const BDIF_CONNECTION_INBOUND: u32 = 0x04000000;
+pub const BDIF_BR_SECURE_CONNECTION_PAIRED: u32 = 0x08000000;
+pub const BDIF_LE_SECURE_CONNECTION_PAIRED: u32 = 0x10000000;
+pub const BDIF_VALID_FLAGS: u32 = BDIF_ADDRESS | BDIF_COD | BDIF_NAME | BDIF_PAIRED
+ | BDIF_PERSONAL | BDIF_CONNECTED | BDIF_SHORT_NAME | BDIF_VISIBLE | BDIF_RSSI | BDIF_EIR
+ | BDIF_SSP_PAIRED | BDIF_SSP_MITM_PROTECTED | BDIF_BR | BDIF_LE | BDIF_LE_PAIRED
+ | BDIF_LE_PERSONAL | BDIF_LE_MITM_PROTECTED | BDIF_LE_PRIVACY_ENABLED
+ | BDIF_LE_RANDOM_ADDRESS_TYPE | BDIF_LE_DISCOVERABLE | BDIF_LE_NAME | BDIF_LE_VISIBLE
+ | BDIF_LE_CONNECTED | BDIF_LE_CONNECTABLE | BDIF_CONNECTION_INBOUND
+ | BDIF_BR_SECURE_CONNECTION_PAIRED | BDIF_LE_SECURE_CONNECTION_PAIRED;
+STRUCT!{struct BTH_DEVICE_INFO {
+ flags: ULONG,
+ address: BTH_ADDR,
+ classOfDevice: BTH_COD,
+ name: [CHAR; BTH_MAX_NAME_SIZE],
+}}
+pub type PBTH_DEVICE_INFO = *mut BTH_DEVICE_INFO;
+STRUCT!{struct BTH_RADIO_IN_RANGE {
+ deviceInfo: BTH_DEVICE_INFO,
+ previousDeviceFlags: ULONG,
+}}
+pub type PBTH_RADIO_IN_RANGE = *mut BTH_RADIO_IN_RANGE;
+STRUCT!{struct BTH_L2CAP_EVENT_INFO {
+ bthAddress: BTH_ADDR,
+ psm: USHORT,
+ connected: UCHAR,
+ initiated: UCHAR,
+}}
+pub type PBTH_L2CAP_EVENT_INFO = *mut BTH_L2CAP_EVENT_INFO;
+pub const HCI_CONNECTION_TYPE_ACL: u8 = 1;
+pub const HCI_CONNECTION_TYPE_SCO: u8 = 2;
+pub const HCI_CONNECTION_TYPE_LE: u8 = 3;
+pub const HCI_CONNNECTION_TYPE_ACL: u8 = HCI_CONNECTION_TYPE_ACL;
+pub const HCI_CONNNECTION_TYPE_SCO: u8 = HCI_CONNECTION_TYPE_SCO;
+STRUCT!{struct BTH_HCI_EVENT_INFO {
+ bthAddress: BTH_ADDR,
+ connectionType: UCHAR,
+ connected: UCHAR,
+}}
+pub type PBTH_HCI_EVENT_INFO = *mut BTH_HCI_EVENT_INFO;
+ENUM!{enum IO_CAPABILITY {
+ IoCaps_DisplayOnly = 0x00,
+ IoCaps_DisplayYesNo = 0x01,
+ IoCaps_KeyboardOnly = 0x02,
+ IoCaps_NoInputNoOutput = 0x03,
+ IoCaps_Undefined = 0xff,
+}}
+ENUM!{enum AUTHENTICATION_REQUIREMENTS {
+ MITMProtectionNotRequired = 0x00,
+ MITMProtectionRequired = 0x01,
+ MITMProtectionNotRequiredBonding = 0x02,
+ MITMProtectionRequiredBonding = 0x03,
+ MITMProtectionNotRequiredGeneralBonding = 0x04,
+ MITMProtectionRequiredGeneralBonding = 0x05,
+ MITMProtectionNotDefined = 0xff,
+}}
+#[inline]
+pub fn IsMITMProtectionRequired(requirements: AUTHENTICATION_REQUIREMENTS) -> bool {
+ MITMProtectionRequired == requirements || MITMProtectionRequiredBonding == requirements
+ || MITMProtectionRequiredGeneralBonding == requirements
+}
+pub const BTH_MAX_SERVICE_NAME_SIZE: usize = 256;
+pub const MAX_UUIDS_IN_QUERY: usize = 12;
+pub const BTH_VID_DEFAULT_VALUE: u16 = 0xFFFF;
+pub const SDP_ERROR_INVALID_SDP_VERSION: u16 = 0x0001;
+pub const SDP_ERROR_INVALID_RECORD_HANDLE: u16 = 0x0002;
+pub const SDP_ERROR_INVALID_REQUEST_SYNTAX: u16 = 0x0003;
+pub const SDP_ERROR_INVALID_PDU_SIZE: u16 = 0x0004;
+pub const SDP_ERROR_INVALID_CONTINUATION_STATE: u16 = 0x0005;
+pub const SDP_ERROR_INSUFFICIENT_RESOURCES: u16 = 0x0006;
+pub const SDP_ERROR_SUCCESS: SDP_ERROR = 0x0000;
+pub const SDP_ERROR_SERVER_INVALID_RESPONSE: SDP_ERROR = 0x0100;
+pub const SDP_ERROR_SERVER_RESPONSE_DID_NOT_PARSE: SDP_ERROR = 0x0200;
+pub const SDP_ERROR_SERVER_BAD_FORMAT: SDP_ERROR = 0x0300;
+pub const SDP_ERROR_COULD_NOT_SEND_CONTINUE: SDP_ERROR = 0x0400;
+pub const SDP_ERROR_RESPONSE_TOO_LARGE: SDP_ERROR = 0x0500;
+pub const SDP_ATTRIB_RECORD_HANDLE: u16 = 0x0000;
+pub const SDP_ATTRIB_CLASS_ID_LIST: u16 = 0x0001;
+pub const SDP_ATTRIB_RECORD_STATE: u16 = 0x0002;
+pub const SDP_ATTRIB_SERVICE_ID: u16 = 0x0003;
+pub const SDP_ATTRIB_PROTOCOL_DESCRIPTOR_LIST: u16 = 0x0004;
+pub const SDP_ATTRIB_BROWSE_GROUP_LIST: u16 = 0x0005;
+pub const SDP_ATTRIB_LANG_BASE_ATTRIB_ID_LIST: u16 = 0x0006;
+pub const SDP_ATTRIB_INFO_TIME_TO_LIVE: u16 = 0x0007;
+pub const SDP_ATTRIB_AVAILABILITY: u16 = 0x0008;
+pub const SDP_ATTRIB_PROFILE_DESCRIPTOR_LIST: u16 = 0x0009;
+pub const SDP_ATTRIB_DOCUMENTATION_URL: u16 = 0x000A;
+pub const SDP_ATTRIB_CLIENT_EXECUTABLE_URL: u16 = 0x000B;
+pub const SDP_ATTRIB_ICON_URL: u16 = 0x000C;
+pub const SDP_ATTRIB_ADDITIONAL_PROTOCOL_DESCRIPTOR_LIST: u16 = 0x000D;
+pub const SDP_ATTRIB_PROFILE_SPECIFIC: u16 = 0x0200;
+pub const LANG_BASE_LANGUAGE_INDEX: u16 = 0x0000;
+pub const LANG_BASE_ENCODING_INDEX: u16 = 0x0001;
+pub const LANG_BASE_OFFSET_INDEX: u16 = 0x0002;
+pub const LANG_DEFAULT_ID: u16 = 0x0100;
+pub const LANGUAGE_EN_US: u16 = 0x656E;
+pub const ENCODING_UTF_8: u16 = 0x006A;
+pub const STRING_NAME_OFFSET: u16 = 0x0000;
+pub const STRING_DESCRIPTION_OFFSET: u16 = 0x0001;
+pub const STRING_PROVIDER_NAME_OFFSET: u16 = 0x0002;
+pub const SDP_ATTRIB_SDP_VERSION_NUMBER_LIST: u16 = 0x0200;
+pub const SDP_ATTRIB_SDP_DATABASE_STATE: u16 = 0x0201;
+pub const SDP_ATTRIB_BROWSE_GROUP_ID: u16 = 0x0200;
+pub const SDP_ATTRIB_CORDLESS_EXTERNAL_NETWORK: u16 = 0x0301;
+pub const SDP_ATTRIB_FAX_CLASS_1_SUPPORT: u16 = 0x0302;
+pub const SDP_ATTRIB_FAX_CLASS_2_0_SUPPORT: u16 = 0x0303;
+pub const SDP_ATTRIB_FAX_CLASS_2_SUPPORT: u16 = 0x0304;
+pub const SDP_ATTRIB_FAX_AUDIO_FEEDBACK_SUPPORT: u16 = 0x0305;
+pub const SDP_ATTRIB_HEADSET_REMOTE_AUDIO_VOLUME_CONTROL: u16 = 0x0302;
+pub const SDP_ATTRIB_LAN_LPSUBNET: u16 = 0x0200;
+pub const SDP_ATTRIB_OBJECT_PUSH_SUPPORTED_FORMATS_LIST: u16 = 0x0303;
+pub const SDP_ATTRIB_SYNCH_SUPPORTED_DATA_STORES_LIST: u16 = 0x0301;
+pub const SDP_ATTRIB_SERVICE_VERSION: u16 = 0x0300;
+pub const SDP_ATTRIB_PAN_NETWORK_ADDRESS: u16 = 0x0306;
+pub const SDP_ATTRIB_PAN_WAP_GATEWAY: u16 = 0x0307;
+pub const SDP_ATTRIB_PAN_HOME_PAGE_URL: u16 = 0x0308;
+pub const SDP_ATTRIB_PAN_WAP_STACK_TYPE: u16 = 0x0309;
+pub const SDP_ATTRIB_PAN_SECURITY_DESCRIPTION: u16 = 0x030A;
+pub const SDP_ATTRIB_PAN_NET_ACCESS_TYPE: u16 = 0x030B;
+pub const SDP_ATTRIB_PAN_MAX_NET_ACCESS_RATE: u16 = 0x030C;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_CAPABILITIES: u16 = 0x0310;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_FEATURES: u16 = 0x0311;
+pub const SDP_ATTRIB_IMAGING_SUPPORTED_FUNCTIONS: u16 = 0x0312;
+pub const SDP_ATTRIB_IMAGING_TOTAL_DATA_CAPACITY: u16 = 0x0313;
+pub const SDP_ATTRIB_DI_SPECIFICATION_ID: u16 = 0x0200;
+pub const SDP_ATTRIB_DI_VENDOR_ID: u16 = 0x0201;
+pub const SDP_ATTRIB_DI_PRODUCT_ID: u16 = 0x0202;
+pub const SDP_ATTRIB_DI_VERSION: u16 = 0x0203;
+pub const SDP_ATTRIB_DI_PRIMARY_RECORD: u16 = 0x0204;
+pub const SDP_ATTRIB_DI_VENDOR_ID_SOURCE: u16 = 0x0205;
+pub const SDP_ATTRIB_HID_DEVICE_RELEASE_NUMBER: u16 = 0x0200;
+pub const SDP_ATTRIB_HID_PARSER_VERSION: u16 = 0x0201;
+pub const SDP_ATTRIB_HID_DEVICE_SUBCLASS: u16 = 0x0202;
+pub const SDP_ATTRIB_HID_COUNTRY_CODE: u16 = 0x0203;
+pub const SDP_ATTRIB_HID_VIRTUAL_CABLE: u16 = 0x0204;
+pub const SDP_ATTRIB_HID_RECONNECT_INITIATE: u16 = 0x0205;
+pub const SDP_ATTRIB_HID_DESCRIPTOR_LIST: u16 = 0x0206;
+pub const SDP_ATTRIB_HID_LANG_ID_BASE_LIST: u16 = 0x0207;
+pub const SDP_ATTRIB_HID_SDP_DISABLE: u16 = 0x0208;
+pub const SDP_ATTRIB_HID_BATTERY_POWER: u16 = 0x0209;
+pub const SDP_ATTRIB_HID_REMOTE_WAKE: u16 = 0x020A;
+pub const SDP_ATTRIB_HID_PROFILE_VERSION: u16 = 0x020B;
+pub const SDP_ATTRIB_HID_SUPERVISION_TIMEOUT: u16 = 0x020C;
+pub const SDP_ATTRIB_HID_NORMALLY_CONNECTABLE: u16 = 0x020D;
+pub const SDP_ATTRIB_HID_BOOT_DEVICE: u16 = 0x020E;
+pub const SDP_ATTRIB_HID_SSR_HOST_MAX_LATENCY: u16 = 0x020F;
+pub const SDP_ATTRIB_HID_SSR_HOST_MIN_TIMEOUT: u16 = 0x0210;
+pub const CORDLESS_EXTERNAL_NETWORK_PSTN: u8 = 0x01;
+pub const CORDLESS_EXTERNAL_NETWORK_ISDN: u8 = 0x02;
+pub const CORDLESS_EXTERNAL_NETWORK_GSM: u8 = 0x03;
+pub const CORDLESS_EXTERNAL_NETWORK_CDMA: u8 = 0x04;
+pub const CORDLESS_EXTERNAL_NETWORK_ANALOG_CELLULAR: u8 = 0x05;
+pub const CORDLESS_EXTERNAL_NETWORK_PACKET_SWITCHED: u8 = 0x06;
+pub const CORDLESS_EXTERNAL_NETWORK_OTHER: u8 = 0x07;
+pub const OBJECT_PUSH_FORMAT_VCARD_2_1: u8 = 0x01;
+pub const OBJECT_PUSH_FORMAT_VCARD_3_0: u8 = 0x02;
+pub const OBJECT_PUSH_FORMAT_VCAL_1_0: u8 = 0x03;
+pub const OBJECT_PUSH_FORMAT_ICAL_2_0: u8 = 0x04;
+pub const OBJECT_PUSH_FORMAT_VNOTE: u8 = 0x05;
+pub const OBJECT_PUSH_FORMAT_VMESSAGE: u8 = 0x06;
+pub const OBJECT_PUSH_FORMAT_ANY: u8 = 0xFF;
+pub const SYNCH_DATA_STORE_PHONEBOOK: u8 = 0x01;
+pub const SYNCH_DATA_STORE_CALENDAR: u8 = 0x03;
+pub const SYNCH_DATA_STORE_NOTES: u8 = 0x05;
+pub const SYNCH_DATA_STORE_MESSAGES: u8 = 0x06;
+pub const DI_VENDOR_ID_SOURCE_BLUETOOTH_SIG: u16 = 0x0001;
+pub const DI_VENDOR_ID_SOURCE_USB_IF: u16 = 0x0002;
+pub const PSM_SDP: u16 = 0x0001;
+pub const PSM_RFCOMM: u16 = 0x0003;
+pub const PSM_TCS_BIN: u16 = 0x0005;
+pub const PSM_TCS_BIN_CORDLESS: u16 = 0x0007;
+pub const PSM_BNEP: u16 = 0x000F;
+pub const PSM_HID_CONTROL: u16 = 0x0011;
+pub const PSM_HID_INTERRUPT: u16 = 0x0013;
+pub const PSM_UPNP: u16 = 0x0015;
+pub const PSM_AVCTP: u16 = 0x0017;
+pub const PSM_AVDTP: u16 = 0x0019;
+pub const PSM_AVCTP_BROWSE: u16 = 0x001B;
+pub const PSM_UDI_C_PLANE: u16 = 0x001D;
+pub const PSM_ATT: u16 = 0x001F;
+pub const PSM_3DSP: u16 = 0x0021;
+pub const PSM_LE_IPSP: u16 = 0x0023;
+pub const STR_ADDR_FMTA: &'static str = "(%02x:%02x:%02x:%02x:%02x:%02x)\0";
+// #define STR_ADDR_FMTW L"(%02x:%02x:%02x:%02x:%02x:%02x)"
+pub const STR_ADDR_SHORT_FMTA: &'static str = "%04x%08x\0";
+// #define STR_ADDR_SHORT_FMTW L"%04x%08x"
+pub const STR_USBHCI_CLASS_HARDWAREIDA: &'static str = "USB\\Class_E0&SubClass_01&Prot_01\0";
+// #define STR_USBHCI_CLASS_HARDWAREIDW L"USB\\Class_E0&SubClass_01&Prot_01"
+#[inline]
+pub fn GET_BITS(field: u64, offset: u8, mask: u64) -> u64 {
+ (field >> offset) & mask
+}
+#[inline]
+pub fn GET_BIT(field: u64, offset: u8) -> u64 {
+ GET_BITS(field, offset, 1)
+}
+#[inline]
+pub fn LMP_3_SLOT_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 0)
+}
+#[inline]
+pub fn LMP_5_SLOT_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 1)
+}
+#[inline]
+pub fn LMP_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 2)
+}
+#[inline]
+pub fn LMP_SLOT_OFFSET(x: u64) -> u64 {
+ GET_BIT(x, 3)
+}
+#[inline]
+pub fn LMP_TIMING_ACCURACY(x: u64) -> u64 {
+ GET_BIT(x, 4)
+}
+#[inline]
+pub fn LMP_SWITCH(x: u64) -> u64 {
+ GET_BIT(x, 5)
+}
+#[inline]
+pub fn LMP_HOLD_MODE(x: u64) -> u64 {
+ GET_BIT(x, 6)
+}
+#[inline]
+pub fn LMP_SNIFF_MODE(x: u64) -> u64 {
+ GET_BIT(x, 7)
+}
+#[inline]
+pub fn LMP_PARK_MODE(x: u64) -> u64 {
+ GET_BIT(x, 8)
+}
+#[inline]
+pub fn LMP_RSSI(x: u64) -> u64 {
+ GET_BIT(x, 9)
+}
+#[inline]
+pub fn LMP_CHANNEL_QUALITY_DRIVEN_MODE(x: u64) -> u64 {
+ GET_BIT(x, 10)
+}
+#[inline]
+pub fn LMP_SCO_LINK(x: u64) -> u64 {
+ GET_BIT(x, 11)
+}
+#[inline]
+pub fn LMP_HV2_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 12)
+}
+#[inline]
+pub fn LMP_HV3_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 13)
+}
+#[inline]
+pub fn LMP_MU_LAW_LOG(x: u64) -> u64 {
+ GET_BIT(x, 14)
+}
+#[inline]
+pub fn LMP_A_LAW_LOG(x: u64) -> u64 {
+ GET_BIT(x, 15)
+}
+#[inline]
+pub fn LMP_CVSD(x: u64) -> u64 {
+ GET_BIT(x, 16)
+}
+#[inline]
+pub fn LMP_PAGING_SCHEME(x: u64) -> u64 {
+ GET_BIT(x, 17)
+}
+#[inline]
+pub fn LMP_POWER_CONTROL(x: u64) -> u64 {
+ GET_BIT(x, 18)
+}
+#[inline]
+pub fn LMP_TRANSPARENT_SCO_DATA(x: u64) -> u64 {
+ GET_BIT(x, 19)
+}
+#[inline]
+pub fn LMP_FLOW_CONTROL_LAG(x: u64) -> u64 {
+ GET_BITS(x, 20, 0x3)
+}
+#[inline]
+pub fn LMP_BROADCAST_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 23)
+}
+#[inline]
+pub fn LMP_ENHANCED_DATA_RATE_ACL_2MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 25)
+}
+#[inline]
+pub fn LMP_ENHANCED_DATA_RATE_ACL_3MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 26)
+}
+#[inline]
+pub fn LMP_ENHANCED_INQUIRY_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 27)
+}
+#[inline]
+pub fn LMP_INTERLACED_INQUIRY_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 28)
+}
+#[inline]
+pub fn LMP_INTERLACED_PAGE_SCAN(x: u64) -> u64 {
+ GET_BIT(x, 29)
+}
+#[inline]
+pub fn LMP_RSSI_WITH_INQUIRY_RESULTS(x: u64) -> u64 {
+ GET_BIT(x, 30)
+}
+#[inline]
+pub fn LMP_ESCO_LINK(x: u64) -> u64 {
+ GET_BIT(x, 31)
+}
+#[inline]
+pub fn LMP_EV4_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 32)
+}
+#[inline]
+pub fn LMP_EV5_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 33)
+}
+#[inline]
+pub fn LMP_AFH_CAPABLE_SLAVE(x: u64) -> u64 {
+ GET_BIT(x, 35)
+}
+#[inline]
+pub fn LMP_AFH_CLASSIFICATION_SLAVE(x: u64) -> u64 {
+ GET_BIT(x, 36)
+}
+#[inline]
+pub fn LMP_BR_EDR_NOT_SUPPORTED(x: u64) -> u64 {
+ GET_BIT(x, 37)
+}
+#[inline]
+pub fn LMP_LE_SUPPORTED(x: u64) -> u64 {
+ GET_BIT(x, 38)
+}
+#[inline]
+pub fn LMP_3SLOT_EDR_ACL_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 39)
+}
+#[inline]
+pub fn LMP_5SLOT_EDR_ACL_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 40)
+}
+#[inline]
+pub fn LMP_SNIFF_SUBRATING(x: u64) -> u64 {
+ GET_BIT(x, 41)
+}
+#[inline]
+pub fn LMP_PAUSE_ENCRYPTION(x: u64) -> u64 {
+ GET_BIT(x, 42)
+}
+#[inline]
+pub fn LMP_AFH_CAPABLE_MASTER(x: u64) -> u64 {
+ GET_BIT(x, 43)
+}
+#[inline]
+pub fn LMP_AFH_CLASSIFICATION_MASTER(x: u64) -> u64 {
+ GET_BIT(x, 44)
+}
+#[inline]
+pub fn LMP_EDR_ESCO_2MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 45)
+}
+#[inline]
+pub fn LMP_EDR_ESCO_3MBPS_MODE(x: u64) -> u64 {
+ GET_BIT(x, 46)
+}
+#[inline]
+pub fn LMP_3SLOT_EDR_ESCO_PACKETS(x: u64) -> u64 {
+ GET_BIT(x, 47)
+}
+#[inline]
+pub fn LMP_EXTENDED_INQUIRY_RESPONSE(x: u64) -> u64 {
+ GET_BIT(x, 48)
+}
+#[inline]
+pub fn LMP_SIMULT_LE_BR_TO_SAME_DEV(x: u64) -> u64 {
+ GET_BIT(x, 49)
+}
+#[inline]
+pub fn LMP_SECURE_SIMPLE_PAIRING(x: u64) -> u64 {
+ GET_BIT(x, 51)
+}
+#[inline]
+pub fn LMP_ENCAPSULATED_PDU(x: u64) -> u64 {
+ GET_BIT(x, 52)
+}
+#[inline]
+pub fn LMP_ERRONEOUS_DATA_REPORTING(x: u64) -> u64 {
+ GET_BIT(x, 53)
+}
+#[inline]
+pub fn LMP_NON_FLUSHABLE_PACKET_BOUNDARY_FLAG(x: u64) -> u64 {
+ GET_BIT(x, 54)
+}
+#[inline]
+pub fn LMP_LINK_SUPERVISION_TIMEOUT_CHANGED_EVENT(x: u64) -> u64 {
+ GET_BIT(x, 56)
+}
+#[inline]
+pub fn LMP_INQUIRY_RESPONSE_TX_POWER_LEVEL(x: u64) -> u64 {
+ GET_BIT(x, 57)
+}
+#[inline]
+pub fn LMP_EXTENDED_FEATURES(x: u64) -> u64 {
+ GET_BIT(x, 63)
+}
diff --git a/third_party/rust/winapi/src/shared/bthioctl.rs b/third_party/rust/winapi/src/shared/bthioctl.rs
new file mode 100644
index 0000000000..78ca6b76b4
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/bthioctl.rs
@@ -0,0 +1,151 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::bthdef::{BTH_ADDR, BTH_DEVICE_INFO, MAX_UUIDS_IN_QUERY};
+use shared::bthsdpdef::{SdpAttributeRange, SdpQueryUuid};
+use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT};
+use shared::ntdef::{BOOLEAN, ULONGLONG};
+use um::winioctl::{FILE_ANY_ACCESS, FILE_DEVICE_BLUETOOTH, METHOD_BUFFERED, METHOD_NEITHER};
+pub const BTH_IOCTL_BASE: DWORD = 0;
+pub const IOCTL_INTERNAL_BTH_SUBMIT_BRB: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x00);
+pub const IOCTL_INTERNAL_BTHENUM_GET_ENUMINFO: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x01);
+pub const IOCTL_INTERNAL_BTHENUM_GET_DEVINFO: DWORD = BTH_KERNEL_CTL!(BTH_IOCTL_BASE + 0x02);
+pub const IOCTL_BTH_GET_LOCAL_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x00);
+pub const IOCTL_BTH_GET_RADIO_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x01);
+pub const IOCTL_BTH_GET_DEVICE_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x02);
+pub const IOCTL_BTH_DISCONNECT_DEVICE: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x03);
+pub const IOCTL_BTH_HCI_VENDOR_COMMAND: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x14);
+pub const IOCTL_BTH_SDP_CONNECT: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x80);
+pub const IOCTL_BTH_SDP_DISCONNECT: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x81);
+pub const IOCTL_BTH_SDP_SERVICE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x82);
+pub const IOCTL_BTH_SDP_ATTRIBUTE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x83);
+pub const IOCTL_BTH_SDP_SERVICE_ATTRIBUTE_SEARCH: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x84);
+pub const IOCTL_BTH_SDP_SUBMIT_RECORD: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x85);
+pub const IOCTL_BTH_SDP_REMOVE_RECORD: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x86);
+pub const IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x87);
+pub const IOCTL_BTH_GET_HOST_SUPPORTED_FEATURES: DWORD = BTH_CTL!(BTH_IOCTL_BASE + 0x88);
+STRUCT!{#[repr(packed)] struct BTH_DEVICE_INFO_LIST {
+ numOfDevices: ULONG,
+ deviceList: [BTH_DEVICE_INFO; 1],
+}}
+pub type PBTH_DEVICE_INFO_LIST = *mut BTH_DEVICE_INFO_LIST;
+STRUCT!{#[repr(packed)] struct BTH_RADIO_INFO {
+ lmpSupportedFeatures: ULONGLONG,
+ mfg: USHORT,
+ lmpSubversion: USHORT,
+ lmpVersion: UCHAR,
+}}
+pub type PBTH_RADIO_INFO = *mut BTH_RADIO_INFO;
+STRUCT!{#[repr(packed)] struct BTH_LOCAL_RADIO_INFO {
+ localInfo: BTH_DEVICE_INFO,
+ flags: ULONG,
+ hciRevision: USHORT,
+ hciVersion: UCHAR,
+ radioInfo: BTH_RADIO_INFO,
+}}
+pub type PBTH_LOCAL_RADIO_INFO = *mut BTH_LOCAL_RADIO_INFO;
+pub const SDP_CONNECT_CACHE: ULONG = 0x00000001;
+pub const SDP_CONNECT_ALLOW_PIN: ULONG = 0x00000002;
+pub const SDP_REQUEST_TO_DEFAULT: UCHAR = 0;
+pub const SDP_REQUEST_TO_MIN: UCHAR = 10;
+pub const SDP_REQUEST_TO_MAX: UCHAR = 45;
+pub const SERVICE_OPTION_DO_NOT_PUBLISH: ULONG = 0x00000002;
+pub const SERVICE_OPTION_NO_PUBLIC_BROWSE: ULONG = 0x00000004;
+pub const SERVICE_OPTION_DO_NOT_PUBLISH_EIR: ULONG = 0x00000008;
+pub const SERVICE_SECURITY_USE_DEFAULTS: ULONG = 0x00000000;
+pub const SERVICE_SECURITY_NONE: ULONG = 0x00000001;
+pub const SERVICE_SECURITY_AUTHORIZE: ULONG = 0x00000002;
+pub const SERVICE_SECURITY_AUTHENTICATE: ULONG = 0x00000004;
+pub const SERVICE_SECURITY_ENCRYPT_REQUIRED: ULONG = 0x00000010;
+pub const SERVICE_SECURITY_ENCRYPT_OPTIONAL: ULONG = 0x00000020;
+pub const SERVICE_SECURITY_DISABLED: ULONG = 0x10000000;
+pub const SERVICE_SECURITY_NO_ASK: ULONG = 0x20000000;
+pub const SDP_SEARCH_NO_PARSE_CHECK: ULONG = 0x00000001;
+pub const SDP_SEARCH_NO_FORMAT_CHECK: ULONG = 0x00000002;
+pub type HANDLE_SDP = ULONGLONG;
+pub type PHANDLE_SDP = *mut ULONGLONG;
+pub type HANDLE_SDP_TYPE = HANDLE_SDP;
+pub const HANDLE_SDP_NULL: HANDLE_SDP = 0x0;
+pub const HANDLE_SDP_LOCAL: HANDLE_SDP = -2i64 as u64;
+STRUCT!{#[repr(packed)] struct BTH_SDP_CONNECT {
+ bthAddress: BTH_ADDR,
+ fSdpConnect: ULONG,
+ hConnection: HANDLE_SDP_TYPE,
+ requestTimeout: UCHAR,
+}}
+pub type PBTH_SDP_CONNECT = *mut BTH_SDP_CONNECT;
+STRUCT!{#[repr(packed)] struct BTH_SDP_DISCONNECT {
+ hConnection: HANDLE_SDP_TYPE,
+}}
+pub type PBTH_SDP_DISCONNECT = *mut BTH_SDP_DISCONNECT;
+STRUCT!{#[repr(packed)] struct BTH_SDP_RECORD {
+ fSecurity: ULONG,
+ fOptions: ULONG,
+ fCodService: ULONG,
+ recordLength: ULONG,
+ record: [UCHAR; 1],
+}}
+pub type PBTH_SDP_RECORD = *mut BTH_SDP_RECORD;
+STRUCT!{#[repr(packed)] struct BTH_SDP_SERVICE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ uuids: [SdpQueryUuid; MAX_UUIDS_IN_QUERY],
+}}
+pub type PBTH_SDP_SERVICE_SEARCH_REQUEST = *mut BTH_SDP_SERVICE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_ATTRIBUTE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ searchFlags: ULONG,
+ recordHandle: ULONG,
+ range: [SdpAttributeRange; 1],
+}}
+pub type PBTH_SDP_ATTRIBUTE_SEARCH_REQUEST = *mut BTH_SDP_ATTRIBUTE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST {
+ hConnection: HANDLE_SDP_TYPE,
+ searchFlags: ULONG,
+ uuids: [SdpQueryUuid; MAX_UUIDS_IN_QUERY],
+ range: [SdpAttributeRange; 1],
+}}
+pub type PBTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST = *mut BTH_SDP_SERVICE_ATTRIBUTE_SEARCH_REQUEST;
+STRUCT!{#[repr(packed)] struct BTH_SDP_STREAM_RESPONSE {
+ requiredSize: ULONG,
+ responseSize: ULONG,
+ response: [UCHAR; 1],
+}}
+pub type PBTH_SDP_STREAM_RESPONSE = *mut BTH_SDP_STREAM_RESPONSE;
+STRUCT!{#[repr(packed)] struct BTH_COMMAND_HEADER {
+ OpCode: USHORT,
+ TotalParameterLength: UCHAR,
+}}
+pub type PBTH_COMMAND_HEADER = *mut BTH_COMMAND_HEADER;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_SPECIFIC_COMMAND {
+ ManufacturerId: ULONG,
+ LmpVersion: UCHAR,
+ MatchAnySinglePattern: BOOLEAN,
+ HciHeader: BTH_COMMAND_HEADER,
+ Data: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_SPECIFIC_COMMAND = *mut BTH_VENDOR_SPECIFIC_COMMAND;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_PATTERN {
+ Offset: UCHAR,
+ Size: UCHAR,
+ Pattern: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_PATTERN = *mut BTH_VENDOR_PATTERN;
+STRUCT!{#[repr(packed)] struct BTH_VENDOR_EVENT_INFO {
+ BthAddress: BTH_ADDR,
+ EventSize: ULONG,
+ EventInfo: [UCHAR; 1],
+}}
+pub type PBTH_VENDOR_EVENT_INFO = *mut BTH_VENDOR_EVENT_INFO;
+pub const BTH_HOST_FEATURE_ENHANCED_RETRANSMISSION_MODE: ULONGLONG = 0x0000000000000001;
+pub const BTH_HOST_FEATURE_STREAMING_MODE: ULONGLONG = 0x0000000000000002;
+pub const BTH_HOST_FEATURE_LOW_ENERGY: ULONGLONG = 0x0000000000000004;
+pub const BTH_HOST_FEATURE_SCO_HCI: ULONGLONG = 0x0000000000000008;
+pub const BTH_HOST_FEATURE_SCO_HCIBYPASS: ULONGLONG = 0x0000000000000010;
+STRUCT!{#[repr(packed)] struct BTH_HOST_FEATURE_MASK {
+ Mask: ULONGLONG,
+ Reserved1: ULONGLONG,
+ Reserved2: ULONGLONG,
+}}
+pub type PBTH_HOST_FEATURE_MASK = *mut BTH_HOST_FEATURE_MASK;
diff --git a/third_party/rust/winapi/src/shared/bthsdpdef.rs b/third_party/rust/winapi/src/shared/bthsdpdef.rs
new file mode 100644
index 0000000000..4416fab053
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/bthsdpdef.rs
@@ -0,0 +1,68 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{ULONG, USHORT};
+use shared::ntdef::{LONGLONG, ULONGLONG};
+STRUCT!{struct SDP_LARGE_INTEGER_16 {
+ LowPart: ULONGLONG,
+ HighPart: LONGLONG,
+}}
+STRUCT!{struct SDP_ULARGE_INTEGER_16 {
+ LowPart: ULONGLONG,
+ HighPart: ULONGLONG,
+}}
+pub type PSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
+pub type LPSDP_ULARGE_INTEGER_16 = *mut SDP_ULARGE_INTEGER_16;
+pub type PSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
+pub type LPSDP_LARGE_INTEGER_16 = *mut SDP_LARGE_INTEGER_16;
+ENUM!{enum NodeContainerType {
+ NodeContainerTypeSequence,
+ NodeContainerTypeAlternative,
+}}
+pub type SDP_ERROR = USHORT;
+pub type PSDP_ERROR = *mut USHORT;
+ENUM!{enum SDP_TYPE {
+ SDP_TYPE_NIL = 0x00,
+ SDP_TYPE_UINT = 0x01,
+ SDP_TYPE_INT = 0x02,
+ SDP_TYPE_UUID = 0x03,
+ SDP_TYPE_STRING = 0x04,
+ SDP_TYPE_BOOLEAN = 0x05,
+ SDP_TYPE_SEQUENCE = 0x06,
+ SDP_TYPE_ALTERNATIVE = 0x07,
+ SDP_TYPE_URL = 0x08,
+ SDP_TYPE_CONTAINER = 0x20,
+}}
+ENUM!{enum SDP_SPECIFICTYPE {
+ SDP_ST_NONE = 0x0000,
+ SDP_ST_UINT8 = 0x0010,
+ SDP_ST_UINT16 = 0x0110,
+ SDP_ST_UINT32 = 0x0210,
+ SDP_ST_UINT64 = 0x0310,
+ SDP_ST_UINT128 = 0x0410,
+ SDP_ST_INT8 = 0x0020,
+ SDP_ST_INT16 = 0x0120,
+ SDP_ST_INT32 = 0x0220,
+ SDP_ST_INT64 = 0x0320,
+ SDP_ST_INT128 = 0x0420,
+ SDP_ST_UUID16 = 0x0130,
+ SDP_ST_UUID32 = 0x0220,
+ SDP_ST_UUID128 = 0x0430,
+}}
+STRUCT!{struct SdpAttributeRange {
+ minAttribute: USHORT,
+ maxAttribute: USHORT,
+}}
+UNION!{union SdpQueryUuidUnion {
+ [u32; 4],
+ uuid128 uuid128_mut: GUID,
+ uuid32 uuid32_mut: ULONG,
+ uuid16 uuid16_mut: USHORT,
+}}
+STRUCT!{struct SdpQueryUuid {
+ u: SdpQueryUuidUnion,
+ uuidType: USHORT,
+}}
diff --git a/third_party/rust/winapi/src/shared/bugcodes.rs b/third_party/rust/winapi/src/shared/bugcodes.rs
new file mode 100644
index 0000000000..3e2bd4954b
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/bugcodes.rs
@@ -0,0 +1,456 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Definitions of system bug check codes
+use shared::ntdef::ULONG;
+pub const HARDWARE_PROFILE_UNDOCKED_STRING: ULONG = 0x40010001;
+pub const HARDWARE_PROFILE_DOCKED_STRING: ULONG = 0x40010002;
+pub const HARDWARE_PROFILE_UNKNOWN_STRING: ULONG = 0x40010003;
+pub const WINDOWS_NT_BANNER: ULONG = 0x4000007E;
+pub const WINDOWS_NT_CSD_STRING: ULONG = 0x40000087;
+pub const WINDOWS_NT_INFO_STRING: ULONG = 0x40000088;
+pub const WINDOWS_NT_MP_STRING: ULONG = 0x40000089;
+pub const THREAD_TERMINATE_HELD_MUTEX: ULONG = 0x4000008A;
+pub const WINDOWS_NT_INFO_STRING_PLURAL: ULONG = 0x4000009D;
+pub const WINDOWS_NT_RC_STRING: ULONG = 0x4000009E;
+pub const APC_INDEX_MISMATCH: ULONG = 0x00000001;
+pub const DEVICE_QUEUE_NOT_BUSY: ULONG = 0x00000002;
+pub const INVALID_AFFINITY_SET: ULONG = 0x00000003;
+pub const INVALID_DATA_ACCESS_TRAP: ULONG = 0x00000004;
+pub const INVALID_PROCESS_ATTACH_ATTEMPT: ULONG = 0x00000005;
+pub const INVALID_PROCESS_DETACH_ATTEMPT: ULONG = 0x00000006;
+pub const INVALID_SOFTWARE_INTERRUPT: ULONG = 0x00000007;
+pub const IRQL_NOT_DISPATCH_LEVEL: ULONG = 0x00000008;
+pub const IRQL_NOT_GREATER_OR_EQUAL: ULONG = 0x00000009;
+pub const IRQL_NOT_LESS_OR_EQUAL: ULONG = 0x0000000A;
+pub const NO_EXCEPTION_HANDLING_SUPPORT: ULONG = 0x0000000B;
+pub const MAXIMUM_WAIT_OBJECTS_EXCEEDED: ULONG = 0x0000000C;
+pub const MUTEX_LEVEL_NUMBER_VIOLATION: ULONG = 0x0000000D;
+pub const NO_USER_MODE_CONTEXT: ULONG = 0x0000000E;
+pub const SPIN_LOCK_ALREADY_OWNED: ULONG = 0x0000000F;
+pub const SPIN_LOCK_NOT_OWNED: ULONG = 0x00000010;
+pub const THREAD_NOT_MUTEX_OWNER: ULONG = 0x00000011;
+pub const TRAP_CAUSE_UNKNOWN: ULONG = 0x00000012;
+pub const EMPTY_THREAD_REAPER_LIST: ULONG = 0x00000013;
+pub const CREATE_DELETE_LOCK_NOT_LOCKED: ULONG = 0x00000014;
+pub const LAST_CHANCE_CALLED_FROM_KMODE: ULONG = 0x00000015;
+pub const CID_HANDLE_CREATION: ULONG = 0x00000016;
+pub const CID_HANDLE_DELETION: ULONG = 0x00000017;
+pub const REFERENCE_BY_POINTER: ULONG = 0x00000018;
+pub const BAD_POOL_HEADER: ULONG = 0x00000019;
+pub const MEMORY_MANAGEMENT: ULONG = 0x0000001A;
+pub const PFN_SHARE_COUNT: ULONG = 0x0000001B;
+pub const PFN_REFERENCE_COUNT: ULONG = 0x0000001C;
+pub const NO_SPIN_LOCK_AVAILABLE: ULONG = 0x0000001D;
+pub const KMODE_EXCEPTION_NOT_HANDLED: ULONG = 0x0000001E;
+pub const SHARED_RESOURCE_CONV_ERROR: ULONG = 0x0000001F;
+pub const KERNEL_APC_PENDING_DURING_EXIT: ULONG = 0x00000020;
+pub const QUOTA_UNDERFLOW: ULONG = 0x00000021;
+pub const FILE_SYSTEM: ULONG = 0x00000022;
+pub const FAT_FILE_SYSTEM: ULONG = 0x00000023;
+pub const NTFS_FILE_SYSTEM: ULONG = 0x00000024;
+pub const NPFS_FILE_SYSTEM: ULONG = 0x00000025;
+pub const CDFS_FILE_SYSTEM: ULONG = 0x00000026;
+pub const RDR_FILE_SYSTEM: ULONG = 0x00000027;
+pub const CORRUPT_ACCESS_TOKEN: ULONG = 0x00000028;
+pub const SECURITY_SYSTEM: ULONG = 0x00000029;
+pub const INCONSISTENT_IRP: ULONG = 0x0000002A;
+pub const PANIC_STACK_SWITCH: ULONG = 0x0000002B;
+pub const PORT_DRIVER_INTERNAL: ULONG = 0x0000002C;
+pub const SCSI_DISK_DRIVER_INTERNAL: ULONG = 0x0000002D;
+pub const DATA_BUS_ERROR: ULONG = 0x0000002E;
+pub const INSTRUCTION_BUS_ERROR: ULONG = 0x0000002F;
+pub const SET_OF_INVALID_CONTEXT: ULONG = 0x00000030;
+pub const PHASE0_INITIALIZATION_FAILED: ULONG = 0x00000031;
+pub const PHASE1_INITIALIZATION_FAILED: ULONG = 0x00000032;
+pub const UNEXPECTED_INITIALIZATION_CALL: ULONG = 0x00000033;
+pub const CACHE_MANAGER: ULONG = 0x00000034;
+pub const NO_MORE_IRP_STACK_LOCATIONS: ULONG = 0x00000035;
+pub const DEVICE_REFERENCE_COUNT_NOT_ZERO: ULONG = 0x00000036;
+pub const FLOPPY_INTERNAL_ERROR: ULONG = 0x00000037;
+pub const SERIAL_DRIVER_INTERNAL: ULONG = 0x00000038;
+pub const SYSTEM_EXIT_OWNED_MUTEX: ULONG = 0x00000039;
+pub const SYSTEM_UNWIND_PREVIOUS_USER: ULONG = 0x0000003A;
+pub const SYSTEM_SERVICE_EXCEPTION: ULONG = 0x0000003B;
+pub const INTERRUPT_UNWIND_ATTEMPTED: ULONG = 0x0000003C;
+pub const INTERRUPT_EXCEPTION_NOT_HANDLED: ULONG = 0x0000003D;
+pub const MULTIPROCESSOR_CONFIGURATION_NOT_SUPPORTED: ULONG = 0x0000003E;
+pub const NO_MORE_SYSTEM_PTES: ULONG = 0x0000003F;
+pub const TARGET_MDL_TOO_SMALL: ULONG = 0x00000040;
+pub const MUST_SUCCEED_POOL_EMPTY: ULONG = 0x00000041;
+pub const ATDISK_DRIVER_INTERNAL: ULONG = 0x00000042;
+pub const NO_SUCH_PARTITION: ULONG = 0x00000043;
+pub const MULTIPLE_IRP_COMPLETE_REQUESTS: ULONG = 0x00000044;
+pub const INSUFFICIENT_SYSTEM_MAP_REGS: ULONG = 0x00000045;
+pub const DEREF_UNKNOWN_LOGON_SESSION: ULONG = 0x00000046;
+pub const REF_UNKNOWN_LOGON_SESSION: ULONG = 0x00000047;
+pub const CANCEL_STATE_IN_COMPLETED_IRP: ULONG = 0x00000048;
+pub const PAGE_FAULT_WITH_INTERRUPTS_OFF: ULONG = 0x00000049;
+pub const IRQL_GT_ZERO_AT_SYSTEM_SERVICE: ULONG = 0x0000004A;
+pub const STREAMS_INTERNAL_ERROR: ULONG = 0x0000004B;
+pub const FATAL_UNHANDLED_HARD_ERROR: ULONG = 0x0000004C;
+pub const NO_PAGES_AVAILABLE: ULONG = 0x0000004D;
+pub const PFN_LIST_CORRUPT: ULONG = 0x0000004E;
+pub const NDIS_INTERNAL_ERROR: ULONG = 0x0000004F;
+pub const PAGE_FAULT_IN_NONPAGED_AREA: ULONG = 0x00000050;
+pub const PAGE_FAULT_IN_NONPAGED_AREA_M: ULONG = 0x10000050;
+pub const REGISTRY_ERROR: ULONG = 0x00000051;
+pub const MAILSLOT_FILE_SYSTEM: ULONG = 0x00000052;
+pub const NO_BOOT_DEVICE: ULONG = 0x00000053;
+pub const LM_SERVER_INTERNAL_ERROR: ULONG = 0x00000054;
+pub const DATA_COHERENCY_EXCEPTION: ULONG = 0x00000055;
+pub const INSTRUCTION_COHERENCY_EXCEPTION: ULONG = 0x00000056;
+pub const XNS_INTERNAL_ERROR: ULONG = 0x00000057;
+pub const VOLMGRX_INTERNAL_ERROR: ULONG = 0x00000058;
+pub const PINBALL_FILE_SYSTEM: ULONG = 0x00000059;
+pub const CRITICAL_SERVICE_FAILED: ULONG = 0x0000005A;
+pub const SET_ENV_VAR_FAILED: ULONG = 0x0000005B;
+pub const HAL_INITIALIZATION_FAILED: ULONG = 0x0000005C;
+pub const UNSUPPORTED_PROCESSOR: ULONG = 0x0000005D;
+pub const OBJECT_INITIALIZATION_FAILED: ULONG = 0x0000005E;
+pub const SECURITY_INITIALIZATION_FAILED: ULONG = 0x0000005F;
+pub const PROCESS_INITIALIZATION_FAILED: ULONG = 0x00000060;
+pub const HAL1_INITIALIZATION_FAILED: ULONG = 0x00000061;
+pub const OBJECT1_INITIALIZATION_FAILED: ULONG = 0x00000062;
+pub const SECURITY1_INITIALIZATION_FAILED: ULONG = 0x00000063;
+pub const SYMBOLIC_INITIALIZATION_FAILED: ULONG = 0x00000064;
+pub const MEMORY1_INITIALIZATION_FAILED: ULONG = 0x00000065;
+pub const CACHE_INITIALIZATION_FAILED: ULONG = 0x00000066;
+pub const CONFIG_INITIALIZATION_FAILED: ULONG = 0x00000067;
+pub const FILE_INITIALIZATION_FAILED: ULONG = 0x00000068;
+pub const IO1_INITIALIZATION_FAILED: ULONG = 0x00000069;
+pub const LPC_INITIALIZATION_FAILED: ULONG = 0x0000006A;
+pub const PROCESS1_INITIALIZATION_FAILED: ULONG = 0x0000006B;
+pub const REFMON_INITIALIZATION_FAILED: ULONG = 0x0000006C;
+pub const SESSION1_INITIALIZATION_FAILED: ULONG = 0x0000006D;
+pub const BOOTPROC_INITIALIZATION_FAILED: ULONG = 0x0000006E;
+pub const VSL_INITIALIZATION_FAILED: ULONG = 0x0000006F;
+pub const SOFT_RESTART_FATAL_ERROR: ULONG = 0x00000070;
+pub const ASSIGN_DRIVE_LETTERS_FAILED: ULONG = 0x00000072;
+pub const CONFIG_LIST_FAILED: ULONG = 0x00000073;
+pub const BAD_SYSTEM_CONFIG_INFO: ULONG = 0x00000074;
+pub const CANNOT_WRITE_CONFIGURATION: ULONG = 0x00000075;
+pub const PROCESS_HAS_LOCKED_PAGES: ULONG = 0x00000076;
+pub const KERNEL_STACK_INPAGE_ERROR: ULONG = 0x00000077;
+pub const PHASE0_EXCEPTION: ULONG = 0x00000078;
+pub const MISMATCHED_HAL: ULONG = 0x00000079;
+pub const KERNEL_DATA_INPAGE_ERROR: ULONG = 0x0000007A;
+pub const INACCESSIBLE_BOOT_DEVICE: ULONG = 0x0000007B;
+pub const BUGCODE_NDIS_DRIVER: ULONG = 0x0000007C;
+pub const INSTALL_MORE_MEMORY: ULONG = 0x0000007D;
+pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED: ULONG = 0x0000007E;
+pub const SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M: ULONG = 0x1000007E;
+pub const UNEXPECTED_KERNEL_MODE_TRAP: ULONG = 0x0000007F;
+pub const UNEXPECTED_KERNEL_MODE_TRAP_M: ULONG = 0x1000007F;
+pub const NMI_HARDWARE_FAILURE: ULONG = 0x00000080;
+pub const SPIN_LOCK_INIT_FAILURE: ULONG = 0x00000081;
+pub const DFS_FILE_SYSTEM: ULONG = 0x00000082;
+pub const OFS_FILE_SYSTEM: ULONG = 0x00000083;
+pub const RECOM_DRIVER: ULONG = 0x00000084;
+pub const SETUP_FAILURE: ULONG = 0x00000085;
+pub const AUDIT_FAILURE: ULONG = 0x00000086;
+pub const MBR_CHECKSUM_MISMATCH: ULONG = 0x0000008B;
+pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED: ULONG = 0x0000008E;
+pub const KERNEL_MODE_EXCEPTION_NOT_HANDLED_M: ULONG = 0x1000008E;
+pub const PP0_INITIALIZATION_FAILED: ULONG = 0x0000008F;
+pub const PP1_INITIALIZATION_FAILED: ULONG = 0x00000090;
+pub const WIN32K_INIT_OR_RIT_FAILURE: ULONG = 0x00000091;
+pub const UP_DRIVER_ON_MP_SYSTEM: ULONG = 0x00000092;
+pub const INVALID_KERNEL_HANDLE: ULONG = 0x00000093;
+pub const KERNEL_STACK_LOCKED_AT_EXIT: ULONG = 0x00000094;
+pub const PNP_INTERNAL_ERROR: ULONG = 0x00000095;
+pub const INVALID_WORK_QUEUE_ITEM: ULONG = 0x00000096;
+pub const BOUND_IMAGE_UNSUPPORTED: ULONG = 0x00000097;
+pub const END_OF_NT_EVALUATION_PERIOD: ULONG = 0x00000098;
+pub const INVALID_REGION_OR_SEGMENT: ULONG = 0x00000099;
+pub const SYSTEM_LICENSE_VIOLATION: ULONG = 0x0000009A;
+pub const UDFS_FILE_SYSTEM: ULONG = 0x0000009B;
+pub const MACHINE_CHECK_EXCEPTION: ULONG = 0x0000009C;
+pub const USER_MODE_HEALTH_MONITOR: ULONG = 0x0000009E;
+pub const DRIVER_POWER_STATE_FAILURE: ULONG = 0x0000009F;
+pub const INTERNAL_POWER_ERROR: ULONG = 0x000000A0;
+pub const PCI_BUS_DRIVER_INTERNAL: ULONG = 0x000000A1;
+pub const MEMORY_IMAGE_CORRUPT: ULONG = 0x000000A2;
+pub const ACPI_DRIVER_INTERNAL: ULONG = 0x000000A3;
+pub const CNSS_FILE_SYSTEM_FILTER: ULONG = 0x000000A4;
+pub const ACPI_BIOS_ERROR: ULONG = 0x000000A5;
+pub const FP_EMULATION_ERROR: ULONG = 0x000000A6;
+pub const BAD_EXHANDLE: ULONG = 0x000000A7;
+pub const BOOTING_IN_SAFEMODE_MINIMAL: ULONG = 0x000000A8;
+pub const BOOTING_IN_SAFEMODE_NETWORK: ULONG = 0x000000A9;
+pub const BOOTING_IN_SAFEMODE_DSREPAIR: ULONG = 0x000000AA;
+pub const SESSION_HAS_VALID_POOL_ON_EXIT: ULONG = 0x000000AB;
+pub const HAL_MEMORY_ALLOCATION: ULONG = 0x000000AC;
+pub const VIDEO_DRIVER_DEBUG_REPORT_REQUEST: ULONG = 0x400000AD;
+pub const BGI_DETECTED_VIOLATION: ULONG = 0x000000B1;
+pub const VIDEO_DRIVER_INIT_FAILURE: ULONG = 0x000000B4;
+pub const BOOTLOG_LOADED: ULONG = 0x000000B5;
+pub const BOOTLOG_NOT_LOADED: ULONG = 0x000000B6;
+pub const BOOTLOG_ENABLED: ULONG = 0x000000B7;
+pub const ATTEMPTED_SWITCH_FROM_DPC: ULONG = 0x000000B8;
+pub const CHIPSET_DETECTED_ERROR: ULONG = 0x000000B9;
+pub const SESSION_HAS_VALID_VIEWS_ON_EXIT: ULONG = 0x000000BA;
+pub const NETWORK_BOOT_INITIALIZATION_FAILED: ULONG = 0x000000BB;
+pub const NETWORK_BOOT_DUPLICATE_ADDRESS: ULONG = 0x000000BC;
+pub const INVALID_HIBERNATED_STATE: ULONG = 0x000000BD;
+pub const ATTEMPTED_WRITE_TO_READONLY_MEMORY: ULONG = 0x000000BE;
+pub const MUTEX_ALREADY_OWNED: ULONG = 0x000000BF;
+pub const PCI_CONFIG_SPACE_ACCESS_FAILURE: ULONG = 0x000000C0;
+pub const SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION: ULONG = 0x000000C1;
+pub const BAD_POOL_CALLER: ULONG = 0x000000C2;
+pub const SYSTEM_IMAGE_BAD_SIGNATURE: ULONG = 0x000000C3;
+pub const DRIVER_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000C4;
+pub const DRIVER_CORRUPTED_EXPOOL: ULONG = 0x000000C5;
+pub const DRIVER_CAUGHT_MODIFYING_FREED_POOL: ULONG = 0x000000C6;
+pub const TIMER_OR_DPC_INVALID: ULONG = 0x000000C7;
+pub const IRQL_UNEXPECTED_VALUE: ULONG = 0x000000C8;
+pub const DRIVER_VERIFIER_IOMANAGER_VIOLATION: ULONG = 0x000000C9;
+pub const PNP_DETECTED_FATAL_ERROR: ULONG = 0x000000CA;
+pub const DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS: ULONG = 0x000000CB;
+pub const PAGE_FAULT_IN_FREED_SPECIAL_POOL: ULONG = 0x000000CC;
+pub const PAGE_FAULT_BEYOND_END_OF_ALLOCATION: ULONG = 0x000000CD;
+pub const DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS: ULONG = 0x000000CE;
+pub const TERMINAL_SERVER_DRIVER_MADE_INCORRECT_MEMORY_REFERENCE: ULONG = 0x000000CF;
+pub const DRIVER_CORRUPTED_MMPOOL: ULONG = 0x000000D0;
+pub const DRIVER_IRQL_NOT_LESS_OR_EQUAL: ULONG = 0x000000D1;
+pub const BUGCODE_ID_DRIVER: ULONG = 0x000000D2;
+pub const DRIVER_PORTION_MUST_BE_NONPAGED: ULONG = 0x000000D3;
+pub const SYSTEM_SCAN_AT_RAISED_IRQL_CAUGHT_IMPROPER_DRIVER_UNLOAD: ULONG = 0x000000D4;
+pub const DRIVER_PAGE_FAULT_IN_FREED_SPECIAL_POOL: ULONG = 0x000000D5;
+pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION: ULONG = 0x000000D6;
+pub const DRIVER_PAGE_FAULT_BEYOND_END_OF_ALLOCATION_M: ULONG = 0x100000D6;
+pub const DRIVER_UNMAPPING_INVALID_VIEW: ULONG = 0x000000D7;
+pub const DRIVER_USED_EXCESSIVE_PTES: ULONG = 0x000000D8;
+pub const LOCKED_PAGES_TRACKER_CORRUPTION: ULONG = 0x000000D9;
+pub const SYSTEM_PTE_MISUSE: ULONG = 0x000000DA;
+pub const DRIVER_CORRUPTED_SYSPTES: ULONG = 0x000000DB;
+pub const DRIVER_INVALID_STACK_ACCESS: ULONG = 0x000000DC;
+pub const POOL_CORRUPTION_IN_FILE_AREA: ULONG = 0x000000DE;
+pub const IMPERSONATING_WORKER_THREAD: ULONG = 0x000000DF;
+pub const ACPI_BIOS_FATAL_ERROR: ULONG = 0x000000E0;
+pub const WORKER_THREAD_RETURNED_AT_BAD_IRQL: ULONG = 0x000000E1;
+pub const MANUALLY_INITIATED_CRASH: ULONG = 0x000000E2;
+pub const RESOURCE_NOT_OWNED: ULONG = 0x000000E3;
+pub const WORKER_INVALID: ULONG = 0x000000E4;
+pub const POWER_FAILURE_SIMULATE: ULONG = 0x000000E5;
+pub const DRIVER_VERIFIER_DMA_VIOLATION: ULONG = 0x000000E6;
+pub const INVALID_FLOATING_POINT_STATE: ULONG = 0x000000E7;
+pub const INVALID_CANCEL_OF_FILE_OPEN: ULONG = 0x000000E8;
+pub const ACTIVE_EX_WORKER_THREAD_TERMINATION: ULONG = 0x000000E9;
+pub const SAVER_UNSPECIFIED: ULONG = 0x0000F000;
+pub const SAVER_BLANKSCREEN: ULONG = 0x0000F002;
+pub const SAVER_INPUT: ULONG = 0x0000F003;
+pub const SAVER_WATCHDOG: ULONG = 0x0000F004;
+pub const SAVER_STARTNOTVISIBLE: ULONG = 0x0000F005;
+pub const SAVER_NAVIGATIONMODEL: ULONG = 0x0000F006;
+pub const SAVER_OUTOFMEMORY: ULONG = 0x0000F007;
+pub const SAVER_GRAPHICS: ULONG = 0x0000F008;
+pub const SAVER_NAVSERVERTIMEOUT: ULONG = 0x0000F009;
+pub const SAVER_CHROMEPROCESSCRASH: ULONG = 0x0000F00A;
+pub const SAVER_NOTIFICATIONDISMISSAL: ULONG = 0x0000F00B;
+pub const SAVER_SPEECHDISMISSAL: ULONG = 0x0000F00C;
+pub const SAVER_CALLDISMISSAL: ULONG = 0x0000F00D;
+pub const SAVER_APPBARDISMISSAL: ULONG = 0x0000F00E;
+pub const SAVER_RILADAPTATIONCRASH: ULONG = 0x0000F00F;
+pub const SAVER_APPLISTUNREACHABLE: ULONG = 0x0000F010;
+pub const SAVER_REPORTNOTIFICATIONFAILURE: ULONG = 0x0000F011;
+pub const SAVER_UNEXPECTEDSHUTDOWN: ULONG = 0x0000F012;
+pub const SAVER_RPCFAILURE: ULONG = 0x0000F013;
+pub const SAVER_AUXILIARYFULLDUMP: ULONG = 0x0000F014;
+pub const SAVER_ACCOUNTPROVSVCINITFAILURE: ULONG = 0x0000F015;
+pub const SAVER_MTBFCOMMANDTIMEOUT: ULONG = 0x00000315;
+pub const SAVER_MTBFCOMMANDHANG: ULONG = 0x0000F101;
+pub const SAVER_MTBFPASSBUGCHECK: ULONG = 0x0000F102;
+pub const SAVER_MTBFIOERROR: ULONG = 0x0000F103;
+pub const SAVER_RENDERTHREADHANG: ULONG = 0x0000F200;
+pub const SAVER_RENDERMOBILEUIOOM: ULONG = 0x0000F201;
+pub const SAVER_DEVICEUPDATEUNSPECIFIED: ULONG = 0x0000F300;
+pub const SAVER_AUDIODRIVERHANG: ULONG = 0x0000F400;
+pub const SAVER_BATTERYPULLOUT: ULONG = 0x0000F500;
+pub const SAVER_MEDIACORETESTHANG: ULONG = 0x0000F600;
+pub const SAVER_RESOURCEMANAGEMENT: ULONG = 0x0000F700;
+pub const SAVER_CAPTURESERVICE: ULONG = 0x0000F800;
+pub const SAVER_WAITFORSHELLREADY: ULONG = 0x0000F900;
+pub const SAVER_NONRESPONSIVEPROCESS: ULONG = 0x00000194;
+pub const SAVER_SICKAPPLICATION: ULONG = 0x00008866;
+pub const THREAD_STUCK_IN_DEVICE_DRIVER: ULONG = 0x000000EA;
+pub const THREAD_STUCK_IN_DEVICE_DRIVER_M: ULONG = 0x100000EA;
+pub const DIRTY_MAPPED_PAGES_CONGESTION: ULONG = 0x000000EB;
+pub const SESSION_HAS_VALID_SPECIAL_POOL_ON_EXIT: ULONG = 0x000000EC;
+pub const UNMOUNTABLE_BOOT_VOLUME: ULONG = 0x000000ED;
+pub const CRITICAL_PROCESS_DIED: ULONG = 0x000000EF;
+pub const STORAGE_MINIPORT_ERROR: ULONG = 0x000000F0;
+pub const SCSI_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000F1;
+pub const HARDWARE_INTERRUPT_STORM: ULONG = 0x000000F2;
+pub const DISORDERLY_SHUTDOWN: ULONG = 0x000000F3;
+pub const CRITICAL_OBJECT_TERMINATION: ULONG = 0x000000F4;
+pub const FLTMGR_FILE_SYSTEM: ULONG = 0x000000F5;
+pub const PCI_VERIFIER_DETECTED_VIOLATION: ULONG = 0x000000F6;
+pub const DRIVER_OVERRAN_STACK_BUFFER: ULONG = 0x000000F7;
+pub const RAMDISK_BOOT_INITIALIZATION_FAILED: ULONG = 0x000000F8;
+pub const DRIVER_RETURNED_STATUS_REPARSE_FOR_VOLUME_OPEN: ULONG = 0x000000F9;
+pub const HTTP_DRIVER_CORRUPTED: ULONG = 0x000000FA;
+pub const RECURSIVE_MACHINE_CHECK: ULONG = 0x000000FB;
+pub const ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY: ULONG = 0x000000FC;
+pub const DIRTY_NOWRITE_PAGES_CONGESTION: ULONG = 0x000000FD;
+pub const BUGCODE_USB_DRIVER: ULONG = 0x000000FE;
+pub const BC_BLUETOOTH_VERIFIER_FAULT: ULONG = 0x00000BFE;
+pub const BC_BTHMINI_VERIFIER_FAULT: ULONG = 0x00000BFF;
+pub const RESERVE_QUEUE_OVERFLOW: ULONG = 0x000000FF;
+pub const LOADER_BLOCK_MISMATCH: ULONG = 0x00000100;
+pub const CLOCK_WATCHDOG_TIMEOUT: ULONG = 0x00000101;
+pub const DPC_WATCHDOG_TIMEOUT: ULONG = 0x00000102;
+pub const MUP_FILE_SYSTEM: ULONG = 0x00000103;
+pub const AGP_INVALID_ACCESS: ULONG = 0x00000104;
+pub const AGP_GART_CORRUPTION: ULONG = 0x00000105;
+pub const AGP_ILLEGALLY_REPROGRAMMED: ULONG = 0x00000106;
+pub const KERNEL_EXPAND_STACK_ACTIVE: ULONG = 0x00000107;
+pub const THIRD_PARTY_FILE_SYSTEM_FAILURE: ULONG = 0x00000108;
+pub const CRITICAL_STRUCTURE_CORRUPTION: ULONG = 0x00000109;
+pub const APP_TAGGING_INITIALIZATION_FAILED: ULONG = 0x0000010A;
+pub const DFSC_FILE_SYSTEM: ULONG = 0x0000010B;
+pub const FSRTL_EXTRA_CREATE_PARAMETER_VIOLATION: ULONG = 0x0000010C;
+pub const WDF_VIOLATION: ULONG = 0x0000010D;
+pub const VIDEO_MEMORY_MANAGEMENT_INTERNAL: ULONG = 0x0000010E;
+pub const DRIVER_INVALID_CRUNTIME_PARAMETER: ULONG = 0x00000110;
+pub const RECURSIVE_NMI: ULONG = 0x00000111;
+pub const MSRPC_STATE_VIOLATION: ULONG = 0x00000112;
+pub const VIDEO_DXGKRNL_FATAL_ERROR: ULONG = 0x00000113;
+pub const VIDEO_SHADOW_DRIVER_FATAL_ERROR: ULONG = 0x00000114;
+pub const AGP_INTERNAL: ULONG = 0x00000115;
+pub const VIDEO_TDR_FAILURE: ULONG = 0x00000116;
+pub const VIDEO_TDR_TIMEOUT_DETECTED: ULONG = 0x00000117;
+pub const NTHV_GUEST_ERROR: ULONG = 0x00000118;
+pub const VIDEO_SCHEDULER_INTERNAL_ERROR: ULONG = 0x00000119;
+pub const EM_INITIALIZATION_ERROR: ULONG = 0x0000011A;
+pub const DRIVER_RETURNED_HOLDING_CANCEL_LOCK: ULONG = 0x0000011B;
+pub const ATTEMPTED_WRITE_TO_CM_PROTECTED_STORAGE: ULONG = 0x0000011C;
+pub const EVENT_TRACING_FATAL_ERROR: ULONG = 0x0000011D;
+pub const TOO_MANY_RECURSIVE_FAULTS: ULONG = 0x0000011E;
+pub const INVALID_DRIVER_HANDLE: ULONG = 0x0000011F;
+pub const BITLOCKER_FATAL_ERROR: ULONG = 0x00000120;
+pub const DRIVER_VIOLATION: ULONG = 0x00000121;
+pub const WHEA_INTERNAL_ERROR: ULONG = 0x00000122;
+pub const CRYPTO_SELF_TEST_FAILURE: ULONG = 0x00000123;
+pub const WHEA_UNCORRECTABLE_ERROR: ULONG = 0x00000124;
+pub const NMR_INVALID_STATE: ULONG = 0x00000125;
+pub const NETIO_INVALID_POOL_CALLER: ULONG = 0x00000126;
+pub const PAGE_NOT_ZERO: ULONG = 0x00000127;
+pub const WORKER_THREAD_RETURNED_WITH_BAD_IO_PRIORITY: ULONG = 0x00000128;
+pub const WORKER_THREAD_RETURNED_WITH_BAD_PAGING_IO_PRIORITY: ULONG = 0x00000129;
+pub const MUI_NO_VALID_SYSTEM_LANGUAGE: ULONG = 0x0000012A;
+pub const FAULTY_HARDWARE_CORRUPTED_PAGE: ULONG = 0x0000012B;
+pub const EXFAT_FILE_SYSTEM: ULONG = 0x0000012C;
+pub const VOLSNAP_OVERLAPPED_TABLE_ACCESS: ULONG = 0x0000012D;
+pub const INVALID_MDL_RANGE: ULONG = 0x0000012E;
+pub const VHD_BOOT_INITIALIZATION_FAILED: ULONG = 0x0000012F;
+pub const DYNAMIC_ADD_PROCESSOR_MISMATCH: ULONG = 0x00000130;
+pub const INVALID_EXTENDED_PROCESSOR_STATE: ULONG = 0x00000131;
+pub const RESOURCE_OWNER_POINTER_INVALID: ULONG = 0x00000132;
+pub const DPC_WATCHDOG_VIOLATION: ULONG = 0x00000133;
+pub const DRIVE_EXTENDER: ULONG = 0x00000134;
+pub const REGISTRY_FILTER_DRIVER_EXCEPTION: ULONG = 0x00000135;
+pub const VHD_BOOT_HOST_VOLUME_NOT_ENOUGH_SPACE: ULONG = 0x00000136;
+pub const WIN32K_HANDLE_MANAGER: ULONG = 0x00000137;
+pub const GPIO_CONTROLLER_DRIVER_ERROR: ULONG = 0x00000138;
+pub const KERNEL_SECURITY_CHECK_FAILURE: ULONG = 0x00000139;
+pub const KERNEL_MODE_HEAP_CORRUPTION: ULONG = 0x0000013A;
+pub const PASSIVE_INTERRUPT_ERROR: ULONG = 0x0000013B;
+pub const INVALID_IO_BOOST_STATE: ULONG = 0x0000013C;
+pub const CRITICAL_INITIALIZATION_FAILURE: ULONG = 0x0000013D;
+pub const ERRATA_WORKAROUND_UNSUCCESSFUL: ULONG = 0x0000013E;
+pub const STORAGE_DEVICE_ABNORMALITY_DETECTED: ULONG = 0x00000140;
+pub const VIDEO_ENGINE_TIMEOUT_DETECTED: ULONG = 0x00000141;
+pub const VIDEO_TDR_APPLICATION_BLOCKED: ULONG = 0x00000142;
+pub const PROCESSOR_DRIVER_INTERNAL: ULONG = 0x00000143;
+pub const BUGCODE_USB3_DRIVER: ULONG = 0x00000144;
+pub const SECURE_BOOT_VIOLATION: ULONG = 0x00000145;
+pub const NDIS_NET_BUFFER_LIST_INFO_ILLEGALLY_TRANSFERRED: ULONG = 0x00000146;
+pub const ABNORMAL_RESET_DETECTED: ULONG = 0x00000147;
+pub const IO_OBJECT_INVALID: ULONG = 0x00000148;
+pub const REFS_FILE_SYSTEM: ULONG = 0x00000149;
+pub const KERNEL_WMI_INTERNAL: ULONG = 0x0000014A;
+pub const SOC_SUBSYSTEM_FAILURE: ULONG = 0x0000014B;
+pub const FATAL_ABNORMAL_RESET_ERROR: ULONG = 0x0000014C;
+pub const EXCEPTION_SCOPE_INVALID: ULONG = 0x0000014D;
+pub const SOC_CRITICAL_DEVICE_REMOVED: ULONG = 0x0000014E;
+pub const PDC_WATCHDOG_TIMEOUT: ULONG = 0x0000014F;
+pub const TCPIP_AOAC_NIC_ACTIVE_REFERENCE_LEAK: ULONG = 0x00000150;
+pub const UNSUPPORTED_INSTRUCTION_MODE: ULONG = 0x00000151;
+pub const INVALID_PUSH_LOCK_FLAGS: ULONG = 0x00000152;
+pub const KERNEL_LOCK_ENTRY_LEAKED_ON_THREAD_TERMINATION: ULONG = 0x00000153;
+pub const UNEXPECTED_STORE_EXCEPTION: ULONG = 0x00000154;
+pub const OS_DATA_TAMPERING: ULONG = 0x00000155;
+pub const WINSOCK_DETECTED_HUNG_CLOSESOCKET_LIVEDUMP: ULONG = 0x00000156;
+pub const KERNEL_THREAD_PRIORITY_FLOOR_VIOLATION: ULONG = 0x00000157;
+pub const ILLEGAL_IOMMU_PAGE_FAULT: ULONG = 0x00000158;
+pub const HAL_ILLEGAL_IOMMU_PAGE_FAULT: ULONG = 0x00000159;
+pub const SDBUS_INTERNAL_ERROR: ULONG = 0x0000015A;
+pub const WORKER_THREAD_RETURNED_WITH_SYSTEM_PAGE_PRIORITY_ACTIVE: ULONG = 0x0000015B;
+pub const PDC_WATCHDOG_TIMEOUT_LIVEDUMP: ULONG = 0x0000015C;
+pub const SOC_SUBSYSTEM_FAILURE_LIVEDUMP: ULONG = 0x0000015D;
+pub const BUGCODE_NDIS_DRIVER_LIVE_DUMP: ULONG = 0x0000015E;
+pub const CONNECTED_STANDBY_WATCHDOG_TIMEOUT_LIVEDUMP: ULONG = 0x0000015F;
+pub const WIN32K_ATOMIC_CHECK_FAILURE: ULONG = 0x00000160;
+pub const LIVE_SYSTEM_DUMP: ULONG = 0x00000161;
+pub const KERNEL_AUTO_BOOST_INVALID_LOCK_RELEASE: ULONG = 0x00000162;
+pub const WORKER_THREAD_TEST_CONDITION: ULONG = 0x00000163;
+pub const WIN32K_CRITICAL_FAILURE: ULONG = 0x00000164;
+pub const CLUSTER_CSV_STATUS_IO_TIMEOUT_LIVEDUMP: ULONG = 0x00000165;
+pub const CLUSTER_RESOURCE_CALL_TIMEOUT_LIVEDUMP: ULONG = 0x00000166;
+pub const CLUSTER_CSV_SNAPSHOT_DEVICE_INFO_TIMEOUT_LIVEDUMP: ULONG = 0x00000167;
+pub const CLUSTER_CSV_STATE_TRANSITION_TIMEOUT_LIVEDUMP: ULONG = 0x00000168;
+pub const CLUSTER_CSV_VOLUME_ARRIVAL_LIVEDUMP: ULONG = 0x00000169;
+pub const CLUSTER_CSV_VOLUME_REMOVAL_LIVEDUMP: ULONG = 0x0000016A;
+pub const CLUSTER_CSV_CLUSTER_WATCHDOG_LIVEDUMP: ULONG = 0x0000016B;
+pub const INVALID_RUNDOWN_PROTECTION_FLAGS: ULONG = 0x0000016C;
+pub const INVALID_SLOT_ALLOCATOR_FLAGS: ULONG = 0x0000016D;
+pub const ERESOURCE_INVALID_RELEASE: ULONG = 0x0000016E;
+pub const CLUSTER_CSV_STATE_TRANSITION_INTERVAL_TIMEOUT_LIVEDUMP: ULONG = 0x0000016F;
+pub const CLUSTER_CSV_CLUSSVC_DISCONNECT_WATCHDOG: ULONG = 0x00000170;
+pub const CRYPTO_LIBRARY_INTERNAL_ERROR: ULONG = 0x00000171;
+pub const COREMSGCALL_INTERNAL_ERROR: ULONG = 0x00000173;
+pub const COREMSG_INTERNAL_ERROR: ULONG = 0x00000174;
+pub const PREVIOUS_FATAL_ABNORMAL_RESET_ERROR: ULONG = 0x00000175;
+pub const ELAM_DRIVER_DETECTED_FATAL_ERROR: ULONG = 0x00000178;
+pub const PDC_LOCK_WATCHDOG_LIVEDUMP: ULONG = 0x0000017C;
+pub const PDC_UNEXPECTED_REVOCATION_LIVEDUMP: ULONG = 0x0000017D;
+pub const WVR_LIVEDUMP_REPLICATION_IOCONTEXT_TIMEOUT: ULONG = 0x00000180;
+pub const WVR_LIVEDUMP_STATE_TRANSITION_TIMEOUT: ULONG = 0x00000181;
+pub const WVR_LIVEDUMP_RECOVERY_IOCONTEXT_TIMEOUT: ULONG = 0x00000182;
+pub const WVR_LIVEDUMP_APP_IO_TIMEOUT: ULONG = 0x00000183;
+pub const WVR_LIVEDUMP_MANUALLY_INITIATED: ULONG = 0x00000184;
+pub const WVR_LIVEDUMP_STATE_FAILURE: ULONG = 0x00000185;
+pub const WVR_LIVEDUMP_CRITICAL_ERROR: ULONG = 0x00000186;
+pub const VIDEO_DWMINIT_TIMEOUT_FALLBACK_BDD: ULONG = 0x00000187;
+pub const CLUSTER_CSVFS_LIVEDUMP: ULONG = 0x00000188;
+pub const BAD_OBJECT_HEADER: ULONG = 0x00000189;
+pub const SILO_CORRUPT: ULONG = 0x0000018A;
+pub const SECURE_KERNEL_ERROR: ULONG = 0x0000018B;
+pub const HYPERGUARD_VIOLATION: ULONG = 0x0000018C;
+pub const WIN32K_CRITICAL_FAILURE_LIVEDUMP: ULONG = 0x00000190;
+pub const PF_DETECTED_CORRUPTION: ULONG = 0x00000191;
+pub const KERNEL_AUTO_BOOST_LOCK_ACQUISITION_WITH_RAISED_IRQL: ULONG = 0x00000192;
+pub const VIDEO_DXGKRNL_LIVEDUMP: ULONG = 0x00000193;
+pub const KERNEL_STORAGE_SLOT_IN_USE: ULONG = 0x00000199;
+pub const SMB_SERVER_LIVEDUMP: ULONG = 0x00000195;
+pub const LOADER_ROLLBACK_DETECTED: ULONG = 0x00000196;
+pub const WIN32K_SECURITY_FAILURE: ULONG = 0x00000197;
+pub const UFX_LIVEDUMP: ULONG = 0x00000198;
+pub const WORKER_THREAD_RETURNED_WHILE_ATTACHED_TO_SILO: ULONG = 0x0000019A;
+pub const TTM_FATAL_ERROR: ULONG = 0x0000019B;
+pub const WIN32K_POWER_WATCHDOG_TIMEOUT: ULONG = 0x0000019C;
+pub const CLUSTER_SVHDX_LIVEDUMP: ULONG = 0x0000019D;
+pub const DRIVER_VERIFIER_DETECTED_VIOLATION_LIVEDUMP: ULONG = 0x000001C4;
+pub const IO_THREADPOOL_DEADLOCK_LIVEDUMP: ULONG = 0x000001C5;
+pub const XBOX_CORRUPTED_IMAGE: ULONG = 0x00000357;
+pub const XBOX_INVERTED_FUNCTION_TABLE_OVERFLOW: ULONG = 0x00000358;
+pub const XBOX_CORRUPTED_IMAGE_BASE: ULONG = 0x00000359;
+pub const XBOX_360_SYSTEM_CRASH: ULONG = 0x00000360;
+pub const XBOX_360_SYSTEM_CRASH_RESERVED: ULONG = 0x00000420;
+pub const HYPERVISOR_ERROR: ULONG = 0x00020001;
+pub const WINLOGON_FATAL_ERROR: ULONG = 0xC000021A;
+pub const MANUALLY_INITIATED_CRASH1: ULONG = 0xDEADDEAD;
+pub const BUGCHECK_CONTEXT_MODIFIER: ULONG = 0x80000000;
diff --git a/third_party/rust/winapi/src/shared/cderr.rs b/third_party/rust/winapi/src/shared/cderr.rs
new file mode 100644
index 0000000000..07ea187ece
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/cderr.rs
@@ -0,0 +1,44 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Common dialog error return codes
+use shared::minwindef::DWORD;
+pub const CDERR_DIALOGFAILURE: DWORD = 0xFFFF;
+pub const CDERR_GENERALCODES: DWORD = 0x0000;
+pub const CDERR_STRUCTSIZE: DWORD = 0x0001;
+pub const CDERR_INITIALIZATION: DWORD = 0x0002;
+pub const CDERR_NOTEMPLATE: DWORD = 0x0003;
+pub const CDERR_NOHINSTANCE: DWORD = 0x0004;
+pub const CDERR_LOADSTRFAILURE: DWORD = 0x0005;
+pub const CDERR_FINDRESFAILURE: DWORD = 0x0006;
+pub const CDERR_LOADRESFAILURE: DWORD = 0x0007;
+pub const CDERR_LOCKRESFAILURE: DWORD = 0x0008;
+pub const CDERR_MEMALLOCFAILURE: DWORD = 0x0009;
+pub const CDERR_MEMLOCKFAILURE: DWORD = 0x000A;
+pub const CDERR_NOHOOK: DWORD = 0x000B;
+pub const CDERR_REGISTERMSGFAIL: DWORD = 0x000C;
+pub const PDERR_PRINTERCODES: DWORD = 0x1000;
+pub const PDERR_SETUPFAILURE: DWORD = 0x1001;
+pub const PDERR_PARSEFAILURE: DWORD = 0x1002;
+pub const PDERR_RETDEFFAILURE: DWORD = 0x1003;
+pub const PDERR_LOADDRVFAILURE: DWORD = 0x1004;
+pub const PDERR_GETDEVMODEFAIL: DWORD = 0x1005;
+pub const PDERR_INITFAILURE: DWORD = 0x1006;
+pub const PDERR_NODEVICES: DWORD = 0x1007;
+pub const PDERR_NODEFAULTPRN: DWORD = 0x1008;
+pub const PDERR_DNDMMISMATCH: DWORD = 0x1009;
+pub const PDERR_CREATEICFAILURE: DWORD = 0x100A;
+pub const PDERR_PRINTERNOTFOUND: DWORD = 0x100B;
+pub const PDERR_DEFAULTDIFFERENT: DWORD = 0x100C;
+pub const CFERR_CHOOSEFONTCODES: DWORD = 0x2000;
+pub const CFERR_NOFONTS: DWORD = 0x2001;
+pub const CFERR_MAXLESSTHANMIN: DWORD = 0x2002;
+pub const FNERR_FILENAMECODES: DWORD = 0x3000;
+pub const FNERR_SUBCLASSFAILURE: DWORD = 0x3001;
+pub const FNERR_INVALIDFILENAME: DWORD = 0x3002;
+pub const FNERR_BUFFERTOOSMALL: DWORD = 0x3003;
+pub const FRERR_FINDREPLACECODES: DWORD = 0x4000;
+pub const FRERR_BUFFERLENGTHZERO: DWORD = 0x4001;
+pub const CCERR_CHOOSECOLORCODES: DWORD = 0x5000;
diff --git a/third_party/rust/winapi/src/shared/cfg.rs b/third_party/rust/winapi/src/shared/cfg.rs
new file mode 100644
index 0000000000..4abe3838bf
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/cfg.rs
@@ -0,0 +1,138 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! common Configuration Manager definitions for both user mode and kernel mode code
+use shared::minwindef::{DWORD, ULONG};
+ENUM!{enum PNP_VETO_TYPE {
+ PNP_VetoTypeUnknown,
+ PNP_VetoLegacyDevice,
+ PNP_VetoPendingClose,
+ PNP_VetoWindowsApp,
+ PNP_VetoWindowsService,
+ PNP_VetoOutstandingOpen,
+ PNP_VetoDevice,
+ PNP_VetoDriver,
+ PNP_VetoIllegalDeviceRequest,
+ PNP_VetoInsufficientPower,
+ PNP_VetoNonDisableable,
+ PNP_VetoLegacyDriver,
+ PNP_VetoInsufficientRights,
+}}
+pub type PPNP_VETO_TYPE = *mut PNP_VETO_TYPE;
+pub const CM_PROB_NOT_CONFIGURED: DWORD = 0x00000001;
+pub const CM_PROB_DEVLOADER_FAILED: DWORD = 0x00000002;
+pub const CM_PROB_OUT_OF_MEMORY: DWORD = 0x00000003;
+pub const CM_PROB_ENTRY_IS_WRONG_TYPE: DWORD = 0x00000004;
+pub const CM_PROB_LACKED_ARBITRATOR: DWORD = 0x00000005;
+pub const CM_PROB_BOOT_CONFIG_CONFLICT: DWORD = 0x00000006;
+pub const CM_PROB_FAILED_FILTER: DWORD = 0x00000007;
+pub const CM_PROB_DEVLOADER_NOT_FOUND: DWORD = 0x00000008;
+pub const CM_PROB_INVALID_DATA: DWORD = 0x00000009;
+pub const CM_PROB_FAILED_START: DWORD = 0x0000000A;
+pub const CM_PROB_LIAR: DWORD = 0x0000000B;
+pub const CM_PROB_NORMAL_CONFLICT: DWORD = 0x0000000C;
+pub const CM_PROB_NOT_VERIFIED: DWORD = 0x0000000D;
+pub const CM_PROB_NEED_RESTART: DWORD = 0x0000000E;
+pub const CM_PROB_REENUMERATION: DWORD = 0x0000000F;
+pub const CM_PROB_PARTIAL_LOG_CONF: DWORD = 0x00000010;
+pub const CM_PROB_UNKNOWN_RESOURCE: DWORD = 0x00000011;
+pub const CM_PROB_REINSTALL: DWORD = 0x00000012;
+pub const CM_PROB_REGISTRY: DWORD = 0x00000013;
+pub const CM_PROB_VXDLDR: DWORD = 0x00000014;
+pub const CM_PROB_WILL_BE_REMOVED: DWORD = 0x00000015;
+pub const CM_PROB_DISABLED: DWORD = 0x00000016;
+pub const CM_PROB_DEVLOADER_NOT_READY: DWORD = 0x00000017;
+pub const CM_PROB_DEVICE_NOT_THERE: DWORD = 0x00000018;
+pub const CM_PROB_MOVED: DWORD = 0x00000019;
+pub const CM_PROB_TOO_EARLY: DWORD = 0x0000001A;
+pub const CM_PROB_NO_VALID_LOG_CONF: DWORD = 0x0000001B;
+pub const CM_PROB_FAILED_INSTALL: DWORD = 0x0000001C;
+pub const CM_PROB_HARDWARE_DISABLED: DWORD = 0x0000001D;
+pub const CM_PROB_CANT_SHARE_IRQ: DWORD = 0x0000001E;
+pub const CM_PROB_FAILED_ADD: DWORD = 0x0000001F;
+pub const CM_PROB_DISABLED_SERVICE: DWORD = 0x00000020;
+pub const CM_PROB_TRANSLATION_FAILED: DWORD = 0x00000021;
+pub const CM_PROB_NO_SOFTCONFIG: DWORD = 0x00000022;
+pub const CM_PROB_BIOS_TABLE: DWORD = 0x00000023;
+pub const CM_PROB_IRQ_TRANSLATION_FAILED: DWORD = 0x00000024;
+pub const CM_PROB_FAILED_DRIVER_ENTRY: DWORD = 0x00000025;
+pub const CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD: DWORD = 0x00000026;
+pub const CM_PROB_DRIVER_FAILED_LOAD: DWORD = 0x00000027;
+pub const CM_PROB_DRIVER_SERVICE_KEY_INVALID: DWORD = 0x00000028;
+pub const CM_PROB_LEGACY_SERVICE_NO_DEVICES: DWORD = 0x00000029;
+pub const CM_PROB_DUPLICATE_DEVICE: DWORD = 0x0000002A;
+pub const CM_PROB_FAILED_POST_START: DWORD = 0x0000002B;
+pub const CM_PROB_HALTED: DWORD = 0x0000002C;
+pub const CM_PROB_PHANTOM: DWORD = 0x0000002D;
+pub const CM_PROB_SYSTEM_SHUTDOWN: DWORD = 0x0000002E;
+pub const CM_PROB_HELD_FOR_EJECT: DWORD = 0x0000002F;
+pub const CM_PROB_DRIVER_BLOCKED: DWORD = 0x00000030;
+pub const CM_PROB_REGISTRY_TOO_LARGE: DWORD = 0x00000031;
+pub const CM_PROB_SETPROPERTIES_FAILED: DWORD = 0x00000032;
+pub const CM_PROB_WAITING_ON_DEPENDENCY: DWORD = 0x00000033;
+pub const CM_PROB_UNSIGNED_DRIVER: DWORD = 0x00000034;
+pub const CM_PROB_USED_BY_DEBUGGER: DWORD = 0x00000035;
+pub const NUM_CM_PROB_V1: DWORD = 0x00000025;
+pub const NUM_CM_PROB_V2: DWORD = 0x00000032;
+pub const NUM_CM_PROB_V3: DWORD = 0x00000033;
+pub const NUM_CM_PROB_V4: DWORD = 0x00000034;
+pub const NUM_CM_PROB_V5: DWORD = 0x00000035;
+pub const NUM_CM_PROB_V6: DWORD = 0x00000036;
+pub const DN_ROOT_ENUMERATED: DWORD = 0x00000001;
+pub const DN_DRIVER_LOADED: DWORD = 0x00000002;
+pub const DN_ENUM_LOADED: DWORD = 0x00000004;
+pub const DN_STARTED: DWORD = 0x00000008;
+pub const DN_MANUAL: DWORD = 0x00000010;
+pub const DN_NEED_TO_ENUM: DWORD = 0x00000020;
+pub const DN_NOT_FIRST_TIME: DWORD = 0x00000040;
+pub const DN_HARDWARE_ENUM: DWORD = 0x00000080;
+pub const DN_LIAR: DWORD = 0x00000100;
+pub const DN_HAS_MARK: DWORD = 0x00000200;
+pub const DN_HAS_PROBLEM: DWORD = 0x00000400;
+pub const DN_FILTERED: DWORD = 0x00000800;
+pub const DN_MOVED: DWORD = 0x00001000;
+pub const DN_DISABLEABLE: DWORD = 0x00002000;
+pub const DN_REMOVABLE: DWORD = 0x00004000;
+pub const DN_PRIVATE_PROBLEM: DWORD = 0x00008000;
+pub const DN_MF_PARENT: DWORD = 0x00010000;
+pub const DN_MF_CHILD: DWORD = 0x00020000;
+pub const DN_WILL_BE_REMOVED: DWORD = 0x00040000;
+pub const DN_NOT_FIRST_TIMEE: DWORD = 0x00080000;
+pub const DN_STOP_FREE_RES: DWORD = 0x00100000;
+pub const DN_REBAL_CANDIDATE: DWORD = 0x00200000;
+pub const DN_BAD_PARTIAL: DWORD = 0x00400000;
+pub const DN_NT_ENUMERATOR: DWORD = 0x00800000;
+pub const DN_NT_DRIVER: DWORD = 0x01000000;
+pub const DN_NEEDS_LOCKING: DWORD = 0x02000000;
+pub const DN_ARM_WAKEUP: DWORD = 0x04000000;
+pub const DN_APM_ENUMERATOR: DWORD = 0x08000000;
+pub const DN_APM_DRIVER: DWORD = 0x10000000;
+pub const DN_SILENT_INSTALL: DWORD = 0x20000000;
+pub const DN_NO_SHOW_IN_DM: DWORD = 0x40000000;
+pub const DN_BOOT_LOG_PROB: DWORD = 0x80000000;
+pub const DN_NEED_RESTART: DWORD = DN_LIAR;
+pub const DN_DRIVER_BLOCKED: DWORD = DN_NOT_FIRST_TIME;
+pub const DN_LEGACY_DRIVER: DWORD = DN_MOVED;
+pub const DN_CHILD_WITH_INVALID_ID: DWORD = DN_HAS_MARK;
+pub const DN_DEVICE_DISCONNECTED: DWORD = DN_NEEDS_LOCKING;
+pub const DN_CHANGEABLE_FLAGS: DWORD = DN_NOT_FIRST_TIME + DN_HARDWARE_ENUM + DN_HAS_MARK
+ + DN_DISABLEABLE + DN_REMOVABLE + DN_MF_CHILD + DN_MF_PARENT + DN_NOT_FIRST_TIMEE
+ + DN_STOP_FREE_RES + DN_REBAL_CANDIDATE + DN_NT_ENUMERATOR + DN_NT_DRIVER + DN_SILENT_INSTALL
+ + DN_NO_SHOW_IN_DM;
+pub const LCPRI_FORCECONFIG: ULONG = 0x00000000;
+pub const LCPRI_BOOTCONFIG: ULONG = 0x00000001;
+pub const LCPRI_DESIRED: ULONG = 0x00002000;
+pub const LCPRI_NORMAL: ULONG = 0x00003000;
+pub const LCPRI_LASTBESTCONFIG: ULONG = 0x00003FFF;
+pub const LCPRI_SUBOPTIMAL: ULONG = 0x00005000;
+pub const LCPRI_LASTSOFTCONFIG: ULONG = 0x00007FFF;
+pub const LCPRI_RESTART: ULONG = 0x00008000;
+pub const LCPRI_REBOOT: ULONG = 0x00009000;
+pub const LCPRI_POWEROFF: ULONG = 0x0000A000;
+pub const LCPRI_HARDRECONFIG: ULONG = 0x0000C000;
+pub const LCPRI_HARDWIRED: ULONG = 0x0000E000;
+pub const LCPRI_IMPOSSIBLE: ULONG = 0x0000F000;
+pub const LCPRI_DISABLED: ULONG = 0x0000FFFF;
+pub const MAX_LCPRI: ULONG = 0x0000FFFF;
diff --git a/third_party/rust/winapi/src/shared/d3d9.rs b/third_party/rust/winapi/src/shared/d3d9.rs
new file mode 100644
index 0000000000..437c811119
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/d3d9.rs
@@ -0,0 +1,1268 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D include file
+use shared::basetsd::UINT32;
+use shared::d3d9caps::{D3DCAPS9, D3DCONTENTPROTECTIONCAPS, D3DOVERLAYCAPS};
+use shared::d3d9types::{
+ D3DADAPTER_IDENTIFIER9, D3DAUTHENTICATEDCHANNELTYPE, D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
+ D3DBACKBUFFER_TYPE, D3DBOX, D3DCLIPSTATUS9, D3DCOLOR, D3DCOMPOSERECTSOP, D3DCUBEMAP_FACES,
+ D3DDEVICE_CREATION_PARAMETERS, D3DDEVTYPE, D3DDISPLAYMODE, D3DDISPLAYMODEEX,
+ D3DDISPLAYMODEFILTER, D3DDISPLAYROTATION, D3DENCRYPTED_BLOCK_INFO, D3DFORMAT, D3DGAMMARAMP,
+ D3DINDEXBUFFER_DESC, D3DLIGHT9, D3DLOCKED_BOX, D3DLOCKED_RECT, D3DMATERIAL9, D3DMATRIX,
+ D3DMULTISAMPLE_TYPE, D3DPOOL, D3DPRESENTSTATS, D3DPRESENT_PARAMETERS, D3DPRIMITIVETYPE,
+ D3DQUERYTYPE, D3DRASTER_STATUS, D3DRECT, D3DRECTPATCH_INFO, D3DRENDERSTATETYPE,
+ D3DRESOURCETYPE, D3DSAMPLERSTATETYPE, D3DSTATEBLOCKTYPE, D3DSURFACE_DESC, D3DTEXTUREFILTERTYPE,
+ D3DTEXTURESTAGESTATETYPE, D3DTRANSFORMSTATETYPE, D3DTRIPATCH_INFO, D3DVERTEXBUFFER_DESC,
+ D3DVERTEXELEMENT9, D3DVIEWPORT9, D3DVOLUME_DESC,
+};
+use shared::guiddef::{GUID, IID};
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT};
+use shared::windef::{HDC, HMONITOR, HWND, POINT, RECT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::wingdi::{PALETTEENTRY, RGNDATA};
+use um::winnt::{HANDLE, HRESULT, LPCWSTR, LUID, VOID};
+pub const D3D_SDK_VERSION: DWORD = 32;
+pub const D3D9b_SDK_VERSION: DWORD = 31;
+DEFINE_GUID!{IID_IDirect3D9,
+ 0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x01, 0x47, 0xf4, 0x27, 0x5c}
+DEFINE_GUID!{IID_IDirect3DDevice9,
+ 0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0x0d, 0x82, 0xb9, 0xeb}
+DEFINE_GUID!{IID_IDirect3DResource9,
+ 0x05eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x04}
+DEFINE_GUID!{IID_IDirect3DBaseTexture9,
+ 0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce}
+DEFINE_GUID!{IID_IDirect3DTexture9,
+ 0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5}
+DEFINE_GUID!{IID_IDirect3DCubeTexture9,
+ 0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f}
+DEFINE_GUID!{IID_IDirect3DVolumeTexture9,
+ 0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6}
+DEFINE_GUID!{IID_IDirect3DVertexBuffer9,
+ 0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3}
+DEFINE_GUID!{IID_IDirect3DIndexBuffer9,
+ 0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35}
+DEFINE_GUID!{IID_IDirect3DSurface9,
+ 0x0cfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b}
+DEFINE_GUID!{IID_IDirect3DVolume9,
+ 0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1}
+DEFINE_GUID!{IID_IDirect3DSwapChain9,
+ 0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0x0b, 0x0b, 0x50, 0x3b}
+DEFINE_GUID!{IID_IDirect3DVertexDeclaration9,
+ 0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46}
+DEFINE_GUID!{IID_IDirect3DVertexShader9,
+ 0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36}
+DEFINE_GUID!{IID_IDirect3DPixelShader9,
+ 0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89}
+DEFINE_GUID!{IID_IDirect3DStateBlock9,
+ 0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0x0f, 0x20, 0x6f, 0x21, 0x8b}
+DEFINE_GUID!{IID_IDirect3DQuery9,
+ 0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc}
+DEFINE_GUID!{IID_HelperName,
+ 0xe4a36723, 0xfdfe, 0x4b22, 0xb1, 0x46, 0x3c, 0x04, 0xc0, 0x7f, 0x4c, 0xc8}
+DEFINE_GUID!{IID_IDirect3D9Ex,
+ 0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d}
+DEFINE_GUID!{IID_IDirect3DDevice9Ex,
+ 0xb18b10ce, 0x2649, 0x405a, 0x87, 0x0f, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a}
+DEFINE_GUID!{IID_IDirect3DSwapChain9Ex,
+ 0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x03}
+DEFINE_GUID!{IID_IDirect3D9ExOverlayExtension,
+ 0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x08, 0x8c, 0x0d, 0xf8}
+DEFINE_GUID!{IID_IDirect3DDevice9Video,
+ 0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95}
+DEFINE_GUID!{IID_IDirect3DAuthenticatedChannel9,
+ 0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9}
+DEFINE_GUID!{IID_IDirect3DCryptoSession9,
+ 0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34}
+extern "system" {
+ pub fn Direct3DCreate9(
+ SDKVersion: UINT,
+ ) -> *mut IDirect3D9;
+ pub fn D3DPERF_BeginEvent(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> INT;
+ pub fn D3DPERF_EndEvent() -> INT;
+ pub fn D3DPERF_SetMarker(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> ();
+ pub fn D3DPERF_SetRegion(
+ col: D3DCOLOR,
+ wszName: LPCWSTR,
+ ) -> ();
+ pub fn D3DPERF_QueryRepeatFrame() -> BOOL;
+ pub fn D3DPERF_SetOptions(
+ dwOptions: DWORD,
+ ) -> ();
+ pub fn D3DPERF_GetStatus() -> DWORD;
+}
+RIDL!{#[uuid(0x81bdcbca, 0x64d4, 0x426d, 0xae, 0x8d, 0xad, 0x1, 0x47, 0xf4, 0x27, 0x5c)]
+interface IDirect3D9(IDirect3D9Vtbl): IUnknown(IUnknownVtbl) {
+ fn RegisterSoftwareDevice(
+ pInitializeFunction: *mut VOID,
+ ) -> HRESULT,
+ fn GetAdapterCount() -> UINT,
+ fn GetAdapterIdentifier(
+ Adapter: UINT,
+ Flags: DWORD,
+ pIdentifier: *mut D3DADAPTER_IDENTIFIER9,
+ ) -> HRESULT,
+ fn GetAdapterModeCount(
+ Adapter: UINT,
+ Format: D3DFORMAT,
+ ) -> UINT,
+ fn EnumAdapterModes(
+ Adapter: UINT,
+ Format: D3DFORMAT,
+ Mode: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetAdapterDisplayMode(
+ Adapter: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn CheckDeviceType(
+ Adapter: UINT,
+ DevType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ BackBufferFormat: D3DFORMAT,
+ bWindowed: BOOL,
+ ) -> HRESULT,
+ fn CheckDeviceFormat(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ Usage: DWORD,
+ RType: D3DRESOURCETYPE,
+ CheckFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn CheckDeviceMultiSampleType(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ SurfaceFormat: D3DFORMAT,
+ Windowed: BOOL,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ pQualityLevels: *mut DWORD,
+ ) -> HRESULT,
+ fn CheckDepthStencilMatch(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ AdapterFormat: D3DFORMAT,
+ RenderTargetFormat: D3DFORMAT,
+ DepthStencilFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn CheckDeviceFormatConversion(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ SourceFormat: D3DFORMAT,
+ TargetFormat: D3DFORMAT,
+ ) -> HRESULT,
+ fn GetDeviceCaps(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ pCaps: *mut D3DCAPS9,
+ ) -> HRESULT,
+ fn GetAdapterMonitor(
+ Adapter: UINT,
+ ) -> HMONITOR,
+ fn CreateDevice(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9 = *mut IDirect3D9;
+pub type PDIRECT3D9 = *mut IDirect3D9;
+RIDL!{#[uuid(0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb)]
+interface IDirect3DDevice9(IDirect3DDevice9Vtbl): IUnknown(IUnknownVtbl) {
+ fn TestCooperativeLevel() -> HRESULT,
+ fn GetAvailableTextureMem() -> UINT,
+ fn EvictManagedResources() -> HRESULT,
+ fn GetDirect3D(
+ ppD3D9: *mut *mut IDirect3D9,
+ ) -> HRESULT,
+ fn GetDeviceCaps(
+ pCaps: *mut D3DCAPS9,
+ ) -> HRESULT,
+ fn GetDisplayMode(
+ iSwapChain: UINT,
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetCreationParameters(
+ pParameters: *mut D3DDEVICE_CREATION_PARAMETERS,
+ ) -> HRESULT,
+ fn SetCursorProperties(
+ XHotSpot: UINT,
+ YHotSpot: UINT,
+ pCursorBitmap: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn SetCursorPosition(
+ X: INT,
+ Y: INT,
+ Flags: DWORD,
+ ) -> (),
+ fn ShowCursor(
+ bShow: BOOL,
+ ) -> BOOL,
+ fn CreateAdditionalSwapChain(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pSwapChain: *mut *mut IDirect3DSwapChain9,
+ ) -> HRESULT,
+ fn GetSwapChain(
+ iSwapChain: UINT,
+ pSwapChain: *mut *mut IDirect3DSwapChain9,
+ ) -> HRESULT,
+ fn GetNumberOfSwapChains() -> UINT,
+ fn Reset(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ) -> HRESULT,
+ fn Present(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ ) -> HRESULT,
+ fn GetBackBuffer(
+ iSwapChain: UINT,
+ iBackBuffer: UINT,
+ Type: D3DBACKBUFFER_TYPE,
+ ppBackBuffer: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRasterStatus(
+ iSwapChain: UINT,
+ pRasterStatus: *mut D3DRASTER_STATUS,
+ ) -> HRESULT,
+ fn SetDialogBoxMode(
+ bEnableDialogs: BOOL,
+ ) -> HRESULT,
+ fn SetGammaRamp(
+ iSwapChain: UINT,
+ Flags: DWORD,
+ pRamp: *const D3DGAMMARAMP,
+ ) -> (),
+ fn GetGammaRamp(
+ iSwapChain: UINT,
+ pRamp: *mut D3DGAMMARAMP,
+ ) -> (),
+ fn CreateTexture(
+ Width: UINT,
+ Height: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppTexture: *mut *mut IDirect3DTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateVolumeTexture(
+ Width: UINT,
+ Height: UINT,
+ Depth: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppVolumeTexture: *mut *mut IDirect3DVolumeTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateCubeTexture(
+ EdgeLength: UINT,
+ Levels: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppCubeTexture: *mut *mut IDirect3DCubeTexture9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateVertexBuffer(
+ Length: UINT,
+ Usage: DWORD,
+ FVF: DWORD,
+ Pool: D3DPOOL,
+ ppVertexBuffer: *mut *mut IDirect3DVertexBuffer9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateIndexBuffer(
+ Length: UINT,
+ Usage: DWORD,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppIndexBuffer: *mut *mut IDirect3DIndexBuffer9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateRenderTarget(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Lockable: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateDepthStencilSurface(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Discard: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn UpdateSurface(
+ pSourceSurface: *mut IDirect3DSurface9,
+ pSourceRect: *const RECT,
+ pDestinationSurface: *mut IDirect3DSurface9,
+ pDestPoint: *const POINT,
+ ) -> HRESULT,
+ fn UpdateTexture(
+ pSourceTexture: *mut IDirect3DBaseTexture9,
+ pDestinationTexture: *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn GetRenderTargetData(
+ pRenderTarget: *mut IDirect3DSurface9,
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetFrontBufferData(
+ iSwapChain: UINT,
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn StretchRect(
+ pSourceSurface: *mut IDirect3DSurface9,
+ pSourceRect: *const RECT,
+ pDestSurface: *mut IDirect3DSurface9,
+ pDestRect: *const RECT,
+ Filter: D3DTEXTUREFILTERTYPE,
+ ) -> HRESULT,
+ fn ColorFill(
+ pSurface: *mut IDirect3DSurface9,
+ pRect: *const RECT,
+ color: D3DCOLOR,
+ ) -> HRESULT,
+ fn CreateOffscreenPlainSurface(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn SetRenderTarget(
+ RenderTargetIndex: DWORD,
+ pRenderTarget: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRenderTarget(
+ RenderTargetIndex: DWORD,
+ ppRenderTarget: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn SetDepthStencilSurface(
+ pNewZStencil: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetDepthStencilSurface(
+ ppZStencilSurface: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn BeginScene() -> HRESULT,
+ fn EndScene() -> HRESULT,
+ fn Clear(
+ Count: DWORD,
+ pRects: *const D3DRECT,
+ Flags: DWORD,
+ Color: D3DCOLOR,
+ Z: FLOAT,
+ Stencil: DWORD,
+ ) -> HRESULT,
+ fn SetTransform(
+ State: D3DTRANSFORMSTATETYPE,
+ pMatrix: *const D3DMATRIX,
+ ) -> HRESULT,
+ fn GetTransform(
+ State: D3DTRANSFORMSTATETYPE,
+ pMatrix: *mut D3DMATRIX,
+ ) -> HRESULT,
+ fn MultiplyTransform(
+ arg1: D3DTRANSFORMSTATETYPE,
+ arg2: *const D3DMATRIX,
+ ) -> HRESULT,
+ fn SetViewport(
+ pViewport: *const D3DVIEWPORT9,
+ ) -> HRESULT,
+ fn GetViewport(
+ pViewport: *mut D3DVIEWPORT9,
+ ) -> HRESULT,
+ fn SetMaterial(
+ pMaterial: *const D3DMATERIAL9,
+ ) -> HRESULT,
+ fn GetMaterial(
+ pMaterial: *mut D3DMATERIAL9,
+ ) -> HRESULT,
+ fn SetLight(
+ Index: DWORD,
+ arg1: *const D3DLIGHT9,
+ ) -> HRESULT,
+ fn GetLight(
+ Index: DWORD,
+ arg1: *mut D3DLIGHT9,
+ ) -> HRESULT,
+ fn LightEnable(
+ Index: DWORD,
+ Enable: BOOL,
+ ) -> HRESULT,
+ fn GetLightEnable(
+ Index: DWORD,
+ pEnable: *mut BOOL,
+ ) -> HRESULT,
+ fn SetClipPlane(
+ Index: DWORD,
+ pPlane: *const FLOAT,
+ ) -> HRESULT,
+ fn GetClipPlane(
+ Index: DWORD,
+ pPlane: *mut FLOAT,
+ ) -> HRESULT,
+ fn SetRenderState(
+ State: D3DRENDERSTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn GetRenderState(
+ State: D3DRENDERSTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn CreateStateBlock(
+ Type: D3DSTATEBLOCKTYPE,
+ ppSB: *mut *mut IDirect3DStateBlock9,
+ ) -> HRESULT,
+ fn BeginStateBlock() -> HRESULT,
+ fn EndStateBlock(
+ ppSB: *mut *mut IDirect3DStateBlock9,
+ ) -> HRESULT,
+ fn SetClipStatus(
+ pClipStatus: *const D3DCLIPSTATUS9,
+ ) -> HRESULT,
+ fn GetClipStatus(
+ pClipStatus: *mut D3DCLIPSTATUS9,
+ ) -> HRESULT,
+ fn GetTexture(
+ Stage: DWORD,
+ ppTexture: *mut *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn SetTexture(
+ Stage: DWORD,
+ pTexture: *mut IDirect3DBaseTexture9,
+ ) -> HRESULT,
+ fn GetTextureStageState(
+ Stage: DWORD,
+ Type: D3DTEXTURESTAGESTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn SetTextureStageState(
+ Stage: DWORD,
+ Type: D3DTEXTURESTAGESTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn GetSamplerState(
+ Sampler: DWORD,
+ Type: D3DSAMPLERSTATETYPE,
+ pValue: *mut DWORD,
+ ) -> HRESULT,
+ fn SetSamplerState(
+ Sampler: DWORD,
+ Type: D3DSAMPLERSTATETYPE,
+ Value: DWORD,
+ ) -> HRESULT,
+ fn ValidateDevice(
+ pNumPasses: *mut DWORD,
+ ) -> HRESULT,
+ fn SetPaletteEntries(
+ PaletteNumber: UINT,
+ pEntries: *const PALETTEENTRY,
+ ) -> HRESULT,
+ fn GetPaletteEntries(
+ PaletteNumber: UINT,
+ pEntries: *mut PALETTEENTRY,
+ ) -> HRESULT,
+ fn SetCurrentTexturePalette(
+ PaletteNumber: UINT,
+ ) -> HRESULT,
+ fn GetCurrentTexturePalette(
+ PaletteNumber: *mut UINT,
+ ) -> HRESULT,
+ fn SetScissorRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn GetScissorRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn SetSoftwareVertexProcessing(
+ bSoftware: BOOL,
+ ) -> HRESULT,
+ fn GetSoftwareVertexProcessing() -> BOOL,
+ fn SetNPatchMode(
+ nSegments: FLOAT,
+ ) -> HRESULT,
+ fn GetNPatchMode() -> FLOAT,
+ fn DrawPrimitive(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ StartVertex: UINT,
+ PrimitiveCount: UINT,
+ ) -> HRESULT,
+ fn DrawIndexedPrimitive(
+ arg1: D3DPRIMITIVETYPE,
+ BaseVertexIndex: INT,
+ MinVertexIndex: UINT,
+ NumVertices: UINT,
+ startIndex: UINT,
+ primCount: UINT,
+ ) -> HRESULT,
+ fn DrawPrimitiveUP(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ PrimitiveCount: UINT,
+ pVertexStreamZeroData: *const VOID,
+ VertexStreamZeroStride: UINT,
+ ) -> HRESULT,
+ fn DrawIndexedPrimitiveUP(
+ PrimitiveType: D3DPRIMITIVETYPE,
+ MinVertexIndex: UINT,
+ NumVertices: UINT,
+ PrimitiveCount: UINT,
+ pIndexData: *const VOID,
+ IndexDataFormat: D3DFORMAT,
+ pVertexStreamZeroData: *const VOID,
+ VertexStreamZeroStride: UINT,
+ ) -> HRESULT,
+ fn ProcessVertices(
+ SrcStartIndex: UINT,
+ DestIndex: UINT,
+ VertexCount: UINT,
+ pDestBuffer: *mut IDirect3DVertexBuffer9,
+ pVertexDecl: *mut IDirect3DVertexDeclaration9,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn CreateVertexDeclaration(
+ pVertexElements: *const D3DVERTEXELEMENT9,
+ ppDecl: *mut *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn SetVertexDeclaration(
+ pDecl: *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn GetVertexDeclaration(
+ ppDecl: *mut *mut IDirect3DVertexDeclaration9,
+ ) -> HRESULT,
+ fn SetFVF(
+ FVF: DWORD,
+ ) -> HRESULT,
+ fn GetFVF(
+ pFVF: *mut DWORD,
+ ) -> HRESULT,
+ fn CreateVertexShader(
+ pFunction: *const DWORD,
+ ppShader: *mut *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn SetVertexShader(
+ pShader: *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn GetVertexShader(
+ ppShader: *mut *mut IDirect3DVertexShader9,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *const FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *mut FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *const INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *mut INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn SetVertexShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *const BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn GetVertexShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *mut BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn SetStreamSource(
+ StreamNumber: UINT,
+ pStreamData: *mut IDirect3DVertexBuffer9,
+ OffsetInBytes: UINT,
+ Stride: UINT,
+ ) -> HRESULT,
+ fn GetStreamSource(
+ StreamNumber: UINT,
+ ppStreamData: *mut *mut IDirect3DVertexBuffer9,
+ pOffsetInBytes: *mut UINT,
+ pStride: *mut UINT,
+ ) -> HRESULT,
+ fn SetStreamSourceFreq(
+ StreamNumber: UINT,
+ Setting: UINT,
+ ) -> HRESULT,
+ fn GetStreamSourceFreq(
+ StreamNumber: UINT,
+ pSetting: *mut UINT,
+ ) -> HRESULT,
+ fn SetIndices(
+ pIndexData: *mut IDirect3DIndexBuffer9,
+ ) -> HRESULT,
+ fn GetIndices(
+ ppIndexData: *mut *mut IDirect3DIndexBuffer9,
+ ) -> HRESULT,
+ fn CreatePixelShader(
+ pFunction: *const DWORD,
+ ppShader: *mut *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn SetPixelShader(
+ pShader: *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn GetPixelShader(
+ ppShader: *mut *mut IDirect3DPixelShader9,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *const FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantF(
+ StartRegister: UINT,
+ pConstantData: *mut FLOAT,
+ Vector4fCount: UINT,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *const INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantI(
+ StartRegister: UINT,
+ pConstantData: *mut INT,
+ Vector4iCount: UINT,
+ ) -> HRESULT,
+ fn SetPixelShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *const BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn GetPixelShaderConstantB(
+ StartRegister: UINT,
+ pConstantData: *mut BOOL,
+ BoolCount: UINT,
+ ) -> HRESULT,
+ fn DrawRectPatch(
+ Handle: UINT,
+ pNumSegs: *const FLOAT,
+ pRectPatchInfo: *const D3DRECTPATCH_INFO,
+ ) -> HRESULT,
+ fn DrawTriPatch(
+ Handle: UINT,
+ pNumSegs: *const FLOAT,
+ pTriPatchInfo: *const D3DTRIPATCH_INFO,
+ ) -> HRESULT,
+ fn DeletePatch(
+ Handle: UINT,
+ ) -> HRESULT,
+ fn CreateQuery(
+ Type: D3DQUERYTYPE,
+ ppQuery: *mut *mut IDirect3DQuery9,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9 = *mut IDirect3DDevice9;
+pub type PDIRECT3DDEVICE9 = *mut IDirect3DDevice9;
+RIDL!{#[uuid(0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b)]
+interface IDirect3DStateBlock9(IDirect3DStateBlock9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn Capture() -> HRESULT,
+ fn Apply() -> HRESULT,
+}}
+pub type LPDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9;
+pub type PDIRECT3DSTATEBLOCK9 = *mut IDirect3DStateBlock9;
+RIDL!{#[uuid(0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b)]
+interface IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl): IUnknown(IUnknownVtbl) {
+ fn Present(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ dwFlags: DWORD,
+ ) -> HRESULT,
+ fn GetFrontBufferData(
+ pDestSurface: *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetBackBuffer(
+ iBackBuffer: UINT,
+ Type: D3DBACKBUFFER_TYPE,
+ ppBackBuffer: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn GetRasterStatus(
+ pRasterStatus: *mut D3DRASTER_STATUS,
+ ) -> HRESULT,
+ fn GetDisplayMode(
+ pMode: *mut D3DDISPLAYMODE,
+ ) -> HRESULT,
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetPresentParameters(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9;
+pub type PDIRECT3DSWAPCHAIN9 = *mut IDirect3DSwapChain9;
+RIDL!{#[uuid(0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4)]
+interface IDirect3DResource9(IDirect3DResource9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn SetPrivateData(
+ refguid: *const GUID,
+ pData: *const VOID,
+ SizeOfData: DWORD,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ refguid: *const GUID,
+ pData: *mut VOID,
+ pSizeOfData: *mut DWORD,
+ ) -> HRESULT,
+ fn FreePrivateData(
+ refguid: *const GUID,
+ ) -> HRESULT,
+ fn SetPriority(
+ PriorityNew: DWORD,
+ ) -> DWORD,
+ fn GetPriority() -> DWORD,
+ fn PreLoad() -> (),
+ fn GetType() -> D3DRESOURCETYPE,
+}}
+pub type LPDIRECT3DRESOURCE9 = *mut IDirect3DResource9;
+pub type PDIRECT3DRESOURCE9 = *mut IDirect3DResource9;
+RIDL!{#[uuid(0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46)]
+interface IDirect3DVertexDeclaration9(IDirect3DVertexDeclaration9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetDeclaration(
+ pElement: *mut D3DVERTEXELEMENT9,
+ pNumElements: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9;
+pub type PDIRECT3DVERTEXDECLARATION9 = *mut IDirect3DVertexDeclaration9;
+RIDL!{#[uuid(0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36)]
+interface IDirect3DVertexShader9(IDirect3DVertexShader9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetFunction(
+ arg1: *mut VOID,
+ pSizeOfData: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9;
+pub type PDIRECT3DVERTEXSHADER9 = *mut IDirect3DVertexShader9;
+RIDL!{#[uuid(0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89)]
+interface IDirect3DPixelShader9(IDirect3DPixelShader9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetFunction(
+ arg1: *mut VOID,
+ pSizeOfData: *mut UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9;
+pub type PDIRECT3DPIXELSHADER9 = *mut IDirect3DPixelShader9;
+RIDL!{#[uuid(0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce)]
+interface IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn SetLOD(
+ LODNew: DWORD,
+ ) -> DWORD,
+ fn GetLOD() -> DWORD,
+ fn GetLevelCount() -> DWORD,
+ fn SetAutoGenFilterType(
+ FilterType: D3DTEXTUREFILTERTYPE,
+ ) -> HRESULT,
+ fn GetAutoGenFilterType() -> D3DTEXTUREFILTERTYPE,
+ fn GenerateMipSubLevels() -> (),
+}}
+pub type LPDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9;
+pub type PDIRECT3DBASETEXTURE9 = *mut IDirect3DBaseTexture9;
+RIDL!{#[uuid(0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5)]
+interface IDirect3DTexture9(IDirect3DTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn GetSurfaceLevel(
+ Level: UINT,
+ ppSurfaceLevel: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn LockRect(
+ Level: UINT,
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect(
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyRect(
+ pDirtyRect: *const RECT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DTEXTURE9 = *mut IDirect3DTexture9;
+pub type PDIRECT3DTEXTURE9 = *mut IDirect3DTexture9;
+RIDL!{#[uuid(0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6)]
+interface IDirect3DVolumeTexture9(IDirect3DVolumeTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DVOLUME_DESC,
+ ) -> HRESULT,
+ fn GetVolumeLevel(
+ Level: UINT,
+ ppVolumeLevel: *mut *mut IDirect3DVolume9,
+ ) -> HRESULT,
+ fn LockBox(
+ Level: UINT,
+ pLockedVolume: *mut D3DLOCKED_BOX,
+ pBox: *const D3DBOX,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockBox(
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyBox(
+ pDirtyBox: *const D3DBOX,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9;
+pub type PDIRECT3DVOLUMETEXTURE9 = *mut IDirect3DVolumeTexture9;
+RIDL!{#[uuid(0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f)]
+interface IDirect3DCubeTexture9(IDirect3DCubeTexture9Vtbl):
+ IDirect3DBaseTexture9(IDirect3DBaseTexture9Vtbl) {
+ fn GetLevelDesc(
+ Level: UINT,
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn GetCubeMapSurface(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ ppCubeMapSurface: *mut *mut IDirect3DSurface9,
+ ) -> HRESULT,
+ fn LockRect(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect(
+ FaceType: D3DCUBEMAP_FACES,
+ Level: UINT,
+ ) -> HRESULT,
+ fn AddDirtyRect(
+ FaceType: D3DCUBEMAP_FACES,
+ pDirtyRect: *const RECT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9;
+pub type PDIRECT3DCUBETEXTURE9 = *mut IDirect3DCubeTexture9;
+RIDL!{#[uuid(0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3)]
+interface IDirect3DVertexBuffer9(IDirect3DVertexBuffer9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn Lock(
+ OffsetToLock: UINT,
+ SizeToLock: UINT,
+ ppbData: *mut *mut VOID,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn Unlock() -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DVERTEXBUFFER_DESC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9;
+pub type PDIRECT3DVERTEXBUFFER9 = *mut IDirect3DVertexBuffer9;
+RIDL!{#[uuid(0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35)]
+interface IDirect3DIndexBuffer9(IDirect3DIndexBuffer9Vtbl):
+ IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn Lock(
+ OffsetToLock: UINT,
+ SizeToLock: UINT,
+ ppbData: *mut *mut VOID,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn Unlock() -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DINDEXBUFFER_DESC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9;
+pub type PDIRECT3DINDEXBUFFER9 = *mut IDirect3DIndexBuffer9;
+RIDL!{#[uuid(0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b)]
+interface IDirect3DSurface9(IDirect3DSurface9Vtbl): IDirect3DResource9(IDirect3DResource9Vtbl) {
+ fn GetContainer(
+ riid: *const IID,
+ ppContainer: *mut *mut VOID,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DSURFACE_DESC,
+ ) -> HRESULT,
+ fn LockRect(
+ pLockedRect: *mut D3DLOCKED_RECT,
+ pRect: *const RECT,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockRect() -> HRESULT,
+ fn GetDC(
+ phdc: *mut HDC,
+ ) -> HRESULT,
+ fn ReleaseDC(
+ hdc: HDC,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSURFACE9 = *mut IDirect3DSurface9;
+pub type PDIRECT3DSURFACE9 = *mut IDirect3DSurface9;
+RIDL!{#[uuid(0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1)]
+interface IDirect3DVolume9(IDirect3DVolume9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn SetPrivateData(
+ refguid: *const GUID,
+ pData: *const VOID,
+ SizeOfData: DWORD,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ refguid: *const GUID,
+ pData: *mut VOID,
+ pSizeOfData: *mut DWORD,
+ ) -> HRESULT,
+ fn FreePrivateData(
+ refguid: *const GUID,
+ ) -> HRESULT,
+ fn GetContainer(
+ riid: *const IID,
+ ppContainer: *mut *mut VOID,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut D3DVOLUME_DESC,
+ ) -> HRESULT,
+ fn LockBox(
+ pLockedVolume: *mut D3DLOCKED_BOX,
+ pBox: *const D3DBOX,
+ Flags: DWORD,
+ ) -> HRESULT,
+ fn UnlockBox() -> HRESULT,
+}}
+pub type LPDIRECT3DVOLUME9 = *mut IDirect3DVolume9;
+pub type PDIRECT3DVOLUME9 = *mut IDirect3DVolume9;
+RIDL!{#[uuid(0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc)]
+interface IDirect3DQuery9(IDirect3DQuery9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetDevice(
+ ppDevice: *mut *mut IDirect3DDevice9,
+ ) -> HRESULT,
+ fn GetType() -> D3DRESOURCETYPE,
+ fn GetDataSize() -> DWORD,
+ fn Issue(
+ dwIssueFlags: DWORD,
+ ) -> HRESULT,
+ fn GetData(
+ pData: *mut VOID,
+ dwSize: DWORD,
+ dwGetDataFlags: DWORD,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DQUERY9 = *mut IDirect3DQuery9;
+pub type PDIRECT3DQUERY9 = *mut IDirect3DQuery9;
+pub const D3DCREATE_FPU_PRESERVE: DWORD = 0x2;
+pub const D3DCREATE_MULTITHREADED: DWORD = 0x4;
+pub const D3DCREATE_PUREDEVICE: DWORD = 0x10;
+pub const D3DCREATE_SOFTWARE_VERTEXPROCESSING: DWORD = 0x20;
+pub const D3DCREATE_HARDWARE_VERTEXPROCESSING: DWORD = 0x40;
+pub const D3DCREATE_MIXED_VERTEXPROCESSING: DWORD = 0x80;
+pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT: DWORD = 0x100;
+pub const D3DCREATE_ADAPTERGROUP_DEVICE: DWORD = 0x200;
+pub const D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX: DWORD = 0x400;
+pub const D3DCREATE_NOWINDOWCHANGES: DWORD = 0x800;
+pub const D3DCREATE_DISABLE_PSGP_THREADING: DWORD = 0x2000;
+pub const D3DCREATE_ENABLE_PRESENTSTATS: DWORD = 0x4000;
+pub const D3DCREATE_DISABLE_PRESENTSTATS: DWORD = 0x8000;
+pub const D3DCREATE_SCREENSAVER: DWORD = 0x10000000;
+pub const D3DADAPTER_DEFAULT: DWORD = 0;
+extern "system" {
+ pub fn Direct3DCreate9Ex(
+ SDKVersion: UINT,
+ arg1: *mut *mut IDirect3D9Ex,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x02177241, 0x69fc, 0x400c, 0x8f, 0xf1, 0x93, 0xa4, 0x4d, 0xf6, 0x86, 0x1d)]
+interface IDirect3D9Ex(IDirect3D9ExVtbl): IDirect3D9(IDirect3D9Vtbl) {
+ fn GetAdapterModeCountEx(
+ Adapter: UINT,
+ pFilter: *const D3DDISPLAYMODEFILTER,
+ ) -> UINT,
+ fn EnumAdapterModesEx(
+ Adapter: UINT,
+ pFilter: *const D3DDISPLAYMODEFILTER,
+ Mode: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ ) -> HRESULT,
+ fn GetAdapterDisplayModeEx(
+ Adapter: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+ fn CreateDeviceEx(
+ Adapter: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX,
+ ppReturnedDeviceInterface: *mut *mut IDirect3DDevice9Ex,
+ ) -> HRESULT,
+ fn GetAdapterLUID(
+ Adapter: UINT,
+ pLUID: *mut LUID,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9EX = *mut IDirect3D9Ex;
+pub type PDIRECT3D9EX = *mut IDirect3D9Ex;
+RIDL!{#[uuid(0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a)]
+interface IDirect3DDevice9Ex(IDirect3DDevice9ExVtbl): IDirect3DDevice9(IDirect3DDevice9Vtbl) {
+ fn SetConvolutionMonoKernel(
+ width: UINT,
+ height: UINT,
+ rows: *mut FLOAT,
+ columns: *mut FLOAT,
+ ) -> HRESULT,
+ fn ComposeRects(
+ pSrc: *mut IDirect3DSurface9,
+ pDst: *mut IDirect3DSurface9,
+ pSrcRectDescs: *mut IDirect3DVertexBuffer9,
+ NumRects: UINT,
+ pDstRectDescs: *mut IDirect3DVertexBuffer9,
+ Operation: D3DCOMPOSERECTSOP,
+ Xoffset: INT,
+ Yoffset: INT,
+ ) -> HRESULT,
+ fn PresentEx(
+ pSourceRect: *const RECT,
+ pDestRect: *const RECT,
+ hDestWindowOverride: HWND,
+ pDirtyRegion: *const RGNDATA,
+ dwFlags: DWORD,
+ ) -> HRESULT,
+ fn GetGPUThreadPriority(
+ pPriority: *mut INT,
+ ) -> HRESULT,
+ fn SetGPUThreadPriority(
+ Priority: INT,
+ ) -> HRESULT,
+ fn WaitForVBlank(
+ iSwapChain: UINT,
+ ) -> HRESULT,
+ fn CheckResourceResidency(
+ pResourceArray: *mut *mut IDirect3DResource9,
+ NumResources: UINT32,
+ ) -> HRESULT,
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+ fn CheckDeviceState(
+ hDestinationWindow: HWND,
+ ) -> HRESULT,
+ fn CreateRenderTargetEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Lockable: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn CreateOffscreenPlainSurfaceEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ Pool: D3DPOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn CreateDepthStencilSurfaceEx(
+ Width: UINT,
+ Height: UINT,
+ Format: D3DFORMAT,
+ MultiSample: D3DMULTISAMPLE_TYPE,
+ MultisampleQuality: DWORD,
+ Discard: BOOL,
+ ppSurface: *mut *mut IDirect3DSurface9,
+ pSharedHandle: *mut HANDLE,
+ Usage: DWORD,
+ ) -> HRESULT,
+ fn ResetEx(
+ pPresentationParameters: *mut D3DPRESENT_PARAMETERS,
+ pFullscreenDisplayMode: *mut D3DDISPLAYMODEEX,
+ ) -> HRESULT,
+ fn GetDisplayModeEx(
+ iSwapChain: UINT,
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex;
+pub type PDIRECT3DDEVICE9EX = *mut IDirect3DDevice9Ex;
+RIDL!{#[uuid(0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3)]
+interface IDirect3DSwapChain9Ex(IDirect3DSwapChain9ExVtbl):
+ IDirect3DSwapChain9(IDirect3DSwapChain9Vtbl) {
+ fn GetLastPresentCount(
+ pLastPresentCount: *mut UINT,
+ ) -> HRESULT,
+ fn GetPresentStats(
+ pPresentationStatistics: *mut D3DPRESENTSTATS,
+ ) -> HRESULT,
+ fn GetDisplayModeEx(
+ pMode: *mut D3DDISPLAYMODEEX,
+ pRotation: *mut D3DDISPLAYROTATION,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex;
+pub type PDIRECT3DSWAPCHAIN9EX = *mut IDirect3DSwapChain9Ex;
+RIDL!{#[uuid(0x187aeb13, 0xaaf5, 0x4c59, 0x87, 0x6d, 0xe0, 0x59, 0x8, 0x8c, 0xd, 0xf8)]
+interface IDirect3D9ExOverlayExtension(IDirect3D9ExOverlayExtensionVtbl): IUnknown(IUnknownVtbl) {
+ fn CheckDeviceOverlayType(
+ Adapter: UINT,
+ DevType: D3DDEVTYPE,
+ OverlayWidth: UINT,
+ OverlayHeight: UINT,
+ OverlayFormat: D3DFORMAT,
+ pDisplayMode: *mut D3DDISPLAYMODEEX,
+ DisplayRotation: D3DDISPLAYROTATION,
+ pOverlayCaps: *mut D3DOVERLAYCAPS,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension;
+pub type PDIRECT3D9EXOVERLAYEXTENSION = *mut IDirect3D9ExOverlayExtension;
+RIDL!{#[uuid(0x26dc4561, 0xa1ee, 0x4ae7, 0x96, 0xda, 0x11, 0x8a, 0x36, 0xc0, 0xec, 0x95)]
+interface IDirect3DDevice9Video(IDirect3DDevice9VideoVtbl): IUnknown(IUnknownVtbl) {
+ fn GetContentProtectionCaps(
+ pCryptoType: *const GUID,
+ pDecodeProfile: *const GUID,
+ pCaps: *mut D3DCONTENTPROTECTIONCAPS,
+ ) -> HRESULT,
+ fn CreateAuthenticatedChannel(
+ ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
+ ppAuthenticatedChannel: *mut *mut IDirect3DAuthenticatedChannel9,
+ pChannelHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn CreateCryptoSession(
+ pCryptoType: *const GUID,
+ pDecodeProfile: *const GUID,
+ ppCryptoSession: *mut *mut IDirect3DCryptoSession9,
+ pCryptoHandle: *mut HANDLE,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video;
+pub type PDIRECT3DDEVICE9VIDEO = *mut IDirect3DDevice9Video;
+RIDL!{#[uuid(0xff24beee, 0xda21, 0x4beb, 0x98, 0xb5, 0xd2, 0xf8, 0x99, 0xf9, 0x8a, 0xf9)]
+interface IDirect3DAuthenticatedChannel9(IDirect3DAuthenticatedChannel9Vtbl):
+ IUnknown(IUnknownVtbl) {
+ fn GetCertificateSize(
+ pCertificateSize: *mut UINT,
+ ) -> HRESULT,
+ fn GetCertificate(
+ CertifacteSize: UINT,
+ ppCertificate: *mut BYTE,
+ ) -> HRESULT,
+ fn NegotiateKeyExchange(
+ DataSize: UINT,
+ pData: *mut VOID,
+ ) -> HRESULT,
+ fn Query(
+ InputSize: UINT,
+ pInput: *const VOID,
+ OutputSize: UINT,
+ pOutput: *mut VOID,
+ ) -> HRESULT,
+ fn Configure(
+ InputSize: UINT,
+ pInput: *const VOID,
+ pOutput: *mut D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9;
+pub type PDIRECT3DAUTHENTICATEDCHANNEL9 = *mut IDirect3DAuthenticatedChannel9;
+RIDL!{#[uuid(0xfa0ab799, 0x7a9c, 0x48ca, 0x8c, 0x5b, 0x23, 0x7e, 0x71, 0xa5, 0x44, 0x34)]
+interface IDirect3DCryptoSession9(IDirect3DCryptoSession9Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetCertificateSize(
+ pCertificateSize: *mut UINT,
+ ) -> HRESULT,
+ fn GetCertificate(
+ CertifacteSize: UINT,
+ ppCertificate: *mut BYTE,
+ ) -> HRESULT,
+ fn NegotiateKeyExchange(
+ DataSize: UINT,
+ pData: *mut VOID,
+ ) -> HRESULT,
+ fn EncryptionBlt(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pDstSurface: *mut IDirect3DSurface9,
+ DstSurfaceSize: UINT,
+ pIV: *mut VOID,
+ ) -> HRESULT,
+ fn DecryptionBlt(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pDstSurface: *mut IDirect3DSurface9,
+ SrcSurfaceSize: UINT,
+ pEncryptedBlockInfo: *mut D3DENCRYPTED_BLOCK_INFO,
+ pContentKey: *mut VOID,
+ pIV: *mut VOID,
+ ) -> HRESULT,
+ fn GetSurfacePitch(
+ pSrcSurface: *mut IDirect3DSurface9,
+ pSurfacePitch: *mut UINT,
+ ) -> HRESULT,
+ fn StartSessionKeyRefresh(
+ pRandomNumber: *mut VOID,
+ RandomNumberSize: UINT,
+ ) -> HRESULT,
+ fn FinishSessionKeyRefresh() -> HRESULT,
+ fn GetEncryptionBltKey(
+ pReadbackKey: *mut VOID,
+ KeySize: UINT,
+ ) -> HRESULT,
+}}
+pub type LPDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9;
+pub type PDIRECT3DCRYPTOSESSION9 = *mut IDirect3DCryptoSession9;
diff --git a/third_party/rust/winapi/src/shared/d3d9caps.rs b/third_party/rust/winapi/src/shared/d3d9caps.rs
new file mode 100644
index 0000000000..e806e08b7e
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/d3d9caps.rs
@@ -0,0 +1,366 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D capabilities include file
+use ctypes::c_float;
+use shared::d3d9types::D3DDEVTYPE;
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, INT, UINT};
+use um::winnt::ULONGLONG;
+STRUCT!{struct D3DVSHADERCAPS2_0 {
+ Caps: DWORD,
+ DynamicFlowControlDepth: INT,
+ NumTemps: INT,
+ StaticFlowControlDepth: INT,
+}}
+pub const D3DVS20CAPS_PREDICATION: DWORD = 1 << 0;
+pub const D3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH: DWORD = 24;
+pub const D3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DVS20_MAX_NUMTEMPS: DWORD = 32;
+pub const D3DVS20_MIN_NUMTEMPS: DWORD = 12;
+pub const D3DVS20_MAX_STATICFLOWCONTROLDEPTH: DWORD = 4;
+pub const D3DVS20_MIN_STATICFLOWCONTROLDEPTH: DWORD = 1;
+STRUCT!{struct D3DPSHADERCAPS2_0 {
+ Caps: DWORD,
+ DynamicFlowControlDepth: INT,
+ NumTemps: INT,
+ StaticFlowControlDepth: INT,
+ NumInstructionSlots: INT,
+}}
+pub const D3DPS20CAPS_ARBITRARYSWIZZLE: DWORD = 1 << 0;
+pub const D3DPS20CAPS_GRADIENTINSTRUCTIONS: DWORD = 1 << 1;
+pub const D3DPS20CAPS_PREDICATION: DWORD = 1 << 2;
+pub const D3DPS20CAPS_NODEPENDENTREADLIMIT: DWORD = 1 << 3;
+pub const D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT: DWORD = 1 << 4;
+pub const D3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH: DWORD = 24;
+pub const D3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DPS20_MAX_NUMTEMPS: DWORD = 32;
+pub const D3DPS20_MIN_NUMTEMPS: DWORD = 12;
+pub const D3DPS20_MAX_STATICFLOWCONTROLDEPTH: DWORD = 4;
+pub const D3DPS20_MIN_STATICFLOWCONTROLDEPTH: DWORD = 0;
+pub const D3DPS20_MAX_NUMINSTRUCTIONSLOTS: DWORD = 512;
+pub const D3DPS20_MIN_NUMINSTRUCTIONSLOTS: DWORD = 96;
+pub const D3DMIN30SHADERINSTRUCTIONS: DWORD = 512;
+pub const D3DMAX30SHADERINSTRUCTIONS: DWORD = 32768;
+STRUCT!{struct D3DOVERLAYCAPS {
+ Caps: UINT,
+ MaxOverlayDisplayWidth: UINT,
+ MaxOverlayDisplayHeight: UINT,
+}}
+pub const D3DOVERLAYCAPS_FULLRANGERGB: DWORD = 0x00000001;
+pub const D3DOVERLAYCAPS_LIMITEDRANGERGB: DWORD = 0x00000002;
+pub const D3DOVERLAYCAPS_YCbCr_BT601: DWORD = 0x00000004;
+pub const D3DOVERLAYCAPS_YCbCr_BT709: DWORD = 0x00000008;
+pub const D3DOVERLAYCAPS_YCbCr_BT601_xvYCC: DWORD = 0x00000010;
+pub const D3DOVERLAYCAPS_YCbCr_BT709_xvYCC: DWORD = 0x00000020;
+pub const D3DOVERLAYCAPS_STRETCHX: DWORD = 0x00000040;
+pub const D3DOVERLAYCAPS_STRETCHY: DWORD = 0x00000080;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DCONTENTPROTECTIONCAPS {
+ Caps: DWORD,
+ KeyExchangeType: GUID,
+ BufferAlignmentStart: UINT,
+ BlockAlignmentSize: UINT,
+ ProtectedMemorySize: ULONGLONG,
+}}
+pub const D3DCPCAPS_SOFTWARE: DWORD = 0x00000001;
+pub const D3DCPCAPS_HARDWARE: DWORD = 0x00000002;
+pub const D3DCPCAPS_PROTECTIONALWAYSON: DWORD = 0x00000004;
+pub const D3DCPCAPS_PARTIALDECRYPTION: DWORD = 0x00000008;
+pub const D3DCPCAPS_CONTENTKEY: DWORD = 0x00000010;
+pub const D3DCPCAPS_FRESHENSESSIONKEY: DWORD = 0x00000020;
+pub const D3DCPCAPS_ENCRYPTEDREADBACK: DWORD = 0x00000040;
+pub const D3DCPCAPS_ENCRYPTEDREADBACKKEY: DWORD = 0x00000080;
+pub const D3DCPCAPS_SEQUENTIAL_CTR_IV: DWORD = 0x00000100;
+pub const D3DCPCAPS_ENCRYPTSLICEDATAONLY: DWORD = 0x00000200;
+DEFINE_GUID!{D3DCRYPTOTYPE_AES128_CTR,
+ 0x9b6bd711, 0x4f74, 0x41c9, 0x9e, 0x7b, 0x0b, 0xe2, 0xd7, 0xd9, 0x3b, 0x4f}
+DEFINE_GUID!{D3DCRYPTOTYPE_PROPRIETARY,
+ 0xab4e9afd, 0x1d1c, 0x46e6, 0xa7, 0x2f, 0x08, 0x69, 0x91, 0x7b, 0x0d, 0xe8}
+DEFINE_GUID!{D3DKEYEXCHANGE_RSAES_OAEP,
+ 0xc1949895, 0xd72a, 0x4a1d, 0x8e, 0x5d, 0xed, 0x85, 0x7d, 0x17, 0x15, 0x20}
+DEFINE_GUID!{D3DKEYEXCHANGE_DXVA,
+ 0x43d3775c, 0x38e5, 0x4924, 0x8d, 0x86, 0xd3, 0xfc, 0xcf, 0x15, 0x3e, 0x9b}
+STRUCT!{struct D3DCAPS9 {
+ DeviceType: D3DDEVTYPE,
+ AdapterOrdinal: UINT,
+ Caps: DWORD,
+ Caps2: DWORD,
+ Caps3: DWORD,
+ PresentationIntervals: DWORD,
+ CursorCaps: DWORD,
+ DevCaps: DWORD,
+ PrimitiveMiscCaps: DWORD,
+ RasterCaps: DWORD,
+ ZCmpCaps: DWORD,
+ SrcBlendCaps: DWORD,
+ DestBlendCaps: DWORD,
+ AlphaCmpCaps: DWORD,
+ ShadeCaps: DWORD,
+ TextureCaps: DWORD,
+ TextureFilterCaps: DWORD,
+ CubeTextureFilterCaps: DWORD,
+ VolumeTextureFilterCaps: DWORD,
+ TextureAddressCaps: DWORD,
+ VolumeTextureAddressCaps: DWORD,
+ LineCaps: DWORD,
+ MaxTextureWidth: DWORD,
+ MaxTextureHeight: DWORD,
+ MaxVolumeExtent: DWORD,
+ MaxTextureRepeat: DWORD,
+ MaxTextureAspectRatio: DWORD,
+ MaxAnisotropy: DWORD,
+ MaxVertexW: c_float,
+ GuardBandLeft: c_float,
+ GuardBandTop: c_float,
+ GuardBandRight: c_float,
+ GuardBandBottom: c_float,
+ ExtentsAdjust: c_float,
+ StencilCaps: DWORD,
+ FVFCaps: DWORD,
+ TextureOpCaps: DWORD,
+ MaxTextureBlendStages: DWORD,
+ MaxSimultaneousTextures: DWORD,
+ VertexProcessingCaps: DWORD,
+ MaxActiveLights: DWORD,
+ MaxUserClipPlanes: DWORD,
+ MaxVertexBlendMatrices: DWORD,
+ MaxVertexBlendMatrixIndex: DWORD,
+ MaxPointSize: c_float,
+ MaxPrimitiveCount: DWORD,
+ MaxVertexIndex: DWORD,
+ MaxStreams: DWORD,
+ MaxStreamStride: DWORD,
+ VertexShaderVersion: DWORD,
+ MaxVertexShaderConst: DWORD,
+ PixelShaderVersion: DWORD,
+ PixelShader1xMaxValue: c_float,
+ DevCaps2: DWORD,
+ MaxNpatchTessellationLevel: c_float,
+ Reserved5: DWORD,
+ MasterAdapterOrdinal: UINT,
+ AdapterOrdinalInGroup: UINT,
+ NumberOfAdaptersInGroup: UINT,
+ DeclTypes: DWORD,
+ NumSimultaneousRTs: DWORD,
+ StretchRectFilterCaps: DWORD,
+ VS20Caps: D3DVSHADERCAPS2_0,
+ PS20Caps: D3DPSHADERCAPS2_0,
+ VertexTextureFilterCaps: DWORD,
+ MaxVShaderInstructionsExecuted: DWORD,
+ MaxPShaderInstructionsExecuted: DWORD,
+ MaxVertexShader30InstructionSlots: DWORD,
+ MaxPixelShader30InstructionSlots: DWORD,
+}}
+pub const D3DCAPS_OVERLAY: DWORD = 0x00000800;
+pub const D3DCAPS_READ_SCANLINE: DWORD = 0x00020000;
+pub const D3DCAPS2_FULLSCREENGAMMA: DWORD = 0x00020000;
+pub const D3DCAPS2_CANCALIBRATEGAMMA: DWORD = 0x00100000;
+pub const D3DCAPS2_RESERVED: DWORD = 0x02000000;
+pub const D3DCAPS2_CANMANAGERESOURCE: DWORD = 0x10000000;
+pub const D3DCAPS2_DYNAMICTEXTURES: DWORD = 0x20000000;
+pub const D3DCAPS2_CANAUTOGENMIPMAP: DWORD = 0x40000000;
+pub const D3DCAPS2_CANSHARERESOURCE: DWORD = 0x80000000;
+pub const D3DCAPS3_RESERVED: DWORD = 0x8000001f;
+pub const D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD: DWORD = 0x00000020;
+pub const D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION: DWORD = 0x00000080;
+pub const D3DCAPS3_COPY_TO_VIDMEM: DWORD = 0x00000100;
+pub const D3DCAPS3_COPY_TO_SYSTEMMEM: DWORD = 0x00000200;
+pub const D3DCAPS3_DXVAHD: DWORD = 0x00000400;
+pub const D3DCAPS3_DXVAHD_LIMITED: DWORD = 0x00000800;
+pub const D3DPRESENT_INTERVAL_DEFAULT: DWORD = 0x00000000;
+pub const D3DPRESENT_INTERVAL_ONE: DWORD = 0x00000001;
+pub const D3DPRESENT_INTERVAL_TWO: DWORD = 0x00000002;
+pub const D3DPRESENT_INTERVAL_THREE: DWORD = 0x00000004;
+pub const D3DPRESENT_INTERVAL_FOUR: DWORD = 0x00000008;
+pub const D3DPRESENT_INTERVAL_IMMEDIATE: DWORD = 0x80000000;
+pub const D3DCURSORCAPS_COLOR: DWORD = 0x00000001;
+pub const D3DCURSORCAPS_LOWRES: DWORD = 0x00000002;
+pub const D3DDEVCAPS_EXECUTESYSTEMMEMORY: DWORD = 0x00000010;
+pub const D3DDEVCAPS_EXECUTEVIDEOMEMORY: DWORD = 0x00000020;
+pub const D3DDEVCAPS_TLVERTEXSYSTEMMEMORY: DWORD = 0x00000040;
+pub const D3DDEVCAPS_TLVERTEXVIDEOMEMORY: DWORD = 0x00000080;
+pub const D3DDEVCAPS_TEXTURESYSTEMMEMORY: DWORD = 0x00000100;
+pub const D3DDEVCAPS_TEXTUREVIDEOMEMORY: DWORD = 0x00000200;
+pub const D3DDEVCAPS_DRAWPRIMTLVERTEX: DWORD = 0x00000400;
+pub const D3DDEVCAPS_CANRENDERAFTERFLIP: DWORD = 0x00000800;
+pub const D3DDEVCAPS_TEXTURENONLOCALVIDMEM: DWORD = 0x00001000;
+pub const D3DDEVCAPS_DRAWPRIMITIVES2: DWORD = 0x00002000;
+pub const D3DDEVCAPS_SEPARATETEXTUREMEMORIES: DWORD = 0x00004000;
+pub const D3DDEVCAPS_DRAWPRIMITIVES2EX: DWORD = 0x00008000;
+pub const D3DDEVCAPS_HWTRANSFORMANDLIGHT: DWORD = 0x00010000;
+pub const D3DDEVCAPS_CANBLTSYSTONONLOCAL: DWORD = 0x00020000;
+pub const D3DDEVCAPS_HWRASTERIZATION: DWORD = 0x00080000;
+pub const D3DDEVCAPS_PUREDEVICE: DWORD = 0x00100000;
+pub const D3DDEVCAPS_QUINTICRTPATCHES: DWORD = 0x00200000;
+pub const D3DDEVCAPS_RTPATCHES: DWORD = 0x00400000;
+pub const D3DDEVCAPS_RTPATCHHANDLEZERO: DWORD = 0x00800000;
+pub const D3DDEVCAPS_NPATCHES: DWORD = 0x01000000;
+pub const D3DPMISCCAPS_MASKZ: DWORD = 0x00000002;
+pub const D3DPMISCCAPS_CULLNONE: DWORD = 0x00000010;
+pub const D3DPMISCCAPS_CULLCW: DWORD = 0x00000020;
+pub const D3DPMISCCAPS_CULLCCW: DWORD = 0x00000040;
+pub const D3DPMISCCAPS_COLORWRITEENABLE: DWORD = 0x00000080;
+pub const D3DPMISCCAPS_CLIPPLANESCALEDPOINTS: DWORD = 0x00000100;
+pub const D3DPMISCCAPS_CLIPTLVERTS: DWORD = 0x00000200;
+pub const D3DPMISCCAPS_TSSARGTEMP: DWORD = 0x00000400;
+pub const D3DPMISCCAPS_BLENDOP: DWORD = 0x00000800;
+pub const D3DPMISCCAPS_NULLREFERENCE: DWORD = 0x00001000;
+pub const D3DPMISCCAPS_INDEPENDENTWRITEMASKS: DWORD = 0x00004000;
+pub const D3DPMISCCAPS_PERSTAGECONSTANT: DWORD = 0x00008000;
+pub const D3DPMISCCAPS_FOGANDSPECULARALPHA: DWORD = 0x00010000;
+pub const D3DPMISCCAPS_SEPARATEALPHABLEND: DWORD = 0x00020000;
+pub const D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS: DWORD = 0x00040000;
+pub const D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING: DWORD = 0x00080000;
+pub const D3DPMISCCAPS_FOGVERTEXCLAMPED: DWORD = 0x00100000;
+pub const D3DPMISCCAPS_POSTBLENDSRGBCONVERT: DWORD = 0x00200000;
+pub const D3DLINECAPS_TEXTURE: DWORD = 0x00000001;
+pub const D3DLINECAPS_ZTEST: DWORD = 0x00000002;
+pub const D3DLINECAPS_BLEND: DWORD = 0x00000004;
+pub const D3DLINECAPS_ALPHACMP: DWORD = 0x00000008;
+pub const D3DLINECAPS_FOG: DWORD = 0x00000010;
+pub const D3DLINECAPS_ANTIALIAS: DWORD = 0x00000020;
+pub const D3DPRASTERCAPS_DITHER: DWORD = 0x00000001;
+pub const D3DPRASTERCAPS_ZTEST: DWORD = 0x00000010;
+pub const D3DPRASTERCAPS_FOGVERTEX: DWORD = 0x00000080;
+pub const D3DPRASTERCAPS_FOGTABLE: DWORD = 0x00000100;
+pub const D3DPRASTERCAPS_MIPMAPLODBIAS: DWORD = 0x00002000;
+pub const D3DPRASTERCAPS_ZBUFFERLESSHSR: DWORD = 0x00008000;
+pub const D3DPRASTERCAPS_FOGRANGE: DWORD = 0x00010000;
+pub const D3DPRASTERCAPS_ANISOTROPY: DWORD = 0x00020000;
+pub const D3DPRASTERCAPS_WBUFFER: DWORD = 0x00040000;
+pub const D3DPRASTERCAPS_WFOG: DWORD = 0x00100000;
+pub const D3DPRASTERCAPS_ZFOG: DWORD = 0x00200000;
+pub const D3DPRASTERCAPS_COLORPERSPECTIVE: DWORD = 0x00400000;
+pub const D3DPRASTERCAPS_SCISSORTEST: DWORD = 0x01000000;
+pub const D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS: DWORD = 0x02000000;
+pub const D3DPRASTERCAPS_DEPTHBIAS: DWORD = 0x04000000;
+pub const D3DPRASTERCAPS_MULTISAMPLE_TOGGLE: DWORD = 0x08000000;
+pub const D3DPCMPCAPS_NEVER: DWORD = 0x00000001;
+pub const D3DPCMPCAPS_LESS: DWORD = 0x00000002;
+pub const D3DPCMPCAPS_EQUAL: DWORD = 0x00000004;
+pub const D3DPCMPCAPS_LESSEQUAL: DWORD = 0x00000008;
+pub const D3DPCMPCAPS_GREATER: DWORD = 0x00000010;
+pub const D3DPCMPCAPS_NOTEQUAL: DWORD = 0x00000020;
+pub const D3DPCMPCAPS_GREATEREQUAL: DWORD = 0x00000040;
+pub const D3DPCMPCAPS_ALWAYS: DWORD = 0x00000080;
+pub const D3DPBLENDCAPS_ZERO: DWORD = 0x00000001;
+pub const D3DPBLENDCAPS_ONE: DWORD = 0x00000002;
+pub const D3DPBLENDCAPS_SRCCOLOR: DWORD = 0x00000004;
+pub const D3DPBLENDCAPS_INVSRCCOLOR: DWORD = 0x00000008;
+pub const D3DPBLENDCAPS_SRCALPHA: DWORD = 0x00000010;
+pub const D3DPBLENDCAPS_INVSRCALPHA: DWORD = 0x00000020;
+pub const D3DPBLENDCAPS_DESTALPHA: DWORD = 0x00000040;
+pub const D3DPBLENDCAPS_INVDESTALPHA: DWORD = 0x00000080;
+pub const D3DPBLENDCAPS_DESTCOLOR: DWORD = 0x00000100;
+pub const D3DPBLENDCAPS_INVDESTCOLOR: DWORD = 0x00000200;
+pub const D3DPBLENDCAPS_SRCALPHASAT: DWORD = 0x00000400;
+pub const D3DPBLENDCAPS_BOTHSRCALPHA: DWORD = 0x00000800;
+pub const D3DPBLENDCAPS_BOTHINVSRCALPHA: DWORD = 0x00001000;
+pub const D3DPBLENDCAPS_BLENDFACTOR: DWORD = 0x00002000;
+pub const D3DPBLENDCAPS_SRCCOLOR2: DWORD = 0x00004000;
+pub const D3DPBLENDCAPS_INVSRCCOLOR2: DWORD = 0x00008000;
+pub const D3DPSHADECAPS_COLORGOURAUDRGB: DWORD = 0x00000008;
+pub const D3DPSHADECAPS_SPECULARGOURAUDRGB: DWORD = 0x00000200;
+pub const D3DPSHADECAPS_ALPHAGOURAUDBLEND: DWORD = 0x00004000;
+pub const D3DPSHADECAPS_FOGGOURAUD: DWORD = 0x00080000;
+pub const D3DPTEXTURECAPS_PERSPECTIVE: DWORD = 0x00000001;
+pub const D3DPTEXTURECAPS_POW2: DWORD = 0x00000002;
+pub const D3DPTEXTURECAPS_ALPHA: DWORD = 0x00000004;
+pub const D3DPTEXTURECAPS_SQUAREONLY: DWORD = 0x00000020;
+pub const D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE: DWORD = 0x00000040;
+pub const D3DPTEXTURECAPS_ALPHAPALETTE: DWORD = 0x00000080;
+pub const D3DPTEXTURECAPS_NONPOW2CONDITIONAL: DWORD = 0x00000100;
+pub const D3DPTEXTURECAPS_PROJECTED: DWORD = 0x00000400;
+pub const D3DPTEXTURECAPS_CUBEMAP: DWORD = 0x00000800;
+pub const D3DPTEXTURECAPS_VOLUMEMAP: DWORD = 0x00002000;
+pub const D3DPTEXTURECAPS_MIPMAP: DWORD = 0x00004000;
+pub const D3DPTEXTURECAPS_MIPVOLUMEMAP: DWORD = 0x00008000;
+pub const D3DPTEXTURECAPS_MIPCUBEMAP: DWORD = 0x00010000;
+pub const D3DPTEXTURECAPS_CUBEMAP_POW2: DWORD = 0x00020000;
+pub const D3DPTEXTURECAPS_VOLUMEMAP_POW2: DWORD = 0x00040000;
+pub const D3DPTEXTURECAPS_NOPROJECTEDBUMPENV: DWORD = 0x00200000;
+pub const D3DPTFILTERCAPS_MINFPOINT: DWORD = 0x00000100;
+pub const D3DPTFILTERCAPS_MINFLINEAR: DWORD = 0x00000200;
+pub const D3DPTFILTERCAPS_MINFANISOTROPIC: DWORD = 0x00000400;
+pub const D3DPTFILTERCAPS_MINFPYRAMIDALQUAD: DWORD = 0x00000800;
+pub const D3DPTFILTERCAPS_MINFGAUSSIANQUAD: DWORD = 0x00001000;
+pub const D3DPTFILTERCAPS_MIPFPOINT: DWORD = 0x00010000;
+pub const D3DPTFILTERCAPS_MIPFLINEAR: DWORD = 0x00020000;
+pub const D3DPTFILTERCAPS_CONVOLUTIONMONO: DWORD = 0x00040000;
+pub const D3DPTFILTERCAPS_MAGFPOINT: DWORD = 0x01000000;
+pub const D3DPTFILTERCAPS_MAGFLINEAR: DWORD = 0x02000000;
+pub const D3DPTFILTERCAPS_MAGFANISOTROPIC: DWORD = 0x04000000;
+pub const D3DPTFILTERCAPS_MAGFPYRAMIDALQUAD: DWORD = 0x08000000;
+pub const D3DPTFILTERCAPS_MAGFGAUSSIANQUAD: DWORD = 0x10000000;
+pub const D3DPTADDRESSCAPS_WRAP: DWORD = 0x00000001;
+pub const D3DPTADDRESSCAPS_MIRROR: DWORD = 0x00000002;
+pub const D3DPTADDRESSCAPS_CLAMP: DWORD = 0x00000004;
+pub const D3DPTADDRESSCAPS_BORDER: DWORD = 0x00000008;
+pub const D3DPTADDRESSCAPS_INDEPENDENTUV: DWORD = 0x00000010;
+pub const D3DPTADDRESSCAPS_MIRRORONCE: DWORD = 0x00000020;
+pub const D3DSTENCILCAPS_KEEP: DWORD = 0x00000001;
+pub const D3DSTENCILCAPS_ZERO: DWORD = 0x00000002;
+pub const D3DSTENCILCAPS_REPLACE: DWORD = 0x00000004;
+pub const D3DSTENCILCAPS_INCRSAT: DWORD = 0x00000008;
+pub const D3DSTENCILCAPS_DECRSAT: DWORD = 0x00000010;
+pub const D3DSTENCILCAPS_INVERT: DWORD = 0x00000020;
+pub const D3DSTENCILCAPS_INCR: DWORD = 0x00000040;
+pub const D3DSTENCILCAPS_DECR: DWORD = 0x00000080;
+pub const D3DSTENCILCAPS_TWOSIDED: DWORD = 0x00000100;
+pub const D3DTEXOPCAPS_DISABLE: DWORD = 0x00000001;
+pub const D3DTEXOPCAPS_SELECTARG1: DWORD = 0x00000002;
+pub const D3DTEXOPCAPS_SELECTARG2: DWORD = 0x00000004;
+pub const D3DTEXOPCAPS_MODULATE: DWORD = 0x00000008;
+pub const D3DTEXOPCAPS_MODULATE2X: DWORD = 0x00000010;
+pub const D3DTEXOPCAPS_MODULATE4X: DWORD = 0x00000020;
+pub const D3DTEXOPCAPS_ADD: DWORD = 0x00000040;
+pub const D3DTEXOPCAPS_ADDSIGNED: DWORD = 0x00000080;
+pub const D3DTEXOPCAPS_ADDSIGNED2X: DWORD = 0x00000100;
+pub const D3DTEXOPCAPS_SUBTRACT: DWORD = 0x00000200;
+pub const D3DTEXOPCAPS_ADDSMOOTH: DWORD = 0x00000400;
+pub const D3DTEXOPCAPS_BLENDDIFFUSEALPHA: DWORD = 0x00000800;
+pub const D3DTEXOPCAPS_BLENDTEXTUREALPHA: DWORD = 0x00001000;
+pub const D3DTEXOPCAPS_BLENDFACTORALPHA: DWORD = 0x00002000;
+pub const D3DTEXOPCAPS_BLENDTEXTUREALPHAPM: DWORD = 0x00004000;
+pub const D3DTEXOPCAPS_BLENDCURRENTALPHA: DWORD = 0x00008000;
+pub const D3DTEXOPCAPS_PREMODULATE: DWORD = 0x00010000;
+pub const D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR: DWORD = 0x00020000;
+pub const D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA: DWORD = 0x00040000;
+pub const D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR: DWORD = 0x00080000;
+pub const D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA: DWORD = 0x00100000;
+pub const D3DTEXOPCAPS_BUMPENVMAP: DWORD = 0x00200000;
+pub const D3DTEXOPCAPS_BUMPENVMAPLUMINANCE: DWORD = 0x00400000;
+pub const D3DTEXOPCAPS_DOTPRODUCT3: DWORD = 0x00800000;
+pub const D3DTEXOPCAPS_MULTIPLYADD: DWORD = 0x01000000;
+pub const D3DTEXOPCAPS_LERP: DWORD = 0x02000000;
+pub const D3DFVFCAPS_TEXCOORDCOUNTMASK: DWORD = 0x0000ffff;
+pub const D3DFVFCAPS_DONOTSTRIPELEMENTS: DWORD = 0x00080000;
+pub const D3DFVFCAPS_PSIZE: DWORD = 0x00100000;
+pub const D3DVTXPCAPS_TEXGEN: DWORD = 0x00000001;
+pub const D3DVTXPCAPS_MATERIALSOURCE7: DWORD = 0x00000002;
+pub const D3DVTXPCAPS_DIRECTIONALLIGHTS: DWORD = 0x00000008;
+pub const D3DVTXPCAPS_POSITIONALLIGHTS: DWORD = 0x00000010;
+pub const D3DVTXPCAPS_LOCALVIEWER: DWORD = 0x00000020;
+pub const D3DVTXPCAPS_TWEENING: DWORD = 0x00000040;
+pub const D3DVTXPCAPS_TEXGEN_SPHEREMAP: DWORD = 0x00000100;
+pub const D3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER: DWORD = 0x00000200;
+pub const D3DDEVCAPS2_STREAMOFFSET: DWORD = 0x00000001;
+pub const D3DDEVCAPS2_DMAPNPATCH: DWORD = 0x00000002;
+pub const D3DDEVCAPS2_ADAPTIVETESSRTPATCH: DWORD = 0x00000004;
+pub const D3DDEVCAPS2_ADAPTIVETESSNPATCH: DWORD = 0x00000008;
+pub const D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES: DWORD = 0x00000010;
+pub const D3DDEVCAPS2_PRESAMPLEDDMAPNPATCH: DWORD = 0x00000020;
+pub const D3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET: DWORD = 0x00000040;
+pub const D3DDTCAPS_UBYTE4: DWORD = 0x00000001;
+pub const D3DDTCAPS_UBYTE4N: DWORD = 0x00000002;
+pub const D3DDTCAPS_SHORT2N: DWORD = 0x00000004;
+pub const D3DDTCAPS_SHORT4N: DWORD = 0x00000008;
+pub const D3DDTCAPS_USHORT2N: DWORD = 0x00000010;
+pub const D3DDTCAPS_USHORT4N: DWORD = 0x00000020;
+pub const D3DDTCAPS_UDEC3: DWORD = 0x00000040;
+pub const D3DDTCAPS_DEC3N: DWORD = 0x00000080;
+pub const D3DDTCAPS_FLOAT16_2: DWORD = 0x00000100;
+pub const D3DDTCAPS_FLOAT16_4: DWORD = 0x00000200;
diff --git a/third_party/rust/winapi/src/shared/d3d9types.rs b/third_party/rust/winapi/src/shared/d3d9types.rs
new file mode 100644
index 0000000000..e794d2731f
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/d3d9types.rs
@@ -0,0 +1,1487 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Direct3D capabilities include file
+use ctypes::{c_char, c_float, c_void};
+use shared::basetsd::UINT64;
+use shared::guiddef::GUID;
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, INT, UINT, USHORT, WORD};
+use shared::windef::HWND;
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER, LONG, SHORT};
+pub type D3DCOLOR = DWORD;
+#[inline]
+pub fn D3DCOLOR_ARGB(a: DWORD, r: DWORD, g: DWORD, b: DWORD) -> D3DCOLOR {
+ (((a & 0xff) << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff)) as D3DCOLOR
+}
+#[inline]
+pub fn D3DCOLOR_RGBA(r: DWORD, g: DWORD, b: DWORD, a: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(a, r, g, b)
+}
+#[inline]
+pub fn D3DCOLOR_XRGB(r: DWORD, g: DWORD, b: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(0xff, r, g, b)
+}
+#[inline]
+pub fn D3DCOLOR_XYUV(y: DWORD, u: DWORD, v: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(0xff, y, u, v)
+}
+#[inline]
+pub fn D3DCOLOR_AYUV(a: DWORD, y: DWORD, u: DWORD, v: DWORD) -> D3DCOLOR {
+ D3DCOLOR_ARGB(a, y, u, v)
+}
+#[inline]
+pub fn D3DCOLOR_COLORVALUE(r: f32, g: f32, b: f32, a: f32) -> D3DCOLOR {
+ D3DCOLOR_ARGB(
+ (r * 255f32) as DWORD,
+ (g * 255f32) as DWORD,
+ (b * 255f32) as DWORD,
+ (a * 255f32) as DWORD,
+ )
+}
+STRUCT!{struct D3DVECTOR {
+ x: c_float,
+ y: c_float,
+ z: c_float,
+}}
+STRUCT!{struct D3DCOLORVALUE {
+ r: c_float,
+ g: c_float,
+ b: c_float,
+ a: c_float,
+}}
+STRUCT!{struct D3DRECT {
+ x1: LONG,
+ y1: LONG,
+ x2: LONG,
+ y2: LONG,
+}}
+STRUCT!{struct D3DMATRIX {
+ m: [[c_float; 4]; 4],
+}}
+STRUCT!{struct D3DVIEWPORT9 {
+ X: DWORD,
+ Y: DWORD,
+ Width: DWORD,
+ Height: DWORD,
+ MinZ: c_float,
+ MaxZ: c_float,
+}}
+pub const D3DMAXUSERCLIPPLANES: DWORD = 32;
+pub const D3DCLIPPLANE0: DWORD = 1 << 0;
+pub const D3DCLIPPLANE1: DWORD = 1 << 1;
+pub const D3DCLIPPLANE2: DWORD = 1 << 2;
+pub const D3DCLIPPLANE3: DWORD = 1 << 3;
+pub const D3DCLIPPLANE4: DWORD = 1 << 4;
+pub const D3DCLIPPLANE5: DWORD = 1 << 5;
+pub const D3DCS_LEFT: DWORD = 0x00000001;
+pub const D3DCS_RIGHT: DWORD = 0x00000002;
+pub const D3DCS_TOP: DWORD = 0x00000004;
+pub const D3DCS_BOTTOM: DWORD = 0x00000008;
+pub const D3DCS_FRONT: DWORD = 0x00000010;
+pub const D3DCS_BACK: DWORD = 0x00000020;
+pub const D3DCS_PLANE0: DWORD = 0x00000040;
+pub const D3DCS_PLANE1: DWORD = 0x00000080;
+pub const D3DCS_PLANE2: DWORD = 0x00000100;
+pub const D3DCS_PLANE3: DWORD = 0x00000200;
+pub const D3DCS_PLANE4: DWORD = 0x00000400;
+pub const D3DCS_PLANE5: DWORD = 0x00000800;
+pub const D3DCS_ALL: DWORD = D3DCS_LEFT | D3DCS_RIGHT | D3DCS_TOP | D3DCS_BOTTOM | D3DCS_FRONT
+ | D3DCS_BACK | D3DCS_PLANE0 | D3DCS_PLANE1 | D3DCS_PLANE2 | D3DCS_PLANE3 | D3DCS_PLANE4
+ | D3DCS_PLANE5;
+STRUCT!{struct D3DCLIPSTATUS9 {
+ ClipUnion: DWORD,
+ ClipIntersection: DWORD,
+}}
+STRUCT!{struct D3DMATERIAL9 {
+ Diffuse: D3DCOLORVALUE,
+ Ambient: D3DCOLORVALUE,
+ Specular: D3DCOLORVALUE,
+ Emissive: D3DCOLORVALUE,
+ Power: c_float,
+}}
+ENUM!{enum D3DLIGHTTYPE {
+ D3DLIGHT_POINT = 1,
+ D3DLIGHT_SPOT = 2,
+ D3DLIGHT_DIRECTIONAL = 3,
+}}
+STRUCT!{struct D3DLIGHT9 {
+ Type: D3DLIGHTTYPE,
+ Diffuse: D3DCOLORVALUE,
+ Specular: D3DCOLORVALUE,
+ Ambient: D3DCOLORVALUE,
+ Position: D3DVECTOR,
+ Direction: D3DVECTOR,
+ Range: c_float,
+ Falloff: c_float,
+ Attenuation0: c_float,
+ Attenuation1: c_float,
+ Attenuation2: c_float,
+ Theta: c_float,
+ Phi: c_float,
+}}
+pub const D3DCLEAR_TARGET: DWORD = 0x00000001;
+pub const D3DCLEAR_ZBUFFER: DWORD = 0x00000002;
+pub const D3DCLEAR_STENCIL: DWORD = 0x00000004;
+ENUM!{enum D3DSHADEMODE {
+ D3DSHADE_FLAT = 1,
+ D3DSHADE_GOURAUD = 2,
+ D3DSHADE_PHONG = 3,
+}}
+ENUM!{enum D3DFILLMODE {
+ D3DFILL_POINT = 1,
+ D3DFILL_WIREFRAME = 2,
+ D3DFILL_SOLID = 3,
+}}
+ENUM!{enum D3DBLEND {
+ D3DBLEND_ZERO = 1,
+ D3DBLEND_ONE = 2,
+ D3DBLEND_SRCCOLOR = 3,
+ D3DBLEND_INVSRCCOLOR = 4,
+ D3DBLEND_SRCALPHA = 5,
+ D3DBLEND_INVSRCALPHA = 6,
+ D3DBLEND_DESTALPHA = 7,
+ D3DBLEND_INVDESTALPHA = 8,
+ D3DBLEND_DESTCOLOR = 9,
+ D3DBLEND_INVDESTCOLOR = 10,
+ D3DBLEND_SRCALPHASAT = 11,
+ D3DBLEND_BOTHSRCALPHA = 12,
+ D3DBLEND_BOTHINVSRCALPHA = 13,
+ D3DBLEND_BLENDFACTOR = 14,
+ D3DBLEND_INVBLENDFACTOR = 15,
+ D3DBLEND_SRCCOLOR2 = 16,
+ D3DBLEND_INVSRCCOLOR2 = 17,
+}}
+ENUM!{enum D3DBLENDOP {
+ D3DBLENDOP_ADD = 1,
+ D3DBLENDOP_SUBTRACT = 2,
+ D3DBLENDOP_REVSUBTRACT = 3,
+ D3DBLENDOP_MIN = 4,
+ D3DBLENDOP_MAX = 5,
+}}
+ENUM!{enum D3DTEXTUREADDRESS {
+ D3DTADDRESS_WRAP = 1,
+ D3DTADDRESS_MIRROR = 2,
+ D3DTADDRESS_CLAMP = 3,
+ D3DTADDRESS_BORDER = 4,
+ D3DTADDRESS_MIRRORONCE = 5,
+}}
+ENUM!{enum D3DCULL {
+ D3DCULL_NONE = 1,
+ D3DCULL_CW = 2,
+ D3DCULL_CCW = 3,
+}}
+ENUM!{enum D3DCMPFUNC {
+ D3DCMP_NEVER = 1,
+ D3DCMP_LESS = 2,
+ D3DCMP_EQUAL = 3,
+ D3DCMP_LESSEQUAL = 4,
+ D3DCMP_GREATER = 5,
+ D3DCMP_NOTEQUAL = 6,
+ D3DCMP_GREATEREQUAL = 7,
+ D3DCMP_ALWAYS = 8,
+}}
+ENUM!{enum D3DSTENCILOP {
+ D3DSTENCILOP_KEEP = 1,
+ D3DSTENCILOP_ZERO = 2,
+ D3DSTENCILOP_REPLACE = 3,
+ D3DSTENCILOP_INCRSAT = 4,
+ D3DSTENCILOP_DECRSAT = 5,
+ D3DSTENCILOP_INVERT = 6,
+ D3DSTENCILOP_INCR = 7,
+ D3DSTENCILOP_DECR = 8,
+}}
+ENUM!{enum D3DFOGMODE {
+ D3DFOG_NONE = 0,
+ D3DFOG_EXP = 1,
+ D3DFOG_EXP2 = 2,
+ D3DFOG_LINEAR = 3,
+}}
+ENUM!{enum D3DZBUFFERTYPE {
+ D3DZB_FALSE = 0,
+ D3DZB_TRUE = 1,
+ D3DZB_USEW = 2,
+}}
+ENUM!{enum D3DPRIMITIVETYPE {
+ D3DPT_POINTLIST = 1,
+ D3DPT_LINELIST = 2,
+ D3DPT_LINESTRIP = 3,
+ D3DPT_TRIANGLELIST = 4,
+ D3DPT_TRIANGLESTRIP = 5,
+ D3DPT_TRIANGLEFAN = 6,
+}}
+ENUM!{enum D3DTRANSFORMSTATETYPE {
+ D3DTS_VIEW = 2,
+ D3DTS_PROJECTION = 3,
+ D3DTS_TEXTURE0 = 16,
+ D3DTS_TEXTURE1 = 17,
+ D3DTS_TEXTURE2 = 18,
+ D3DTS_TEXTURE3 = 19,
+ D3DTS_TEXTURE4 = 20,
+ D3DTS_TEXTURE5 = 21,
+ D3DTS_TEXTURE6 = 22,
+ D3DTS_TEXTURE7 = 23,
+}}
+macro_rules! D3DTS_WORLDMATRIX {
+ ($index:expr) => ($index + 256)
+}
+pub const D3DTS_WORLD: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(0);
+pub const D3DTS_WORLD1: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(1);
+pub const D3DTS_WORLD2: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(2);
+pub const D3DTS_WORLD3: D3DTRANSFORMSTATETYPE = D3DTS_WORLDMATRIX!(3);
+ENUM!{enum D3DRENDERSTATETYPE {
+ D3DRS_ZENABLE = 7,
+ D3DRS_FILLMODE = 8,
+ D3DRS_SHADEMODE = 9,
+ D3DRS_ZWRITEENABLE = 14,
+ D3DRS_ALPHATESTENABLE = 15,
+ D3DRS_LASTPIXEL = 16,
+ D3DRS_SRCBLEND = 19,
+ D3DRS_DESTBLEND = 20,
+ D3DRS_CULLMODE = 22,
+ D3DRS_ZFUNC = 23,
+ D3DRS_ALPHAREF = 24,
+ D3DRS_ALPHAFUNC = 25,
+ D3DRS_DITHERENABLE = 26,
+ D3DRS_ALPHABLENDENABLE = 27,
+ D3DRS_FOGENABLE = 28,
+ D3DRS_SPECULARENABLE = 29,
+ D3DRS_FOGCOLOR = 34,
+ D3DRS_FOGTABLEMODE = 35,
+ D3DRS_FOGSTART = 36,
+ D3DRS_FOGEND = 37,
+ D3DRS_FOGDENSITY = 38,
+ D3DRS_RANGEFOGENABLE = 48,
+ D3DRS_STENCILENABLE = 52,
+ D3DRS_STENCILFAIL = 53,
+ D3DRS_STENCILZFAIL = 54,
+ D3DRS_STENCILPASS = 55,
+ D3DRS_STENCILFUNC = 56,
+ D3DRS_STENCILREF = 57,
+ D3DRS_STENCILMASK = 58,
+ D3DRS_STENCILWRITEMASK = 59,
+ D3DRS_TEXTUREFACTOR = 60,
+ D3DRS_WRAP0 = 128,
+ D3DRS_WRAP1 = 129,
+ D3DRS_WRAP2 = 130,
+ D3DRS_WRAP3 = 131,
+ D3DRS_WRAP4 = 132,
+ D3DRS_WRAP5 = 133,
+ D3DRS_WRAP6 = 134,
+ D3DRS_WRAP7 = 135,
+ D3DRS_CLIPPING = 136,
+ D3DRS_LIGHTING = 137,
+ D3DRS_AMBIENT = 139,
+ D3DRS_FOGVERTEXMODE = 140,
+ D3DRS_COLORVERTEX = 141,
+ D3DRS_LOCALVIEWER = 142,
+ D3DRS_NORMALIZENORMALS = 143,
+ D3DRS_DIFFUSEMATERIALSOURCE = 145,
+ D3DRS_SPECULARMATERIALSOURCE = 146,
+ D3DRS_AMBIENTMATERIALSOURCE = 147,
+ D3DRS_EMISSIVEMATERIALSOURCE = 148,
+ D3DRS_VERTEXBLEND = 151,
+ D3DRS_CLIPPLANEENABLE = 152,
+ D3DRS_POINTSIZE = 154,
+ D3DRS_POINTSIZE_MIN = 155,
+ D3DRS_POINTSPRITEENABLE = 156,
+ D3DRS_POINTSCALEENABLE = 157,
+ D3DRS_POINTSCALE_A = 158,
+ D3DRS_POINTSCALE_B = 159,
+ D3DRS_POINTSCALE_C = 160,
+ D3DRS_MULTISAMPLEANTIALIAS = 161,
+ D3DRS_MULTISAMPLEMASK = 162,
+ D3DRS_PATCHEDGESTYLE = 163,
+ D3DRS_DEBUGMONITORTOKEN = 165,
+ D3DRS_POINTSIZE_MAX = 166,
+ D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
+ D3DRS_COLORWRITEENABLE = 168,
+ D3DRS_TWEENFACTOR = 170,
+ D3DRS_BLENDOP = 171,
+ D3DRS_POSITIONDEGREE = 172,
+ D3DRS_NORMALDEGREE = 173,
+ D3DRS_SCISSORTESTENABLE = 174,
+ D3DRS_SLOPESCALEDEPTHBIAS = 175,
+ D3DRS_ANTIALIASEDLINEENABLE = 176,
+ D3DRS_MINTESSELLATIONLEVEL = 178,
+ D3DRS_MAXTESSELLATIONLEVEL = 179,
+ D3DRS_ADAPTIVETESS_X = 180,
+ D3DRS_ADAPTIVETESS_Y = 181,
+ D3DRS_ADAPTIVETESS_Z = 182,
+ D3DRS_ADAPTIVETESS_W = 183,
+ D3DRS_ENABLEADAPTIVETESSELLATION = 184,
+ D3DRS_TWOSIDEDSTENCILMODE = 185,
+ D3DRS_CCW_STENCILFAIL = 186,
+ D3DRS_CCW_STENCILZFAIL = 187,
+ D3DRS_CCW_STENCILPASS = 188,
+ D3DRS_CCW_STENCILFUNC = 189,
+ D3DRS_COLORWRITEENABLE1 = 190,
+ D3DRS_COLORWRITEENABLE2 = 191,
+ D3DRS_COLORWRITEENABLE3 = 192,
+ D3DRS_BLENDFACTOR = 193,
+ D3DRS_SRGBWRITEENABLE = 194,
+ D3DRS_DEPTHBIAS = 195,
+ D3DRS_WRAP8 = 198,
+ D3DRS_WRAP9 = 199,
+ D3DRS_WRAP10 = 200,
+ D3DRS_WRAP11 = 201,
+ D3DRS_WRAP12 = 202,
+ D3DRS_WRAP13 = 203,
+ D3DRS_WRAP14 = 204,
+ D3DRS_WRAP15 = 205,
+ D3DRS_SEPARATEALPHABLENDENABLE = 206,
+ D3DRS_SRCBLENDALPHA = 207,
+ D3DRS_DESTBLENDALPHA = 208,
+ D3DRS_BLENDOPALPHA = 209,
+}}
+pub const D3D_MAX_SIMULTANEOUS_RENDERTARGETS: DWORD = 4;
+ENUM!{enum D3DMATERIALCOLORSOURCE {
+ D3DMCS_MATERIAL = 0,
+ D3DMCS_COLOR1 = 1,
+ D3DMCS_COLOR2 = 2,
+}}
+pub const D3DRENDERSTATE_WRAPBIAS: DWORD = 128;
+pub const D3DWRAP_U: DWORD = 0x00000001;
+pub const D3DWRAP_V: DWORD = 0x00000002;
+pub const D3DWRAP_W: DWORD = 0x00000004;
+pub const D3DWRAPCOORD_0: DWORD = 0x00000001;
+pub const D3DWRAPCOORD_1: DWORD = 0x00000002;
+pub const D3DWRAPCOORD_2: DWORD = 0x00000004;
+pub const D3DWRAPCOORD_3: DWORD = 0x00000008;
+pub const D3DCOLORWRITEENABLE_RED: DWORD = 1 << 0;
+pub const D3DCOLORWRITEENABLE_GREEN: DWORD = 1 << 1;
+pub const D3DCOLORWRITEENABLE_BLUE: DWORD = 1 << 2;
+pub const D3DCOLORWRITEENABLE_ALPHA: DWORD = 1 << 3;
+ENUM!{enum D3DTEXTURESTAGESTATETYPE {
+ D3DTSS_COLOROP = 1,
+ D3DTSS_COLORARG1 = 2,
+ D3DTSS_COLORARG2 = 3,
+ D3DTSS_ALPHAOP = 4,
+ D3DTSS_ALPHAARG1 = 5,
+ D3DTSS_ALPHAARG2 = 6,
+ D3DTSS_BUMPENVMAT00 = 7,
+ D3DTSS_BUMPENVMAT01 = 8,
+ D3DTSS_BUMPENVMAT10 = 9,
+ D3DTSS_BUMPENVMAT11 = 10,
+ D3DTSS_TEXCOORDINDEX = 11,
+ D3DTSS_BUMPENVLSCALE = 22,
+ D3DTSS_BUMPENVLOFFSET = 23,
+ D3DTSS_TEXTURETRANSFORMFLAGS = 24,
+ D3DTSS_COLORARG0 = 26,
+ D3DTSS_ALPHAARG0 = 27,
+ D3DTSS_RESULTARG = 28,
+ D3DTSS_CONSTANT = 32,
+}}
+ENUM!{enum D3DSAMPLERSTATETYPE {
+ D3DSAMP_ADDRESSU = 1,
+ D3DSAMP_ADDRESSV = 2,
+ D3DSAMP_ADDRESSW = 3,
+ D3DSAMP_BORDERCOLOR = 4,
+ D3DSAMP_MAGFILTER = 5,
+ D3DSAMP_MINFILTER = 6,
+ D3DSAMP_MIPFILTER = 7,
+ D3DSAMP_MIPMAPLODBIAS = 8,
+ D3DSAMP_MAXMIPLEVEL = 9,
+ D3DSAMP_MAXANISOTROPY = 10,
+ D3DSAMP_SRGBTEXTURE = 11,
+ D3DSAMP_ELEMENTINDEX = 12,
+ D3DSAMP_DMAPOFFSET = 13,
+}}
+pub const D3DDMAPSAMPLER: DWORD = 256;
+pub const D3DVERTEXTEXTURESAMPLER0: DWORD = D3DDMAPSAMPLER + 1;
+pub const D3DVERTEXTEXTURESAMPLER1: DWORD = D3DDMAPSAMPLER + 2;
+pub const D3DVERTEXTEXTURESAMPLER2: DWORD = D3DDMAPSAMPLER + 3;
+pub const D3DVERTEXTEXTURESAMPLER3: DWORD = D3DDMAPSAMPLER + 4;
+pub const D3DTSS_TCI_PASSTHRU: DWORD = 0x00000000;
+pub const D3DTSS_TCI_CAMERASPACENORMAL: DWORD = 0x00010000;
+pub const D3DTSS_TCI_CAMERASPACEPOSITION: DWORD = 0x00020000;
+pub const D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR: DWORD = 0x00030000;
+pub const D3DTSS_TCI_SPHEREMAP: DWORD = 0x00040000;
+ENUM!{enum D3DTEXTUREOP {
+ D3DTOP_DISABLE = 1,
+ D3DTOP_SELECTARG1 = 2,
+ D3DTOP_SELECTARG2 = 3,
+ D3DTOP_MODULATE = 4,
+ D3DTOP_MODULATE2X = 5,
+ D3DTOP_MODULATE4X = 6,
+ D3DTOP_ADD = 7,
+ D3DTOP_ADDSIGNED = 8,
+ D3DTOP_ADDSIGNED2X = 9,
+ D3DTOP_SUBTRACT = 10,
+ D3DTOP_ADDSMOOTH = 11,
+ D3DTOP_BLENDDIFFUSEALPHA = 12,
+ D3DTOP_BLENDTEXTUREALPHA = 13,
+ D3DTOP_BLENDFACTORALPHA = 14,
+ D3DTOP_BLENDTEXTUREALPHAPM = 15,
+ D3DTOP_BLENDCURRENTALPHA = 16,
+ D3DTOP_PREMODULATE = 17,
+ D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
+ D3DTOP_MODULATECOLOR_ADDALPHA = 19,
+ D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
+ D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
+ D3DTOP_BUMPENVMAP = 22,
+ D3DTOP_BUMPENVMAPLUMINANCE = 23,
+ D3DTOP_DOTPRODUCT3 = 24,
+ D3DTOP_MULTIPLYADD = 25,
+ D3DTOP_LERP = 26,
+}}
+pub const D3DTA_SELECTMASK: DWORD = 0x0000000f;
+pub const D3DTA_DIFFUSE: DWORD = 0x00000000;
+pub const D3DTA_CURRENT: DWORD = 0x00000001;
+pub const D3DTA_TEXTURE: DWORD = 0x00000002;
+pub const D3DTA_TFACTOR: DWORD = 0x00000003;
+pub const D3DTA_SPECULAR: DWORD = 0x00000004;
+pub const D3DTA_TEMP: DWORD = 0x00000005;
+pub const D3DTA_CONSTANT: DWORD = 0x00000006;
+pub const D3DTA_COMPLEMENT: DWORD = 0x00000010;
+pub const D3DTA_ALPHAREPLICATE: DWORD = 0x00000020;
+ENUM!{enum D3DTEXTUREFILTERTYPE {
+ D3DTEXF_NONE = 0,
+ D3DTEXF_POINT = 1,
+ D3DTEXF_LINEAR = 2,
+ D3DTEXF_ANISOTROPIC = 3,
+ D3DTEXF_PYRAMIDALQUAD = 6,
+ D3DTEXF_GAUSSIANQUAD = 7,
+ D3DTEXF_CONVOLUTIONMONO = 8,
+}}
+pub const D3DPV_DONOTCOPYDATA: DWORD = 1 << 0;
+pub const D3DFVF_RESERVED0: DWORD = 0x001;
+pub const D3DFVF_POSITION_MASK: DWORD = 0x400E;
+pub const D3DFVF_XYZ: DWORD = 0x002;
+pub const D3DFVF_XYZRHW: DWORD = 0x004;
+pub const D3DFVF_XYZB1: DWORD = 0x006;
+pub const D3DFVF_XYZB2: DWORD = 0x008;
+pub const D3DFVF_XYZB3: DWORD = 0x00a;
+pub const D3DFVF_XYZB4: DWORD = 0x00c;
+pub const D3DFVF_XYZB5: DWORD = 0x00e;
+pub const D3DFVF_XYZW: DWORD = 0x4002;
+pub const D3DFVF_NORMAL: DWORD = 0x010;
+pub const D3DFVF_PSIZE: DWORD = 0x020;
+pub const D3DFVF_DIFFUSE: DWORD = 0x040;
+pub const D3DFVF_SPECULAR: DWORD = 0x080;
+pub const D3DFVF_TEXCOUNT_MASK: DWORD = 0xf00;
+pub const D3DFVF_TEXCOUNT_SHIFT: DWORD = 8;
+pub const D3DFVF_TEX0: DWORD = 0x000;
+pub const D3DFVF_TEX1: DWORD = 0x100;
+pub const D3DFVF_TEX2: DWORD = 0x200;
+pub const D3DFVF_TEX3: DWORD = 0x300;
+pub const D3DFVF_TEX4: DWORD = 0x400;
+pub const D3DFVF_TEX5: DWORD = 0x500;
+pub const D3DFVF_TEX6: DWORD = 0x600;
+pub const D3DFVF_TEX7: DWORD = 0x700;
+pub const D3DFVF_TEX8: DWORD = 0x800;
+pub const D3DFVF_LASTBETA_UBYTE4: DWORD = 0x1000;
+pub const D3DFVF_LASTBETA_D3DCOLOR: DWORD = 0x8000;
+pub const D3DFVF_RESERVED2: DWORD = 0x6000;
+ENUM!{enum D3DDECLUSAGE {
+ D3DDECLUSAGE_POSITION = 0,
+ D3DDECLUSAGE_BLENDWEIGHT,
+ D3DDECLUSAGE_BLENDINDICES,
+ D3DDECLUSAGE_NORMAL,
+ D3DDECLUSAGE_PSIZE,
+ D3DDECLUSAGE_TEXCOORD,
+ D3DDECLUSAGE_TANGENT,
+ D3DDECLUSAGE_BINORMAL,
+ D3DDECLUSAGE_TESSFACTOR,
+ D3DDECLUSAGE_POSITIONT,
+ D3DDECLUSAGE_COLOR,
+ D3DDECLUSAGE_FOG,
+ D3DDECLUSAGE_DEPTH,
+ D3DDECLUSAGE_SAMPLE,
+}}
+pub const MAXD3DDECLUSAGE: D3DDECLUSAGE = D3DDECLUSAGE_SAMPLE;
+pub const MAXD3DDECLUSAGEINDEX: DWORD = 15;
+pub const MAXD3DDECLLENGTH: DWORD = 64;
+ENUM!{enum D3DDECLMETHOD {
+ D3DDECLMETHOD_DEFAULT = 0,
+ D3DDECLMETHOD_PARTIALU,
+ D3DDECLMETHOD_PARTIALV,
+ D3DDECLMETHOD_CROSSUV,
+ D3DDECLMETHOD_UV,
+ D3DDECLMETHOD_LOOKUP,
+ D3DDECLMETHOD_LOOKUPPRESAMPLED,
+}}
+pub const MAXD3DDECLMETHOD: D3DDECLMETHOD = D3DDECLMETHOD_LOOKUPPRESAMPLED;
+ENUM!{enum D3DDECLTYPE {
+ D3DDECLTYPE_FLOAT1 = 0,
+ D3DDECLTYPE_FLOAT2 = 1,
+ D3DDECLTYPE_FLOAT3 = 2,
+ D3DDECLTYPE_FLOAT4 = 3,
+ D3DDECLTYPE_D3DCOLOR = 4,
+ D3DDECLTYPE_UBYTE4 = 5,
+ D3DDECLTYPE_SHORT2 = 6,
+ D3DDECLTYPE_SHORT4 = 7,
+ D3DDECLTYPE_UBYTE4N = 8,
+ D3DDECLTYPE_SHORT2N = 9,
+ D3DDECLTYPE_SHORT4N = 10,
+ D3DDECLTYPE_USHORT2N = 11,
+ D3DDECLTYPE_USHORT4N = 12,
+ D3DDECLTYPE_UDEC3 = 13,
+ D3DDECLTYPE_DEC3N = 14,
+ D3DDECLTYPE_FLOAT16_2 = 15,
+ D3DDECLTYPE_FLOAT16_4 = 16,
+ D3DDECLTYPE_UNUSED = 17,
+}}
+pub const MAXD3DDECLTYPE: D3DDECLTYPE = D3DDECLTYPE_UNUSED;
+STRUCT!{struct D3DVERTEXELEMENT9 {
+ Stream: WORD,
+ Offset: WORD,
+ Type: BYTE,
+ Method: BYTE,
+ Usage: BYTE,
+ UsageIndex: BYTE,
+}}
+pub type LPD3DVERTEXELEMENT9 = *mut D3DVERTEXELEMENT9;
+pub const D3DDECL_END: D3DVERTEXELEMENT9 = D3DVERTEXELEMENT9 {
+ Stream: 0xFF,
+ Offset: 0,
+ Type: D3DDECLTYPE_UNUSED as BYTE,
+ Method: 0,
+ Usage: 0,
+ UsageIndex: 0,
+};
+pub const D3DDP_MAXTEXCOORD: DWORD = 8;
+pub const D3DSTREAMSOURCE_INDEXEDDATA: DWORD = 1 << 30;
+pub const D3DSTREAMSOURCE_INSTANCEDATA: DWORD = 2 << 30;
+pub const D3DSI_OPCODE_MASK: DWORD = 0x0000FFFF;
+pub const D3DSI_INSTLENGTH_MASK: DWORD = 0x0F000000;
+pub const D3DSI_INSTLENGTH_SHIFT: DWORD = 24;
+ENUM!{enum D3DSHADER_INSTRUCTION_OPCODE_TYPE {
+ D3DSIO_NOP = 0,
+ D3DSIO_MOV,
+ D3DSIO_ADD,
+ D3DSIO_SUB,
+ D3DSIO_MAD,
+ D3DSIO_MUL,
+ D3DSIO_RCP,
+ D3DSIO_RSQ,
+ D3DSIO_DP3,
+ D3DSIO_DP4,
+ D3DSIO_MIN,
+ D3DSIO_MAX,
+ D3DSIO_SLT,
+ D3DSIO_SGE,
+ D3DSIO_EXP,
+ D3DSIO_LOG,
+ D3DSIO_LIT,
+ D3DSIO_DST,
+ D3DSIO_LRP,
+ D3DSIO_FRC,
+ D3DSIO_M4x4,
+ D3DSIO_M4x3,
+ D3DSIO_M3x4,
+ D3DSIO_M3x3,
+ D3DSIO_M3x2,
+ D3DSIO_CALL,
+ D3DSIO_CALLNZ,
+ D3DSIO_LOOP,
+ D3DSIO_RET,
+ D3DSIO_ENDLOOP,
+ D3DSIO_LABEL,
+ D3DSIO_DCL,
+ D3DSIO_POW,
+ D3DSIO_CRS,
+ D3DSIO_SGN,
+ D3DSIO_ABS,
+ D3DSIO_NRM,
+ D3DSIO_SINCOS,
+ D3DSIO_REP,
+ D3DSIO_ENDREP,
+ D3DSIO_IF,
+ D3DSIO_IFC,
+ D3DSIO_ELSE,
+ D3DSIO_ENDIF,
+ D3DSIO_BREAK,
+ D3DSIO_BREAKC,
+ D3DSIO_MOVA,
+ D3DSIO_DEFB,
+ D3DSIO_DEFI,
+ D3DSIO_TEXCOORD = 64,
+ D3DSIO_TEXKILL,
+ D3DSIO_TEX,
+ D3DSIO_TEXBEM,
+ D3DSIO_TEXBEML,
+ D3DSIO_TEXREG2AR,
+ D3DSIO_TEXREG2GB,
+ D3DSIO_TEXM3x2PAD,
+ D3DSIO_TEXM3x2TEX,
+ D3DSIO_TEXM3x3PAD,
+ D3DSIO_TEXM3x3TEX,
+ D3DSIO_RESERVED0,
+ D3DSIO_TEXM3x3SPEC,
+ D3DSIO_TEXM3x3VSPEC,
+ D3DSIO_EXPP,
+ D3DSIO_LOGP,
+ D3DSIO_CND,
+ D3DSIO_DEF,
+ D3DSIO_TEXREG2RGB,
+ D3DSIO_TEXDP3TEX,
+ D3DSIO_TEXM3x2DEPTH,
+ D3DSIO_TEXDP3,
+ D3DSIO_TEXM3x3,
+ D3DSIO_TEXDEPTH,
+ D3DSIO_CMP,
+ D3DSIO_BEM,
+ D3DSIO_DP2ADD,
+ D3DSIO_DSX,
+ D3DSIO_DSY,
+ D3DSIO_TEXLDD,
+ D3DSIO_SETP,
+ D3DSIO_TEXLDL,
+ D3DSIO_BREAKP,
+ D3DSIO_PHASE = 0xFFFD,
+ D3DSIO_COMMENT = 0xFFFE,
+ D3DSIO_END = 0xFFFF,
+}}
+pub const D3DSI_COISSUE: DWORD = 0x40000000;
+pub const D3DSP_OPCODESPECIFICCONTROL_MASK: DWORD = 0x00ff0000;
+pub const D3DSP_OPCODESPECIFICCONTROL_SHIFT: DWORD = 16;
+pub const D3DSI_TEXLD_PROJECT: DWORD = 0x01 << D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+pub const D3DSI_TEXLD_BIAS: DWORD = 0x02 << D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+ENUM!{enum D3DSHADER_COMPARISON {
+ D3DSPC_RESERVED0 = 0,
+ D3DSPC_GT = 1,
+ D3DSPC_EQ = 2,
+ D3DSPC_GE = 3,
+ D3DSPC_LT = 4,
+ D3DSPC_NE = 5,
+ D3DSPC_LE = 6,
+ D3DSPC_RESERVED1 = 7,
+}}
+pub const D3DSHADER_COMPARISON_SHIFT: DWORD = D3DSP_OPCODESPECIFICCONTROL_SHIFT;
+pub const D3DSHADER_COMPARISON_MASK: DWORD = 0x7 << D3DSHADER_COMPARISON_SHIFT;
+pub const D3DSHADER_INSTRUCTION_PREDICATED: DWORD = 0x1 << 28;
+pub const D3DSP_DCL_USAGE_SHIFT: DWORD = 0;
+pub const D3DSP_DCL_USAGE_MASK: DWORD = 0x0000000f;
+pub const D3DSP_DCL_USAGEINDEX_SHIFT: DWORD = 16;
+pub const D3DSP_DCL_USAGEINDEX_MASK: DWORD = 0x000f0000;
+pub const D3DSP_TEXTURETYPE_SHIFT: DWORD = 27;
+pub const D3DSP_TEXTURETYPE_MASK: DWORD = 0x78000000;
+ENUM!{enum D3DSAMPLER_TEXTURE_TYPE {
+ D3DSTT_UNKNOWN = 0 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_2D = 2 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_CUBE = 3 << D3DSP_TEXTURETYPE_SHIFT,
+ D3DSTT_VOLUME = 4 << D3DSP_TEXTURETYPE_SHIFT,
+}}
+pub const D3DSP_REGNUM_MASK: DWORD = 0x000007FF;
+pub const D3DSP_WRITEMASK_0: DWORD = 0x00010000;
+pub const D3DSP_WRITEMASK_1: DWORD = 0x00020000;
+pub const D3DSP_WRITEMASK_2: DWORD = 0x00040000;
+pub const D3DSP_WRITEMASK_3: DWORD = 0x00080000;
+pub const D3DSP_WRITEMASK_ALL: DWORD = 0x000F0000;
+pub const D3DSP_DSTMOD_SHIFT: DWORD = 20;
+pub const D3DSP_DSTMOD_MASK: DWORD = 0x00F00000;
+pub const D3DSPDM_NONE: DWORD = 0 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_SATURATE: DWORD = 1 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_PARTIALPRECISION: DWORD = 2 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSPDM_MSAMPCENTROID: DWORD = 4 << D3DSP_DSTMOD_SHIFT;
+pub const D3DSP_DSTSHIFT_SHIFT: DWORD = 24;
+pub const D3DSP_DSTSHIFT_MASK: DWORD = 0x0F000000;
+pub const D3DSP_REGTYPE_SHIFT: DWORD = 28;
+pub const D3DSP_REGTYPE_SHIFT2: DWORD = 8;
+pub const D3DSP_REGTYPE_MASK: DWORD = 0x70000000;
+pub const D3DSP_REGTYPE_MASK2: DWORD = 0x00001800;
+ENUM!{enum D3DSHADER_PARAM_REGISTER_TYPE {
+ D3DSPR_TEMP = 0,
+ D3DSPR_INPUT = 1,
+ D3DSPR_CONST = 2,
+ D3DSPR_ADDR = 3,
+ D3DSPR_TEXTURE = 3,
+ D3DSPR_RASTOUT = 4,
+ D3DSPR_ATTROUT = 5,
+ D3DSPR_TEXCRDOUT = 6,
+ D3DSPR_OUTPUT = 6,
+ D3DSPR_CONSTINT = 7,
+ D3DSPR_COLOROUT = 8,
+ D3DSPR_DEPTHOUT = 9,
+ D3DSPR_SAMPLER = 10,
+ D3DSPR_CONST2 = 11,
+ D3DSPR_CONST3 = 12,
+ D3DSPR_CONST4 = 13,
+ D3DSPR_CONSTBOOL = 14,
+ D3DSPR_LOOP = 15,
+ D3DSPR_TEMPFLOAT16 = 16,
+ D3DSPR_MISCTYPE = 17,
+ D3DSPR_LABEL = 18,
+ D3DSPR_PREDICATE = 19,
+}}
+ENUM!{enum D3DSHADER_MISCTYPE_OFFSETS {
+ D3DSMO_POSITION = 0,
+ D3DSMO_FACE = 1,
+}}
+ENUM!{enum D3DVS_RASTOUT_OFFSETS {
+ D3DSRO_POSITION = 0,
+ D3DSRO_FOG,
+ D3DSRO_POINT_SIZE,
+}}
+pub const D3DVS_ADDRESSMODE_SHIFT: DWORD = 13;
+pub const D3DVS_ADDRESSMODE_MASK: DWORD = 1 << D3DVS_ADDRESSMODE_SHIFT;
+ENUM!{enum D3DVS_ADDRESSMODE_TYPE {
+ D3DVS_ADDRMODE_ABSOLUTE = 0 << D3DVS_ADDRESSMODE_SHIFT,
+ D3DVS_ADDRMODE_RELATIVE = 1 << D3DVS_ADDRESSMODE_SHIFT,
+}}
+pub const D3DSHADER_ADDRESSMODE_SHIFT: DWORD = 13;
+pub const D3DSHADER_ADDRESSMODE_MASK: DWORD = 1 << D3DSHADER_ADDRESSMODE_SHIFT;
+ENUM!{enum D3DSHADER_ADDRESSMODE_TYPE {
+ D3DSHADER_ADDRMODE_ABSOLUTE = 0 << D3DSHADER_ADDRESSMODE_SHIFT,
+ D3DSHADER_ADDRMODE_RELATIVE = 1 << D3DSHADER_ADDRESSMODE_SHIFT,
+}}
+pub const D3DVS_SWIZZLE_SHIFT: DWORD = 16;
+pub const D3DVS_SWIZZLE_MASK: DWORD = 0x00FF0000;
+pub const D3DVS_X_X: DWORD = 0 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_Y: DWORD = 1 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_Z: DWORD = 2 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_X_W: DWORD = 3 << D3DVS_SWIZZLE_SHIFT;
+pub const D3DVS_Y_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Y_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 2);
+pub const D3DVS_Z_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_Z_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 4);
+pub const D3DVS_W_X: DWORD = 0 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_Y: DWORD = 1 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_Z: DWORD = 2 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_W_W: DWORD = 3 << (D3DVS_SWIZZLE_SHIFT + 6);
+pub const D3DVS_NOSWIZZLE: DWORD = D3DVS_X_X | D3DVS_Y_Y | D3DVS_Z_Z | D3DVS_W_W;
+pub const D3DSP_SWIZZLE_SHIFT: DWORD = 16;
+pub const D3DSP_SWIZZLE_MASK: DWORD = 0x00FF0000;
+pub const D3DSP_NOSWIZZLE: DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATERED: DWORD = (0 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (0 << (D3DSP_SWIZZLE_SHIFT + 2)) | (0 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (0 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEGREEN: DWORD = (1 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (1 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (1 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEBLUE: DWORD = (2 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (2 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (2 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_REPLICATEALPHA: DWORD = (3 << (D3DSP_SWIZZLE_SHIFT + 0))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 2)) | (3 << (D3DSP_SWIZZLE_SHIFT + 4))
+ | (3 << (D3DSP_SWIZZLE_SHIFT + 6));
+pub const D3DSP_SRCMOD_SHIFT: DWORD = 24;
+pub const D3DSP_SRCMOD_MASK: DWORD = 0x0F000000;
+ENUM!{enum D3DSHADER_PARAM_SRCMOD_TYPE {
+ D3DSPSM_NONE = 0 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NEG = 1 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIAS = 2 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_BIASNEG = 3 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGN = 4 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_SIGNNEG = 5 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_COMP = 6 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2 = 7 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_X2NEG = 8 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DZ = 9 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_DW = 10 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABS = 11 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_ABSNEG = 12 << D3DSP_SRCMOD_SHIFT,
+ D3DSPSM_NOT = 13 << D3DSP_SRCMOD_SHIFT,
+}}
+pub const D3DSP_MIN_PRECISION_SHIFT: DWORD = 14;
+pub const D3DSP_MIN_PRECISION_MASK: DWORD = 0x0000C000;
+ENUM!{enum D3DSHADER_MIN_PRECISION {
+ D3DMP_DEFAULT = 0,
+ D3DMP_16 = 1,
+ D3DMP_2_8 = 2,
+}}
+pub const D3DSI_COMMENTSIZE_SHIFT: DWORD = 16;
+pub const D3DSI_COMMENTSIZE_MASK: DWORD = 0x7FFF0000;
+pub const D3DPS_END: DWORD = 0x0000FFFF;
+pub const D3DVS_END: DWORD = 0x0000FFFF;
+ENUM!{enum D3DBASISTYPE {
+ D3DBASIS_BEZIER = 0,
+ D3DBASIS_BSPLINE = 1,
+ D3DBASIS_CATMULL_ROM = 2,
+}}
+ENUM!{enum D3DDEGREETYPE {
+ D3DDEGREE_LINEAR = 1,
+ D3DDEGREE_QUADRATIC = 2,
+ D3DDEGREE_CUBIC = 3,
+ D3DDEGREE_QUINTIC = 5,
+}}
+ENUM!{enum D3DPATCHEDGESTYLE {
+ D3DPATCHEDGE_DISCRETE = 0,
+ D3DPATCHEDGE_CONTINUOUS = 1,
+}}
+ENUM!{enum D3DSTATEBLOCKTYPE {
+ D3DSBT_ALL = 1,
+ D3DSBT_PIXELSTATE = 2,
+ D3DSBT_VERTEXSTATE = 3,
+}}
+ENUM!{enum D3DVERTEXBLENDFLAGS {
+ D3DVBF_DISABLE = 0,
+ D3DVBF_1WEIGHTS = 1,
+ D3DVBF_2WEIGHTS = 2,
+ D3DVBF_3WEIGHTS = 3,
+ D3DVBF_TWEENING = 255,
+ D3DVBF_0WEIGHTS = 256,
+}}
+ENUM!{enum D3DTEXTURETRANSFORMFLAGS {
+ D3DTTFF_DISABLE = 0,
+ D3DTTFF_COUNT1 = 1,
+ D3DTTFF_COUNT2 = 2,
+ D3DTTFF_COUNT3 = 3,
+ D3DTTFF_COUNT4 = 4,
+ D3DTTFF_PROJECTED = 256,
+}}
+pub const D3DFVF_TEXTUREFORMAT2: DWORD = 0;
+pub const D3DFVF_TEXTUREFORMAT1: DWORD = 3;
+pub const D3DFVF_TEXTUREFORMAT3: DWORD = 1;
+pub const D3DFVF_TEXTUREFORMAT4: DWORD = 2;
+ENUM!{enum D3DDEVTYPE {
+ D3DDEVTYPE_HAL = 1,
+ D3DDEVTYPE_REF = 2,
+ D3DDEVTYPE_SW = 3,
+ D3DDEVTYPE_NULLREF = 4,
+}}
+ENUM!{enum D3DMULTISAMPLE_TYPE {
+ D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_NONMASKABLE = 1,
+ D3DMULTISAMPLE_2_SAMPLES = 2,
+ D3DMULTISAMPLE_3_SAMPLES = 3,
+ D3DMULTISAMPLE_4_SAMPLES = 4,
+ D3DMULTISAMPLE_5_SAMPLES = 5,
+ D3DMULTISAMPLE_6_SAMPLES = 6,
+ D3DMULTISAMPLE_7_SAMPLES = 7,
+ D3DMULTISAMPLE_8_SAMPLES = 8,
+ D3DMULTISAMPLE_9_SAMPLES = 9,
+ D3DMULTISAMPLE_10_SAMPLES = 10,
+ D3DMULTISAMPLE_11_SAMPLES = 11,
+ D3DMULTISAMPLE_12_SAMPLES = 12,
+ D3DMULTISAMPLE_13_SAMPLES = 13,
+ D3DMULTISAMPLE_14_SAMPLES = 14,
+ D3DMULTISAMPLE_15_SAMPLES = 15,
+ D3DMULTISAMPLE_16_SAMPLES = 16,
+}}
+ENUM!{enum D3DFORMAT {
+ D3DFMT_UNKNOWN = 0,
+ D3DFMT_R8G8B8 = 20,
+ D3DFMT_A8R8G8B8 = 21,
+ D3DFMT_X8R8G8B8 = 22,
+ D3DFMT_R5G6B5 = 23,
+ D3DFMT_X1R5G5B5 = 24,
+ D3DFMT_A1R5G5B5 = 25,
+ D3DFMT_A4R4G4B4 = 26,
+ D3DFMT_R3G3B2 = 27,
+ D3DFMT_A8 = 28,
+ D3DFMT_A8R3G3B2 = 29,
+ D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_A8B8G8R8 = 32,
+ D3DFMT_X8B8G8R8 = 33,
+ D3DFMT_G16R16 = 34,
+ D3DFMT_A2R10G10B10 = 35,
+ D3DFMT_A16B16G16R16 = 36,
+ D3DFMT_A8P8 = 40,
+ D3DFMT_P8 = 41,
+ D3DFMT_L8 = 50,
+ D3DFMT_A8L8 = 51,
+ D3DFMT_A4L4 = 52,
+ D3DFMT_V8U8 = 60,
+ D3DFMT_L6V5U5 = 61,
+ D3DFMT_X8L8V8U8 = 62,
+ D3DFMT_Q8W8V8U8 = 63,
+ D3DFMT_V16U16 = 64,
+ D3DFMT_A2W10V10U10 = 67,
+ D3DFMT_UYVY = MAKEFOURCC!(b'U', b'Y', b'V', b'Y'),
+ D3DFMT_R8G8_B8G8 = MAKEFOURCC!(b'R', b'G', b'B', b'G'),
+ D3DFMT_YUY2 = MAKEFOURCC!(b'Y', b'U', b'Y', b'2'),
+ D3DFMT_G8R8_G8B8 = MAKEFOURCC!(b'G', b'R', b'G', b'B'),
+ D3DFMT_DXT1 = MAKEFOURCC!(b'D', b'X', b'T', b'1'),
+ D3DFMT_DXT2 = MAKEFOURCC!(b'D', b'X', b'T', b'2'),
+ D3DFMT_DXT3 = MAKEFOURCC!(b'D', b'X', b'T', b'3'),
+ D3DFMT_DXT4 = MAKEFOURCC!(b'D', b'X', b'T', b'4'),
+ D3DFMT_DXT5 = MAKEFOURCC!(b'D', b'X', b'T', b'5'),
+ D3DFMT_D16_LOCKABLE = 70,
+ D3DFMT_D32 = 71,
+ D3DFMT_D15S1 = 73,
+ D3DFMT_D24S8 = 75,
+ D3DFMT_D24X8 = 77,
+ D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+ D3DFMT_D32F_LOCKABLE = 82,
+ D3DFMT_D24FS8 = 83,
+ D3DFMT_D32_LOCKABLE = 84,
+ D3DFMT_S8_LOCKABLE = 85,
+ D3DFMT_L16 = 81,
+ D3DFMT_VERTEXDATA = 100,
+ D3DFMT_INDEX16 = 101,
+ D3DFMT_INDEX32 = 102,
+ D3DFMT_Q16W16V16U16 = 110,
+ D3DFMT_MULTI2_ARGB8 = MAKEFOURCC!(b'M', b'E', b'T', b'1'),
+ D3DFMT_R16F = 111,
+ D3DFMT_G16R16F = 112,
+ D3DFMT_A16B16G16R16F = 113,
+ D3DFMT_R32F = 114,
+ D3DFMT_G32R32F = 115,
+ D3DFMT_A32B32G32R32F = 116,
+ D3DFMT_CxV8U8 = 117,
+ D3DFMT_A1 = 118,
+ D3DFMT_A2B10G10R10_XR_BIAS = 119,
+ D3DFMT_BINARYBUFFER = 199,
+}}
+STRUCT!{struct D3DDISPLAYMODE {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: UINT,
+ Format: D3DFORMAT,
+}}
+STRUCT!{struct D3DDEVICE_CREATION_PARAMETERS {
+ AdapterOrdinal: UINT,
+ DeviceType: D3DDEVTYPE,
+ hFocusWindow: HWND,
+ BehaviorFlags: DWORD,
+}}
+ENUM!{enum D3DSWAPEFFECT {
+ D3DSWAPEFFECT_DISCARD = 1,
+ D3DSWAPEFFECT_FLIP = 2,
+ D3DSWAPEFFECT_COPY = 3,
+ D3DSWAPEFFECT_OVERLAY = 4,
+ D3DSWAPEFFECT_FLIPEX = 5,
+}}
+ENUM!{enum D3DPOOL {
+ D3DPOOL_DEFAULT = 0,
+ D3DPOOL_MANAGED = 1,
+ D3DPOOL_SYSTEMMEM = 2,
+ D3DPOOL_SCRATCH = 3,
+}}
+pub const D3DPRESENT_RATE_DEFAULT: DWORD = 0x00000000;
+STRUCT!{struct D3DPRESENT_PARAMETERS {
+ BackBufferWidth: UINT,
+ BackBufferHeight: UINT,
+ BackBufferFormat: D3DFORMAT,
+ BackBufferCount: UINT,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ MultiSampleQuality: DWORD,
+ SwapEffect: D3DSWAPEFFECT,
+ hDeviceWindow: HWND,
+ Windowed: BOOL,
+ EnableAutoDepthStencil: BOOL,
+ AutoDepthStencilFormat: D3DFORMAT,
+ Flags: DWORD,
+ FullScreen_RefreshRateInHz: UINT,
+ PresentationInterval: UINT,
+}}
+pub const D3DPRESENTFLAG_LOCKABLE_BACKBUFFER: DWORD = 0x00000001;
+pub const D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL: DWORD = 0x00000002;
+pub const D3DPRESENTFLAG_DEVICECLIP: DWORD = 0x00000004;
+pub const D3DPRESENTFLAG_VIDEO: DWORD = 0x00000010;
+pub const D3DPRESENTFLAG_NOAUTOROTATE: DWORD = 0x00000020;
+pub const D3DPRESENTFLAG_UNPRUNEDMODE: DWORD = 0x00000040;
+pub const D3DPRESENTFLAG_OVERLAY_LIMITEDRGB: DWORD = 0x00000080;
+pub const D3DPRESENTFLAG_OVERLAY_YCbCr_BT709: DWORD = 0x00000100;
+pub const D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC: DWORD = 0x00000200;
+pub const D3DPRESENTFLAG_RESTRICTED_CONTENT: DWORD = 0x00000400;
+pub const D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER: DWORD = 0x00000800;
+STRUCT!{struct D3DGAMMARAMP {
+ red: [WORD; 256],
+ green: [WORD; 256],
+ blue: [WORD; 256],
+}}
+ENUM!{enum D3DBACKBUFFER_TYPE {
+ D3DBACKBUFFER_TYPE_MONO = 0,
+ D3DBACKBUFFER_TYPE_LEFT = 1,
+ D3DBACKBUFFER_TYPE_RIGHT = 2,
+}}
+ENUM!{enum D3DRESOURCETYPE {
+ D3DRTYPE_SURFACE = 1,
+ D3DRTYPE_VOLUME = 2,
+ D3DRTYPE_TEXTURE = 3,
+ D3DRTYPE_VOLUMETEXTURE = 4,
+ D3DRTYPE_CUBETEXTURE = 5,
+ D3DRTYPE_VERTEXBUFFER = 6,
+ D3DRTYPE_INDEXBUFFER = 7,
+}}
+pub const D3DUSAGE_RENDERTARGET: DWORD = 0x00000001;
+pub const D3DUSAGE_DEPTHSTENCIL: DWORD = 0x00000002;
+pub const D3DUSAGE_DYNAMIC: DWORD = 0x00000200;
+pub const D3DUSAGE_NONSECURE: DWORD = 0x00800000;
+pub const D3DUSAGE_AUTOGENMIPMAP: DWORD = 0x00000400;
+pub const D3DUSAGE_DMAP: DWORD = 0x00004000;
+pub const D3DUSAGE_QUERY_LEGACYBUMPMAP: DWORD = 0x00008000;
+pub const D3DUSAGE_QUERY_SRGBREAD: DWORD = 0x00010000;
+pub const D3DUSAGE_QUERY_FILTER: DWORD = 0x00020000;
+pub const D3DUSAGE_QUERY_SRGBWRITE: DWORD = 0x00040000;
+pub const D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING: DWORD = 0x00080000;
+pub const D3DUSAGE_QUERY_VERTEXTEXTURE: DWORD = 0x00100000;
+pub const D3DUSAGE_QUERY_WRAPANDMIP: DWORD = 0x00200000;
+pub const D3DUSAGE_WRITEONLY: DWORD = 0x00000008;
+pub const D3DUSAGE_SOFTWAREPROCESSING: DWORD = 0x00000010;
+pub const D3DUSAGE_DONOTCLIP: DWORD = 0x00000020;
+pub const D3DUSAGE_POINTS: DWORD = 0x00000040;
+pub const D3DUSAGE_RTPATCHES: DWORD = 0x00000080;
+pub const D3DUSAGE_NPATCHES: DWORD = 0x00000100;
+pub const D3DUSAGE_TEXTAPI: DWORD = 0x10000000;
+pub const D3DUSAGE_RESTRICTED_CONTENT: DWORD = 0x00000800;
+pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE: DWORD = 0x00002000;
+pub const D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER: DWORD = 0x00001000;
+ENUM!{enum D3DCUBEMAP_FACES {
+ D3DCUBEMAP_FACE_POSITIVE_X = 0,
+ D3DCUBEMAP_FACE_NEGATIVE_X = 1,
+ D3DCUBEMAP_FACE_POSITIVE_Y = 2,
+ D3DCUBEMAP_FACE_NEGATIVE_Y = 3,
+ D3DCUBEMAP_FACE_POSITIVE_Z = 4,
+ D3DCUBEMAP_FACE_NEGATIVE_Z = 5,
+}}
+pub const D3DLOCK_READONLY: DWORD = 0x00000010;
+pub const D3DLOCK_DISCARD: DWORD = 0x00002000;
+pub const D3DLOCK_NOOVERWRITE: DWORD = 0x00001000;
+pub const D3DLOCK_NOSYSLOCK: DWORD = 0x00000800;
+pub const D3DLOCK_DONOTWAIT: DWORD = 0x00004000;
+pub const D3DLOCK_NO_DIRTY_UPDATE: DWORD = 0x00008000;
+STRUCT!{struct D3DVERTEXBUFFER_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Size: UINT,
+ FVF: DWORD,
+}}
+STRUCT!{struct D3DINDEXBUFFER_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Size: UINT,
+}}
+STRUCT!{struct D3DSURFACE_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ MultiSampleType: D3DMULTISAMPLE_TYPE,
+ MultiSampleQuality: DWORD,
+ Width: UINT,
+ Height: UINT,
+}}
+STRUCT!{struct D3DVOLUME_DESC {
+ Format: D3DFORMAT,
+ Type: D3DRESOURCETYPE,
+ Usage: DWORD,
+ Pool: D3DPOOL,
+ Width: UINT,
+ Height: UINT,
+ Depth: UINT,
+}}
+STRUCT!{struct D3DLOCKED_RECT {
+ Pitch: INT,
+ pBits: *mut c_void,
+}}
+STRUCT!{struct D3DBOX {
+ Left: UINT,
+ Top: UINT,
+ Right: UINT,
+ Bottom: UINT,
+ Front: UINT,
+ Back: UINT,
+}}
+STRUCT!{struct D3DLOCKED_BOX {
+ RowPitch: INT,
+ SlicePitch: INT,
+ pBits: *mut c_void,
+}}
+STRUCT!{struct D3DRANGE {
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct D3DRECTPATCH_INFO {
+ StartVertexOffsetWidth: UINT,
+ StartVertexOffsetHeight: UINT,
+ Width: UINT,
+ Height: UINT,
+ Stride: UINT,
+ Basis: D3DBASISTYPE,
+ Degree: D3DDEGREETYPE,
+}}
+STRUCT!{struct D3DTRIPATCH_INFO {
+ StartVertexOffset: UINT,
+ NumVertices: UINT,
+ Basis: D3DBASISTYPE,
+ Degree: D3DDEGREETYPE,
+}}
+pub const MAX_DEVICE_IDENTIFIER_STRING: usize = 512;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DADAPTER_IDENTIFIER9 {
+ Driver: [c_char; MAX_DEVICE_IDENTIFIER_STRING],
+ Description: [c_char; MAX_DEVICE_IDENTIFIER_STRING],
+ DeviceName: [c_char; 32],
+ DriverVersion: LARGE_INTEGER,
+ VendorId: DWORD,
+ DeviceId: DWORD,
+ SubSysId: DWORD,
+ Revision: DWORD,
+ DeviceIdentifier: GUID,
+ WHQLLevel: DWORD,
+}}
+STRUCT!{struct D3DRASTER_STATUS {
+ InVBlank: BOOL,
+ ScanLine: UINT,
+}}
+ENUM!{enum D3DDEBUGMONITORTOKENS {
+ D3DDMT_ENABLE = 0,
+ D3DDMT_DISABLE = 1,
+}}
+ENUM!{enum D3DQUERYTYPE {
+ D3DQUERYTYPE_VCACHE = 4,
+ D3DQUERYTYPE_RESOURCEMANAGER = 5,
+ D3DQUERYTYPE_VERTEXSTATS = 6,
+ D3DQUERYTYPE_EVENT = 8,
+ D3DQUERYTYPE_OCCLUSION = 9,
+ D3DQUERYTYPE_TIMESTAMP = 10,
+ D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
+ D3DQUERYTYPE_TIMESTAMPFREQ = 12,
+ D3DQUERYTYPE_PIPELINETIMINGS = 13,
+ D3DQUERYTYPE_INTERFACETIMINGS = 14,
+ D3DQUERYTYPE_VERTEXTIMINGS = 15,
+ D3DQUERYTYPE_PIXELTIMINGS = 16,
+ D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
+ D3DQUERYTYPE_CACHEUTILIZATION = 18,
+ D3DQUERYTYPE_MEMORYPRESSURE = 19,
+}}
+pub const D3DISSUE_END: DWORD = 1 << 0;
+pub const D3DISSUE_BEGIN: DWORD = 1 << 1;
+pub const D3DGETDATA_FLUSH: DWORD = 1 << 0;
+STRUCT!{struct D3DRESOURCESTATS {
+ bThrashing: BOOL,
+ ApproxBytesDownloaded: DWORD,
+ NumEvicts: DWORD,
+ NumVidCreates: DWORD,
+ LastPri: DWORD,
+ NumUsed: DWORD,
+ NumUsedInVidMem: DWORD,
+ WorkingSet: DWORD,
+ WorkingSetBytes: DWORD,
+ TotalManaged: DWORD,
+ TotalBytes: DWORD,
+}}
+pub const D3DRTYPECOUNT: usize = D3DRTYPE_INDEXBUFFER as usize + 1;
+STRUCT!{struct D3DDEVINFO_RESOURCEMANAGER {
+ stats: [D3DRESOURCESTATS; D3DRTYPECOUNT],
+}}
+pub type LPD3DDEVINFO_RESOURCEMANAGER = *mut D3DDEVINFO_RESOURCEMANAGER;
+STRUCT!{struct D3DDEVINFO_D3DVERTEXSTATS {
+ NumRenderedTriangles: DWORD,
+ NumExtraClippingTriangles: DWORD,
+}}
+pub type LPD3DDEVINFO_D3DVERTEXSTATS = *mut D3DDEVINFO_D3DVERTEXSTATS;
+STRUCT!{struct D3DDEVINFO_VCACHE {
+ Pattern: DWORD,
+ OptMethod: DWORD,
+ CacheSize: DWORD,
+ MagicNumber: DWORD,
+}}
+pub type LPD3DDEVINFO_VCACHE = *mut D3DDEVINFO_VCACHE;
+STRUCT!{struct D3DDEVINFO_D3D9PIPELINETIMINGS {
+ VertexProcessingTimePercent: FLOAT,
+ PixelProcessingTimePercent: FLOAT,
+ OtherGPUProcessingTimePercent: FLOAT,
+ GPUIdleTimePercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9INTERFACETIMINGS {
+ WaitingForGPUToUseApplicationResourceTimePercent: FLOAT,
+ WaitingForGPUToAcceptMoreCommandsTimePercent: FLOAT,
+ WaitingForGPUToStayWithinLatencyTimePercent: FLOAT,
+ WaitingForGPUExclusiveResourceTimePercent: FLOAT,
+ WaitingForGPUOtherTimePercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9STAGETIMINGS {
+ MemoryProcessingPercent: FLOAT,
+ ComputationProcessingPercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
+ MaxBandwidthUtilized: FLOAT,
+ FrontEndUploadMemoryUtilizedPercent: FLOAT,
+ VertexRateUtilizedPercent: FLOAT,
+ TriangleSetupRateUtilizedPercent: FLOAT,
+ FillRateUtilizedPercent: FLOAT,
+}}
+STRUCT!{struct D3DDEVINFO_D3D9CACHEUTILIZATION {
+ TextureCacheHitRate: FLOAT,
+ PostTransformVertexCacheHitRate: FLOAT,
+}}
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DMEMORYPRESSURE {
+ BytesEvictedFromProcess: UINT64,
+ SizeOfInefficientAllocation: UINT64,
+ LevelOfEfficiency: DWORD,
+}}
+ENUM!{enum D3DCOMPOSERECTSOP {
+ D3DCOMPOSERECTS_COPY = 1,
+ D3DCOMPOSERECTS_OR = 2,
+ D3DCOMPOSERECTS_AND = 3,
+ D3DCOMPOSERECTS_NEG = 4,
+}}
+STRUCT!{struct D3DCOMPOSERECTDESC {
+ X: USHORT,
+ Y: USHORT,
+ Width: USHORT,
+ Height: USHORT,
+}}
+STRUCT!{struct D3DCOMPOSERECTDESTINATION {
+ SrcRectIndex: USHORT,
+ Reserved: USHORT,
+ X: SHORT,
+ Y: SHORT,
+}}
+pub const D3DCOMPOSERECTS_MAXNUMRECTS: DWORD = 0xFFFF;
+pub const D3DCONVOLUTIONMONO_MAXWIDTH: DWORD = 7;
+pub const D3DCONVOLUTIONMONO_MAXHEIGHT: DWORD = D3DCONVOLUTIONMONO_MAXWIDTH;
+pub const D3DFMT_A1_SURFACE_MAXWIDTH: DWORD = 8192;
+pub const D3DFMT_A1_SURFACE_MAXHEIGHT: DWORD = 2048;
+// FIXME packed(4)
+STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DPRESENTSTATS {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+}}
+ENUM!{enum D3DSCANLINEORDERING {
+ D3DSCANLINEORDERING_UNKNOWN = 0,
+ D3DSCANLINEORDERING_PROGRESSIVE = 1,
+ D3DSCANLINEORDERING_INTERLACED = 2,
+}}
+STRUCT!{struct D3DDISPLAYMODEEX {
+ Size: UINT,
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: UINT,
+ Format: D3DFORMAT,
+ ScanLineOrdering: D3DSCANLINEORDERING,
+}}
+STRUCT!{struct D3DDISPLAYMODEFILTER {
+ Size: UINT,
+ Format: D3DFORMAT,
+ ScanLineOrdering: D3DSCANLINEORDERING,
+}}
+ENUM!{enum D3DDISPLAYROTATION {
+ D3DDISPLAYROTATION_IDENTITY = 1,
+ D3DDISPLAYROTATION_90 = 2,
+ D3DDISPLAYROTATION_180 = 3,
+ D3DDISPLAYROTATION_270 = 4,
+}}
+pub const D3D9_RESOURCE_PRIORITY_MINIMUM: DWORD = 0x28000000;
+pub const D3D9_RESOURCE_PRIORITY_LOW: DWORD = 0x50000000;
+pub const D3D9_RESOURCE_PRIORITY_NORMAL: DWORD = 0x78000000;
+pub const D3D9_RESOURCE_PRIORITY_HIGH: DWORD = 0xa0000000;
+pub const D3D9_RESOURCE_PRIORITY_MAXIMUM: DWORD = 0xc8000000;
+pub const D3D_OMAC_SIZE: usize = 16;
+STRUCT!{struct D3D_OMAC {
+ Omac: [BYTE; D3D_OMAC_SIZE],
+}}
+ENUM!{enum D3DAUTHENTICATEDCHANNELTYPE {
+ D3DAUTHENTICATEDCHANNEL_D3D9 = 1,
+ D3DAUTHENTICATEDCHANNEL_DRIVER_SOFTWARE = 2,
+ D3DAUTHENTICATEDCHANNEL_DRIVER_HARDWARE = 3,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_INPUT {
+ QueryType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT {
+ omac: D3D_OMAC,
+ QueryType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+ ReturnCode: HRESULT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_PROTECTION,
+ 0xa84eb584, 0xc495, 0x48aa, 0xb9, 0x4d, 0x8b, 0xd2, 0xd6, 0xfb, 0xce, 0x5}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS Value: UINT [
+ ProtectionEnabled set_ProtectionEnabled[0..1],
+ OverlayOrFullscreenRequired set_OverlayOrFullscreenRequired[1..2],
+]}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYPROTECTION_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ProtectionFlags: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CHANNELTYPE,
+ 0xbc1b18a5, 0xb1fb, 0x42ab, 0xbd, 0x94, 0xb5, 0x82, 0x8b, 0x4b, 0xf7, 0xbe}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCHANNELTYPE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ChannelType: D3DAUTHENTICATEDCHANNELTYPE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_DEVICEHANDLE,
+ 0xec1c539d, 0x8cff, 0x4e2a, 0xbc, 0xc4, 0xf5, 0x69, 0x2f, 0x99, 0xf4, 0x80}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYDEVICEHANDLE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CRYPTOSESSION,
+ 0x2634499e, 0xd018, 0x4d74, 0xac, 0x17, 0x7f, 0x72, 0x40, 0x59, 0x52, 0x8d}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DXVA2DecodeHandle: HANDLE,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYCRYPTOSESSION_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DXVA2DecodeHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESSCOUNT,
+ 0xdb207b3, 0x9450, 0x46a6, 0x82, 0xde, 0x1b, 0x96, 0xd4, 0x4f, 0x9c, 0xf2}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESSCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumRestrictedSharedResourceProcesses: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_RESTRICTEDSHAREDRESOURCEPROCESS,
+ 0x649bbadb, 0xf0f4, 0x4639, 0xa1, 0x5b, 0x24, 0x39, 0x3f, 0xc3, 0xab, 0xac}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ ProcessIndex: UINT,
+}}
+ENUM!{enum D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE {
+ PROCESSIDTYPE_UNKNOWN = 0,
+ PROCESSIDTYPE_DWM = 1,
+ PROCESSIDTYPE_HANDLE = 2,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYRESTRICTEDSHAREDRESOURCEPROCESS_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ ProcessIndex: UINT,
+ ProcessIdentifer: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE,
+ ProcessHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_UNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT,
+ 0x12f0bd6, 0xe662, 0x4474, 0xbe, 0xfd, 0xaa, 0x53, 0xe5, 0x14, 0x3c, 0x6d}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNRESTRICTEDPROTECTEDSHAREDRESOURCECOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumUnrestrictedProtectedSharedResources: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_OUTPUTIDCOUNT,
+ 0x2c042b5e, 0x8c07, 0x46d5, 0xaa, 0xbe, 0x8f, 0x75, 0xcb, 0xad, 0x4c, 0x31}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTIDCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ NumOutputIDs: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_OUTPUTID,
+ 0x839ddca3, 0x9b4e, 0x41e4, 0xb0, 0x53, 0x89, 0x2b, 0xd2, 0xa1, 0x1e, 0xe7}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ OutputIDIndex: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYOUTPUTID_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ DeviceHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ OutputIDIndex: UINT,
+ OutputID: UINT64,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ACCESSIBILITYATTRIBUTES,
+ 0x6214d9d2, 0x432c, 0x4abb, 0x9f, 0xce, 0x21, 0x6e, 0xea, 0x26, 0x9e, 0x3b}
+ENUM!{enum D3DBUSTYPE {
+ D3DBUSTYPE_OTHER = 0x00000000,
+ D3DBUSTYPE_PCI = 0x00000001,
+ D3DBUSTYPE_PCIX = 0x00000002,
+ D3DBUSTYPE_PCIEXPRESS = 0x00000003,
+ D3DBUSTYPE_AGP = 0x00000004,
+ D3DBUSIMPL_MODIFIER_INSIDE_OF_CHIPSET = 0x00010000,
+ MD3DBUSIMPL_ODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP = 0x00020000,
+ D3DBUSIMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET = 0x00030000,
+ D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR = 0x00040000,
+ D3DBUSIMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE = 0x00050000,
+ D3DBUSIMPL_MODIFIER_NON_STANDARD = 0x80000000,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYINFOBUSTYPE_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ BusType: D3DBUSTYPE,
+ bAccessibleInContiguousBlocks: BOOL,
+ bAccessibleInNonContiguousBlocks: BOOL,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUIDCOUNT,
+ 0xb30f7066, 0x203c, 0x4b07, 0x93, 0xfc, 0xce, 0xaa, 0xfd, 0x61, 0x24, 0x1e}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUIDCOUNT_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ NumEncryptionGuids: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_ENCRYPTIONWHENACCESSIBLEGUID,
+ 0xf83a5958, 0xe986, 0x4bda, 0xbe, 0xb0, 0x41, 0x1f, 0x6a, 0x7a, 0x1, 0xb7}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_INPUT {
+ Input: D3DAUTHENTICATEDCHANNEL_QUERY_INPUT,
+ EncryptionGuidIndex: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYEVICTIONENCRYPTIONGUID_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ EncryptionGuidIndex: UINT,
+ EncryptionGuid: GUID,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDQUERY_CURRENTENCRYPTIONWHENACCESSIBLE,
+ 0xec1791c7, 0xdad3, 0x4f15, 0x9e, 0xc3, 0xfa, 0xa9, 0x3d, 0x60, 0xd4, 0xf0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_QUERYUNCOMPRESSEDENCRYPTIONLEVEL_OUTPUT {
+ Output: D3DAUTHENTICATEDCHANNEL_QUERY_OUTPUT,
+ EncryptionGuid: GUID,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT {
+ omac: D3D_OMAC,
+ ConfigureType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+}}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURE_OUTPUT {
+ omac: D3D_OMAC,
+ ConfigureType: GUID,
+ hChannel: HANDLE,
+ SequenceNumber: UINT,
+ ReturnCode: HRESULT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_INITIALIZE,
+ 0x6114bdb, 0x3523, 0x470a, 0x8d, 0xca, 0xfb, 0xc2, 0x84, 0x51, 0x54, 0xf0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREINITIALIZE {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ StartSequenceQuery: UINT,
+ StartSequenceConfigure: UINT,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_PROTECTION,
+ 0x50455658, 0x3f47, 0x4362, 0xbf, 0x99, 0xbf, 0xdf, 0xcd, 0xe9, 0xed, 0x29}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREPROTECTION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ Protections: D3DAUTHENTICATEDCHANNEL_PROTECTION_FLAGS,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_CRYPTOSESSION,
+ 0x6346cc54, 0x2cfc, 0x4ad4, 0x82, 0x24, 0xd1, 0x58, 0x37, 0xde, 0x77, 0x0}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURECRYPTOSESSION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ DXVA2DecodeHandle: HANDLE,
+ CryptoSessionHandle: HANDLE,
+ DeviceHandle: HANDLE,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_SHAREDRESOURCE,
+ 0x772d047, 0x1b40, 0x48e8, 0x9c, 0xa6, 0xb5, 0xf5, 0x10, 0xde, 0x9f, 0x1}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGURESHAREDRESOURCE {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ ProcessIdentiferType: D3DAUTHENTICATEDCHANNEL_PROCESSIDENTIFIERTYPE,
+ ProcessHandle: HANDLE,
+ AllowAccess: BOOL,
+}}
+DEFINE_GUID!{D3DAUTHENTICATEDCONFIGURE_ENCRYPTIONWHENACCESSIBLE,
+ 0x41fff286, 0x6ae0, 0x4d43, 0x9d, 0x55, 0xa4, 0x6e, 0x9e, 0xfd, 0x15, 0x8a}
+STRUCT!{struct D3DAUTHENTICATEDCHANNEL_CONFIGUREUNCOMPRESSEDENCRYPTION {
+ Parameters: D3DAUTHENTICATEDCHANNEL_CONFIGURE_INPUT,
+ EncryptionGuid: GUID,
+}}
+STRUCT!{struct D3DENCRYPTED_BLOCK_INFO {
+ NumEncryptedBytesAtBeginning: UINT,
+ NumBytesInSkipPattern: UINT,
+ NumBytesInEncryptPattern: UINT,
+}}
+STRUCT!{struct D3DAES_CTR_IV {
+ IV: UINT64,
+ Count: UINT64,
+}}
diff --git a/third_party/rust/winapi/src/shared/d3dkmdt.rs b/third_party/rust/winapi/src/shared/d3dkmdt.rs
new file mode 100644
index 0000000000..89d574f12f
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/d3dkmdt.rs
@@ -0,0 +1,45 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Longhorn Display Driver Model (LDDM) kernel mode data type definitions
+use shared::basetsd::UINT32;
+use shared::minwindef::UINT;
+use shared::ntdef::{BOOLEAN, WCHAR};
+//1932
+pub const DXGK_MAX_METADATA_NAME_LENGTH: usize = 32;
+ENUM!{enum DXGK_ENGINE_TYPE {
+ DXGK_ENGINE_TYPE_OTHER,
+ DXGK_ENGINE_TYPE_3D,
+ DXGK_ENGINE_TYPE_VIDEO_DECODE,
+ DXGK_ENGINE_TYPE_VIDEO_ENCODE,
+ DXGK_ENGINE_TYPE_VIDEO_PROCESSING,
+ DXGK_ENGINE_TYPE_SCENE_ASSEMBLY,
+ DXGK_ENGINE_TYPE_COPY,
+ DXGK_ENGINE_TYPE_OVERLAY,
+ DXGK_ENGINE_TYPE_CRYPTO,
+ DXGK_ENGINE_TYPE_MAX,
+}}
+STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA_FLAGS {
+ Value: UINT32,
+}}
+BITFIELD!{DXGK_NODEMETADATA_FLAGS Value: UINT32 [
+ ContextSchedulingSupported set_ContextSchedulingSupported[0..1],
+ RingBufferFenceRelease set_RingBufferFenceRelease[1..2],
+ SupportTrackedWorkload set_SupportTrackedWorkload[2..3],
+ Reserved set_Reserved[3..16],
+ MaxInFlightHwQueueBuffers set_MaxInFlightHwQueueBuffers[16..32],
+]}
+STRUCT!{#[repr(packed)] struct DXGK_NODEMETADATA {
+ EngineType: DXGK_ENGINE_TYPE,
+ FriendlyName: [WCHAR; DXGK_MAX_METADATA_NAME_LENGTH],
+ Flags: DXGK_NODEMETADATA_FLAGS,
+ GpuMmuSupported: BOOLEAN,
+ IoMmuSupported: BOOLEAN,
+}}
+//2100
+STRUCT!{#[repr(packed)] struct D3DKMT_NODEMETADATA {
+ NodeOrdinalAndAdapterIndex: UINT,
+ NodeData: DXGK_NODEMETADATA,
+}}
diff --git a/third_party/rust/winapi/src/shared/d3dukmdt.rs b/third_party/rust/winapi/src/shared/d3dukmdt.rs
new file mode 100644
index 0000000000..24bfc5064a
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/d3dukmdt.rs
@@ -0,0 +1,413 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Longhorn Display Driver Model (LDDM) user/kernel mode shared data type definitions.
+use shared::basetsd::{UINT64, ULONG_PTR};
+use shared::guiddef::GUID;
+use shared::minwindef::{BOOL, UINT, ULONG};
+use shared::ntdef::{HANDLE, LUID, ULONGLONG, VOID};
+pub const DXGKDDI_INTERFACE_VERSION_VISTA: ULONG = 0x1052;
+pub const DXGKDDI_INTERFACE_VERSION_VISTA_SP1: ULONG = 0x1053;
+pub const DXGKDDI_INTERFACE_VERSION_WIN7: ULONG = 0x2005;
+pub const DXGKDDI_INTERFACE_VERSION_WIN8: ULONG = 0x300E;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION: ULONG = 0x4003;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5023;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1: ULONG = 0x6003;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_1_5: ULONG = 0x6010;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_2: ULONG = 0x700A;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_3: ULONG = 0x8001;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_4: ULONG = 0x9006;
+pub const DXGKDDI_INTERFACE_VERSION_WDDM2_5: ULONG = 0xA00B;
+#[inline]
+pub fn IS_OFFICIAL_DDI_INTERFACE_VERSION(version: ULONG) -> bool {
+ (version == DXGKDDI_INTERFACE_VERSION_VISTA) ||
+ (version == DXGKDDI_INTERFACE_VERSION_VISTA_SP1) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WIN7) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WIN8) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM1_3_PATH_INDEPENDENT_ROTATION) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_0) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_1_5) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_2) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_3) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_4) ||
+ (version == DXGKDDI_INTERFACE_VERSION_WDDM2_5)
+}
+pub const DXGKDDI_INTERFACE_VERSION: ULONG = DXGKDDI_INTERFACE_VERSION_WDDM2_5;
+pub const D3D_UMD_INTERFACE_VERSION_VISTA: ULONG = 0x000C;
+pub const D3D_UMD_INTERFACE_VERSION_WIN7: ULONG = 0x2003;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_M3: ULONG = 0x3001;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_CP: ULONG = 0x3002;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8_RC: ULONG = 0x3003;
+pub const D3D_UMD_INTERFACE_VERSION_WIN8: ULONG = 0x3004;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM1_3: ULONG = 0x4002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1: ULONG = 0x5000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M1_3: ULONG = 0x5001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0_M2_2: ULONG = 0x5002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_0: ULONG = 0x5002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_1: ULONG = 0x6000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_2: ULONG = 0x6001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_3: ULONG = 0x6002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1_4: ULONG = 0x6003;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_1: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_1_4;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_1: ULONG = 0x7000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2_2: ULONG = 0x7001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_2: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_2_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_1: ULONG = 0x8000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3_2: ULONG = 0x8001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_3: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_3_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_1: ULONG = 0x9000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4_2: ULONG = 0x9001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_4: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_4_2;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_1: ULONG = 0xA000;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_2: ULONG = 0xA001;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5_3: ULONG = 0xA002;
+pub const D3D_UMD_INTERFACE_VERSION_WDDM2_5: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5_3;
+pub const D3D_UMD_INTERFACE_VERSION: ULONG = D3D_UMD_INTERFACE_VERSION_WDDM2_5;
+pub type D3DGPU_VIRTUAL_ADDRESS = ULONGLONG;
+pub type D3DGPU_SIZE_T = ULONGLONG;
+pub const D3DGPU_UNIQUE_DRIVER_PROTECTION: ULONGLONG = 0x8000000000000000;
+pub const DXGK_MAX_PAGE_TABLE_LEVEL_COUNT: UINT = 6;
+pub const DXGK_MIN_PAGE_TABLE_LEVEL_COUNT: UINT = 2;
+STRUCT!{struct GPUP_DRIVER_ESCAPE_INPUT {
+ vfLUID: LUID,
+}}
+pub type PGPUP_DRIVER_ESCAPE_INPUT = *mut GPUP_DRIVER_ESCAPE_INPUT;
+ENUM!{enum DXGKVGPU_ESCAPE_TYPE {
+ DXGKVGPU_ESCAPE_TYPE_READ_PCI_CONFIG = 0,
+ DXGKVGPU_ESCAPE_TYPE_WRITE_PCI_CONFIG = 1,
+ DXGKVGPU_ESCAPE_TYPE_INITIALIZE = 2,
+ DXGKVGPU_ESCAPE_TYPE_RELEASE = 3,
+ DXGKVGPU_ESCAPE_TYPE_GET_VGPU_TYPE = 4,
+ DXGKVGPU_ESCAPE_TYPE_POWERTRANSITIONCOMPLETE = 5,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_HEAD {
+ Luid: GPUP_DRIVER_ESCAPE_INPUT,
+ Type: DXGKVGPU_ESCAPE_TYPE,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_READ_PCI_CONFIG {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_WRITE_PCI_CONFIG {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ Offset: UINT,
+ Size: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_READ_VGPU_TYPE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_POWERTRANSITIONCOMPLETE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ PowerState: UINT,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_INITIALIZE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+ VmGuid: GUID,
+}}
+STRUCT!{struct DXGKVGPU_ESCAPE_RELEASE {
+ Header: DXGKVGPU_ESCAPE_HEAD,
+}}
+ENUM!{enum DXGK_PTE_PAGE_SIZE {
+ DXGK_PTE_PAGE_TABLE_PAGE_4KB = 0,
+ DXGK_PTE_PAGE_TABLE_PAGE_64KB = 1,
+}}
+UNION!{union DXGK_PTE_u {
+ [u64; 1],
+ PageAddress PageAddress_mut: ULONGLONG,
+ PageTableAddress PageTableAddress_mut: ULONGLONG,
+}}
+STRUCT!{struct DXGK_PTE {
+ Flags: ULONGLONG,
+ u: DXGK_PTE_u,
+}}
+BITFIELD!{DXGK_PTE Flags: ULONGLONG [
+ Valid set_Valid[0..1],
+ Zero set_Zero[1..2],
+ CacheCoherent set_CacheCoherent[2..3],
+ ReadOnly set_ReadOnly[3..4],
+ NoExecute set_NoExecute[4..5],
+ Segment set_Segment[5..10],
+ LargePage set_LargePage[10..11],
+ PhysicalAdapterIndex set_PhysicalAdapterIndex[11..17],
+ PageTablePageSize set_PageTablePageSize[17..19],
+ SystemReserved0 set_SystemReserved0[19..20],
+ Reserved set_Reserved[20..64],
+]}
+pub const D3DGPU_NULL: D3DGPU_VIRTUAL_ADDRESS = 0;
+pub const D3DDDI_MAX_WRITTEN_PRIMARIES: usize = 16;
+pub const D3DDDI_MAX_MPO_PRESENT_DIRTY_RECTS: usize = 0xFFF;
+STRUCT!{struct D3DGPU_PHYSICAL_ADDRESS {
+ SegmentId: UINT,
+ SegmentOffset: UINT64,
+}}
+pub type D3DDDI_VIDEO_PRESENT_SOURCE_ID = UINT;
+pub type D3DDDI_VIDEO_PRESENT_TARGET_ID = UINT;
+pub type D3DKMT_HANDLE = UINT;
+STRUCT!{struct D3DDDI_RATIONAL {
+ Numerator: UINT,
+ Denominator: UINT,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONINFO {
+ hAllocation: D3DKMT_HANDLE,
+ pSystemMem: *const VOID,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+ Flags: UINT,
+}}
+BITFIELD!{D3DDDI_ALLOCATIONINFO Flags: UINT [
+ Primary set_Primary[0..1],
+ Stereo set_Stereo[1..2],
+ Reserved set_Reserved[2..32],
+]}
+UNION!{union D3DDDI_ALLOCATIONINFO2_u1 {
+ [usize; 1],
+ hSection hSection_mut: HANDLE,
+ pSystemMem pSystemMem_mut: *const VOID,
+}}
+UNION!{union D3DDDI_ALLOCATIONINFO2_u2 {
+ [usize; 1],
+ Priority Priority_mut: UINT,
+ Unused Unused_mut: ULONG_PTR,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONINFO2 {
+ hAllocation: D3DKMT_HANDLE,
+ u1: D3DDDI_ALLOCATIONINFO2_u1,
+ pPrivateDriverData: *mut VOID,
+ PrivateDriverDataSize: UINT,
+ VidPnSourceId: D3DDDI_VIDEO_PRESENT_SOURCE_ID,
+ Flags: UINT,
+ GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ u2: D3DDDI_ALLOCATIONINFO2_u2,
+ Reserved: [ULONG_PTR; 5],
+}}
+BITFIELD!{D3DDDI_ALLOCATIONINFO2 Flags: UINT [
+ Primary set_Primary[0..1],
+ Stereo set_Stereo[1..2],
+ OverridePriority set_OverridePriority[2..3],
+ Reserved set_Reserved[3..32],
+]}
+STRUCT!{struct D3DDDI_OPENALLOCATIONINFO {
+ hAllocation: D3DKMT_HANDLE,
+ pPrivateDriverData: *const VOID,
+ PrivateDriverDataSize: UINT,
+}}
+STRUCT!{struct D3DDDI_OPENALLOCATIONINFO2 {
+ hAllocation: D3DKMT_HANDLE,
+ pPrivateDriverData: *const VOID,
+ PrivateDriverDataSize: UINT,
+ GpuVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ Reserved: [ULONG_PTR; 6],
+}}
+ENUM!{enum D3DDDI_OFFER_PRIORITY {
+ D3DDDI_OFFER_PRIORITY_NONE = 0,
+ D3DDDI_OFFER_PRIORITY_LOW = 1,
+ D3DDDI_OFFER_PRIORITY_NORMAL,
+ D3DDDI_OFFER_PRIORITY_HIGH,
+ D3DDDI_OFFER_PRIORITY_AUTO,
+}}
+STRUCT!{struct D3DDDI_ALLOCATIONLIST {
+ hAllocation: D3DKMT_HANDLE,
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_ALLOCATIONLIST Value: UINT [
+ WriteOperation set_WriteOperation[0..1],
+ DoNotRetireInstance set_DoNotRetireInstance[1..2],
+ OfferPriority set_OfferPriority[2..5],
+ Reserved set_Reserved[5..32],
+]}
+STRUCT!{struct D3DDDI_PATCHLOCATIONLIST {
+ AllocationIndex: UINT,
+ Value: UINT,
+ DriverId: UINT,
+ AllocationOffset: UINT,
+ PatchOffset: UINT,
+ SplitOffset: UINT,
+}}
+BITFIELD!{D3DDDI_PATCHLOCATIONLIST Value: UINT [
+ SlotId set_SlotId[0..24],
+ Reserved set_Reserved[24..32],
+]}
+STRUCT!{struct D3DDDICB_LOCKFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_LOCKFLAGS Value: UINT [
+ ReadOnly set_ReadOnly[0..1],
+ WriteOnly set_WriteOnly[1..2],
+ DonotWait set_DonotWait[2..3],
+ IgnoreSync set_IgnoreSync[3..4],
+ LockEntire set_LockEntire[4..5],
+ DonotEvict set_DonotEvict[5..6],
+ AcquireAperture set_AcquireAperture[6..7],
+ Discard set_Discard[7..8],
+ NoExistingReference set_NoExistingReference[8..9],
+ UseAlternateVA set_UseAlternateVA[9..10],
+ IgnoreReadSync set_IgnoreReadSync[10..11],
+ Reserved set_Reserved[11..32],
+]}
+STRUCT!{struct D3DDDICB_LOCK2FLAGS {
+ Value: UINT,
+}}
+STRUCT!{struct D3DDDICB_DESTROYALLOCATION2FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_DESTROYALLOCATION2FLAGS Value: UINT [
+ AssumeNotInUse set_AssumeNotInUse[0..1],
+ SynchronousDestroy set_SynchronousDestroy[1..2],
+ Reserved set_Reserved[2..31],
+ SystemUseOnly set_SystemUseOnly[31..32],
+]}
+STRUCT!{struct D3DDDI_ESCAPEFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_ESCAPEFLAGS Value: UINT [
+ HardwareAccess set_HardwareAccess[0..1],
+ DeviceStatusQuery set_DeviceStatusQuery[1..2],
+ ChangeFrameLatency set_ChangeFrameLatency[2..3],
+ NoAdapterSynchronization set_NoAdapterSynchronization[3..4],
+ Reserved set_Reserved[4..5],
+ VirtualMachineData set_VirtualMachineData[5..6],
+ DriverKnownEscape set_DriverKnownEscape[6..7],
+ DriverCommonEscape set_DriverCommonEscape[7..8],
+ Reserved2 set_Reserved2[8..24],
+]}
+ENUM!{enum D3DDDI_DRIVERESCAPETYPE {
+ D3DDDI_DRIVERESCAPETYPE_TRANSLATEALLOCATIONHANDLE = 0,
+ D3DDDI_DRIVERESCAPETYPE_TRANSLATERESOURCEHANDLE = 1,
+ D3DDDI_DRIVERESCAPETYPE_MAX,
+}}
+STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATEALLOCATIONEHANDLE {
+ EscapeType: D3DDDI_DRIVERESCAPETYPE,
+ hAllocation: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DDDI_DRIVERESCAPE_TRANSLATERESOURCEHANDLE {
+ EscapeType: D3DDDI_DRIVERESCAPETYPE,
+ hResource: D3DKMT_HANDLE,
+}}
+STRUCT!{struct D3DDDI_CREATECONTEXTFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_CREATECONTEXTFLAGS Value: UINT [
+ NullRendering set_NullRendering[0..1],
+ InitialData set_InitialData[1..2],
+ DisableGpuTimeout set_DisableGpuTimeout[2..3],
+ SynchronizationOnly set_SynchronizationOnly[3..4],
+ HwQueueSupported set_HwQueueSupported[4..5],
+ Reserved set_Reserved[5..32],
+]}
+//1188
+STRUCT!{struct D3DDDICB_SIGNALFLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDICB_SIGNALFLAGS Value: UINT [
+ SignalAtSubmission set_SignalAtSubmission[0..1],
+ EnqueueCpuEvent set_EnqueueCpuEvent[1..2],
+ AllowFenceRewind set_AllowFenceRewind[2..3],
+ Reserved set_Reserved[3..31],
+ DXGK_SIGNAL_FLAG_INTERNAL0 set_DXGK_SIGNAL_FLAG_INTERNAL0[31..32],
+]}
+pub const D3DDDI_MAX_OBJECT_WAITED_ON: usize = 32;
+pub const D3DDDI_MAX_OBJECT_SIGNALED: usize = 32;
+ENUM!{enum D3DDDI_SYNCHRONIZATIONOBJECT_TYPE {
+ D3DDDI_SYNCHRONIZATION_MUTEX = 1,
+ D3DDDI_SEMAPHORE = 2,
+ D3DDDI_FENCE = 3,
+ D3DDDI_CPU_NOTIFICATION = 4,
+ D3DDDI_MONITORED_FENCE = 5,
+ D3DDDI_PERIODIC_MONITORED_FENCE = 6,
+ D3DDDI_SYNCHRONIZATION_TYPE_LIMIT,
+}}
+//1553
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex {
+ InitialState: BOOL,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore {
+ MaxCount: UINT,
+ InitialCount: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved {
+ Reserved: [UINT; 16],
+}}
+UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO_u {
+ [u32; 16],
+ SynchronizationMutex SynchronizationMutex_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_SynchronizationMutex,
+ Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Semaphore,
+ Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u_Reserved,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO {
+ Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE,
+ u: D3DDDI_SYNCHRONIZATIONOBJECTINFO_u,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS {
+ Value: UINT,
+}}
+BITFIELD!{D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Value: UINT [
+ Shared set_Shared[0..1],
+ NtSecuritySharing set_NtSecuritySharing[1..2],
+ CrossAdapter set_CrossAdapter[2..3],
+ TopOfPipeline set_TopOfPipeline[3..4],
+ NoSignal set_NoSignal[4..5],
+ NoWait set_NoWait[5..6],
+ NoSignalMaxValueOnTdr set_NoSignalMaxValueOnTdr[6..7],
+ NoGPUAccess set_NoGPUAccess[7..8],
+ Reserved set_Reserved[8..31],
+ D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0
+ set_D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS_RESERVED0[31..32],
+]}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex {
+ InitialState: BOOL,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore {
+ MaxCount: UINT,
+ InitialCount: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence {
+ FenceValue: UINT64,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification {
+ Event: HANDLE,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence {
+ InitialFenceValue: UINT64,
+ FenceValueCPUVirtualAddress: *mut VOID,
+ FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ EngineAffinity: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence {
+ hAdapter: D3DKMT_HANDLE,
+ VidPnTargetId: D3DDDI_VIDEO_PRESENT_TARGET_ID,
+ Time: UINT64,
+ FenceValueCPUVirtualAddress: *mut VOID,
+ FenceValueGPUVirtualAddress: D3DGPU_VIRTUAL_ADDRESS,
+ EngineAffinity: UINT,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved {
+ Reserved: [UINT64; 8],
+}}
+UNION!{union D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u {
+ [u64; 8],
+ SynchronizationMutex SynchronizationMutex_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_SynchronizationMutex,
+ Semaphore Semaphore_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Semaphore,
+ Fence Fence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Fence,
+ CPUNotification CPUNotification_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_CPUNotification,
+ MonitoredFence MonitoredFence_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_MonitoredFence,
+ PeriodicMonitoredFence PeriodicMonitoredFence_mut:
+ D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_PeriodicMonitoredFence,
+ Reserved Reserved_mut: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u_Reserved,
+}}
+STRUCT!{struct D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
+ Type: D3DDDI_SYNCHRONIZATIONOBJECT_TYPE,
+ Flags: D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS,
+ u: D3DDDI_SYNCHRONIZATIONOBJECTINFO2_u,
+ SharedHandle: D3DKMT_HANDLE,
+}}
+//1778
+pub const D3DDDI_MAX_BROADCAST_CONTEXT: usize = 64;
diff --git a/third_party/rust/winapi/src/shared/dcomptypes.rs b/third_party/rust/winapi/src/shared/dcomptypes.rs
new file mode 100644
index 0000000000..4d45d3c90a
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dcomptypes.rs
@@ -0,0 +1,50 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dcomptypes.h
+use shared::dxgitype::DXGI_RATIONAL;
+use shared::minwindef::DWORD;
+use um::winnt::LARGE_INTEGER;
+ENUM!{enum DCOMPOSITION_BITMAP_INTERPOLATION_MODE {
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_LINEAR = 1,
+ DCOMPOSITION_BITMAP_INTERPOLATION_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_BORDER_MODE {
+ DCOMPOSITION_BORDER_MODE_SOFT = 0,
+ DCOMPOSITION_BORDER_MODE_HARD = 1,
+ DCOMPOSITION_BORDER_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_COMPOSITE_MODE {
+ DCOMPOSITION_COMPOSITE_MODE_SOURCE_OVER = 0,
+ DCOMPOSITION_COMPOSITE_MODE_DESTINATION_INVERT = 1,
+ DCOMPOSITION_COMPOSITE_MODE_MIN_BLEND = 2,
+ DCOMPOSITION_COMPOSITE_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_BACKFACE_VISIBILITY {
+ DCOMPOSITION_BACKFACE_VISIBILITY_VISIBLE = 0,
+ DCOMPOSITION_BACKFACE_VISIBILITY_HIDDEN = 1,
+ DCOMPOSITION_BACKFACE_VISIBILITY_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_OPACITY_MODE {
+ DCOMPOSITION_OPACITY_MODE_LAYER = 0,
+ DCOMPOSITION_OPACITY_MODE_MULTIPLY = 1,
+ DCOMPOSITION_OPACITY_MODE_INHERIT = 0xffffffff,
+}}
+ENUM!{enum DCOMPOSITION_DEPTH_MODE {
+ DCOMPOSITION_DEPTH_MODE_TREE = 0,
+ DCOMPOSITION_DEPTH_MODE_SPATIAL = 1,
+ DCOMPOSITION_DEPTH_MODE_INHERIT = 0xffffffff,
+}}
+STRUCT!{struct DCOMPOSITION_FRAME_STATISTICS {
+ lastFrameTime: LARGE_INTEGER,
+ currentCompositionRate: DXGI_RATIONAL,
+ currentTime: LARGE_INTEGER,
+ timeFrequency: LARGE_INTEGER,
+ nextEstimatedFrameTime: LARGE_INTEGER,
+}}
+pub const COMPOSITIONOBJECT_READ: DWORD = 0x0001;
+pub const COMPOSITIONOBJECT_WRITE: DWORD = 0x0002;
+pub const COMPOSITIONOBJECT_ALL_ACCESS: DWORD = COMPOSITIONOBJECT_READ | COMPOSITIONOBJECT_WRITE;
diff --git a/third_party/rust/winapi/src/shared/devguid.rs b/third_party/rust/winapi/src/shared/devguid.rs
new file mode 100644
index 0000000000..f163037b8d
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/devguid.rs
@@ -0,0 +1,178 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Defines GUIDs for device classes used in Plug & Play.
+DEFINE_GUID!{GUID_DEVCLASS_1394,
+ 0x6bdd1fc1, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_1394DEBUG,
+ 0x66f250d6, 0x7801, 0x4a64, 0xb1, 0x39, 0xee, 0xa8, 0x0a, 0x45, 0x0b, 0x24}
+DEFINE_GUID!{GUID_DEVCLASS_61883,
+ 0x7ebefbc0, 0x3200, 0x11d2, 0xb4, 0xc2, 0x00, 0xa0, 0xc9, 0x69, 0x7d, 0x07}
+DEFINE_GUID!{GUID_DEVCLASS_ADAPTER,
+ 0x4d36e964, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_APMSUPPORT,
+ 0xd45b1c18, 0xc8fa, 0x11d1, 0x9f, 0x77, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_AVC,
+ 0xc06ff265, 0xae09, 0x48f0, 0x81, 0x2c, 0x16, 0x75, 0x3d, 0x7c, 0xba, 0x83}
+DEFINE_GUID!{GUID_DEVCLASS_BATTERY,
+ 0x72631e54, 0x78a4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a}
+DEFINE_GUID!{GUID_DEVCLASS_BIOMETRIC,
+ 0x53d29ef7, 0x377c, 0x4d14, 0x86, 0x4b, 0xeb, 0x3a, 0x85, 0x76, 0x93, 0x59}
+DEFINE_GUID!{GUID_DEVCLASS_BLUETOOTH,
+ 0xe0cbf06c, 0xcd8b, 0x4647, 0xbb, 0x8a, 0x26, 0x3b, 0x43, 0xf0, 0xf9, 0x74}
+DEFINE_GUID!{GUID_DEVCLASS_CDROM,
+ 0x4d36e965, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_COMPUTER,
+ 0x4d36e966, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DECODER,
+ 0x6bdd1fc2, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_DISKDRIVE,
+ 0x4d36e967, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DISPLAY,
+ 0x4d36e968, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_DOT4,
+ 0x48721b56, 0x6795, 0x11d2, 0xb1, 0xa8, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2}
+DEFINE_GUID!{GUID_DEVCLASS_DOT4PRINT,
+ 0x49ce6ac8, 0x6f86, 0x11d2, 0xb1, 0xe5, 0x00, 0x80, 0xc7, 0x2e, 0x74, 0xa2}
+DEFINE_GUID!{GUID_DEVCLASS_ENUM1394,
+ 0xc459df55, 0xdb08, 0x11d1, 0xb0, 0x09, 0x00, 0xa0, 0xc9, 0x08, 0x1f, 0xf6}
+DEFINE_GUID!{GUID_DEVCLASS_FDC,
+ 0x4d36e969, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_FLOPPYDISK,
+ 0x4d36e980, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_GPS,
+ 0x6bdd1fc3, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_HDC,
+ 0x4d36e96a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_HIDCLASS,
+ 0x745a17a0, 0x74d3, 0x11d0, 0xb6, 0xfe, 0x00, 0xa0, 0xc9, 0x0f, 0x57, 0xda}
+DEFINE_GUID!{GUID_DEVCLASS_IMAGE,
+ 0x6bdd1fc6, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_INFINIBAND,
+ 0x30ef7132, 0xd858, 0x4a0c, 0xac, 0x24, 0xb9, 0x02, 0x8a, 0x5c, 0xca, 0x3f}
+DEFINE_GUID!{GUID_DEVCLASS_INFRARED,
+ 0x6bdd1fc5, 0x810f, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_KEYBOARD,
+ 0x4d36e96b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_LEGACYDRIVER,
+ 0x8ecc055d, 0x047f, 0x11d1, 0xa5, 0x37, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xd1}
+DEFINE_GUID!{GUID_DEVCLASS_MEDIA,
+ 0x4d36e96c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MEDIUM_CHANGER,
+ 0xce5939ae, 0xebde, 0x11d0, 0xb1, 0x81, 0x00, 0x00, 0xf8, 0x75, 0x3e, 0xc4}
+DEFINE_GUID!{GUID_DEVCLASS_MODEM,
+ 0x4d36e96d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MEMORY,
+ 0x5099944a, 0xf6b9, 0x4057, 0xa0, 0x56, 0x8c, 0x55, 0x02, 0x28, 0x54, 0x4c}
+DEFINE_GUID!{GUID_DEVCLASS_MONITOR,
+ 0x4d36e96e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MOUSE,
+ 0x4d36e96f, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MTD,
+ 0x4d36e970, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MULTIFUNCTION,
+ 0x4d36e971, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_MULTIPORTSERIAL,
+ 0x50906cb8, 0xba12, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_NET,
+ 0x4d36e972, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETCLIENT,
+ 0x4d36e973, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETSERVICE,
+ 0x4d36e974, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NETTRANS,
+ 0x4d36e975, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_NODRIVER,
+ 0x4d36e976, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PCMCIA,
+ 0x4d36e977, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PNPPRINTERS,
+ 0x4658ee7e, 0xf050, 0x11d1, 0xb6, 0xbd, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7}
+DEFINE_GUID!{GUID_DEVCLASS_PORTS,
+ 0x4d36e978, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PRINTER,
+ 0x4d36e979, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PRINTERUPGRADE,
+ 0x4d36e97a, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_PROCESSOR,
+ 0x50127dc3, 0x0f36, 0x415e, 0xa6, 0xcc, 0x4c, 0xb3, 0xbe, 0x91, 0x0B, 0x65}
+DEFINE_GUID!{GUID_DEVCLASS_SBP2,
+ 0xd48179be, 0xec20, 0x11d1, 0xb6, 0xb8, 0x00, 0xc0, 0x4f, 0xa3, 0x72, 0xa7}
+DEFINE_GUID!{GUID_DEVCLASS_SCSIADAPTER,
+ 0x4d36e97b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_SECURITYACCELERATOR,
+ 0x268c95a1, 0xedfe, 0x11d3, 0x95, 0xc3, 0x00, 0x10, 0xdc, 0x40, 0x50, 0xa5}
+DEFINE_GUID!{GUID_DEVCLASS_SENSOR,
+ 0x5175d334, 0xc371, 0x4806, 0xb3, 0xba, 0x71, 0xfd, 0x53, 0xc9, 0x25, 0x8d}
+DEFINE_GUID!{GUID_DEVCLASS_SIDESHOW,
+ 0x997b5d8d, 0xc442, 0x4f2e, 0xba, 0xf3, 0x9c, 0x8e, 0x67, 0x1e, 0x9e, 0x21}
+DEFINE_GUID!{GUID_DEVCLASS_SMARTCARDREADER,
+ 0x50dd5230, 0xba8a, 0x11d1, 0xbf, 0x5d, 0x00, 0x00, 0xf8, 0x05, 0xf5, 0x30}
+DEFINE_GUID!{GUID_DEVCLASS_SOUND,
+ 0x4d36e97c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_SYSTEM,
+ 0x4d36e97d, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_TAPEDRIVE,
+ 0x6d807884, 0x7d21, 0x11cf, 0x80, 0x1c, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_UNKNOWN,
+ 0x4d36e97e, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_DEVCLASS_USB,
+ 0x36fc9e60, 0xc465, 0x11cf, 0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
+DEFINE_GUID!{GUID_DEVCLASS_VOLUME,
+ 0x71a27cdd, 0x812a, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f}
+DEFINE_GUID!{GUID_DEVCLASS_VOLUMESNAPSHOT,
+ 0x533c5b84, 0xec70, 0x11d2, 0x95, 0x05, 0x00, 0xc0, 0x4f, 0x79, 0xde, 0xaf}
+DEFINE_GUID!{GUID_DEVCLASS_WCEUSBS,
+ 0x25dbce51, 0x6c8f, 0x4a72, 0x8a, 0x6d, 0xb5, 0x4c, 0x2b, 0x4f, 0xc8, 0x35}
+DEFINE_GUID!{GUID_DEVCLASS_WPD,
+ 0xeec5ad98, 0x8080, 0x425f, 0x92, 0x2a, 0xda, 0xbf, 0x3d, 0xe3, 0xf6, 0x9a}
+DEFINE_GUID!{GUID_DEVCLASS_EHSTORAGESILO,
+ 0x9da2b80f, 0xf89f, 0x4a49, 0xa5, 0xc2, 0x51, 0x1b, 0x08, 0x5b, 0x9e, 0x8a}
+DEFINE_GUID!{GUID_DEVCLASS_FIRMWARE,
+ 0xf2e7dd72, 0x6468, 0x4e36, 0xb6, 0xf1, 0x64, 0x88, 0xf4, 0x2c, 0x1b, 0x52}
+DEFINE_GUID!{GUID_DEVCLASS_EXTENSION,
+ 0xe2f84ce7, 0x8efa, 0x411c, 0xaa, 0x69, 0x97, 0x45, 0x4c, 0xa4, 0xcb, 0x57}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_TOP,
+ 0xb369baf4, 0x5568, 0x4e82, 0xa8, 0x7e, 0xa9, 0x3e, 0xb1, 0x6b, 0xca, 0x87}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ACTIVITYMONITOR,
+ 0xb86dff51, 0xa31e, 0x4bac, 0xb3, 0xcf, 0xe8, 0xcf, 0xe7, 0x5c, 0x9f, 0xc2}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_UNDELETE,
+ 0xfe8f1572, 0xc67a, 0x48c0, 0xbb, 0xac, 0x0b, 0x5c, 0x6d, 0x66, 0xca, 0xfb}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ANTIVIRUS,
+ 0xb1d1a169, 0xc54f, 0x4379, 0x81, 0xdb, 0xbe, 0xe7, 0xd8, 0x8d, 0x74, 0x54}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_REPLICATION,
+ 0x48d3ebc4, 0x4cf8, 0x48ff, 0xb8, 0x69, 0x9c, 0x68, 0xad, 0x42, 0xeb, 0x9f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CONTINUOUSBACKUP,
+ 0x71aa14f8, 0x6fad, 0x4622, 0xad, 0x77, 0x92, 0xbb, 0x9d, 0x7e, 0x69, 0x47}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CONTENTSCREENER,
+ 0x3e3f0674, 0xc83c, 0x4558, 0xbb, 0x26, 0x98, 0x20, 0xe1, 0xeb, 0xa5, 0xc5}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_QUOTAMANAGEMENT,
+ 0x8503c911, 0xa6c7, 0x4919, 0x8f, 0x79, 0x50, 0x28, 0xf5, 0x86, 0x6b, 0x0c}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SYSTEMRECOVERY,
+ 0x2db15374, 0x706e, 0x4131, 0xa0, 0xc7, 0xd7, 0xc7, 0x8e, 0xb0, 0x28, 0x9a}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_CFSMETADATASERVER,
+ 0xcdcf0939, 0xb75b, 0x4630, 0xbf, 0x76, 0x80, 0xf7, 0xba, 0x65, 0x58, 0x84}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_HSM,
+ 0xd546500a, 0x2aeb, 0x45f6, 0x94, 0x82, 0xf4, 0xb1, 0x79, 0x9c, 0x31, 0x77}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_COMPRESSION,
+ 0xf3586baf, 0xb5aa, 0x49b5, 0x8d, 0x6c, 0x05, 0x69, 0x28, 0x4c, 0x63, 0x9f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_ENCRYPTION,
+ 0xa0a701c0, 0xa511, 0x42ff, 0xaa, 0x6c, 0x06, 0xdc, 0x03, 0x95, 0x57, 0x6f}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_VIRTUALIZATION,
+ 0xf75a86c0, 0x10d8, 0x4c3a, 0xb2, 0x33, 0xed, 0x60, 0xe4, 0xcd, 0xfa, 0xac}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_PHYSICALQUOTAMANAGEMENT,
+ 0x6a0a8e78, 0xbba6, 0x4fc4, 0xa7, 0x09, 0x1e, 0x33, 0xcd, 0x09, 0xd6, 0x7e}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_OPENFILEBACKUP,
+ 0xf8ecafa6, 0x66d1, 0x41a5, 0x89, 0x9b, 0x66, 0x58, 0x5d, 0x72, 0x16, 0xb7}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SECURITYENHANCER,
+ 0xd02bc3da, 0x0c8e, 0x4945, 0x9b, 0xd5, 0xf1, 0x88, 0x3c, 0x22, 0x6c, 0x8c}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_COPYPROTECTION,
+ 0x89786ff1, 0x9c12, 0x402f, 0x9c, 0x9e, 0x17, 0x75, 0x3c, 0x7f, 0x43, 0x75}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_BOTTOM,
+ 0x37765ea0, 0x5958, 0x4fc9, 0xb0, 0x4b, 0x2f, 0xdf, 0xef, 0x97, 0xe5, 0x9e}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_SYSTEM,
+ 0x5d1b9aaa, 0x01e2, 0x46af, 0x84, 0x9f, 0x27, 0x2b, 0x3f, 0x32, 0x4c, 0x46}
+DEFINE_GUID!{GUID_DEVCLASS_FSFILTER_INFRASTRUCTURE,
+ 0xe55fa6f9, 0x128c, 0x4d04, 0xab, 0xab, 0x63, 0x0c, 0x74, 0xb1, 0x45, 0x3a}
diff --git a/third_party/rust/winapi/src/shared/devpkey.rs b/third_party/rust/winapi/src/shared/devpkey.rs
new file mode 100644
index 0000000000..db68557964
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/devpkey.rs
@@ -0,0 +1,401 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! Defines property keys for the Plug and Play Device Property API.
+use shared::devpropdef::DEVPROPKEY;
+DEFINE_DEVPROPKEY!{DEVPKEY_NAME,
+ 0xb725f130, 0x47ef, 0x101a, 0xa5, 0xf1, 0x02, 0x60, 0x8c, 0x9e, 0xeb, 0xac, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DeviceDesc,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_HardwareIds,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_CompatibleIds,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Service,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Class,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ClassGuid,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Driver,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ConfigFlags,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Manufacturer,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FriendlyName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LocationInfo,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PDOName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 16}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Capabilities,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UINumber,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UpperFilters,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LowerFilters,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusTypeGuid,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 21}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LegacyBusType,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 22}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusNumber,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 23}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_EnumeratorName,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 24}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Security,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 25}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SecuritySDS,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 26}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DevType,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 27}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Exclusive,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 28}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Characteristics,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 29}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Address,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 30}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_UINumberDescFormat,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 31}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PowerData,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 32}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicy,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 33}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicyDefault,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 34}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalPolicyOverride,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 35}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstallState,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 36}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LocationPaths,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 37}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BaseContainerId,
+ 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 38}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstanceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 256}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DevNodeStatus,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ProblemCode,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_EjectionRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_RemovalRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PowerRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Parent,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Children,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Siblings,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_TransportRelations,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ProblemStatus,
+ 0x4340a6c5, 0x93fa, 0x4706, 0x97, 0x2c, 0x7b, 0x64, 0x80, 0x08, 0xa5, 0xa7, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Reported,
+ 0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Legacy,
+ 0x80497100, 0x8c73, 0x48b9, 0xaa, 0xd9, 0xce, 0x38, 0x7e, 0x19, 0xc5, 0x6e, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ContainerId,
+ 0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InLocalMachineContainer,
+ 0x8c7ed206, 0x3f8a, 0x4827, 0xb3, 0xab, 0xae, 0x9e, 0x1f, 0xae, 0xfc, 0x6c, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Model,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 39}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ModelId,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FriendlyNameAttributes,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ManufacturerAttributes,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PresenceNotForDevice,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SignalStrength,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsAssociateableByUserAction,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ShowInUninstallUI,
+ 0x80d81ea6, 0x7473, 0x4b0c, 0x82, 0x16, 0xef, 0xc1, 0x1a, 0x2c, 0x4c, 0x8b, 8}
+pub const DEVPKEY_Numa_Proximity_Domain: DEVPROPKEY = DEVPKEY_Device_Numa_Proximity_Domain;
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Numa_Proximity_Domain,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 1}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DHP_Rebalance_Policy,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Numa_Node,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BusReportedDeviceDesc,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsPresent,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_HasProblem,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ConfigurationId,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ReportedDeviceIdsHash,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PhysicalDeviceLocation,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_BiosDeviceName,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverProblemDesc,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DebuggerSafe,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_PostInstallInProgress,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_Stack,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ExtendedConfigurationIds,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_IsRebootRequired,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 16}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareDate,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareVersion,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirmwareRevision,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DependencyProviders,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DependencyDependents,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 21}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SoftRestartSupported,
+ 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 22}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SessionId,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_InstallDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 100}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_FirstInstallDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 101}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LastArrivalDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 102}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_LastRemovalDate,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 103}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverDate,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverVersion,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverDesc,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfPath,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfSection,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverInfSectionExt,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_MatchingDeviceId,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverProvider,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverPropPageProvider,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverCoInstallers,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ResourcePickerTags,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_ResourcePickerExceptions,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 13}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverRank,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 14}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_DriverLogoLevel,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 15}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_NoConnectSound,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 17}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_GenericDriverInstalled,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 18}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_AdditionalSoftwareRequested,
+ 0xa8b865dd, 0x2e3d, 0x4094, 0xad, 0x97, 0xe5, 0x93, 0xa7, 0xc, 0x75, 0xd6, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SafeRemovalRequired,
+ 0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_Device_SafeRemovalRequiredOverride,
+ 0xafd97640, 0x86a3, 0x4210, 0xb6, 0x7c, 0x28, 0x9c, 0x41, 0xaa, 0xbe, 0x55, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_Model,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_VendorWebSite,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_DetailedDescription,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_DocumentationLink,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_Icon,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DrvPkg_BrandingIcon,
+ 0xcf73bb51, 0x3abf, 0x44a2, 0x85, 0xe0, 0x9a, 0x3d, 0xc7, 0xa1, 0x21, 0x32, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_UpperFilters,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 19}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_LowerFilters,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 20}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Security,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 25}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_SecuritySDS,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 26}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DevType,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 27}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Exclusive,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 28}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Characteristics,
+ 0x4321918b, 0xf69e, 0x470d, 0xa5, 0xde, 0x4d, 0x88, 0xc7, 0x5a, 0xd2, 0x4b, 29}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Name,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassName,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_Icon,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassInstaller,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_PropPageProvider,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoInstallClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 7}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoDisplayClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 8}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_SilentInstall,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 9}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_NoUseClass,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 10}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DefaultService,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 11}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_IconPath,
+ 0x259abffc, 0x50a7, 0x47ce, 0xaf, 0x8, 0x68, 0xc9, 0xa7, 0xd7, 0x33, 0x66, 12}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_DHPRebalanceOptOut,
+ 0xd14d3ef3, 0x66cf, 0x4ba2, 0x9d, 0x38, 0x0d, 0xdb, 0x37, 0xab, 0x47, 0x01, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceClass_ClassCoInstallers,
+ 0x713d1703, 0xa2e2, 0x49f5, 0x92, 0x14, 0x56, 0x47, 0x2e, 0xf3, 0xda, 0x5c, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_FriendlyName,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Enabled,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_ClassGuid,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 4}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_ReferenceString,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 5}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Restricted,
+ 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 6}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterfaceClass_DefaultInterface,
+ 0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterfaceClass_Name,
+ 0x14c83a99, 0x0b3f, 0x44b7, 0xbe, 0x4c, 0xa1, 0x78, 0xd3, 0x99, 0x05, 0x64, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Address,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 51}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DiscoveryMethod,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 52}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsEncrypted,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 53}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsAuthenticated,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 54}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsConnected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 55}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsPaired,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 56}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 57}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Version,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 65}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Last_Seen,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 66}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Last_Connected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 67}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsShowInDisconnectedState,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 68}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsLocalMachine,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 70}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataPath,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 71}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsMetadataSearchInProgress,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 72}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataChecksum,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 73}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsNotInterestingForDisplay,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 74}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_LaunchDeviceStageOnDeviceConnect,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 76}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_LaunchDeviceStageFromExplorer,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 77}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_BaselineExperienceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 78}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsDeviceUniquelyIdentifiable,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 79}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_AssociationArray,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 80}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceDescription1,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 81}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceDescription2,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 82}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_HasProblem,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 83}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsSharedDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 84}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsNetworkDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 85}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsDefaultDevice,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 86}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_MetadataCabinet,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 87}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_RequiresPairingElevation,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 88}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ExperienceId,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 89}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 90}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Desc_Singular,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 91}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Desc_Plural,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 92}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Category_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 93}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CategoryGroup_Desc,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 94}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CategoryGroup_Icon,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 95}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_PrimaryCategory,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 97}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_UnpairUninstall,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 98}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_RequiresUninstallElevation,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 99}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_DeviceFunctionSubRank,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 100}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 101}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ConfigFlags,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 105}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_PrivilegedPackageFamilyNames,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 106}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_CustomPrivilegedPackageFamilyNames,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 107}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_IsRebootRequired,
+ 0x78c34fc8, 0x104a, 0x4aca, 0x9e, 0xa4, 0x52, 0x4d, 0x52, 0x99, 0x6e, 0x57, 108}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_FriendlyName,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 12288}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_Manufacturer,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8192}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ModelName,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8194}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_ModelNumber,
+ 0x656A3BB3, 0xECC0, 0x43FD, 0x84, 0x77, 0x4A, 0xE0, 0x40, 0x4A, 0x96, 0xCD, 8195}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceContainer_InstallInProgress,
+ 0x83da6326, 0x97a6, 0x4088, 0x94, 0x53, 0xa1, 0x92, 0x3f, 0x57, 0x3b, 0x29, 9}
+pub const DEVPKEY_DeviceDisplay_DiscoveryMethod: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_DiscoveryMethod;
+pub const DEVPKEY_DeviceDisplay_IsShowInDisconnectedState: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsShowInDisconnectedState;
+pub const DEVPKEY_DeviceDisplay_IsNotInterestingForDisplay: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsNotInterestingForDisplay;
+pub const DEVPKEY_DeviceDisplay_IsNetworkDevice: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_IsNetworkDevice;
+pub const DEVPKEY_DeviceDisplay_Category: DEVPROPKEY = DEVPKEY_DeviceContainer_Category;
+pub const DEVPKEY_DeviceDisplay_UnpairUninstall: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_UnpairUninstall;
+pub const DEVPKEY_DeviceDisplay_RequiresUninstallElevation: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_RequiresUninstallElevation;
+pub const DEVPKEY_DeviceDisplay_AlwaysShowDeviceAsConnected: DEVPROPKEY
+ = DEVPKEY_DeviceContainer_AlwaysShowDeviceAsConnected;
+DEFINE_DEVPROPKEY!{DEVPKEY_DevQuery_ObjectType,
+ 0x13673f42, 0xa3d6, 0x49f6, 0xb4, 0xda, 0xae, 0x46, 0xe0, 0xc5, 0x23, 0x7c, 2}
diff --git a/third_party/rust/winapi/src/shared/devpropdef.rs b/third_party/rust/winapi/src/shared/devpropdef.rs
new file mode 100644
index 0000000000..1e9388a441
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/devpropdef.rs
@@ -0,0 +1,83 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Defines property types and keys for the Plug and Play Device Property API
+use shared::guiddef::{GUID, IsEqualGUID};
+use shared::minwindef::ULONG;
+use um::winnt::{CHAR, PCWSTR, PVOID};
+pub type DEVPROPTYPE = ULONG;
+pub type PDEVPROPTYPE = *mut ULONG;
+pub const DEVPROP_TYPEMOD_ARRAY: DEVPROPTYPE = 0x00001000;
+pub const DEVPROP_TYPEMOD_LIST: DEVPROPTYPE = 0x00002000;
+pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0x00000000;
+pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 0x00000001;
+pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 0x00000002;
+pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 0x00000003;
+pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 0x00000004;
+pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 0x00000005;
+pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 0x00000006;
+pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 0x00000007;
+pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 0x00000008;
+pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 0x00000009;
+pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 0x0000000A;
+pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 0x0000000B;
+pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 0x0000000C;
+pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 0x0000000D;
+pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 0x0000000E;
+pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 0x0000000F;
+pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 0x00000010;
+pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 0x00000011;
+pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 0x00000012;
+pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST;
+pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 0x00000013;
+pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 0x00000014;
+pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 0x00000015;
+pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 0x00000016;
+pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY;
+pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 0x00000017;
+pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 0x00000018;
+pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 0x00000019;
+pub const MAX_DEVPROP_TYPE: DEVPROPTYPE = 0x00000019;
+pub const MAX_DEVPROP_TYPEMOD: DEVPROPTYPE = 0x00002000;
+pub const DEVPROP_MASK_TYPE: DEVPROPTYPE = 0x00000FFF;
+pub const DEVPROP_MASK_TYPEMOD: DEVPROPTYPE = 0x0000F000;
+pub type DEVPROP_BOOLEAN = CHAR;
+pub type PDEVPROP_BOOLEAN = *mut CHAR;
+pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = -1;
+pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0;
+pub type DEVPROPGUID = GUID;
+pub type PDEVPROPGUID = *mut GUID;
+pub type DEVPROPID = ULONG;
+pub type PDEVPROPID = *mut ULONG;
+STRUCT!{struct DEVPROPKEY {
+ fmtid: DEVPROPGUID,
+ pid: DEVPROPID,
+}}
+pub type PDEVPROPKEY = *mut DEVPROPKEY;
+#[inline]
+pub fn IsEqualDevPropKey(a: &DEVPROPKEY, b: &DEVPROPKEY) -> bool {
+ (a.pid == b.pid) && IsEqualGUID(&a.fmtid, &b.fmtid)
+}
+ENUM!{enum DEVPROPSTORE {
+ DEVPROP_STORE_SYSTEM,
+ DEVPROP_STORE_USER,
+}}
+pub type PDEVPROPSTORE = *mut DEVPROPSTORE;
+STRUCT!{struct DEVPROPCOMPKEY {
+ Key: DEVPROPKEY,
+ Store: DEVPROPSTORE,
+ LocaleName: PCWSTR,
+}}
+pub type PDEVPROPCOMPKEY = *mut DEVPROPCOMPKEY;
+// IsEqualLocaleName
+// IsEqualDevPropCompKey
+STRUCT!{struct DEVPROPERTY {
+ CompKey: DEVPROPCOMPKEY,
+ Type: DEVPROPTYPE,
+ BufferSize: ULONG,
+ Buffer: PVOID,
+}}
+pub type PDEVPROPERTY = *mut DEVPROPERTY;
+pub const DEVPROPID_FIRST_USABLE: DEVPROPID = 2;
diff --git a/third_party/rust/winapi/src/shared/dinputd.rs b/third_party/rust/winapi/src/shared/dinputd.rs
new file mode 100644
index 0000000000..ceb9ffd992
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dinputd.rs
@@ -0,0 +1,21 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+DEFINE_GUID!{IID_IDirectInputEffectDriver,
+ 0x02538130, 0x898f, 0x11d0, 0x9a, 0xd0, 0x00, 0xa0, 0xc9, 0xa0, 0x6e, 0x35}
+DEFINE_GUID!{IID_IDirectInputJoyConfig,
+ 0x1de12ab1, 0xc9f5, 0x11cf, 0xbf, 0xc7, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
+DEFINE_GUID!{IID_IDirectInputPIDDriver,
+ 0xeec6993a, 0xb3fd, 0x11d2, 0xa9, 0x16, 0x00, 0xc0, 0x4f, 0xb9, 0x86, 0x38}
+DEFINE_GUID!{IID_IDirectInputJoyConfig8,
+ 0xeb0d7dfa, 0x1990, 0x4f27, 0xb4, 0xd6, 0xed, 0xf2, 0xee, 0xc4, 0xa4, 0x4c}
+DEFINE_GUID!{GUID_KeyboardClass,
+ 0x4d36e96b, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_MediaClass,
+ 0x4d36e96c, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_MouseClass,
+ 0x4d36e96f, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}
+DEFINE_GUID!{GUID_HIDClass,
+ 0x745a17a0, 0x74d3, 0x11d0, 0xb6, 0xfe, 0x00, 0xa0, 0xc9, 0x0f, 0x57, 0xda}
diff --git a/third_party/rust/winapi/src/shared/dxgi.rs b/third_party/rust/winapi/src/shared/dxgi.rs
new file mode 100644
index 0000000000..0e878586e0
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi.rs
@@ -0,0 +1,411 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi.h
+use ctypes::c_void;
+use shared::basetsd::{SIZE_T, UINT64};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::{
+ DXGI_GAMMA_CONTROL, DXGI_GAMMA_CONTROL_CAPABILITIES, DXGI_MODE_DESC, DXGI_MODE_ROTATION,
+ DXGI_SAMPLE_DESC, DXGI_USAGE,
+};
+use shared::guiddef::{REFGUID, REFIID};
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT, HMODULE, UINT};
+use shared::windef::{HDC, HMONITOR, HWND, RECT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, INT, LARGE_INTEGER, LUID, WCHAR};
+STRUCT!{struct DXGI_FRAME_STATISTICS {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+}}
+STRUCT!{struct DXGI_MAPPED_RECT {
+ Pitch: INT,
+ pBits: *mut BYTE,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+}}
+STRUCT!{struct DXGI_OUTPUT_DESC {
+ DeviceName: [WCHAR; 32],
+ DesktopCoordinates: RECT,
+ AttachedToDesktop: BOOL,
+ Rotation: DXGI_MODE_ROTATION,
+ Monitor: HMONITOR,
+}}
+STRUCT!{struct DXGI_SHARED_RESOURCE {
+ Handle: HANDLE,
+}}
+pub const DXGI_RESOURCE_PRIORITY_MINIMUM: DWORD = 0x28000000;
+pub const DXGI_RESOURCE_PRIORITY_LOW: DWORD = 0x50000000;
+pub const DXGI_RESOURCE_PRIORITY_NORMAL: DWORD = 0x78000000;
+pub const DXGI_RESOURCE_PRIORITY_HIGH: DWORD = 0xa0000000;
+pub const DXGI_RESOURCE_PRIORITY_MAXIMUM: DWORD = 0xc8000000;
+ENUM!{enum DXGI_RESIDENCY {
+ DXGI_RESIDENCY_FULLY_RESIDENT = 1,
+ DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY = 2,
+ DXGI_RESIDENCY_EVICTED_TO_DISK = 3,
+}}
+STRUCT!{struct DXGI_SURFACE_DESC {
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ SampleDesc: DXGI_SAMPLE_DESC,
+}}
+ENUM!{enum DXGI_SWAP_EFFECT {
+ DXGI_SWAP_EFFECT_DISCARD = 0,
+ DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
+ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3,
+ DXGI_SWAP_EFFECT_FLIP_DISCARD = 4,
+}}
+ENUM!{enum DXGI_SWAP_CHAIN_FLAG {
+ DXGI_SWAP_CHAIN_FLAG_NONPREROTATED = 1,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH = 2,
+ DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE = 4,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT = 8,
+ DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER = 16,
+ DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY = 32,
+ DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT = 64,
+ DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER = 128,
+ DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO = 256,
+ DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO = 512,
+ DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED = 1024,
+ DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING = 2048,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_DESC {
+ BufferDesc: DXGI_MODE_DESC,
+ SampleDesc: DXGI_SAMPLE_DESC,
+ BufferUsage: DXGI_USAGE,
+ BufferCount: UINT,
+ OutputWindow: HWND,
+ Windowed: BOOL,
+ SwapEffect: DXGI_SWAP_EFFECT,
+ Flags: UINT,
+}}
+RIDL!{#[uuid(0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e)]
+interface IDXGIObject(IDXGIObjectVtbl): IUnknown(IUnknownVtbl) {
+ fn SetPrivateData(
+ Name: REFGUID,
+ DataSize: UINT,
+ pData: *const c_void,
+ ) -> HRESULT,
+ fn SetPrivateDataInterface(
+ Name: REFGUID,
+ pUnknown: *const IUnknown,
+ ) -> HRESULT,
+ fn GetPrivateData(
+ Name: REFGUID,
+ pDataSize: *mut UINT,
+ pData: *mut c_void,
+ ) -> HRESULT,
+ fn GetParent(
+ riid: REFIID,
+ ppParent: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6)]
+interface IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDevice(
+ riid: REFIID,
+ ppDevice: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b)]
+interface IDXGIResource(IDXGIResourceVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn GetSharedHandle(
+ pSharedHandle: *mut HANDLE,
+ ) -> HRESULT,
+ fn GetUsage(
+ pUsage: *mut DXGI_USAGE,
+ ) -> HRESULT,
+ fn SetEvictionPriority(
+ EvictionPriority: UINT,
+ ) -> HRESULT,
+ fn GetEvictionPriority(
+ pEvictionPriority: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d)]
+interface IDXGIKeyedMutex(IDXGIKeyedMutexVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn AcquireSync(
+ Key: UINT64,
+ dwMilliseconds: DWORD,
+ ) -> HRESULT,
+ fn ReleaseSync(
+ Key: UINT64,
+ ) -> HRESULT,
+}}
+pub const DXGI_MAP_READ: UINT = 1;
+pub const DXGI_MAP_WRITE: UINT = 2;
+pub const DXGI_MAP_DISCARD: UINT = 4;
+RIDL!{#[uuid(0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec)]
+interface IDXGISurface(IDXGISurfaceVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_SURFACE_DESC,
+ ) -> HRESULT,
+ fn Map(
+ pLockedRect: *mut DXGI_MAPPED_RECT,
+ MapFlags: UINT,
+ ) -> HRESULT,
+ fn Unmap() -> HRESULT,
+}}
+RIDL!{#[uuid(0x4ae63092, 0x6327, 0x4c1b, 0x80, 0xae, 0xbf, 0xe1, 0x2e, 0xa3, 0x2b, 0x86)]
+interface IDXGISurface1(IDXGISurface1Vtbl): IDXGISurface(IDXGISurfaceVtbl) {
+ fn GetDC(
+ Discard: BOOL,
+ phdc: *mut HDC,
+ ) -> HRESULT,
+ fn ReleaseDC(
+ pDirtyRect: *mut RECT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0)]
+interface IDXGIAdapter(IDXGIAdapterVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn EnumOutputs(
+ Output: UINT,
+ ppOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut DXGI_ADAPTER_DESC,
+ ) -> HRESULT,
+ fn CheckInterfaceSupport(
+ InterfaceName: REFGUID,
+ pUMDVersion: *mut LARGE_INTEGER,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa)]
+interface IDXGIOutput(IDXGIOutputVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_OUTPUT_DESC,
+ ) -> HRESULT,
+ fn GetDisplayModeList(
+ EnumFormat: DXGI_FORMAT,
+ Flags: UINT,
+ pNumModes: *mut UINT,
+ pDesc: *mut DXGI_MODE_DESC,
+ ) -> HRESULT,
+ fn FindClosestMatchingMode(
+ pModeToMatch: *const DXGI_MODE_DESC,
+ pClosestMatch: *mut DXGI_MODE_DESC,
+ pConcernedDevice: *mut IUnknown,
+ ) -> HRESULT,
+ fn WaitForVBlank() -> HRESULT,
+ fn TakeOwnership(
+ pDevice: *mut IUnknown,
+ Exclusive: BOOL,
+ ) -> HRESULT,
+ fn ReleaseOwnership() -> (),
+ fn GetGammaControlCapabilities(
+ pGammaCaps: *mut DXGI_GAMMA_CONTROL_CAPABILITIES,
+ ) -> HRESULT,
+ fn SetGammaControl(
+ pArray: *const DXGI_GAMMA_CONTROL,
+ ) -> HRESULT,
+ fn GetGammaControl(
+ pArray: *mut DXGI_GAMMA_CONTROL,
+ ) -> HRESULT,
+ fn SetDisplaySurface(
+ pScanoutSurface: *mut IDXGISurface,
+ ) -> HRESULT,
+ fn GetDisplaySurfaceData(
+ pDestination: *mut IDXGISurface,
+ ) -> HRESULT,
+ fn GetFrameStatistics(
+ pStats: *mut DXGI_FRAME_STATISTICS,
+ ) -> HRESULT,
+}}
+pub const DXGI_MAX_SWAP_CHAIN_BUFFERS: DWORD = 16;
+pub const DXGI_PRESENT_TEST: DWORD = 0x00000001;
+pub const DXGI_PRESENT_DO_NOT_SEQUENCE: DWORD = 0x00000002;
+pub const DXGI_PRESENT_RESTART: DWORD = 0x00000004;
+pub const DXGI_PRESENT_DO_NOT_WAIT: DWORD = 0x00000008;
+pub const DXGI_PRESENT_STEREO_PREFER_RIGHT: DWORD = 0x00000010;
+pub const DXGI_PRESENT_STEREO_TEMPORARY_MONO: DWORD = 0x00000020;
+pub const DXGI_PRESENT_RESTRICT_TO_OUTPUT: DWORD = 0x00000040;
+pub const DXGI_PRESENT_USE_DURATION: DWORD = 0x00000100;
+pub const DXGI_PRESENT_ALLOW_TEARING: DWORD = 0x00000200;
+pub const DXGI_ENUM_MODES_INTERLACED: UINT = 1;
+pub const DXGI_ENUM_MODES_SCALING: UINT = 2;
+RIDL!{#[uuid(0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a)]
+interface IDXGISwapChain(IDXGISwapChainVtbl): IDXGIDeviceSubObject(IDXGIDeviceSubObjectVtbl) {
+ fn Present(
+ SyncInterval: UINT,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn GetBuffer(
+ Buffer: UINT,
+ riid: REFIID,
+ ppSurface: *mut *mut c_void,
+ ) -> HRESULT,
+ fn SetFullscreenState(
+ Fullscreen: BOOL,
+ pTarget: *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetFullscreenState(
+ pFullscreen: *mut BOOL,
+ ppTarget: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetDesc(
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC,
+ ) -> HRESULT,
+ fn ResizeBuffers(
+ BufferCount: UINT,
+ Width: UINT,
+ Height: UINT,
+ NewFormat: DXGI_FORMAT,
+ SwapChainFlags: UINT,
+ ) -> HRESULT,
+ fn ResizeTarget(
+ pNewTargetParameters: *const DXGI_MODE_DESC,
+ ) -> HRESULT,
+ fn GetContainingOutput(
+ ppOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn GetFrameStatistics(
+ pStats: *mut DXGI_FRAME_STATISTICS,
+ ) -> HRESULT,
+ fn GetLastPresentCount(
+ pLastPresentCount: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69)]
+interface IDXGIFactory(IDXGIFactoryVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn EnumAdapters(
+ Adapter: UINT,
+ ppAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+ fn MakeWindowAssociation(
+ WindowHandle: HWND,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn GetWindowAssociation(
+ pWindowHandle: *mut HWND,
+ ) -> HRESULT,
+ fn CreateSwapChain(
+ pDevice: *mut IUnknown,
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC,
+ ppSwapChain: *mut *mut IDXGISwapChain,
+ ) -> HRESULT,
+ fn CreateSoftwareAdapter(
+ Module: HMODULE,
+ ppAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+}}
+extern "system" {
+ pub fn CreateDXGIFactory(
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+ pub fn CreateDXGIFactory1(
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c)]
+interface IDXGIDevice(IDXGIDeviceVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetAdapter(
+ pAdapter: *mut *mut IDXGIAdapter,
+ ) -> HRESULT,
+ fn CreateSurface(
+ pDesc: *const DXGI_SURFACE_DESC,
+ NumSurfaces: UINT,
+ Usage: DXGI_USAGE,
+ pSharedResource: *const DXGI_SHARED_RESOURCE,
+ ppSurface: *mut *mut IDXGISurface,
+ ) -> HRESULT,
+ fn QueryResourceResidency(
+ ppResources: *const *mut IUnknown,
+ pResidencyStatus: *mut DXGI_RESIDENCY,
+ NumResources: UINT,
+ ) -> HRESULT,
+ fn SetGPUThreadPriority(
+ Priority: INT,
+ ) -> HRESULT,
+ fn GetGPUThreadPriority(
+ pPriority: *mut INT,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_ADAPTER_FLAG {
+ DXGI_ADAPTER_FLAG_NONE,
+ DXGI_ADAPTER_FLAG_REMOTE,
+ DXGI_ADAPTER_FLAG_SOFTWARE,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC1 {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_DISPLAY_COLOR_SPACE {
+ PrimaryCoordinates: [[FLOAT; 2]; 8],
+ WhitePoints: [[FLOAT; 2]; 16],
+}}
+RIDL!{#[uuid(0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87)]
+interface IDXGIFactory1(IDXGIFactory1Vtbl): IDXGIFactory(IDXGIFactoryVtbl) {
+ fn EnumAdapters1(
+ Adapter: UINT,
+ ppAdapter: *mut *mut IDXGIAdapter1,
+ ) -> HRESULT,
+ fn IsCurrent() -> BOOL,
+}}
+RIDL!{#[uuid(0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05)]
+interface IDXGIAdapter1(IDXGIAdapter1Vtbl): IDXGIAdapter(IDXGIAdapterVtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_ADAPTER_DESC1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c)]
+interface IDXGIDevice1(IDXGIDevice1Vtbl): IDXGIDevice(IDXGIDeviceVtbl) {
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIObject,
+ 0xaec22fb8, 0x76f3, 0x4639, 0x9b, 0xe0, 0x28, 0xeb, 0x43, 0xa6, 0x7a, 0x2e}
+DEFINE_GUID!{IID_IDXGIDeviceSubObject,
+ 0x3d3e0379, 0xf9de, 0x4d58, 0xbb, 0x6c, 0x18, 0xd6, 0x29, 0x92, 0xf1, 0xa6}
+DEFINE_GUID!{IID_IDXGIResource,
+ 0x035f3ab4, 0x482e, 0x4e50, 0xb4, 0x1f, 0x8a, 0x7f, 0x8b, 0xd8, 0x96, 0x0b}
+DEFINE_GUID!{IID_IDXGIKeyedMutex,
+ 0x9d8e1289, 0xd7b3, 0x465f, 0x81, 0x26, 0x25, 0x0e, 0x34, 0x9a, 0xf8, 0x5d}
+DEFINE_GUID!{IID_IDXGISurface,
+ 0xcafcb56c, 0x6ac3, 0x4889, 0xbf, 0x47, 0x9e, 0x23, 0xbb, 0xd2, 0x60, 0xec}
+DEFINE_GUID!{IID_IDXGISurface1,
+ 0x4ae63092, 0x6327, 0x4c1b, 0x80, 0xae, 0xbf, 0xe1, 0x2e, 0xa3, 0x2b, 0x86}
+DEFINE_GUID!{IID_IDXGIAdapter,
+ 0x2411e7e1, 0x12ac, 0x4ccf, 0xbd, 0x14, 0x97, 0x98, 0xe8, 0x53, 0x4d, 0xc0}
+DEFINE_GUID!{IID_IDXGIOutput,
+ 0xae02eedb, 0xc735, 0x4690, 0x8d, 0x52, 0x5a, 0x8d, 0xc2, 0x02, 0x13, 0xaa}
+DEFINE_GUID!{IID_IDXGISwapChain,
+ 0x310d36a0, 0xd2e7, 0x4c0a, 0xaa, 0x04, 0x6a, 0x9d, 0x23, 0xb8, 0x88, 0x6a}
+DEFINE_GUID!{IID_IDXGIFactory,
+ 0x7b7166ec, 0x21c7, 0x44ae, 0xb2, 0x1a, 0xc9, 0xae, 0x32, 0x1a, 0xe3, 0x69}
+DEFINE_GUID!{IID_IDXGIDevice,
+ 0x54ec77fa, 0x1377, 0x44e6, 0x8c, 0x32, 0x88, 0xfd, 0x5f, 0x44, 0xc8, 0x4c}
+DEFINE_GUID!{IID_IDXGIFactory1,
+ 0x770aae78, 0xf26f, 0x4dba, 0xa8, 0x29, 0x25, 0x3c, 0x83, 0xd1, 0xb3, 0x87}
+DEFINE_GUID!{IID_IDXGIAdapter1,
+ 0x29038f61, 0x3839, 0x4626, 0x91, 0xfd, 0x08, 0x68, 0x79, 0x01, 0x1a, 0x05}
+DEFINE_GUID!{IID_IDXGIDevice1,
+ 0x77db970f, 0x6276, 0x48ba, 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c}
diff --git a/third_party/rust/winapi/src/shared/dxgi1_2.rs b/third_party/rust/winapi/src/shared/dxgi1_2.rs
new file mode 100644
index 0000000000..941f15e989
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi1_2.rs
@@ -0,0 +1,355 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_2.h
+use ctypes::c_void;
+use shared::basetsd::SIZE_T;
+use shared::dxgi::{
+ DXGI_MAPPED_RECT, DXGI_SWAP_EFFECT, IDXGIAdapter1, IDXGIAdapter1Vtbl, IDXGIDevice1,
+ IDXGIDevice1Vtbl, IDXGIFactory1, IDXGIFactory1Vtbl, IDXGIObject, IDXGIObjectVtbl, IDXGIOutput,
+ IDXGIOutputVtbl, IDXGIResource, IDXGIResourceVtbl, IDXGISurface1, IDXGISurface1Vtbl,
+ IDXGISwapChain, IDXGISwapChainVtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::{
+ DXGI_MODE_DESC, DXGI_MODE_ROTATION, DXGI_MODE_SCALING, DXGI_MODE_SCANLINE_ORDER, DXGI_RATIONAL,
+ DXGI_RGBA, DXGI_SAMPLE_DESC, DXGI_USAGE,
+};
+use shared::guiddef::REFGUID;
+use shared::minwindef::{BOOL, DWORD, UINT};
+use shared::windef::{HWND, POINT, RECT};
+use um::minwinbase::SECURITY_ATTRIBUTES;
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER, LPCWSTR, LUID, WCHAR};
+ENUM!{enum DXGI_ALPHA_MODE {
+ DXGI_ALPHA_MODE_UNSPECIFIED = 0,
+ DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
+ DXGI_ALPHA_MODE_STRAIGHT = 2,
+ DXGI_ALPHA_MODE_IGNORE = 3,
+ DXGI_ALPHA_MODE_FORCE_DWORD = 0xFFFFFFFF,
+}}
+ENUM!{enum DXGI_COMPUTE_PREEMPTION_GRANULARITY {
+ DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY = 1,
+ DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY = 2,
+ DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY = 3,
+ DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+}}
+ENUM!{enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
+ DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY = 0,
+ DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY = 1,
+ DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY = 2,
+ DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY = 3,
+ DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY = 4,
+}}
+ENUM!{enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 1,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 2,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 4,
+}}
+ENUM!{enum DXGI_SCALING {
+ DXGI_SCALING_STRETCH = 0,
+ DXGI_SCALING_NONE = 1,
+ DXGI_SCALING_ASPECT_RATIO_STRETCH = 2,
+}}
+ENUM!{enum _DXGI_OFFER_RESOURCE_PRIORITY {
+ DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
+ DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
+ DXGI_OFFER_RESOURCE_PRIORITY_HIGH = 3,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC2 {
+ Description: [WCHAR; 128],
+ VendorId: UINT,
+ DeviceId: UINT,
+ SubSysId: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: UINT,
+ GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+ ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
+}}
+STRUCT!{struct DXGI_MODE_DESC1 {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: DXGI_RATIONAL,
+ Format: DXGI_FORMAT,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+ Stereo: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_DESC {
+ ModeDesc: DXGI_MODE_DESC,
+ Rotation: DXGI_MODE_ROTATION,
+ DesktopImageInSystemMemory: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_FRAME_INFO {
+ LastPresentTime: LARGE_INTEGER,
+ LastMouseUpdateTime: LARGE_INTEGER,
+ AccumulatedFrames: UINT,
+ RectsCoalesced: BOOL,
+ ProtectedContentMaskedOut: BOOL,
+ PointerPosition: DXGI_OUTDUPL_POINTER_POSITION,
+ TotalMetadataBufferSize: UINT,
+ PointerShapeBufferSize: UINT,
+}}
+STRUCT!{struct DXGI_OUTDUPL_MOVE_RECT {
+ SourcePoint: POINT,
+ DestinationRect: RECT,
+}}
+STRUCT!{struct DXGI_OUTDUPL_POINTER_POSITION {
+ Position: POINT,
+ Visible: BOOL,
+}}
+STRUCT!{struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
+ Type: UINT,
+ Width: UINT,
+ Height: UINT,
+ Pitch: UINT,
+ HotSpot: POINT,
+}}
+STRUCT!{struct DXGI_PRESENT_PARAMETERS {
+ DirtyRectsCount: UINT,
+ pDirtyRects: *mut RECT,
+ pScrollRect: *mut RECT,
+ pScrollOffset: *mut POINT,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_DESC1 {
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ Stereo: BOOL,
+ SampleDesc: DXGI_SAMPLE_DESC,
+ BufferUsage: DXGI_USAGE,
+ BufferCount: UINT,
+ Scaling: DXGI_SCALING,
+ SwapEffect: DXGI_SWAP_EFFECT,
+ AlphaMode: DXGI_ALPHA_MODE,
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
+ RefreshRate: DXGI_RATIONAL,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+ Windowed: BOOL,
+}}
+RIDL!{#[uuid(0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86, 0x44, 0xe0, 0x5f, 0xf8, 0xe5, 0xac, 0xb5)]
+interface IDXGIAdapter2(IDXGIAdapter2Vtbl): IDXGIAdapter1(IDXGIAdapter1Vtbl) {
+ fn GetDesc2(
+ pDesc: *mut DXGI_ADAPTER_DESC2,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x05008617, 0xfbfd, 0x4051, 0xa7, 0x90, 0x14, 0x48, 0x84, 0xb4, 0xf6, 0xa9)]
+interface IDXGIDevice2(IDXGIDevice2Vtbl): IDXGIDevice1(IDXGIDevice1Vtbl) {
+ fn OfferResources(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ Priority: DXGI_OFFER_RESOURCE_PRIORITY,
+ ) -> HRESULT,
+ fn ReclaimResources(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ pDiscarded: *mut BOOL,
+ ) -> HRESULT,
+ fn EnqueueSetEvent(
+ hEvent: HANDLE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xea9dbf1a, 0xc88e, 0x4486, 0x85, 0x4a, 0x98, 0xaa, 0x01, 0x38, 0xf3, 0x0c)]
+interface IDXGIDisplayControl(IDXGIDisplayControlVtbl): IUnknown(IUnknownVtbl) {
+ fn IsStereoEnabled() -> BOOL,
+ fn SetStereoEnabled(
+ enabled: BOOL,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x50c83a1c, 0xe072, 0x4c48, 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0)]
+interface IDXGIFactory2(IDXGIFactory2Vtbl): IDXGIFactory1(IDXGIFactory1Vtbl) {
+ fn IsWindowedStereoEnabled() -> BOOL,
+ fn CreateSwapChainForHwnd(
+ pDevice: *mut IUnknown,
+ hWnd: HWND,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pFullscreenDesc: *const DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn CreateSwapChainForCoreWindow(
+ pDevice: *mut IUnknown,
+ pWindow: *mut IUnknown,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn GetSharedResourceAdapterLuid(
+ hResource: HANDLE,
+ pLuid: *mut LUID,
+ ) -> HRESULT,
+ fn RegisterStereoStatusWindow(
+ WindowHandle: HWND,
+ wMsg: UINT,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn RegisterStereoStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterStereoStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn RegisterOcclusionStatusWindow(
+ WindowHandle: HWND,
+ wMsg: UINT,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn RegisterOcclusionStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterOcclusionStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn CreateSwapChainForComposition(
+ pDevice: *mut IUnknown,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x00cddea8, 0x939b, 0x4b83, 0xa3, 0x40, 0xa6, 0x85, 0x22, 0x66, 0x66, 0xcc)]
+interface IDXGIOutput1(IDXGIOutput1Vtbl): IDXGIOutput(IDXGIOutputVtbl) {
+ fn GetDisplayModeList1(
+ EnumFormat: DXGI_FORMAT,
+ Flags: UINT,
+ pNumModes: *mut UINT,
+ pDesc: *mut DXGI_MODE_DESC1,
+ ) -> HRESULT,
+ fn FindClosestMatchingMode1(
+ pModeToMatch: *const DXGI_MODE_DESC1,
+ pClosestMatch: *mut DXGI_MODE_DESC1,
+ pConcernedDevice: *mut IUnknown,
+ ) -> HRESULT,
+ fn GetDisplaySurfaceData1(
+ pDestination: *mut IDXGIResource,
+ ) -> HRESULT,
+ fn DuplicateOutput(
+ pDevice: *mut IUnknown,
+ ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x191cfac3, 0xa341, 0x470d, 0xb2, 0x6e, 0xa8, 0x64, 0xf4, 0x28, 0x31, 0x9c)]
+interface IDXGIOutputDuplication(IDXGIOutputDuplicationVtbl): IDXGIObject(IDXGIObjectVtbl) {
+ fn GetDesc(
+ pDesc: *mut DXGI_OUTDUPL_DESC,
+ ) -> (),
+ fn AcquireNextFrame(
+ TimeoutInMilliseconds: UINT,
+ pFrameInfo: *mut DXGI_OUTDUPL_FRAME_INFO,
+ ppDesktopResource: *mut *mut IDXGIResource,
+ ) -> HRESULT,
+ fn GetFrameDirtyRects(
+ DirtyRectsBufferSize: UINT,
+ pDirtyRectsBuffer: *mut RECT,
+ pDirtyRectsBufferSizeRequired: *mut UINT,
+ ) -> HRESULT,
+ fn GetFrameMoveRects(
+ MoveRectsBufferSize: UINT,
+ pMoveRectBuffer: *mut DXGI_OUTDUPL_MOVE_RECT,
+ pMoveRectsBufferSizeRequired: *mut UINT,
+ ) -> HRESULT,
+ fn GetFramePointerShape(
+ PointerShapeBufferSize: UINT,
+ pPointerShapeBuffer: *mut c_void,
+ pPointerShapeBufferSizeRequired: *mut UINT,
+ pPointerShapeInfo: *mut DXGI_OUTDUPL_POINTER_SHAPE_INFO,
+ ) -> HRESULT,
+ fn MapDesktopSurface(
+ pLockedRect: *mut DXGI_MAPPED_RECT,
+ ) -> HRESULT,
+ fn UnMapDesktopSurface() -> HRESULT,
+ fn ReleaseFrame() -> HRESULT,
+}}
+RIDL!{#[uuid(0x30961379, 0x4609, 0x4a41, 0x99, 0x8e, 0x54, 0xfe, 0x56, 0x7e, 0xe0, 0xc1)]
+interface IDXGIResource1(IDXGIResource1Vtbl): IDXGIResource(IDXGIResourceVtbl) {
+ fn CreateSubresourceSurface(
+ index: UINT,
+ ppSurface: *mut *mut IDXGISurface2,
+ ) -> HRESULT,
+ fn CreateSharedHandle(
+ pAttributes: *const SECURITY_ATTRIBUTES,
+ dwAccess: DWORD,
+ lpName: LPCWSTR,
+ pHandle: *mut HANDLE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xaba496dd, 0xb617, 0x4cb8, 0xa8, 0x66, 0xbc, 0x44, 0xd7, 0xeb, 0x1f, 0xa2)]
+interface IDXGISurface2(IDXGISurface2Vtbl): IDXGISurface1(IDXGISurface1Vtbl) {
+ fn GetResource(
+ riid: REFGUID,
+ ppParentResource: *mut *mut c_void,
+ pSubresourceIndex: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x790a45f7, 0x0d42, 0x4876, 0x98, 0x3a, 0x0a, 0x55, 0xcf, 0xe6, 0xf4, 0xaa)]
+interface IDXGISwapChain1(IDXGISwapChain1Vtbl): IDXGISwapChain(IDXGISwapChainVtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_SWAP_CHAIN_DESC1,
+ ) -> HRESULT,
+ fn GetFullscreenDesc(
+ pDesc: *mut DXGI_SWAP_CHAIN_FULLSCREEN_DESC,
+ ) -> HRESULT,
+ fn GetHwnd(
+ pHwnd: *mut HWND,
+ ) -> HRESULT,
+ fn GetCoreWindow(
+ refiid: REFGUID,
+ ppUnk: *mut *mut c_void,
+ ) -> HRESULT,
+ fn Present1(
+ SyncInterval: UINT,
+ PresentFlags: UINT,
+ pPresentParameters: *const DXGI_PRESENT_PARAMETERS,
+ ) -> HRESULT,
+ fn IsTemporaryMonoSupported() -> BOOL,
+ fn GetRestrictToOutput(
+ ppRestrictToOutput: *mut *mut IDXGIOutput,
+ ) -> HRESULT,
+ fn SetBackgroundColor(
+ pColor: *const DXGI_RGBA,
+ ) -> HRESULT,
+ fn GetBackgroundColor(
+ pColor: *mut DXGI_RGBA,
+ ) -> HRESULT,
+ fn SetRotation(
+ Rotation: DXGI_MODE_ROTATION,
+ ) -> HRESULT,
+ fn GetRotation(
+ pRotation: *mut DXGI_MODE_ROTATION,
+ ) -> HRESULT,
+}}
+pub type DXGI_OFFER_RESOURCE_PRIORITY = _DXGI_OFFER_RESOURCE_PRIORITY;
+pub const DXGI_ENUM_MODES_DISABLED_STEREO: UINT = 8;
+pub const DXGI_ENUM_MODES_STEREO: UINT = 4;
+pub const DXGI_SHARED_RESOURCE_READ: UINT = 0x80000000;
+pub const DXGI_SHARED_RESOURCE_WRITE: UINT = 1;
+DEFINE_GUID!{IID_IDXGIDisplayControl,
+ 0xea9dbf1a, 0xc88e, 0x4486, 0x85, 0x4a, 0x98, 0xaa, 0x01, 0x38, 0xf3, 0x0c}
+DEFINE_GUID!{IID_IDXGIOutputDuplication,
+ 0x191cfac3, 0xa341, 0x470d, 0xb2, 0x6e, 0xa8, 0x64, 0xf4, 0x28, 0x31, 0x9c}
+DEFINE_GUID!{IID_IDXGISurface2,
+ 0xaba496dd, 0xb617, 0x4cb8, 0xa8, 0x66, 0xbc, 0x44, 0xd7, 0xeb, 0x1f, 0xa2}
+DEFINE_GUID!{IID_IDXGIResource1,
+ 0x30961379, 0x4609, 0x4a41, 0x99, 0x8e, 0x54, 0xfe, 0x56, 0x7e, 0xe0, 0xc1}
+DEFINE_GUID!{IID_IDXGIDevice2,
+ 0x05008617, 0xfbfd, 0x4051, 0xa7, 0x90, 0x14, 0x48, 0x84, 0xb4, 0xf6, 0xa9}
+DEFINE_GUID!{IID_IDXGISwapChain1,
+ 0x790a45f7, 0x0d42, 0x4876, 0x98, 0x3a, 0x0a, 0x55, 0xcf, 0xe6, 0xf4, 0xaa}
+DEFINE_GUID!{IID_IDXGIFactory2,
+ 0x50c83a1c, 0xe072, 0x4c48, 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0}
+DEFINE_GUID!{IID_IDXGIAdapter2,
+ 0x0aa1ae0a, 0xfa0e, 0x4b84, 0x86, 0x44, 0xe0, 0x5f, 0xf8, 0xe5, 0xac, 0xb5}
+DEFINE_GUID!{IID_IDXGIOutput1,
+ 0x00cddea8, 0x939b, 0x4b83, 0xa3, 0x40, 0xa6, 0x85, 0x22, 0x66, 0x66, 0xcc}
diff --git a/third_party/rust/winapi/src/shared/dxgi1_3.rs b/third_party/rust/winapi/src/shared/dxgi1_3.rs
new file mode 100644
index 0000000000..caf346a617
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi1_3.rs
@@ -0,0 +1,190 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_3.h
+use ctypes::c_void;
+use shared::dxgi::{IDXGIOutput, IDXGIResource};
+use shared::dxgi1_2::{
+ DXGI_SWAP_CHAIN_DESC1, IDXGIDevice2, IDXGIDevice2Vtbl, IDXGIFactory2, IDXGIFactory2Vtbl,
+ IDXGIOutput1, IDXGIOutput1Vtbl, IDXGISwapChain1, IDXGISwapChain1Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::guiddef::REFIID;
+use shared::minwindef::{BOOL, FLOAT, UINT};
+use shared::windef::RECT;
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HANDLE, HRESULT, LARGE_INTEGER};
+ENUM!{enum DXGI_FRAME_PRESENTATION_MODE {
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
+ DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
+ DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
+ DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3,
+}}
+ENUM!{enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS {
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
+ DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
+}}
+ENUM!{enum DXGI_OVERLAY_SUPPORT_FLAG {
+ DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
+ DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2,
+}}
+STRUCT!{struct DXGI_DECODE_SWAP_CHAIN_DESC {
+ Flags: UINT,
+}}
+STRUCT!{struct DXGI_FRAME_STATISTICS_MEDIA {
+ PresentCount: UINT,
+ PresentRefreshCount: UINT,
+ SyncRefreshCount: UINT,
+ SyncQPCTime: LARGE_INTEGER,
+ SyncGPUTime: LARGE_INTEGER,
+ CompositionMode: DXGI_FRAME_PRESENTATION_MODE,
+ ApprovedPresentDuration: UINT,
+}}
+STRUCT!{struct DXGI_MATRIX_3X2_F {
+ _11: FLOAT,
+ _12: FLOAT,
+ _21: FLOAT,
+ _22: FLOAT,
+ _31: FLOAT,
+ _32: FLOAT,
+}}
+RIDL!{#[uuid(0x2633066b, 0x4514, 0x4c7a, 0x8f, 0xd8, 0x12, 0xea, 0x98, 0x05, 0x9d, 0x18)]
+interface IDXGIDecodeSwapChain(IDXGIDecodeSwapChainVtbl): IUnknown(IUnknownVtbl) {
+ fn PresentBuffer(
+ BufferToPresent: UINT,
+ SyncInterval: UINT,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn SetSourceRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn SetTargetRect(
+ pRect: *const RECT,
+ ) -> HRESULT,
+ fn SetDestSize(
+ Width: UINT,
+ Height: UINT,
+ ) -> HRESULT,
+ fn GetSourceRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn GetTargetRect(
+ pRect: *mut RECT,
+ ) -> HRESULT,
+ fn GetDestSize(
+ pWidth: *mut UINT,
+ pHeight: *mut UINT,
+ ) -> HRESULT,
+ fn SetColorSpace(
+ ColorSpace: DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
+ ) -> HRESULT,
+ fn GetColorSpace() -> DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS,
+}}
+extern "system" {
+ pub fn CreateDXGIFactory2(
+ Flags: UINT,
+ riid: REFIID,
+ ppFactory: *mut *mut c_void,
+ ) -> HRESULT;
+ pub fn DXGIGetDebugInterface1(
+ Flags: UINT,
+ riid: REFIID,
+ pDebug: *mut *mut c_void,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0x6007896c, 0x3244, 0x4afd, 0xbf, 0x18, 0xa6, 0xd3, 0xbe, 0xda, 0x50, 0x23)]
+interface IDXGIDevice3(IDXGIDevice3Vtbl): IDXGIDevice2(IDXGIDevice2Vtbl) {
+ fn Trim() -> (),
+}}
+RIDL!{#[uuid(0x25483823, 0xcd46, 0x4c7d, 0x86, 0xca, 0x47, 0xaa, 0x95, 0xb8, 0x37, 0xbd)]
+interface IDXGIFactory3(IDXGIFactory3Vtbl): IDXGIFactory2(IDXGIFactory2Vtbl) {
+ fn GetCreationFlags() -> UINT,
+}}
+RIDL!{#[uuid(0x41e7d1f2, 0xa591, 0x4f7b, 0xa2, 0xe5, 0xfa, 0x9c, 0x84, 0x3e, 0x1c, 0x12)]
+interface IDXGIFactoryMedia(IDXGIFactoryMediaVtbl): IUnknown(IUnknownVtbl) {
+ fn CreateSwapChainForCompositionSurfaceHandle(
+ pDevice: *mut IUnknown,
+ hSurface: HANDLE,
+ pDesc: *const DXGI_SWAP_CHAIN_DESC1,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGISwapChain1,
+ ) -> HRESULT,
+ fn CreateDecodeSwapChainForCompositionSurfaceHandle(
+ pDevice: *mut IUnknown,
+ hSurface: HANDLE,
+ pDesc: *mut DXGI_DECODE_SWAP_CHAIN_DESC,
+ pYuvDecodeBuffers: *mut IDXGIResource,
+ pRestrictToOutput: *mut IDXGIOutput,
+ ppSwapChain: *mut *mut IDXGIDecodeSwapChain,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x595e39d1, 0x2724, 0x4663, 0x99, 0xb1, 0xda, 0x96, 0x9d, 0xe2, 0x83, 0x64)]
+interface IDXGIOutput2(IDXGIOutput2Vtbl): IDXGIOutput1(IDXGIOutput1Vtbl) {
+ fn SupportsOverlays() -> BOOL,
+}}
+RIDL!{#[uuid(0x8a6bb301, 0x7e7e, 0x41f4, 0xa8, 0xe0, 0x5b, 0x32, 0xf7, 0xf9, 0x9b, 0x18)]
+interface IDXGIOutput3(IDXGIOutput3Vtbl): IDXGIOutput2(IDXGIOutput2Vtbl) {
+ fn CheckOverlaySupport(
+ EnumFormat: DXGI_FORMAT,
+ pConcernedDevice: *mut IUnknown,
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xa8be2ac4, 0x199f, 0x4946, 0xb3, 0x31, 0x79, 0x59, 0x9f, 0xb9, 0x8d, 0xe7)]
+interface IDXGISwapChain2(IDXGISwapChain2Vtbl): IDXGISwapChain1(IDXGISwapChain1Vtbl) {
+ fn SetSourceSize(
+ Width: UINT,
+ Height: UINT,
+ ) -> HRESULT,
+ fn GetSourceSize(
+ pWidth: *mut UINT,
+ pHeight: *mut UINT,
+ ) -> HRESULT,
+ fn SetMaximumFrameLatency(
+ MaxLatency: UINT,
+ ) -> HRESULT,
+ fn GetMaximumFrameLatency(
+ pMaxLatency: *mut UINT,
+ ) -> HRESULT,
+ fn GetFrameLatencyWaitableObject() -> HANDLE,
+ fn SetMatrixTransform(
+ pMatrix: *const DXGI_MATRIX_3X2_F,
+ ) -> HRESULT,
+ fn GetMatrixTransform(
+ pMatrix: *mut DXGI_MATRIX_3X2_F,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xdd95b90b, 0xf05f, 0x4f6a, 0xbd, 0x65, 0x25, 0xbf, 0xb2, 0x64, 0xbd, 0x84)]
+interface IDXGISwapChainMedia(IDXGISwapChainMediaVtbl): IUnknown(IUnknownVtbl) {
+ fn GetFrameStatisticsMedia(
+ pStats: *mut DXGI_FRAME_STATISTICS_MEDIA,
+ ) -> HRESULT,
+ fn SetPresentDuration(
+ Duration: UINT,
+ ) -> HRESULT,
+ fn CheckPresentDurationSupport(
+ DesiredPresentDuration: UINT,
+ pClosestSmallerPresentDuration: *mut UINT,
+ pClosestLargerPresentDuration: *mut UINT,
+ ) -> HRESULT,
+}}
+pub const DXGI_CREATE_FACTORY_DEBUG: UINT = 0x1;
+DEFINE_GUID!{IID_IDXGIDevice3,
+ 0x6007896c, 0x3244, 0x4afd, 0xbf, 0x18, 0xa6, 0xd3, 0xbe, 0xda, 0x50, 0x23}
+DEFINE_GUID!{IID_IDXGISwapChain2,
+ 0xa8be2ac4, 0x199f, 0x4946, 0xb3, 0x31, 0x79, 0x59, 0x9f, 0xb9, 0x8d, 0xe7}
+DEFINE_GUID!{IID_IDXGIOutput2,
+ 0x595e39d1, 0x2724, 0x4663, 0x99, 0xb1, 0xda, 0x96, 0x9d, 0xe2, 0x83, 0x64}
+DEFINE_GUID!{IID_IDXGIFactory3,
+ 0x25483823, 0xcd46, 0x4c7d, 0x86, 0xca, 0x47, 0xaa, 0x95, 0xb8, 0x37, 0xbd}
+DEFINE_GUID!{IID_IDXGIDecodeSwapChain,
+ 0x2633066b, 0x4514, 0x4c7a, 0x8f, 0xd8, 0x12, 0xea, 0x98, 0x05, 0x9d, 0x18}
+DEFINE_GUID!{IID_IDXGIFactoryMedia,
+ 0x41e7d1f2, 0xa591, 0x4f7b, 0xa2, 0xe5, 0xfa, 0x9c, 0x84, 0x3e, 0x1c, 0x12}
+DEFINE_GUID!{IID_IDXGISwapChainMedia,
+ 0xdd95b90b, 0xf05f, 0x4f6a, 0xbd, 0x65, 0x25, 0xbf, 0xb2, 0x64, 0xbd, 0x84}
+DEFINE_GUID!{IID_IDXGIOutput3,
+ 0x8a6bb301, 0x7e7e, 0x41f4, 0xa8, 0xe0, 0x5b, 0x32, 0xf7, 0xf9, 0x9b, 0x18}
diff --git a/third_party/rust/winapi/src/shared/dxgi1_4.rs b/third_party/rust/winapi/src/shared/dxgi1_4.rs
new file mode 100644
index 0000000000..53269e88dd
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi1_4.rs
@@ -0,0 +1,112 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_4.h
+use ctypes::c_void;
+use shared::basetsd::UINT64;
+use shared::dxgi1_2::{IDXGIAdapter2, IDXGIAdapter2Vtbl};
+use shared::dxgi1_3::{
+ IDXGIFactory3, IDXGIFactory3Vtbl, IDXGIOutput3, IDXGIOutput3Vtbl, IDXGISwapChain2,
+ IDXGISwapChain2Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::dxgitype::DXGI_COLOR_SPACE_TYPE;
+use shared::guiddef::REFGUID;
+use shared::minwindef::{DWORD, UINT};
+use um::unknwnbase::IUnknown;
+use um::winnt::{HANDLE, HRESULT, LUID};
+ENUM!{enum DXGI_MEMORY_SEGMENT_GROUP {
+ DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0,
+ DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1,
+}}
+ENUM!{enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
+}}
+ENUM!{enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
+ DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2,
+}}
+STRUCT!{struct DXGI_QUERY_VIDEO_MEMORY_INFO {
+ Budget: UINT64,
+ CurrentUsage: UINT64,
+ AvailableForReservation: UINT64,
+ CurrentReservation: UINT64,
+}}
+RIDL!{#[uuid(0x645967a4, 0x1392, 0x4310, 0xa7, 0x98, 0x80, 0x53, 0xce, 0x3e, 0x93, 0xfd)]
+interface IDXGIAdapter3(IDXGIAdapter3Vtbl): IDXGIAdapter2(IDXGIAdapter2Vtbl) {
+ fn RegisterHardwareContentProtectionTeardownStatusEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterHardwareContentProtectionTeardownStatus(
+ dwCookie: DWORD,
+ ) -> (),
+ fn QueryVideoMemoryInfo(
+ NodeIndex: UINT,
+ MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
+ pVideoMemoryInfo: *mut DXGI_QUERY_VIDEO_MEMORY_INFO,
+ ) -> HRESULT,
+ fn SetVideoMemoryReservation(
+ NodeIndex: UINT,
+ MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
+ Reservation: UINT64,
+ ) -> HRESULT,
+ fn RegisterVideoMemoryBudgetChangeNotificationEvent(
+ hEvent: HANDLE,
+ pdwCookie: *mut DWORD,
+ ) -> HRESULT,
+ fn UnregisterVideoMemoryBudgetChangeNotification(
+ dwCookie: DWORD,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x1bc6ea02, 0xef36, 0x464f, 0xbf, 0x0c, 0x21, 0xca, 0x39, 0xe5, 0x16, 0x8a)]
+interface IDXGIFactory4(IDXGIFactory4Vtbl): IDXGIFactory3(IDXGIFactory3Vtbl) {
+ fn EnumAdapterByLuid(
+ AdapterLuid: LUID,
+ riid: REFGUID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+ fn EnumWarpAdapter(
+ riid: REFGUID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xdc7dca35, 0x2196, 0x414d, 0x9f, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2a, 0x60)]
+interface IDXGIOutput4(IDXGIOutput4Vtbl): IDXGIOutput3(IDXGIOutput3Vtbl) {
+ fn CheckOverlayColorSpaceSupport(
+ Format: DXGI_FORMAT,
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ pConcernedDevice: *mut IUnknown,
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2, 0x36, 0x7d, 0xa0, 0x17, 0x0e, 0xda, 0xb1)]
+interface IDXGISwapChain3(IDXGISwapChain3Vtbl): IDXGISwapChain2(IDXGISwapChain2Vtbl) {
+ fn GetCurrentBackBufferIndex() -> UINT,
+ fn CheckColorSpaceSupport(
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ pColorSpaceSupport: *mut UINT,
+ ) -> HRESULT,
+ fn SetColorSpace1(
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ ) -> HRESULT,
+ fn ResizeBuffers1(
+ BufferCount: UINT,
+ Width: UINT,
+ Height: UINT,
+ Format: DXGI_FORMAT,
+ SwapChainFlags: UINT,
+ pCreationNodeMask: *const UINT,
+ ppPresentQueue: *mut *mut IUnknown,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGISwapChain3,
+ 0x94d99bdb, 0xf1f8, 0x4ab0, 0xb2, 0x36, 0x7d, 0xa0, 0x17, 0x0e, 0xda, 0xb1}
+DEFINE_GUID!{IID_IDXGIOutput4,
+ 0xdc7dca35, 0x2196, 0x414d, 0x9f, 0x53, 0x61, 0x78, 0x84, 0x03, 0x2a, 0x60}
+DEFINE_GUID!{IID_IDXGIFactory4,
+ 0x1bc6ea02, 0xef36, 0x464f, 0xbf, 0x0c, 0x21, 0xca, 0x39, 0xe5, 0x16, 0x8a}
+DEFINE_GUID!{IID_IDXGIAdapter3,
+ 0x645967a4, 0x1392, 0x4310, 0xa7, 0x98, 0x80, 0x53, 0xce, 0x3e, 0x93, 0xfd}
diff --git a/third_party/rust/winapi/src/shared/dxgi1_5.rs b/third_party/rust/winapi/src/shared/dxgi1_5.rs
new file mode 100644
index 0000000000..a0500a2478
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi1_5.rs
@@ -0,0 +1,92 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_5.h
+use ctypes::c_void;
+use shared::basetsd::UINT16;
+use shared::dxgi::IDXGIResource;
+use shared::dxgi1_2::{DXGI_OFFER_RESOURCE_PRIORITY, IDXGIOutputDuplication};
+use shared::dxgi1_3::{IDXGIDevice3, IDXGIDevice3Vtbl};
+use shared::dxgi1_4::{
+ IDXGIFactory4, IDXGIFactory4Vtbl, IDXGIOutput4, IDXGIOutput4Vtbl, IDXGISwapChain3,
+ IDXGISwapChain3Vtbl,
+};
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::minwindef::UINT;
+use um::unknwnbase::IUnknown;
+use um::winnt::HRESULT;
+RIDL!{#[uuid(0x80a07424, 0xab52, 0x42eb, 0x83, 0x3c, 0x0c, 0x42, 0xfd, 0x28, 0x2d, 0x98)]
+interface IDXGIOutput5(IDXGIOutput5Vtbl): IDXGIOutput4(IDXGIOutput4Vtbl) {
+ fn DuplicateOutput1(
+ pDevice: *mut IUnknown,
+ Flags: UINT,
+ SupportedFormatsCount: UINT,
+ pSupportedFormats: *const DXGI_FORMAT,
+ ppOutputDuplication: *mut *mut IDXGIOutputDuplication,
+ )-> HRESULT,
+}}
+ENUM!{enum DXGI_HDR_METADATA_TYPE {
+ DXGI_HDR_METADATA_TYPE_NONE = 0,
+ DXGI_HDR_METADATA_TYPE_HDR10 = 1,
+}}
+STRUCT!{struct DXGI_HDR_METADATA_HDR10 {
+ RedPrimary: [UINT16; 2],
+ GreenPrimary: [UINT16; 2],
+ BluePrimary: [UINT16; 2],
+ WhitePoint: [UINT16; 2],
+ MaxMasteringLuminance: UINT,
+ MinMasteringLuminance: UINT,
+ MaxContentLightLevel: UINT16,
+ MaxFrameAverageLightLevel: UINT16,
+}}
+RIDL!{#[uuid(0x3d585d5a, 0xbd4a, 0x489e, 0xb1, 0xf4, 0x3d, 0xbc, 0xb6, 0x45, 0x2f, 0xfb)]
+interface IDXGISwapChain4(IDXGISwapChain4Vtbl): IDXGISwapChain3(IDXGISwapChain3Vtbl) {
+ fn SetHDRMetaData(
+ Type: DXGI_HDR_METADATA_TYPE,
+ Size: UINT,
+ pMetaData: *mut c_void,
+ )-> HRESULT,
+}}
+ENUM!{enum DXGI_OFFER_RESOURCE_FLAGS {
+ DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1,
+}}
+ENUM!{enum DXGI_RECLAIM_RESOURCE_RESULTS {
+ DXGI_RECLAIM_RESOURCE_RESULT_OK = 0,
+ DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 1,
+ DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 2,
+}}
+RIDL!{#[uuid(0x95b4f95f, 0xd8da, 0x4ca4, 0x9e, 0xe6, 0x3b, 0x76, 0xd5, 0x96, 0x8a, 0x10)]
+interface IDXGIDevice4(IDXGIDevice4Vtbl): IDXGIDevice3(IDXGIDevice3Vtbl) {
+ fn OfferResources1(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ Priority: DXGI_OFFER_RESOURCE_PRIORITY,
+ Flags: UINT,
+ ) -> HRESULT,
+ fn ReclaimResources1(
+ NumResources: UINT,
+ ppResources: *mut *mut IDXGIResource,
+ pResults: *mut DXGI_RECLAIM_RESOURCE_RESULTS,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_FEATURE {
+ DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0,
+}}
+RIDL!{#[uuid(0x7632e1f5, 0xee65, 0x4dca, 0x87, 0xfd, 0x84, 0xcd, 0x75, 0xf8, 0x83, 0x8d)]
+interface IDXGIFactory5(IDXGIFactory5Vtbl): IDXGIFactory4(IDXGIFactory4Vtbl) {
+ fn CheckFeatureSupport(
+ Feature: DXGI_FEATURE,
+ pFeatureSupportData: *mut c_void,
+ FeatureSupportDataSize: UINT,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIOutput5,
+ 0x80A07424, 0xAB52, 0x42EB, 0x83, 0x3C, 0x0C, 0x42, 0xFD, 0x28, 0x2D, 0x98}
+DEFINE_GUID!{IID_IDXGISwapChain4,
+ 0x3D585D5A, 0xBD4A, 0x489E, 0xB1, 0xF4, 0x3D, 0xBC, 0xB6, 0x45, 0x2F, 0xFB}
+DEFINE_GUID!{IID_IDXGIDevice4,
+ 0x95B4F95F, 0xD8DA, 0x4CA4, 0x9E, 0xE6, 0x3B, 0x76, 0xD5, 0x96, 0x8A, 0x10}
+DEFINE_GUID!{IID_IDXGIFactory5,
+ 0x7632e1f5, 0xee65, 0x4dca, 0x87, 0xfd, 0x84, 0xcd, 0x75, 0xf8, 0x83, 0x8d}
diff --git a/third_party/rust/winapi/src/shared/dxgi1_6.rs b/third_party/rust/winapi/src/shared/dxgi1_6.rs
new file mode 100644
index 0000000000..30af205193
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgi1_6.rs
@@ -0,0 +1,98 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgi1_6.h
+use ctypes::c_void;
+use shared::basetsd::SIZE_T;
+use shared::dxgi1_2::{
+ DXGI_COMPUTE_PREEMPTION_GRANULARITY, DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+};
+use shared::dxgi1_4::{IDXGIAdapter3, IDXGIAdapter3Vtbl};
+use shared::dxgi1_5::{IDXGIFactory5, IDXGIFactory5Vtbl, IDXGIOutput5, IDXGIOutput5Vtbl};
+use shared::dxgitype::{DXGI_COLOR_SPACE_TYPE, DXGI_MODE_ROTATION};
+use shared::guiddef::REFIID;
+use shared::minwindef::{BOOL, FLOAT, UINT};
+use shared::windef::{HMONITOR, RECT};
+use um::winnt::{HRESULT, LUID, WCHAR};
+ENUM!{enum DXGI_ADAPTER_FLAG3 {
+ DXGI_ADAPTER_FLAG3_NONE = 0,
+ DXGI_ADAPTER_FLAG3_REMOTE = 1,
+ DXGI_ADAPTER_FLAG3_SOFTWARE = 2,
+ DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 4,
+ DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 8,
+ DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
+ DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
+ DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xFFFFFFFF,
+}}
+STRUCT!{struct DXGI_ADAPTER_DESC3 {
+ Description: [WCHAR; 128],
+ VendorID: UINT,
+ DeviceID: UINT,
+ SubSysID: UINT,
+ Revision: UINT,
+ DedicatedVideoMemory: SIZE_T,
+ DedicatedSystemMemory: SIZE_T,
+ SharedSystemMemory: SIZE_T,
+ AdapterLuid: LUID,
+ Flags: DXGI_ADAPTER_FLAG3,
+ GraphicsPreemptionGranularity: DXGI_GRAPHICS_PREEMPTION_GRANULARITY,
+ ComputePreemptionGranularity: DXGI_COMPUTE_PREEMPTION_GRANULARITY,
+}}
+RIDL!{#[uuid(0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e)]
+interface IDXGIAdapter4(IDXGIAdapter4Vtbl): IDXGIAdapter3(IDXGIAdapter3Vtbl) {
+ fn GetDesc3(
+ pDesc: *mut DXGI_ADAPTER_DESC3,
+ ) -> HRESULT,
+}}
+STRUCT!{struct DXGI_OUTPUT_DESC1 {
+ DeviceName: [WCHAR; 32],
+ DesktopCoordinates: RECT,
+ AttachedToDesktop: BOOL,
+ Rotation: DXGI_MODE_ROTATION,
+ Monitor: HMONITOR,
+ BitsPerColor: UINT,
+ ColorSpace: DXGI_COLOR_SPACE_TYPE,
+ RedPrimary: [FLOAT; 2],
+ GreenPrimary: [FLOAT; 2],
+ BluePrimary: [FLOAT; 2],
+ WhitePoint: [FLOAT; 2],
+ MinLuminance: FLOAT,
+ MaxLuminance: FLOAT,
+ MaxFullFrameLuminance: FLOAT,
+}}
+ENUM!{enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS {
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 1,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 2,
+ DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 4,
+}}
+RIDL!{#[uuid(0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1)]
+interface IDXGIOutput6(IDXGIOutput6Vtbl): IDXGIOutput5(IDXGIOutput5Vtbl) {
+ fn GetDesc1(
+ pDesc: *mut DXGI_OUTPUT_DESC1,
+ ) -> HRESULT,
+ fn CheckHardwareCompositionSupport(
+ pFlags: *mut UINT,
+ ) -> HRESULT,
+}}
+ENUM!{enum DXGI_GPU_PREFERENCE {
+ DXGI_GPU_PREFERENCE_UNSPECIFIED = 0,
+ DXGI_GPU_PREFERENCE_MINIMUM_POWER = 1,
+ DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 2,
+}}
+RIDL!{#[uuid(0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17)]
+interface IDXGIFactory6(IDXGIFactory6Vtbl): IDXGIFactory5(IDXGIFactory5Vtbl) {
+ fn EnumAdapterByGpuPreference(
+ Adapter: UINT,
+ GpuPreference: DXGI_GPU_PREFERENCE,
+ riid: REFIID,
+ ppvAdapter: *mut *mut c_void,
+ ) -> HRESULT,
+}}
+DEFINE_GUID!{IID_IDXGIAdapter4,
+ 0x3c8d99d1, 0x4fbf, 0x4181, 0xa8, 0x2c, 0xaf, 0x66, 0xbf, 0x7b, 0xd2, 0x4e}
+DEFINE_GUID!{IID_IDXGIOutput6,
+ 0x068346e8, 0xaaec, 0x4b84, 0xad, 0xd7, 0x13, 0x7f, 0x51, 0x3f, 0x77, 0xa1}
+DEFINE_GUID!{IID_IDXGIFactory6,
+ 0xc1b6694f, 0xff09, 0x44a9, 0xb0, 0x3c, 0x77, 0x90, 0x0a, 0x0a, 0x1d, 0x17}
diff --git a/third_party/rust/winapi/src/shared/dxgiformat.rs b/third_party/rust/winapi/src/shared/dxgiformat.rs
new file mode 100644
index 0000000000..84cd23fa29
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgiformat.rs
@@ -0,0 +1,127 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgiformat.h
+ENUM!{enum DXGI_FORMAT {
+ DXGI_FORMAT_UNKNOWN = 0,
+ DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
+ DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
+ DXGI_FORMAT_R32G32B32A32_UINT = 3,
+ DXGI_FORMAT_R32G32B32A32_SINT = 4,
+ DXGI_FORMAT_R32G32B32_TYPELESS = 5,
+ DXGI_FORMAT_R32G32B32_FLOAT = 6,
+ DXGI_FORMAT_R32G32B32_UINT = 7,
+ DXGI_FORMAT_R32G32B32_SINT = 8,
+ DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
+ DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
+ DXGI_FORMAT_R16G16B16A16_UNORM = 11,
+ DXGI_FORMAT_R16G16B16A16_UINT = 12,
+ DXGI_FORMAT_R16G16B16A16_SNORM = 13,
+ DXGI_FORMAT_R16G16B16A16_SINT = 14,
+ DXGI_FORMAT_R32G32_TYPELESS = 15,
+ DXGI_FORMAT_R32G32_FLOAT = 16,
+ DXGI_FORMAT_R32G32_UINT = 17,
+ DXGI_FORMAT_R32G32_SINT = 18,
+ DXGI_FORMAT_R32G8X24_TYPELESS = 19,
+ DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
+ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
+ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
+ DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
+ DXGI_FORMAT_R10G10B10A2_UNORM = 24,
+ DXGI_FORMAT_R10G10B10A2_UINT = 25,
+ DXGI_FORMAT_R11G11B10_FLOAT = 26,
+ DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
+ DXGI_FORMAT_R8G8B8A8_UNORM = 28,
+ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
+ DXGI_FORMAT_R8G8B8A8_UINT = 30,
+ DXGI_FORMAT_R8G8B8A8_SNORM = 31,
+ DXGI_FORMAT_R8G8B8A8_SINT = 32,
+ DXGI_FORMAT_R16G16_TYPELESS = 33,
+ DXGI_FORMAT_R16G16_FLOAT = 34,
+ DXGI_FORMAT_R16G16_UNORM = 35,
+ DXGI_FORMAT_R16G16_UINT = 36,
+ DXGI_FORMAT_R16G16_SNORM = 37,
+ DXGI_FORMAT_R16G16_SINT = 38,
+ DXGI_FORMAT_R32_TYPELESS = 39,
+ DXGI_FORMAT_D32_FLOAT = 40,
+ DXGI_FORMAT_R32_FLOAT = 41,
+ DXGI_FORMAT_R32_UINT = 42,
+ DXGI_FORMAT_R32_SINT = 43,
+ DXGI_FORMAT_R24G8_TYPELESS = 44,
+ DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
+ DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
+ DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
+ DXGI_FORMAT_R8G8_TYPELESS = 48,
+ DXGI_FORMAT_R8G8_UNORM = 49,
+ DXGI_FORMAT_R8G8_UINT = 50,
+ DXGI_FORMAT_R8G8_SNORM = 51,
+ DXGI_FORMAT_R8G8_SINT = 52,
+ DXGI_FORMAT_R16_TYPELESS = 53,
+ DXGI_FORMAT_R16_FLOAT = 54,
+ DXGI_FORMAT_D16_UNORM = 55,
+ DXGI_FORMAT_R16_UNORM = 56,
+ DXGI_FORMAT_R16_UINT = 57,
+ DXGI_FORMAT_R16_SNORM = 58,
+ DXGI_FORMAT_R16_SINT = 59,
+ DXGI_FORMAT_R8_TYPELESS = 60,
+ DXGI_FORMAT_R8_UNORM = 61,
+ DXGI_FORMAT_R8_UINT = 62,
+ DXGI_FORMAT_R8_SNORM = 63,
+ DXGI_FORMAT_R8_SINT = 64,
+ DXGI_FORMAT_A8_UNORM = 65,
+ DXGI_FORMAT_R1_UNORM = 66,
+ DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
+ DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
+ DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
+ DXGI_FORMAT_BC1_TYPELESS = 70,
+ DXGI_FORMAT_BC1_UNORM = 71,
+ DXGI_FORMAT_BC1_UNORM_SRGB = 72,
+ DXGI_FORMAT_BC2_TYPELESS = 73,
+ DXGI_FORMAT_BC2_UNORM = 74,
+ DXGI_FORMAT_BC2_UNORM_SRGB = 75,
+ DXGI_FORMAT_BC3_TYPELESS = 76,
+ DXGI_FORMAT_BC3_UNORM = 77,
+ DXGI_FORMAT_BC3_UNORM_SRGB = 78,
+ DXGI_FORMAT_BC4_TYPELESS = 79,
+ DXGI_FORMAT_BC4_UNORM = 80,
+ DXGI_FORMAT_BC4_SNORM = 81,
+ DXGI_FORMAT_BC5_TYPELESS = 82,
+ DXGI_FORMAT_BC5_UNORM = 83,
+ DXGI_FORMAT_BC5_SNORM = 84,
+ DXGI_FORMAT_B5G6R5_UNORM = 85,
+ DXGI_FORMAT_B5G5R5A1_UNORM = 86,
+ DXGI_FORMAT_B8G8R8A8_UNORM = 87,
+ DXGI_FORMAT_B8G8R8X8_UNORM = 88,
+ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
+ DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
+ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
+ DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
+ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
+ DXGI_FORMAT_BC6H_TYPELESS = 94,
+ DXGI_FORMAT_BC6H_UF16 = 95,
+ DXGI_FORMAT_BC6H_SF16 = 96,
+ DXGI_FORMAT_BC7_TYPELESS = 97,
+ DXGI_FORMAT_BC7_UNORM = 98,
+ DXGI_FORMAT_BC7_UNORM_SRGB = 99,
+ DXGI_FORMAT_AYUV = 100,
+ DXGI_FORMAT_Y410 = 101,
+ DXGI_FORMAT_Y416 = 102,
+ DXGI_FORMAT_NV12 = 103,
+ DXGI_FORMAT_P010 = 104,
+ DXGI_FORMAT_P016 = 105,
+ DXGI_FORMAT_420_OPAQUE = 106,
+ DXGI_FORMAT_YUY2 = 107,
+ DXGI_FORMAT_Y210 = 108,
+ DXGI_FORMAT_Y216 = 109,
+ DXGI_FORMAT_NV11 = 110,
+ DXGI_FORMAT_AI44 = 111,
+ DXGI_FORMAT_IA44 = 112,
+ DXGI_FORMAT_P8 = 113,
+ DXGI_FORMAT_A8P8 = 114,
+ DXGI_FORMAT_B4G4R4A4_UNORM = 115,
+ DXGI_FORMAT_P208 = 130,
+ DXGI_FORMAT_V208 = 131,
+ DXGI_FORMAT_V408 = 132,
+}}
diff --git a/third_party/rust/winapi/src/shared/dxgitype.rs b/third_party/rust/winapi/src/shared/dxgitype.rs
new file mode 100644
index 0000000000..d09dccde5e
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/dxgitype.rs
@@ -0,0 +1,109 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the contents of dxgitype.h
+use shared::d3d9types::D3DCOLORVALUE;
+use shared::dxgiformat::DXGI_FORMAT;
+use shared::minwindef::{BOOL, BYTE, DWORD, UINT};
+pub const DXGI_CPU_ACCESS_NONE: DWORD = 0;
+pub const DXGI_CPU_ACCESS_DYNAMIC: DWORD = 1;
+pub const DXGI_CPU_ACCESS_READ_WRITE: DWORD = 2;
+pub const DXGI_CPU_ACCESS_SCRATCH: DWORD = 3;
+pub const DXGI_CPU_ACCESS_FIELD: DWORD = 15;
+ENUM!{enum DXGI_USAGE {
+ DXGI_USAGE_SHADER_INPUT = 1 << (0 + 4),
+ DXGI_USAGE_RENDER_TARGET_OUTPUT = 1 << (1 + 4),
+ DXGI_USAGE_BACK_BUFFER = 1 << (2 + 4),
+ DXGI_USAGE_SHARED = 1 << (3 + 4),
+ DXGI_USAGE_READ_ONLY = 1 << (4 + 4),
+ DXGI_USAGE_DISCARD_ON_PRESENT = 1 << (5 + 4),
+ DXGI_USAGE_UNORDERED_ACCESS = 1 << (6 + 4),
+}}
+STRUCT!{struct DXGI_RGB {
+ Red: f32,
+ Green: f32,
+ Blue: f32,
+}}
+pub type DXGI_RGBA = D3DCOLORVALUE;
+STRUCT!{struct DXGI_GAMMA_CONTROL {
+ Scale: DXGI_RGB,
+ Offset: DXGI_RGB,
+ GammaCurve: [DXGI_RGB; 1025],
+}}
+STRUCT!{struct DXGI_GAMMA_CONTROL_CAPABILITIES {
+ ScaleAndOffsetSupported: BOOL,
+ MaxConvertedValue: f32,
+ MinConvertedValue: f32,
+ NumGammaControlPoints: UINT,
+ ControlPointPositions: [f32; 1025],
+}}
+STRUCT!{struct DXGI_RATIONAL {
+ Numerator: UINT,
+ Denominator: UINT,
+}}
+ENUM!{enum DXGI_MODE_SCANLINE_ORDER {
+ DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED,
+ DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE,
+ DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST,
+ DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST,
+}}
+ENUM!{enum DXGI_MODE_SCALING {
+ DXGI_MODE_SCALING_UNSPECIFIED,
+ DXGI_MODE_SCALING_CENTERED,
+ DXGI_MODE_SCALING_STRETCHED,
+}}
+ENUM!{enum DXGI_MODE_ROTATION {
+ DXGI_MODE_ROTATION_UNSPECIFIED,
+ DXGI_MODE_ROTATION_IDENTITY,
+ DXGI_MODE_ROTATION_ROTATE90,
+ DXGI_MODE_ROTATION_ROTATE180,
+ DXGI_MODE_ROTATION_ROTATE270,
+}}
+STRUCT!{struct DXGI_MODE_DESC {
+ Width: UINT,
+ Height: UINT,
+ RefreshRate: DXGI_RATIONAL,
+ Format: DXGI_FORMAT,
+ ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
+ Scaling: DXGI_MODE_SCALING,
+}}
+STRUCT!{struct DXGI_SAMPLE_DESC {
+ Count: UINT,
+ Quality: UINT,
+}}
+STRUCT!{struct DXGI_JPEG_DC_HUFFMAN_TABLE {
+ CodeCounts: [BYTE; 12],
+ CodeValues: [BYTE; 12],
+}}
+STRUCT!{struct DXGI_JPEG_AC_HUFFMAN_TABLE {
+ CodeCounts: [BYTE; 16],
+ CodeValues: [BYTE; 162],
+}}
+STRUCT!{struct DXGI_JPEG_QUANTIZATION_TABLE {
+ Elements: [BYTE; 64],
+}}
+ENUM!{enum DXGI_COLOR_SPACE_TYPE {
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0,
+ DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3,
+ DXGI_COLOR_SPACE_RESERVED = 4,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10,
+ DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11,
+ DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13,
+ DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15,
+ DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16,
+ DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17,
+ DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF,
+}}
+pub const DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN: UINT = 0xfffffffe;
+pub const DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN: UINT = 0xffffffff;
diff --git a/third_party/rust/winapi/src/shared/evntprov.rs b/third_party/rust/winapi/src/shared/evntprov.rs
new file mode 100644
index 0000000000..455ff5d292
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/evntprov.rs
@@ -0,0 +1,309 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{SIZE_T, ULONG64};
+use shared::guiddef::{LPCGUID, LPGUID};
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use um::winnt::{ANYSIZE_ARRAY, BOOLEAN, PCWSTR, PVOID, ULONGLONG, VOID};
+pub const EVENT_MIN_LEVEL: UCHAR = 0;
+pub const EVENT_MAX_LEVEL: UCHAR = 0xff;
+pub const EVENT_ACTIVITY_CTRL_GET_ID: ULONG = 1;
+pub const EVENT_ACTIVITY_CTRL_SET_ID: ULONG = 2;
+pub const EVENT_ACTIVITY_CTRL_CREATE_ID: ULONG = 3;
+pub const EVENT_ACTIVITY_CTRL_GET_SET_ID: ULONG = 4;
+pub const EVENT_ACTIVITY_CTRL_CREATE_SET_ID: ULONG = 5;
+pub const MAX_EVENT_DATA_DESCRIPTORS: SIZE_T = 128;
+pub const MAX_EVENT_FILTER_DATA_SIZE: SIZE_T = 1024;
+pub const MAX_EVENT_FILTER_PAYLOAD_SIZE: SIZE_T = 4096;
+pub const MAX_EVENT_FILTER_EVENT_NAME_SIZE: SIZE_T = 4096;
+pub const MAX_EVENT_FILTERS_COUNT: SIZE_T = 8;
+pub const MAX_EVENT_FILTER_PID_COUNT: SIZE_T = 8;
+pub const MAX_EVENT_FILTER_EVENT_ID_COUNT: SIZE_T = 64;
+pub const EVENT_FILTER_TYPE_NONE: ULONG = 0x00000000;
+pub const EVENT_FILTER_TYPE_SCHEMATIZED: ULONG = 0x80000000;
+pub const EVENT_FILTER_TYPE_SYSTEM_FLAGS: ULONG = 0x80000001;
+pub const EVENT_FILTER_TYPE_TRACEHANDLE: ULONG = 0x80000002;
+pub const EVENT_FILTER_TYPE_PID: ULONG = 0x80000004;
+pub const EVENT_FILTER_TYPE_EXECUTABLE_NAME: ULONG = 0x80000008;
+pub const EVENT_FILTER_TYPE_PACKAGE_ID: ULONG = 0x80000010;
+pub const EVENT_FILTER_TYPE_PACKAGE_APP_ID: ULONG = 0x80000020;
+pub const EVENT_FILTER_TYPE_PAYLOAD: ULONG = 0x80000100;
+pub const EVENT_FILTER_TYPE_EVENT_ID: ULONG = 0x80000200;
+pub const EVENT_FILTER_TYPE_EVENT_NAME: ULONG = 0x80000400;
+pub const EVENT_FILTER_TYPE_STACKWALK: ULONG = 0x80001000;
+pub const EVENT_FILTER_TYPE_STACKWALK_NAME: ULONG = 0x80001000;
+pub const EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW: ULONG = 0x80004000;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_NONE: UCHAR = 0;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_EVENT_METADATA: UCHAR = 1;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_PROVIDER_METADATA: UCHAR = 2;
+pub const EVENT_DATA_DESCRIPTOR_TYPE_TIMESTAMP_OVERRIDE: UCHAR = 3;
+pub const EVENT_WRITE_FLAG_NO_FAULTING: ULONG = 0x00000001;
+pub const EVENT_WRITE_FLAG_INPRIVATE: ULONG = 0x00000002;
+pub type REGHANDLE = ULONGLONG;
+pub type PREGHANDLE = *mut REGHANDLE;
+STRUCT!{struct EVENT_DATA_DESCRIPTOR_u_s {
+ Type: UCHAR,
+ Reserved1: UCHAR,
+ Reserved2: USHORT,
+}}
+UNION!{union EVENT_DATA_DESCRIPTOR_u {
+ [u32; 1],
+ Reserved Reserved_mut: ULONG,
+ s s_mut: EVENT_DATA_DESCRIPTOR_u_s,
+}}
+STRUCT!{struct EVENT_DATA_DESCRIPTOR {
+ Ptr: ULONGLONG,
+ Size: ULONG,
+ u: EVENT_DATA_DESCRIPTOR_u,
+}}
+pub type PEVENT_DATA_DESCRIPTOR = *mut EVENT_DATA_DESCRIPTOR;
+STRUCT!{struct EVENT_DESCRIPTOR {
+ Id: USHORT,
+ Version: UCHAR,
+ Channel: UCHAR,
+ Level: UCHAR,
+ Opcode: UCHAR,
+ Task: USHORT,
+ Keyword: ULONGLONG,
+}}
+pub type PEVENT_DESCRIPTOR = *mut EVENT_DESCRIPTOR;
+pub type PCEVENT_DESCRIPTOR = *const EVENT_DESCRIPTOR;
+STRUCT!{struct EVENT_FILTER_DESCRIPTOR {
+ Ptr: ULONGLONG,
+ Size: ULONG,
+ Type: ULONG,
+}}
+pub type PEVENT_FILTER_DESCRIPTOR = *mut EVENT_FILTER_DESCRIPTOR;
+STRUCT!{struct EVENT_FILTER_HEADER {
+ Id: USHORT,
+ Version: UCHAR,
+ Reserved: [UCHAR; 5],
+ InstanceId: ULONGLONG,
+ Size: ULONG,
+ NextOffset: ULONG,
+}}
+pub type PEVENT_FILTER_HEADER = *mut EVENT_FILTER_HEADER;
+STRUCT!{struct EVENT_FILTER_EVENT_ID {
+ FilterIn: BOOLEAN,
+ Reserved: UCHAR,
+ Count: USHORT,
+ Events: [USHORT; ANYSIZE_ARRAY],
+}}
+pub type PEVENT_FILTER_EVENT_ID = *mut EVENT_FILTER_EVENT_ID;
+STRUCT!{struct EVENT_FILTER_EVENT_NAME {
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Level: UCHAR,
+ FilterIn: BOOLEAN,
+ NameCount: USHORT,
+ Names: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PEVENT_FILTER_EVENT_NAME = *mut EVENT_FILTER_EVENT_NAME;
+STRUCT!{struct EVENT_FILTER_LEVEL_KW {
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Level: UCHAR,
+ FilterIn: BOOLEAN,
+}}
+ENUM!{enum EVENT_INFO_CLASS {
+ EventProviderBinaryTrackInfo,
+ EventProviderSetReserved1,
+ EventProviderSetTraits,
+ EventProviderUseDescriptorType,
+ MaxEventInfo,
+}}
+FN!{stdcall PENABLECALLBACK(
+ SourceId: LPCGUID,
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ FilterData: PEVENT_FILTER_DESCRIPTOR,
+ CallbackContext: PVOID,
+) -> ()}
+extern "system" {
+ pub fn EventRegister(
+ ProviderId: LPCGUID,
+ EnableCallback: PENABLECALLBACK,
+ CallbackContext: PVOID,
+ RegHandle: PREGHANDLE,
+ ) -> ULONG;
+ pub fn EventUnregister(
+ RegHandle: REGHANDLE,
+ ) -> ULONG;
+ pub fn EventSetInformation(
+ RegHandle: REGHANDLE,
+ InformationClass: EVENT_INFO_CLASS,
+ EventInformation: PVOID,
+ InformationLength: ULONG,
+ ) -> ULONG;
+ pub fn EventEnabled(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ ) -> BOOLEAN;
+ pub fn EventProviderEnabled(
+ RegHandle: REGHANDLE,
+ Level: UCHAR,
+ Keyword: ULONGLONG,
+ ) -> BOOLEAN;
+ pub fn EventWrite(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteTransfer(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ ActivityId: LPCGUID,
+ RelatedActivityId: LPCGUID,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteEx(
+ RegHandle: REGHANDLE,
+ EventDescriptor: PCEVENT_DESCRIPTOR,
+ Filter: ULONG64,
+ Flags: ULONG,
+ ActivityId: LPCGUID,
+ RelatedActivityId: LPCGUID,
+ UserDataCount: ULONG,
+ UserData: PEVENT_DATA_DESCRIPTOR,
+ ) -> ULONG;
+ pub fn EventWriteString(
+ RegHandle: REGHANDLE,
+ Level: UCHAR,
+ Keyword: ULONGLONG,
+ EventString: PCWSTR,
+ ) -> ULONG;
+ pub fn EventActivityIdControl(
+ ControlCode: ULONG,
+ ActivityId: LPGUID,
+ ) -> ULONG;
+}
+#[inline]
+pub unsafe fn EventDataDescCreate(
+ EventDataDescriptor: PEVENT_DATA_DESCRIPTOR,
+ DataPtr: *const VOID,
+ DataSize: ULONG,
+) {
+ (*EventDataDescriptor).Ptr = DataPtr as ULONGLONG;
+ (*EventDataDescriptor).Size = DataSize;
+ *(*EventDataDescriptor).u.Reserved_mut() = 0;
+}
+#[inline]
+pub unsafe fn EventDescCreate(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Id: USHORT,
+ Version: UCHAR,
+ Channel: UCHAR,
+ Level: UCHAR,
+ Task: USHORT,
+ Opcode: UCHAR,
+ Keyword: ULONGLONG,
+) {
+ (*EventDescriptor).Id = Id;
+ (*EventDescriptor).Version = Version;
+ (*EventDescriptor).Channel = Channel;
+ (*EventDescriptor).Level = Level;
+ (*EventDescriptor).Task = Task;
+ (*EventDescriptor).Opcode = Opcode;
+ (*EventDescriptor).Keyword = Keyword;
+}
+#[inline]
+pub unsafe fn EventDescZero(EventDescriptor: PEVENT_DESCRIPTOR) {
+ use core::ptr::write_bytes;
+ // FIXME: 16 = sizeof::<EVENT_DESCRIPTOR>()
+ write_bytes(EventDescriptor, 0, 16);
+}
+#[inline]
+pub unsafe fn EventDescGetId(EventDescriptor: PCEVENT_DESCRIPTOR) -> USHORT {
+ (*EventDescriptor).Id
+}
+#[inline]
+pub unsafe fn EventDescGetVersion(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Version
+}
+#[inline]
+pub unsafe fn EventDescGetTask(EventDescriptor: PCEVENT_DESCRIPTOR) -> USHORT {
+ (*EventDescriptor).Task
+}
+#[inline]
+pub unsafe fn EventDescGetOpcode(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Opcode
+}
+#[inline]
+pub unsafe fn EventDescGetChannel(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Channel
+}
+#[inline]
+pub unsafe fn EventDescGetLevel(EventDescriptor: PCEVENT_DESCRIPTOR) -> UCHAR {
+ (*EventDescriptor).Level
+}
+#[inline]
+pub unsafe fn EventDescGetKeyword(EventDescriptor: PCEVENT_DESCRIPTOR) -> ULONGLONG {
+ (*EventDescriptor).Keyword
+}
+#[inline]
+pub unsafe fn EventDescSetId(EventDescriptor: PEVENT_DESCRIPTOR, Id: USHORT) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Id = Id;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetVersion(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Version: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Version = Version;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetTask(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Task: USHORT,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Task = Task;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetOpcode(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Opcode: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Opcode = Opcode;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetLevel(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Level: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Level = Level;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetChannel(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Channel: UCHAR,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Channel = Channel;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescSetKeyword(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Keyword: ULONGLONG,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Keyword = Keyword;
+ EventDescriptor
+}
+#[inline]
+pub unsafe fn EventDescOrKeyword(
+ EventDescriptor: PEVENT_DESCRIPTOR,
+ Keyword: ULONGLONG,
+) -> PEVENT_DESCRIPTOR {
+ (*EventDescriptor).Keyword |= Keyword;
+ EventDescriptor
+}
diff --git a/third_party/rust/winapi/src/shared/evntrace.rs b/third_party/rust/winapi/src/shared/evntrace.rs
new file mode 100644
index 0000000000..23a93eec31
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/evntrace.rs
@@ -0,0 +1,990 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{SIZE_T, ULONG32, ULONG64};
+use shared::evntprov::PEVENT_FILTER_DESCRIPTOR;
+use shared::guiddef::{GUID, LPCGUID, LPGUID};
+use shared::minwindef::{DWORD, LPFILETIME, PULONG, UCHAR, UINT, ULONG, USHORT};
+use shared::wmistr::{WMIDPREQUESTCODE, WNODE_HEADER};
+use um::evntcons::PEVENT_RECORD;
+use um::handleapi::INVALID_HANDLE_VALUE;
+use um::timezoneapi::TIME_ZONE_INFORMATION;
+use um::winnt::{
+ ANYSIZE_ARRAY, BOOLEAN, HANDLE, LARGE_INTEGER, LONG, LONGLONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR,
+ PVOID, ULONGLONG, WCHAR
+};
+use vc::vadefs::va_list;
+DEFINE_GUID!{EventTraceGuid,
+ 0x68fdd900, 0x4a3e, 0x11d1, 0x84, 0xf4, 0x00, 0x00, 0xf8, 0x04, 0x64, 0xe3}
+DEFINE_GUID!{SystemTraceControlGuid,
+ 0x9e814aad, 0x3204, 0x11d2, 0x9a, 0x82, 0x00, 0x60, 0x08, 0xa8, 0x69, 0x39}
+DEFINE_GUID!{EventTraceConfigGuid,
+ 0x01853a65, 0x418f, 0x4f36, 0xae, 0xfc, 0xdc, 0x0f, 0x1d, 0x2f, 0xd2, 0x35}
+DEFINE_GUID!{DefaultTraceSecurityGuid,
+ 0x0811c1af, 0x7a07, 0x4a06, 0x82, 0xed, 0x86, 0x94, 0x55, 0xcd, 0xf7, 0x13}
+DEFINE_GUID!{PrivateLoggerNotificationGuid,
+ 0x3595ab5c, 0x042a, 0x4c8e, 0xb9, 0x42, 0x2d, 0x05, 0x9b, 0xfe, 0xb1, 0xb1}
+pub const KERNEL_LOGGER_NAME: &'static str = "NT Kernel Logger";
+pub const GLOBAL_LOGGER_NAME: &'static str = "GlobalLogger";
+pub const EVENT_LOGGER_NAME: &'static str = "EventLog";
+pub const DIAG_LOGGER_NAME: &'static str = "DiagLog";
+pub const MAX_MOF_FIELDS: SIZE_T = 16;
+DECLARE_HANDLE!{TRACEHANDLE, __TRACEHANDLE}
+pub type PTRACEHANDLE = *mut TRACEHANDLE;
+pub const EVENT_TRACE_TYPE_INFO: DWORD = 0x00;
+pub const EVENT_TRACE_TYPE_START: DWORD = 0x01;
+pub const EVENT_TRACE_TYPE_END: DWORD = 0x02;
+pub const EVENT_TRACE_TYPE_STOP: DWORD = 0x02;
+pub const EVENT_TRACE_TYPE_DC_START: DWORD = 0x03;
+pub const EVENT_TRACE_TYPE_DC_END: DWORD = 0x04;
+pub const EVENT_TRACE_TYPE_EXTENSION: DWORD = 0x05;
+pub const EVENT_TRACE_TYPE_REPLY: DWORD = 0x06;
+pub const EVENT_TRACE_TYPE_DEQUEUE: DWORD = 0x07;
+pub const EVENT_TRACE_TYPE_RESUME: DWORD = 0x07;
+pub const EVENT_TRACE_TYPE_CHECKPOINT: DWORD = 0x08;
+pub const EVENT_TRACE_TYPE_SUSPEND: DWORD = 0x08;
+pub const EVENT_TRACE_TYPE_WINEVT_SEND: DWORD = 0x09;
+pub const EVENT_TRACE_TYPE_WINEVT_RECEIVE: DWORD = 0xF0;
+pub const TRACE_LEVEL_CRITICAL: UCHAR = 1;
+pub const TRACE_LEVEL_ERROR: UCHAR = 2;
+pub const TRACE_LEVEL_WARNING: UCHAR = 3;
+pub const TRACE_LEVEL_INFORMATION: UCHAR = 4;
+pub const TRACE_LEVEL_VERBOSE: UCHAR = 5;
+pub const TRACE_LEVEL_RESERVED6: UCHAR = 6;
+pub const TRACE_LEVEL_RESERVED7: UCHAR = 7;
+pub const TRACE_LEVEL_RESERVED8: UCHAR = 8;
+pub const TRACE_LEVEL_RESERVED9: UCHAR = 9;
+pub const EVENT_TRACE_TYPE_LOAD: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_TERMINATE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_IO_READ: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_IO_WRITE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_IO_READ_INIT: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_IO_WRITE_INIT: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_IO_FLUSH: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_IO_FLUSH_INIT: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_IO_REDIRECTED_INIT: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_MM_TF: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_MM_DZF: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_MM_COW: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_MM_GPF: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_MM_HPF: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_MM_AV: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_SEND: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_RECEIVE: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_CONNECT: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_DISCONNECT: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_RETRANSMIT: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_ACCEPT: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_RECONNECT: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_CONNFAIL: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_COPY_TCP: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_COPY_ARP: DWORD = 0x13;
+pub const EVENT_TRACE_TYPE_ACKFULL: DWORD = 0x14;
+pub const EVENT_TRACE_TYPE_ACKPART: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_ACKDUP: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_GUIDMAP: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_CONFIG: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_SIDINFO: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_SECURITY: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_DBGID_RSDS: DWORD = 0x40;
+pub const EVENT_TRACE_TYPE_REGCREATE: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_REGOPEN: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_REGDELETE: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_REGQUERY: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_REGSETVALUE: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_REGDELETEVALUE: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_REGQUERYVALUE: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_REGENUMERATEKEY: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_REGENUMERATEVALUEKEY: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_REGQUERYMULTIPLEVALUE: DWORD = 0x13;
+pub const EVENT_TRACE_TYPE_REGSETINFORMATION: DWORD = 0x14;
+pub const EVENT_TRACE_TYPE_REGFLUSH: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_REGKCBCREATE: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_REGKCBDELETE: DWORD = 0x17;
+pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNBEGIN: DWORD = 0x18;
+pub const EVENT_TRACE_TYPE_REGKCBRUNDOWNEND: DWORD = 0x19;
+pub const EVENT_TRACE_TYPE_REGVIRTUALIZE: DWORD = 0x1A;
+pub const EVENT_TRACE_TYPE_REGCLOSE: DWORD = 0x1B;
+pub const EVENT_TRACE_TYPE_REGSETSECURITY: DWORD = 0x1C;
+pub const EVENT_TRACE_TYPE_REGQUERYSECURITY: DWORD = 0x1D;
+pub const EVENT_TRACE_TYPE_REGCOMMIT: DWORD = 0x1E;
+pub const EVENT_TRACE_TYPE_REGPREPARE: DWORD = 0x1F;
+pub const EVENT_TRACE_TYPE_REGROLLBACK: DWORD = 0x20;
+pub const EVENT_TRACE_TYPE_REGMOUNTHIVE: DWORD = 0x21;
+pub const EVENT_TRACE_TYPE_CONFIG_CPU: DWORD = 0x0A;
+pub const EVENT_TRACE_TYPE_CONFIG_PHYSICALDISK: DWORD = 0x0B;
+pub const EVENT_TRACE_TYPE_CONFIG_LOGICALDISK: DWORD = 0x0C;
+pub const EVENT_TRACE_TYPE_CONFIG_NIC: DWORD = 0x0D;
+pub const EVENT_TRACE_TYPE_CONFIG_VIDEO: DWORD = 0x0E;
+pub const EVENT_TRACE_TYPE_CONFIG_SERVICES: DWORD = 0x0F;
+pub const EVENT_TRACE_TYPE_CONFIG_POWER: DWORD = 0x10;
+pub const EVENT_TRACE_TYPE_CONFIG_NETINFO: DWORD = 0x11;
+pub const EVENT_TRACE_TYPE_CONFIG_OPTICALMEDIA: DWORD = 0x12;
+pub const EVENT_TRACE_TYPE_CONFIG_IRQ: DWORD = 0x15;
+pub const EVENT_TRACE_TYPE_CONFIG_PNP: DWORD = 0x16;
+pub const EVENT_TRACE_TYPE_CONFIG_IDECHANNEL: DWORD = 0x17;
+pub const EVENT_TRACE_TYPE_CONFIG_NUMANODE: DWORD = 0x18;
+pub const EVENT_TRACE_TYPE_CONFIG_PLATFORM: DWORD = 0x19;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORGROUP: DWORD = 0x1A;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSORNUMBER: DWORD = 0x1B;
+pub const EVENT_TRACE_TYPE_CONFIG_DPI: DWORD = 0x1C;
+pub const EVENT_TRACE_TYPE_CONFIG_CI_INFO: DWORD = 0x1D;
+pub const EVENT_TRACE_TYPE_CONFIG_MACHINEID: DWORD = 0x1E;
+pub const EVENT_TRACE_TYPE_CONFIG_DEFRAG: DWORD = 0x1F;
+pub const EVENT_TRACE_TYPE_CONFIG_MOBILEPLATFORM: DWORD = 0x20;
+pub const EVENT_TRACE_TYPE_CONFIG_DEVICEFAMILY: DWORD = 0x21;
+pub const EVENT_TRACE_TYPE_CONFIG_FLIGHTID: DWORD = 0x22;
+pub const EVENT_TRACE_TYPE_CONFIG_PROCESSOR: DWORD = 0x23;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ: DWORD = 0x37;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE: DWORD = 0x38;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH: DWORD = 0x39;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_READ_INIT: DWORD = 0x3a;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_WRITE_INIT: DWORD = 0x3b;
+pub const EVENT_TRACE_TYPE_OPTICAL_IO_FLUSH_INIT: DWORD = 0x3c;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_INIT: DWORD = 0x60;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_INIT: DWORD = 0x61;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_COMPLETION: DWORD = 0x62;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_COMPLETION: DWORD = 0x63;
+pub const EVENT_TRACE_TYPE_FLT_PREOP_FAILURE: DWORD = 0x64;
+pub const EVENT_TRACE_TYPE_FLT_POSTOP_FAILURE: DWORD = 0x65;
+pub const EVENT_TRACE_FLAG_PROCESS: DWORD = 0x00000001;
+pub const EVENT_TRACE_FLAG_THREAD: DWORD = 0x00000002;
+pub const EVENT_TRACE_FLAG_IMAGE_LOAD: DWORD = 0x00000004;
+pub const EVENT_TRACE_FLAG_DISK_IO: DWORD = 0x00000100;
+pub const EVENT_TRACE_FLAG_DISK_FILE_IO: DWORD = 0x00000200;
+pub const EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS: DWORD = 0x00001000;
+pub const EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS: DWORD = 0x00002000;
+pub const EVENT_TRACE_FLAG_NETWORK_TCPIP: DWORD = 0x00010000;
+pub const EVENT_TRACE_FLAG_REGISTRY: DWORD = 0x00020000;
+pub const EVENT_TRACE_FLAG_DBGPRINT: DWORD = 0x00040000;
+pub const EVENT_TRACE_FLAG_PROCESS_COUNTERS: DWORD = 0x00000008;
+pub const EVENT_TRACE_FLAG_CSWITCH: DWORD = 0x00000010;
+pub const EVENT_TRACE_FLAG_DPC: DWORD = 0x00000020;
+pub const EVENT_TRACE_FLAG_INTERRUPT: DWORD = 0x00000040;
+pub const EVENT_TRACE_FLAG_SYSTEMCALL: DWORD = 0x00000080;
+pub const EVENT_TRACE_FLAG_DISK_IO_INIT: DWORD = 0x00000400;
+pub const EVENT_TRACE_FLAG_ALPC: DWORD = 0x00100000;
+pub const EVENT_TRACE_FLAG_SPLIT_IO: DWORD = 0x00200000;
+pub const EVENT_TRACE_FLAG_DRIVER: DWORD = 0x00800000;
+pub const EVENT_TRACE_FLAG_PROFILE: DWORD = 0x01000000;
+pub const EVENT_TRACE_FLAG_FILE_IO: DWORD = 0x02000000;
+pub const EVENT_TRACE_FLAG_FILE_IO_INIT: DWORD = 0x04000000;
+pub const EVENT_TRACE_FLAG_DISPATCHER: DWORD = 0x00000800;
+pub const EVENT_TRACE_FLAG_VIRTUAL_ALLOC: DWORD = 0x00004000;
+pub const EVENT_TRACE_FLAG_VAMAP: DWORD = 0x00008000;
+pub const EVENT_TRACE_FLAG_NO_SYSCONFIG: DWORD = 0x10000000;
+pub const EVENT_TRACE_FLAG_JOB: DWORD = 0x00080000;
+pub const EVENT_TRACE_FLAG_DEBUG_EVENTS: DWORD = 0x00400000;
+pub const EVENT_TRACE_FLAG_EXTENSION: DWORD = 0x80000000;
+pub const EVENT_TRACE_FLAG_FORWARD_WMI: DWORD = 0x40000000;
+pub const EVENT_TRACE_FLAG_ENABLE_RESERVE: DWORD = 0x20000000;
+pub const EVENT_TRACE_FILE_MODE_NONE: DWORD = 0x00000000;
+pub const EVENT_TRACE_FILE_MODE_SEQUENTIAL: DWORD = 0x00000001;
+pub const EVENT_TRACE_FILE_MODE_CIRCULAR: DWORD = 0x00000002;
+pub const EVENT_TRACE_FILE_MODE_APPEND: DWORD = 0x00000004;
+pub const EVENT_TRACE_REAL_TIME_MODE: DWORD = 0x00000100;
+pub const EVENT_TRACE_DELAY_OPEN_FILE_MODE: DWORD = 0x00000200;
+pub const EVENT_TRACE_BUFFERING_MODE: DWORD = 0x00000400;
+pub const EVENT_TRACE_PRIVATE_LOGGER_MODE: DWORD = 0x00000800;
+pub const EVENT_TRACE_ADD_HEADER_MODE: DWORD = 0x00001000;
+pub const EVENT_TRACE_USE_GLOBAL_SEQUENCE: DWORD = 0x00004000;
+pub const EVENT_TRACE_USE_LOCAL_SEQUENCE: DWORD = 0x00008000;
+pub const EVENT_TRACE_RELOG_MODE: DWORD = 0x00010000;
+pub const EVENT_TRACE_USE_PAGED_MEMORY: DWORD = 0x01000000;
+pub const EVENT_TRACE_FILE_MODE_NEWFILE: DWORD = 0x00000008;
+pub const EVENT_TRACE_FILE_MODE_PREALLOCATE: DWORD = 0x00000020;
+pub const EVENT_TRACE_NONSTOPPABLE_MODE: DWORD = 0x00000040;
+pub const EVENT_TRACE_SECURE_MODE: DWORD = 0x00000080;
+pub const EVENT_TRACE_USE_KBYTES_FOR_SIZE: DWORD = 0x00002000;
+pub const EVENT_TRACE_PRIVATE_IN_PROC: DWORD = 0x00020000;
+pub const EVENT_TRACE_MODE_RESERVED: DWORD = 0x00100000;
+pub const EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING: DWORD = 0x10000000;
+pub const EVENT_TRACE_SYSTEM_LOGGER_MODE: DWORD = 0x02000000;
+pub const EVENT_TRACE_ADDTO_TRIAGE_DUMP: DWORD = 0x80000000;
+pub const EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN: DWORD = 0x00400000;
+pub const EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN: DWORD = 0x00800000;
+pub const EVENT_TRACE_INDEPENDENT_SESSION_MODE: DWORD = 0x08000000;
+pub const EVENT_TRACE_COMPRESSED_MODE: DWORD = 0x04000000;
+pub const EVENT_TRACE_CONTROL_QUERY: DWORD = 0;
+pub const EVENT_TRACE_CONTROL_STOP: DWORD = 1;
+pub const EVENT_TRACE_CONTROL_UPDATE: DWORD = 2;
+pub const EVENT_TRACE_CONTROL_FLUSH: DWORD = 3;
+pub const TRACE_MESSAGE_SEQUENCE: DWORD = 1;
+pub const TRACE_MESSAGE_GUID: DWORD = 2;
+pub const TRACE_MESSAGE_COMPONENTID: DWORD = 4;
+pub const TRACE_MESSAGE_TIMESTAMP: DWORD = 8;
+pub const TRACE_MESSAGE_PERFORMANCE_TIMESTAMP: DWORD = 16;
+pub const TRACE_MESSAGE_SYSTEMINFO: DWORD = 32;
+pub const TRACE_MESSAGE_POINTER32: DWORD = 0x0040;
+pub const TRACE_MESSAGE_POINTER64: DWORD = 0x0080;
+pub const TRACE_MESSAGE_FLAG_MASK: DWORD = 0xFFFF;
+pub const TRACE_MESSAGE_MAXIMUM_SIZE: SIZE_T = 64 * 1024;
+pub const EVENT_TRACE_USE_PROCTIME: DWORD = 0x0001;
+pub const EVENT_TRACE_USE_NOCPUTIME: DWORD = 0x0002;
+pub const TRACE_HEADER_FLAG_USE_TIMESTAMP: DWORD = 0x00000200;
+pub const TRACE_HEADER_FLAG_TRACED_GUID: DWORD = 0x00020000;
+pub const TRACE_HEADER_FLAG_LOG_WNODE: DWORD = 0x00040000;
+pub const TRACE_HEADER_FLAG_USE_GUID_PTR: DWORD = 0x00080000;
+pub const TRACE_HEADER_FLAG_USE_MOF_PTR: DWORD = 0x00100000;
+ENUM!{enum ETW_COMPRESSION_RESUMPTION_MODE {
+ EtwCompressionModeRestart = 0,
+ EtwCompressionModeNoDisable = 1,
+ EtwCompressionModeNoRestart = 2,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u1_s {
+ HeaderType: UCHAR,
+ MarkerFlags: UCHAR,
+}}
+UNION!{union EVENT_TRACE_HEADER_u1 {
+ [u16; 1],
+ FieldTypeFlags FieldTypeFlags_mut: USHORT,
+ s s_mut: EVENT_TRACE_HEADER_u1_s,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u2_CLASS {
+ Type: UCHAR,
+ Level: UCHAR,
+ Version: USHORT,
+}}
+UNION!{union EVENT_TRACE_HEADER_u2 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ Class Class_mut: EVENT_TRACE_HEADER_u2_CLASS,
+}}
+UNION!{union EVENT_TRACE_HEADER_u3 {
+ [u64; 2],
+ Guid Guid_mut: GUID,
+ GuidPtr GuidPtr_mut: ULONGLONG,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u4_s1 {
+ ClientContext: ULONG,
+ Flags: ULONG,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER_u4_s2 {
+ KernelTime: ULONG,
+ UserTime: ULONG,
+}}
+UNION!{union EVENT_TRACE_HEADER_u4 {
+ [u64; 1],
+ s1 s1_mut: EVENT_TRACE_HEADER_u4_s1,
+ s2 s2_mut: EVENT_TRACE_HEADER_u4_s2,
+ ProcessorTime ProcessorTime_mut: ULONG64,
+}}
+STRUCT!{struct EVENT_TRACE_HEADER {
+ Size: USHORT,
+ u1: EVENT_TRACE_HEADER_u1,
+ u2: EVENT_TRACE_HEADER_u2,
+ ThreadId: ULONG,
+ ProcessId: ULONG,
+ TimeStamp: LARGE_INTEGER,
+ u3: EVENT_TRACE_HEADER_u3,
+ u4: EVENT_TRACE_HEADER_u4,
+}}
+pub type PEVENT_TRACE_HEADER = *mut EVENT_TRACE_HEADER;
+STRUCT!{struct EVENT_INSTANCE_HEADER_u1_s {
+ HeaderType: UCHAR,
+ MarkerFlags: UCHAR,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u1 {
+ [u16; 1],
+ FieldTypeFlags FieldTypeFlags_mut: USHORT,
+ s s_mut: EVENT_INSTANCE_HEADER_u1_s,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u2_CLASS {
+ Type: UCHAR,
+ Level: UCHAR,
+ Version: USHORT,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u2 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ Class Class_mut: EVENT_INSTANCE_HEADER_u2_CLASS,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u3_s1 {
+ KernelTime: ULONG,
+ UserTime: ULONG,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER_u3_s2 {
+ EventId: ULONG,
+ Flags: ULONG,
+}}
+UNION!{union EVENT_INSTANCE_HEADER_u3 {
+ [u64; 1],
+ s1 s1_mut: EVENT_INSTANCE_HEADER_u3_s1,
+ ProcessorTime ProcessorTime_mut: ULONG64,
+ s2 s2_mut: EVENT_INSTANCE_HEADER_u3_s2,
+}}
+STRUCT!{struct EVENT_INSTANCE_HEADER {
+ Size: USHORT,
+ u1: EVENT_INSTANCE_HEADER_u1,
+ u2: EVENT_INSTANCE_HEADER_u2,
+ ThreadId: ULONG,
+ ProcessId: ULONG,
+ TimeStamp: LARGE_INTEGER,
+ RegHandle: ULONGLONG,
+ InstanceId: ULONG,
+ ParentInstanceId: ULONG,
+ u3: EVENT_INSTANCE_HEADER_u3,
+ ParentRegHandle: ULONGLONG,
+}}
+pub type PEVENT_INSTANCE_HEADER = *mut EVENT_INSTANCE_HEADER;
+pub const ETW_NULL_TYPE_VALUE: ULONG = 0;
+pub const ETW_OBJECT_TYPE_VALUE: ULONG = 1;
+pub const ETW_STRING_TYPE_VALUE: ULONG = 2;
+pub const ETW_SBYTE_TYPE_VALUE: ULONG = 3;
+pub const ETW_BYTE_TYPE_VALUE: ULONG = 4;
+pub const ETW_INT16_TYPE_VALUE: ULONG = 5;
+pub const ETW_UINT16_TYPE_VALUE: ULONG = 6;
+pub const ETW_INT32_TYPE_VALUE: ULONG = 7;
+pub const ETW_UINT32_TYPE_VALUE: ULONG = 8;
+pub const ETW_INT64_TYPE_VALUE: ULONG = 9;
+pub const ETW_UINT64_TYPE_VALUE: ULONG = 10;
+pub const ETW_CHAR_TYPE_VALUE: ULONG = 11;
+pub const ETW_SINGLE_TYPE_VALUE: ULONG = 12;
+pub const ETW_DOUBLE_TYPE_VALUE: ULONG = 13;
+pub const ETW_BOOLEAN_TYPE_VALUE: ULONG = 14;
+pub const ETW_DECIMAL_TYPE_VALUE: ULONG = 15;
+pub const ETW_GUID_TYPE_VALUE: ULONG = 101;
+pub const ETW_ASCIICHAR_TYPE_VALUE: ULONG = 102;
+pub const ETW_ASCIISTRING_TYPE_VALUE: ULONG = 103;
+pub const ETW_COUNTED_STRING_TYPE_VALUE: ULONG = 104;
+pub const ETW_POINTER_TYPE_VALUE: ULONG = 105;
+pub const ETW_SIZET_TYPE_VALUE: ULONG = 106;
+pub const ETW_HIDDEN_TYPE_VALUE: ULONG = 107;
+pub const ETW_BOOL_TYPE_VALUE: ULONG = 108;
+pub const ETW_COUNTED_ANSISTRING_TYPE_VALUE: ULONG = 109;
+pub const ETW_REVERSED_COUNTED_STRING_TYPE_VALUE: ULONG = 110;
+pub const ETW_REVERSED_COUNTED_ANSISTRING_TYPE_VALUE: ULONG = 111;
+pub const ETW_NON_NULL_TERMINATED_STRING_TYPE_VALUE: ULONG = 112;
+pub const ETW_REDUCED_ANSISTRING_TYPE_VALUE: ULONG = 113;
+pub const ETW_REDUCED_STRING_TYPE_VALUE: ULONG = 114;
+pub const ETW_SID_TYPE_VALUE: ULONG = 115;
+pub const ETW_VARIANT_TYPE_VALUE: ULONG = 116;
+pub const ETW_PTVECTOR_TYPE_VALUE: ULONG = 117;
+pub const ETW_WMITIME_TYPE_VALUE: ULONG = 118;
+pub const ETW_DATETIME_TYPE_VALUE: ULONG = 119;
+pub const ETW_REFRENCE_TYPE_VALUE: ULONG = 120;
+// TODO: DEFINE_TRACE_MOF_FIELD
+STRUCT!{struct MOF_FIELD {
+ DataPtr: ULONG64,
+ Length: ULONG,
+ DataType: ULONG,
+}}
+pub type PMOF_FIELD = *mut MOF_FIELD;
+STRUCT!{struct TRACE_LOGFILE_HEADER_u1_VERSIONDETAIL {
+ MajorVersion: UCHAR,
+ MinorVersion: UCHAR,
+ SubVersion: UCHAR,
+ SubMinorVersion: UCHAR,
+}}
+UNION!{union TRACE_LOGFILE_HEADER_u1 {
+ [u32; 1],
+ Version Version_mut: ULONG,
+ VersionDetail VersionDetail_mut: TRACE_LOGFILE_HEADER_u1_VERSIONDETAIL,
+}}
+STRUCT!{struct TRACE_LOGFILE_HEADER_u2_s {
+ StartBuffers: ULONG,
+ PointerSize: ULONG,
+ EventsLost: ULONG,
+ CpuSpeedInMHz: ULONG,
+}}
+UNION!{union TRACE_LOGFILE_HEADER_u2 {
+ [u32; 4],
+ LogInstanceGuid LogInstanceGuid_mut: GUID,
+ s s_mut: TRACE_LOGFILE_HEADER_u2_s,
+}}
+STRUCT!{struct TRACE_LOGFILE_HEADER {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: LPWSTR,
+ LogFileName: LPWSTR,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER = *mut TRACE_LOGFILE_HEADER;
+STRUCT!{struct TRACE_LOGFILE_HEADER32 {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: ULONG32,
+ LogFileName: ULONG32,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER32 = *mut TRACE_LOGFILE_HEADER32;
+STRUCT!{struct TRACE_LOGFILE_HEADER64 {
+ BufferSize: ULONG,
+ u1: TRACE_LOGFILE_HEADER_u1,
+ ProviderVersion: ULONG,
+ NumberOfProcessors: ULONG,
+ EndTime: LARGE_INTEGER,
+ TimerResolution: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ BuffersWritten: ULONG,
+ u2: TRACE_LOGFILE_HEADER_u2,
+ LoggerName: ULONG64,
+ LogFileName: ULONG64,
+ TimeZone: TIME_ZONE_INFORMATION,
+ BootTime: LARGE_INTEGER,
+ PrefFreq: LARGE_INTEGER,
+ StartTime: LARGE_INTEGER,
+ ReservedFlags: ULONG,
+ BuffersLost: ULONG,
+}}
+pub type PTRACE_LOGFILE_HEADER64 = *mut TRACE_LOGFILE_HEADER64;
+STRUCT!{struct EVENT_INSTANCE_INFO {
+ RegHandle: HANDLE,
+ InstanceId: ULONG,
+}}
+pub type PEVENT_INSTANCE_INFO = *mut EVENT_INSTANCE_INFO;
+UNION!{union EVENT_TRACE_PROPERTIES_u {
+ [u32; 1],
+ AgeLimit AgeLimit_mut: LONG,
+ FlushThreshold FlushThreshold_mut: LONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES {
+ Wnode: WNODE_HEADER,
+ BufferSize: ULONG,
+ MinimumBuffers: ULONG,
+ MaximumBuffers: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ FlushTimer: ULONG,
+ EnableFlags: ULONG,
+ u: EVENT_TRACE_PROPERTIES_u,
+ NumberOfBuffers: ULONG,
+ FreeBuffers: ULONG,
+ EventsLost: ULONG,
+ BuffersWritten: ULONG,
+ LogBuffersLost: ULONG,
+ RealTimeBuffersLost: ULONG,
+ LoggerThreadId: HANDLE,
+ LogFileNameOffset: ULONG,
+ LoggerNameOffset: ULONG,
+}}
+pub type PEVENT_TRACE_PROPERTIES = *mut EVENT_TRACE_PROPERTIES;
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u1 {
+ [u32; 1],
+ AgeLimit AgeLimit_mut: LONG,
+ FlushThreshold FlushThreshold_mut: LONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2_u2_s {
+ bitfield: ULONG,
+}}
+BITFIELD!{EVENT_TRACE_PROPERTIES_V2_u2_s bitfield: ULONG [
+ VersionNumber set_VersionNumber[0..8],
+]}
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u2 {
+ [u32; 1],
+ s s_mut: EVENT_TRACE_PROPERTIES_V2_u2_s,
+ V2Control V2Control_mut: ULONG,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2_u3_s {
+ bitfield: ULONG,
+}}
+BITFIELD!{EVENT_TRACE_PROPERTIES_V2_u3_s bitfield: ULONG [
+ Wow set_Wow[0..1],
+]}
+UNION!{union EVENT_TRACE_PROPERTIES_V2_u3 {
+ [u64; 1],
+ s s_mut: EVENT_TRACE_PROPERTIES_V2_u3_s,
+ V2Options V2Options_mut: ULONG64,
+}}
+STRUCT!{struct EVENT_TRACE_PROPERTIES_V2 {
+ Wnode: WNODE_HEADER,
+ BufferSize: ULONG,
+ MinimumBuffers: ULONG,
+ MaximumBuffers: ULONG,
+ MaximumFileSize: ULONG,
+ LogFileMode: ULONG,
+ FlushTimer: ULONG,
+ EnableFlags: ULONG,
+ u1: EVENT_TRACE_PROPERTIES_u,
+ NumberOfBuffers: ULONG,
+ FreeBuffers: ULONG,
+ EventsLost: ULONG,
+ BuffersWritten: ULONG,
+ LogBuffersLost: ULONG,
+ RealTimeBuffersLost: ULONG,
+ LoggerThreadId: HANDLE,
+ LogFileNameOffset: ULONG,
+ LoggerNameOffset: ULONG,
+ u2: EVENT_TRACE_PROPERTIES_V2_u2,
+ FilterDescCount: ULONG,
+ FilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ u3: EVENT_TRACE_PROPERTIES_V2_u3,
+}}
+pub type PEVENT_TRACE_PROPERTIES_V2 = *mut EVENT_TRACE_PROPERTIES_V2;
+STRUCT!{struct TRACE_GUID_REGISTRATION {
+ Guid: LPCGUID,
+ RegHandle: HANDLE,
+}}
+pub type PTRACE_GUID_REGISTRATION = *mut TRACE_GUID_REGISTRATION;
+STRUCT!{struct TRACE_GUID_PROPERTIES {
+ Guid: GUID,
+ GuidType: ULONG,
+ LoggerId: ULONG,
+ EnableLevel: ULONG,
+ EnableFlags: ULONG,
+ IsEnable: BOOLEAN,
+}}
+pub type PTRACE_GUID_PROPERTIES = *mut TRACE_GUID_PROPERTIES;
+STRUCT!{struct ETW_BUFFER_CONTEXT_u_s {
+ ProcessorNumber: UCHAR,
+ Alignment: UCHAR,
+}}
+UNION!{union ETW_BUFFER_CONTEXT_u {
+ [u16; 1],
+ s s_mut: ETW_BUFFER_CONTEXT_u_s,
+ ProcessorIndex ProcessorIndex_mut: USHORT,
+}}
+STRUCT!{struct ETW_BUFFER_CONTEXT {
+ u: ETW_BUFFER_CONTEXT_u,
+ LoggerId: USHORT,
+}}
+pub type PETW_BUFFER_CONTEXT = *mut ETW_BUFFER_CONTEXT;
+pub const TRACE_PROVIDER_FLAG_LEGACY: ULONG = 0x00000001;
+pub const TRACE_PROVIDER_FLAG_PRE_ENABLE: ULONG = 0x00000002;
+STRUCT!{struct TRACE_ENABLE_INFO {
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ Reserved1: UCHAR,
+ LoggerId: USHORT,
+ EnabledProperty: ULONG,
+ Reserved2: ULONG,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+}}
+pub type PTRACE_ENABLE_INFO = *mut TRACE_ENABLE_INFO;
+STRUCT!{struct TRACE_PROVIDER_INSTANCE_INFO {
+ NameOffset: ULONG,
+ EnableCount: ULONG,
+ Pid: ULONG,
+ Flags: ULONG,
+}}
+pub type PTRACE_PROVIDER_INSTANCE_INFO = *mut TRACE_PROVIDER_INSTANCE_INFO;
+STRUCT!{struct TRACE_GUID_INFO {
+ InstanceCount: ULONG,
+ Reserved: ULONG,
+}}
+pub type PTRACE_GUID_INFO = *mut TRACE_GUID_INFO;
+STRUCT!{struct PROFILE_SOURCE_INFO {
+ NextEntryOffset: ULONG,
+ Source: ULONG,
+ MinInterval: ULONG,
+ MaxInterval: ULONG,
+ Reserved: ULONG64,
+ Description: [WCHAR; ANYSIZE_ARRAY],
+}}
+pub type PPROFILE_SOURCE_INFO = *mut PROFILE_SOURCE_INFO;
+UNION!{union EVENT_TRACE_u {
+ [u32; 1],
+ ClientContext ClientContext_mut: ULONG,
+ BufferContext BufferContext_mut: ETW_BUFFER_CONTEXT,
+}}
+STRUCT!{struct EVENT_TRACE {
+ Header: EVENT_TRACE_HEADER,
+ InstanceId: ULONG,
+ ParentInstanceId: ULONG,
+ ParentGuid: GUID,
+ MofData: PVOID,
+ MofLength: ULONG,
+ u: EVENT_TRACE_u,
+}}
+pub type PEVENT_TRACE = *mut EVENT_TRACE;
+pub const EVENT_CONTROL_CODE_DISABLE_PROVIDER: ULONG = 0;
+pub const EVENT_CONTROL_CODE_ENABLE_PROVIDER: ULONG = 1;
+pub const EVENT_CONTROL_CODE_CAPTURE_STATE: ULONG = 2;
+FN!{stdcall PEVENT_TRACE_BUFFER_CALLBACKW(
+ PEVENT_TRACE_LOGFILEW,
+) -> ULONG}
+FN!{stdcall PEVENT_TRACE_BUFFER_CALLBACKA(
+ PEVENT_TRACE_LOGFILEA,
+) -> ULONG}
+FN!{stdcall PEVENT_CALLBACK(
+ pEvent: PEVENT_TRACE,
+) -> ()}
+FN!{stdcall PEVENT_RECORD_CALLBACK(
+ EventRecord: PEVENT_RECORD,
+) -> ()}
+FN!{stdcall WMIDPREQUEST(
+ RequestCode: WMIDPREQUESTCODE,
+ RequestContext: PVOID,
+ BufferSize: *mut ULONG,
+ Buffer: PVOID,
+) -> ULONG}
+UNION!{union EVENT_TRACE_LOGFILE_u1 {
+ [u32; 1],
+ LogFileMode LogFileMode_mut: ULONG,
+ ProcessTraceMode ProcessTraceMode_mut: ULONG,
+}}
+UNION!{union EVENT_TRACE_LOGFILE_u2 {
+ [u32; 1] [u64; 1],
+ EventCallback EventCallback_mut: PEVENT_CALLBACK,
+ EventRecordCallback EventRecordCallback_mut: PEVENT_RECORD_CALLBACK,
+}}
+STRUCT!{struct EVENT_TRACE_LOGFILEW {
+ LogFileName: LPWSTR,
+ LoggerName: LPWSTR,
+ CurrentTime: LONGLONG,
+ BuffersRead: ULONG,
+ u1: EVENT_TRACE_LOGFILE_u1,
+ CurrentEvent: EVENT_TRACE,
+ LogfileHeader: TRACE_LOGFILE_HEADER,
+ BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKW,
+ BufferSize: ULONG,
+ Filled: ULONG,
+ EventsLost: ULONG,
+ u2: EVENT_TRACE_LOGFILE_u2,
+ IsKernelTrace: ULONG,
+ Context: PVOID,
+}}
+pub type PEVENT_TRACE_LOGFILEW = *mut EVENT_TRACE_LOGFILEW;
+STRUCT!{struct EVENT_TRACE_LOGFILEA {
+ LogFileName: LPSTR,
+ LoggerName: LPSTR,
+ CurrentTime: LONGLONG,
+ BuffersRead: ULONG,
+ u1: EVENT_TRACE_LOGFILE_u1,
+ CurrentEvent: EVENT_TRACE,
+ LogfileHeader: TRACE_LOGFILE_HEADER,
+ BufferCallback: PEVENT_TRACE_BUFFER_CALLBACKA,
+ BufferSize: ULONG,
+ Filled: ULONG,
+ EventsLost: ULONG,
+ u2: EVENT_TRACE_LOGFILE_u2,
+ IsKernelTrace: ULONG,
+ Context: PVOID,
+}}
+pub type PEVENT_TRACE_LOGFILEA = *mut EVENT_TRACE_LOGFILEA;
+extern "system" {
+ pub fn StartTraceW(
+ SessionHandle: PTRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StartTraceA(
+ SessionHandle: PTRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StopTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn StopTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn QueryTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn QueryTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn UpdateTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn UpdateTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn FlushTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn FlushTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ) -> ULONG;
+ pub fn ControlTraceW(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCWSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ControlCode: ULONG,
+ ) -> ULONG;
+ pub fn ControlTraceA(
+ SessionHandle: TRACEHANDLE,
+ SessionName: LPCSTR,
+ Properties: PEVENT_TRACE_PROPERTIES,
+ ControlCode: ULONG,
+ ) -> ULONG;
+ pub fn QueryAllTracesW(
+ PropertyArray: *mut PEVENT_TRACE_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ SessionCount: PULONG,
+ ) -> ULONG;
+ pub fn QueryAllTracesA(
+ PropertyArray: *mut PEVENT_TRACE_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ SessionCount: PULONG,
+ ) -> ULONG;
+ pub fn EnableTrace(
+ Enable: ULONG,
+ EnableFlag: ULONG,
+ EnableLevel: ULONG,
+ ControlGuid: LPCGUID,
+ SessionHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn EnableTraceEx(
+ ProviderId: LPCGUID,
+ SourceId: LPCGUID,
+ TraceHandle: TRACEHANDLE,
+ IsEnabled: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ EnableProperty: ULONG,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ ) -> ULONG;
+}
+pub const ENABLE_TRACE_PARAMETERS_VERSION: ULONG = 1;
+pub const ENABLE_TRACE_PARAMETERS_VERSION_2: ULONG = 2;
+STRUCT!{struct ENABLE_TRACE_PARAMETERS_V1 {
+ Version: ULONG,
+ EnableProperty: ULONG,
+ ControlFlags: ULONG,
+ SourceId: GUID,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+}}
+pub type PENABLE_TRACE_PARAMETERS_V1 = *mut ENABLE_TRACE_PARAMETERS_V1;
+STRUCT!{struct ENABLE_TRACE_PARAMETERS {
+ Version: ULONG,
+ EnableProperty: ULONG,
+ ControlFlags: ULONG,
+ SourceId: GUID,
+ EnableFilterDesc: PEVENT_FILTER_DESCRIPTOR,
+ FilterDescCount: ULONG,
+}}
+pub type PENABLE_TRACE_PARAMETERS = *mut ENABLE_TRACE_PARAMETERS;
+extern "system" {
+ pub fn EnableTraceEx2(
+ TraceHandle: TRACEHANDLE,
+ ProviderId: LPCGUID,
+ ControlCode: ULONG,
+ Level: UCHAR,
+ MatchAnyKeyword: ULONGLONG,
+ MatchAllKeyword: ULONGLONG,
+ Timeout: ULONG,
+ EnableParameters: PENABLE_TRACE_PARAMETERS,
+ ) -> ULONG;
+}
+ENUM!{enum TRACE_QUERY_INFO_CLASS {
+ TraceGuidQueryList,
+ TraceGuidQueryInfo,
+ TraceGuidQueryProcess,
+ TraceStackTracingInfo,
+ TraceSystemTraceEnableFlagsInfo,
+ TraceSampledProfileIntervalInfo,
+ TraceProfileSourceConfigInfo,
+ TraceProfileSourceListInfo,
+ TracePmcEventListInfo,
+ TracePmcCounterListInfo,
+ TraceSetDisallowList,
+ TraceVersionInfo,
+ TraceGroupQueryList,
+ TraceGroupQueryInfo,
+ TraceDisallowListQuery,
+ TraceCompressionInfo,
+ TracePeriodicCaptureStateListInfo,
+ TracePeriodicCaptureStateInfo,
+ TraceProviderBinaryTracking,
+ TraceMaxLoggersQuery,
+ MaxTraceSetInfoClass,
+}}
+pub type TRACE_INFO_CLASS = TRACE_QUERY_INFO_CLASS;
+extern "system" {
+ pub fn EnumerateTraceGuidsEx(
+ TraceQueryInfoClass: TRACE_QUERY_INFO_CLASS,
+ InBuffer: PVOID,
+ InBufferSize: ULONG,
+ OutBuffer: PVOID,
+ OutBufferSize: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+}
+STRUCT!{struct CLASSIC_EVENT_ID {
+ EventGuid: GUID,
+ Type: UCHAR,
+ Reserved: [UCHAR; 7],
+}}
+pub type PCLASSIC_EVENT_ID = *mut CLASSIC_EVENT_ID;
+STRUCT!{struct TRACE_PROFILE_INTERVAL {
+ Source: ULONG,
+ Interval: ULONG,
+}}
+pub type PTRACE_PROFILE_INTERVAL = *mut TRACE_PROFILE_INTERVAL;
+STRUCT!{struct TRACE_VERSION_INFO {
+ EtwTraceProcessingVersion: UINT,
+ Reserved: UINT,
+}}
+pub type PTRACE_VERSION_INFO = *mut TRACE_VERSION_INFO;
+STRUCT!{struct TRACE_PERIODIC_CAPTURE_STATE_INFO {
+ CaptureStateFrequencyInSeconds: ULONG,
+ ProviderCount: USHORT,
+ Reserved: USHORT,
+}}
+pub type PTRACE_PERIODIC_CAPTURE_STATE_INFO = *mut TRACE_PERIODIC_CAPTURE_STATE_INFO;
+extern "system" {
+ pub fn TraceSetInformation(
+ SessionHandle: TRACEHANDLE,
+ InformationClass: TRACE_INFO_CLASS,
+ TraceInformation: PVOID,
+ InformationLength: ULONG,
+ ) -> ULONG;
+ pub fn TraceQueryInformation(
+ SessionHandle: TRACEHANDLE,
+ InformationClass: TRACE_QUERY_INFO_CLASS,
+ TraceInformation: PVOID,
+ InformationLength: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+ pub fn CreateTraceInstanceId(
+ RegHandle: HANDLE,
+ pInstInfo: PEVENT_INSTANCE_INFO,
+ ) -> ULONG;
+ pub fn TraceEvent(
+ SessionHandle: TRACEHANDLE,
+ EventTrace: PEVENT_TRACE_HEADER,
+ ) -> ULONG;
+ pub fn TraceEventInstance(
+ SessionHandle: TRACEHANDLE,
+ EventTrace: PEVENT_TRACE_HEADER,
+ pInstInfo: PEVENT_INSTANCE_INFO,
+ pParentInstInfo: PEVENT_INSTANCE_INFO,
+ ) -> ULONG;
+ pub fn RegisterTraceGuidsW(
+ RequestAddress: WMIDPREQUEST,
+ RequestContext: PVOID,
+ ControlGuid: LPCGUID,
+ GuidCount: ULONG,
+ TraceGuidReg: PTRACE_GUID_REGISTRATION,
+ MofImagePath: LPCWSTR,
+ MofResourceName: LPCWSTR,
+ RegistrationHandle: PTRACEHANDLE,
+ ) -> ULONG;
+ pub fn RegisterTraceGuidsA(
+ RequestAddress: WMIDPREQUEST,
+ RequestContext: PVOID,
+ ControlGuid: LPCGUID,
+ GuidCount: ULONG,
+ TraceGuidReg: PTRACE_GUID_REGISTRATION,
+ MofImagePath: LPCSTR,
+ MofResourceName: LPCSTR,
+ RegistrationHandle: PTRACEHANDLE,
+ ) -> ULONG;
+ pub fn EnumerateTraceGuids(
+ GuidPropertiesArray: *mut PTRACE_GUID_PROPERTIES,
+ PropertyArrayCount: ULONG,
+ GuidCount: PULONG,
+ ) -> ULONG;
+ pub fn UnregisterTraceGuids(
+ RegistrationHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn GetTraceLoggerHandle(
+ Buffer: PVOID,
+ ) -> TRACEHANDLE;
+ pub fn GetTraceEnableLevel(
+ SessionHandle: TRACEHANDLE,
+ ) -> UCHAR;
+ pub fn GetTraceEnableFlags(
+ SessionHandle: TRACEHANDLE,
+ ) -> ULONG;
+ pub fn OpenTraceW(
+ Logfile: PEVENT_TRACE_LOGFILEW,
+ ) -> TRACEHANDLE;
+ pub fn ProcessTrace(
+ HandleArray: PTRACEHANDLE,
+ HandleCount: ULONG,
+ StartTime: LPFILETIME,
+ EndTime: LPFILETIME,
+ ) -> ULONG;
+ pub fn CloseTrace(
+ TraceHandle: TRACEHANDLE,
+ ) -> ULONG;
+}
+ENUM!{enum ETW_PROCESS_HANDLE_INFO_TYPE {
+ EtwQueryPartitionInformation = 1,
+ EtwQueryProcessHandleInfoMax,
+}}
+STRUCT!{struct ETW_TRACE_PARTITION_INFORMATION {
+ PartitionId: GUID,
+ ParentId: GUID,
+ Reserved: ULONG64,
+ PartitionType: ULONG,
+}}
+pub type PETW_TRACE_PARTITION_INFORMATION = *mut ETW_TRACE_PARTITION_INFORMATION;
+extern "system" {
+ pub fn QueryTraceProcessingHandle(
+ ProcessingHandle: TRACEHANDLE,
+ InformationClass: ETW_PROCESS_HANDLE_INFO_TYPE,
+ InBuffer: PVOID,
+ InBufferSize: ULONG,
+ OutBuffer: PVOID,
+ OutBufferSize: ULONG,
+ ReturnLength: PULONG,
+ ) -> ULONG;
+ pub fn OpenTraceA(
+ Logfile: PEVENT_TRACE_LOGFILEA,
+ ) -> TRACEHANDLE;
+ pub fn SetTraceCallback(
+ pGuid: LPCGUID,
+ EventCallback: PEVENT_CALLBACK,
+ ) -> ULONG;
+ pub fn RemoveTraceCallback(
+ pGuid: LPCGUID,
+ ) -> ULONG;
+}
+extern "C" {
+ pub fn TraceMessage(
+ SessionHandle: TRACEHANDLE,
+ MessageFlags: ULONG,
+ MessageGuid: LPGUID,
+ MessageNumber: USHORT,
+ ...
+ ) -> ULONG;
+ pub fn TraceMessageVa(
+ SessionHandle: TRACEHANDLE,
+ MessageFlags: ULONG,
+ MessageGuid: LPGUID,
+ MessageNumber: USHORT,
+ MessageArgList: va_list,
+ );
+}
+pub const INVALID_PROCESSTRACE_HANDLE: TRACEHANDLE = INVALID_HANDLE_VALUE as TRACEHANDLE;
diff --git a/third_party/rust/winapi/src/shared/guiddef.rs b/third_party/rust/winapi/src/shared/guiddef.rs
new file mode 100644
index 0000000000..dcd39dcc44
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/guiddef.rs
@@ -0,0 +1,36 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! GUID definition
+use ctypes::{c_uchar, c_ulong, c_ushort};
+STRUCT!{#[debug] struct GUID {
+ Data1: c_ulong,
+ Data2: c_ushort,
+ Data3: c_ushort,
+ Data4: [c_uchar; 8],
+}}
+pub type LPGUID = *mut GUID;
+pub type LPCGUID = *const GUID;
+pub type IID = GUID;
+pub type LPIID = *mut IID;
+pub use self::IsEqualGUID as IsEqualIID;
+pub type CLSID = GUID;
+pub type LPCLSID = *mut CLSID;
+pub use self::IsEqualGUID as IsEqualCLSID;
+pub type FMTID = GUID;
+pub type LPFMTID = *mut FMTID;
+pub use self::IsEqualGUID as IsEqualFMTID;
+pub type REFGUID = *const GUID;
+pub type REFIID = *const IID;
+pub type REFCLSID = *const IID;
+pub type REFFMTID = *const IID;
+DEFINE_GUID!{IID_NULL,
+ 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
+#[inline]
+pub fn IsEqualGUID(g1: &GUID, g2: &GUID) -> bool {
+ let a = unsafe { &*(g1 as *const _ as *const [u32; 4]) };
+ let b = unsafe { &*(g2 as *const _ as *const [u32; 4]) };
+ a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3]
+}
diff --git a/third_party/rust/winapi/src/shared/hidclass.rs b/third_party/rust/winapi/src/shared/hidclass.rs
new file mode 100644
index 0000000000..c65c14faf6
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/hidclass.rs
@@ -0,0 +1,68 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, PUCHAR, UCHAR, ULONG, USHORT};
+use um::winioctl::{
+ FILE_ANY_ACCESS, FILE_DEVICE_KEYBOARD, METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_NEITHER,
+ METHOD_OUT_DIRECT,
+};
+use um::winnt::BOOLEAN;
+DEFINE_GUID!{GUID_DEVINTERFACE_HID,
+ 0x4D1E55B2, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30}
+pub const GUID_CLASS_INPUT: GUID = GUID_DEVINTERFACE_HID;
+DEFINE_GUID!{GUID_HID_INTERFACE_NOTIFY,
+ 0x2c4e2e88, 0x25e6, 0x4c33, 0x88, 0x2f, 0x3d, 0x82, 0xe6, 0x07, 0x36, 0x81}
+DEFINE_GUID!{GUID_HID_INTERFACE_HIDPARSE,
+ 0xf5c315a5, 0x69ac, 0x4bc2, 0x92, 0x79, 0xd0, 0xb6, 0x45, 0x76, 0xf4, 0x4b}
+// FIXME devpropkey stuff
+pub const HID_REVISION: DWORD = 0x00000001;
+pub const IOCTL_HID_GET_DRIVER_CONFIG: DWORD = HID_BUFFER_CTL_CODE!(100);
+pub const IOCTL_HID_SET_DRIVER_CONFIG: DWORD = HID_BUFFER_CTL_CODE!(101);
+pub const IOCTL_HID_GET_POLL_FREQUENCY_MSEC: DWORD = HID_BUFFER_CTL_CODE!(102);
+pub const IOCTL_HID_SET_POLL_FREQUENCY_MSEC: DWORD = HID_BUFFER_CTL_CODE!(103);
+pub const IOCTL_GET_NUM_DEVICE_INPUT_BUFFERS: DWORD = HID_BUFFER_CTL_CODE!(104);
+pub const IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS: DWORD = HID_BUFFER_CTL_CODE!(105);
+pub const IOCTL_HID_GET_COLLECTION_INFORMATION: DWORD = HID_BUFFER_CTL_CODE!(106);
+pub const IOCTL_HID_ENABLE_WAKE_ON_SX: DWORD = HID_BUFFER_CTL_CODE!(107);
+pub const IOCTL_HID_SET_S0_IDLE_TIMEOUT: DWORD = HID_BUFFER_CTL_CODE!(108);
+pub const IOCTL_HID_GET_COLLECTION_DESCRIPTOR: DWORD = HID_CTL_CODE!(100);
+pub const IOCTL_HID_FLUSH_QUEUE: DWORD = HID_CTL_CODE!(101);
+pub const IOCTL_HID_SET_FEATURE: DWORD = HID_IN_CTL_CODE!(100);
+pub const IOCTL_HID_SET_OUTPUT_REPORT: DWORD = HID_IN_CTL_CODE!(101);
+pub const IOCTL_HID_GET_FEATURE: DWORD = HID_OUT_CTL_CODE!(100);
+pub const IOCTL_GET_PHYSICAL_DESCRIPTOR: DWORD = HID_OUT_CTL_CODE!(102);
+pub const IOCTL_HID_GET_HARDWARE_ID: DWORD = HID_OUT_CTL_CODE!(103);
+pub const IOCTL_HID_GET_INPUT_REPORT: DWORD = HID_OUT_CTL_CODE!(104);
+pub const IOCTL_HID_GET_OUTPUT_REPORT: DWORD = HID_OUT_CTL_CODE!(105);
+pub const IOCTL_HID_GET_MANUFACTURER_STRING: DWORD = HID_OUT_CTL_CODE!(110);
+pub const IOCTL_HID_GET_PRODUCT_STRING: DWORD = HID_OUT_CTL_CODE!(111);
+pub const IOCTL_HID_GET_SERIALNUMBER_STRING: DWORD = HID_OUT_CTL_CODE!(112);
+pub const IOCTL_HID_GET_INDEXED_STRING: DWORD = HID_OUT_CTL_CODE!(120);
+pub const IOCTL_HID_GET_MS_GENRE_DESCRIPTOR: DWORD = HID_OUT_CTL_CODE!(121);
+pub const IOCTL_HID_ENABLE_SECURE_READ: DWORD = HID_CTL_CODE!(130);
+pub const IOCTL_HID_DISABLE_SECURE_READ: DWORD = HID_CTL_CODE!(131);
+pub const IOCTL_HID_DEVICERESET_NOTIFICATION: DWORD = HID_CTL_CODE!(140);
+STRUCT!{struct HID_XFER_PACKET {
+ reportBuffer: PUCHAR,
+ reportBufferLen: ULONG,
+ reportId: UCHAR,
+}}
+pub type PHID_XFER_PACKET = *mut HID_XFER_PACKET;
+//FIXME Stuff for NT_INCLUDED
+STRUCT!{struct HID_COLLECTION_INFORMATION {
+ DescriptorSize: ULONG,
+ Polled: BOOLEAN,
+ Reserved1: [UCHAR; 1],
+ VendorID: USHORT,
+ ProductID: USHORT,
+ VersionNumber: USHORT,
+}}
+pub type PHID_COLLECTION_INFORMATION = *mut HID_COLLECTION_INFORMATION;
+STRUCT!{struct HID_DRIVER_CONFIG {
+ Size: ULONG,
+ RingBufferSize: ULONG,
+}}
+pub type PHID_DRIVER_CONFIG = *mut HID_DRIVER_CONFIG;
diff --git a/third_party/rust/winapi/src/shared/hidpi.rs b/third_party/rust/winapi/src/shared/hidpi.rs
new file mode 100644
index 0000000000..ea02292536
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/hidpi.rs
@@ -0,0 +1,393 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::hidusage::{PUSAGE, USAGE};
+use shared::minwindef::{PUCHAR, PULONG, PUSHORT, UCHAR, ULONG, USHORT};
+use shared::ntdef::NTSTATUS;
+use shared::ntstatus::FACILITY_HID_ERROR_CODE;
+use um::winnt::{BOOLEAN, LONG, PCHAR, PLONG, PVOID};
+pub const HIDP_LINK_COLLECTION_ROOT: USHORT = -1i16 as u16;
+pub const HIDP_LINK_COLLECTION_UNSPECIFIED: USHORT = 0;
+ENUM!{enum HIDP_REPORT_TYPE {
+ HidP_Input,
+ HidP_Output,
+ HidP_Feature,
+}}
+STRUCT!{struct USAGE_AND_PAGE {
+ Usage: USAGE,
+ UsagePage: USAGE,
+}}
+pub type PUSAGE_AND_PAGE = *mut USAGE_AND_PAGE;
+// HidP_IsSameUsageAndPage
+STRUCT!{struct HIDP_CAPS_Range {
+ UsageMin: USAGE,
+ UsageMax: USAGE,
+ StringMin: USHORT,
+ StringMax: USHORT,
+ DesignatorMin: USHORT,
+ DesignatorMax: USHORT,
+ DataIndexMin: USHORT,
+ DataIndexMax: USHORT,
+}}
+STRUCT!{struct HIDP_CAPS_NotRange {
+ Usage: USAGE,
+ Reserved1: USAGE,
+ StringIndex: USHORT,
+ Reserved2: USHORT,
+ DesignatorIndex: USHORT,
+ Reserved3: USHORT,
+ DataIndex: USHORT,
+ Reserved4: USHORT,
+}}
+UNION!{union HIDP_CAPS_u {
+ [u16; 8],
+ Range Range_mut: HIDP_CAPS_Range,
+ NotRange NotRange_mut: HIDP_CAPS_NotRange,
+}}
+STRUCT!{struct HIDP_BUTTON_CAPS {
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
+ IsDesignatorRange: BOOLEAN,
+ IsAbsolute: BOOLEAN,
+ Reserved: [ULONG; 10],
+ u: HIDP_CAPS_u,
+}}
+pub type PHIDP_BUTTON_CAPS = *mut HIDP_BUTTON_CAPS;
+STRUCT!{struct HIDP_VALUE_CAPS {
+ UsagePage: USAGE,
+ ReportID: UCHAR,
+ IsAlias: BOOLEAN,
+ BitField: USHORT,
+ LinkCollection: USHORT,
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ IsRange: BOOLEAN,
+ IsStringRange: BOOLEAN,
+ IsDesignatorRange: BOOLEAN,
+ IsAbsolute: BOOLEAN,
+ HasNull: BOOLEAN,
+ Reserved: UCHAR,
+ BitSize: USHORT,
+ ReportCount: USHORT,
+ Reserved2: [USHORT; 5],
+ UnitsExp: ULONG,
+ Units: ULONG,
+ LogicalMin: LONG,
+ LogicalMax: LONG,
+ PhysicalMin: LONG,
+ PhysicalMax: LONG,
+ u: HIDP_CAPS_u,
+}}
+pub type PHIDP_VALUE_CAPS = *mut HIDP_VALUE_CAPS;
+STRUCT!{struct HIDP_LINK_COLLECTION_NODE {
+ LinkUsage: USAGE,
+ LinkUsagePage: USAGE,
+ Parent: USHORT,
+ NumberOfChildren: USHORT,
+ NextSibling: USHORT,
+ FirstChild: USHORT,
+ bit_fields: ULONG,
+ UserContext: PVOID,
+}}
+BITFIELD!{HIDP_LINK_COLLECTION_NODE bit_fields: ULONG [
+ CollectionType set_CollectionType[0..8],
+ IsAlias set_IsAlias[8..9],
+]}
+pub type PHIDP_LINK_COLLECTION_NODE = *mut HIDP_LINK_COLLECTION_NODE;
+pub type PHIDP_REPORT_DESCRIPTOR = PUCHAR;
+pub enum HIDP_PREPARSED_DATA {}
+pub type PHIDP_PREPARSED_DATA = *mut HIDP_PREPARSED_DATA;
+STRUCT!{struct HIDP_CAPS {
+ Usage: USAGE,
+ UsagePage: USAGE,
+ InputReportByteLength: USHORT,
+ OutputReportByteLength: USHORT,
+ FeatureReportByteLength: USHORT,
+ Reserved: [USHORT; 17],
+ NumberLinkCollectionNodes: USHORT,
+ NumberInputButtonCaps: USHORT,
+ NumberInputValueCaps: USHORT,
+ NumberInputDataIndices: USHORT,
+ NumberOutputButtonCaps: USHORT,
+ NumberOutputValueCaps: USHORT,
+ NumberOutputDataIndices: USHORT,
+ NumberFeatureButtonCaps: USHORT,
+ NumberFeatureValueCaps: USHORT,
+ NumberFeatureDataIndices: USHORT,
+}}
+pub type PHIDP_CAPS = *mut HIDP_CAPS;
+UNION!{union HIDP_DATA_u {
+ [u32; 1],
+ RawValue RawValue_mut: ULONG,
+ On On_mut: BOOLEAN,
+}}
+STRUCT!{struct HIDP_DATA {
+ DataIndex: USHORT,
+ Reserved: USHORT,
+ u: HIDP_DATA_u,
+}}
+pub type PHIDP_DATA = *mut HIDP_DATA;
+STRUCT!{struct HIDP_UNKNOWN_TOKEN {
+ Token: UCHAR,
+ Reserved: [UCHAR; 3],
+ BitField: ULONG,
+}}
+pub type PHIDP_UNKNOWN_TOKEN = *mut HIDP_UNKNOWN_TOKEN;
+STRUCT!{struct HIDP_EXTENDED_ATTRIBUTES {
+ NumGlobalUnknowns: UCHAR,
+ Reserved: [UCHAR; 3],
+ GlobalUnknowns: PHIDP_UNKNOWN_TOKEN,
+ Data: [ULONG; 1],
+}}
+pub type PHIDP_EXTENDED_ATTRIBUTES = *mut HIDP_EXTENDED_ATTRIBUTES;
+extern "system" {
+ pub fn HidP_GetCaps(
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Capabilities: PHIDP_CAPS,
+ ) -> NTSTATUS;
+ pub fn HidP_GetLinkCollectionNodes(
+ LinkCollectionNodes: PHIDP_LINK_COLLECTION_NODE,
+ LinkCollectionNodesLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetSpecificButtonCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ ButtonCaps: PHIDP_BUTTON_CAPS,
+ ButtonCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetButtonCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ ButtonCaps: PHIDP_BUTTON_CAPS,
+ ButtonCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetSpecificValueCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ ValueCaps: PHIDP_VALUE_CAPS,
+ ValueCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetValueCaps(
+ ReportType: HIDP_REPORT_TYPE,
+ ValueCaps: PHIDP_VALUE_CAPS,
+ ValueCapsLength: PUSHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> NTSTATUS;
+ pub fn HidP_GetExtendedAttributes(
+ ReportType: HIDP_REPORT_TYPE,
+ DataIndex: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Attributes: PHIDP_EXTENDED_ATTRIBUTES,
+ LengthAttributes: PULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_InitializeReportForID(
+ ReportType: HIDP_REPORT_TYPE,
+ ReportID: UCHAR,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetData(
+ ReportType: HIDP_REPORT_TYPE,
+ DataList: PHIDP_DATA,
+ DataLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetData(
+ ReportType: HIDP_REPORT_TYPE,
+ DataList: PHIDP_DATA,
+ DataLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_MaxDataListLength(
+ ReportType: HIDP_REPORT_TYPE,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> ULONG;
+ pub fn HidP_SetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_UnsetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsages(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ UsageList: PUSAGE,
+ UsageLength: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsagesEx(
+ ReportType: HIDP_REPORT_TYPE,
+ LinkCollection: USHORT,
+ ButtonList: PUSAGE_AND_PAGE,
+ UsageLength: *mut ULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_MaxUsageListLength(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> ULONG;
+ pub fn HidP_SetUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: ULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetScaledUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: LONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_SetUsageValueArray(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PCHAR,
+ UsageValueByteLength: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PULONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetScaledUsageValue(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PLONG,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_GetUsageValueArray(
+ ReportType: HIDP_REPORT_TYPE,
+ UsagePage: USAGE,
+ LinkCollection: USHORT,
+ Usage: USAGE,
+ UsageValue: PCHAR,
+ UsageValueByteLength: USHORT,
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ Report: PCHAR,
+ ReportLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_UsageListDifference(
+ PreviousUsageList: PUSAGE,
+ CurrentUsageList: PUSAGE,
+ BreakUsageList: PUSAGE,
+ MakeUsageList: PUSAGE,
+ UsageListLength: ULONG,
+ ) -> NTSTATUS;
+ pub fn HidP_TranslateUsagesToI8042ScanCodes(
+ ChangedUsageList: PUSAGE,
+ UsageListLength: ULONG,
+ KeyAction: HIDP_KEYBOARD_DIRECTION,
+ ModifierState: PHIDP_KEYBOARD_MODIFIER_STATE,
+ InsertCodesProcedure: PHIDP_INSERT_SCANCODES,
+ InsertCodesContext: PVOID,
+ ) -> NTSTATUS;
+}
+ENUM!{enum HIDP_KEYBOARD_DIRECTION {
+ HidP_Keyboard_Break,
+ HidP_Keyboard_Make,
+}}
+STRUCT!{struct HIDP_KEYBOARD_MODIFIER_STATE {
+ ul: ULONG,
+}}
+BITFIELD!{HIDP_KEYBOARD_MODIFIER_STATE ul: ULONG [
+ LeftControl set_LeftControl[0..1],
+ LeftShift set_LeftShift[1..2],
+ LeftAlt set_LeftAlt[2..3],
+ LeftGUI set_LeftGUI[3..4],
+ RightControl set_RightControl[4..5],
+ RightShift set_RightShift[5..6],
+ RightAlt set_RightAlt[6..7],
+ RigthGUI set_RigthGUI[7..8],
+ CapsLock set_CapsLock[8..9],
+ ScollLock set_ScollLock[9..10],
+ NumLock set_NumLock[10..11],
+]}
+pub type PHIDP_KEYBOARD_MODIFIER_STATE = *mut HIDP_KEYBOARD_MODIFIER_STATE;
+FN!{stdcall PHIDP_INSERT_SCANCODES(
+ Context: PVOID,
+ NewScanCodes: PCHAR,
+ Length: ULONG,
+) -> BOOLEAN}
+pub const HIDP_STATUS_SUCCESS: NTSTATUS = HIDP_ERROR_CODES!(0x0, 0);
+pub const HIDP_STATUS_NULL: NTSTATUS = HIDP_ERROR_CODES!(0x8, 1);
+pub const HIDP_STATUS_INVALID_PREPARSED_DATA: NTSTATUS = HIDP_ERROR_CODES!(0xC, 1);
+pub const HIDP_STATUS_INVALID_REPORT_TYPE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 2);
+pub const HIDP_STATUS_INVALID_REPORT_LENGTH: NTSTATUS = HIDP_ERROR_CODES!(0xC, 3);
+pub const HIDP_STATUS_USAGE_NOT_FOUND: NTSTATUS = HIDP_ERROR_CODES!(0xC, 4);
+pub const HIDP_STATUS_VALUE_OUT_OF_RANGE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 5);
+pub const HIDP_STATUS_BAD_LOG_PHY_VALUES: NTSTATUS = HIDP_ERROR_CODES!(0xC, 6);
+pub const HIDP_STATUS_BUFFER_TOO_SMALL: NTSTATUS = HIDP_ERROR_CODES!(0xC, 7);
+pub const HIDP_STATUS_INTERNAL_ERROR: NTSTATUS = HIDP_ERROR_CODES!(0xC, 8);
+pub const HIDP_STATUS_I8042_TRANS_UNKNOWN: NTSTATUS = HIDP_ERROR_CODES!(0xC, 9);
+pub const HIDP_STATUS_INCOMPATIBLE_REPORT_ID: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xA);
+pub const HIDP_STATUS_NOT_VALUE_ARRAY: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xB);
+pub const HIDP_STATUS_IS_VALUE_ARRAY: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xC);
+pub const HIDP_STATUS_DATA_INDEX_NOT_FOUND: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xD);
+pub const HIDP_STATUS_DATA_INDEX_OUT_OF_RANGE: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xE);
+pub const HIDP_STATUS_BUTTON_NOT_PRESSED: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0xF);
+pub const HIDP_STATUS_REPORT_DOES_NOT_EXIST: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0x10);
+pub const HIDP_STATUS_NOT_IMPLEMENTED: NTSTATUS = HIDP_ERROR_CODES!(0xC, 0x20);
+pub const HIDP_STATUS_I8242_TRANS_UNKNOWN: NTSTATUS = HIDP_STATUS_I8042_TRANS_UNKNOWN;
diff --git a/third_party/rust/winapi/src/shared/hidsdi.rs b/third_party/rust/winapi/src/shared/hidsdi.rs
new file mode 100644
index 0000000000..ebdd3ed4fb
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/hidsdi.rs
@@ -0,0 +1,110 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::LPGUID;
+use shared::hidpi::PHIDP_PREPARSED_DATA;
+use shared::minwindef::{PULONG, ULONG, USHORT};
+use um::winnt::{BOOLEAN, HANDLE, PVOID};
+STRUCT!{struct HIDD_CONFIGURATION {
+ cookie: PVOID,
+ size: ULONG,
+ RingBufferSize: ULONG,
+}}
+pub type PHIDD_CONFIGURATION = *mut HIDD_CONFIGURATION;
+STRUCT!{struct HIDD_ATTRIBUTES {
+ Size: ULONG,
+ VendorID: USHORT,
+ ProductID: USHORT,
+ VersionNumber: USHORT,
+}}
+pub type PHIDD_ATTRIBUTES = *mut HIDD_ATTRIBUTES;
+extern "system" {
+ pub fn HidD_GetAttributes(
+ HidDeviceObject: HANDLE,
+ Attributes: PHIDD_ATTRIBUTES,
+ ) -> BOOLEAN;
+ pub fn HidD_GetHidGuid(
+ HidGuid: LPGUID,
+ );
+ pub fn HidD_GetPreparsedData(
+ HidDeviceObject: HANDLE,
+ PreparsedData: *mut PHIDP_PREPARSED_DATA,
+ ) -> BOOLEAN;
+ pub fn HidD_FreePreparsedData(
+ PreparsedData: PHIDP_PREPARSED_DATA,
+ ) -> BOOLEAN;
+ pub fn HidD_FlushQueue(
+ HidDeviceObject: HANDLE,
+ ) -> BOOLEAN;
+ pub fn HidD_GetConfiguration(
+ HidDeviceObject: HANDLE,
+ Configuration: PHIDD_CONFIGURATION,
+ ConfigurationLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetConfiguration(
+ HidDeviceObject: HANDLE,
+ Configuration: PHIDD_CONFIGURATION,
+ ConfigurationLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetFeature(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetFeature(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetInputReport(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetOutputReport(
+ HidDeviceObject: HANDLE,
+ ReportBuffer: PVOID,
+ ReportBufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetNumInputBuffers(
+ HidDeviceObject: HANDLE,
+ NumberBuffers: PULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_SetNumInputBuffers(
+ HidDeviceObject: HANDLE,
+ NumberBuffers: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetPhysicalDescriptor(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetManufacturerString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetProductString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetIndexedString(
+ HidDeviceObject: HANDLE,
+ StringIndex: ULONG,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetSerialNumberString(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+ pub fn HidD_GetMsGenreDescriptor(
+ HidDeviceObject: HANDLE,
+ Buffer: PVOID,
+ BufferLength: ULONG,
+ ) -> BOOLEAN;
+}
diff --git a/third_party/rust/winapi/src/shared/hidusage.rs b/third_party/rust/winapi/src/shared/hidusage.rs
new file mode 100644
index 0000000000..a483bf27d9
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/hidusage.rs
@@ -0,0 +1,274 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::minwindef::USHORT;
+pub type USAGE = USHORT;
+pub type PUSAGE = *mut USAGE;
+pub const HID_USAGE_PAGE_UNDEFINED: USAGE = 0x00;
+pub const HID_USAGE_PAGE_GENERIC: USAGE = 0x01;
+pub const HID_USAGE_PAGE_SIMULATION: USAGE = 0x02;
+pub const HID_USAGE_PAGE_VR: USAGE = 0x03;
+pub const HID_USAGE_PAGE_SPORT: USAGE = 0x04;
+pub const HID_USAGE_PAGE_GAME: USAGE = 0x05;
+pub const HID_USAGE_PAGE_KEYBOARD: USAGE = 0x07;
+pub const HID_USAGE_PAGE_LED: USAGE = 0x08;
+pub const HID_USAGE_PAGE_BUTTON: USAGE = 0x09;
+pub const HID_USAGE_PAGE_ORDINAL: USAGE = 0x0A;
+pub const HID_USAGE_PAGE_TELEPHONY: USAGE = 0x0B;
+pub const HID_USAGE_PAGE_CONSUMER: USAGE = 0x0C;
+pub const HID_USAGE_PAGE_DIGITIZER: USAGE = 0x0D;
+pub const HID_USAGE_PAGE_UNICODE: USAGE = 0x10;
+pub const HID_USAGE_PAGE_ALPHANUMERIC: USAGE = 0x14;
+pub const HID_USAGE_PAGE_SENSOR: USAGE = 0x20;
+pub const HID_USAGE_PAGE_BARCODE_SCANNER: USAGE = 0x8C;
+pub const HID_USAGE_PAGE_WEIGHING_DEVICE: USAGE = 0x8D;
+pub const HID_USAGE_PAGE_MAGNETIC_STRIPE_READER: USAGE = 0x8E;
+pub const HID_USAGE_PAGE_CAMERA_CONTROL: USAGE = 0x90;
+pub const HID_USAGE_PAGE_MICROSOFT_BLUETOOTH_HANDSFREE: USAGE = 0xFFF3;
+pub const HID_USAGE_PAGE_VENDOR_DEFINED_BEGIN: USAGE = 0xFF00;
+pub const HID_USAGE_PAGE_VENDOR_DEFINED_END: USAGE = 0xFFFF;
+pub const HID_USAGE_GENERIC_POINTER: USAGE = 0x01;
+pub const HID_USAGE_GENERIC_MOUSE: USAGE = 0x02;
+pub const HID_USAGE_GENERIC_JOYSTICK: USAGE = 0x04;
+pub const HID_USAGE_GENERIC_GAMEPAD: USAGE = 0x05;
+pub const HID_USAGE_GENERIC_KEYBOARD: USAGE = 0x06;
+pub const HID_USAGE_GENERIC_KEYPAD: USAGE = 0x07;
+pub const HID_USAGE_GENERIC_PORTABLE_DEVICE_CONTROL: USAGE = 0x0D;
+pub const HID_USAGE_GENERIC_SYSTEM_CTL: USAGE = 0x80;
+pub const HID_USAGE_GENERIC_X: USAGE = 0x30;
+pub const HID_USAGE_GENERIC_Y: USAGE = 0x31;
+pub const HID_USAGE_GENERIC_Z: USAGE = 0x32;
+pub const HID_USAGE_GENERIC_RX: USAGE = 0x33;
+pub const HID_USAGE_GENERIC_RY: USAGE = 0x34;
+pub const HID_USAGE_GENERIC_RZ: USAGE = 0x35;
+pub const HID_USAGE_GENERIC_SLIDER: USAGE = 0x36;
+pub const HID_USAGE_GENERIC_DIAL: USAGE = 0x37;
+pub const HID_USAGE_GENERIC_WHEEL: USAGE = 0x38;
+pub const HID_USAGE_GENERIC_HATSWITCH: USAGE = 0x39;
+pub const HID_USAGE_GENERIC_COUNTED_BUFFER: USAGE = 0x3A;
+pub const HID_USAGE_GENERIC_BYTE_COUNT: USAGE = 0x3B;
+pub const HID_USAGE_GENERIC_MOTION_WAKEUP: USAGE = 0x3C;
+pub const HID_USAGE_GENERIC_VX: USAGE = 0x40;
+pub const HID_USAGE_GENERIC_VY: USAGE = 0x41;
+pub const HID_USAGE_GENERIC_VZ: USAGE = 0x42;
+pub const HID_USAGE_GENERIC_VBRX: USAGE = 0x43;
+pub const HID_USAGE_GENERIC_VBRY: USAGE = 0x44;
+pub const HID_USAGE_GENERIC_VBRZ: USAGE = 0x45;
+pub const HID_USAGE_GENERIC_VNO: USAGE = 0x46;
+pub const HID_USAGE_GENERIC_RESOLUTION_MULTIPLIER: USAGE = 0x48;
+pub const HID_USAGE_GENERIC_SYSCTL_POWER: USAGE = 0x81;
+pub const HID_USAGE_GENERIC_SYSCTL_SLEEP: USAGE = 0x82;
+pub const HID_USAGE_GENERIC_SYSCTL_WAKE: USAGE = 0x83;
+pub const HID_USAGE_GENERIC_SYSCTL_CONTEXT_MENU: USAGE = 0x84;
+pub const HID_USAGE_GENERIC_SYSCTL_MAIN_MENU: USAGE = 0x85;
+pub const HID_USAGE_GENERIC_SYSCTL_APP_MENU: USAGE = 0x86;
+pub const HID_USAGE_GENERIC_SYSCTL_HELP_MENU: USAGE = 0x87;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_EXIT: USAGE = 0x88;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_SELECT: USAGE = 0x89;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_RIGHT: USAGE = 0x8A;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_LEFT: USAGE = 0x8B;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_UP: USAGE = 0x8C;
+pub const HID_USAGE_GENERIC_SYSCTL_MENU_DOWN: USAGE = 0x8D;
+pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_BUTTON: USAGE = 0xC9;
+pub const HID_USAGE_GENERIC_SYSTEM_DISPLAY_ROTATION_LOCK_SLIDER_SWITCH: USAGE = 0xCA;
+pub const HID_USAGE_GENERIC_CONTROL_ENABLE: USAGE = 0xCB;
+pub const HID_USAGE_SIMULATION_RUDDER: USAGE = 0xBA;
+pub const HID_USAGE_SIMULATION_THROTTLE: USAGE = 0xBB;
+pub const HID_USAGE_KEYBOARD_NOEVENT: USAGE = 0x00;
+pub const HID_USAGE_KEYBOARD_ROLLOVER: USAGE = 0x01;
+pub const HID_USAGE_KEYBOARD_POSTFAIL: USAGE = 0x02;
+pub const HID_USAGE_KEYBOARD_UNDEFINED: USAGE = 0x03;
+pub const HID_USAGE_KEYBOARD_aA: USAGE = 0x04;
+pub const HID_USAGE_KEYBOARD_zZ: USAGE = 0x1D;
+pub const HID_USAGE_KEYBOARD_ONE: USAGE = 0x1E;
+pub const HID_USAGE_KEYBOARD_ZERO: USAGE = 0x27;
+pub const HID_USAGE_KEYBOARD_LCTRL: USAGE = 0xE0;
+pub const HID_USAGE_KEYBOARD_LSHFT: USAGE = 0xE1;
+pub const HID_USAGE_KEYBOARD_LALT: USAGE = 0xE2;
+pub const HID_USAGE_KEYBOARD_LGUI: USAGE = 0xE3;
+pub const HID_USAGE_KEYBOARD_RCTRL: USAGE = 0xE4;
+pub const HID_USAGE_KEYBOARD_RSHFT: USAGE = 0xE5;
+pub const HID_USAGE_KEYBOARD_RALT: USAGE = 0xE6;
+pub const HID_USAGE_KEYBOARD_RGUI: USAGE = 0xE7;
+pub const HID_USAGE_KEYBOARD_SCROLL_LOCK: USAGE = 0x47;
+pub const HID_USAGE_KEYBOARD_NUM_LOCK: USAGE = 0x53;
+pub const HID_USAGE_KEYBOARD_CAPS_LOCK: USAGE = 0x39;
+pub const HID_USAGE_KEYBOARD_F1: USAGE = 0x3A;
+pub const HID_USAGE_KEYBOARD_F2: USAGE = 0x3B;
+pub const HID_USAGE_KEYBOARD_F3: USAGE = 0x3C;
+pub const HID_USAGE_KEYBOARD_F4: USAGE = 0x3D;
+pub const HID_USAGE_KEYBOARD_F5: USAGE = 0x3E;
+pub const HID_USAGE_KEYBOARD_F6: USAGE = 0x3F;
+pub const HID_USAGE_KEYBOARD_F7: USAGE = 0x40;
+pub const HID_USAGE_KEYBOARD_F8: USAGE = 0x41;
+pub const HID_USAGE_KEYBOARD_F9: USAGE = 0x42;
+pub const HID_USAGE_KEYBOARD_F10: USAGE = 0x43;
+pub const HID_USAGE_KEYBOARD_F11: USAGE = 0x44;
+pub const HID_USAGE_KEYBOARD_F12: USAGE = 0x45;
+pub const HID_USAGE_KEYBOARD_F13: USAGE = 0x68;
+pub const HID_USAGE_KEYBOARD_F14: USAGE = 0x69;
+pub const HID_USAGE_KEYBOARD_F15: USAGE = 0x6A;
+pub const HID_USAGE_KEYBOARD_F16: USAGE = 0x6B;
+pub const HID_USAGE_KEYBOARD_F17: USAGE = 0x6C;
+pub const HID_USAGE_KEYBOARD_F18: USAGE = 0x6D;
+pub const HID_USAGE_KEYBOARD_F19: USAGE = 0x6E;
+pub const HID_USAGE_KEYBOARD_F20: USAGE = 0x6F;
+pub const HID_USAGE_KEYBOARD_F21: USAGE = 0x70;
+pub const HID_USAGE_KEYBOARD_F22: USAGE = 0x71;
+pub const HID_USAGE_KEYBOARD_F23: USAGE = 0x72;
+pub const HID_USAGE_KEYBOARD_F24: USAGE = 0x73;
+pub const HID_USAGE_KEYBOARD_RETURN: USAGE = 0x28;
+pub const HID_USAGE_KEYBOARD_ESCAPE: USAGE = 0x29;
+pub const HID_USAGE_KEYBOARD_DELETE: USAGE = 0x2A;
+pub const HID_USAGE_KEYBOARD_PRINT_SCREEN: USAGE = 0x46;
+pub const HID_USAGE_KEYBOARD_DELETE_FORWARD: USAGE = 0x4C;
+pub const HID_USAGE_LED_NUM_LOCK: USAGE = 0x01;
+pub const HID_USAGE_LED_CAPS_LOCK: USAGE = 0x02;
+pub const HID_USAGE_LED_SCROLL_LOCK: USAGE = 0x03;
+pub const HID_USAGE_LED_COMPOSE: USAGE = 0x04;
+pub const HID_USAGE_LED_KANA: USAGE = 0x05;
+pub const HID_USAGE_LED_POWER: USAGE = 0x06;
+pub const HID_USAGE_LED_SHIFT: USAGE = 0x07;
+pub const HID_USAGE_LED_DO_NOT_DISTURB: USAGE = 0x08;
+pub const HID_USAGE_LED_MUTE: USAGE = 0x09;
+pub const HID_USAGE_LED_TONE_ENABLE: USAGE = 0x0A;
+pub const HID_USAGE_LED_HIGH_CUT_FILTER: USAGE = 0x0B;
+pub const HID_USAGE_LED_LOW_CUT_FILTER: USAGE = 0x0C;
+pub const HID_USAGE_LED_EQUALIZER_ENABLE: USAGE = 0x0D;
+pub const HID_USAGE_LED_SOUND_FIELD_ON: USAGE = 0x0E;
+pub const HID_USAGE_LED_SURROUND_FIELD_ON: USAGE = 0x0F;
+pub const HID_USAGE_LED_REPEAT: USAGE = 0x10;
+pub const HID_USAGE_LED_STEREO: USAGE = 0x11;
+pub const HID_USAGE_LED_SAMPLING_RATE_DETECT: USAGE = 0x12;
+pub const HID_USAGE_LED_SPINNING: USAGE = 0x13;
+pub const HID_USAGE_LED_CAV: USAGE = 0x14;
+pub const HID_USAGE_LED_CLV: USAGE = 0x15;
+pub const HID_USAGE_LED_RECORDING_FORMAT_DET: USAGE = 0x16;
+pub const HID_USAGE_LED_OFF_HOOK: USAGE = 0x17;
+pub const HID_USAGE_LED_RING: USAGE = 0x18;
+pub const HID_USAGE_LED_MESSAGE_WAITING: USAGE = 0x19;
+pub const HID_USAGE_LED_DATA_MODE: USAGE = 0x1A;
+pub const HID_USAGE_LED_BATTERY_OPERATION: USAGE = 0x1B;
+pub const HID_USAGE_LED_BATTERY_OK: USAGE = 0x1C;
+pub const HID_USAGE_LED_BATTERY_LOW: USAGE = 0x1D;
+pub const HID_USAGE_LED_SPEAKER: USAGE = 0x1E;
+pub const HID_USAGE_LED_HEAD_SET: USAGE = 0x1F;
+pub const HID_USAGE_LED_HOLD: USAGE = 0x20;
+pub const HID_USAGE_LED_MICROPHONE: USAGE = 0x21;
+pub const HID_USAGE_LED_COVERAGE: USAGE = 0x22;
+pub const HID_USAGE_LED_NIGHT_MODE: USAGE = 0x23;
+pub const HID_USAGE_LED_SEND_CALLS: USAGE = 0x24;
+pub const HID_USAGE_LED_CALL_PICKUP: USAGE = 0x25;
+pub const HID_USAGE_LED_CONFERENCE: USAGE = 0x26;
+pub const HID_USAGE_LED_STAND_BY: USAGE = 0x27;
+pub const HID_USAGE_LED_CAMERA_ON: USAGE = 0x28;
+pub const HID_USAGE_LED_CAMERA_OFF: USAGE = 0x29;
+pub const HID_USAGE_LED_ON_LINE: USAGE = 0x2A;
+pub const HID_USAGE_LED_OFF_LINE: USAGE = 0x2B;
+pub const HID_USAGE_LED_BUSY: USAGE = 0x2C;
+pub const HID_USAGE_LED_READY: USAGE = 0x2D;
+pub const HID_USAGE_LED_PAPER_OUT: USAGE = 0x2E;
+pub const HID_USAGE_LED_PAPER_JAM: USAGE = 0x2F;
+pub const HID_USAGE_LED_REMOTE: USAGE = 0x30;
+pub const HID_USAGE_LED_FORWARD: USAGE = 0x31;
+pub const HID_USAGE_LED_REVERSE: USAGE = 0x32;
+pub const HID_USAGE_LED_STOP: USAGE = 0x33;
+pub const HID_USAGE_LED_REWIND: USAGE = 0x34;
+pub const HID_USAGE_LED_FAST_FORWARD: USAGE = 0x35;
+pub const HID_USAGE_LED_PLAY: USAGE = 0x36;
+pub const HID_USAGE_LED_PAUSE: USAGE = 0x37;
+pub const HID_USAGE_LED_RECORD: USAGE = 0x38;
+pub const HID_USAGE_LED_ERROR: USAGE = 0x39;
+pub const HID_USAGE_LED_SELECTED_INDICATOR: USAGE = 0x3A;
+pub const HID_USAGE_LED_IN_USE_INDICATOR: USAGE = 0x3B;
+pub const HID_USAGE_LED_MULTI_MODE_INDICATOR: USAGE = 0x3C;
+pub const HID_USAGE_LED_INDICATOR_ON: USAGE = 0x3D;
+pub const HID_USAGE_LED_INDICATOR_FLASH: USAGE = 0x3E;
+pub const HID_USAGE_LED_INDICATOR_SLOW_BLINK: USAGE = 0x3F;
+pub const HID_USAGE_LED_INDICATOR_FAST_BLINK: USAGE = 0x40;
+pub const HID_USAGE_LED_INDICATOR_OFF: USAGE = 0x41;
+pub const HID_USAGE_LED_FLASH_ON_TIME: USAGE = 0x42;
+pub const HID_USAGE_LED_SLOW_BLINK_ON_TIME: USAGE = 0x43;
+pub const HID_USAGE_LED_SLOW_BLINK_OFF_TIME: USAGE = 0x44;
+pub const HID_USAGE_LED_FAST_BLINK_ON_TIME: USAGE = 0x45;
+pub const HID_USAGE_LED_FAST_BLINK_OFF_TIME: USAGE = 0x46;
+pub const HID_USAGE_LED_INDICATOR_COLOR: USAGE = 0x47;
+pub const HID_USAGE_LED_RED: USAGE = 0x48;
+pub const HID_USAGE_LED_GREEN: USAGE = 0x49;
+pub const HID_USAGE_LED_AMBER: USAGE = 0x4A;
+pub const HID_USAGE_LED_GENERIC_INDICATOR: USAGE = 0x4B;
+pub const HID_USAGE_TELEPHONY_PHONE: USAGE = 0x01;
+pub const HID_USAGE_TELEPHONY_ANSWERING_MACHINE: USAGE = 0x02;
+pub const HID_USAGE_TELEPHONY_MESSAGE_CONTROLS: USAGE = 0x03;
+pub const HID_USAGE_TELEPHONY_HANDSET: USAGE = 0x04;
+pub const HID_USAGE_TELEPHONY_HEADSET: USAGE = 0x05;
+pub const HID_USAGE_TELEPHONY_KEYPAD: USAGE = 0x06;
+pub const HID_USAGE_TELEPHONY_PROGRAMMABLE_BUTTON: USAGE = 0x07;
+pub const HID_USAGE_TELEPHONY_REDIAL: USAGE = 0x24;
+pub const HID_USAGE_TELEPHONY_TRANSFER: USAGE = 0x25;
+pub const HID_USAGE_TELEPHONY_DROP: USAGE = 0x26;
+pub const HID_USAGE_TELEPHONY_LINE: USAGE = 0x2A;
+pub const HID_USAGE_TELEPHONY_RING_ENABLE: USAGE = 0x2D;
+pub const HID_USAGE_TELEPHONY_SEND: USAGE = 0x31;
+pub const HID_USAGE_TELEPHONY_KEYPAD_0: USAGE = 0xB0;
+pub const HID_USAGE_TELEPHONY_KEYPAD_D: USAGE = 0xBF;
+pub const HID_USAGE_TELEPHONY_HOST_AVAILABLE: USAGE = 0xF1;
+pub const HID_USAGE_CONSUMERCTRL: USAGE = 0x01;
+pub const HID_USAGE_CONSUMER_CHANNEL_INCREMENT: USAGE = 0x9C;
+pub const HID_USAGE_CONSUMER_CHANNEL_DECREMENT: USAGE = 0x9D;
+pub const HID_USAGE_CONSUMER_PLAY: USAGE = 0xB0;
+pub const HID_USAGE_CONSUMER_PAUSE: USAGE = 0xB1;
+pub const HID_USAGE_CONSUMER_RECORD: USAGE = 0xB2;
+pub const HID_USAGE_CONSUMER_FAST_FORWARD: USAGE = 0xB3;
+pub const HID_USAGE_CONSUMER_REWIND: USAGE = 0xB4;
+pub const HID_USAGE_CONSUMER_SCAN_NEXT_TRACK: USAGE = 0xB5;
+pub const HID_USAGE_CONSUMER_SCAN_PREV_TRACK: USAGE = 0xB6;
+pub const HID_USAGE_CONSUMER_STOP: USAGE = 0xB7;
+pub const HID_USAGE_CONSUMER_PLAY_PAUSE: USAGE = 0xCD;
+pub const HID_USAGE_CONSUMER_VOLUME: USAGE = 0xE0;
+pub const HID_USAGE_CONSUMER_BALANCE: USAGE = 0xE1;
+pub const HID_USAGE_CONSUMER_MUTE: USAGE = 0xE2;
+pub const HID_USAGE_CONSUMER_BASS: USAGE = 0xE3;
+pub const HID_USAGE_CONSUMER_TREBLE: USAGE = 0xE4;
+pub const HID_USAGE_CONSUMER_BASS_BOOST: USAGE = 0xE5;
+pub const HID_USAGE_CONSUMER_SURROUND_MODE: USAGE = 0xE6;
+pub const HID_USAGE_CONSUMER_LOUDNESS: USAGE = 0xE7;
+pub const HID_USAGE_CONSUMER_MPX: USAGE = 0xE8;
+pub const HID_USAGE_CONSUMER_VOLUME_INCREMENT: USAGE = 0xE9;
+pub const HID_USAGE_CONSUMER_VOLUME_DECREMENT: USAGE = 0xEA;
+pub const HID_USAGE_CONSUMER_BASS_INCREMENT: USAGE = 0x152;
+pub const HID_USAGE_CONSUMER_BASS_DECREMENT: USAGE = 0x153;
+pub const HID_USAGE_CONSUMER_TREBLE_INCREMENT: USAGE = 0x154;
+pub const HID_USAGE_CONSUMER_TREBLE_DECREMENT: USAGE = 0x155;
+pub const HID_USAGE_CONSUMER_AL_CONFIGURATION: USAGE = 0x183;
+pub const HID_USAGE_CONSUMER_AL_EMAIL: USAGE = 0x18A;
+pub const HID_USAGE_CONSUMER_AL_CALCULATOR: USAGE = 0x192;
+pub const HID_USAGE_CONSUMER_AL_BROWSER: USAGE = 0x194;
+pub const HID_USAGE_CONSUMER_AC_SEARCH: USAGE = 0x221;
+pub const HID_USAGE_CONSUMER_AC_GOTO: USAGE = 0x222;
+pub const HID_USAGE_CONSUMER_AC_HOME: USAGE = 0x223;
+pub const HID_USAGE_CONSUMER_AC_BACK: USAGE = 0x224;
+pub const HID_USAGE_CONSUMER_AC_FORWARD: USAGE = 0x225;
+pub const HID_USAGE_CONSUMER_AC_STOP: USAGE = 0x226;
+pub const HID_USAGE_CONSUMER_AC_REFRESH: USAGE = 0x227;
+pub const HID_USAGE_CONSUMER_AC_PREVIOUS: USAGE = 0x228;
+pub const HID_USAGE_CONSUMER_AC_NEXT: USAGE = 0x229;
+pub const HID_USAGE_CONSUMER_AC_BOOKMARKS: USAGE = 0x22A;
+pub const HID_USAGE_CONSUMER_AC_PAN: USAGE = 0x238;
+pub const HID_USAGE_CONSUMER_EXTENDED_KEYBOARD_ATTRIBUTES_COLLECTION: USAGE = 0x2C0;
+pub const HID_USAGE_CONSUMER_KEYBOARD_FORM_FACTOR: USAGE = 0x2C1;
+pub const HID_USAGE_CONSUMER_KEYBOARD_KEY_TYPE: USAGE = 0x2C2;
+pub const HID_USAGE_CONSUMER_KEYBOARD_PHYSICAL_LAYOUT: USAGE = 0x2C3;
+pub const HID_USAGE_CONSUMER_VENDOR_SPECIFIC_KEYBOARD_PHYSICAL_LAYOUT: USAGE = 0x2C4;
+pub const HID_USAGE_CONSUMER_KEYBOARD_IETF_LANGUAGE_TAG_INDEX: USAGE = 0x2C5;
+pub const HID_USAGE_CONSUMER_IMPLEMENTED_KEYBOARD_INPUT_ASSIST_CONTROLS: USAGE = 0x2C6;
+pub const HID_USAGE_DIGITIZER_PEN: USAGE = 0x02;
+pub const HID_USAGE_DIGITIZER_IN_RANGE: USAGE = 0x32;
+pub const HID_USAGE_DIGITIZER_TIP_SWITCH: USAGE = 0x42;
+pub const HID_USAGE_DIGITIZER_BARREL_SWITCH: USAGE = 0x44;
+pub const HID_USAGE_CAMERA_AUTO_FOCUS: USAGE = 0x20;
+pub const HID_USAGE_CAMERA_SHUTTER: USAGE = 0x21;
+pub const HID_USAGE_MS_BTH_HF_DIALNUMBER: USAGE = 0x21;
+pub const HID_USAGE_MS_BTH_HF_DIALMEMORY: USAGE = 0x22;
diff --git a/third_party/rust/winapi/src/shared/ifdef.rs b/third_party/rust/winapi/src/shared/ifdef.rs
new file mode 100644
index 0000000000..fa1e1bcef8
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ifdef.rs
@@ -0,0 +1,208 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{UINT16, UINT32, ULONG32, ULONG64};
+use shared::guiddef::GUID;
+use shared::ntdef::{BOOLEAN, UCHAR, ULONG, USHORT, WCHAR};
+pub type NET_IF_COMPARTMENT_ID = UINT32;
+pub type PNET_IF_COMPARTMENT_ID = *mut NET_IF_COMPARTMENT_ID;
+pub const NET_IF_COMPARTMENT_ID_UNSPECIFIED: NET_IF_COMPARTMENT_ID = 0;
+pub const NET_IF_COMPARTMENT_ID_PRIMARY: NET_IF_COMPARTMENT_ID = 1;
+pub type NET_IF_NETWORK_GUID = GUID;
+pub type PNET_IF_NETWORK_GUID = *mut NET_IF_NETWORK_GUID;
+ENUM!{enum NET_IF_OPER_STATUS {
+ NET_IF_OPER_STATUS_UP = 1,
+ NET_IF_OPER_STATUS_DOWN = 2,
+ NET_IF_OPER_STATUS_TESTING = 3,
+ NET_IF_OPER_STATUS_UNKNOWN = 4,
+ NET_IF_OPER_STATUS_DORMANT = 5,
+ NET_IF_OPER_STATUS_NOT_PRESENT = 6,
+ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7,
+}}
+pub type PNET_IF_OPER_STATUS = *mut NET_IF_OPER_STATUS;
+pub type NET_IF_OBJECT_ID = ULONG32;
+pub type PNET_IF_OBJECT_ID = *mut NET_IF_OBJECT_ID;
+ENUM!{enum NET_IF_ADMIN_STATUS {
+ NET_IF_ADMIN_STATUS_UP = 1,
+ NET_IF_ADMIN_STATUS_DOWN = 2,
+ NET_IF_ADMIN_STATUS_TESTING = 3,
+}}
+pub type PNET_IF_ADMIN_STATUS = *mut NET_IF_ADMIN_STATUS;
+pub type NET_IF_COMPARTMENT_SCOPE = UINT32;
+pub type PNET_IF_COMPARTMENT_SCOPE = *mut NET_IF_COMPARTMENT_SCOPE;
+pub const NET_IF_COMPARTMENT_SCOPE_UNSPECIFIED: NET_IF_COMPARTMENT_SCOPE = 0;
+pub const NET_IF_COMPARTMENT_SCOPE_ALL: NET_IF_COMPARTMENT_SCOPE = -1i32 as u32;
+ENUM!{enum NET_IF_RCV_ADDRESS_TYPE {
+ NET_IF_RCV_ADDRESS_TYPE_OTHER = 1,
+ NET_IF_RCV_ADDRESS_TYPE_VOLATILE = 2,
+ NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3,
+}}
+pub type PNET_IF_RCV_ADDRESS_TYPE = *mut NET_IF_RCV_ADDRESS_TYPE;
+STRUCT!{struct NET_IF_RCV_ADDRESS_LH {
+ ifRcvAddressType: NET_IF_RCV_ADDRESS_TYPE,
+ ifRcvAddressLength: USHORT,
+ ifRcvAddressOffset: USHORT,
+}}
+pub type PNET_IF_RCV_ADDRESS_LH = *mut NET_IF_RCV_ADDRESS_LH;
+STRUCT!{struct NET_IF_ALIAS_LH {
+ ifAliasLength: USHORT,
+ ifAliasOffset: USHORT,
+}}
+pub type PNET_IF_ALIAS_LH = *mut NET_IF_ALIAS_LH;
+// FIXME: Switch to union version in 0.4
+// STRUCT!{struct NET_LUID_LH_Info {
+// bitfield: ULONG64,
+// }}
+// BITFIELD!{NET_LUID_LH_Info bitfield: ULONG64 [
+// Reserved set_Reserved[0..24],
+// NetLuidIndex set_NetLuidIndex[24..48],
+// IfType set_IfType[48..64],
+// ]}
+// UNION!{struct NET_LUID_LH {
+// [u64; 1],
+// Value Value_mut: ULONG64,
+// Info Info_mut: NET_LUID_LH_Info,
+// }}
+STRUCT!{struct NET_LUID_LH {
+ Value: ULONG64,
+}}
+BITFIELD!{NET_LUID_LH Value: ULONG64 [
+ Reserved set_Reserved[0..24],
+ NetLuidIndex set_NetLuidIndex[24..48],
+ IfType set_IfType[48..64],
+]}
+pub type PNET_LUID_LH = *mut NET_LUID_LH;
+pub type NET_IF_RCV_ADDRESS = NET_IF_RCV_ADDRESS_LH;
+pub type PNET_IF_RCV_ADDRESS = *mut NET_IF_RCV_ADDRESS;
+pub type NET_IF_ALIAS = NET_IF_ALIAS_LH;
+pub type PNET_IF_ALIAS = *mut NET_IF_ALIAS;
+pub type NET_LUID = NET_LUID_LH;
+pub type PNET_LUID = *mut NET_LUID;
+pub type IF_LUID = NET_LUID;
+pub type PIF_LUID = *mut NET_LUID;
+pub type NET_IFINDEX = ULONG;
+pub type PNET_IFINDEX = *mut NET_IFINDEX;
+pub type NET_IFTYPE = UINT16;
+pub type PNET_IFTYPE = *mut NET_IFTYPE;
+pub type IF_INDEX = NET_IFINDEX;
+pub type PIF_INDEX = *mut NET_IFINDEX;
+ENUM!{enum NET_IF_CONNECTION_TYPE {
+ NET_IF_CONNECTION_DEDICATED = 1,
+ NET_IF_CONNECTION_PASSIVE = 2,
+ NET_IF_CONNECTION_DEMAND = 3,
+ NET_IF_CONNECTION_MAXIMUM = 4,
+}}
+pub type PNET_IF_CONNECTION_TYPE = *mut NET_IF_CONNECTION_TYPE;
+ENUM!{enum TUNNEL_TYPE {
+ TUNNEL_TYPE_NONE = 0,
+ TUNNEL_TYPE_OTHER = 1,
+ TUNNEL_TYPE_DIRECT = 2,
+ TUNNEL_TYPE_6TO4 = 11,
+ TUNNEL_TYPE_ISATAP = 13,
+ TUNNEL_TYPE_TEREDO = 14,
+ TUNNEL_TYPE_IPHTTPS = 15,
+}}
+pub type PTUNNEL_TYPE = *mut TUNNEL_TYPE;
+ENUM!{enum NET_IF_ACCESS_TYPE {
+ NET_IF_ACCESS_LOOPBACK = 1,
+ NET_IF_ACCESS_BROADCAST = 2,
+ NET_IF_ACCESS_POINT_TO_POINT = 3,
+ NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
+ NET_IF_ACCESS_MAXIMUM = 5,
+}}
+pub type PNET_IF_ACCESS_TYPE = *mut NET_IF_ACCESS_TYPE;
+ENUM!{enum NET_IF_DIRECTION_TYPE {
+ NET_IF_DIRECTION_SENDRECEIVE,
+ NET_IF_DIRECTION_SENDONLY,
+ NET_IF_DIRECTION_RECEIVEONLY,
+ NET_IF_DIRECTION_MAXIMUM,
+}}
+pub type PNET_IF_DIRECTION_TYPE = *mut NET_IF_DIRECTION_TYPE;
+ENUM!{enum NET_IF_MEDIA_CONNECT_STATE {
+ MediaConnectStateUnknown,
+ MediaConnectStateConnected,
+ MediaConnectStateDisconnected,
+}}
+pub type PNET_IF_MEDIA_CONNECT_STATE = *mut NET_IF_MEDIA_CONNECT_STATE;
+ENUM!{enum NET_IF_MEDIA_DUPLEX_STATE {
+ MediaDuplexStateUnknown = 0,
+ MediaDuplexStateHalf = 1,
+ MediaDuplexStateFull = 2,
+}}
+pub type PNET_IF_MEDIA_DUPLEX_STATE = *mut NET_IF_MEDIA_DUPLEX_STATE;
+STRUCT!{struct NET_PHYSICAL_LOCATION_LH {
+ BusNumber: ULONG,
+ SlotNumber: ULONG,
+ FunctionNumber: ULONG,
+}}
+pub type PNET_PHYSICAL_LOCATION_LH = *mut NET_PHYSICAL_LOCATION_LH;
+pub const IF_MAX_STRING_SIZE: usize = 256;
+pub const IF_MAX_PHYS_ADDRESS_LENGTH: usize = 32;
+STRUCT!{struct IF_COUNTED_STRING_LH {
+ Length: USHORT,
+ String: [WCHAR; IF_MAX_STRING_SIZE + 1],
+}}
+pub type PIF_COUNTED_STRING_LH = *mut IF_COUNTED_STRING_LH;
+STRUCT!{struct IF_PHYSICAL_ADDRESS_LH {
+ Length: USHORT,
+ Address: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+}}
+pub type PIF_PHYSICAL_ADDRESS_LH = *mut IF_PHYSICAL_ADDRESS_LH;
+pub type NET_PHYSICAL_LOCATION = NET_PHYSICAL_LOCATION_LH;
+pub type PNET_PHYSICAL_LOCATION = *mut NET_PHYSICAL_LOCATION;
+pub type IF_COUNTED_STRING = IF_COUNTED_STRING_LH;
+pub type PIF_COUNTED_STRING = *mut IF_COUNTED_STRING;
+pub type IF_PHYSICAL_ADDRESS = IF_PHYSICAL_ADDRESS_LH;
+pub type PIF_PHYSICAL_ADDRESS = *mut IF_PHYSICAL_ADDRESS;
+ENUM!{enum IF_ADMINISTRATIVE_STATE {
+ IF_ADMINISTRATIVE_DISABLED = 0,
+ IF_ADMINISTRATIVE_ENABLED = 1,
+ IF_ADMINISTRATIVE_DEMANDDIAL = 2,
+}}
+pub type PIF_ADMINISTRATIVE_STATE = *mut IF_ADMINISTRATIVE_STATE;
+ENUM!{enum IF_OPER_STATUS {
+ IfOperStatusUp = 1,
+ IfOperStatusDown,
+ IfOperStatusTesting,
+ IfOperStatusUnknown,
+ IfOperStatusDormant,
+ IfOperStatusNotPresent,
+ IfOperStatusLowerLayerDown,
+}}
+STRUCT!{struct NDIS_INTERFACE_INFORMATION {
+ ifOperStatus: NET_IF_OPER_STATUS,
+ ifOperStatusFlags: ULONG,
+ MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
+ MediaDuplexState: NET_IF_MEDIA_DUPLEX_STATE,
+ ifMtu: ULONG,
+ ifPromiscuousMode: BOOLEAN,
+ ifDeviceWakeUpEnable: BOOLEAN,
+ XmitLinkSpeed: ULONG64,
+ RcvLinkSpeed: ULONG64,
+ ifLastChange: ULONG64,
+ ifCounterDiscontinuityTime: ULONG64,
+ ifInUnknownProtos: ULONG64,
+ ifInDiscards: ULONG64,
+ ifInErrors: ULONG64,
+ ifHCInOctets: ULONG64,
+ ifHCInUcastPkts: ULONG64,
+ ifHCInMulticastPkts: ULONG64,
+ ifHCInBroadcastPkts: ULONG64,
+ ifHCOutOctets: ULONG64,
+ ifHCOutUcastPkts: ULONG64,
+ ifHCOutMulticastPkts: ULONG64,
+ ifHCOutBroadcastPkts: ULONG64,
+ ifOutErrors: ULONG64,
+ ifOutDiscards: ULONG64,
+ ifHCInUcastOctets: ULONG64,
+ ifHCInMulticastOctets: ULONG64,
+ ifHCInBroadcastOctets: ULONG64,
+ ifHCOutUcastOctets: ULONG64,
+ ifHCOutMulticastOctets: ULONG64,
+ ifHCOutBroadcastOctets: ULONG64,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ SupportedStatistics: ULONG,
+}}
+pub type PNDIS_INTERFACE_INFORMATION = *mut NDIS_INTERFACE_INFORMATION;
diff --git a/third_party/rust/winapi/src/shared/ifmib.rs b/third_party/rust/winapi/src/shared/ifmib.rs
new file mode 100644
index 0000000000..855b147f61
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ifmib.rs
@@ -0,0 +1,53 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Contains the public definitions and structures for the non-TCP/IP specific parts of MIB-II.
+// #include <winapifamily.h>
+// #include <ifdef.h>
+use shared::ifdef::IF_INDEX;
+use shared::ipifcons::{IFTYPE, INTERNAL_IF_OPER_STATUS};
+use shared::minwindef::DWORD;
+use shared::ntdef::{UCHAR, WCHAR};
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_IFNUMBER {
+ dwValue: DWORD,
+}}
+pub type PMIB_IFNUMBER = *mut MIB_IFNUMBER;
+pub const MAXLEN_PHYSADDR: usize = 8;
+pub const MAXLEN_IFDESCR: usize = 256;
+pub const MAX_INTERFACE_NAME_LEN: usize = 256;
+STRUCT!{struct MIB_IFROW {
+ wszName: [WCHAR; MAX_INTERFACE_NAME_LEN],
+ dwIndex: IF_INDEX,
+ dwType: IFTYPE,
+ dwMtu: DWORD,
+ dwSpeed: DWORD,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAdminStatus: DWORD,
+ dwOperStatus: INTERNAL_IF_OPER_STATUS,
+ dwLastChange: DWORD,
+ dwInOctets: DWORD,
+ dwInUcastPkts: DWORD,
+ dwInNUcastPkts: DWORD,
+ dwInDiscards: DWORD,
+ dwInErrors: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwOutOctets: DWORD,
+ dwOutUcastPkts: DWORD,
+ dwOutNUcastPkts: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutErrors: DWORD,
+ dwOutQLen: DWORD,
+ dwDescrLen: DWORD,
+ bDescr: [UCHAR; MAXLEN_IFDESCR],
+}}
+pub type PMIB_IFROW = *mut MIB_IFROW;
+STRUCT!{struct MIB_IFTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IFROW; ANY_SIZE],
+}}
+pub type PMIB_IFTABLE = *mut MIB_IFTABLE;
+// FIXME: SIZEOF_IFTABLE(x)
diff --git a/third_party/rust/winapi/src/shared/in6addr.rs b/third_party/rust/winapi/src/shared/in6addr.rs
new file mode 100644
index 0000000000..ea7eb75bec
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/in6addr.rs
@@ -0,0 +1,18 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! IPv6 Internet address, 'on-wire' format structure.
+use shared::minwindef::{UCHAR, USHORT};
+UNION!{union in6_addr_u {
+ [u16; 8],
+ Byte Byte_mut: [UCHAR; 16],
+ Word Word_mut: [USHORT; 8],
+}}
+STRUCT!{struct in6_addr {
+ u: in6_addr_u,
+}}
+pub type IN6_ADDR = in6_addr;
+pub type PIN6_ADDR = *mut IN6_ADDR;
+pub type LPIN6_ADDR = *mut IN6_ADDR;
diff --git a/third_party/rust/winapi/src/shared/inaddr.rs b/third_party/rust/winapi/src/shared/inaddr.rs
new file mode 100644
index 0000000000..830dd0505d
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/inaddr.rs
@@ -0,0 +1,29 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! IPv4 Internet address, 'on-wire' format structure.
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+STRUCT!{struct in_addr_S_un_b {
+ s_b1: UCHAR,
+ s_b2: UCHAR,
+ s_b3: UCHAR,
+ s_b4: UCHAR,
+}}
+STRUCT!{struct in_addr_S_un_w {
+ s_w1: USHORT,
+ s_w2: USHORT,
+}}
+UNION!{union in_addr_S_un {
+ [u32; 1],
+ S_un_b S_un_b_mut: in_addr_S_un_b,
+ S_un_w S_un_w_mut: in_addr_S_un_w,
+ S_addr S_addr_mut: ULONG,
+}}
+STRUCT!{struct in_addr {
+ S_un: in_addr_S_un,
+}}
+pub type IN_ADDR = in_addr;
+pub type PIN_ADDR = *mut in_addr;
+pub type LPIN_ADDR = *mut in_addr;
diff --git a/third_party/rust/winapi/src/shared/intsafe.rs b/third_party/rust/winapi/src/shared/intsafe.rs
new file mode 100644
index 0000000000..916dc0e1aa
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/intsafe.rs
@@ -0,0 +1,5 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
diff --git a/third_party/rust/winapi/src/shared/ipifcons.rs b/third_party/rust/winapi/src/shared/ipifcons.rs
new file mode 100644
index 0000000000..c500e2cec5
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ipifcons.rs
@@ -0,0 +1,244 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constants needed for the Interface Object
+// #include <winapifamily.h>
+use shared::minwindef::ULONG;
+pub type IFTYPE = ULONG;
+pub const MIN_IF_TYPE: IFTYPE = 1;
+pub const IF_TYPE_OTHER: IFTYPE = 1;
+pub const IF_TYPE_REGULAR_1822: IFTYPE = 2;
+pub const IF_TYPE_HDH_1822: IFTYPE = 3;
+pub const IF_TYPE_DDN_X25: IFTYPE = 4;
+pub const IF_TYPE_RFC877_X25: IFTYPE = 5;
+pub const IF_TYPE_ETHERNET_CSMACD: IFTYPE = 6;
+pub const IF_TYPE_IS088023_CSMACD: IFTYPE = 7;
+pub const IF_TYPE_ISO88024_TOKENBUS: IFTYPE = 8;
+pub const IF_TYPE_ISO88025_TOKENRING: IFTYPE = 9;
+pub const IF_TYPE_ISO88026_MAN: IFTYPE = 10;
+pub const IF_TYPE_STARLAN: IFTYPE = 11;
+pub const IF_TYPE_PROTEON_10MBIT: IFTYPE = 12;
+pub const IF_TYPE_PROTEON_80MBIT: IFTYPE = 13;
+pub const IF_TYPE_HYPERCHANNEL: IFTYPE = 14;
+pub const IF_TYPE_FDDI: IFTYPE = 15;
+pub const IF_TYPE_LAP_B: IFTYPE = 16;
+pub const IF_TYPE_SDLC: IFTYPE = 17;
+pub const IF_TYPE_DS1: IFTYPE = 18;
+pub const IF_TYPE_E1: IFTYPE = 19;
+pub const IF_TYPE_BASIC_ISDN: IFTYPE = 20;
+pub const IF_TYPE_PRIMARY_ISDN: IFTYPE = 21;
+pub const IF_TYPE_PROP_POINT2POINT_SERIAL: IFTYPE = 22;
+pub const IF_TYPE_PPP: IFTYPE = 23;
+pub const IF_TYPE_SOFTWARE_LOOPBACK: IFTYPE = 24;
+pub const IF_TYPE_EON: IFTYPE = 25;
+pub const IF_TYPE_ETHERNET_3MBIT: IFTYPE = 26;
+pub const IF_TYPE_NSIP: IFTYPE = 27;
+pub const IF_TYPE_SLIP: IFTYPE = 28;
+pub const IF_TYPE_ULTRA: IFTYPE = 29;
+pub const IF_TYPE_DS3: IFTYPE = 30;
+pub const IF_TYPE_SIP: IFTYPE = 31;
+pub const IF_TYPE_FRAMERELAY: IFTYPE = 32;
+pub const IF_TYPE_RS232: IFTYPE = 33;
+pub const IF_TYPE_PARA: IFTYPE = 34;
+pub const IF_TYPE_ARCNET: IFTYPE = 35;
+pub const IF_TYPE_ARCNET_PLUS: IFTYPE = 36;
+pub const IF_TYPE_ATM: IFTYPE = 37;
+pub const IF_TYPE_MIO_X25: IFTYPE = 38;
+pub const IF_TYPE_SONET: IFTYPE = 39;
+pub const IF_TYPE_X25_PLE: IFTYPE = 40;
+pub const IF_TYPE_ISO88022_LLC: IFTYPE = 41;
+pub const IF_TYPE_LOCALTALK: IFTYPE = 42;
+pub const IF_TYPE_SMDS_DXI: IFTYPE = 43;
+pub const IF_TYPE_FRAMERELAY_SERVICE: IFTYPE = 44;
+pub const IF_TYPE_V35: IFTYPE = 45;
+pub const IF_TYPE_HSSI: IFTYPE = 46;
+pub const IF_TYPE_HIPPI: IFTYPE = 47;
+pub const IF_TYPE_MODEM: IFTYPE = 48;
+pub const IF_TYPE_AAL5: IFTYPE = 49;
+pub const IF_TYPE_SONET_PATH: IFTYPE = 50;
+pub const IF_TYPE_SONET_VT: IFTYPE = 51;
+pub const IF_TYPE_SMDS_ICIP: IFTYPE = 52;
+pub const IF_TYPE_PROP_VIRTUAL: IFTYPE = 53;
+pub const IF_TYPE_PROP_MULTIPLEXOR: IFTYPE = 54;
+pub const IF_TYPE_IEEE80212: IFTYPE = 55;
+pub const IF_TYPE_FIBRECHANNEL: IFTYPE = 56;
+pub const IF_TYPE_HIPPIINTERFACE: IFTYPE = 57;
+pub const IF_TYPE_FRAMERELAY_INTERCONNECT: IFTYPE = 58;
+pub const IF_TYPE_AFLANE_8023: IFTYPE = 59;
+pub const IF_TYPE_AFLANE_8025: IFTYPE = 60;
+pub const IF_TYPE_CCTEMUL: IFTYPE = 61;
+pub const IF_TYPE_FASTETHER: IFTYPE = 62;
+pub const IF_TYPE_ISDN: IFTYPE = 63;
+pub const IF_TYPE_V11: IFTYPE = 64;
+pub const IF_TYPE_V36: IFTYPE = 65;
+pub const IF_TYPE_G703_64K: IFTYPE = 66;
+pub const IF_TYPE_G703_2MB: IFTYPE = 67;
+pub const IF_TYPE_QLLC: IFTYPE = 68;
+pub const IF_TYPE_FASTETHER_FX: IFTYPE = 69;
+pub const IF_TYPE_CHANNEL: IFTYPE = 70;
+pub const IF_TYPE_IEEE80211: IFTYPE = 71;
+pub const IF_TYPE_IBM370PARCHAN: IFTYPE = 72;
+pub const IF_TYPE_ESCON: IFTYPE = 73;
+pub const IF_TYPE_DLSW: IFTYPE = 74;
+pub const IF_TYPE_ISDN_S: IFTYPE = 75;
+pub const IF_TYPE_ISDN_U: IFTYPE = 76;
+pub const IF_TYPE_LAP_D: IFTYPE = 77;
+pub const IF_TYPE_IPSWITCH: IFTYPE = 78;
+pub const IF_TYPE_RSRB: IFTYPE = 79;
+pub const IF_TYPE_ATM_LOGICAL: IFTYPE = 80;
+pub const IF_TYPE_DS0: IFTYPE = 81;
+pub const IF_TYPE_DS0_BUNDLE: IFTYPE = 82;
+pub const IF_TYPE_BSC: IFTYPE = 83;
+pub const IF_TYPE_ASYNC: IFTYPE = 84;
+pub const IF_TYPE_CNR: IFTYPE = 85;
+pub const IF_TYPE_ISO88025R_DTR: IFTYPE = 86;
+pub const IF_TYPE_EPLRS: IFTYPE = 87;
+pub const IF_TYPE_ARAP: IFTYPE = 88;
+pub const IF_TYPE_PROP_CNLS: IFTYPE = 89;
+pub const IF_TYPE_HOSTPAD: IFTYPE = 90;
+pub const IF_TYPE_TERMPAD: IFTYPE = 91;
+pub const IF_TYPE_FRAMERELAY_MPI: IFTYPE = 92;
+pub const IF_TYPE_X213: IFTYPE = 93;
+pub const IF_TYPE_ADSL: IFTYPE = 94;
+pub const IF_TYPE_RADSL: IFTYPE = 95;
+pub const IF_TYPE_SDSL: IFTYPE = 96;
+pub const IF_TYPE_VDSL: IFTYPE = 97;
+pub const IF_TYPE_ISO88025_CRFPRINT: IFTYPE = 98;
+pub const IF_TYPE_MYRINET: IFTYPE = 99;
+pub const IF_TYPE_VOICE_EM: IFTYPE = 100;
+pub const IF_TYPE_VOICE_FXO: IFTYPE = 101;
+pub const IF_TYPE_VOICE_FXS: IFTYPE = 102;
+pub const IF_TYPE_VOICE_ENCAP: IFTYPE = 103;
+pub const IF_TYPE_VOICE_OVERIP: IFTYPE = 104;
+pub const IF_TYPE_ATM_DXI: IFTYPE = 105;
+pub const IF_TYPE_ATM_FUNI: IFTYPE = 106;
+pub const IF_TYPE_ATM_IMA: IFTYPE = 107;
+pub const IF_TYPE_PPPMULTILINKBUNDLE: IFTYPE = 108;
+pub const IF_TYPE_IPOVER_CDLC: IFTYPE = 109;
+pub const IF_TYPE_IPOVER_CLAW: IFTYPE = 110;
+pub const IF_TYPE_STACKTOSTACK: IFTYPE = 111;
+pub const IF_TYPE_VIRTUALIPADDRESS: IFTYPE = 112;
+pub const IF_TYPE_MPC: IFTYPE = 113;
+pub const IF_TYPE_IPOVER_ATM: IFTYPE = 114;
+pub const IF_TYPE_ISO88025_FIBER: IFTYPE = 115;
+pub const IF_TYPE_TDLC: IFTYPE = 116;
+pub const IF_TYPE_GIGABITETHERNET: IFTYPE = 117;
+pub const IF_TYPE_HDLC: IFTYPE = 118;
+pub const IF_TYPE_LAP_F: IFTYPE = 119;
+pub const IF_TYPE_V37: IFTYPE = 120;
+pub const IF_TYPE_X25_MLP: IFTYPE = 121;
+pub const IF_TYPE_X25_HUNTGROUP: IFTYPE = 122;
+pub const IF_TYPE_TRANSPHDLC: IFTYPE = 123;
+pub const IF_TYPE_INTERLEAVE: IFTYPE = 124;
+pub const IF_TYPE_FAST: IFTYPE = 125;
+pub const IF_TYPE_IP: IFTYPE = 126;
+pub const IF_TYPE_DOCSCABLE_MACLAYER: IFTYPE = 127;
+pub const IF_TYPE_DOCSCABLE_DOWNSTREAM: IFTYPE = 128;
+pub const IF_TYPE_DOCSCABLE_UPSTREAM: IFTYPE = 129;
+pub const IF_TYPE_A12MPPSWITCH: IFTYPE = 130;
+pub const IF_TYPE_TUNNEL: IFTYPE = 131;
+pub const IF_TYPE_COFFEE: IFTYPE = 132;
+pub const IF_TYPE_CES: IFTYPE = 133;
+pub const IF_TYPE_ATM_SUBINTERFACE: IFTYPE = 134;
+pub const IF_TYPE_L2_VLAN: IFTYPE = 135;
+pub const IF_TYPE_L3_IPVLAN: IFTYPE = 136;
+pub const IF_TYPE_L3_IPXVLAN: IFTYPE = 137;
+pub const IF_TYPE_DIGITALPOWERLINE: IFTYPE = 138;
+pub const IF_TYPE_MEDIAMAILOVERIP: IFTYPE = 139;
+pub const IF_TYPE_DTM: IFTYPE = 140;
+pub const IF_TYPE_DCN: IFTYPE = 141;
+pub const IF_TYPE_IPFORWARD: IFTYPE = 142;
+pub const IF_TYPE_MSDSL: IFTYPE = 143;
+pub const IF_TYPE_IEEE1394: IFTYPE = 144;
+pub const IF_TYPE_IF_GSN: IFTYPE = 145;
+pub const IF_TYPE_DVBRCC_MACLAYER: IFTYPE = 146;
+pub const IF_TYPE_DVBRCC_DOWNSTREAM: IFTYPE = 147;
+pub const IF_TYPE_DVBRCC_UPSTREAM: IFTYPE = 148;
+pub const IF_TYPE_ATM_VIRTUAL: IFTYPE = 149;
+pub const IF_TYPE_MPLS_TUNNEL: IFTYPE = 150;
+pub const IF_TYPE_SRP: IFTYPE = 151;
+pub const IF_TYPE_VOICEOVERATM: IFTYPE = 152;
+pub const IF_TYPE_VOICEOVERFRAMERELAY: IFTYPE = 153;
+pub const IF_TYPE_IDSL: IFTYPE = 154;
+pub const IF_TYPE_COMPOSITELINK: IFTYPE = 155;
+pub const IF_TYPE_SS7_SIGLINK: IFTYPE = 156;
+pub const IF_TYPE_PROP_WIRELESS_P2P: IFTYPE = 157;
+pub const IF_TYPE_FR_FORWARD: IFTYPE = 158;
+pub const IF_TYPE_RFC1483: IFTYPE = 159;
+pub const IF_TYPE_USB: IFTYPE = 160;
+pub const IF_TYPE_IEEE8023AD_LAG: IFTYPE = 161;
+pub const IF_TYPE_BGP_POLICY_ACCOUNTING: IFTYPE = 162;
+pub const IF_TYPE_FRF16_MFR_BUNDLE: IFTYPE = 163;
+pub const IF_TYPE_H323_GATEKEEPER: IFTYPE = 164;
+pub const IF_TYPE_H323_PROXY: IFTYPE = 165;
+pub const IF_TYPE_MPLS: IFTYPE = 166;
+pub const IF_TYPE_MF_SIGLINK: IFTYPE = 167;
+pub const IF_TYPE_HDSL2: IFTYPE = 168;
+pub const IF_TYPE_SHDSL: IFTYPE = 169;
+pub const IF_TYPE_DS1_FDL: IFTYPE = 170;
+pub const IF_TYPE_POS: IFTYPE = 171;
+pub const IF_TYPE_DVB_ASI_IN: IFTYPE = 172;
+pub const IF_TYPE_DVB_ASI_OUT: IFTYPE = 173;
+pub const IF_TYPE_PLC: IFTYPE = 174;
+pub const IF_TYPE_NFAS: IFTYPE = 175;
+pub const IF_TYPE_TR008: IFTYPE = 176;
+pub const IF_TYPE_GR303_RDT: IFTYPE = 177;
+pub const IF_TYPE_GR303_IDT: IFTYPE = 178;
+pub const IF_TYPE_ISUP: IFTYPE = 179;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_MACLAYER: IFTYPE = 180;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_DOWNSTREAM: IFTYPE = 181;
+pub const IF_TYPE_PROP_DOCS_WIRELESS_UPSTREAM: IFTYPE = 182;
+pub const IF_TYPE_HIPERLAN2: IFTYPE = 183;
+pub const IF_TYPE_PROP_BWA_P2MP: IFTYPE = 184;
+pub const IF_TYPE_SONET_OVERHEAD_CHANNEL: IFTYPE = 185;
+pub const IF_TYPE_DIGITAL_WRAPPER_OVERHEAD_CHANNEL: IFTYPE = 186;
+pub const IF_TYPE_AAL2: IFTYPE = 187;
+pub const IF_TYPE_RADIO_MAC: IFTYPE = 188;
+pub const IF_TYPE_ATM_RADIO: IFTYPE = 189;
+pub const IF_TYPE_IMT: IFTYPE = 190;
+pub const IF_TYPE_MVL: IFTYPE = 191;
+pub const IF_TYPE_REACH_DSL: IFTYPE = 192;
+pub const IF_TYPE_FR_DLCI_ENDPT: IFTYPE = 193;
+pub const IF_TYPE_ATM_VCI_ENDPT: IFTYPE = 194;
+pub const IF_TYPE_OPTICAL_CHANNEL: IFTYPE = 195;
+pub const IF_TYPE_OPTICAL_TRANSPORT: IFTYPE = 196;
+pub const IF_TYPE_IEEE80216_WMAN: IFTYPE = 237;
+pub const IF_TYPE_WWANPP: IFTYPE = 243;
+pub const IF_TYPE_WWANPP2: IFTYPE = 244;
+pub const IF_TYPE_IEEE802154: IFTYPE = 259;
+pub const IF_TYPE_XBOX_WIRELESS: IFTYPE = 281;
+pub const MAX_IF_TYPE: IFTYPE = 281;
+ENUM!{enum IF_ACCESS_TYPE {
+ IF_ACCESS_LOOPBACK = 1,
+ IF_ACCESS_BROADCAST = 2,
+ IF_ACCESS_POINT_TO_POINT = 3,
+ IF_ACCESS_POINTTOPOINT = 3,
+ IF_ACCESS_POINT_TO_MULTI_POINT = 4,
+ IF_ACCESS_POINTTOMULTIPOINT = 4,
+}}
+ENUM!{enum INTERNAL_IF_OPER_STATUS {
+ IF_OPER_STATUS_NON_OPERATIONAL = 0,
+ IF_OPER_STATUS_UNREACHABLE = 1,
+ IF_OPER_STATUS_DISCONNECTED = 2,
+ IF_OPER_STATUS_CONNECTING = 3,
+ IF_OPER_STATUS_CONNECTED = 4,
+ IF_OPER_STATUS_OPERATIONAL = 5,
+}}
+pub const MIB_IF_TYPE_OTHER: IFTYPE = 1;
+pub const MIB_IF_TYPE_ETHERNET: IFTYPE = 6;
+pub const MIB_IF_TYPE_TOKENRING: IFTYPE = 9;
+pub const MIB_IF_TYPE_FDDI: IFTYPE = 15;
+pub const MIB_IF_TYPE_PPP: IFTYPE = 23;
+pub const MIB_IF_TYPE_LOOPBACK: IFTYPE = 24;
+pub const MIB_IF_TYPE_SLIP: IFTYPE = 28;
+pub const MIB_IF_ADMIN_STATUS_UP: IFTYPE = 1;
+pub const MIB_IF_ADMIN_STATUS_DOWN: IFTYPE = 2;
+pub const MIB_IF_ADMIN_STATUS_TESTING: IFTYPE = 3;
+pub const MIB_IF_OPER_STATUS_NON_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 0;
+pub const MIB_IF_OPER_STATUS_UNREACHABLE: INTERNAL_IF_OPER_STATUS = 1;
+pub const MIB_IF_OPER_STATUS_DISCONNECTED: INTERNAL_IF_OPER_STATUS = 2;
+pub const MIB_IF_OPER_STATUS_CONNECTING: INTERNAL_IF_OPER_STATUS = 3;
+pub const MIB_IF_OPER_STATUS_CONNECTED: INTERNAL_IF_OPER_STATUS = 4;
+pub const MIB_IF_OPER_STATUS_OPERATIONAL: INTERNAL_IF_OPER_STATUS = 5;
diff --git a/third_party/rust/winapi/src/shared/ipmib.rs b/third_party/rust/winapi/src/shared/ipmib.rs
new file mode 100644
index 0000000000..cddd8f61a4
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ipmib.rs
@@ -0,0 +1,381 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::ifdef::IF_INDEX;
+use shared::ifmib::MAXLEN_PHYSADDR;
+use shared::minwindef::DWORD;
+use shared::nldef::NL_ROUTE_PROTOCOL;
+use shared::ntdef::{PVOID, UCHAR, ULONG, USHORT};
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_IPADDRROW_XP {
+ dwAddr: DWORD,
+ dwIndex: IF_INDEX,
+ dwMask: DWORD,
+ dwBCastAddr: DWORD,
+ dwReasmSize: DWORD,
+ unused1: USHORT,
+ wType: USHORT,
+}}
+pub type PMIB_IPADDRROW_XP = *mut MIB_IPADDRROW_XP;
+STRUCT!{struct MIB_IPADDRROW_W2K {
+ dwAddr: DWORD,
+ dwIndex: DWORD,
+ dwMask: DWORD,
+ dwBCastAddr: DWORD,
+ dwReasmSize: DWORD,
+ unused1: USHORT,
+ unused2: USHORT,
+}}
+pub type PMIB_IPADDRROW_W2K = *mut MIB_IPADDRROW_W2K;
+pub type MIB_IPADDRROW = MIB_IPADDRROW_XP;
+pub type PMIB_IPADDRROW = *mut MIB_IPADDRROW;
+STRUCT!{struct MIB_IPADDRTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPADDRROW; ANY_SIZE],
+}}
+pub type PMIB_IPADDRTABLE = *mut MIB_IPADDRTABLE;
+// FIXME: SIZEOF_IPADDRTABLE(x)
+STRUCT!{struct MIB_IPFORWARDNUMBER {
+ dwValue: DWORD,
+}}
+pub type PMIB_IPFORWARDNUMBER = *mut MIB_IPFORWARDNUMBER;
+pub type MIB_IPFORWARD_PROTO = NL_ROUTE_PROTOCOL;
+ENUM!{enum MIB_IPFORWARD_TYPE {
+ MIB_IPROUTE_TYPE_OTHER = 1,
+ MIB_IPROUTE_TYPE_INVALID = 2,
+ MIB_IPROUTE_TYPE_DIRECT = 3,
+ MIB_IPROUTE_TYPE_INDIRECT = 4,
+}}
+STRUCT!{struct MIB_IPFORWARDROW {
+ dwForwardDest: DWORD,
+ dwForwardMask: DWORD,
+ dwForwardPolicy: DWORD,
+ dwForwardNextHop: DWORD,
+ dwForwardIfIndex: IF_INDEX,
+ ForwardType: MIB_IPFORWARD_TYPE,
+ ForwardProto: MIB_IPFORWARD_PROTO,
+ dwForwardAge: DWORD,
+ dwForwardNextHopAS: DWORD,
+ dwForwardMetric1: DWORD,
+ dwForwardMetric2: DWORD,
+ dwForwardMetric3: DWORD,
+ dwForwardMetric4: DWORD,
+ dwForwardMetric5: DWORD,
+}}
+pub type PMIB_IPFORWARDROW = *mut MIB_IPFORWARDROW;
+STRUCT!{struct MIB_IPFORWARDTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPFORWARDROW; ANY_SIZE],
+}}
+pub type PMIB_IPFORWARDTABLE = *mut MIB_IPFORWARDTABLE;
+// FIXME: SIZEOF_IPFORWARDTABLE(x)
+ENUM!{enum MIB_IPNET_TYPE {
+ MIB_IPNET_TYPE_OTHER = 1,
+ MIB_IPNET_TYPE_INVALID = 2,
+ MIB_IPNET_TYPE_DYNAMIC = 3,
+ MIB_IPNET_TYPE_STATIC = 4,
+}}
+STRUCT!{struct MIB_IPNETROW_LH {
+ dwIndex: IF_INDEX,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAddr: DWORD,
+ Type: MIB_IPNET_TYPE,
+}}
+pub type PMIB_IPNETROW_LH = *mut MIB_IPNETROW_LH;
+STRUCT!{struct MIB_IPNETROW_W2K {
+ dwIndex: IF_INDEX,
+ dwPhysAddrLen: DWORD,
+ bPhysAddr: [UCHAR; MAXLEN_PHYSADDR],
+ dwAddr: DWORD,
+ dwType: DWORD,
+}}
+pub type PMIB_IPNETROW_W2K = *mut MIB_IPNETROW_W2K;
+pub type MIB_IPNETROW = MIB_IPNETROW_LH;
+pub type PMIB_IPNETROW = *mut MIB_IPNETROW;
+STRUCT!{struct MIB_IPNETTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPNETROW; ANY_SIZE],
+}}
+pub type PMIB_IPNETTABLE = *mut MIB_IPNETTABLE;
+// FIXME: SIZEOF_IPNETTABLE(x)
+ENUM!{enum MIB_IPSTATS_FORWARDING {
+ MIB_IP_FORWARDING = 1,
+ MIB_IP_NOT_FORWARDING = 2,
+}}
+pub type PMIB_IPSTATS_FORWARDING = *mut MIB_IPSTATS_FORWARDING;
+STRUCT!{struct MIB_IPSTATS_LH {
+ Forwarding: MIB_IPSTATS_FORWARDING,
+ dwDefaultTTL: DWORD,
+ dwInReceives: DWORD,
+ dwInHdrErrors: DWORD,
+ dwInAddrErrors: DWORD,
+ dwForwDatagrams: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwInDiscards: DWORD,
+ dwInDelivers: DWORD,
+ dwOutRequests: DWORD,
+ dwRoutingDiscards: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutNoRoutes: DWORD,
+ dwReasmTimeout: DWORD,
+ dwReasmReqds: DWORD,
+ dwReasmOks: DWORD,
+ dwReasmFails: DWORD,
+ dwFragOks: DWORD,
+ dwFragFails: DWORD,
+ dwFragCreates: DWORD,
+ dwNumIf: DWORD,
+ dwNumAddr: DWORD,
+ dwNumRoutes: DWORD,
+}}
+pub type PMIB_IPSTATS_LH = *mut MIB_IPSTATS_LH;
+STRUCT!{struct MIB_IPSTATS_W2K {
+ dwForwarding: DWORD,
+ dwDefaultTTL: DWORD,
+ dwInReceives: DWORD,
+ dwInHdrErrors: DWORD,
+ dwInAddrErrors: DWORD,
+ dwForwDatagrams: DWORD,
+ dwInUnknownProtos: DWORD,
+ dwInDiscards: DWORD,
+ dwInDelivers: DWORD,
+ dwOutRequests: DWORD,
+ dwRoutingDiscards: DWORD,
+ dwOutDiscards: DWORD,
+ dwOutNoRoutes: DWORD,
+ dwReasmTimeout: DWORD,
+ dwReasmReqds: DWORD,
+ dwReasmOks: DWORD,
+ dwReasmFails: DWORD,
+ dwFragOks: DWORD,
+ dwFragFails: DWORD,
+ dwFragCreates: DWORD,
+ dwNumIf: DWORD,
+ dwNumAddr: DWORD,
+ dwNumRoutes: DWORD,
+}}
+pub type PMIB_IPSTATS_W2K = *mut MIB_IPSTATS_W2K;
+pub type MIB_IPSTATS = MIB_IPSTATS_LH;
+pub type PMIB_IPSTATS = *mut MIB_IPSTATS;
+STRUCT!{struct MIBICMPSTATS {
+ dwMsgs: DWORD,
+ dwErrors: DWORD,
+ dwDestUnreachs: DWORD,
+ dwTimeExcds: DWORD,
+ dwParmProbs: DWORD,
+ dwSrcQuenchs: DWORD,
+ dwRedirects: DWORD,
+ dwEchos: DWORD,
+ dwEchoReps: DWORD,
+ dwTimestamps: DWORD,
+ dwTimestampReps: DWORD,
+ dwAddrMasks: DWORD,
+ dwAddrMaskReps: DWORD,
+}}
+pub type PMIBICMPSTATS = *mut MIBICMPSTATS;
+STRUCT!{struct MIBICMPINFO {
+ icmpInStats: MIBICMPSTATS,
+ icmpOutStats: MIBICMPSTATS,
+}}
+STRUCT!{struct MIB_ICMP {
+ stats: MIBICMPINFO,
+}}
+pub type PMIB_ICMP = *mut MIB_ICMP;
+STRUCT!{struct MIBICMPSTATS_EX_XPSP1 {
+ dwMsgs: DWORD,
+ dwErrors: DWORD,
+ rgdwTypeCount: [DWORD; 256],
+}}
+pub type PMIBICMPSTATS_EX_XPSP1 = *mut MIBICMPSTATS_EX_XPSP1;
+pub type MIBICMPSTATS_EX = MIBICMPSTATS_EX_XPSP1;
+pub type PMIBICMPSTATS_EX = *mut MIBICMPSTATS_EX_XPSP1;
+STRUCT!{struct MIB_ICMP_EX_XPSP1 {
+ icmpInStats: MIBICMPSTATS_EX,
+ icmpOutStats: MIBICMPSTATS_EX,
+}}
+pub type PMIB_ICMP_EX_XPSP1 = *mut MIB_ICMP_EX_XPSP1;
+pub type MIB_ICMP_EX = MIB_ICMP_EX_XPSP1;
+pub type PMIB_ICMP_EX = *mut MIB_ICMP_EX_XPSP1;
+ENUM!{enum ICMP6_TYPE {
+ ICMP6_DST_UNREACH = 1,
+ ICMP6_PACKET_TOO_BIG = 2,
+ ICMP6_TIME_EXCEEDED = 3,
+ ICMP6_PARAM_PROB = 4,
+ ICMP6_ECHO_REQUEST = 128,
+ ICMP6_ECHO_REPLY = 129,
+ ICMP6_MEMBERSHIP_QUERY = 130,
+ ICMP6_MEMBERSHIP_REPORT = 131,
+ ICMP6_MEMBERSHIP_REDUCTION = 132,
+ ND_ROUTER_SOLICIT = 133,
+ ND_ROUTER_ADVERT = 134,
+ ND_NEIGHBOR_SOLICIT = 135,
+ ND_NEIGHBOR_ADVERT = 136,
+ ND_REDIRECT = 137,
+ ICMP6_V2_MEMBERSHIP_REPORT = 143,
+}}
+pub type PICMP6_TYPE = *mut ICMP6_TYPE;
+ENUM!{enum ICMP4_TYPE {
+ ICMP4_ECHO_REPLY = 0,
+ ICMP4_DST_UNREACH = 3,
+ ICMP4_SOURCE_QUENCH = 4,
+ ICMP4_REDIRECT = 5,
+ ICMP4_ECHO_REQUEST = 8,
+ ICMP4_ROUTER_ADVERT = 9,
+ ICMP4_ROUTER_SOLICIT = 10,
+ ICMP4_TIME_EXCEEDED = 11,
+ ICMP4_PARAM_PROB = 12,
+ ICMP4_TIMESTAMP_REQUEST = 13,
+ ICMP4_TIMESTAMP_REPLY = 14,
+ ICMP4_MASK_REQUEST = 17,
+ ICMP4_MASK_REPLY = 18,
+}}
+pub type PICMP4_TYPE = *mut ICMP4_TYPE;
+STRUCT!{struct MIB_IPMCAST_OIF_XP {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ dwReserved: DWORD,
+ dwReserved1: DWORD,
+}}
+pub type PMIB_IPMCAST_OIF_XP = *mut MIB_IPMCAST_OIF_XP;
+STRUCT!{struct MIB_IPMCAST_OIF_W2K {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ pvReserved: PVOID,
+ dwReserved: DWORD,
+}}
+pub type PMIB_IPMCAST_OIF_W2K = *mut MIB_IPMCAST_OIF_W2K;
+pub type MIB_IPMCAST_OIF = MIB_IPMCAST_OIF_XP;
+pub type PMIB_IPMCAST_OIF = *mut MIB_IPMCAST_OIF;
+STRUCT!{struct MIB_IPMCAST_MFE {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulTimeOut: ULONG,
+ ulNumOutIf: ULONG,
+ fFlags: DWORD,
+ dwReserved: DWORD,
+ rgmioOutInfo: [MIB_IPMCAST_OIF; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE = *mut MIB_IPMCAST_MFE;
+STRUCT!{struct MIB_MFE_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_MFE; ANY_SIZE],
+}}
+pub type PMIB_MFE_TABLE = *mut MIB_MFE_TABLE;
+// FIXME: SIZEOF_BASIC_MIB_MFE
+// FIXME: SIZEOF_MIB_MFE(x)
+STRUCT!{struct MIB_IPMCAST_OIF_STATS_LH {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ dwDialContext: DWORD,
+ ulTtlTooLow: ULONG,
+ ulFragNeeded: ULONG,
+ ulOutPackets: ULONG,
+ ulOutDiscards: ULONG,
+}}
+pub type PMIB_IPMCAST_OIF_STATS_LH = *mut MIB_IPMCAST_OIF_STATS_LH;
+STRUCT!{struct MIB_IPMCAST_OIF_STATS_W2K {
+ dwOutIfIndex: DWORD,
+ dwNextHopAddr: DWORD,
+ pvDialContext: PVOID,
+ ulTtlTooLow: ULONG,
+ ulFragNeeded: ULONG,
+ ulOutPackets: ULONG,
+ ulOutDiscards: ULONG,
+}}
+pub type PMIB_IPMCAST_OIF_STATS_W2K = *mut MIB_IPMCAST_OIF_STATS_W2K;
+pub type MIB_IPMCAST_OIF_STATS = MIB_IPMCAST_OIF_STATS_LH;
+pub type PMIB_IPMCAST_OIF_STATS = *mut MIB_IPMCAST_OIF_STATS;
+STRUCT!{struct MIB_IPMCAST_MFE_STATS {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulNumOutIf: ULONG,
+ ulInPkts: ULONG,
+ ulInOctets: ULONG,
+ ulPktsDifferentIf: ULONG,
+ ulQueueOverflow: ULONG,
+ rgmiosOutStats: [MIB_IPMCAST_OIF_STATS; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE_STATS = *mut MIB_IPMCAST_MFE_STATS;
+STRUCT!{struct MIB_MFE_STATS_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_MFE_STATS; ANY_SIZE],
+}}
+pub type PMIB_MFE_STATS_TABLE = *mut MIB_MFE_STATS_TABLE;
+// FIXME: SIZEOF_BASIC_MIB_MFE_STATS
+// FIXME: SIZEOF_MIB_MFE_STATS(x)
+STRUCT!{struct MIB_IPMCAST_MFE_STATS_EX_XP {
+ dwGroup: DWORD,
+ dwSource: DWORD,
+ dwSrcMask: DWORD,
+ dwUpStrmNgbr: DWORD,
+ dwInIfIndex: DWORD,
+ dwInIfProtocol: DWORD,
+ dwRouteProtocol: DWORD,
+ dwRouteNetwork: DWORD,
+ dwRouteMask: DWORD,
+ ulUpTime: ULONG,
+ ulExpiryTime: ULONG,
+ ulNumOutIf: ULONG,
+ ulInPkts: ULONG,
+ ulInOctets: ULONG,
+ ulPktsDifferentIf: ULONG,
+ ulQueueOverflow: ULONG,
+ ulUninitMfe: ULONG,
+ ulNegativeMfe: ULONG,
+ ulInDiscards: ULONG,
+ ulInHdrErrors: ULONG,
+ ulTotalOutPackets: ULONG,
+ rgmiosOutStats: [MIB_IPMCAST_OIF_STATS; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_MFE_STATS_EX_XP = *mut MIB_IPMCAST_MFE_STATS_EX_XP;
+pub type MIB_IPMCAST_MFE_STATS_EX = MIB_IPMCAST_MFE_STATS_EX_XP;
+pub type PMIB_IPMCAST_MFE_STATS_EX = *mut MIB_IPMCAST_MFE_STATS_EX;
+STRUCT!{struct MIB_MFE_STATS_TABLE_EX_XP {
+ dwNumEntries: DWORD,
+ table: [PMIB_IPMCAST_MFE_STATS_EX_XP; ANY_SIZE],
+}}
+pub type PMIB_MFE_STATS_TABLE_EX_XP = *mut MIB_MFE_STATS_TABLE_EX_XP;
+pub type MIB_MFE_STATS_TABLE_EX = MIB_MFE_STATS_TABLE_EX_XP;
+pub type PMIB_MFE_STATS_TABLE_EX = *mut MIB_MFE_STATS_TABLE_EX;
+// FIXME: SIZEOF_BASIC_MIB_MFE_STATS_EX
+// FIXME: SIZEOF_MIB_MFE_STATS_EX(x)
+STRUCT!{struct MIB_IPMCAST_GLOBAL {
+ dwEnable: DWORD,
+}}
+pub type PMIB_IPMCAST_GLOBAL = *mut MIB_IPMCAST_GLOBAL;
+STRUCT!{struct MIB_IPMCAST_IF_ENTRY {
+ dwIfIndex: DWORD,
+ dwTtl: DWORD,
+ dwProtocol: DWORD,
+ dwRateLimit: DWORD,
+ ulInMcastOctets: ULONG,
+ ulOutMcastOctets: ULONG,
+}}
+pub type PMIB_IPMCAST_IF_ENTRY = *mut MIB_IPMCAST_IF_ENTRY;
+STRUCT!{struct MIB_IPMCAST_IF_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_IF_ENTRY; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_IF_TABLE = *mut MIB_IPMCAST_IF_TABLE;
+// FIXME: SIZEOF_MCAST_IF_TABLE(x)
diff --git a/third_party/rust/winapi/src/shared/iprtrmib.rs b/third_party/rust/winapi/src/shared/iprtrmib.rs
new file mode 100644
index 0000000000..cc47767fe3
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/iprtrmib.rs
@@ -0,0 +1,125 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+// #include <winapifamily.h>
+// #include <mprapidef.h>
+// #include <ipifcons.h>
+// #include <ipmib.h>
+// #include <tcpmib.h>
+// #include <udpmib.h>
+use shared::ipmib::MIB_IPFORWARDROW;
+use shared::minwindef::{BOOL, BYTE, DWORD};
+use shared::ntdef::{PWCHAR, ULONGLONG, WCHAR};
+pub const MAX_SCOPE_NAME_LEN: usize = 255;
+pub const MAX_MIB_OFFSET: usize = 8;
+const ANY_SIZE: usize = 1;
+STRUCT!{struct MIB_OPAQUE_QUERY {
+ dwVarId: DWORD,
+ rgdwVarIndex: [DWORD; ANY_SIZE],
+}}
+pub type PMIB_OPAQUE_QUERY = *mut MIB_OPAQUE_QUERY;
+ENUM!{enum TCP_TABLE_CLASS {
+ TCP_TABLE_BASIC_LISTENER = 0,
+ TCP_TABLE_BASIC_CONNECTIONS = 1,
+ TCP_TABLE_BASIC_ALL = 2,
+ TCP_TABLE_OWNER_PID_LISTENER = 3,
+ TCP_TABLE_OWNER_PID_CONNECTIONS = 4,
+ TCP_TABLE_OWNER_PID_ALL = 5,
+ TCP_TABLE_OWNER_MODULE_LISTENER = 6,
+ TCP_TABLE_OWNER_MODULE_CONNECTIONS = 7,
+ TCP_TABLE_OWNER_MODULE_ALL = 8,
+}}
+pub type PTCP_TABLE_CLASS = *mut TCP_TABLE_CLASS;
+ENUM!{enum UDP_TABLE_CLASS {
+ UDP_TABLE_BASIC = 0,
+ UDP_TABLE_OWNER_PID = 1,
+ UDP_TABLE_OWNER_MODULE = 2,
+}}
+pub type PUDP_TABLE_CLASS = *mut UDP_TABLE_CLASS;
+ENUM!{enum TCPIP_OWNER_MODULE_INFO_CLASS {
+ TCPIP_OWNER_MODULE_INFO_BASIC = 0,
+}}
+pub type PTCPIP_OWNER_MODULE_INFO_CLASS = *mut TCPIP_OWNER_MODULE_INFO_CLASS;
+STRUCT!{struct TCPIP_OWNER_MODULE_BASIC_INFO {
+ pModuleName: PWCHAR,
+ pModulePath: PWCHAR,
+}}
+pub type PTCPIP_OWNER_MODULE_BASIC_INFO = *mut TCPIP_OWNER_MODULE_BASIC_INFO;
+STRUCT!{struct MIB_IPMCAST_BOUNDARY {
+ dwIfIndex: DWORD,
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+ dwStatus: DWORD,
+}}
+pub type PMIB_IPMCAST_BOUNDARY = *mut MIB_IPMCAST_BOUNDARY;
+STRUCT!{struct MIB_IPMCAST_BOUNDARY_TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPMCAST_BOUNDARY; ANY_SIZE],
+}}
+pub type PMIB_IPMCAST_BOUNDARY_TABLE = *mut MIB_IPMCAST_BOUNDARY_TABLE;
+STRUCT!{struct MIB_BOUNDARYROW {
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+}}
+pub type PMIB_BOUNDARYROW = *mut MIB_BOUNDARYROW;
+STRUCT!{struct MIB_MCAST_LIMIT_ROW {
+ dwTtl: DWORD,
+ dwRateLimit: DWORD,
+}}
+pub type PMIB_MCAST_LIMIT_ROW = *mut MIB_MCAST_LIMIT_ROW;
+pub type SN_CHAR = WCHAR;
+pub type SCOPE_NAME_BUFFER = [SN_CHAR; MAX_SCOPE_NAME_LEN + 1];
+pub type SCOPE_NAME = *mut SCOPE_NAME_BUFFER;
+STRUCT!{struct MIB_IPMCAST_SCOPE {
+ dwGroupAddress: DWORD,
+ dwGroupMask: DWORD,
+ snNameBuffer: SCOPE_NAME_BUFFER,
+ dwStatus: DWORD,
+}}
+pub type PMIB_IPMCAST_SCOPE = *mut MIB_IPMCAST_SCOPE;
+STRUCT!{struct MIB_IPDESTROW {
+ ForwardRow: MIB_IPFORWARDROW,
+ dwForwardPreference: DWORD,
+ dwForwardViewSet: DWORD,
+}}
+pub type PMIB_IPDESTROW = *mut MIB_IPDESTROW;
+STRUCT!{struct MIB_IPDESTTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_IPDESTROW; ANY_SIZE],
+}}
+pub type PMIB_IPDESTTABLE = *mut MIB_IPDESTTABLE;
+STRUCT!{struct MIB_BEST_IF {
+ dwDestAddr: DWORD,
+ dwIfIndex: DWORD,
+}}
+pub type PMIB_BEST_IF = *mut MIB_BEST_IF;
+STRUCT!{struct MIB_PROXYARP {
+ dwAddress: DWORD,
+ dwMask: DWORD,
+ dwIfIndex: DWORD,
+}}
+pub type PMIB_PROXYARP = *mut MIB_PROXYARP;
+STRUCT!{struct MIB_IFSTATUS {
+ dwIfIndex: DWORD,
+ dwAdminStatus: DWORD,
+ dwOperationalStatus: DWORD,
+ bMHbeatActive: BOOL,
+ bMHbeatAlive: BOOL,
+}}
+pub type PMIB_IFSTATUS = *mut MIB_IFSTATUS;
+STRUCT!{struct MIB_ROUTESTATE {
+ bRoutesSetToStack: BOOL,
+}}
+pub type PMIB_ROUTESTATE = *mut MIB_ROUTESTATE;
+UNION!{union MIB_OPAQUE_INFO_u {
+ [u64; 1],
+ ullAlign ullAlign_mut: ULONGLONG,
+ rgbyData rgbyData_mut: [BYTE; 1],
+}}
+STRUCT!{struct MIB_OPAQUE_INFO {
+ dwId: DWORD,
+ u: MIB_OPAQUE_INFO_u,
+}}
+pub type PMIB_OPAQUE_INFO = *mut MIB_OPAQUE_INFO;
diff --git a/third_party/rust/winapi/src/shared/ks.rs b/third_party/rust/winapi/src/shared/ks.rs
new file mode 100644
index 0000000000..3a2ab103cd
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ks.rs
@@ -0,0 +1,63 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+// Licensed under the MIT License <LICENSE.md>
+//! Mappings for the contents of ks.h
+DEFINE_GUID!{KSCATEGORY_BRIDGE,
+ 0x085AFF00, 0x62CE, 0x11CF, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_CAPTURE,
+ 0x65E8773D, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_VIDEO_CAMERA,
+ 0xe5323777, 0xf976, 0x4f5b, 0x9b, 0x55, 0xb9, 0x46, 0x99, 0xc4, 0x6e, 0x44}
+DEFINE_GUID!{KSCATEGORY_SENSOR_CAMERA,
+ 0x24e552d7, 0x6523, 0x47f7, 0xa6, 0x47, 0xd3, 0x46, 0x5b, 0xf1, 0xf5, 0xca}
+DEFINE_GUID!{KSCATEGORY_SENSOR_GROUP,
+ 0x669C7214, 0x0A88, 0x4311, 0xA7, 0xF3, 0x4E, 0x79, 0x82, 0x0E, 0x33, 0xBD}
+DEFINE_GUID!{KSCATEGORY_RENDER,
+ 0x65E8773E, 0x8F56, 0x11D0, 0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_MIXER,
+ 0xAD809C00, 0x7B88, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_SPLITTER,
+ 0x0A4252A0, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATACOMPRESSOR,
+ 0x1E84C900, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATADECOMPRESSOR,
+ 0x2721AE20, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_DATATRANSFORM,
+ 0x2EB07EA0, 0x7E70, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_DECODER,
+ 0xd6c02d4b, 0x6833, 0x45b4, 0x97, 0x1a, 0x05, 0xa4, 0xb0, 0x4b, 0xab, 0x91}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_ENCODER,
+ 0xf79eac7d, 0xe545, 0x4387, 0xbd, 0xee, 0xd6, 0x47, 0xd7, 0xbd, 0xe4, 0x2a}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_EFFECT,
+ 0x12e17c21, 0x532c, 0x4a6e, 0x8a, 0x1c, 0x40, 0x82, 0x5a, 0x73, 0x63, 0x97}
+DEFINE_GUID!{KSMFT_CATEGORY_MULTIPLEXER,
+ 0x059c561e, 0x05ae, 0x4b61, 0xb6, 0x9d, 0x55, 0xb6, 0x1e, 0xe5, 0x4a, 0x7b}
+DEFINE_GUID!{KSMFT_CATEGORY_DEMULTIPLEXER,
+ 0xa8700a7a, 0x939b, 0x44c5, 0x99, 0xd7, 0x76, 0x22, 0x6b, 0x23, 0xb3, 0xf1}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_DECODER,
+ 0x9ea73fb4, 0xef7a, 0x4559, 0x8d, 0x5d, 0x71, 0x9d, 0x8f, 0x04, 0x26, 0xc7}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_ENCODER,
+ 0x91c64bd0, 0xf91e, 0x4d8c, 0x92, 0x76, 0xdb, 0x24, 0x82, 0x79, 0xd9, 0x75}
+DEFINE_GUID!{KSMFT_CATEGORY_AUDIO_EFFECT,
+ 0x11064c48, 0x3648, 0x4ed0, 0x93, 0x2e, 0x05, 0xce, 0x8a, 0xc8, 0x11, 0xb7}
+DEFINE_GUID!{KSMFT_CATEGORY_VIDEO_PROCESSOR,
+ 0x302ea3fc, 0xaa5f, 0x47f9, 0x9f, 0x7a, 0xc2, 0x18, 0x8b, 0xb1, 0x63, 0x02}
+DEFINE_GUID!{KSMFT_CATEGORY_OTHER,
+ 0x90175d57, 0xb7ea, 0x4901, 0xae, 0xb3, 0x93, 0x3a, 0x87, 0x47, 0x75, 0x6f}
+DEFINE_GUID!{KSCATEGORY_COMMUNICATIONSTRANSFORM,
+ 0xCF1DDA2C, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_INTERFACETRANSFORM,
+ 0xCF1DDA2D, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_MEDIUMTRANSFORM,
+ 0xCF1DDA2E, 0x9743, 0x11D0, 0xA3, 0xEE, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_FILESYSTEM,
+ 0x760FED5E, 0x9357, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_CLOCK,
+ 0x53172480, 0x4791, 0x11D0, 0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_PROXY,
+ 0x97EBAACA, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_QUALITY,
+ 0x97EBAACB, 0x95BD, 0x11D0, 0xA3, 0xEA, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
diff --git a/third_party/rust/winapi/src/shared/ksmedia.rs b/third_party/rust/winapi/src/shared/ksmedia.rs
new file mode 100644
index 0000000000..cd640376e6
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ksmedia.rs
@@ -0,0 +1,110 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+// Licensed under the MIT License <LICENSE.md>
+//! Mappings for the contents of ksmedia.h
+use shared::minwindef::DWORD;
+DEFINE_GUID!{KSCATEGORY_AUDIO,
+ 0x6994AD04, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_VIDEO,
+ 0x6994AD05, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_REALTIME,
+ 0xEB115FFC, 0x10C8, 0x4964, 0x83, 0x1D, 0x6D, 0xCB, 0x02, 0xE6, 0xF2, 0x3F}
+DEFINE_GUID!{KSCATEGORY_TEXT,
+ 0x6994AD06, 0x93EF, 0x11D0, 0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_NETWORK,
+ 0x67C9CC3C, 0x69C4, 0x11D2, 0x87, 0x59, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_TOPOLOGY,
+ 0xDDA54A40, 0x1E4C, 0x11D1, 0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00}
+DEFINE_GUID!{KSCATEGORY_VIRTUAL,
+ 0x3503EAC4, 0x1F26, 0x11D1, 0x8A, 0xB0, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
+DEFINE_GUID!{KSCATEGORY_ACOUSTIC_ECHO_CANCEL,
+ 0xBF963D80, 0xC559, 0x11D0, 0x8A, 0x2B, 0x00, 0xA0, 0xC9, 0x25, 0x5A, 0xC1}
+DEFINE_GUID!{KSCATEGORY_SYSAUDIO,
+ 0xA7C7A5B1, 0x5AF3, 0x11D1, 0x9C, 0xED, 0x00, 0xA0, 0x24, 0xBF, 0x04, 0x07}
+DEFINE_GUID!{KSCATEGORY_WDMAUD,
+ 0x3E227E76, 0x690D, 0x11D2, 0x81, 0x61, 0x00, 0x00, 0xF8, 0x77, 0x5B, 0xF1}
+DEFINE_GUID!{KSCATEGORY_AUDIO_GFX,
+ 0x9BAF9572, 0x340C, 0x11D3, 0xAB, 0xDC, 0x00, 0xA0, 0xC9, 0x0A, 0xB1, 0x6F}
+DEFINE_GUID!{KSCATEGORY_AUDIO_SPLITTER,
+ 0x9EA331FA, 0xB91B, 0x45F8, 0x92, 0x85, 0xBD, 0x2B, 0xC7, 0x7A, 0xFC, 0xDE}
+DEFINE_GUID!{KSCATEGORY_AUDIO_DEVICE,
+ 0xFBF6F530, 0x07B9, 0x11D2, 0xA7, 0x1E, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_WAVEOUT_DEVICE,
+ 0xD6C5066E, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_WAVEIN_DEVICE,
+ 0xD6C50671, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_PREFERRED_MIDIOUT_DEVICE,
+ 0xD6C50674, 0x72C1, 0x11D2, 0x97, 0x55, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_WDMAUD_USE_PIN_NAME,
+ 0x47A4FA20, 0xA251, 0x11D1, 0xA0, 0x50, 0x00, 0x00, 0xF8, 0x00, 0x47, 0x88}
+DEFINE_GUID!{KSCATEGORY_ESCALANTE_PLATFORM_DRIVER,
+ 0x74F3AEA8, 0x9768, 0x11D1, 0x8E, 0x07, 0x00, 0xA0, 0xC9, 0x5E, 0xC2, 0x2E}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ANALOG,
+ 0x6DBA3190, 0x67BD, 0x11CF, 0xA0, 0xF7, 0x00, 0x20, 0xAF, 0xD1, 0x56, 0xE4}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_PCM,
+ 0x00000001, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_IEEE_FLOAT,
+ 0x00000003, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_DRM,
+ 0x00000009, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ALAW,
+ 0x00000006, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_MULAW,
+ 0x00000007, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_ADPCM,
+ 0x00000002, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+DEFINE_GUID!{KSDATAFORMAT_SUBTYPE_MPEG,
+ 0x00000050, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71}
+//1720
+pub const SPEAKER_FRONT_LEFT: DWORD = 0x1;
+pub const SPEAKER_FRONT_RIGHT: DWORD = 0x2;
+pub const SPEAKER_FRONT_CENTER: DWORD = 0x4;
+pub const SPEAKER_LOW_FREQUENCY: DWORD = 0x8;
+pub const SPEAKER_BACK_LEFT: DWORD = 0x10;
+pub const SPEAKER_BACK_RIGHT: DWORD = 0x20;
+pub const SPEAKER_FRONT_LEFT_OF_CENTER: DWORD = 0x40;
+pub const SPEAKER_FRONT_RIGHT_OF_CENTER: DWORD = 0x80;
+pub const SPEAKER_BACK_CENTER: DWORD = 0x100;
+pub const SPEAKER_SIDE_LEFT: DWORD = 0x200;
+pub const SPEAKER_SIDE_RIGHT: DWORD = 0x400;
+pub const SPEAKER_TOP_CENTER: DWORD = 0x800;
+pub const SPEAKER_TOP_FRONT_LEFT: DWORD = 0x1000;
+pub const SPEAKER_TOP_FRONT_CENTER: DWORD = 0x2000;
+pub const SPEAKER_TOP_FRONT_RIGHT: DWORD = 0x4000;
+pub const SPEAKER_TOP_BACK_LEFT: DWORD = 0x8000;
+pub const SPEAKER_TOP_BACK_CENTER: DWORD = 0x10000;
+pub const SPEAKER_TOP_BACK_RIGHT: DWORD = 0x20000;
+pub const SPEAKER_RESERVED: DWORD = 0x7FFC0000;
+pub const SPEAKER_ALL: DWORD = 0x80000000;
+pub const KSAUDIO_SPEAKER_DIRECTOUT: DWORD = 0;
+pub const KSAUDIO_SPEAKER_MONO: DWORD = SPEAKER_FRONT_CENTER;
+pub const KSAUDIO_SPEAKER_1POINT1: DWORD = SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_STEREO: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT;
+pub const KSAUDIO_SPEAKER_2POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_3POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER;
+pub const KSAUDIO_SPEAKER_3POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY;
+pub const KSAUDIO_SPEAKER_QUAD: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT;
+pub const KSAUDIO_SPEAKER_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER;
+pub const KSAUDIO_SPEAKER_5POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_5POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT0: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | SPEAKER_SIDE_LEFT
+ | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT1: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT
+ | SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER;
+pub const KSAUDIO_SPEAKER_5POINT1_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
+pub const KSAUDIO_SPEAKER_7POINT1_SURROUND: DWORD = SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT
+ | SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT
+ | SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT;
diff --git a/third_party/rust/winapi/src/shared/ktmtypes.rs b/third_party/rust/winapi/src/shared/ktmtypes.rs
new file mode 100644
index 0000000000..77394e2d54
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ktmtypes.rs
@@ -0,0 +1,138 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Common types for KTM exposed at both the Nt- and Win32-layer
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, ULONG};
+use um::winnt::{LARGE_INTEGER, PVOID, WCHAR};
+pub type UOW = GUID;
+pub type PUOW = *mut GUID;
+pub type CRM_PROTOCOL_ID = GUID;
+pub type PCRM_PROTOCOL_ID = *mut GUID;
+pub const TRANSACTION_MANAGER_VOLATILE: ULONG = 0x00000001;
+pub const TRANSACTION_MANAGER_COMMIT_DEFAULT: ULONG = 0x00000000;
+pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME: ULONG = 0x00000002;
+pub const TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES: ULONG = 0x00000004;
+pub const TRANSACTION_MANAGER_COMMIT_LOWEST: ULONG = 0x00000008;
+pub const TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY: ULONG = 0x00000010;
+pub const TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS: ULONG = 0x00000020;
+pub const TRANSACTION_MANAGER_MAXIMUM_OPTION: ULONG = 0x0000003F;
+pub const TRANSACTION_DO_NOT_PROMOTE: DWORD = 0x00000001;
+pub const TRANSACTION_MAXIMUM_OPTION: DWORD = 0x00000001;
+pub const RESOURCE_MANAGER_VOLATILE: DWORD = 0x00000001;
+pub const RESOURCE_MANAGER_COMMUNICATION: DWORD = 0x00000002;
+pub const RESOURCE_MANAGER_MAXIMUM_OPTION: DWORD = 0x00000003;
+pub const CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY: DWORD = 0x00000001;
+pub const CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO: DWORD = 0x00000002;
+pub const CRM_PROTOCOL_MAXIMUM_OPTION: DWORD = 0x00000003;
+pub const ENLISTMENT_SUPERIOR: ULONG = 0x00000001;
+pub const ENLISTMENT_MAXIMUM_OPTION: ULONG = 0x00000001;
+pub type NOTIFICATION_MASK = ULONG;
+pub const TRANSACTION_NOTIFY_MASK: ULONG = 0x3FFFFFFF;
+pub const TRANSACTION_NOTIFY_PREPREPARE: ULONG = 0x00000001;
+pub const TRANSACTION_NOTIFY_PREPARE: ULONG = 0x00000002;
+pub const TRANSACTION_NOTIFY_COMMIT: ULONG = 0x00000004;
+pub const TRANSACTION_NOTIFY_ROLLBACK: ULONG = 0x00000008;
+pub const TRANSACTION_NOTIFY_PREPREPARE_COMPLETE: ULONG = 0x00000010;
+pub const TRANSACTION_NOTIFY_PREPARE_COMPLETE: ULONG = 0x00000020;
+pub const TRANSACTION_NOTIFY_COMMIT_COMPLETE: ULONG = 0x00000040;
+pub const TRANSACTION_NOTIFY_ROLLBACK_COMPLETE: ULONG = 0x00000080;
+pub const TRANSACTION_NOTIFY_RECOVER: ULONG = 0x00000100;
+pub const TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT: ULONG = 0x00000200;
+pub const TRANSACTION_NOTIFY_DELEGATE_COMMIT: ULONG = 0x00000400;
+pub const TRANSACTION_NOTIFY_RECOVER_QUERY: ULONG = 0x00000800;
+pub const TRANSACTION_NOTIFY_ENLIST_PREPREPARE: ULONG = 0x00001000;
+pub const TRANSACTION_NOTIFY_LAST_RECOVER: ULONG = 0x00002000;
+pub const TRANSACTION_NOTIFY_INDOUBT: ULONG = 0x00004000;
+pub const TRANSACTION_NOTIFY_PROPAGATE_PULL: ULONG = 0x00008000;
+pub const TRANSACTION_NOTIFY_PROPAGATE_PUSH: ULONG = 0x00010000;
+pub const TRANSACTION_NOTIFY_MARSHAL: ULONG = 0x00020000;
+pub const TRANSACTION_NOTIFY_ENLIST_MASK: ULONG = 0x00040000;
+pub const TRANSACTION_NOTIFY_RM_DISCONNECTED: ULONG = 0x01000000;
+pub const TRANSACTION_NOTIFY_TM_ONLINE: ULONG = 0x02000000;
+pub const TRANSACTION_NOTIFY_COMMIT_REQUEST: ULONG = 0x04000000;
+pub const TRANSACTION_NOTIFY_PROMOTE: ULONG = 0x08000000;
+pub const TRANSACTION_NOTIFY_PROMOTE_NEW: ULONG = 0x10000000;
+pub const TRANSACTION_NOTIFY_REQUEST_OUTCOME: ULONG = 0x20000000;
+pub const TRANSACTION_NOTIFY_COMMIT_FINALIZE: ULONG = 0x40000000;
+pub const TRANSACTIONMANAGER_OBJECT_PATH: &'static str = "\\TransactionManager\\";
+pub const TRANSACTION_OBJECT_PATH: &'static str = "\\Transaction\\";
+pub const ENLISTMENT_OBJECT_PATH: &'static str = "\\Enlistment\\";
+pub const RESOURCE_MANAGER_OBJECT_PATH: &'static str = "\\ResourceManager\\";
+STRUCT!{struct TRANSACTION_NOTIFICATION {
+ TransactionKey: PVOID,
+ TransactionNotification: ULONG,
+ TmVirtualClock: LARGE_INTEGER,
+ ArgumentLength: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION = *mut TRANSACTION_NOTIFICATION;
+STRUCT!{struct TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT {
+ EnlistmentId: GUID,
+ UOW: UOW,
+}}
+pub type PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
+pub const TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED: ULONG = 0x1;
+STRUCT!{struct TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT {
+ TmIdentity: GUID,
+ Flags: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
+pub type SAVEPOINT_ID = ULONG;
+pub type PSAVEPOINT_ID = *mut ULONG;
+STRUCT!{struct TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT {
+ SavepointId: SAVEPOINT_ID,
+}}
+pub type PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
+STRUCT!{struct TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT {
+ PropagationCookie: ULONG,
+ UOW: GUID,
+ TmIdentity: GUID,
+ BufferLength: ULONG,
+}}
+pub type PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+STRUCT!{struct TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT {
+ MarshalCookie: ULONG,
+ UOW: GUID,
+}}
+pub type PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
+pub type TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+pub type PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT
+ = *mut TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
+pub const KTM_MARSHAL_BLOB_VERSION_MAJOR: ULONG = 1;
+pub const KTM_MARSHAL_BLOB_VERSION_MINOR: ULONG = 1;
+pub const MAX_TRANSACTION_DESCRIPTION_LENGTH: usize = 64;
+pub const MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH: usize = 64;
+STRUCT!{struct KCRM_MARSHAL_HEADER {
+ VersionMajor: ULONG,
+ VersionMinor: ULONG,
+ NumProtocols: ULONG,
+ Unused: ULONG,
+}}
+pub type PKCRM_MARSHAL_HEADER = *mut KCRM_MARSHAL_HEADER;
+pub type PRKCRM_MARSHAL_HEADER = *mut KCRM_MARSHAL_HEADER;
+STRUCT!{struct KCRM_TRANSACTION_BLOB {
+ UOW: UOW,
+ TmIdentity: GUID,
+ IsolationLevel: ULONG,
+ IsolationFlags: ULONG,
+ Timeout: ULONG,
+ Description: [WCHAR; MAX_TRANSACTION_DESCRIPTION_LENGTH],
+}}
+pub type PKCRM_TRANSACTION_BLOB = *mut KCRM_TRANSACTION_BLOB;
+pub type PRKCRM_TRANSACTION_BLOB = *mut KCRM_TRANSACTION_BLOB;
+STRUCT!{struct KCRM_PROTOCOL_BLOB {
+ ProtocolId: CRM_PROTOCOL_ID,
+ StaticInfoLength: ULONG,
+ TransactionIdInfoLength: ULONG,
+ Unused1: ULONG,
+ Unused2: ULONG,
+}}
+pub type PKCRM_PROTOCOL_BLOB = *mut KCRM_PROTOCOL_BLOB;
+pub type PRKCRM_PROTOCOL_BLOB = *mut KCRM_PROTOCOL_BLOB;
diff --git a/third_party/rust/winapi/src/shared/lmcons.rs b/third_party/rust/winapi/src/shared/lmcons.rs
new file mode 100644
index 0000000000..ca2819b4ff
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/lmcons.rs
@@ -0,0 +1,60 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! This file contains constants used throughout the LAN Manager API header files.
+use shared::minwindef::DWORD;
+use um::winnt::{LPCWSTR, LPWSTR};
+pub const CNLEN: DWORD = 15;
+pub const LM20_CNLEN: DWORD = 15;
+pub const DNLEN: DWORD = CNLEN;
+pub const LM20_DNLEN: DWORD = LM20_CNLEN;
+pub const UNCLEN: DWORD = CNLEN + 2;
+pub const LM20_UNCLEN: DWORD = LM20_CNLEN + 2;
+pub const NNLEN: DWORD = 80;
+pub const LM20_NNLEN: DWORD = 12;
+pub const RMLEN: DWORD = UNCLEN + 1 + NNLEN;
+pub const LM20_RMLEN: DWORD = LM20_UNCLEN + 1 + LM20_NNLEN;
+pub const SNLEN: usize = 80;
+pub const LM20_SNLEN: DWORD = 15;
+pub const STXTLEN: DWORD = 256;
+pub const LM20_STXTLEN: DWORD = 63;
+pub const PATHLEN: DWORD = 256;
+pub const LM20_PATHLEN: DWORD = 256;
+pub const DEVLEN: DWORD = 80;
+pub const LM20_DEVLEN: DWORD = 8;
+pub const EVLEN: usize = 16;
+pub const UNLEN: DWORD = 256;
+pub const LM20_UNLEN: DWORD = 20;
+pub const GNLEN: DWORD = UNLEN;
+pub const LM20_GNLEN: DWORD = LM20_UNLEN;
+pub const PWLEN: DWORD = 256;
+pub const LM20_PWLEN: DWORD = 14;
+pub const SHPWLEN: DWORD = 8;
+pub const CLTYPE_LEN: DWORD = 12;
+pub const MAXCOMMENTSZ: DWORD = 256;
+pub const LM20_MAXCOMMENTSZ: DWORD = 48;
+pub const QNLEN: DWORD = NNLEN;
+pub const LM20_QNLEN: DWORD = LM20_NNLEN;
+pub const ALERTSZ: DWORD = 128;
+pub const MAXDEVENTRIES: DWORD = 4 * 8; // FIXME: sizeof(int) instead of 4
+pub const NETBIOS_NAME_LEN: DWORD = 16;
+pub const MAX_PREFERRED_LENGTH: DWORD = -1i32 as u32;
+pub const CRYPT_KEY_LEN: DWORD = 7;
+pub const CRYPT_TXT_LEN: DWORD = 8;
+pub const ENCRYPTED_PWLEN: usize = 16;
+pub const SESSION_PWLEN: DWORD = 24;
+pub const SESSION_CRYPT_KLEN: DWORD = 21;
+pub const PARM_ERROR_UNKNOWN: DWORD = -1i32 as u32;
+pub const PARM_ERROR_NONE: DWORD = 0;
+pub const PARMNUM_BASE_INFOLEVEL: DWORD = 1000;
+pub type LMSTR = LPWSTR;
+pub type LMCSTR = LPCWSTR;
+pub type NET_API_STATUS = DWORD;
+pub type API_RET_TYPE = NET_API_STATUS;
+pub const PLATFORM_ID_DOS: DWORD = 300;
+pub const PLATFORM_ID_OS2: DWORD = 400;
+pub const PLATFORM_ID_NT: DWORD = 500;
+pub const PLATFORM_ID_OSF: DWORD = 600;
+pub const PLATFORM_ID_VMS: DWORD = 700;
diff --git a/third_party/rust/winapi/src/shared/minwindef.rs b/third_party/rust/winapi/src/shared/minwindef.rs
new file mode 100644
index 0000000000..6c2e38d2ca
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/minwindef.rs
@@ -0,0 +1,102 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Basic Windows Type Definitions for minwin partition
+use ctypes::{c_char, c_float, c_int, c_long, c_uchar, c_uint, c_ulong, c_ushort, c_void};
+use shared::basetsd::{LONG_PTR, UINT_PTR};
+use shared::ntdef::{HANDLE, LONG};
+pub type ULONG = c_ulong;
+pub type PULONG = *mut ULONG;
+pub type USHORT = c_ushort;
+pub type PUSHORT = *mut USHORT;
+pub type UCHAR = c_uchar;
+pub type PUCHAR = *mut UCHAR;
+pub type PSZ = *mut c_char;
+pub const MAX_PATH: usize = 260;
+pub const FALSE: BOOL = 0;
+pub const TRUE: BOOL = 1;
+pub type DWORD = c_ulong;
+pub type BOOL = c_int;
+pub type BYTE = c_uchar;
+pub type WORD = c_ushort;
+pub type FLOAT = c_float;
+pub type PFLOAT = *mut FLOAT;
+pub type PBOOL = *mut BOOL;
+pub type LPBOOL = *mut BOOL;
+pub type PBYTE = *mut BYTE;
+pub type LPBYTE = *mut BYTE;
+pub type PINT = *mut c_int;
+pub type LPINT = *mut c_int;
+pub type PWORD = *mut WORD;
+pub type LPWORD = *mut WORD;
+pub type LPLONG = *mut c_long;
+pub type PDWORD = *mut DWORD;
+pub type LPDWORD = *mut DWORD;
+pub type LPVOID = *mut c_void;
+pub type LPCVOID = *const c_void;
+pub type INT = c_int;
+pub type UINT = c_uint;
+pub type PUINT = *mut c_uint;
+pub type WPARAM = UINT_PTR;
+pub type LPARAM = LONG_PTR;
+pub type LRESULT = LONG_PTR;
+#[inline]
+pub fn MAKEWORD(a: BYTE, b: BYTE) -> WORD {
+ (a as WORD) | ((b as WORD) << 8)
+}
+#[inline]
+pub fn MAKELONG(a: WORD, b: WORD) -> LONG {
+ ((a as DWORD) | ((b as DWORD) << 16)) as LONG
+}
+#[inline]
+pub fn LOWORD(l: DWORD) -> WORD {
+ (l & 0xffff) as WORD
+}
+#[inline]
+pub fn HIWORD(l: DWORD) -> WORD {
+ ((l >> 16) & 0xffff) as WORD
+}
+#[inline]
+pub fn LOBYTE(l: WORD) -> BYTE {
+ (l & 0xff) as BYTE
+}
+#[inline]
+pub fn HIBYTE(l: WORD) -> BYTE {
+ ((l >> 8) & 0xff) as BYTE
+}
+pub type SPHANDLE = *mut HANDLE;
+pub type LPHANDLE = *mut HANDLE;
+pub type HGLOBAL = HANDLE;
+pub type HLOCAL = HANDLE;
+pub type GLOBALHANDLE = HANDLE;
+pub type LOCALHANDLE = HANDLE;
+pub enum __some_function {}
+/// Pointer to a function with unknown type signature.
+pub type FARPROC = *mut __some_function;
+/// Pointer to a function with unknown type signature.
+pub type NEARPROC = *mut __some_function;
+/// Pointer to a function with unknown type signature.
+pub type PROC = *mut __some_function;
+pub type ATOM = WORD;
+DECLARE_HANDLE!{HKEY, HKEY__}
+pub type PHKEY = *mut HKEY;
+DECLARE_HANDLE!{HMETAFILE, HMETAFILE__}
+DECLARE_HANDLE!{HINSTANCE, HINSTANCE__}
+pub type HMODULE = HINSTANCE;
+DECLARE_HANDLE!{HRGN, HRGN__}
+DECLARE_HANDLE!{HRSRC, HRSRC__}
+DECLARE_HANDLE!{HSPRITE, HSPRITE__}
+DECLARE_HANDLE!{HLSURF, HLSURF__}
+DECLARE_HANDLE!{HSTR, HSTR__}
+DECLARE_HANDLE!{HTASK, HTASK__}
+DECLARE_HANDLE!{HWINSTA, HWINSTA__}
+DECLARE_HANDLE!{HKL, HKL__}
+pub type HFILE = c_int;
+STRUCT!{#[debug] struct FILETIME {
+ dwLowDateTime: DWORD,
+ dwHighDateTime: DWORD,
+}}
+pub type PFILETIME = *mut FILETIME;
+pub type LPFILETIME = *mut FILETIME;
diff --git a/third_party/rust/winapi/src/shared/mmreg.rs b/third_party/rust/winapi/src/shared/mmreg.rs
new file mode 100644
index 0000000000..06ad900f22
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/mmreg.rs
@@ -0,0 +1,309 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, WORD};
+pub const WAVE_FORMAT_UNKNOWN: WORD = 0x0000;
+pub const WAVE_FORMAT_PCM: WORD = 0x0001;
+pub const WAVE_FORMAT_ADPCM: WORD = 0x0002;
+pub const WAVE_FORMAT_IEEE_FLOAT: WORD = 0x0003;
+pub const WAVE_FORMAT_VSELP: WORD = 0x0004;
+pub const WAVE_FORMAT_IBM_CVSD: WORD = 0x0005;
+pub const WAVE_FORMAT_ALAW: WORD = 0x0006;
+pub const WAVE_FORMAT_MULAW: WORD = 0x0007;
+pub const WAVE_FORMAT_DTS: WORD = 0x0008;
+pub const WAVE_FORMAT_DRM: WORD = 0x0009;
+pub const WAVE_FORMAT_WMAVOICE9: WORD = 0x000A;
+pub const WAVE_FORMAT_WMAVOICE10: WORD = 0x000B;
+pub const WAVE_FORMAT_OKI_ADPCM: WORD = 0x0010;
+pub const WAVE_FORMAT_DVI_ADPCM: WORD = 0x0011;
+pub const WAVE_FORMAT_IMA_ADPCM: WORD = WAVE_FORMAT_DVI_ADPCM;
+pub const WAVE_FORMAT_MEDIASPACE_ADPCM: WORD = 0x0012;
+pub const WAVE_FORMAT_SIERRA_ADPCM: WORD = 0x0013;
+pub const WAVE_FORMAT_G723_ADPCM: WORD = 0x0014;
+pub const WAVE_FORMAT_DIGISTD: WORD = 0x0015;
+pub const WAVE_FORMAT_DIGIFIX: WORD = 0x0016;
+pub const WAVE_FORMAT_DIALOGIC_OKI_ADPCM: WORD = 0x0017;
+pub const WAVE_FORMAT_MEDIAVISION_ADPCM: WORD = 0x0018;
+pub const WAVE_FORMAT_CU_CODEC: WORD = 0x0019;
+pub const WAVE_FORMAT_HP_DYN_VOICE: WORD = 0x001A;
+pub const WAVE_FORMAT_YAMAHA_ADPCM: WORD = 0x0020;
+pub const WAVE_FORMAT_SONARC: WORD = 0x0021;
+pub const WAVE_FORMAT_DSPGROUP_TRUESPEECH: WORD = 0x0022;
+pub const WAVE_FORMAT_ECHOSC1: WORD = 0x0023;
+pub const WAVE_FORMAT_AUDIOFILE_AF36: WORD = 0x0024;
+pub const WAVE_FORMAT_APTX: WORD = 0x0025;
+pub const WAVE_FORMAT_AUDIOFILE_AF10: WORD = 0x0026;
+pub const WAVE_FORMAT_PROSODY_1612: WORD = 0x0027;
+pub const WAVE_FORMAT_LRC: WORD = 0x0028;
+pub const WAVE_FORMAT_DOLBY_AC2: WORD = 0x0030;
+pub const WAVE_FORMAT_GSM610: WORD = 0x0031;
+pub const WAVE_FORMAT_MSNAUDIO: WORD = 0x0032;
+pub const WAVE_FORMAT_ANTEX_ADPCME: WORD = 0x0033;
+pub const WAVE_FORMAT_CONTROL_RES_VQLPC: WORD = 0x0034;
+pub const WAVE_FORMAT_DIGIREAL: WORD = 0x0035;
+pub const WAVE_FORMAT_DIGIADPCM: WORD = 0x0036;
+pub const WAVE_FORMAT_CONTROL_RES_CR10: WORD = 0x0037;
+pub const WAVE_FORMAT_NMS_VBXADPCM: WORD = 0x0038;
+pub const WAVE_FORMAT_CS_IMAADPCM: WORD = 0x0039;
+pub const WAVE_FORMAT_ECHOSC3: WORD = 0x003A;
+pub const WAVE_FORMAT_ROCKWELL_ADPCM: WORD = 0x003B;
+pub const WAVE_FORMAT_ROCKWELL_DIGITALK: WORD = 0x003C;
+pub const WAVE_FORMAT_XEBEC: WORD = 0x003D;
+pub const WAVE_FORMAT_G721_ADPCM: WORD = 0x0040;
+pub const WAVE_FORMAT_G728_CELP: WORD = 0x0041;
+pub const WAVE_FORMAT_MSG723: WORD = 0x0042;
+pub const WAVE_FORMAT_INTEL_G723_1: WORD = 0x0043;
+pub const WAVE_FORMAT_INTEL_G729: WORD = 0x0044;
+pub const WAVE_FORMAT_SHARP_G726: WORD = 0x0045;
+pub const WAVE_FORMAT_MPEG: WORD = 0x0050;
+pub const WAVE_FORMAT_RT24: WORD = 0x0052;
+pub const WAVE_FORMAT_PAC: WORD = 0x0053;
+pub const WAVE_FORMAT_MPEGLAYER3: WORD = 0x0055;
+pub const WAVE_FORMAT_LUCENT_G723: WORD = 0x0059;
+pub const WAVE_FORMAT_CIRRUS: WORD = 0x0060;
+pub const WAVE_FORMAT_ESPCM: WORD = 0x0061;
+pub const WAVE_FORMAT_VOXWARE: WORD = 0x0062;
+pub const WAVE_FORMAT_CANOPUS_ATRAC: WORD = 0x0063;
+pub const WAVE_FORMAT_G726_ADPCM: WORD = 0x0064;
+pub const WAVE_FORMAT_G722_ADPCM: WORD = 0x0065;
+pub const WAVE_FORMAT_DSAT: WORD = 0x0066;
+pub const WAVE_FORMAT_DSAT_DISPLAY: WORD = 0x0067;
+pub const WAVE_FORMAT_VOXWARE_BYTE_ALIGNED: WORD = 0x0069;
+pub const WAVE_FORMAT_VOXWARE_AC8: WORD = 0x0070;
+pub const WAVE_FORMAT_VOXWARE_AC10: WORD = 0x0071;
+pub const WAVE_FORMAT_VOXWARE_AC16: WORD = 0x0072;
+pub const WAVE_FORMAT_VOXWARE_AC20: WORD = 0x0073;
+pub const WAVE_FORMAT_VOXWARE_RT24: WORD = 0x0074;
+pub const WAVE_FORMAT_VOXWARE_RT29: WORD = 0x0075;
+pub const WAVE_FORMAT_VOXWARE_RT29HW: WORD = 0x0076;
+pub const WAVE_FORMAT_VOXWARE_VR12: WORD = 0x0077;
+pub const WAVE_FORMAT_VOXWARE_VR18: WORD = 0x0078;
+pub const WAVE_FORMAT_VOXWARE_TQ40: WORD = 0x0079;
+pub const WAVE_FORMAT_VOXWARE_SC3: WORD = 0x007A;
+pub const WAVE_FORMAT_VOXWARE_SC3_1: WORD = 0x007B;
+pub const WAVE_FORMAT_SOFTSOUND: WORD = 0x0080;
+pub const WAVE_FORMAT_VOXWARE_TQ60: WORD = 0x0081;
+pub const WAVE_FORMAT_MSRT24: WORD = 0x0082;
+pub const WAVE_FORMAT_G729A: WORD = 0x0083;
+pub const WAVE_FORMAT_MVI_MVI2: WORD = 0x0084;
+pub const WAVE_FORMAT_DF_G726: WORD = 0x0085;
+pub const WAVE_FORMAT_DF_GSM610: WORD = 0x0086;
+pub const WAVE_FORMAT_ISIAUDIO: WORD = 0x0088;
+pub const WAVE_FORMAT_ONLIVE: WORD = 0x0089;
+pub const WAVE_FORMAT_MULTITUDE_FT_SX20: WORD = 0x008A;
+pub const WAVE_FORMAT_INFOCOM_ITS_G721_ADPCM: WORD = 0x008B;
+pub const WAVE_FORMAT_CONVEDIA_G729: WORD = 0x008C;
+pub const WAVE_FORMAT_CONGRUENCY: WORD = 0x008D;
+pub const WAVE_FORMAT_SBC24: WORD = 0x0091;
+pub const WAVE_FORMAT_DOLBY_AC3_SPDIF: WORD = 0x0092;
+pub const WAVE_FORMAT_MEDIASONIC_G723: WORD = 0x0093;
+pub const WAVE_FORMAT_PROSODY_8KBPS: WORD = 0x0094;
+pub const WAVE_FORMAT_ZYXEL_ADPCM: WORD = 0x0097;
+pub const WAVE_FORMAT_PHILIPS_LPCBB: WORD = 0x0098;
+pub const WAVE_FORMAT_PACKED: WORD = 0x0099;
+pub const WAVE_FORMAT_MALDEN_PHONYTALK: WORD = 0x00A0;
+pub const WAVE_FORMAT_RACAL_RECORDER_GSM: WORD = 0x00A1;
+pub const WAVE_FORMAT_RACAL_RECORDER_G720_A: WORD = 0x00A2;
+pub const WAVE_FORMAT_RACAL_RECORDER_G723_1: WORD = 0x00A3;
+pub const WAVE_FORMAT_RACAL_RECORDER_TETRA_ACELP: WORD = 0x00A4;
+pub const WAVE_FORMAT_NEC_AAC: WORD = 0x00B0;
+pub const WAVE_FORMAT_RAW_AAC1: WORD = 0x00FF;
+pub const WAVE_FORMAT_RHETOREX_ADPCM: WORD = 0x0100;
+pub const WAVE_FORMAT_IRAT: WORD = 0x0101;
+pub const WAVE_FORMAT_VIVO_G723: WORD = 0x0111;
+pub const WAVE_FORMAT_VIVO_SIREN: WORD = 0x0112;
+pub const WAVE_FORMAT_PHILIPS_CELP: WORD = 0x0120;
+pub const WAVE_FORMAT_PHILIPS_GRUNDIG: WORD = 0x0121;
+pub const WAVE_FORMAT_DIGITAL_G723: WORD = 0x0123;
+pub const WAVE_FORMAT_SANYO_LD_ADPCM: WORD = 0x0125;
+pub const WAVE_FORMAT_SIPROLAB_ACEPLNET: WORD = 0x0130;
+pub const WAVE_FORMAT_SIPROLAB_ACELP4800: WORD = 0x0131;
+pub const WAVE_FORMAT_SIPROLAB_ACELP8V3: WORD = 0x0132;
+pub const WAVE_FORMAT_SIPROLAB_G729: WORD = 0x0133;
+pub const WAVE_FORMAT_SIPROLAB_G729A: WORD = 0x0134;
+pub const WAVE_FORMAT_SIPROLAB_KELVIN: WORD = 0x0135;
+pub const WAVE_FORMAT_VOICEAGE_AMR: WORD = 0x0136;
+pub const WAVE_FORMAT_G726ADPCM: WORD = 0x0140;
+pub const WAVE_FORMAT_DICTAPHONE_CELP68: WORD = 0x0141;
+pub const WAVE_FORMAT_DICTAPHONE_CELP54: WORD = 0x0142;
+pub const WAVE_FORMAT_QUALCOMM_PUREVOICE: WORD = 0x0150;
+pub const WAVE_FORMAT_QUALCOMM_HALFRATE: WORD = 0x0151;
+pub const WAVE_FORMAT_TUBGSM: WORD = 0x0155;
+pub const WAVE_FORMAT_MSAUDIO1: WORD = 0x0160;
+pub const WAVE_FORMAT_WMAUDIO2: WORD = 0x0161;
+pub const WAVE_FORMAT_WMAUDIO3: WORD = 0x0162;
+pub const WAVE_FORMAT_WMAUDIO_LOSSLESS: WORD = 0x0163;
+pub const WAVE_FORMAT_WMASPDIF: WORD = 0x0164;
+pub const WAVE_FORMAT_UNISYS_NAP_ADPCM: WORD = 0x0170;
+pub const WAVE_FORMAT_UNISYS_NAP_ULAW: WORD = 0x0171;
+pub const WAVE_FORMAT_UNISYS_NAP_ALAW: WORD = 0x0172;
+pub const WAVE_FORMAT_UNISYS_NAP_16K: WORD = 0x0173;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC008: WORD = 0x0174;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_G726L: WORD = 0x0175;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP54: WORD = 0x0176;
+pub const WAVE_FORMAT_SYCOM_ACM_SYC701_CELP68: WORD = 0x0177;
+pub const WAVE_FORMAT_KNOWLEDGE_ADVENTURE_ADPCM: WORD = 0x0178;
+pub const WAVE_FORMAT_FRAUNHOFER_IIS_MPEG2_AAC: WORD = 0x0180;
+pub const WAVE_FORMAT_DTS_DS: WORD = 0x0190;
+pub const WAVE_FORMAT_CREATIVE_ADPCM: WORD = 0x0200;
+pub const WAVE_FORMAT_CREATIVE_FASTSPEECH8: WORD = 0x0202;
+pub const WAVE_FORMAT_CREATIVE_FASTSPEECH10: WORD = 0x0203;
+pub const WAVE_FORMAT_UHER_ADPCM: WORD = 0x0210;
+pub const WAVE_FORMAT_ULEAD_DV_AUDIO: WORD = 0x0215;
+pub const WAVE_FORMAT_ULEAD_DV_AUDIO_1: WORD = 0x0216;
+pub const WAVE_FORMAT_QUARTERDECK: WORD = 0x0220;
+pub const WAVE_FORMAT_ILINK_VC: WORD = 0x0230;
+pub const WAVE_FORMAT_RAW_SPORT: WORD = 0x0240;
+pub const WAVE_FORMAT_ESST_AC3: WORD = 0x0241;
+pub const WAVE_FORMAT_GENERIC_PASSTHRU: WORD = 0x0249;
+pub const WAVE_FORMAT_IPI_HSX: WORD = 0x0250;
+pub const WAVE_FORMAT_IPI_RPELP: WORD = 0x0251;
+pub const WAVE_FORMAT_CS2: WORD = 0x0260;
+pub const WAVE_FORMAT_SONY_SCX: WORD = 0x0270;
+pub const WAVE_FORMAT_SONY_SCY: WORD = 0x0271;
+pub const WAVE_FORMAT_SONY_ATRAC3: WORD = 0x0272;
+pub const WAVE_FORMAT_SONY_SPC: WORD = 0x0273;
+pub const WAVE_FORMAT_TELUM_AUDIO: WORD = 0x0280;
+pub const WAVE_FORMAT_TELUM_IA_AUDIO: WORD = 0x0281;
+pub const WAVE_FORMAT_NORCOM_VOICE_SYSTEMS_ADPCM: WORD = 0x0285;
+pub const WAVE_FORMAT_FM_TOWNS_SND: WORD = 0x0300;
+pub const WAVE_FORMAT_MICRONAS: WORD = 0x0350;
+pub const WAVE_FORMAT_MICRONAS_CELP833: WORD = 0x0351;
+pub const WAVE_FORMAT_BTV_DIGITAL: WORD = 0x0400;
+pub const WAVE_FORMAT_INTEL_MUSIC_CODER: WORD = 0x0401;
+pub const WAVE_FORMAT_INDEO_AUDIO: WORD = 0x0402;
+pub const WAVE_FORMAT_QDESIGN_MUSIC: WORD = 0x0450;
+pub const WAVE_FORMAT_ON2_VP7_AUDIO: WORD = 0x0500;
+pub const WAVE_FORMAT_ON2_VP6_AUDIO: WORD = 0x0501;
+pub const WAVE_FORMAT_VME_VMPCM: WORD = 0x0680;
+pub const WAVE_FORMAT_TPC: WORD = 0x0681;
+pub const WAVE_FORMAT_LIGHTWAVE_LOSSLESS: WORD = 0x08AE;
+pub const WAVE_FORMAT_OLIGSM: WORD = 0x1000;
+pub const WAVE_FORMAT_OLIADPCM: WORD = 0x1001;
+pub const WAVE_FORMAT_OLICELP: WORD = 0x1002;
+pub const WAVE_FORMAT_OLISBC: WORD = 0x1003;
+pub const WAVE_FORMAT_OLIOPR: WORD = 0x1004;
+pub const WAVE_FORMAT_LH_CODEC: WORD = 0x1100;
+pub const WAVE_FORMAT_LH_CODEC_CELP: WORD = 0x1101;
+pub const WAVE_FORMAT_LH_CODEC_SBC8: WORD = 0x1102;
+pub const WAVE_FORMAT_LH_CODEC_SBC12: WORD = 0x1103;
+pub const WAVE_FORMAT_LH_CODEC_SBC16: WORD = 0x1104;
+pub const WAVE_FORMAT_NORRIS: WORD = 0x1400;
+pub const WAVE_FORMAT_ISIAUDIO_2: WORD = 0x1401;
+pub const WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS: WORD = 0x1500;
+pub const WAVE_FORMAT_MPEG_ADTS_AAC: WORD = 0x1600;
+pub const WAVE_FORMAT_MPEG_RAW_AAC: WORD = 0x1601;
+pub const WAVE_FORMAT_MPEG_LOAS: WORD = 0x1602;
+pub const WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC: WORD = 0x1608;
+pub const WAVE_FORMAT_NOKIA_MPEG_RAW_AAC: WORD = 0x1609;
+pub const WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC: WORD = 0x160A;
+pub const WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC: WORD = 0x160B;
+pub const WAVE_FORMAT_MPEG_HEAAC: WORD = 0x1610;
+pub const WAVE_FORMAT_VOXWARE_RT24_SPEECH: WORD = 0x181C;
+pub const WAVE_FORMAT_SONICFOUNDRY_LOSSLESS: WORD = 0x1971;
+pub const WAVE_FORMAT_INNINGS_TELECOM_ADPCM: WORD = 0x1979;
+pub const WAVE_FORMAT_LUCENT_SX8300P: WORD = 0x1C07;
+pub const WAVE_FORMAT_LUCENT_SX5363S: WORD = 0x1C0C;
+pub const WAVE_FORMAT_CUSEEME: WORD = 0x1F03;
+pub const WAVE_FORMAT_NTCSOFT_ALF2CM_ACM: WORD = 0x1FC4;
+pub const WAVE_FORMAT_DVM: WORD = 0x2000;
+pub const WAVE_FORMAT_DTS2: WORD = 0x2001;
+pub const WAVE_FORMAT_MAKEAVIS: WORD = 0x3313;
+pub const WAVE_FORMAT_DIVIO_MPEG4_AAC: WORD = 0x4143;
+pub const WAVE_FORMAT_NOKIA_ADAPTIVE_MULTIRATE: WORD = 0x4201;
+pub const WAVE_FORMAT_DIVIO_G726: WORD = 0x4243;
+pub const WAVE_FORMAT_LEAD_SPEECH: WORD = 0x434C;
+pub const WAVE_FORMAT_LEAD_VORBIS: WORD = 0x564C;
+pub const WAVE_FORMAT_WAVPACK_AUDIO: WORD = 0x5756;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_1: WORD = 0x674F;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_2: WORD = 0x6750;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_3: WORD = 0x6751;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_1_PLUS: WORD = 0x676F;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_2_PLUS: WORD = 0x6770;
+pub const WAVE_FORMAT_OGG_VORBIS_MODE_3_PLUS: WORD = 0x6771;
+pub const WAVE_FORMAT_3COM_NBX: WORD = 0x7000;
+pub const WAVE_FORMAT_FAAD_AAC: WORD = 0x706D;
+pub const WAVE_FORMAT_AMR_NB: WORD = 0x7361;
+pub const WAVE_FORMAT_AMR_WB: WORD = 0x7362;
+pub const WAVE_FORMAT_AMR_WP: WORD = 0x7363;
+pub const WAVE_FORMAT_GSM_AMR_CBR: WORD = 0x7A21;
+pub const WAVE_FORMAT_GSM_AMR_VBR_SID: WORD = 0x7A22;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_G723_1: WORD = 0xA100;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_AVQSBC: WORD = 0xA101;
+pub const WAVE_FORMAT_COMVERSE_INFOSYS_SBC: WORD = 0xA102;
+pub const WAVE_FORMAT_SYMBOL_G729_A: WORD = 0xA103;
+pub const WAVE_FORMAT_VOICEAGE_AMR_WB: WORD = 0xA104;
+pub const WAVE_FORMAT_INGENIENT_G726: WORD = 0xA105;
+pub const WAVE_FORMAT_MPEG4_AAC: WORD = 0xA106;
+pub const WAVE_FORMAT_ENCORE_G726: WORD = 0xA107;
+pub const WAVE_FORMAT_ZOLL_ASAO: WORD = 0xA108;
+pub const WAVE_FORMAT_SPEEX_VOICE: WORD = 0xA109;
+pub const WAVE_FORMAT_VIANIX_MASC: WORD = 0xA10A;
+pub const WAVE_FORMAT_WM9_SPECTRUM_ANALYZER: WORD = 0xA10B;
+pub const WAVE_FORMAT_WMF_SPECTRUM_ANAYZER: WORD = 0xA10C;
+pub const WAVE_FORMAT_GSM_610: WORD = 0xA10D;
+pub const WAVE_FORMAT_GSM_620: WORD = 0xA10E;
+pub const WAVE_FORMAT_GSM_660: WORD = 0xA10F;
+pub const WAVE_FORMAT_GSM_690: WORD = 0xA110;
+pub const WAVE_FORMAT_GSM_ADAPTIVE_MULTIRATE_WB: WORD = 0xA111;
+pub const WAVE_FORMAT_POLYCOM_G722: WORD = 0xA112;
+pub const WAVE_FORMAT_POLYCOM_G728: WORD = 0xA113;
+pub const WAVE_FORMAT_POLYCOM_G729_A: WORD = 0xA114;
+pub const WAVE_FORMAT_POLYCOM_SIREN: WORD = 0xA115;
+pub const WAVE_FORMAT_GLOBAL_IP_ILBC: WORD = 0xA116;
+pub const WAVE_FORMAT_RADIOTIME_TIME_SHIFT_RADIO: WORD = 0xA117;
+pub const WAVE_FORMAT_NICE_ACA: WORD = 0xA118;
+pub const WAVE_FORMAT_NICE_ADPCM: WORD = 0xA119;
+pub const WAVE_FORMAT_VOCORD_G721: WORD = 0xA11A;
+pub const WAVE_FORMAT_VOCORD_G726: WORD = 0xA11B;
+pub const WAVE_FORMAT_VOCORD_G722_1: WORD = 0xA11C;
+pub const WAVE_FORMAT_VOCORD_G728: WORD = 0xA11D;
+pub const WAVE_FORMAT_VOCORD_G729: WORD = 0xA11E;
+pub const WAVE_FORMAT_VOCORD_G729_A: WORD = 0xA11F;
+pub const WAVE_FORMAT_VOCORD_G723_1: WORD = 0xA120;
+pub const WAVE_FORMAT_VOCORD_LBC: WORD = 0xA121;
+pub const WAVE_FORMAT_NICE_G728: WORD = 0xA122;
+pub const WAVE_FORMAT_FRACE_TELECOM_G729: WORD = 0xA123;
+pub const WAVE_FORMAT_CODIAN: WORD = 0xA124;
+pub const WAVE_FORMAT_FLAC: WORD = 0xF1AC;
+pub const WAVE_FORMAT_EXTENSIBLE: WORD = 0xFFFE;
+pub const WAVE_FORMAT_DEVELOPMENT: WORD = 0xFFFF;
+//2557
+pub const SPEAKER_FRONT_LEFT: DWORD = 0x1;
+pub const SPEAKER_FRONT_RIGHT: DWORD = 0x2;
+pub const SPEAKER_FRONT_CENTER: DWORD = 0x4;
+pub const SPEAKER_LOW_FREQUENCY: DWORD = 0x8;
+pub const SPEAKER_BACK_LEFT: DWORD = 0x10;
+pub const SPEAKER_BACK_RIGHT: DWORD = 0x20;
+pub const SPEAKER_FRONT_LEFT_OF_CENTER: DWORD = 0x40;
+pub const SPEAKER_FRONT_RIGHT_OF_CENTER: DWORD = 0x80;
+pub const SPEAKER_BACK_CENTER: DWORD = 0x100;
+pub const SPEAKER_SIDE_LEFT: DWORD = 0x200;
+pub const SPEAKER_SIDE_RIGHT: DWORD = 0x400;
+pub const SPEAKER_TOP_CENTER: DWORD = 0x800;
+pub const SPEAKER_TOP_FRONT_LEFT: DWORD = 0x1000;
+pub const SPEAKER_TOP_FRONT_CENTER: DWORD = 0x2000;
+pub const SPEAKER_TOP_FRONT_RIGHT: DWORD = 0x4000;
+pub const SPEAKER_TOP_BACK_LEFT: DWORD = 0x8000;
+pub const SPEAKER_TOP_BACK_CENTER: DWORD = 0x10000;
+pub const SPEAKER_TOP_BACK_RIGHT: DWORD = 0x20000;
+pub const SPEAKER_RESERVED: DWORD = 0x7FFC0000;
+pub const SPEAKER_ALL: DWORD = 0x80000000;
+STRUCT!{#[repr(packed)] struct WAVEFORMATEX {
+ wFormatTag: WORD,
+ nChannels: WORD,
+ nSamplesPerSec: DWORD,
+ nAvgBytesPerSec: DWORD,
+ nBlockAlign: WORD,
+ wBitsPerSample: WORD,
+ cbSize: WORD,
+}}
+STRUCT!{#[repr(packed)] struct WAVEFORMATEXTENSIBLE {
+ Format: WAVEFORMATEX,
+ Samples: WORD,
+ dwChannelMask: DWORD,
+ SubFormat: GUID,
+}}
diff --git a/third_party/rust/winapi/src/shared/mod.rs b/third_party/rust/winapi/src/shared/mod.rs
new file mode 100644
index 0000000000..8924f7b1ef
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/mod.rs
@@ -0,0 +1,92 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Headers shared between user mode and kernel mode
+#[cfg(feature = "basetsd")] pub mod basetsd;
+#[cfg(feature = "bcrypt")] pub mod bcrypt;
+#[cfg(feature = "bthdef")] pub mod bthdef;
+#[cfg(feature = "bthioctl")] pub mod bthioctl;
+#[cfg(feature = "bthsdpdef")] pub mod bthsdpdef;
+#[cfg(feature = "bugcodes")] pub mod bugcodes;
+#[cfg(feature = "cderr")] pub mod cderr;
+#[cfg(feature = "cfg")] pub mod cfg;
+#[cfg(feature = "d3d9")] pub mod d3d9;
+#[cfg(feature = "d3d9caps")] pub mod d3d9caps;
+#[cfg(feature = "d3d9types")] pub mod d3d9types;
+#[cfg(feature = "d3dkmdt")] pub mod d3dkmdt;
+#[cfg(feature = "d3dukmdt")] pub mod d3dukmdt;
+#[cfg(feature = "dcomptypes")] pub mod dcomptypes;
+#[cfg(feature = "devguid")] pub mod devguid;
+#[cfg(feature = "devpkey")] pub mod devpkey;
+#[cfg(feature = "devpropdef")] pub mod devpropdef;
+#[cfg(feature = "dinputd")] pub mod dinputd;
+#[cfg(feature = "dxgi")] pub mod dxgi;
+#[cfg(feature = "dxgi1_2")] pub mod dxgi1_2;
+#[cfg(feature = "dxgi1_3")] pub mod dxgi1_3;
+#[cfg(feature = "dxgi1_4")] pub mod dxgi1_4;
+#[cfg(feature = "dxgi1_5")] pub mod dxgi1_5;
+#[cfg(feature = "dxgi1_6")] pub mod dxgi1_6;
+#[cfg(feature = "dxgiformat")] pub mod dxgiformat;
+#[cfg(feature = "dxgitype")] pub mod dxgitype;
+#[cfg(feature = "evntprov")] pub mod evntprov;
+#[cfg(feature = "evntrace")] pub mod evntrace;
+pub mod guiddef;
+#[cfg(feature = "hidclass")] pub mod hidclass;
+#[cfg(feature = "hidpi")] pub mod hidpi;
+#[cfg(feature = "hidsdi")] pub mod hidsdi;
+#[cfg(feature = "hidusage")] pub mod hidusage;
+#[cfg(feature = "ifdef")] pub mod ifdef;
+#[cfg(feature = "ifmib")] pub mod ifmib;
+#[cfg(feature = "in6addr")] pub mod in6addr;
+#[cfg(feature = "inaddr")] pub mod inaddr;
+#[cfg(feature = "intsafe")] pub mod intsafe;
+#[cfg(feature = "ipifcons")] pub mod ipifcons;
+#[cfg(feature = "ipmib")] pub mod ipmib;
+#[cfg(feature = "iprtrmib")] pub mod iprtrmib;
+#[cfg(feature = "ks")] pub mod ks;
+#[cfg(feature = "ksmedia")] pub mod ksmedia;
+#[cfg(feature = "ktmtypes")] pub mod ktmtypes;
+#[cfg(feature = "lmcons")] pub mod lmcons;
+#[cfg(feature = "minwindef")] pub mod minwindef;
+#[cfg(feature = "mmreg")] pub mod mmreg;
+#[cfg(feature = "mprapidef")] pub mod mprapidef;
+#[cfg(feature = "mstcpip")] pub mod mstcpip;
+#[cfg(feature = "mswsockdef")] pub mod mswsockdef;
+#[cfg(feature = "netioapi")] pub mod netioapi;
+#[cfg(feature = "nldef")] pub mod nldef;
+#[cfg(feature = "ntddndis")] pub mod ntddndis;
+#[cfg(feature = "ntddscsi")] pub mod ntddscsi;
+#[cfg(feature = "ntddser")] pub mod ntddser;
+#[cfg(feature = "ntdef")] pub mod ntdef;
+#[cfg(feature = "ntstatus")] pub mod ntstatus;
+#[cfg(feature = "qos")] pub mod qos;
+#[cfg(feature = "rpc")] pub mod rpc;
+#[cfg(feature = "rpcdce")] pub mod rpcdce;
+#[cfg(feature = "rpcndr")] pub mod rpcndr;
+#[cfg(feature = "sddl")] pub mod sddl;
+#[cfg(feature = "sspi")] pub mod sspi;
+#[cfg(feature = "stralign")] pub mod stralign;
+#[cfg(feature = "tcpestats")] pub mod tcpestats;
+#[cfg(feature = "tcpmib")] pub mod tcpmib;
+#[cfg(feature = "transportsettingcommon")] pub mod transportsettingcommon;
+#[cfg(feature = "tvout")] pub mod tvout;
+#[cfg(feature = "udpmib")] pub mod udpmib;
+#[cfg(feature = "usb")] pub mod usb;
+#[cfg(feature = "usbioctl")] pub mod usbioctl;
+#[cfg(feature = "usbiodef")] pub mod usbiodef;
+#[cfg(feature = "usbscan")] pub mod usbscan;
+#[cfg(feature = "usbspec")] pub mod usbspec;
+#[cfg(feature = "windef")] pub mod windef;
+#[cfg(feature = "windot11")] pub mod windot11;
+#[cfg(feature = "windowsx")] pub mod windowsx;
+#[cfg(feature = "winerror")] pub mod winerror;
+#[cfg(feature = "winusbio")] pub mod winusbio;
+#[cfg(feature = "wlantypes")] pub mod wlantypes;
+#[cfg(feature = "wmistr")] pub mod wmistr;
+#[cfg(feature = "wnnc")] pub mod wnnc;
+#[cfg(feature = "ws2def")] pub mod ws2def;
+#[cfg(feature = "ws2ipdef")] pub mod ws2ipdef;
+#[cfg(feature = "wtypes")] pub mod wtypes;
+#[cfg(feature = "wtypesbase")] pub mod wtypesbase;
diff --git a/third_party/rust/winapi/src/shared/mprapidef.rs b/third_party/rust/winapi/src/shared/mprapidef.rs
new file mode 100644
index 0000000000..db5c1696df
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/mprapidef.rs
@@ -0,0 +1,14 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! MPR (Multiple Provider Router) definitions
+// #include <lmcons.h>
+pub const MAX_INTERFACE_NAME_LEN: usize = 256;
+pub const MAX_TRANSPORT_NAME_LEN: usize = 40;
+pub const MAX_MEDIA_NAME: usize = 16;
+pub const MAX_PORT_NAME: usize = 16;
+pub const MAX_DEVICE_NAME: usize = 128;
+pub const MAX_PHONE_NUMBER_LEN: usize = 128;
+pub const MAX_DEVICETYPE_NAME: usize = 16;
diff --git a/third_party/rust/winapi/src/shared/mstcpip.rs b/third_party/rust/winapi/src/shared/mstcpip.rs
new file mode 100644
index 0000000000..fe2072544d
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/mstcpip.rs
@@ -0,0 +1,492 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! This module contains Microsoft-specific extensions to the core Winsock definitions.
+use ctypes::wchar_t;
+use shared::basetsd::{UINT32, UINT64, ULONG64};
+use shared::guiddef::GUID;
+use shared::in6addr::IN6_ADDR;
+use shared::inaddr::IN_ADDR;
+use shared::minwindef::{DWORD, PULONG, PUSHORT, UCHAR, ULONG, USHORT};
+use shared::ws2def::{
+ INADDR_ANY, INADDR_BROADCAST, INADDR_NONE, IOC_VENDOR, SOCKADDR_IN,
+ SOCKADDR_STORAGE,
+};
+use um::winnt::{BOOLEAN, LONG, LPCWSTR, PCSTR, PCWSTR, PSTR, PWSTR};
+DEFINE_GUID!{SOCKET_DEFAULT2_QM_POLICY,
+ 0xaec2ef9c, 0x3a4d, 0x4d3e, 0x88, 0x42, 0x23, 0x99, 0x42, 0xe3, 0x9a, 0x47}
+DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY,
+ 0x6b59819a, 0x5cae, 0x492d, 0xa9, 0x01, 0x2a, 0x3c, 0x2c, 0x50, 0x16, 0x4f}
+DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY_EX,
+ 0x6843da03, 0x154a, 0x4616, 0xa5, 0x08, 0x44, 0x37, 0x12, 0x95, 0xf9, 0x6b}
+DEFINE_GUID!{ASSOCIATE_NAMERES_CONTEXT,
+ 0x59a38b67, 0xd4fe, 0x46e1, 0xba, 0x3c, 0x87, 0xea, 0x74, 0xca, 0x30, 0x49}
+ENUM!{enum TCPSTATE {
+ TCPSTATE_CLOSED,
+ TCPSTATE_LISTEN,
+ TCPSTATE_SYN_SENT,
+ TCPSTATE_SYN_RCVD,
+ TCPSTATE_ESTABLISHED,
+ TCPSTATE_FIN_WAIT_1,
+ TCPSTATE_FIN_WAIT_2,
+ TCPSTATE_CLOSE_WAIT,
+ TCPSTATE_CLOSING,
+ TCPSTATE_LAST_ACK,
+ TCPSTATE_TIME_WAIT,
+ TCPSTATE_MAX,
+}}
+STRUCT!{struct TRANSPORT_SETTING_ID {
+ Guid: GUID,
+}}
+pub type PTRANSPORT_SETTING_ID = *mut TRANSPORT_SETTING_ID;
+STRUCT!{struct tcp_keepalive {
+ onoff: ULONG,
+ keepalivetime: ULONG,
+ keepaliveinterval: ULONG,
+}}
+ENUM!{enum CONTROL_CHANNEL_TRIGGER_STATUS {
+ CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1,
+ CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2,
+ CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4,
+ CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5,
+ CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6,
+}}
+pub type PCONTROL_CHANNEL_TRIGGER_STATUS = *mut CONTROL_CHANNEL_TRIGGER_STATUS;
+pub const CONTROL_CHANNEL_TRIGGER_STATUS_MAX: u32 = CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ BrokerEventGuid: GUID,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT_EX {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ BrokerEventGuid: GUID,
+ Unmark: BOOLEAN,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT_EX;
+STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_OUTPUT {
+ ChannelStatus: CONTROL_CHANNEL_TRIGGER_STATUS,
+}}
+pub type PREAL_TIME_NOTIFICATION_SETTING_OUTPUT = *mut REAL_TIME_NOTIFICATION_SETTING_OUTPUT;
+STRUCT!{struct ASSOCIATE_NAMERES_CONTEXT_INPUT {
+ TransportSettingId: TRANSPORT_SETTING_ID,
+ Handle: UINT64,
+}}
+pub type PASSOCIATE_NAMERES_CONTEXT_INPUT = *mut ASSOCIATE_NAMERES_CONTEXT_INPUT;
+pub const SIO_RCVALL: DWORD = _WSAIOW!(IOC_VENDOR,1);
+pub const SIO_RCVALL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,2);
+pub const SIO_RCVALL_IGMPMCAST: DWORD = _WSAIOW!(IOC_VENDOR,3);
+pub const SIO_KEEPALIVE_VALS: DWORD = _WSAIOW!(IOC_VENDOR,4);
+pub const SIO_ABSORB_RTRALERT: DWORD = _WSAIOW!(IOC_VENDOR,5);
+pub const SIO_UCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,6);
+pub const SIO_LIMIT_BROADCASTS: DWORD = _WSAIOW!(IOC_VENDOR,7);
+pub const SIO_INDEX_BIND: DWORD = _WSAIOW!(IOC_VENDOR,8);
+pub const SIO_INDEX_MCASTIF: DWORD = _WSAIOW!(IOC_VENDOR,9);
+pub const SIO_INDEX_ADD_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,10);
+pub const SIO_INDEX_DEL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,11);
+pub const SIO_RCVALL_MCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,13);
+pub const SIO_RCVALL_IF: DWORD = _WSAIOW!(IOC_VENDOR,14);
+pub const SIO_LOOPBACK_FAST_PATH: DWORD = _WSAIOW!(IOC_VENDOR,16);
+pub const SIO_TCP_INITIAL_RTO: DWORD = _WSAIOW!(IOC_VENDOR,17);
+pub const SIO_APPLY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,19);
+pub const SIO_QUERY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,20);
+pub const SIO_TCP_SET_ICW: DWORD = _WSAIOW!(IOC_VENDOR,22);
+pub const SIO_TCP_SET_ACK_FREQUENCY: DWORD = _WSAIOW!(IOC_VENDOR,23);
+pub const SIO_TCP_INFO: DWORD = _WSAIORW!(IOC_VENDOR,39);
+ENUM!{enum RCVALL_VALUE {
+ RCVALL_OFF = 0,
+ RCVALL_ON = 1,
+ RCVALL_SOCKETLEVELONLY = 2,
+ RCVALL_IPLEVEL = 3,
+}}
+pub type PRCVALL_VALUE = *mut RCVALL_VALUE;
+STRUCT!{struct RCVALL_IF {
+ Mode: RCVALL_VALUE,
+ Interface: ULONG,
+}}
+pub type PRCVALL_IF = *mut RCVALL_IF;
+pub const TCP_INITIAL_RTO_UNSPECIFIED_RTT: USHORT = -1i16 as u16;
+pub const TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS: UCHAR = -1i8 as u8;
+pub const TCP_INITIAL_RTO_DEFAULT_RTT: USHORT = 0;
+pub const TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS: UCHAR = 0;
+STRUCT!{struct TCP_INITIAL_RTO_PARAMETERS {
+ Rtt: USHORT,
+ MaxSynRetransmissions: UCHAR,
+}}
+pub type PTCP_INITIAL_RTO_PARAMETERS = *mut TCP_INITIAL_RTO_PARAMETERS;
+ENUM!{enum TCP_ICW_LEVEL {
+ TCP_ICW_LEVEL_DEFAULT = 0,
+ TCP_ICW_LEVEL_HIGH = 1,
+ TCP_ICW_LEVEL_VERY_HIGH = 2,
+ TCP_ICW_LEVEL_AGGRESSIVE = 3,
+ TCP_ICW_LEVEL_EXPERIMENTAL = 4,
+ TCP_ICW_LEVEL_COMPAT = 254,
+ TCP_ICW_LEVEL_MAX = 255,
+}}
+pub type PTCP_ICW_LEVEL = *mut TCP_ICW_LEVEL;
+STRUCT!{struct TCP_ICW_PARAMETERS {
+ Level: TCP_ICW_LEVEL,
+}}
+pub type PTCP_ICW_PARAMETERS = *mut TCP_ICW_PARAMETERS;
+STRUCT!{struct TCP_ACK_FREQUENCY_PARAMETERS {
+ TcpDelayedAckFrequency: UCHAR,
+}}
+pub type PTCP_ACK_FREQUENCY_PARAMETERS = *mut TCP_ACK_FREQUENCY_PARAMETERS;
+STRUCT!{struct TCP_INFO_v0 {
+ State: TCPSTATE,
+ Mss: ULONG,
+ ConnectionTimeMs: ULONG64,
+ TimestampsEnabled: BOOLEAN,
+ RttUs: ULONG,
+ MinRttUs: ULONG,
+ BytesInFlight: ULONG,
+ Cwnd: ULONG,
+ SndWnd: ULONG,
+ RcvWnd: ULONG,
+ RcvBuf: ULONG,
+ BytesOut: ULONG64,
+ BytesIn: ULONG64,
+ BytesReordered: ULONG,
+ BytesRetrans: ULONG,
+ FastRetrans: ULONG,
+ DupAcksIn: ULONG,
+ TimeoutEpisodes: ULONG,
+ SynRetrans: UCHAR,
+}}
+pub type PTCP_INFO_v0 = *mut TCP_INFO_v0;
+pub const SIO_ACQUIRE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 100);
+pub const SIO_RELEASE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 101);
+pub const SIO_ASSOCIATE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 102);
+STRUCT!{struct INET_PORT_RANGE {
+ StartPort: USHORT,
+ NumberOfPorts: USHORT,
+}}
+pub type PINET_PORT_RANGE = *mut INET_PORT_RANGE;
+pub type INET_PORT_RESERVATION = INET_PORT_RANGE;
+pub type PINET_PORT_RESERVATION = *mut INET_PORT_RANGE;
+STRUCT!{struct INET_PORT_RESERVATION_TOKEN {
+ Token: ULONG64,
+}}
+pub type PINET_PORT_RESERVATION_TOKEN = *mut INET_PORT_RESERVATION_TOKEN;
+STRUCT!{struct INET_PORT_RESERVATION_INSTANCE {
+ Reservation: INET_PORT_RESERVATION,
+ Token: INET_PORT_RESERVATION_TOKEN,
+}}
+pub type PINET_PORT_RESERVATION_INSTANCE = *mut INET_PORT_RESERVATION_INSTANCE;
+STRUCT!{struct INET_PORT_RESERVATION_INFORMATION {
+ OwningPid: ULONG,
+}}
+pub type PINET_PORT_RESERVATION_INFORMATION = *mut INET_PORT_RESERVATION_INFORMATION;
+pub const SIO_SET_SECURITY: DWORD = _WSAIOW!(IOC_VENDOR, 200);
+pub const SIO_QUERY_SECURITY: DWORD = _WSAIORW!(IOC_VENDOR, 201);
+pub const SIO_SET_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 202);
+pub const SIO_DELETE_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 203);
+pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 220);
+pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT: DWORD = _WSAIOW!(IOC_VENDOR, 221);
+pub const SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 222);
+pub const SIO_SOCKET_USAGE_NOTIFICATION: DWORD = _WSAIOW!(IOC_VENDOR, 204);
+ENUM!{enum SOCKET_USAGE_TYPE {
+ SYSTEM_CRITICAL_SOCKET = 1,
+}}
+ENUM!{enum SOCKET_SECURITY_PROTOCOL {
+ SOCKET_SECURITY_PROTOCOL_DEFAULT,
+ SOCKET_SECURITY_PROTOCOL_IPSEC,
+ SOCKET_SECURITY_PROTOCOL_IPSEC2,
+ SOCKET_SECURITY_PROTOCOL_INVALID,
+}}
+STRUCT!{struct SOCKET_SECURITY_SETTINGS {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ SecurityFlags: ULONG,
+}}
+pub const SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION: ULONG = 0x1;
+pub const SOCKET_SETTINGS_IPSEC_OPTIONAL_PEER_NAME_VERIFICATION: ULONG = 0x2;
+pub const SOCKET_SETTINGS_IPSEC_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED: ULONG = 0x4;
+pub const SOCKET_SETTINGS_IPSEC_PEER_NAME_IS_RAW_FORMAT: ULONG = 0x8;
+STRUCT!{struct SOCKET_SECURITY_SETTINGS_IPSEC {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ SecurityFlags: ULONG,
+ IpsecFlags: ULONG,
+ AuthipMMPolicyKey: GUID,
+ AuthipQMPolicyKey: GUID,
+ Reserved: GUID,
+ Reserved2: UINT64,
+ UserNameStringLen: ULONG,
+ DomainNameStringLen: ULONG,
+ PasswordStringLen: ULONG,
+ AllStrings: [wchar_t; 0],
+}}
+STRUCT!{struct SOCKET_PEER_TARGET_NAME {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTargetNameStringLen: ULONG,
+ AllStrings: [wchar_t; 0],
+}}
+STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTokenAccessMask: ULONG,
+}}
+pub const SOCKET_QUERY_IPSEC2_ABORT_CONNECTION_ON_FIELD_CHANGE: ULONG = 0x1;
+pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_MM_SA_ID: ULONG = 0x1;
+pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_QM_SA_ID: ULONG = 0x2;
+STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ PeerAddress: SOCKADDR_STORAGE,
+ PeerTokenAccessMask: ULONG,
+ Flags: ULONG,
+ FieldMask: ULONG,
+}}
+pub const SOCKET_INFO_CONNECTION_SECURED: ULONG = 0x1;
+pub const SOCKET_INFO_CONNECTION_ENCRYPTED: ULONG = 0x2;
+pub const SOCKET_INFO_CONNECTION_IMPERSONATED: ULONG = 0x4;
+STRUCT!{struct SOCKET_SECURITY_QUERY_INFO {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ Flags: ULONG,
+ PeerApplicationAccessTokenHandle: UINT64,
+ PeerMachineAccessTokenHandle: UINT64,
+}}
+STRUCT!{struct SOCKET_SECURITY_QUERY_INFO_IPSEC2 {
+ SecurityProtocol: SOCKET_SECURITY_PROTOCOL,
+ Flags: ULONG,
+ PeerApplicationAccessTokenHandle: UINT64,
+ PeerMachineAccessTokenHandle: UINT64,
+ MmSaId: UINT64,
+ QmSaId: UINT64,
+ NegotiationWinerr: UINT32,
+ SaLookupContext: GUID,
+}}
+pub const SIO_QUERY_WFP_ALE_ENDPOINT_HANDLE: DWORD = _WSAIOR!(IOC_VENDOR, 205);
+pub const SIO_QUERY_RSS_SCALABILITY_INFO: DWORD = _WSAIOR!(IOC_VENDOR, 210);
+STRUCT!{struct RSS_SCALABILITY_INFO {
+ RssEnabled: BOOLEAN,
+}}
+pub type PRSS_SCALABILITY_INFO = *mut RSS_SCALABILITY_INFO;
+#[inline]
+pub fn IN4_CLASSA(i: LONG) -> bool {
+ (i & 0x80) == 0
+}
+#[inline]
+pub fn IN4_CLASSB(i: LONG) -> bool {
+ (i & 0xc0) == 0x80
+}
+#[inline]
+pub fn IN4_CLASSC(i: LONG) -> bool {
+ (i & 0xe0) == 0xc0
+}
+#[inline]
+pub fn IN4_CLASSD(i: LONG) -> bool {
+ (i & 0xf0) == 0xe0
+}
+#[inline]
+pub fn IN4_MULTICAST(i: LONG) -> bool {
+ IN4_CLASSD(i)
+}
+pub const IN4ADDR_ANY: ULONG = INADDR_ANY;
+pub const IN4ADDR_LOOPBACK: ULONG = 0x0100007f;
+pub const IN4ADDR_BROADCAST: ULONG = INADDR_BROADCAST;
+pub const IN4ADDR_NONE: ULONG = INADDR_NONE;
+pub const IN4ADDR_LOOPBACKPREFIX_LENGTH: usize = 8;
+pub const IN4ADDR_LINKLOCALPREFIX_LENGTH: usize = 16;
+pub const IN4ADDR_MULTICASTPREFIX_LENGTH: usize = 4;
+#[inline]
+pub fn IN4_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() }
+}
+#[inline]
+pub fn IN4_UNALIGNED_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() }
+}
+#[inline]
+pub fn IN4_IS_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_ANY }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_ANY }
+}
+#[inline]
+pub fn IN4_IS_ADDR_LOOPBACK(a: &IN_ADDR) -> bool {
+ unsafe { a.S_un.S_un_b().s_b1 == 0x7f }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_LOOPBACK(a: &IN_ADDR) -> bool {
+ unsafe { a.S_un.S_un_b().s_b1 == 0x7f }
+}
+#[inline]
+pub fn IN4_IS_ADDR_BROADCAST(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_BROADCAST(a: &IN_ADDR) -> bool {
+ unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MULTICAST(a: &IN_ADDR) -> bool {
+ IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG })
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_MULTICAST(a: &IN_ADDR) -> bool {
+ IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG })
+}
+#[inline]
+pub fn IN4_IS_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 }
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 }
+}
+#[inline]
+pub fn IN4_IS_ADDR_SITELOCAL(_: &IN_ADDR) -> bool {
+ false
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_SITELOCAL(_: &IN_ADDR) -> bool {
+ false
+}
+#[inline]
+pub fn IN4_IS_ADDR_RFC1918(a: &IN_ADDR) -> bool {
+ let s_addr = unsafe { *a.S_un.S_addr() };
+ ((s_addr & 0x00ff) == 0x0a) || ((s_addr & 0xf0ff) == 0x10ac) || ((s_addr & 0xffff) == 0xa8c0)
+}
+#[inline]
+pub fn IN4_IS_UNALIGNED_ADDR_RFC1918(a: &IN_ADDR) -> bool {
+ IN4_IS_ADDR_RFC1918(a)
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_LINKLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffffff) == 0xe0 }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_ADMINLOCAL(a: &IN_ADDR) -> bool {
+ unsafe { (*a.S_un.S_addr() & 0xffff) == 0xffef }
+}
+#[inline]
+pub fn IN4_IS_ADDR_MC_SITELOCAL(a: &IN_ADDR) -> bool {
+ let first = unsafe { (*a.S_un.S_addr() & 0xff) == 0xef };
+ first && !IN4_IS_ADDR_MC_ADMINLOCAL(a)
+}
+#[inline]
+pub fn IN4ADDR_ISANY(a: &SOCKADDR_IN) -> bool {
+ IN4_IS_ADDR_UNSPECIFIED(&a.sin_addr)
+}
+#[inline]
+pub fn IN4ADDR_ISLOOPBACK(a: &SOCKADDR_IN) -> bool {
+ IN4_IS_ADDR_LOOPBACK(&a.sin_addr)
+}
+extern "system" {
+ pub fn RtlIpv4AddressToStringA(
+ Addr: *const IN_ADDR,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlIpv4AddressToStringExA(
+ Address: *const IN_ADDR,
+ Port: USHORT,
+ AddressString: PSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv4AddressToStringW(
+ Addr: *const IN_ADDR,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlIpv4AddressToStringExW(
+ Address: *const IN_ADDR,
+ Port: USHORT,
+ AddressString: PWSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressA(
+ S: PCSTR,
+ Strict: BOOLEAN,
+ Terminator: *mut PCSTR,
+ Addr: *mut IN_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressExA(
+ AddressString: PCSTR,
+ Strict: BOOLEAN,
+ Address: *mut IN_ADDR,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressW(
+ S: PCWSTR,
+ Strict: BOOLEAN,
+ Terminator: *mut LPCWSTR,
+ Addr: *mut IN_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv4StringToAddressExW(
+ AddressString: PCWSTR,
+ Strict: BOOLEAN,
+ Address: *mut IN_ADDR,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv6AddressToStringA(
+ Addr: *const IN6_ADDR,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlIpv6AddressToStringExA(
+ Address: *const IN6_ADDR,
+ ScopeId: ULONG,
+ Port: USHORT,
+ AddressString: PSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv6AddressToStringW(
+ Addr: *const IN6_ADDR,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlIpv6AddressToStringExW(
+ Address: *const IN6_ADDR,
+ ScopeId: ULONG,
+ Port: USHORT,
+ AddressString: PWSTR,
+ AddressStringLength: PULONG,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressA(
+ S: PCSTR,
+ Terminator: *mut PCSTR,
+ Addr: *mut IN6_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressExA(
+ AddressString: PCSTR,
+ Address: *mut IN6_ADDR,
+ ScopeId: PULONG,
+ Port: PUSHORT,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressW(
+ S: PCWSTR,
+ Terminator: *mut PCWSTR,
+ Addr: *mut IN6_ADDR,
+ ) -> LONG;
+ pub fn RtlIpv6StringToAddressExW(
+ AddressString: PCWSTR,
+ Address: *mut IN6_ADDR,
+ ScopeId: PULONG,
+ Port: PUSHORT,
+ ) -> LONG;
+}
+DECLARE_HANDLE!{DL_EUI48, _DL_EUI48}
+pub type PDL_EUI48 = *mut DL_EUI48;
+extern "system" {
+ pub fn RtlEthernetAddressToStringA(
+ Addr: *const DL_EUI48,
+ S: PSTR,
+ ) -> PSTR;
+ pub fn RtlEthernetAddressToStringW(
+ Addr: *const DL_EUI48,
+ S: PWSTR,
+ ) -> PWSTR;
+ pub fn RtlEthernetStringToAddressA(
+ S: PCSTR,
+ Terminator: *mut PCSTR,
+ Addr: *mut DL_EUI48,
+ ) -> LONG;
+ pub fn RtlEthernetStringToAddressW(
+ S: PCWSTR,
+ Terminator: *mut LPCWSTR,
+ Addr: *mut DL_EUI48,
+ ) -> LONG;
+}
diff --git a/third_party/rust/winapi/src/shared/mswsockdef.rs b/third_party/rust/winapi/src/shared/mswsockdef.rs
new file mode 100644
index 0000000000..b62cf299d0
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/mswsockdef.rs
@@ -0,0 +1,48 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::minwindef::{DWORD, ULONG};
+use shared::ws2def::IOC_VENDOR;
+use um::winnt::{LONG, PVOID, ULONGLONG};
+pub const SIO_SET_COMPATIBILITY_MODE: DWORD = _WSAIOW!(IOC_VENDOR, 300);
+ENUM!{enum WSA_COMPATIBILITY_BEHAVIOR_ID {
+ WsaBehaviorAll = 0,
+ WsaBehaviorReceiveBuffering,
+ WsaBehaviorAutoTuning,
+}}
+pub type PWSA_COMPATIBILITY_BEHAVIOR_ID = *mut WSA_COMPATIBILITY_BEHAVIOR_ID;
+STRUCT!{struct WSA_COMPATIBILITY_MODE {
+ BehaviorId: WSA_COMPATIBILITY_BEHAVIOR_ID,
+ TargetOsVersion: ULONG,
+}}
+pub type PWSA_COMPATIBILITY_MODE = *mut WSA_COMPATIBILITY_MODE;
+pub type RIO_BUFFERID = PVOID;
+pub type PRIO_BUFFERID = *mut PVOID;
+pub type RIO_CQ = PVOID;
+pub type PRIO_CQ = *mut PVOID;
+pub type RIO_RQ = PVOID;
+pub type PRIO_RQ = *mut PVOID;
+STRUCT!{struct RIORESULT {
+ Status: LONG,
+ BytesTransferred: ULONG,
+ SocketContext: ULONGLONG,
+ RequestContext: ULONGLONG,
+}}
+pub type PRIORESULT = *mut RIORESULT;
+STRUCT!{struct RIO_BUF {
+ BufferId: RIO_BUFFERID,
+ Offset: ULONG,
+ Length: ULONG,
+}}
+pub type PRIO_BUF = *mut RIO_BUF;
+pub const RIO_MSG_DONT_NOTIFY: DWORD = 0x00000001;
+pub const RIO_MSG_DEFER: DWORD = 0x00000002;
+pub const RIO_MSG_WAITALL: DWORD = 0x00000004;
+pub const RIO_MSG_COMMIT_ONLY: DWORD = 0x00000008;
+pub const RIO_INVALID_BUFFERID: RIO_BUFFERID = 0xFFFFFFFF as RIO_BUFFERID;
+pub const RIO_INVALID_CQ: RIO_CQ = 0 as RIO_CQ;
+pub const RIO_INVALID_RQ: RIO_RQ = 0 as RIO_RQ;
+pub const RIO_MAX_CQ_SIZE: DWORD = 0x8000000;
+pub const RIO_CORRUPT_CQ: ULONG = 0xFFFFFFFF;
diff --git a/third_party/rust/winapi/src/shared/netioapi.rs b/third_party/rust/winapi/src/shared/netioapi.rs
new file mode 100644
index 0000000000..9098b70493
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/netioapi.rs
@@ -0,0 +1,702 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{PUINT8, SIZE_T, UINT8, ULONG64};
+use shared::guiddef::GUID;
+use shared::ifdef::{
+ IF_MAX_PHYS_ADDRESS_LENGTH, IF_MAX_STRING_SIZE, IF_OPER_STATUS, NET_IFINDEX,
+ NET_IF_ACCESS_TYPE, NET_IF_ADMIN_STATUS, NET_IF_COMPARTMENT_ID, NET_IF_COMPARTMENT_SCOPE,
+ NET_IF_CONNECTION_TYPE, NET_IF_DIRECTION_TYPE, NET_IF_MEDIA_CONNECT_STATE, NET_IF_NETWORK_GUID,
+ NET_LUID, PNET_IFINDEX, PNET_IF_COMPARTMENT_ID, PNET_IF_COMPARTMENT_SCOPE, PNET_LUID,
+ TUNNEL_TYPE,
+};
+use shared::ipifcons::IFTYPE;
+use shared::minwindef::{BYTE, DWORD, PULONG, UCHAR, ULONG, USHORT};
+use shared::nldef::{
+ NL_BANDWIDTH_INFORMATION, NL_DAD_STATE, NL_INTERFACE_OFFLOAD_ROD,
+ NL_LINK_LOCAL_ADDRESS_BEHAVIOR, NL_NEIGHBOR_STATE, NL_PREFIX_ORIGIN,
+ NL_ROUTER_DISCOVERY_BEHAVIOR, NL_ROUTE_ORIGIN, NL_ROUTE_PROTOCOL, NL_SUFFIX_ORIGIN,
+};
+use shared::ntddndis::{NDIS_MEDIUM, NDIS_PHYSICAL_MEDIUM};
+use shared::ntdef::{
+ BOOLEAN, CHAR, HANDLE, LARGE_INTEGER, PCHAR, PCSTR, PSTR, PVOID, PWCHAR, PWSTR, WCHAR,
+};
+use shared::ws2def::{ADDRESS_FAMILY, SCOPE_ID, ScopeLevelCount};
+use shared::ws2ipdef::{PSOCKADDR_IN6_PAIR, SOCKADDR_IN6, SOCKADDR_INET};
+const ANY_SIZE: usize = 1;
+pub type NETIO_STATUS = DWORD;
+pub type NETIOAPI_API = NETIO_STATUS;
+ENUM!{enum MIB_NOTIFICATION_TYPE {
+ MibParameterNotification,
+ MibAddInstance,
+ MibDeleteInstance,
+ MibInitialNotification,
+}}
+pub type PMIB_NOTIFICATION_TYPE = *mut MIB_NOTIFICATION_TYPE;
+STRUCT!{struct MIB_IF_ROW2_InterfaceAndOperStatusFlags {
+ bitfield: BYTE,
+}}
+BITFIELD!{MIB_IF_ROW2_InterfaceAndOperStatusFlags bitfield: BOOLEAN [
+ HardwareInterface set_HardwareInterface[0..1],
+ FilterInterface set_FilterInterface[1..2],
+ ConnectorPresent set_ConnectorPresent[2..3],
+ NotAuthenticated set_NotAuthenticated[3..4],
+ NotMediaConnected set_NotMediaConnected[4..5],
+ Paused set_Paused[5..6],
+ LowPower set_LowPower[6..7],
+ EndPointInterface set_EndPointInterface[7..8],
+]}
+STRUCT!{struct MIB_IF_ROW2 {
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceGuid: GUID,
+ Alias: [WCHAR; IF_MAX_STRING_SIZE + 1],
+ Description: [WCHAR; IF_MAX_STRING_SIZE + 1],
+ PhysicalAddressLength: ULONG,
+ PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ PermanentPhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ Mtu: ULONG,
+ Type: IFTYPE,
+ TunnelType: TUNNEL_TYPE,
+ MediaType: NDIS_MEDIUM,
+ PhysicalMediumType: NDIS_PHYSICAL_MEDIUM,
+ AccessType: NET_IF_ACCESS_TYPE,
+ DirectionType: NET_IF_DIRECTION_TYPE,
+ InterfaceAndOperStatusFlags: MIB_IF_ROW2_InterfaceAndOperStatusFlags,
+ OperStatus: IF_OPER_STATUS,
+ AdminStatus: NET_IF_ADMIN_STATUS,
+ MediaConnectState: NET_IF_MEDIA_CONNECT_STATE,
+ NetworkGuid: NET_IF_NETWORK_GUID,
+ ConnectionType: NET_IF_CONNECTION_TYPE,
+ TransmitLinkSpeed: ULONG64,
+ ReceiveLinkSpeed: ULONG64,
+ InOctets: ULONG64,
+ InUcastPkts: ULONG64,
+ InNUcastPkts: ULONG64,
+ InDiscards: ULONG64,
+ InErrors: ULONG64,
+ InUnknownProtos: ULONG64,
+ InUcastOctets: ULONG64,
+ InMulticastOctets: ULONG64,
+ InBroadcastOctets: ULONG64,
+ OutOctets: ULONG64,
+ OutUcastPkts: ULONG64,
+ OutNUcastPkts: ULONG64,
+ OutDiscards: ULONG64,
+ OutErrors: ULONG64,
+ OutUcastOctets: ULONG64,
+ OutMulticastOctets: ULONG64,
+ OutBroadcastOctets: ULONG64,
+ OutQLen: ULONG64,
+}}
+pub type PMIB_IF_ROW2 = *mut MIB_IF_ROW2;
+STRUCT!{struct MIB_IF_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IF_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IF_TABLE2 = *mut MIB_IF_TABLE2;
+extern "system" {
+ pub fn GetIfEntry2(
+ Row: PMIB_IF_ROW2,
+ ) -> NETIOAPI_API;
+}
+ENUM!{enum MIB_IF_ENTRY_LEVEL {
+ MibIfEntryNormal = 0,
+ MibIfEntryNormalWithoutStatistics = 2,
+}}
+pub type PMIB_IF_ENTRY_LEVEL = *mut MIB_IF_ENTRY_LEVEL;
+extern "system" {
+ pub fn GetIfEntry2Ex(
+ Level: MIB_IF_ENTRY_LEVEL,
+ Row: PMIB_IF_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIfTable2(
+ Table: *mut PMIB_IF_TABLE2,
+ ) -> NETIOAPI_API;
+}
+ENUM!{enum MIB_IF_TABLE_LEVEL {
+ MibIfTableNormal = 0,
+ MibIfTableRaw = 1,
+ MibIfTableNormalWithoutStatistics = 2,
+}}
+pub type PMIB_IF_TABLE_LEVEL = *mut MIB_IF_TABLE_LEVEL;
+extern "system" {
+ pub fn GetIfTable2Ex(
+ Level: MIB_IF_TABLE_LEVEL,
+ Table: *mut PMIB_IF_TABLE2,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_IPINTERFACE_ROW {
+ Family: ADDRESS_FAMILY,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ MaxReassemblySize: ULONG,
+ InterfaceIdentifier: ULONG64,
+ MinRouterAdvertisementInterval: ULONG,
+ MaxRouterAdvertisementInterval: ULONG,
+ AdvertisingEnabled: BOOLEAN,
+ ForwardingEnabled: BOOLEAN,
+ WeakHostSend: BOOLEAN,
+ WeakHostReceive: BOOLEAN,
+ UseAutomaticMetric: BOOLEAN,
+ UseNeighborUnreachabilityDetection: BOOLEAN,
+ ManagedAddressConfigurationSupported: BOOLEAN,
+ OtherStatefulConfigurationSupported: BOOLEAN,
+ AdvertiseDefaultRoute: BOOLEAN,
+ RouterDiscoveryBehavior: NL_ROUTER_DISCOVERY_BEHAVIOR,
+ DadTransmits: ULONG, // DupAddrDetectTransmits in RFC 2462.
+ BaseReachableTime: ULONG,
+ RetransmitTime: ULONG,
+ PathMtuDiscoveryTimeout: ULONG, // Path MTU discovery timeout (in ms).
+ LinkLocalAddressBehavior: NL_LINK_LOCAL_ADDRESS_BEHAVIOR,
+ LinkLocalAddressTimeout: ULONG, // In ms.
+ ZoneIndices: [ULONG; ScopeLevelCount as usize], // Zone part of a SCOPE_ID.
+ SitePrefixLength: ULONG,
+ Metric: ULONG,
+ NlMtu: ULONG,
+ Connected: BOOLEAN,
+ SupportsWakeUpPatterns: BOOLEAN,
+ SupportsNeighborDiscovery: BOOLEAN,
+ SupportsRouterDiscovery: BOOLEAN,
+ ReachableTime: ULONG,
+ TransmitOffload: NL_INTERFACE_OFFLOAD_ROD,
+ ReceiveOffload: NL_INTERFACE_OFFLOAD_ROD,
+ DisableDefaultRoutes: BOOLEAN,
+}}
+pub type PMIB_IPINTERFACE_ROW = *mut MIB_IPINTERFACE_ROW;
+STRUCT!{struct MIB_IPINTERFACE_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IPINTERFACE_ROW; ANY_SIZE],
+}}
+pub type PMIB_IPINTERFACE_TABLE = *mut MIB_IPINTERFACE_TABLE;
+STRUCT!{struct MIB_IFSTACK_ROW {
+ HigherLayerInterfaceIndex: NET_IFINDEX,
+ LowerLayerInterfaceIndex: NET_IFINDEX,
+}}
+pub type PMIB_IFSTACK_ROW = *mut MIB_IFSTACK_ROW;
+STRUCT!{struct MIB_INVERTEDIFSTACK_ROW {
+ LowerLayerInterfaceIndex: NET_IFINDEX,
+ HigherLayerInterfaceIndex: NET_IFINDEX,
+}}
+pub type PMIB_INVERTEDIFSTACK_ROW = *mut MIB_INVERTEDIFSTACK_ROW;
+STRUCT!{struct MIB_IFSTACK_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IFSTACK_ROW; ANY_SIZE],
+}}
+pub type PMIB_IFSTACK_TABLE = *mut MIB_IFSTACK_TABLE;
+STRUCT!{struct MIB_INVERTEDIFSTACK_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_INVERTEDIFSTACK_ROW; ANY_SIZE],
+}}
+pub type PMIB_INVERTEDIFSTACK_TABLE = *mut MIB_INVERTEDIFSTACK_TABLE;
+FN!{stdcall PIPINTERFACE_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_IPINTERFACE_ROW,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+STRUCT!{struct MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {
+ InboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
+ OutboundBandwidthInformation: NL_BANDWIDTH_INFORMATION,
+}}
+pub type PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES = *mut
+ MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES;
+extern "system" {
+ pub fn GetIfStackTable(
+ Table: *mut PMIB_IFSTACK_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn GetInvertedIfStackTable(
+ Table: *mut PMIB_INVERTEDIFSTACK_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn GetIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpInterfaceTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPINTERFACE_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn InitializeIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ );
+ pub fn NotifyIpInterfaceChange(
+ Family: ADDRESS_FAMILY,
+ Callback: PIPINTERFACE_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE
+ ) -> NETIOAPI_API;
+ pub fn SetIpInterfaceEntry(
+ Row: PMIB_IPINTERFACE_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetworkConnectionBandwidthEstimates(
+ InterfaceIndex: NET_IFINDEX,
+ AddressFamily: ADDRESS_FAMILY,
+ BandwidthEstimates: PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_UNICASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ PrefixOrigin: NL_PREFIX_ORIGIN,
+ SuffixOrigin: NL_SUFFIX_ORIGIN,
+ ValidLifetime: ULONG,
+ PreferredLifetime: ULONG,
+ OnLinkPrefixLength: UINT8,
+ SkipAsSource: BOOLEAN,
+ DadState: NL_DAD_STATE,
+ ScopeId: SCOPE_ID,
+ CreationTimeStamp: LARGE_INTEGER,
+}}
+pub type PMIB_UNICASTIPADDRESS_ROW = *mut MIB_UNICASTIPADDRESS_ROW;
+STRUCT!{struct MIB_UNICASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_UNICASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_UNICASTIPADDRESS_TABLE = *mut MIB_UNICASTIPADDRESS_TABLE;
+FN!{stdcall PUNICAST_IPADDRESS_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_UNICASTIPADDRESS_ROW,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn CreateUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn DeleteUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetUnicastIpAddressEntry(
+ Row: PMIB_UNICASTIPADDRESS_ROW
+ ) -> NETIOAPI_API;
+ pub fn GetUnicastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_UNICASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+ pub fn InitializeUnicastIpAddressEntry(
+ Row: PMIB_UNICASTIPADDRESS_ROW,
+ );
+ pub fn NotifyUnicastIpAddressChange(
+ Family: ADDRESS_FAMILY,
+ Callback: PUNICAST_IPADDRESS_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+}
+FN!{stdcall PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK(
+ CallerContext: PVOID,
+ AddressTable: PMIB_UNICASTIPADDRESS_TABLE,
+) -> ()}
+extern "system" {
+ pub fn NotifyStableUnicastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_UNICASTIPADDRESS_TABLE,
+ CallerCallback: PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK,
+ CallerContext: PVOID,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn SetUnicastIpAddressEntry(
+ Row: *const MIB_UNICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_ANYCASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ ScopeId: SCOPE_ID,
+}}
+pub type PMIB_ANYCASTIPADDRESS_ROW = *mut MIB_ANYCASTIPADDRESS_ROW;
+STRUCT!{struct MIB_ANYCASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_ANYCASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_ANYCASTIPADDRESS_TABLE = *mut MIB_ANYCASTIPADDRESS_TABLE;
+extern "system" {
+ pub fn CreateAnycastIpAddressEntry(
+ Row: *const MIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn DeleteAnycastIpAddressEntry(
+ Row: *const MIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetAnycastIpAddressEntry(
+ Row: PMIB_ANYCASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetAnycastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_ANYCASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_MULTICASTIPADDRESS_ROW {
+ Address: SOCKADDR_INET,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: NET_LUID,
+ ScopeId: SCOPE_ID,
+}}
+pub type PMIB_MULTICASTIPADDRESS_ROW = *mut MIB_MULTICASTIPADDRESS_ROW;
+STRUCT!{struct MIB_MULTICASTIPADDRESS_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_MULTICASTIPADDRESS_ROW; ANY_SIZE],
+}}
+pub type PMIB_MULTICASTIPADDRESS_TABLE = *mut MIB_MULTICASTIPADDRESS_TABLE;
+extern "system" {
+ pub fn GetMulticastIpAddressEntry(
+ Row: PMIB_MULTICASTIPADDRESS_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetMulticastIpAddressTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_MULTICASTIPADDRESS_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct IP_ADDRESS_PREFIX {
+ Prefix: SOCKADDR_INET,
+ PrefixLength: UINT8,
+}}
+pub type PIP_ADDRESS_PREFIX = *mut IP_ADDRESS_PREFIX;
+STRUCT!{struct MIB_IPFORWARD_ROW2 {
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ DestinationPrefix: IP_ADDRESS_PREFIX,
+ NextHop: SOCKADDR_INET,
+ SitePrefixLength: UCHAR,
+ ValidLifetime: ULONG,
+ PreferredLifetime: ULONG,
+ Metric: ULONG,
+ Protocol: NL_ROUTE_PROTOCOL,
+ Loopback: BOOLEAN,
+ AutoconfigureAddress: BOOLEAN,
+ Publish: BOOLEAN,
+ Immortal: BOOLEAN,
+ Age: ULONG,
+ Origin: NL_ROUTE_ORIGIN,
+}}
+pub type PMIB_IPFORWARD_ROW2 = *mut MIB_IPFORWARD_ROW2;
+STRUCT!{struct MIB_IPFORWARD_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IPFORWARD_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IPFORWARD_TABLE2 = *mut MIB_IPFORWARD_TABLE2;
+FN!{stdcall PIPFORWARD_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Row: PMIB_IPFORWARD_ROW2,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn CreateIpForwardEntry2(
+ Row: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn DeleteIpForwardEntry2(
+ Row: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetBestRoute2(
+ InterfaceLuid: *mut NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ SourceAddress: *const SOCKADDR_INET,
+ DestinationAddress: *const SOCKADDR_INET,
+ AddressSortOptions: ULONG,
+ BestRoute: PMIB_IPFORWARD_ROW2,
+ BestSourceAddress: *mut SOCKADDR_INET,
+ ) -> NETIOAPI_API;
+ pub fn GetIpForwardEntry2(
+ Row: PMIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIpForwardTable2(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPFORWARD_TABLE2,
+ ) -> NETIOAPI_API;
+ pub fn InitializeIpForwardEntry(
+ Row: PMIB_IPFORWARD_ROW2,
+ );
+ pub fn NotifyRouteChange2(
+ AddressFamily: ADDRESS_FAMILY,
+ Callback: PIPFORWARD_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn SetIpForwardEntry2(
+ Route: *const MIB_IPFORWARD_ROW2,
+ ) -> NETIOAPI_API;
+}
+UNION!{union MIB_IPPATH_ROW_u {
+ [u32; 1],
+ LastReachable LastReachable_mut: ULONG, // Milliseconds.
+ LastUnreachable LastUnreachable_mut: ULONG, // Milliseconds.
+}}
+STRUCT!{struct MIB_IPPATH_ROW {
+ Source: SOCKADDR_INET,
+ Destination: SOCKADDR_INET,
+ InterfaceLuid: NET_LUID,
+ InterfaceIndex: NET_IFINDEX,
+ CurrentNextHop: SOCKADDR_INET,
+ PathMtu: ULONG,
+ RttMean: ULONG,
+ RttDeviation: ULONG,
+ u: MIB_IPPATH_ROW_u,
+ IsReachable: BOOLEAN,
+ LinkTransmitSpeed: ULONG64,
+ LinkReceiveSpeed: ULONG64,
+}}
+pub type PMIB_IPPATH_ROW = *mut MIB_IPPATH_ROW;
+STRUCT!{struct MIB_IPPATH_TABLE {
+ NumEntries: ULONG,
+ Table: [MIB_IPPATH_ROW; ANY_SIZE],
+}}
+pub type PMIB_IPPATH_TABLE = *mut MIB_IPPATH_TABLE;
+extern "system" {
+ pub fn FlushIpPathTable(
+ Family: ADDRESS_FAMILY,
+ ) -> NETIOAPI_API;
+ pub fn GetIpPathEntry(
+ Row: PMIB_IPPATH_ROW,
+ ) -> NETIOAPI_API;
+ pub fn GetIpPathTable(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPPATH_TABLE,
+ ) -> NETIOAPI_API;
+}
+STRUCT!{struct MIB_IPNET_ROW2_s {
+ Flags: UCHAR,
+}}
+BITFIELD!{MIB_IPNET_ROW2_s Flags: UCHAR [
+ IsRouter set_IsRouter[0..1],
+ IsUnreachable set_IsUnreachable[1..2],
+ Reserved set_Reserved[2..8],
+]}
+UNION!{union MIB_IPNET_ROW2_ReachabilityTime {
+ [u32; 1],
+ LastReachable LastReachable_mut: ULONG,
+ LastUnreachable LastUnreachable_mut: ULONG,
+}}
+STRUCT!{struct MIB_IPNET_ROW2 {
+ Address: SOCKADDR_INET,
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: NET_LUID,
+ PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH],
+ PhysicalAddressLength: ULONG,
+ State: NL_NEIGHBOR_STATE,
+ s: MIB_IPNET_ROW2_s,
+ ReachabilityTime: MIB_IPNET_ROW2_ReachabilityTime,
+}}
+pub type PMIB_IPNET_ROW2 = *mut MIB_IPNET_ROW2;
+STRUCT!{struct MIB_IPNET_TABLE2 {
+ NumEntries: ULONG,
+ Table: [MIB_IPNET_ROW2; ANY_SIZE],
+}}
+pub type PMIB_IPNET_TABLE2 = *mut MIB_IPNET_TABLE2;
+extern "system" {
+ pub fn CreateIpNetEntry2(
+ Row: *const MIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn DeleteIpNetEntry2(
+ Row: *const MIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn FlushIpNetTable2(
+ Family: ADDRESS_FAMILY,
+ InterfaceIndex: NET_IFINDEX,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+ pub fn GetIpNetTable2(
+ Family: ADDRESS_FAMILY,
+ Table: *mut PMIB_IPNET_TABLE2,
+ ) -> NETIOAPI_API;
+ pub fn ResolveIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ SourceAddress: *const SOCKADDR_INET,
+ ) -> NETIOAPI_API;
+ pub fn SetIpNetEntry2(
+ Row: PMIB_IPNET_ROW2,
+ ) -> NETIOAPI_API;
+}
+pub const MIB_INVALID_TEREDO_PORT_NUMBER: USHORT = 0;
+FN!{stdcall PTEREDO_PORT_CHANGE_CALLBACK(
+ CallerContext: PVOID,
+ Port: USHORT,
+ NotificationType: MIB_NOTIFICATION_TYPE,
+) -> ()}
+extern "system" {
+ pub fn NotifyTeredoPortChange(
+ Callback: PTEREDO_PORT_CHANGE_CALLBACK,
+ CallerContext: PVOID,
+ InitialNotification: BOOLEAN,
+ NotificationHandle: *mut HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn GetTeredoPort(
+ Port: *mut USHORT,
+ ) -> NETIOAPI_API;
+ pub fn CancelMibChangeNotify2(
+ NotificationHandle: HANDLE,
+ ) -> NETIOAPI_API;
+ pub fn FreeMibTable(
+ Memory: PVOID,
+ );
+ pub fn CreateSortedAddressPairs(
+ SourceAddressList: *const SOCKADDR_IN6,
+ SourceAddressCount: ULONG,
+ DestinationAddressList: *const SOCKADDR_IN6,
+ DestinationAddressCount: ULONG,
+ AddressSortOptions: ULONG,
+ SortedAddressPairList: *mut PSOCKADDR_IN6_PAIR,
+ SortedAddressPairCount: *mut ULONG,
+ ) -> NETIOAPI_API;
+ pub fn ConvertCompartmentGuidToId(
+ CompartmentGuid: *const GUID,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertCompartmentIdToGuid(
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ CompartmentGuid: *mut GUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceNameToLuidA(
+ InterfaceName: *const CHAR,
+ InterfaceLuid: *mut NET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceNameToLuidW(
+ InterfaceName: *const WCHAR,
+ InterfaceLuid: *mut NET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToNameA(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceName: PSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToNameW(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceName: PWSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToIndex(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceIndex: PNET_IFINDEX,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceIndexToLuid(
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToAlias(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceAlias: PWSTR,
+ Length: SIZE_T,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceAliasToLuid(
+ InterfaceAlias: *const WCHAR,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceLuidToGuid(
+ InterfaceLuid: *const NET_LUID,
+ InterfaceGuid: *mut GUID,
+ ) -> NETIOAPI_API;
+ pub fn ConvertInterfaceGuidToLuid(
+ InterfaceGuid: *const GUID,
+ InterfaceLuid: PNET_LUID,
+ ) -> NETIOAPI_API;
+ pub fn if_nametoindex(
+ InterfaceName: PCSTR,
+ ) -> NET_IFINDEX;
+ pub fn if_indextoname(
+ InterfaceIndex: NET_IFINDEX,
+ InterfaceName: PCHAR,
+ ) -> PCHAR;
+ pub fn GetCurrentThreadCompartmentId() -> NET_IF_COMPARTMENT_ID;
+ pub fn SetCurrentThreadCompartmentId(
+ CompartmentId: NET_IF_COMPARTMENT_ID
+ ) -> NETIOAPI_API;
+ pub fn GetCurrentThreadCompartmentScope(
+ CompartmentScope: PNET_IF_COMPARTMENT_SCOPE,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ );
+ pub fn SetCurrentThreadCompartmentScope(
+ CompartmentScope: NET_IF_COMPARTMENT_SCOPE,
+ ) -> NETIOAPI_API;
+ pub fn GetJobCompartmentId(
+ JobHandle: HANDLE,
+ ) -> NET_IF_COMPARTMENT_ID;
+ pub fn SetJobCompartmentId(
+ JobHandle: HANDLE,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn GetSessionCompartmentId(
+ SessionId: ULONG,
+ ) -> NET_IF_COMPARTMENT_ID;
+ pub fn SetSessionCompartmentId(
+ SessionId: ULONG,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ ) -> NETIOAPI_API;
+ pub fn GetDefaultCompartmentId() -> NET_IF_COMPARTMENT_ID;
+ pub fn GetNetworkInformation(
+ NetworkGuid: *const NET_IF_NETWORK_GUID,
+ CompartmentId: PNET_IF_COMPARTMENT_ID,
+ SiteId: PULONG,
+ NetworkName: PWCHAR,
+ Length: ULONG,
+ ) -> NETIOAPI_API;
+ pub fn SetNetworkInformation(
+ NetworkGuid: *const NET_IF_NETWORK_GUID,
+ CompartmentId: NET_IF_COMPARTMENT_ID,
+ NetworkName: *const WCHAR,
+ ) -> NETIOAPI_API;
+ pub fn ConvertLengthToIpv4Mask(
+ MaskLength: ULONG,
+ Mask: PULONG,
+ ) -> NETIOAPI_API;
+ pub fn ConvertIpv4MaskToLength(
+ Mask: ULONG,
+ MaskLength: PUINT8,
+ ) -> NETIOAPI_API;
+}
+pub const DNS_SETTINGS_VERSION1: ULONG = 0x0001;
+pub const DNS_INTERFACE_SETTINGS_VERSION1: ULONG = 0x0001;
+pub const DNS_SETTING_IPV6: ULONG64 = 0x0001;
+pub const DNS_SETTING_NAMESERVER: ULONG64 = 0x0002;
+pub const DNS_SETTING_SEARCHLIST: ULONG64 = 0x0004;
+pub const DNS_SETTING_REGISTRATION_ENABLED: ULONG64 = 0x0008;
+pub const DNS_SETTING_REGISTER_ADAPTER_NAME: ULONG64 = 0x0010;
+pub const DNS_SETTING_DOMAIN: ULONG64 = 0x0020;
+pub const DNS_SETTING_HOSTNAME: ULONG64 = 0x0040;
+pub const DNS_SETTINGS_ENABLE_LLMNR: ULONG64 = 0x0080;
+pub const DNS_SETTINGS_QUERY_ADAPTER_NAME: ULONG64 = 0x0100;
+pub const DNS_SETTING_PROFILE_NAMESERVER: ULONG64 = 0x0200;
+STRUCT!{struct DNS_SETTINGS {
+ Version: ULONG,
+ Flags: ULONG64,
+ Hostname: PWSTR,
+ Domain: PWSTR,
+ SearchList: PWSTR,
+}}
+STRUCT!{struct DNS_INTERFACE_SETTINGS {
+ Version: ULONG,
+ Flags: ULONG64,
+ Domain: PWSTR,
+ NameServer: PWSTR,
+ SearchList: PWSTR,
+ RegistrationEnabled: ULONG,
+ RegisterAdapterName: ULONG,
+ EnableLLMNR: ULONG,
+ QueryAdapterName: ULONG,
+ ProfileNameServer: PWSTR,
+}}
+extern "system" {
+ pub fn GetDnsSettings(
+ Settings: *mut DNS_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn FreeDnsSettings(
+ Settings: *mut DNS_SETTINGS,
+ );
+ pub fn SetDnsSettings(
+ Settings: *const DNS_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn GetInterfaceDnsSettings(
+ Interface: GUID,
+ Settings: *mut DNS_INTERFACE_SETTINGS,
+ ) -> NETIOAPI_API;
+ pub fn FreeInterfaceDnsSettings(
+ Settings: *mut DNS_INTERFACE_SETTINGS,
+ );
+ pub fn SetInterfaceDnsSettings(
+ Interface: GUID,
+ Settings: *const DNS_INTERFACE_SETTINGS,
+ ) -> NETIOAPI_API;
+}
diff --git a/third_party/rust/winapi/src/shared/nldef.rs b/third_party/rust/winapi/src/shared/nldef.rs
new file mode 100644
index 0000000000..2805e593d8
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/nldef.rs
@@ -0,0 +1,204 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::ULONG64;
+use shared::minwindef::ULONG;
+use shared::ntdef::BOOLEAN;
+ENUM!{enum NL_PREFIX_ORIGIN {
+ IpPrefixOriginOther = 0,
+ IpPrefixOriginManual,
+ IpPrefixOriginWellKnown,
+ IpPrefixOriginDhcp,
+ IpPrefixOriginRouterAdvertisement,
+ IpPrefixOriginUnchanged = 1 << 4,
+}}
+pub const NlpoOther: NL_PREFIX_ORIGIN = IpPrefixOriginOther;
+pub const NlpoManual: NL_PREFIX_ORIGIN = IpPrefixOriginManual;
+pub const NlpoWellKnown: NL_PREFIX_ORIGIN = IpPrefixOriginWellKnown;
+pub const NlpoDhcp: NL_PREFIX_ORIGIN = IpPrefixOriginDhcp;
+pub const NlpoRouterAdvertisement: NL_PREFIX_ORIGIN = IpPrefixOriginRouterAdvertisement;
+ENUM!{enum NL_SUFFIX_ORIGIN {
+ NlsoOther = 0,
+ NlsoManual,
+ NlsoWellKnown,
+ NlsoDhcp,
+ NlsoLinkLayerAddress,
+ NlsoRandom,
+ IpSuffixOriginOther = 0,
+ IpSuffixOriginManual,
+ IpSuffixOriginWellKnown,
+ IpSuffixOriginDhcp,
+ IpSuffixOriginLinkLayerAddress,
+ IpSuffixOriginRandom,
+ IpSuffixOriginUnchanged = 1 << 4,
+}}
+ENUM!{enum NL_DAD_STATE {
+ NldsInvalid,
+ NldsTentative,
+ NldsDuplicate,
+ NldsDeprecated,
+ NldsPreferred,
+ IpDadStateInvalid = 0,
+ IpDadStateTentative,
+ IpDadStateDuplicate,
+ IpDadStateDeprecated,
+ IpDadStatePreferred,
+}}
+pub const NL_MAX_METRIC_COMPONENT: ULONG = (1u32 << 31) - 1;
+ENUM!{enum NL_ROUTE_PROTOCOL {
+ RouteProtocolOther = 1,
+ RouteProtocolLocal = 2,
+ RouteProtocolNetMgmt = 3,
+ RouteProtocolIcmp = 4,
+ RouteProtocolEgp = 5,
+ RouteProtocolGgp = 6,
+ RouteProtocolHello = 7,
+ RouteProtocolRip = 8,
+ RouteProtocolIsIs = 9,
+ RouteProtocolEsIs = 10,
+ RouteProtocolCisco = 11,
+ RouteProtocolBbn = 12,
+ RouteProtocolOspf = 13,
+ RouteProtocolBgp = 14,
+ RouteProtocolIdpr = 15,
+ RouteProtocolEigrp = 16,
+ RouteProtocolDvmrp = 17,
+ RouteProtocolRpl = 18,
+ RouteProtocolDhcp = 19,
+ MIB_IPPROTO_OTHER = 1,
+ PROTO_IP_OTHER = 1,
+ MIB_IPPROTO_LOCAL = 2,
+ PROTO_IP_LOCAL = 2,
+ MIB_IPPROTO_NETMGMT = 3,
+ PROTO_IP_NETMGMT = 3,
+ MIB_IPPROTO_ICMP = 4,
+ PROTO_IP_ICMP = 4,
+ MIB_IPPROTO_EGP = 5,
+ PROTO_IP_EGP = 5,
+ MIB_IPPROTO_GGP = 6,
+ PROTO_IP_GGP = 6,
+ MIB_IPPROTO_HELLO = 7,
+ PROTO_IP_HELLO = 7,
+ MIB_IPPROTO_RIP = 8,
+ PROTO_IP_RIP = 8,
+ MIB_IPPROTO_IS_IS = 9,
+ PROTO_IP_IS_IS = 9,
+ MIB_IPPROTO_ES_IS = 10,
+ PROTO_IP_ES_IS = 10,
+ MIB_IPPROTO_CISCO = 11,
+ PROTO_IP_CISCO = 11,
+ MIB_IPPROTO_BBN = 12,
+ PROTO_IP_BBN = 12,
+ MIB_IPPROTO_OSPF = 13,
+ PROTO_IP_OSPF = 13,
+ MIB_IPPROTO_BGP = 14,
+ PROTO_IP_BGP = 14,
+ MIB_IPPROTO_IDPR = 15,
+ PROTO_IP_IDPR = 15,
+ MIB_IPPROTO_EIGRP = 16,
+ PROTO_IP_EIGRP = 16,
+ MIB_IPPROTO_DVMRP = 17,
+ PROTO_IP_DVMRP = 17,
+ MIB_IPPROTO_RPL = 18,
+ PROTO_IP_RPL = 18,
+ MIB_IPPROTO_DHCP = 19,
+ PROTO_IP_DHCP = 19,
+ MIB_IPPROTO_NT_AUTOSTATIC = 10002,
+ PROTO_IP_NT_AUTOSTATIC = 10002,
+ MIB_IPPROTO_NT_STATIC = 10006,
+ PROTO_IP_NT_STATIC = 10006,
+ MIB_IPPROTO_NT_STATIC_NON_DOD = 10007,
+ PROTO_IP_NT_STATIC_NON_DOD = 10007,
+}}
+pub type PNL_ROUTE_PROTOCOL = *mut NL_ROUTE_PROTOCOL;
+ENUM!{enum NL_ADDRESS_TYPE {
+ NlatUnspecified = 0,
+ NlatUnicast = 1,
+ NlatAnycast = 2,
+ NlatMulticast = 3,
+ NlatBroadcast = 4,
+ NlatInvalid = 5,
+}}
+pub type PNL_ADDRESS_TYPE = *mut NL_ADDRESS_TYPE;
+ENUM!{enum NL_ROUTE_ORIGIN {
+ NlroManual = 0,
+ NlroWellKnown = 1,
+ NlroDHCP = 2,
+ NlroRouterAdvertisement = 3,
+ Nlro6to4 = 4,
+}}
+pub type PNL_ROUTE_ORIGIN = *mut NL_ROUTE_ORIGIN;
+ENUM!{enum NL_NEIGHBOR_STATE {
+ NlnsUnreachable = 0,
+ NlnsIncomplete = 1,
+ NlnsProbe = 2,
+ NlnsDelay = 3,
+ NlnsStale = 4,
+ NlnsReachable = 5,
+ NlnsPermanent = 6,
+ NlnsMaximum = 7,
+}}
+pub type PNL_NEIGHBOR_STATE = *mut NL_NEIGHBOR_STATE;
+ENUM!{enum NL_LINK_LOCAL_ADDRESS_BEHAVIOR {
+ LinkLocalAlwaysOff = 0,
+ LinkLocalDelayed = 1,
+ LinkLocalAlwaysOn = 2,
+ LinkLocalUnchanged = -1i32 as u32,
+}}
+STRUCT!{struct NL_INTERFACE_OFFLOAD_ROD {
+ bitfield: BOOLEAN,
+}}
+BITFIELD!{NL_INTERFACE_OFFLOAD_ROD bitfield: BOOLEAN [
+ NlChecksumSupported set_NlChecksumSupported[0..1],
+ NlOptionsSupported set_NlOptionsSupported[1..2],
+ TlDatagramChecksumSupported set_TlDatagramChecksumSupported[2..3],
+ TlStreamChecksumSupported set_TlStreamChecksumSupported[3..4],
+ TlStreamOptionsSupported set_TlStreamOptionsSupported[4..5],
+ FastPathCompatible set_FastPathCompatible[5..6],
+ TlLargeSendOffloadSupported set_TlLargeSendOffloadSupported[6..7],
+ TlGiantSendOffloadSupported set_TlGiantSendOffloadSupported[7..8],
+]}
+pub type PNL_INTERFACE_OFFLOAD_ROD = *mut NL_INTERFACE_OFFLOAD_ROD;
+ENUM!{enum NL_ROUTER_DISCOVERY_BEHAVIOR {
+ RouterDiscoveryDisabled = 0,
+ RouterDiscoveryEnabled = 1,
+ RouterDiscoveryDhcp = 2,
+ RouterDiscoveryUnchanged = -1i32 as u32,
+}}
+ENUM!{enum NL_BANDWIDTH_FLAG {
+ NlbwDisabled = 0,
+ NlbwEnabled = 1,
+ NlbwUnchanged = -1i32 as u32,
+}}
+pub type PNL_BANDWIDTH_FLAG = *mut NL_BANDWIDTH_FLAG;
+STRUCT!{struct NL_PATH_BANDWIDTH_ROD {
+ Bandwidth: ULONG64,
+ Instability: ULONG64,
+ BandwidthPeaked: BOOLEAN,
+}}
+pub type PNL_PATH_BANDWIDTH_ROD = *mut NL_PATH_BANDWIDTH_ROD;
+ENUM!{enum NL_NETWORK_CATEGORY {
+ NetworkCategoryPublic = 0,
+ NetworkCategoryPrivate = 1,
+ NetworkCategoryDomainAuthenticated = 2,
+ NetworkCategoryUnchanged = -1i32 as u32,
+ NetworkCategoryUnknown = -1i32 as u32,
+}}
+pub type PNL_NETWORK_CATEGORY = *mut NL_NETWORK_CATEGORY;
+ENUM!{enum NL_INTERFACE_NETWORK_CATEGORY_STATE {
+ NlincCategoryUnknown = 0,
+ NlincPublic = 1,
+ NlincPrivate = 2,
+ NlincDomainAuthenticated = 3,
+ NlincCategoryStateMax = 4,
+}}
+pub type PNL_INTERFACE_NETWORK_CATEGORY_STATE = *mut NL_INTERFACE_NETWORK_CATEGORY_STATE;
+pub const NET_IF_CURRENT_SESSION: ULONG = -1i32 as u32;
+STRUCT!{struct NL_BANDWIDTH_INFORMATION {
+ Bandwidth: ULONG64,
+ Instability: ULONG64,
+ BandwidthPeaked: BOOLEAN,
+}}
+pub type PNL_BANDWIDTH_INFORMATION = *mut NL_BANDWIDTH_INFORMATION;
diff --git a/third_party/rust/winapi/src/shared/ntddndis.rs b/third_party/rust/winapi/src/shared/ntddndis.rs
new file mode 100644
index 0000000000..d519cb2552
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ntddndis.rs
@@ -0,0 +1,75 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::c_int;
+use shared::ifdef::IF_MAX_STRING_SIZE;
+use shared::minwindef::{UCHAR, USHORT};
+//290
+STRUCT!{struct NDIS_OBJECT_HEADER {
+ Type: UCHAR,
+ Revision: UCHAR,
+ Size: USHORT,
+}}
+pub type PNDIS_OBJECT_HEADER = *mut NDIS_OBJECT_HEADER;
+//2274
+ENUM!{enum NDIS_MEDIUM {
+ NdisMedium802_3 = 0,
+ NdisMedium802_5 = 1,
+ NdisMediumFddi = 2,
+ NdisMediumWan = 3,
+ NdisMediumLocalTalk = 4,
+ NdisMediumDix = 5,
+ NdisMediumArcnetRaw = 6,
+ NdisMediumArcnet878_2 = 7,
+ NdisMediumAtm = 8,
+ NdisMediumWirelessWan = 9,
+ NdisMediumIrda = 10,
+ NdisMediumBpc = 11,
+ NdisMediumCoWan = 12,
+ NdisMedium1394 = 13,
+ NdisMediumInfiniBand = 14,
+ NdisMediumTunnel = 15,
+ NdisMediumNative802_11 = 16,
+ NdisMediumLoopback = 17,
+ NdisMediumWiMAX = 18,
+ NdisMediumIP = 19,
+ NdisMediumMax = 20,
+}}
+pub type PNDIS_MEDIUM = *mut NDIS_MEDIUM;
+ENUM!{enum NDIS_PHYSICAL_MEDIUM {
+ NdisPhysicalMediumUnspecified = 0,
+ NdisPhysicalMediumWirelessLan = 1,
+ NdisPhysicalMediumCableModem = 2,
+ NdisPhysicalMediumPhoneLine = 3,
+ NdisPhysicalMediumPowerLine = 4,
+ NdisPhysicalMediumDSL = 5,
+ NdisPhysicalMediumFibreChannel = 6,
+ NdisPhysicalMedium1394 = 7,
+ NdisPhysicalMediumWirelessWan = 8,
+ NdisPhysicalMediumNative802_11 = 9,
+ NdisPhysicalMediumBluetooth = 10,
+ NdisPhysicalMediumInfiniband = 11,
+ NdisPhysicalMediumWiMax = 12,
+ NdisPhysicalMediumUWB = 13,
+ NdisPhysicalMedium802_3 = 14,
+ NdisPhysicalMedium802_5 = 15,
+ NdisPhysicalMediumIrda = 16,
+ NdisPhysicalMediumWiredWAN = 17,
+ NdisPhysicalMediumWiredCoWan = 18,
+ NdisPhysicalMediumOther = 19,
+ NdisPhysicalMediumMax = 20,
+}}
+pub type PNDIS_PHYSICAL_MEDIUM = *mut NDIS_PHYSICAL_MEDIUM;
+//2691
+pub type NDIS_STATUS = c_int;
+pub type PNDIS_STATUS = *mut c_int;
+//2736
+pub const NDIS_PACKET_TYPE_DIRECTED: u32 = 0x00000001;
+pub const NDIS_PACKET_TYPE_MULTICAST: u32 = 0x00000002;
+pub const NDIS_PACKET_TYPE_ALL_MULTICAST: u32 = 0x00000004;
+pub const NDIS_PACKET_TYPE_BROADCAST: u32 = 0x00000008;
+pub const NDIS_PACKET_TYPE_PROMISCUOUS: u32 = 0x00000020;
+//2835
+pub const NDIS_IF_MAX_STRING_SIZE: usize = IF_MAX_STRING_SIZE;
diff --git a/third_party/rust/winapi/src/shared/ntddscsi.rs b/third_party/rust/winapi/src/shared/ntddscsi.rs
new file mode 100644
index 0000000000..c2e4f2c682
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ntddscsi.rs
@@ -0,0 +1,834 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constants and types for accessing SCSI port adapters.
+use shared::basetsd::{ULONG32, ULONG_PTR};
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use shared::ntdef::{LARGE_INTEGER, LONG, LONGLONG, PVOID, ULONGLONG, VOID, WCHAR};
+use um::winioctl::{
+ DEVICE_TYPE, FILE_ANY_ACCESS, FILE_DEVICE_CONTROLLER, FILE_READ_ACCESS,
+ FILE_WRITE_ACCESS, METHOD_BUFFERED
+};
+use um::winnt::{ANYSIZE_ARRAY, BOOLEAN, PBOOLEAN};
+DEFINE_GUID!{ScsiRawInterfaceGuid,
+ 0x53f56309, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b}
+DEFINE_GUID!{WmiScsiAddressGuid,
+ 0x53f5630f, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b}
+pub const IOCTL_SCSI_BASE: DEVICE_TYPE = FILE_DEVICE_CONTROLLER;
+pub const FILE_DEVICE_SCSI: ULONG = 0x0000001;
+pub const DD_SCSI_DEVICE_NAME: &'static str = "\\Device\\ScsiPort";
+pub const IOCTL_SCSI_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_MINIPORT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_GET_INQUIRY_DATA: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0403, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_GET_CAPABILITIES: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0404, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_GET_ADDRESS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0406, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_RESCAN_BUS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0407, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_GET_DUMP_POINTERS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0408, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_SCSI_FREE_DUMP_POINTERS: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0409, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_IDE_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_PASS_THROUGH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_PASS_THROUGH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040c, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_ATA_MINIPORT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MINIPORT_PROCESS_SERVICE_IRP: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040e, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x040f, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0410, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0411, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_PASS_THROUGH_DIRECT_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0412, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0413, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX: ULONG =
+ CTL_CODE!(IOCTL_SCSI_BASE, 0x0414, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS);
+pub const IOCTL_SCSI_MINIPORT_NVCACHE: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0600;
+pub const IOCTL_SCSI_MINIPORT_HYBRID: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0620;
+pub const IOCTL_SCSI_MINIPORT_FIRMWARE: ULONG = (FILE_DEVICE_SCSI << 16) + 0x0780;
+STRUCT!{struct SCSI_PASS_THROUGH {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBufferOffset: ULONG_PTR,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH = *mut SCSI_PASS_THROUGH;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBuffer: PVOID,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT = *mut SCSI_PASS_THROUGH_DIRECT;
+STRUCT!{struct SCSI_PASS_THROUGH32 {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBufferOffset: ULONG32,
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+pub type PSCSI_PASS_THROUGH32 = *mut SCSI_PASS_THROUGH32;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT32 {
+ Length: USHORT,
+ ScsiStatus: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ CdbLength: UCHAR,
+ SenseInfoLength: UCHAR,
+ DataIn: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ DataBuffer: ULONG32, // Rust doesn't have anything like __ptr32
+ SenseInfoOffset: ULONG,
+ Cdb: [UCHAR; 16],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT32 = *mut SCSI_PASS_THROUGH_DIRECT32;
+}
+STRUCT!{struct SCSI_PASS_THROUGH_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBufferOffset: ULONG_PTR,
+ DataInBufferOffset: ULONG_PTR,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_EX = *mut SCSI_PASS_THROUGH_EX;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBuffer: *mut VOID,
+ DataInBuffer: *mut VOID,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT_EX = *mut SCSI_PASS_THROUGH_DIRECT_EX;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct SCSI_PASS_THROUGH32_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBufferOffset: ULONG32,
+ DataInBufferOffset: ULONG32,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH32_EX = *mut SCSI_PASS_THROUGH32_EX;
+STRUCT!{struct SCSI_PASS_THROUGH_DIRECT32_EX {
+ Version: ULONG,
+ Length: ULONG,
+ CdbLength: ULONG,
+ StorAddressLength: ULONG,
+ ScsiStatus: UCHAR,
+ SenseInfolength: UCHAR,
+ DataDirection: UCHAR,
+ Reserved: UCHAR,
+ TimeOutValue: ULONG,
+ StorAddressOffset: ULONG,
+ SenseInfoOffset: ULONG,
+ DataOutTransferLength: ULONG,
+ DataInTransferLength: ULONG,
+ DataOutBuffer: ULONG32,
+ DataInBuffer: ULONG32,
+ Cdb: [UCHAR; ANYSIZE_ARRAY],
+}}
+pub type PSCSI_PASS_THROUGH_DIRECT32_EX = *mut SCSI_PASS_THROUGH_DIRECT32_EX;
+}
+STRUCT!{struct ATA_PASS_THROUGH_EX {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBufferOffset: ULONG_PTR,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_EX = *mut ATA_PASS_THROUGH_EX;
+STRUCT!{struct ATA_PASS_THROUGH_DIRECT {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBuffer: PVOID,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_DIRECT = *mut ATA_PASS_THROUGH_DIRECT;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct ATA_PASS_THROUGH_EX32 {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBufferOffset: ULONG32,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_EX32 = *mut ATA_PASS_THROUGH_EX32;
+STRUCT!{struct ATA_PASS_THROUGH_DIRECT32 {
+ Length: USHORT,
+ AtaFlags: USHORT,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ ReservedAsUchar: UCHAR,
+ DataTransferLength: ULONG,
+ TimeOutValue: ULONG,
+ ReservedAsUlong: ULONG,
+ DataBuffer: ULONG32,
+ PreviousTaskFile: [UCHAR; 8],
+ CurrentTaskFile: [UCHAR; 8],
+}}
+pub type PATA_PASS_THROUGH_DIRECT32 = *mut ATA_PASS_THROUGH_DIRECT32;
+}
+pub const ATA_FLAGS_DRDY_REQUIRED: USHORT = 1 << 0;
+pub const ATA_FLAGS_DATA_IN: USHORT = 1 << 1;
+pub const ATA_FLAGS_DATA_OUT: USHORT = 1 << 2;
+pub const ATA_FLAGS_48BIT_COMMAND: USHORT = 1 << 3;
+pub const ATA_FLAGS_USE_DMA: USHORT = 1 << 4;
+pub const ATA_FLAGS_NO_MULTIPLE: USHORT = 1 << 5;
+STRUCT!{struct IDE_IO_CONTROL {
+ HeaderLength: ULONG,
+ Signature: [UCHAR; 8],
+ Timeout: ULONG,
+ ControlCode: ULONG,
+ ReturnStatus: ULONG,
+ DataLength: ULONG,
+}}
+pub type PIDE_IO_CONTROL = *mut IDE_IO_CONTROL;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH {
+ PassThrough: SCSI_PASS_THROUGH,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH = *mut MPIO_PASS_THROUGH_PATH;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT {
+ PassThrough: SCSI_PASS_THROUGH_DIRECT,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT = *mut MPIO_PASS_THROUGH_PATH_DIRECT;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_EX = *mut MPIO_PASS_THROUGH_PATH_EX;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT_EX = *mut MPIO_PASS_THROUGH_PATH_DIRECT_EX;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+STRUCT!{struct MPIO_PASS_THROUGH_PATH32 {
+ PassThrough: SCSI_PASS_THROUGH32,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH32 = *mut MPIO_PASS_THROUGH_PATH32;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT32 {
+ PassThrough: SCSI_PASS_THROUGH_DIRECT32,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT32 = *mut MPIO_PASS_THROUGH_PATH_DIRECT32;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH32_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH32_EX = *mut MPIO_PASS_THROUGH_PATH32_EX;
+STRUCT!{struct MPIO_PASS_THROUGH_PATH_DIRECT32_EX {
+ PassThroughOffset: ULONG,
+ Version: ULONG,
+ Length: USHORT,
+ Flags: UCHAR,
+ PortNumber: UCHAR,
+ MpioPathId: ULONGLONG,
+}}
+pub type PMPIO_PASS_THROUGH_PATH_DIRECT32_EX = *mut MPIO_PASS_THROUGH_PATH_DIRECT32_EX;
+}
+STRUCT!{struct SCSI_BUS_DATA {
+ NumberOfLogicalUnits: UCHAR,
+ InitiatorBusId: UCHAR,
+ InquiryDataOffset: ULONG,
+}}
+pub type PSCSI_BUS_DATA = *mut SCSI_BUS_DATA;
+STRUCT!{struct SCSI_ADAPTER_BUS_INFO {
+ NumberOfBuses: UCHAR,
+ BusData: [SCSI_BUS_DATA; 1],
+}}
+pub type PSCSI_ADAPTER_BUS_INFO = *mut SCSI_ADAPTER_BUS_INFO;
+STRUCT!{struct SCSI_INQUIRY_DATA {
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+ DeviceClaimed: BOOLEAN,
+ InquiryDataLength: ULONG,
+ NextInquiryDataOffset: ULONG,
+ InquiryData: [UCHAR; 1],
+}}
+pub type PSCSI_INQUIRY_DATA = *mut SCSI_INQUIRY_DATA;
+pub const IOCTL_MINIPORT_SIGNATURE_SCSIDISK: &'static str = "SCSIDISK";
+pub const IOCTL_MINIPORT_SIGNATURE_HYBRDISK: &'static str = "HYBRDISK";
+pub const IOCTL_MINIPORT_SIGNATURE_DSM_NOTIFICATION: &'static str = "MPDSM ";
+pub const IOCTL_MINIPORT_SIGNATURE_DSM_GENERAL: &'static str = "MPDSMGEN";
+pub const IOCTL_MINIPORT_SIGNATURE_FIRMWARE: &'static str = "FIRMWARE";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PROTOCOL: &'static str = "PROTOCOL";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_TEMPERATURE: &'static str = "TEMPERAT";
+pub const IOCTL_MINIPORT_SIGNATURE_SET_TEMPERATURE_THRESHOLD: &'static str = "SETTEMPT";
+pub const IOCTL_MINIPORT_SIGNATURE_QUERY_PHYSICAL_TOPOLOGY: &'static str = "TOPOLOGY";
+STRUCT!{struct SRB_IO_CONTROL {
+ HeaderLength: ULONG,
+ Signature: [UCHAR; 8],
+ Timeout: ULONG,
+ ControlCode: ULONG,
+ ReturnCode: ULONG,
+ Length: ULONG,
+}}
+pub type PSRB_IO_CONTROL = *mut SRB_IO_CONTROL;
+STRUCT!{struct NVCACHE_REQUEST_BLOCK {
+ NRBSize: ULONG,
+ Function: USHORT,
+ NRBFlags: ULONG,
+ NRBStatus: ULONG,
+ Count: ULONG,
+ LBA: ULONGLONG,
+ DataBufSize: ULONG,
+ NVCacheStatus: ULONG,
+ NVCacheSubStatus: ULONG,
+}}
+pub type PNVCACHE_REQUEST_BLOCK = *mut NVCACHE_REQUEST_BLOCK;
+pub const NRB_FUNCTION_NVCACHE_INFO: USHORT = 0xEC;
+pub const NRB_FUNCTION_SPINDLE_STATUS: USHORT = 0xE5;
+pub const NRB_FUNCTION_NVCACHE_POWER_MODE_SET: USHORT = 0x00;
+pub const NRB_FUNCTION_NVCACHE_POWER_MODE_RETURN: USHORT = 0x01;
+pub const NRB_FUNCTION_FLUSH_NVCACHE: USHORT = 0x14;
+pub const NRB_FUNCTION_QUERY_PINNED_SET: USHORT = 0x12;
+pub const NRB_FUNCTION_QUERY_CACHE_MISS: USHORT = 0x13;
+pub const NRB_FUNCTION_ADD_LBAS_PINNED_SET: USHORT = 0x10;
+pub const NRB_FUNCTION_REMOVE_LBAS_PINNED_SET: USHORT = 0x11;
+pub const NRB_FUNCTION_QUERY_ASCENDER_STATUS: USHORT = 0xD0;
+pub const NRB_FUNCTION_QUERY_HYBRID_DISK_STATUS: USHORT = 0xD1;
+pub const NRB_FUNCTION_PASS_HINT_PAYLOAD: USHORT = 0xE0;
+pub const NRB_FUNCTION_NVSEPARATED_INFO: USHORT = 0xc0;
+pub const NRB_FUNCTION_NVSEPARATED_FLUSH: USHORT = 0xc1;
+pub const NRB_FUNCTION_NVSEPARATED_WB_DISABLE: USHORT = 0xc2;
+pub const NRB_FUNCTION_NVSEPARATED_WB_REVERT_DEFAULT: USHORT = 0xc3;
+pub const NRB_SUCCESS: ULONG = 0;
+pub const NRB_ILLEGAL_REQUEST: ULONG = 1;
+pub const NRB_INVALID_PARAMETER: ULONG = 2;
+pub const NRB_INPUT_DATA_OVERRUN: ULONG = 3;
+pub const NRB_INPUT_DATA_UNDERRUN: ULONG = 4;
+pub const NRB_OUTPUT_DATA_OVERRUN: ULONG = 5;
+pub const NRB_OUTPUT_DATA_UNDERRUN: ULONG = 6;
+STRUCT!{struct NV_FEATURE_PARAMETER {
+ NVPowerModeEnabled: USHORT,
+ NVParameterReserv1: USHORT,
+ NVCmdEnabled: USHORT,
+ NVParameterReserv2: USHORT,
+ NVPowerModeVer: USHORT,
+ NVCmdVer: USHORT,
+ NVSize: ULONG,
+ NVReadSpeed: USHORT,
+ NVWrtSpeed: USHORT,
+ DeviceSpinUpTime: ULONG,
+}}
+pub type PNV_FEATURE_PARAMETER = *mut NV_FEATURE_PARAMETER;
+STRUCT!{struct NVCACHE_HINT_PAYLOAD {
+ Command: UCHAR,
+ Feature7_0: UCHAR,
+ Feature15_8: UCHAR,
+ Count15_8: UCHAR,
+ LBA7_0: UCHAR,
+ LBA15_8: UCHAR,
+ LBA23_16: UCHAR,
+ LBA31_24: UCHAR,
+ LBA39_32: UCHAR,
+ LBA47_40: UCHAR,
+ Auxiliary7_0: UCHAR,
+ Auxiliary23_16: UCHAR,
+ Reserved: [UCHAR; 4],
+}}
+pub type PNVCACHE_HINT_PAYLOAD = *mut NVCACHE_HINT_PAYLOAD;
+STRUCT!{struct NV_SEP_CACHE_PARAMETER {
+ Version: ULONG,
+ Size: ULONG,
+ Flags: NV_SEP_CACHE_PARAMETER_Flags,
+ WriteCacheType: UCHAR,
+ WriteCacheTypeEffective: UCHAR,
+ ParameterReserve1: [UCHAR; 3],
+}}
+pub type PNV_SEP_CACHE_PARAMETER = *mut NV_SEP_CACHE_PARAMETER;
+UNION!{union NV_SEP_CACHE_PARAMETER_Flags {
+ [u8; 1],
+ CacheFlags CacheFlags_mut: NV_SEP_CACHE_PARAMETER_Flags_CacheFlags,
+ CacheFlagsSet CacheFlagsSet_mut: UCHAR,
+}}
+STRUCT!{struct NV_SEP_CACHE_PARAMETER_Flags_CacheFlags {
+ Bitfield: UCHAR,
+}}
+BITFIELD!{NV_SEP_CACHE_PARAMETER_Flags_CacheFlags Bitfield: UCHAR [
+ WriteCacheEnabled set_WriteCacheEnabled[0..1],
+ WriteCacheChangeable set_WriteCacheChangeable[1..2],
+ WriteThroughIOSupported set_WriteThroughIOSupported[2..3],
+ FlushCacheSupported set_FlushCacheSupported[3..4],
+ ReservedBits set_ReservedBits[4..8],
+]}
+pub const NV_SEP_CACHE_PARAMETER_VERSION_1: ULONG = 1;
+pub const NV_SEP_CACHE_PARAMETER_VERSION: ULONG = NV_SEP_CACHE_PARAMETER_VERSION_1;
+ENUM!{enum NV_SEP_WRITE_CACHE_TYPE {
+ NVSEPWriteCacheTypeUnknown = 0,
+ NVSEPWriteCacheTypeNone = 1,
+ NVSEPWriteCacheTypeWriteBack = 2,
+ NVSEPWriteCacheTypeWriteThrough = 3,
+}}
+pub type PNV_SEP_WRITE_CACHE_TYPE = *mut NV_SEP_WRITE_CACHE_TYPE;
+STRUCT!{struct MP_DEVICE_DATA_SET_RANGE {
+ StartingOffset: LONGLONG,
+ LengthInBytes: ULONGLONG,
+}}
+pub type PMP_DEVICE_DATA_SET_RANGE = *mut MP_DEVICE_DATA_SET_RANGE;
+STRUCT!{struct DSM_NOTIFICATION_REQUEST_BLOCK {
+ Size: ULONG,
+ Version: ULONG,
+ NotifyFlags: ULONG,
+ DataSetProfile: ULONG,
+ Reserved: [ULONG; 3],
+ DataSetRangesCount: ULONG,
+ DataSetRanges: [MP_DEVICE_DATA_SET_RANGE; ANYSIZE_ARRAY],
+}}
+pub type PDSM_NOTIFICATION_REQUEST_BLOCK = *mut DSM_NOTIFICATION_REQUEST_BLOCK;
+pub const MINIPORT_DSM_NOTIFICATION_VERSION_1: ULONG = 1;
+pub const MINIPORT_DSM_NOTIFICATION_VERSION: ULONG = MINIPORT_DSM_NOTIFICATION_VERSION_1;
+pub const MINIPORT_DSM_PROFILE_UNKNOWN: ULONG = 0;
+pub const MINIPORT_DSM_PROFILE_PAGE_FILE: ULONG = 1;
+pub const MINIPORT_DSM_PROFILE_HIBERNATION_FILE: ULONG = 2;
+pub const MINIPORT_DSM_PROFILE_CRASHDUMP_FILE: ULONG = 3;
+pub const MINIPORT_DSM_NOTIFY_FLAG_BEGIN: ULONG = 0x00000001;
+pub const MINIPORT_DSM_NOTIFY_FLAG_END: ULONG = 0x00000002;
+pub const HYBRID_FUNCTION_GET_INFO: ULONG = 0x01;
+pub const HYBRID_FUNCTION_DISABLE_CACHING_MEDIUM: ULONG = 0x10;
+pub const HYBRID_FUNCTION_ENABLE_CACHING_MEDIUM: ULONG = 0x11;
+pub const HYBRID_FUNCTION_SET_DIRTY_THRESHOLD: ULONG = 0x12;
+pub const HYBRID_FUNCTION_DEMOTE_BY_SIZE: ULONG = 0x13;
+pub const HYBRID_STATUS_SUCCESS: ULONG = 0x0;
+pub const HYBRID_STATUS_ILLEGAL_REQUEST: ULONG = 0x1;
+pub const HYBRID_STATUS_INVALID_PARAMETER: ULONG = 0x2;
+pub const HYBRID_STATUS_OUTPUT_BUFFER_TOO_SMALL: ULONG = 0x3;
+pub const HYBRID_STATUS_ENABLE_REFCOUNT_HOLD: ULONG = 0x10;
+pub const HYBRID_REQUEST_BLOCK_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct HYBRID_REQUEST_BLOCK {
+ Version: ULONG,
+ Size: ULONG,
+ Function: ULONG,
+ Flags: ULONG,
+ DataBufferOffset: ULONG,
+ DataBufferLength: ULONG,
+}}
+pub type PHYBRID_REQUEST_BLOCK = *mut HYBRID_REQUEST_BLOCK;
+ENUM!{enum NVCACHE_TYPE {
+ NvCacheTypeUnknown = 0,
+ NvCacheTypeNone = 1,
+ NvCacheTypeWriteBack = 2,
+ NvCacheTypeWriteThrough = 3,
+}}
+ENUM!{enum NVCACHE_STATUS {
+ NvCacheStatusUnknown = 0,
+ NvCacheStatusDisabling = 1,
+ NvCacheStatusDisabled = 2,
+ NvCacheStatusEnabled = 3,
+}}
+STRUCT!{struct NVCACHE_PRIORITY_LEVEL_DESCRIPTOR {
+ PriorityLevel: UCHAR,
+ Reserved0: [UCHAR; 3],
+ ConsumedNVMSizeFraction: ULONG,
+ ConsumedMappingResourcesFraction: ULONG,
+ ConsumedNVMSizeForDirtyDataFraction: ULONG,
+ ConsumedMappingResourcesForDirtyDataFraction: ULONG,
+ Reserved1: ULONG,
+}}
+pub type PNVCACHE_PRIORITY_LEVEL_DESCRIPTOR = *mut NVCACHE_PRIORITY_LEVEL_DESCRIPTOR;
+pub const HYBRID_REQUEST_INFO_STRUCTURE_VERSION: ULONG = 1;
+STRUCT!{struct HYBRID_INFORMATION {
+ Version: ULONG,
+ Size: ULONG,
+ HybridSupported: BOOLEAN,
+ Status: NVCACHE_STATUS,
+ CacheTypeEffective: NVCACHE_TYPE,
+ CacheTypeDefault: NVCACHE_TYPE,
+ FractionBase: ULONG,
+ CacheSize: ULONGLONG,
+ Attributes: HYBRID_INFORMATION_Attributes,
+ Priorities: HYBRID_INFORMATION_Priorities,
+}}
+pub type PHYBRID_INFORMATION = *mut HYBRID_INFORMATION;
+STRUCT!{struct HYBRID_INFORMATION_Attributes {
+ Bitfield: ULONG,
+}}
+BITFIELD!{HYBRID_INFORMATION_Attributes Bitfield: ULONG [
+ WriteCacheChangeable set_WriteCacheChangeable[0..1],
+ WriteThroughIoSupported set_WriteThroughIoSupported[1..2],
+ FlushCacheSupported set_FlushCacheSupported[2..3],
+ Removable set_Removable[3..4],
+ ReservedBits set_ReservedBits[4..32],
+]}
+STRUCT!{struct HYBRID_INFORMATION_Priorities {
+ PriorityLevelCount: UCHAR,
+ MaxPriorityBehavior: BOOLEAN,
+ OptimalWriteGranularity: UCHAR,
+ Reserved: UCHAR,
+ DirtyThresholdLow: ULONG,
+ DirtyThresholdHigh: ULONG,
+ SupportedCommands: HYBRID_INFORMATION_Priorities_SupportedCommands,
+ Priority: [NVCACHE_PRIORITY_LEVEL_DESCRIPTOR; 0],
+}}
+STRUCT!{struct HYBRID_INFORMATION_Priorities_SupportedCommands {
+ Bitfield: ULONG,
+ MaxEvictCommands: ULONG,
+ MaxLbaRangeCountForEvict: ULONG,
+ MaxLbaRangeCountForChangeLba: ULONG,
+}}
+BITFIELD!{HYBRID_INFORMATION_Priorities_SupportedCommands Bitfield: ULONG [
+ CacheDisable set_CacheDisable[0..1],
+ SetDirtyThreshold set_SetDirtyThreshold[1..2],
+ PriorityDemoteBySize set_PriorityDemoteBySize[2..3],
+ PriorityChangeByLbaRange set_PriorityChangeByLbaRange[3..4],
+ Evict set_Evict[4..5],
+ ReservedBits set_ReservedBits[5..32],
+]}
+STRUCT!{struct HYBRID_DIRTY_THRESHOLDS {
+ Version: ULONG,
+ Size: ULONG,
+ DirtyLowThreshold: ULONG,
+ DirtyHighThreshold: ULONG,
+}}
+pub type PHYBRID_DIRTY_THRESHOLDS = *mut HYBRID_DIRTY_THRESHOLDS;
+STRUCT!{struct HYBRID_DEMOTE_BY_SIZE {
+ Version: ULONG,
+ Size: ULONG,
+ SourcePriority: UCHAR,
+ TargetPriority: UCHAR,
+ Reserved0: USHORT,
+ Reserved1: ULONG,
+ LbaCount: ULONGLONG,
+}}
+pub type PHYBRID_DEMOTE_BY_SIZE = *mut HYBRID_DEMOTE_BY_SIZE;
+pub const FIRMWARE_FUNCTION_GET_INFO: ULONG = 0x01;
+pub const FIRMWARE_FUNCTION_DOWNLOAD: ULONG = 0x02;
+pub const FIRMWARE_FUNCTION_ACTIVATE: ULONG = 0x03;
+pub const FIRMWARE_STATUS_SUCCESS: ULONG = 0x0;
+pub const FIRMWARE_STATUS_ERROR: ULONG = 0x1;
+pub const FIRMWARE_STATUS_ILLEGAL_REQUEST: ULONG = 0x2;
+pub const FIRMWARE_STATUS_INVALID_PARAMETER: ULONG = 0x3;
+pub const FIRMWARE_STATUS_INPUT_BUFFER_TOO_BIG: ULONG = 0x4;
+pub const FIRMWARE_STATUS_OUTPUT_BUFFER_TOO_SMALL: ULONG = 0x5;
+pub const FIRMWARE_STATUS_INVALID_SLOT: ULONG = 0x6;
+pub const FIRMWARE_STATUS_INVALID_IMAGE: ULONG = 0x7;
+pub const FIRMWARE_STATUS_CONTROLLER_ERROR: ULONG = 0x10;
+pub const FIRMWARE_STATUS_POWER_CYCLE_REQUIRED: ULONG = 0x20;
+pub const FIRMWARE_STATUS_DEVICE_ERROR: ULONG = 0x40;
+pub const FIRMWARE_STATUS_INTERFACE_CRC_ERROR: ULONG = 0x80;
+pub const FIRMWARE_STATUS_UNCORRECTABLE_DATA_ERROR: ULONG = 0x81;
+pub const FIRMWARE_STATUS_MEDIA_CHANGE: ULONG = 0x82;
+pub const FIRMWARE_STATUS_ID_NOT_FOUND: ULONG = 0x83;
+pub const FIRMWARE_STATUS_MEDIA_CHANGE_REQUEST: ULONG = 0x84;
+pub const FIRMWARE_STATUS_COMMAND_ABORT: ULONG = 0x85;
+pub const FIRMWARE_STATUS_END_OF_MEDIA: ULONG = 0x86;
+pub const FIRMWARE_STATUS_ILLEGAL_LENGTH: ULONG = 0x87;
+pub const FIRMWARE_REQUEST_BLOCK_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct FIRMWARE_REQUEST_BLOCK {
+ Version: ULONG,
+ Size: ULONG,
+ Function: ULONG,
+ Flags: ULONG,
+ DataBufferOffset: ULONG,
+ DataBufferLength: ULONG,
+}}
+pub type PFIRMWARE_REQUEST_BLOCK = *mut FIRMWARE_REQUEST_BLOCK;
+pub const FIRMWARE_REQUEST_FLAG_CONTROLLER: ULONG = 0x00000001;
+pub const FIRMWARE_REQUEST_FLAG_LAST_SEGMENT: ULONG = 0x00000002;
+pub const FIRMWARE_REQUEST_FLAG_SWITCH_TO_EXISTING_FIRMWARE: ULONG = 0x80000000;
+pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION: ULONG = 0x1;
+pub const STORAGE_FIRMWARE_INFO_STRUCTURE_VERSION_V2: ULONG = 0x2;
+pub const STORAGE_FIRMWARE_INFO_INVALID_SLOT: UCHAR = 0xFF;
+STRUCT!{struct STORAGE_FIRMWARE_SLOT_INFO {
+ SlotNumber: UCHAR,
+ ReadOnly: BOOLEAN,
+ Reserved: [UCHAR; 6],
+ Revision: STORAGE_FIRMWARE_SLOT_INFO_Revision,
+}}
+pub type PSTORAGE_FIRMWARE_SLOT_INFO = *mut STORAGE_FIRMWARE_SLOT_INFO;
+UNION!{union STORAGE_FIRMWARE_SLOT_INFO_Revision {
+ [u64; 1],
+ Info Info_mut: [UCHAR; 8],
+ AsUlonglong AsUlonglong_mut: ULONGLONG,
+}}
+pub const STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH: usize = 16;
+STRUCT!{struct STORAGE_FIRMWARE_SLOT_INFO_V2 {
+ SlotNumber: UCHAR,
+ ReadOnly: BOOLEAN,
+ Reserved: [UCHAR; 6],
+ Revision: [UCHAR; STORAGE_FIRMWARE_SLOT_INFO_V2_REVISION_LENGTH],
+}}
+pub type PSTORAGE_FIRMWARE_SLOT_INFO_V2 = *mut STORAGE_FIRMWARE_SLOT_INFO_V2;
+STRUCT!{struct STORAGE_FIRMWARE_INFO {
+ Version: ULONG,
+ Size: ULONG,
+ UpgradeSupport: BOOLEAN,
+ SlotCount: UCHAR,
+ ActiveSlot: UCHAR,
+ PendingActivateSlot: UCHAR,
+ Reserved: ULONG,
+ Slot: [STORAGE_FIRMWARE_SLOT_INFO; 0],
+}}
+pub type PSTORAGE_FIRMWARE_INFO = *mut STORAGE_FIRMWARE_INFO;
+STRUCT!{struct STORAGE_FIRMWARE_INFO_V2 {
+ Version: ULONG,
+ Size: ULONG,
+ UpgradeSupport: BOOLEAN,
+ SlotCount: UCHAR,
+ ActiveSlot: UCHAR,
+ PendingActivateSlot: UCHAR,
+ FirmwareShared: BOOLEAN,
+ Reserved: [UCHAR; 3],
+ ImagePayloadAlignment: ULONG,
+ ImagePayloadMaxSize: ULONG,
+ Slot: [STORAGE_FIRMWARE_SLOT_INFO_V2; 0],
+}}
+pub type PSTORAGE_FIRMWARE_INFO_V2 = *mut STORAGE_FIRMWARE_INFO_V2;
+pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION: ULONG = 0x1;
+pub const STORAGE_FIRMWARE_DOWNLOAD_STRUCTURE_VERSION_V2: ULONG = 0x2;
+STRUCT!{struct STORAGE_FIRMWARE_DOWNLOAD {
+ Version: ULONG,
+ Size: ULONG,
+ Offset: ULONGLONG,
+ BufferSize: ULONGLONG,
+ ImageBuffer: [UCHAR; 0],
+}}
+pub type PSTORAGE_FIRMWARE_DOWNLOAD = *mut STORAGE_FIRMWARE_DOWNLOAD;
+STRUCT!{struct STORAGE_FIRMWARE_DOWNLOAD_V2 {
+ Version: ULONG,
+ Size: ULONG,
+ Offset: ULONGLONG,
+ BufferSize: ULONGLONG,
+ Slot: UCHAR,
+ Reserved: [UCHAR; 7],
+ ImageBuffer: [UCHAR; 0],
+}}
+pub type PSTORAGE_FIRMWARE_DOWNLOAD_V2 = *mut STORAGE_FIRMWARE_DOWNLOAD_V2;
+pub const STORAGE_FIRMWARE_ACTIVATE_STRUCTURE_VERSION: ULONG = 0x1;
+STRUCT!{struct STORAGE_FIRMWARE_ACTIVATE {
+ Version: ULONG,
+ Size: ULONG,
+ SlotToActivate: UCHAR,
+ Reserved0: [UCHAR; 3],
+}}
+pub type PSTORAGE_FIRMWARE_ACTIVATE = *mut STORAGE_FIRMWARE_ACTIVATE;
+STRUCT!{struct IO_SCSI_CAPABILITIES {
+ Length: ULONG,
+ MaximumTransferLength: ULONG,
+ MaximumPhysicalPages: ULONG,
+ SupportedAsynchronousEvents: ULONG,
+ AlignmentMask: ULONG,
+ TaggedQueuing: BOOLEAN,
+ AdapterScansDown: BOOLEAN,
+ AdapterUsesPio: BOOLEAN,
+}}
+pub type PIO_SCSI_CAPABILITIES = *mut IO_SCSI_CAPABILITIES;
+STRUCT!{struct SCSI_ADDRESS {
+ Length: ULONG,
+ PortNumber: UCHAR,
+ PathId: UCHAR,
+ TargetId: UCHAR,
+ Lun: UCHAR,
+}}
+pub type PSCSI_ADDRESS = *mut SCSI_ADDRESS;
+pub const DUMP_POINTERS_VERSION_1: ULONG = 1;
+pub const DUMP_POINTERS_VERSION_2: ULONG = 2;
+pub const DUMP_POINTERS_VERSION_3: ULONG = 3;
+pub const DUMP_POINTERS_VERSION_4: ULONG = 4;
+pub const DUMP_DRIVER_NAME_LENGTH: usize = 15;
+FN!{cdecl DUMP_DEVICE_POWERON_ROUTINE(
+ Context: PVOID,
+) -> LONG}
+pub type PDUMP_DEVICE_POWERON_ROUTINE = *mut DUMP_DEVICE_POWERON_ROUTINE;
+STRUCT!{struct DUMP_POINTERS_VERSION {
+ Version: ULONG,
+ Size: ULONG,
+}}
+pub type PDUMP_POINTERS_VERSION = *mut DUMP_POINTERS_VERSION;
+STRUCT!{struct DUMP_POINTERS {
+ AdapterObject: PVOID, // struct _ADAPTER_OBJECT *
+ MappedRegisterBase: PVOID,
+ DumpData: PVOID,
+ CommonBufferVa: PVOID,
+ CommonBufferPa: LARGE_INTEGER,
+ CommonBufferSize: ULONG,
+ AllocateCommonBuffers: BOOLEAN,
+ UseDiskDump: BOOLEAN,
+ Spare1: [UCHAR; 2],
+ DeviceObject: PVOID,
+}}
+pub type PDUMP_POINTERS = *mut DUMP_POINTERS;
+STRUCT!{struct DUMP_POINTERS_EX {
+ Header: DUMP_POINTERS_VERSION,
+ DumpData: PVOID,
+ CommonBufferVa: PVOID,
+ CommonBufferSize: ULONG,
+ AllocateCommonBuffers: BOOLEAN,
+ DeviceObject: PVOID,
+ DriverList: PVOID,
+ dwPortFlags: ULONG,
+ MaxDeviceDumpSectionSize: ULONG,
+ MaxDeviceDumpLevel: ULONG,
+ MaxTransferSize: ULONG,
+ AdapterObject: PVOID,
+ MappedRegisterBase: PVOID,
+ DeviceReady: PBOOLEAN,
+ DumpDevicePowerOn: PDUMP_DEVICE_POWERON_ROUTINE,
+ DumpDevicePowerOnContext: PVOID,
+}}
+pub type PDUMP_POINTERS_EX = *mut DUMP_POINTERS_EX;
+// TODO: Revisit these definitions when const size_of and offset_of! arrive.
+#[cfg(target_pointer_width = "32")]
+IFDEF!{
+pub const DUMP_POINTERS_EX_V2_SIZE: ULONG = 32;
+pub const DUMP_POINTERS_EX_V3_SIZE: ULONG = 60;
+pub const DUMP_POINTERS_EX_V4_SIZE: ULONG = 68;
+}
+#[cfg(target_pointer_width = "64")]
+IFDEF!{
+pub const DUMP_POINTERS_EX_V2_SIZE: ULONG = 48;
+pub const DUMP_POINTERS_EX_V3_SIZE: ULONG = 88;
+pub const DUMP_POINTERS_EX_V4_SIZE: ULONG = 104;
+}
+pub const DUMP_EX_FLAG_SUPPORT_64BITMEMORY: ULONG = 0x00000001;
+pub const DUMP_EX_FLAG_SUPPORT_DD_TELEMETRY: ULONG = 0x00000002;
+pub const DUMP_EX_FLAG_RESUME_SUPPORT: ULONG = 0x00000004;
+STRUCT!{struct DUMP_DRIVER {
+ DumpDriverList: PVOID,
+ DriverName: [WCHAR; DUMP_DRIVER_NAME_LENGTH],
+ BaseName: [WCHAR; DUMP_DRIVER_NAME_LENGTH],
+}}
+pub type PDUMP_DRIVER = *mut DUMP_DRIVER;
+pub const SCSI_IOCTL_DATA_OUT: UCHAR = 0;
+pub const SCSI_IOCTL_DATA_IN: UCHAR = 1;
+pub const SCSI_IOCTL_DATA_UNSPECIFIED: UCHAR = 2;
+pub const SCSI_IOCTL_DATA_BIDIRECTIONAL: UCHAR = 3;
+pub const MPIO_IOCTL_FLAG_USE_PATHID: UCHAR = 1;
+pub const MPIO_IOCTL_FLAG_USE_SCSIADDRESS: UCHAR = 2;
+pub const MPIO_IOCTL_FLAG_INVOLVE_DSM: UCHAR = 4;
diff --git a/third_party/rust/winapi/src/shared/ntddser.rs b/third_party/rust/winapi/src/shared/ntddser.rs
new file mode 100644
index 0000000000..d37b7f6ae6
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ntddser.rs
@@ -0,0 +1,17 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! This is the include file that defines all constants and types for accessing the Serial device.
+use shared::devpropdef::DEVPROPKEY;
+DEFINE_GUID!{GUID_DEVINTERFACE_COMPORT,
+ 0x86E0D1E0, 0x8089, 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73}
+DEFINE_GUID!{GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,
+ 0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_UsbVendorId,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 2}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_UsbProductId,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 3}
+DEFINE_DEVPROPKEY!{DEVPKEY_DeviceInterface_Serial_PortName,
+ 0x4C6BF15C, 0x4C03, 0x4AAC, 0x91, 0xF5, 0x64, 0xC0, 0xF8, 0x52, 0xBC, 0xF4, 4}
diff --git a/third_party/rust/winapi/src/shared/ntdef.rs b/third_party/rust/winapi/src/shared/ntdef.rs
new file mode 100644
index 0000000000..c2860b741e
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ntdef.rs
@@ -0,0 +1,1083 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Type definitions for the basic types.
+use ctypes::{
+ __int64, __uint64, c_char, c_double, c_int, c_long, c_schar, c_short, c_uchar, c_ulong,
+ c_ushort, c_void, wchar_t
+};
+use shared::basetsd::{KAFFINITY, LONG_PTR, ULONG64, ULONG_PTR};
+use shared::guiddef::GUID;
+#[cfg(target_arch = "x86_64")]
+IFDEF!{
+pub const MAX_NATURAL_ALIGNMENT: usize = 8;
+pub const MEMORY_ALLOCATION_ALIGNMENT: usize = 16;
+}
+#[cfg(not(target_arch = "x86_64"))]
+IFDEF!{
+pub const MAX_NATURAL_ALIGNMENT: usize = 4;
+pub const MEMORY_ALLOCATION_ALIGNMENT: usize = 8;
+}
+#[cfg(any(target_arch = "x86_64", target_arch = "x86"))]
+pub const SYSTEM_CACHE_ALIGNMENT_SIZE: usize = 64;
+#[cfg(not(any(target_arch = "x86_64", target_arch = "x86")))]
+pub const SYSTEM_CACHE_ALIGNMENT_SIZE: usize = 128;
+pub type PVOID = *mut c_void;
+pub type PVOID64 = u64; // This is a 64-bit pointer, even when in 32-bit
+pub type VOID = c_void;
+pub type CHAR = c_char;
+pub type SHORT = c_short;
+pub type LONG = c_long;
+pub type INT = c_int;
+pub type WCHAR = wchar_t;
+pub type PWCHAR = *mut WCHAR;
+pub type LPWCH = *mut WCHAR;
+pub type PWCH = *mut WCHAR;
+pub type LPCWCH = *const WCHAR;
+pub type PCWCH = *const WCHAR;
+pub type NWPSTR = *mut WCHAR;
+pub type LPWSTR = *mut WCHAR;
+pub type LPTSTR = LPSTR;
+pub type PWSTR = *mut WCHAR;
+pub type PZPWSTR = *mut PWSTR;
+pub type PCZPWSTR = *const PWSTR;
+pub type LPUWSTR = *mut WCHAR; // Unaligned pointer
+pub type PUWSTR = *mut WCHAR; // Unaligned pointer
+pub type LPCWSTR = *const WCHAR;
+pub type PCWSTR = *const WCHAR;
+pub type PZPCWSTR = *mut PCWSTR;
+pub type PCZPCWSTR = *const PCWSTR;
+pub type LPCUWSTR = *const WCHAR; // Unaligned pointer
+pub type PCUWSTR = *const WCHAR; // Unaligned pointer
+pub type PZZWSTR = *mut WCHAR;
+pub type PCZZWSTR = *const WCHAR;
+pub type PUZZWSTR = *mut WCHAR; // Unaligned pointer
+pub type PCUZZWSTR = *const WCHAR; // Unaligned pointer
+pub type PNZWCH = *mut WCHAR;
+pub type PCNZWCH = *const WCHAR;
+pub type PUNZWCH = *mut WCHAR; // Unaligned pointer
+pub type PCUNZWCH = *const WCHAR; // Unaligned pointer
+pub type LPCWCHAR = *const WCHAR;
+pub type PCWCHAR = *const WCHAR;
+pub type LPCUWCHAR = *const WCHAR; // Unaligned pointer
+pub type PCUWCHAR = *const WCHAR; // Unaligned pointer
+pub type UCSCHAR = c_ulong;
+pub const UCSCHAR_INVALID_CHARACTER: UCSCHAR = 0xffffffff;
+pub const MIN_UCSCHAR: UCSCHAR = 0;
+pub const MAX_UCSCHAR: UCSCHAR = 0x0010FFFF;
+pub type PUCSCHAR = *mut UCSCHAR;
+pub type PCUCSCHAR = *const UCSCHAR;
+pub type PUCSSTR = *mut UCSCHAR;
+pub type PUUCSSTR = *mut UCSCHAR; // Unaligned pointer
+pub type PCUCSSTR = *const UCSCHAR;
+pub type PCUUCSSTR = *const UCSCHAR; // Unaligned pointer
+pub type PUUCSCHAR = *mut UCSCHAR; // Unaligned pointer
+pub type PCUUCSCHAR = *const UCSCHAR; // Unaligned pointer
+pub type PCHAR = *mut CHAR;
+pub type LPCH = *mut CHAR;
+pub type PCH = *mut CHAR;
+pub type LPCCH = *const CHAR;
+pub type PCCH = *const CHAR;
+pub type NPSTR = *mut CHAR;
+pub type LPSTR = *mut CHAR;
+pub type PSTR = *mut CHAR;
+pub type PZPSTR = *mut PSTR;
+pub type PCZPSTR = *const PSTR;
+pub type LPCSTR = *const CHAR;
+pub type PCSTR = *const CHAR;
+pub type PZPCSTR = *mut PCSTR;
+pub type PCZPCSTR = *const PCSTR;
+pub type PZZSTR = *mut CHAR;
+pub type PCZZSTR = *const CHAR;
+pub type PNZCH = *mut CHAR;
+pub type PCNZCH = *const CHAR;
+// Skipping TCHAR things
+pub type DOUBLE = c_double;
+STRUCT!{struct QUAD {
+ UseThisFieldToCopy: __int64,
+}}
+pub type PSHORT = *mut SHORT;
+pub type PLONG = *mut LONG;
+pub type PQUAD = *mut QUAD;
+pub type UCHAR = c_uchar;
+pub type USHORT = c_ushort;
+pub type ULONG = c_ulong;
+pub type UQUAD = QUAD;
+pub type PUCHAR = *mut UCHAR;
+pub type PUSHORT = *mut USHORT;
+pub type PULONG = *mut ULONG;
+pub type PUQUAD = *mut UQUAD;
+pub type PCUCHAR = *const UCHAR;
+pub type PCUSHORT = *const USHORT;
+pub type PCULONG = *const ULONG;
+pub type PCUQUAD = *const UQUAD;
+pub type SCHAR = c_schar;
+pub type PSCHAR = *mut SCHAR;
+pub type PCSCHAR = *const SCHAR;
+pub const ALL_PROCESSOR_GROUPS: USHORT = 0xffff;
+STRUCT!{struct PROCESSOR_NUMBER {
+ Group: USHORT,
+ Number: UCHAR,
+ Reserved: UCHAR,
+}}
+pub type PPROCESSOR_NUMBER = *mut PROCESSOR_NUMBER;
+STRUCT!{struct GROUP_AFFINITY {
+ Mask: KAFFINITY,
+ Group: USHORT,
+ Reserved: [USHORT; 3],
+}}
+pub type PGROUP_AFFINITY = *mut GROUP_AFFINITY;
+#[cfg(target_arch = "x86_64")]
+pub const MAXIMUM_PROC_PER_GROUP: UCHAR = 64;
+#[cfg(not(target_arch = "x86_64"))]
+pub const MAXIMUM_PROC_PER_GROUP: UCHAR = 32;
+pub const MAXIMUM_PROCESSORS: UCHAR = MAXIMUM_PROC_PER_GROUP;
+pub type HANDLE = *mut c_void;
+pub type PHANDLE = *mut HANDLE;
+pub type FCHAR = UCHAR;
+pub type FSHORT = USHORT;
+pub type FLONG = ULONG;
+pub type HRESULT = c_long;
+pub const OBJ_HANDLE_TAGBITS: usize = 0x00000003;
+pub type CCHAR = c_char;
+pub type CSHORT = c_short;
+pub type CLONG = ULONG;
+pub type PCCHAR = *mut CCHAR;
+pub type PCSHORT = *mut CSHORT;
+pub type PCLONG = *mut CLONG;
+pub type LCID = ULONG;
+pub type PLCID = PULONG;
+pub type LANGID = USHORT;
+ENUM!{enum COMPARTMENT_ID {
+ UNSPECIFIED_COMPARTMENT_ID = 0,
+ DEFAULT_COMPARTMENT_ID,
+}}
+pub type PCOMPARTMENT_ID = *mut COMPARTMENT_ID;
+pub type LOGICAL = ULONG;
+pub type PLOGICAL = *mut ULONG;
+pub type NTSTATUS = LONG;
+pub type PNTSTATUS = *mut NTSTATUS;
+pub type PCNTSTATUS = *const NTSTATUS;
+#[inline]
+pub fn NT_SUCCESS(Status: NTSTATUS) -> bool {
+ Status >= 0
+}
+#[inline]
+pub fn NT_INFORMATION(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 1
+}
+#[inline]
+pub fn NT_WARNING(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 2
+}
+#[inline]
+pub fn NT_ERROR(Status: NTSTATUS) -> bool {
+ ((Status as ULONG) >> 30) == 3
+}
+pub const APPLICATION_ERROR_MASK: ULONG = 0x20000000;
+pub const ERROR_SEVERITY_SUCCESS: ULONG = 0x00000000;
+pub const ERROR_SEVERITY_INFORMATIONAL: ULONG = 0x40000000;
+pub const ERROR_SEVERITY_WARNING: ULONG = 0x80000000;
+pub const ERROR_SEVERITY_ERROR: ULONG = 0xC0000000;
+pub type SECURITY_STATUS = c_long;
+pub type TIME = LARGE_INTEGER;
+pub type PTIME = *mut TIME;
+STRUCT!{struct FLOAT128 {
+ LowPart: __int64,
+ HighPart: __int64,
+}}
+pub type PFLOAT128 = *mut FLOAT128;
+pub type LONGLONG = __int64;
+pub type ULONGLONG = __uint64;
+pub const MAXLONGLONG: LONGLONG = 0x7fffffffffffffff;
+pub type PLONGLONG = *mut LONGLONG;
+pub type PULONGLONG = *mut ULONGLONG;
+pub type USN = LONGLONG;
+UNION!{union LARGE_INTEGER {
+ [i64; 1],
+ s s_mut: LARGE_INTEGER_s,
+ u u_mut: LARGE_INTEGER_u,
+ QuadPart QuadPart_mut: LONGLONG,
+}}
+STRUCT!{struct LARGE_INTEGER_s {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+STRUCT!{struct LARGE_INTEGER_u {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+pub type PLARGE_INTEGER = *mut LARGE_INTEGER;
+UNION!{union ULARGE_INTEGER {
+ [u64; 1],
+ s s_mut: ULARGE_INTEGER_s,
+ u u_mut: ULARGE_INTEGER_s,
+ QuadPart QuadPart_mut: ULONGLONG,
+}}
+STRUCT!{struct ULARGE_INTEGER_s {
+ LowPart: ULONG,
+ HighPart: ULONG,
+}}
+STRUCT!{struct ULARGE_INTEGER_u {
+ LowPart: ULONG,
+ HighPart: ULONG,
+}}
+pub type PULARGE_INTEGER = *mut ULARGE_INTEGER;
+pub type RTL_REFERENCE_COUNT = LONG_PTR;
+pub type PRTL_REFERENCE_COUNT = *mut RTL_REFERENCE_COUNT;
+STRUCT!{struct LUID {
+ LowPart: ULONG,
+ HighPart: LONG,
+}}
+pub type PLUID = *mut LUID;
+pub type DWORDLONG = ULONGLONG;
+pub type PDWORDLONG = *mut DWORDLONG;
+pub type PHYSICAL_ADDRESS = LARGE_INTEGER;
+pub type PPHYSICAL_ADDRESS = *mut PHYSICAL_ADDRESS;
+ENUM!{enum EVENT_TYPE {
+ NotificationEvent,
+ SynchronizationEvent,
+}}
+ENUM!{enum TIMER_TYPE {
+ NotificationTimer,
+ SynchronizationTimer,
+}}
+ENUM!{enum WAIT_TYPE {
+ WaitAll,
+ WaitAny,
+ WaitNotification,
+ WaitDequeue,
+}}
+pub type PSZ = *mut CHAR;
+pub type PCSZ = *const c_char;
+pub type RTL_STRING_LENGTH_TYPE = USHORT;
+STRUCT!{struct STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PCHAR,
+}}
+pub type PSTRING = *mut STRING;
+pub type ANSI_STRING = STRING;
+pub type PANSI_STRING = PSTRING;
+pub type OEM_STRING = STRING;
+pub type POEM_STRING = PSTRING;
+pub type PCOEM_STRING = *const STRING;
+STRUCT!{struct CSTRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: *const c_char,
+}}
+pub type PCSTRING = *mut CSTRING;
+pub const ANSI_NULL: CHAR = 0;
+pub type CANSI_STRING = STRING;
+pub type PCANSI_STRING = PSTRING;
+STRUCT!{struct UNICODE_STRING {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: PWCH,
+}}
+pub type PUNICODE_STRING = *mut UNICODE_STRING;
+pub type PCUNICODE_STRING = *const UNICODE_STRING;
+pub const UNICODE_NULL: WCHAR = 0;
+pub const UNICODE_STRING_MAX_BYTES: USHORT = 65534;
+pub const UNICODE_STRING_MAX_CHARS: usize = 32767;
+pub type BOOLEAN = UCHAR;
+pub type PBOOLEAN = *mut BOOLEAN;
+STRUCT!{struct LIST_ENTRY {
+ Flink: *mut LIST_ENTRY,
+ Blink: *mut LIST_ENTRY,
+}}
+pub type PLIST_ENTRY = *mut LIST_ENTRY;
+pub type PRLIST_ENTRY = *mut LIST_ENTRY; // Restricted pointer
+STRUCT!{struct SINGLE_LIST_ENTRY {
+ Next: *mut SINGLE_LIST_ENTRY,
+}}
+pub type PSINGLE_LIST_ENTRY = *mut SINGLE_LIST_ENTRY;
+STRUCT!{struct RTL_BALANCED_NODE {
+ u: RTL_BALANCED_NODE_u,
+ ParentValue: ULONG_PTR,
+}}
+UNION!{union RTL_BALANCED_NODE_u {
+ [usize; 2],
+ Children Children_mut: [*mut RTL_BALANCED_NODE; 2],
+ s s_mut: RTL_BALANCED_NODE_s,
+}}
+STRUCT!{struct RTL_BALANCED_NODE_s {
+ Left: *mut RTL_BALANCED_NODE,
+ Right: *mut RTL_BALANCED_NODE,
+}}
+pub const RTL_BALANCED_NODE_RESERVED_PARENT_MASK: ULONG_PTR = 3;
+pub type PRTL_BALANCED_NODE = *mut RTL_BALANCED_NODE;
+#[inline]
+pub unsafe fn RTL_BALANCED_NODE_GET_PARENT_POINTER(
+ Node: PRTL_BALANCED_NODE,
+) -> PRTL_BALANCED_NODE {
+ ((*Node).ParentValue & !RTL_BALANCED_NODE_RESERVED_PARENT_MASK) as *mut RTL_BALANCED_NODE
+}
+STRUCT!{struct LIST_ENTRY32 {
+ Flink: ULONG,
+ Blink: ULONG,
+}}
+pub type PLIST_ENTRY32 = *mut LIST_ENTRY32;
+STRUCT!{struct LIST_ENTRY64 {
+ Flink: ULONGLONG,
+ Blink: ULONGLONG,
+}}
+pub type PLIST_ENTRY64 = *mut LIST_ENTRY64;
+STRUCT!{struct SINGLE_LIST_ENTRY32 {
+ Next: ULONG,
+}}
+pub type PSINGLE_LIST_ENTRY32 = *mut SINGLE_LIST_ENTRY32;
+#[inline]
+pub unsafe fn ListEntry32To64(l32: PLIST_ENTRY32, l64: PLIST_ENTRY64) {
+ (*l64).Flink = (*l32).Flink as ULONGLONG;
+ (*l64).Blink = (*l32).Blink as ULONGLONG;
+}
+#[inline]
+pub unsafe fn ListEntry64To32(l64: PLIST_ENTRY64, l32: PLIST_ENTRY32) {
+ (*l32).Flink = (*l64).Flink as ULONG;
+ (*l32).Blink = (*l64).Blink as ULONG;
+}
+STRUCT!{struct WNF_STATE_NAME {
+ Data: [ULONG; 2],
+}}
+pub type PWNF_STATE_NAME = *mut WNF_STATE_NAME;
+pub type PCWNF_STATE_NAME = *const WNF_STATE_NAME;
+STRUCT!{struct STRING32 {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: ULONG,
+}}
+pub type PSTRING32 = *mut STRING32;
+pub type UNICODE_STRING32 = STRING32;
+pub type PUNICODE_STRING32 = *mut UNICODE_STRING32;
+pub type ANSI_STRING32 = STRING32;
+pub type PANSI_STRING32 = *mut ANSI_STRING32;
+STRUCT!{struct STRING64 {
+ Length: USHORT,
+ MaximumLength: USHORT,
+ Buffer: ULONGLONG,
+}}
+pub type PSTRING64 = *mut STRING64;
+pub type UNICODE_STRING64 = STRING64;
+pub type PUNICODE_STRING64 = *mut UNICODE_STRING64;
+pub type ANSI_STRING64 = STRING64;
+pub type PANSI_STRING64 = *mut ANSI_STRING64;
+pub const OBJ_INHERIT: ULONG = 0x00000002;
+pub const OBJ_PERMANENT: ULONG = 0x00000010;
+pub const OBJ_EXCLUSIVE: ULONG = 0x00000020;
+pub const OBJ_CASE_INSENSITIVE: ULONG = 0x00000040;
+pub const OBJ_OPENIF: ULONG = 0x00000080;
+pub const OBJ_OPENLINK: ULONG = 0x00000100;
+pub const OBJ_KERNEL_HANDLE: ULONG = 0x00000200;
+pub const OBJ_FORCE_ACCESS_CHECK: ULONG = 0x00000400;
+pub const OBJ_IGNORE_IMPERSONATED_DEVICEMAP: ULONG = 0x00000800;
+pub const OBJ_DONT_REPARSE: ULONG = 0x00001000;
+pub const OBJ_VALID_ATTRIBUTES: ULONG = 0x00001FF2;
+STRUCT!{struct OBJECT_ATTRIBUTES64 {
+ Length: ULONG,
+ RootDirectory: ULONG64,
+ ObjectName: ULONG64,
+ Attributes: ULONG,
+ SecurityDescriptor: ULONG64,
+ SecurityQualityOfService: ULONG64,
+}}
+pub type POBJECT_ATTRIBUTES64 = *mut OBJECT_ATTRIBUTES64;
+pub type PCOBJECT_ATTRIBUTES64 = *const OBJECT_ATTRIBUTES64;
+STRUCT!{struct OBJECT_ATTRIBUTES32 {
+ Length: ULONG,
+ RootDirectory: ULONG,
+ ObjectName: ULONG,
+ Attributes: ULONG,
+ SecurityDescriptor: ULONG,
+ SecurityQualityOfService: ULONG,
+}}
+pub type POBJECT_ATTRIBUTES32 = *mut OBJECT_ATTRIBUTES32;
+pub type PCOBJECT_ATTRIBUTES32 = *const OBJECT_ATTRIBUTES32;
+STRUCT!{struct OBJECT_ATTRIBUTES {
+ Length: ULONG,
+ RootDirectory: HANDLE,
+ ObjectName: PUNICODE_STRING,
+ Attributes: ULONG,
+ SecurityDescriptor: PVOID,
+ SecurityQualityOfService: PVOID,
+}}
+pub type POBJECT_ATTRIBUTES = *mut OBJECT_ATTRIBUTES;
+pub type PCOBJECT_ATTRIBUTES = *const OBJECT_ATTRIBUTES;
+#[inline]
+pub unsafe fn InitializeObjectAttributes(
+ p: POBJECT_ATTRIBUTES,
+ n: PUNICODE_STRING,
+ a: ULONG,
+ r: HANDLE,
+ s: PVOID,
+) {
+ use core::mem::size_of;
+ (*p).Length = size_of::<OBJECT_ATTRIBUTES>() as ULONG;
+ (*p).RootDirectory = r;
+ (*p).Attributes = a;
+ (*p).ObjectName = n;
+ (*p).SecurityDescriptor = s;
+ (*p).SecurityQualityOfService = NULL;
+}
+pub const FALSE: BOOLEAN = 0;
+pub const TRUE: BOOLEAN = 1;
+pub const NULL: PVOID = 0 as PVOID;
+pub const NULL64: PVOID64 = 0;
+STRUCT!{struct OBJECTID {
+ Lineage: GUID,
+ Uniquifier: ULONG,
+}}
+pub const MINCHAR: CHAR = 0x80;
+pub const MAXCHAR: CHAR = 0x7f;
+pub const MINSHORT: SHORT = 0x8000;
+pub const MAXSHORT: SHORT = 0x7fff;
+pub const MINLONG: LONG = 0x80000000;
+pub const MAXLONG: LONG = 0x7fffffff;
+pub const MAXUCHAR: UCHAR = 0xff;
+pub const MAXUSHORT: USHORT = 0xffff;
+pub const MAXULONG: ULONG = 0xffffffff;
+// PEXCEPTION_ROUTINE: Can't define here, because it needs EXCEPTION_RECORD and CONTEXT.
+pub type KIRQL = UCHAR;
+pub type PKIRQL = *mut KIRQL;
+ENUM!{enum NT_PRODUCT_TYPE {
+ NtProductWinNt = 1,
+ NtProductLanManNt,
+ NtProductServer,
+}}
+pub type PNT_PRODUCT_TYPE = *mut NT_PRODUCT_TYPE;
+ENUM!{enum SUITE_TYPE {
+ SmallBusiness,
+ Enterprise,
+ BackOffice,
+ CommunicationServer,
+ TerminalServer,
+ SmallBusinessRestricted,
+ EmbeddedNT,
+ DataCenter,
+ SingleUserTS,
+ Personal,
+ Blade,
+ EmbeddedRestricted,
+ SecurityAppliance,
+ StorageServer,
+ ComputeServer,
+ WHServer,
+ PhoneNT,
+ MaxSuiteType,
+}}
+pub const VER_SERVER_NT: ULONG = 0x80000000;
+pub const VER_WORKSTATION_NT: ULONG = 0x40000000;
+pub const VER_SUITE_SMALLBUSINESS: ULONG = 0x00000001;
+pub const VER_SUITE_ENTERPRISE: ULONG = 0x00000002;
+pub const VER_SUITE_BACKOFFICE: ULONG = 0x00000004;
+pub const VER_SUITE_COMMUNICATIONS: ULONG = 0x00000008;
+pub const VER_SUITE_TERMINAL: ULONG = 0x00000010;
+pub const VER_SUITE_SMALLBUSINESS_RESTRICTED: ULONG = 0x00000020;
+pub const VER_SUITE_EMBEDDEDNT: ULONG = 0x00000040;
+pub const VER_SUITE_DATACENTER: ULONG = 0x00000080;
+pub const VER_SUITE_SINGLEUSERTS: ULONG = 0x00000100;
+pub const VER_SUITE_PERSONAL: ULONG = 0x00000200;
+pub const VER_SUITE_BLADE: ULONG = 0x00000400;
+pub const VER_SUITE_EMBEDDED_RESTRICTED: ULONG = 0x00000800;
+pub const VER_SUITE_SECURITY_APPLIANCE: ULONG = 0x00001000;
+pub const VER_SUITE_STORAGE_SERVER: ULONG = 0x00002000;
+pub const VER_SUITE_COMPUTE_SERVER: ULONG = 0x00004000;
+pub const VER_SUITE_WH_SERVER: ULONG = 0x00008000;
+pub const PRODUCT_UNDEFINED: ULONG = 0x00000000;
+pub const PRODUCT_ULTIMATE: ULONG = 0x00000001;
+pub const PRODUCT_HOME_BASIC: ULONG = 0x00000002;
+pub const PRODUCT_HOME_PREMIUM: ULONG = 0x00000003;
+pub const PRODUCT_ENTERPRISE: ULONG = 0x00000004;
+pub const PRODUCT_HOME_BASIC_N: ULONG = 0x00000005;
+pub const PRODUCT_BUSINESS: ULONG = 0x00000006;
+pub const PRODUCT_STANDARD_SERVER: ULONG = 0x00000007;
+pub const PRODUCT_DATACENTER_SERVER: ULONG = 0x00000008;
+pub const PRODUCT_SMALLBUSINESS_SERVER: ULONG = 0x00000009;
+pub const PRODUCT_ENTERPRISE_SERVER: ULONG = 0x0000000A;
+pub const PRODUCT_STARTER: ULONG = 0x0000000B;
+pub const PRODUCT_DATACENTER_SERVER_CORE: ULONG = 0x0000000C;
+pub const PRODUCT_STANDARD_SERVER_CORE: ULONG = 0x0000000D;
+pub const PRODUCT_ENTERPRISE_SERVER_CORE: ULONG = 0x0000000E;
+pub const PRODUCT_ENTERPRISE_SERVER_IA64: ULONG = 0x0000000F;
+pub const PRODUCT_BUSINESS_N: ULONG = 0x00000010;
+pub const PRODUCT_WEB_SERVER: ULONG = 0x00000011;
+pub const PRODUCT_CLUSTER_SERVER: ULONG = 0x00000012;
+pub const PRODUCT_HOME_SERVER: ULONG = 0x00000013;
+pub const PRODUCT_STORAGE_EXPRESS_SERVER: ULONG = 0x00000014;
+pub const PRODUCT_STORAGE_STANDARD_SERVER: ULONG = 0x00000015;
+pub const PRODUCT_STORAGE_WORKGROUP_SERVER: ULONG = 0x00000016;
+pub const PRODUCT_STORAGE_ENTERPRISE_SERVER: ULONG = 0x00000017;
+pub const PRODUCT_SERVER_FOR_SMALLBUSINESS: ULONG = 0x00000018;
+pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM: ULONG = 0x00000019;
+pub const PRODUCT_HOME_PREMIUM_N: ULONG = 0x0000001A;
+pub const PRODUCT_ENTERPRISE_N: ULONG = 0x0000001B;
+pub const PRODUCT_ULTIMATE_N: ULONG = 0x0000001C;
+pub const PRODUCT_WEB_SERVER_CORE: ULONG = 0x0000001D;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT: ULONG = 0x0000001E;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY: ULONG = 0x0000001F;
+pub const PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING: ULONG = 0x00000020;
+pub const PRODUCT_SERVER_FOUNDATION: ULONG = 0x00000021;
+pub const PRODUCT_HOME_PREMIUM_SERVER: ULONG = 0x00000022;
+pub const PRODUCT_SERVER_FOR_SMALLBUSINESS_V: ULONG = 0x00000023;
+pub const PRODUCT_STANDARD_SERVER_V: ULONG = 0x00000024;
+pub const PRODUCT_DATACENTER_SERVER_V: ULONG = 0x00000025;
+pub const PRODUCT_ENTERPRISE_SERVER_V: ULONG = 0x00000026;
+pub const PRODUCT_DATACENTER_SERVER_CORE_V: ULONG = 0x00000027;
+pub const PRODUCT_STANDARD_SERVER_CORE_V: ULONG = 0x00000028;
+pub const PRODUCT_ENTERPRISE_SERVER_CORE_V: ULONG = 0x00000029;
+pub const PRODUCT_HYPERV: ULONG = 0x0000002A;
+pub const PRODUCT_STORAGE_EXPRESS_SERVER_CORE: ULONG = 0x0000002B;
+pub const PRODUCT_STORAGE_STANDARD_SERVER_CORE: ULONG = 0x0000002C;
+pub const PRODUCT_STORAGE_WORKGROUP_SERVER_CORE: ULONG = 0x0000002D;
+pub const PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE: ULONG = 0x0000002E;
+pub const PRODUCT_STARTER_N: ULONG = 0x0000002F;
+pub const PRODUCT_PROFESSIONAL: ULONG = 0x00000030;
+pub const PRODUCT_PROFESSIONAL_N: ULONG = 0x00000031;
+pub const PRODUCT_SB_SOLUTION_SERVER: ULONG = 0x00000032;
+pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS: ULONG = 0x00000033;
+pub const PRODUCT_STANDARD_SERVER_SOLUTIONS: ULONG = 0x00000034;
+pub const PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE: ULONG = 0x00000035;
+pub const PRODUCT_SB_SOLUTION_SERVER_EM: ULONG = 0x00000036;
+pub const PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM: ULONG = 0x00000037;
+pub const PRODUCT_SOLUTION_EMBEDDEDSERVER: ULONG = 0x00000038;
+pub const PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE: ULONG = 0x00000039;
+pub const PRODUCT_PROFESSIONAL_EMBEDDED: ULONG = 0x0000003A;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT: ULONG = 0x0000003B;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL: ULONG = 0x0000003C;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC: ULONG = 0x0000003D;
+pub const PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC: ULONG = 0x0000003E;
+pub const PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: ULONG = 0x0000003F;
+pub const PRODUCT_CLUSTER_SERVER_V: ULONG = 0x00000040;
+pub const PRODUCT_EMBEDDED: ULONG = 0x00000041;
+pub const PRODUCT_STARTER_E: ULONG = 0x00000042;
+pub const PRODUCT_HOME_BASIC_E: ULONG = 0x00000043;
+pub const PRODUCT_HOME_PREMIUM_E: ULONG = 0x00000044;
+pub const PRODUCT_PROFESSIONAL_E: ULONG = 0x00000045;
+pub const PRODUCT_ENTERPRISE_E: ULONG = 0x00000046;
+pub const PRODUCT_ULTIMATE_E: ULONG = 0x00000047;
+pub const PRODUCT_ENTERPRISE_EVALUATION: ULONG = 0x00000048;
+pub const PRODUCT_MULTIPOINT_STANDARD_SERVER: ULONG = 0x0000004C;
+pub const PRODUCT_MULTIPOINT_PREMIUM_SERVER: ULONG = 0x0000004D;
+pub const PRODUCT_STANDARD_EVALUATION_SERVER: ULONG = 0x0000004F;
+pub const PRODUCT_DATACENTER_EVALUATION_SERVER: ULONG = 0x00000050;
+pub const PRODUCT_ENTERPRISE_N_EVALUATION: ULONG = 0x00000054;
+pub const PRODUCT_EMBEDDED_AUTOMOTIVE: ULONG = 0x00000055;
+pub const PRODUCT_EMBEDDED_INDUSTRY_A: ULONG = 0x00000056;
+pub const PRODUCT_THINPC: ULONG = 0x00000057;
+pub const PRODUCT_EMBEDDED_A: ULONG = 0x00000058;
+pub const PRODUCT_EMBEDDED_INDUSTRY: ULONG = 0x00000059;
+pub const PRODUCT_EMBEDDED_E: ULONG = 0x0000005A;
+pub const PRODUCT_EMBEDDED_INDUSTRY_E: ULONG = 0x0000005B;
+pub const PRODUCT_EMBEDDED_INDUSTRY_A_E: ULONG = 0x0000005C;
+pub const PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER: ULONG = 0x0000005F;
+pub const PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER: ULONG = 0x00000060;
+pub const PRODUCT_CORE_ARM: ULONG = 0x00000061;
+pub const PRODUCT_CORE_N: ULONG = 0x00000062;
+pub const PRODUCT_CORE_COUNTRYSPECIFIC: ULONG = 0x00000063;
+pub const PRODUCT_CORE_SINGLELANGUAGE: ULONG = 0x00000064;
+pub const PRODUCT_CORE: ULONG = 0x00000065;
+pub const PRODUCT_PROFESSIONAL_WMC: ULONG = 0x00000067;
+pub const PRODUCT_MOBILE_CORE: ULONG = 0x00000068;
+pub const PRODUCT_EMBEDDED_INDUSTRY_EVAL: ULONG = 0x00000069;
+pub const PRODUCT_EMBEDDED_INDUSTRY_E_EVAL: ULONG = 0x0000006A;
+pub const PRODUCT_EMBEDDED_EVAL: ULONG = 0x0000006B;
+pub const PRODUCT_EMBEDDED_E_EVAL: ULONG = 0x0000006C;
+pub const PRODUCT_NANO_SERVER: ULONG = 0x0000006D;
+pub const PRODUCT_CLOUD_STORAGE_SERVER: ULONG = 0x0000006E;
+pub const PRODUCT_CORE_CONNECTED: ULONG = 0x0000006F;
+pub const PRODUCT_PROFESSIONAL_STUDENT: ULONG = 0x00000070;
+pub const PRODUCT_CORE_CONNECTED_N: ULONG = 0x00000071;
+pub const PRODUCT_PROFESSIONAL_STUDENT_N: ULONG = 0x00000072;
+pub const PRODUCT_CORE_CONNECTED_SINGLELANGUAGE: ULONG = 0x00000073;
+pub const PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC: ULONG = 0x00000074;
+pub const PRODUCT_CONNECTED_CAR: ULONG = 0x00000075;
+pub const PRODUCT_INDUSTRY_HANDHELD: ULONG = 0x00000076;
+pub const PRODUCT_PPI_PRO: ULONG = 0x00000077;
+pub const PRODUCT_ARM64_SERVER: ULONG = 0x00000078;
+pub const PRODUCT_EDUCATION: ULONG = 0x00000079;
+pub const PRODUCT_EDUCATION_N: ULONG = 0x0000007A;
+pub const PRODUCT_IOTUAP: ULONG = 0x0000007B;
+pub const PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER: ULONG = 0x0000007C;
+pub const PRODUCT_ENTERPRISE_S: ULONG = 0x0000007D;
+pub const PRODUCT_ENTERPRISE_S_N: ULONG = 0x0000007E;
+pub const PRODUCT_PROFESSIONAL_S: ULONG = 0x0000007F;
+pub const PRODUCT_PROFESSIONAL_S_N: ULONG = 0x00000080;
+pub const PRODUCT_ENTERPRISE_S_EVALUATION: ULONG = 0x00000081;
+pub const PRODUCT_ENTERPRISE_S_N_EVALUATION: ULONG = 0x00000082;
+pub const PRODUCT_HOLOGRAPHIC: ULONG = 0x00000087;
+pub const PRODUCT_PRO_SINGLE_LANGUAGE: ULONG = 0x0000008A;
+pub const PRODUCT_PRO_CHINA: ULONG = 0x0000008B;
+pub const PRODUCT_ENTERPRISE_SUBSCRIPTION: ULONG = 0x0000008C;
+pub const PRODUCT_ENTERPRISE_SUBSCRIPTION_N: ULONG = 0x0000008D;
+pub const PRODUCT_DATACENTER_NANO_SERVER: ULONG = 0x0000008F;
+pub const PRODUCT_STANDARD_NANO_SERVER: ULONG = 0x00000090;
+pub const PRODUCT_DATACENTER_A_SERVER_CORE: ULONG = 0x00000091;
+pub const PRODUCT_STANDARD_A_SERVER_CORE: ULONG = 0x00000092;
+pub const PRODUCT_DATACENTER_WS_SERVER_CORE: ULONG = 0x00000093;
+pub const PRODUCT_STANDARD_WS_SERVER_CORE: ULONG = 0x00000094;
+pub const PRODUCT_UTILITY_VM: ULONG = 0x00000095;
+pub const PRODUCT_DATACENTER_EVALUATION_SERVER_CORE: ULONG = 0x0000009F;
+pub const PRODUCT_STANDARD_EVALUATION_SERVER_CORE: ULONG = 0x000000A0;
+pub const PRODUCT_PRO_WORKSTATION: ULONG = 0x000000A1;
+pub const PRODUCT_PRO_WORKSTATION_N: ULONG = 0x000000A2;
+pub const PRODUCT_PRO_FOR_EDUCATION: ULONG = 0x000000A4;
+pub const PRODUCT_PRO_FOR_EDUCATION_N: ULONG = 0x000000A5;
+pub const PRODUCT_AZURE_SERVER_CORE: ULONG = 0x000000A8;
+pub const PRODUCT_AZURE_NANO_SERVER: ULONG = 0x000000A9;
+pub const PRODUCT_UNLICENSED: ULONG = 0xABCDABCD;
+pub const LANG_NEUTRAL: USHORT = 0x00;
+pub const LANG_INVARIANT: USHORT = 0x7f;
+pub const LANG_AFRIKAANS: USHORT = 0x36;
+pub const LANG_ALBANIAN: USHORT = 0x1c;
+pub const LANG_ALSATIAN: USHORT = 0x84;
+pub const LANG_AMHARIC: USHORT = 0x5e;
+pub const LANG_ARABIC: USHORT = 0x01;
+pub const LANG_ARMENIAN: USHORT = 0x2b;
+pub const LANG_ASSAMESE: USHORT = 0x4d;
+pub const LANG_AZERI: USHORT = 0x2c;
+pub const LANG_AZERBAIJANI: USHORT = 0x2c;
+pub const LANG_BANGLA: USHORT = 0x45;
+pub const LANG_BASHKIR: USHORT = 0x6d;
+pub const LANG_BASQUE: USHORT = 0x2d;
+pub const LANG_BELARUSIAN: USHORT = 0x23;
+pub const LANG_BENGALI: USHORT = 0x45;
+pub const LANG_BRETON: USHORT = 0x7e;
+pub const LANG_BOSNIAN: USHORT = 0x1a;
+pub const LANG_BOSNIAN_NEUTRAL: USHORT = 0x781a;
+pub const LANG_BULGARIAN: USHORT = 0x02;
+pub const LANG_CATALAN: USHORT = 0x03;
+pub const LANG_CENTRAL_KURDISH: USHORT = 0x92;
+pub const LANG_CHEROKEE: USHORT = 0x5c;
+pub const LANG_CHINESE: USHORT = 0x04;
+pub const LANG_CHINESE_SIMPLIFIED: USHORT = 0x04;
+pub const LANG_CHINESE_TRADITIONAL: USHORT = 0x7c04;
+pub const LANG_CORSICAN: USHORT = 0x83;
+pub const LANG_CROATIAN: USHORT = 0x1a;
+pub const LANG_CZECH: USHORT = 0x05;
+pub const LANG_DANISH: USHORT = 0x06;
+pub const LANG_DARI: USHORT = 0x8c;
+pub const LANG_DIVEHI: USHORT = 0x65;
+pub const LANG_DUTCH: USHORT = 0x13;
+pub const LANG_ENGLISH: USHORT = 0x09;
+pub const LANG_ESTONIAN: USHORT = 0x25;
+pub const LANG_FAEROESE: USHORT = 0x38;
+pub const LANG_FARSI: USHORT = 0x29;
+pub const LANG_FILIPINO: USHORT = 0x64;
+pub const LANG_FINNISH: USHORT = 0x0b;
+pub const LANG_FRENCH: USHORT = 0x0c;
+pub const LANG_FRISIAN: USHORT = 0x62;
+pub const LANG_FULAH: USHORT = 0x67;
+pub const LANG_GALICIAN: USHORT = 0x56;
+pub const LANG_GEORGIAN: USHORT = 0x37;
+pub const LANG_GERMAN: USHORT = 0x07;
+pub const LANG_GREEK: USHORT = 0x08;
+pub const LANG_GREENLANDIC: USHORT = 0x6f;
+pub const LANG_GUJARATI: USHORT = 0x47;
+pub const LANG_HAUSA: USHORT = 0x68;
+pub const LANG_HAWAIIAN: USHORT = 0x75;
+pub const LANG_HEBREW: USHORT = 0x0d;
+pub const LANG_HINDI: USHORT = 0x39;
+pub const LANG_HUNGARIAN: USHORT = 0x0e;
+pub const LANG_ICELANDIC: USHORT = 0x0f;
+pub const LANG_IGBO: USHORT = 0x70;
+pub const LANG_INDONESIAN: USHORT = 0x21;
+pub const LANG_INUKTITUT: USHORT = 0x5d;
+pub const LANG_IRISH: USHORT = 0x3c;
+pub const LANG_ITALIAN: USHORT = 0x10;
+pub const LANG_JAPANESE: USHORT = 0x11;
+pub const LANG_KANNADA: USHORT = 0x4b;
+pub const LANG_KASHMIRI: USHORT = 0x60;
+pub const LANG_KAZAK: USHORT = 0x3f;
+pub const LANG_KHMER: USHORT = 0x53;
+pub const LANG_KICHE: USHORT = 0x86;
+pub const LANG_KINYARWANDA: USHORT = 0x87;
+pub const LANG_KONKANI: USHORT = 0x57;
+pub const LANG_KOREAN: USHORT = 0x12;
+pub const LANG_KYRGYZ: USHORT = 0x40;
+pub const LANG_LAO: USHORT = 0x54;
+pub const LANG_LATVIAN: USHORT = 0x26;
+pub const LANG_LITHUANIAN: USHORT = 0x27;
+pub const LANG_LOWER_SORBIAN: USHORT = 0x2e;
+pub const LANG_LUXEMBOURGISH: USHORT = 0x6e;
+pub const LANG_MACEDONIAN: USHORT = 0x2f;
+pub const LANG_MALAY: USHORT = 0x3e;
+pub const LANG_MALAYALAM: USHORT = 0x4c;
+pub const LANG_MALTESE: USHORT = 0x3a;
+pub const LANG_MANIPURI: USHORT = 0x58;
+pub const LANG_MAORI: USHORT = 0x81;
+pub const LANG_MAPUDUNGUN: USHORT = 0x7a;
+pub const LANG_MARATHI: USHORT = 0x4e;
+pub const LANG_MOHAWK: USHORT = 0x7c;
+pub const LANG_MONGOLIAN: USHORT = 0x50;
+pub const LANG_NEPALI: USHORT = 0x61;
+pub const LANG_NORWEGIAN: USHORT = 0x14;
+pub const LANG_OCCITAN: USHORT = 0x82;
+pub const LANG_ODIA: USHORT = 0x48;
+pub const LANG_ORIYA: USHORT = 0x48;
+pub const LANG_PASHTO: USHORT = 0x63;
+pub const LANG_PERSIAN: USHORT = 0x29;
+pub const LANG_POLISH: USHORT = 0x15;
+pub const LANG_PORTUGUESE: USHORT = 0x16;
+pub const LANG_PULAR: USHORT = 0x67;
+pub const LANG_PUNJABI: USHORT = 0x46;
+pub const LANG_QUECHUA: USHORT = 0x6b;
+pub const LANG_ROMANIAN: USHORT = 0x18;
+pub const LANG_ROMANSH: USHORT = 0x17;
+pub const LANG_RUSSIAN: USHORT = 0x19;
+pub const LANG_SAKHA: USHORT = 0x85;
+pub const LANG_SAMI: USHORT = 0x3b;
+pub const LANG_SANSKRIT: USHORT = 0x4f;
+pub const LANG_SCOTTISH_GAELIC: USHORT = 0x91;
+pub const LANG_SERBIAN: USHORT = 0x1a;
+pub const LANG_SERBIAN_NEUTRAL: USHORT = 0x7c1a;
+pub const LANG_SINDHI: USHORT = 0x59;
+pub const LANG_SINHALESE: USHORT = 0x5b;
+pub const LANG_SLOVAK: USHORT = 0x1b;
+pub const LANG_SLOVENIAN: USHORT = 0x24;
+pub const LANG_SOTHO: USHORT = 0x6c;
+pub const LANG_SPANISH: USHORT = 0x0a;
+pub const LANG_SWAHILI: USHORT = 0x41;
+pub const LANG_SWEDISH: USHORT = 0x1d;
+pub const LANG_SYRIAC: USHORT = 0x5a;
+pub const LANG_TAJIK: USHORT = 0x28;
+pub const LANG_TAMAZIGHT: USHORT = 0x5f;
+pub const LANG_TAMIL: USHORT = 0x49;
+pub const LANG_TATAR: USHORT = 0x44;
+pub const LANG_TELUGU: USHORT = 0x4a;
+pub const LANG_THAI: USHORT = 0x1e;
+pub const LANG_TIBETAN: USHORT = 0x51;
+pub const LANG_TIGRIGNA: USHORT = 0x73;
+pub const LANG_TIGRINYA: USHORT = 0x73;
+pub const LANG_TSWANA: USHORT = 0x32;
+pub const LANG_TURKISH: USHORT = 0x1f;
+pub const LANG_TURKMEN: USHORT = 0x42;
+pub const LANG_UIGHUR: USHORT = 0x80;
+pub const LANG_UKRAINIAN: USHORT = 0x22;
+pub const LANG_UPPER_SORBIAN: USHORT = 0x2e;
+pub const LANG_URDU: USHORT = 0x20;
+pub const LANG_UZBEK: USHORT = 0x43;
+pub const LANG_VALENCIAN: USHORT = 0x03;
+pub const LANG_VIETNAMESE: USHORT = 0x2a;
+pub const LANG_WELSH: USHORT = 0x52;
+pub const LANG_WOLOF: USHORT = 0x88;
+pub const LANG_XHOSA: USHORT = 0x34;
+pub const LANG_YAKUT: USHORT = 0x85;
+pub const LANG_YI: USHORT = 0x78;
+pub const LANG_YORUBA: USHORT = 0x6a;
+pub const LANG_ZULU: USHORT = 0x35;
+pub const SUBLANG_NEUTRAL: USHORT = 0x00;
+pub const SUBLANG_DEFAULT: USHORT = 0x01;
+pub const SUBLANG_SYS_DEFAULT: USHORT = 0x02;
+pub const SUBLANG_CUSTOM_DEFAULT: USHORT = 0x03;
+pub const SUBLANG_CUSTOM_UNSPECIFIED: USHORT = 0x04;
+pub const SUBLANG_UI_CUSTOM_DEFAULT: USHORT = 0x05;
+pub const SUBLANG_AFRIKAANS_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_ALBANIAN_ALBANIA: USHORT = 0x01;
+pub const SUBLANG_ALSATIAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_AMHARIC_ETHIOPIA: USHORT = 0x01;
+pub const SUBLANG_ARABIC_SAUDI_ARABIA: USHORT = 0x01;
+pub const SUBLANG_ARABIC_IRAQ: USHORT = 0x02;
+pub const SUBLANG_ARABIC_EGYPT: USHORT = 0x03;
+pub const SUBLANG_ARABIC_LIBYA: USHORT = 0x04;
+pub const SUBLANG_ARABIC_ALGERIA: USHORT = 0x05;
+pub const SUBLANG_ARABIC_MOROCCO: USHORT = 0x06;
+pub const SUBLANG_ARABIC_TUNISIA: USHORT = 0x07;
+pub const SUBLANG_ARABIC_OMAN: USHORT = 0x08;
+pub const SUBLANG_ARABIC_YEMEN: USHORT = 0x09;
+pub const SUBLANG_ARABIC_SYRIA: USHORT = 0x0a;
+pub const SUBLANG_ARABIC_JORDAN: USHORT = 0x0b;
+pub const SUBLANG_ARABIC_LEBANON: USHORT = 0x0c;
+pub const SUBLANG_ARABIC_KUWAIT: USHORT = 0x0d;
+pub const SUBLANG_ARABIC_UAE: USHORT = 0x0e;
+pub const SUBLANG_ARABIC_BAHRAIN: USHORT = 0x0f;
+pub const SUBLANG_ARABIC_QATAR: USHORT = 0x10;
+pub const SUBLANG_ARMENIAN_ARMENIA: USHORT = 0x01;
+pub const SUBLANG_ASSAMESE_INDIA: USHORT = 0x01;
+pub const SUBLANG_AZERI_LATIN: USHORT = 0x01;
+pub const SUBLANG_AZERI_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN: USHORT = 0x01;
+pub const SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_BANGLA_INDIA: USHORT = 0x01;
+pub const SUBLANG_BANGLA_BANGLADESH: USHORT = 0x02;
+pub const SUBLANG_BASHKIR_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_BASQUE_BASQUE: USHORT = 0x01;
+pub const SUBLANG_BELARUSIAN_BELARUS: USHORT = 0x01;
+pub const SUBLANG_BENGALI_INDIA: USHORT = 0x01;
+pub const SUBLANG_BENGALI_BANGLADESH: USHORT = 0x02;
+pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x05;
+pub const SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: USHORT = 0x08;
+pub const SUBLANG_BRETON_FRANCE: USHORT = 0x01;
+pub const SUBLANG_BULGARIAN_BULGARIA: USHORT = 0x01;
+pub const SUBLANG_CATALAN_CATALAN: USHORT = 0x01;
+pub const SUBLANG_CENTRAL_KURDISH_IRAQ: USHORT = 0x01;
+pub const SUBLANG_CHEROKEE_CHEROKEE: USHORT = 0x01;
+pub const SUBLANG_CHINESE_TRADITIONAL: USHORT = 0x01;
+pub const SUBLANG_CHINESE_SIMPLIFIED: USHORT = 0x02;
+pub const SUBLANG_CHINESE_HONGKONG: USHORT = 0x03;
+pub const SUBLANG_CHINESE_SINGAPORE: USHORT = 0x04;
+pub const SUBLANG_CHINESE_MACAU: USHORT = 0x05;
+pub const SUBLANG_CORSICAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_CZECH_CZECH_REPUBLIC: USHORT = 0x01;
+pub const SUBLANG_CROATIAN_CROATIA: USHORT = 0x01;
+pub const SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x04;
+pub const SUBLANG_DANISH_DENMARK: USHORT = 0x01;
+pub const SUBLANG_DARI_AFGHANISTAN: USHORT = 0x01;
+pub const SUBLANG_DIVEHI_MALDIVES: USHORT = 0x01;
+pub const SUBLANG_DUTCH: USHORT = 0x01;
+pub const SUBLANG_DUTCH_BELGIAN: USHORT = 0x02;
+pub const SUBLANG_ENGLISH_US: USHORT = 0x01;
+pub const SUBLANG_ENGLISH_UK: USHORT = 0x02;
+pub const SUBLANG_ENGLISH_AUS: USHORT = 0x03;
+pub const SUBLANG_ENGLISH_CAN: USHORT = 0x04;
+pub const SUBLANG_ENGLISH_NZ: USHORT = 0x05;
+pub const SUBLANG_ENGLISH_EIRE: USHORT = 0x06;
+pub const SUBLANG_ENGLISH_SOUTH_AFRICA: USHORT = 0x07;
+pub const SUBLANG_ENGLISH_JAMAICA: USHORT = 0x08;
+pub const SUBLANG_ENGLISH_CARIBBEAN: USHORT = 0x09;
+pub const SUBLANG_ENGLISH_BELIZE: USHORT = 0x0a;
+pub const SUBLANG_ENGLISH_TRINIDAD: USHORT = 0x0b;
+pub const SUBLANG_ENGLISH_ZIMBABWE: USHORT = 0x0c;
+pub const SUBLANG_ENGLISH_PHILIPPINES: USHORT = 0x0d;
+pub const SUBLANG_ENGLISH_INDIA: USHORT = 0x10;
+pub const SUBLANG_ENGLISH_MALAYSIA: USHORT = 0x11;
+pub const SUBLANG_ENGLISH_SINGAPORE: USHORT = 0x12;
+pub const SUBLANG_ESTONIAN_ESTONIA: USHORT = 0x01;
+pub const SUBLANG_FAEROESE_FAROE_ISLANDS: USHORT = 0x01;
+pub const SUBLANG_FILIPINO_PHILIPPINES: USHORT = 0x01;
+pub const SUBLANG_FINNISH_FINLAND: USHORT = 0x01;
+pub const SUBLANG_FRENCH: USHORT = 0x01;
+pub const SUBLANG_FRENCH_BELGIAN: USHORT = 0x02;
+pub const SUBLANG_FRENCH_CANADIAN: USHORT = 0x03;
+pub const SUBLANG_FRENCH_SWISS: USHORT = 0x04;
+pub const SUBLANG_FRENCH_LUXEMBOURG: USHORT = 0x05;
+pub const SUBLANG_FRENCH_MONACO: USHORT = 0x06;
+pub const SUBLANG_FRISIAN_NETHERLANDS: USHORT = 0x01;
+pub const SUBLANG_FULAH_SENEGAL: USHORT = 0x02;
+pub const SUBLANG_GALICIAN_GALICIAN: USHORT = 0x01;
+pub const SUBLANG_GEORGIAN_GEORGIA: USHORT = 0x01;
+pub const SUBLANG_GERMAN: USHORT = 0x01;
+pub const SUBLANG_GERMAN_SWISS: USHORT = 0x02;
+pub const SUBLANG_GERMAN_AUSTRIAN: USHORT = 0x03;
+pub const SUBLANG_GERMAN_LUXEMBOURG: USHORT = 0x04;
+pub const SUBLANG_GERMAN_LIECHTENSTEIN: USHORT = 0x05;
+pub const SUBLANG_GREEK_GREECE: USHORT = 0x01;
+pub const SUBLANG_GREENLANDIC_GREENLAND: USHORT = 0x01;
+pub const SUBLANG_GUJARATI_INDIA: USHORT = 0x01;
+pub const SUBLANG_HAUSA_NIGERIA_LATIN: USHORT = 0x01;
+pub const SUBLANG_HAWAIIAN_US: USHORT = 0x01;
+pub const SUBLANG_HEBREW_ISRAEL: USHORT = 0x01;
+pub const SUBLANG_HINDI_INDIA: USHORT = 0x01;
+pub const SUBLANG_HUNGARIAN_HUNGARY: USHORT = 0x01;
+pub const SUBLANG_ICELANDIC_ICELAND: USHORT = 0x01;
+pub const SUBLANG_IGBO_NIGERIA: USHORT = 0x01;
+pub const SUBLANG_INDONESIAN_INDONESIA: USHORT = 0x01;
+pub const SUBLANG_INUKTITUT_CANADA: USHORT = 0x01;
+pub const SUBLANG_INUKTITUT_CANADA_LATIN: USHORT = 0x02;
+pub const SUBLANG_IRISH_IRELAND: USHORT = 0x02;
+pub const SUBLANG_ITALIAN: USHORT = 0x01;
+pub const SUBLANG_ITALIAN_SWISS: USHORT = 0x02;
+pub const SUBLANG_JAPANESE_JAPAN: USHORT = 0x01;
+pub const SUBLANG_KANNADA_INDIA: USHORT = 0x01;
+pub const SUBLANG_KASHMIRI_SASIA: USHORT = 0x02;
+pub const SUBLANG_KASHMIRI_INDIA: USHORT = 0x02;
+pub const SUBLANG_KAZAK_KAZAKHSTAN: USHORT = 0x01;
+pub const SUBLANG_KHMER_CAMBODIA: USHORT = 0x01;
+pub const SUBLANG_KICHE_GUATEMALA: USHORT = 0x01;
+pub const SUBLANG_KINYARWANDA_RWANDA: USHORT = 0x01;
+pub const SUBLANG_KONKANI_INDIA: USHORT = 0x01;
+pub const SUBLANG_KOREAN: USHORT = 0x01;
+pub const SUBLANG_KYRGYZ_KYRGYZSTAN: USHORT = 0x01;
+pub const SUBLANG_LAO_LAO: USHORT = 0x01;
+pub const SUBLANG_LATVIAN_LATVIA: USHORT = 0x01;
+pub const SUBLANG_LITHUANIAN: USHORT = 0x01;
+pub const SUBLANG_LOWER_SORBIAN_GERMANY: USHORT = 0x02;
+pub const SUBLANG_LUXEMBOURGISH_LUXEMBOURG: USHORT = 0x01;
+pub const SUBLANG_MACEDONIAN_MACEDONIA: USHORT = 0x01;
+pub const SUBLANG_MALAY_MALAYSIA: USHORT = 0x01;
+pub const SUBLANG_MALAY_BRUNEI_DARUSSALAM: USHORT = 0x02;
+pub const SUBLANG_MALAYALAM_INDIA: USHORT = 0x01;
+pub const SUBLANG_MALTESE_MALTA: USHORT = 0x01;
+pub const SUBLANG_MAORI_NEW_ZEALAND: USHORT = 0x01;
+pub const SUBLANG_MAPUDUNGUN_CHILE: USHORT = 0x01;
+pub const SUBLANG_MARATHI_INDIA: USHORT = 0x01;
+pub const SUBLANG_MOHAWK_MOHAWK: USHORT = 0x01;
+pub const SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: USHORT = 0x01;
+pub const SUBLANG_MONGOLIAN_PRC: USHORT = 0x02;
+pub const SUBLANG_NEPALI_INDIA: USHORT = 0x02;
+pub const SUBLANG_NEPALI_NEPAL: USHORT = 0x01;
+pub const SUBLANG_NORWEGIAN_BOKMAL: USHORT = 0x01;
+pub const SUBLANG_NORWEGIAN_NYNORSK: USHORT = 0x02;
+pub const SUBLANG_OCCITAN_FRANCE: USHORT = 0x01;
+pub const SUBLANG_ODIA_INDIA: USHORT = 0x01;
+pub const SUBLANG_ORIYA_INDIA: USHORT = 0x01;
+pub const SUBLANG_PASHTO_AFGHANISTAN: USHORT = 0x01;
+pub const SUBLANG_PERSIAN_IRAN: USHORT = 0x01;
+pub const SUBLANG_POLISH_POLAND: USHORT = 0x01;
+pub const SUBLANG_PORTUGUESE: USHORT = 0x02;
+pub const SUBLANG_PORTUGUESE_BRAZILIAN: USHORT = 0x01;
+pub const SUBLANG_PULAR_SENEGAL: USHORT = 0x02;
+pub const SUBLANG_PUNJABI_INDIA: USHORT = 0x01;
+pub const SUBLANG_PUNJABI_PAKISTAN: USHORT = 0x02;
+pub const SUBLANG_QUECHUA_BOLIVIA: USHORT = 0x01;
+pub const SUBLANG_QUECHUA_ECUADOR: USHORT = 0x02;
+pub const SUBLANG_QUECHUA_PERU: USHORT = 0x03;
+pub const SUBLANG_ROMANIAN_ROMANIA: USHORT = 0x01;
+pub const SUBLANG_ROMANSH_SWITZERLAND: USHORT = 0x01;
+pub const SUBLANG_RUSSIAN_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_SAKHA_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_SAMI_NORTHERN_NORWAY: USHORT = 0x01;
+pub const SUBLANG_SAMI_NORTHERN_SWEDEN: USHORT = 0x02;
+pub const SUBLANG_SAMI_NORTHERN_FINLAND: USHORT = 0x03;
+pub const SUBLANG_SAMI_LULE_NORWAY: USHORT = 0x04;
+pub const SUBLANG_SAMI_LULE_SWEDEN: USHORT = 0x05;
+pub const SUBLANG_SAMI_SOUTHERN_NORWAY: USHORT = 0x06;
+pub const SUBLANG_SAMI_SOUTHERN_SWEDEN: USHORT = 0x07;
+pub const SUBLANG_SAMI_SKOLT_FINLAND: USHORT = 0x08;
+pub const SUBLANG_SAMI_INARI_FINLAND: USHORT = 0x09;
+pub const SUBLANG_SANSKRIT_INDIA: USHORT = 0x01;
+pub const SUBLANG_SCOTTISH_GAELIC: USHORT = 0x01;
+pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN: USHORT = 0x06;
+pub const SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC: USHORT = 0x07;
+pub const SUBLANG_SERBIAN_MONTENEGRO_LATIN: USHORT = 0x0b;
+pub const SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC: USHORT = 0x0c;
+pub const SUBLANG_SERBIAN_SERBIA_LATIN: USHORT = 0x09;
+pub const SUBLANG_SERBIAN_SERBIA_CYRILLIC: USHORT = 0x0a;
+pub const SUBLANG_SERBIAN_CROATIA: USHORT = 0x01;
+pub const SUBLANG_SERBIAN_LATIN: USHORT = 0x02;
+pub const SUBLANG_SERBIAN_CYRILLIC: USHORT = 0x03;
+pub const SUBLANG_SINDHI_INDIA: USHORT = 0x01;
+pub const SUBLANG_SINDHI_PAKISTAN: USHORT = 0x02;
+pub const SUBLANG_SINDHI_AFGHANISTAN: USHORT = 0x02;
+pub const SUBLANG_SINHALESE_SRI_LANKA: USHORT = 0x01;
+pub const SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_SLOVAK_SLOVAKIA: USHORT = 0x01;
+pub const SUBLANG_SLOVENIAN_SLOVENIA: USHORT = 0x01;
+pub const SUBLANG_SPANISH: USHORT = 0x01;
+pub const SUBLANG_SPANISH_MEXICAN: USHORT = 0x02;
+pub const SUBLANG_SPANISH_MODERN: USHORT = 0x03;
+pub const SUBLANG_SPANISH_GUATEMALA: USHORT = 0x04;
+pub const SUBLANG_SPANISH_COSTA_RICA: USHORT = 0x05;
+pub const SUBLANG_SPANISH_PANAMA: USHORT = 0x06;
+pub const SUBLANG_SPANISH_DOMINICAN_REPUBLIC: USHORT = 0x07;
+pub const SUBLANG_SPANISH_VENEZUELA: USHORT = 0x08;
+pub const SUBLANG_SPANISH_COLOMBIA: USHORT = 0x09;
+pub const SUBLANG_SPANISH_PERU: USHORT = 0x0a;
+pub const SUBLANG_SPANISH_ARGENTINA: USHORT = 0x0b;
+pub const SUBLANG_SPANISH_ECUADOR: USHORT = 0x0c;
+pub const SUBLANG_SPANISH_CHILE: USHORT = 0x0d;
+pub const SUBLANG_SPANISH_URUGUAY: USHORT = 0x0e;
+pub const SUBLANG_SPANISH_PARAGUAY: USHORT = 0x0f;
+pub const SUBLANG_SPANISH_BOLIVIA: USHORT = 0x10;
+pub const SUBLANG_SPANISH_EL_SALVADOR: USHORT = 0x11;
+pub const SUBLANG_SPANISH_HONDURAS: USHORT = 0x12;
+pub const SUBLANG_SPANISH_NICARAGUA: USHORT = 0x13;
+pub const SUBLANG_SPANISH_PUERTO_RICO: USHORT = 0x14;
+pub const SUBLANG_SPANISH_US: USHORT = 0x15;
+pub const SUBLANG_SWAHILI_KENYA: USHORT = 0x01;
+pub const SUBLANG_SWEDISH: USHORT = 0x01;
+pub const SUBLANG_SWEDISH_FINLAND: USHORT = 0x02;
+pub const SUBLANG_SYRIAC_SYRIA: USHORT = 0x01;
+pub const SUBLANG_TAJIK_TAJIKISTAN: USHORT = 0x01;
+pub const SUBLANG_TAMAZIGHT_ALGERIA_LATIN: USHORT = 0x02;
+pub const SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH: USHORT = 0x04;
+pub const SUBLANG_TAMIL_INDIA: USHORT = 0x01;
+pub const SUBLANG_TAMIL_SRI_LANKA: USHORT = 0x02;
+pub const SUBLANG_TATAR_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_TELUGU_INDIA: USHORT = 0x01;
+pub const SUBLANG_THAI_THAILAND: USHORT = 0x01;
+pub const SUBLANG_TIBETAN_PRC: USHORT = 0x01;
+pub const SUBLANG_TIGRIGNA_ERITREA: USHORT = 0x02;
+pub const SUBLANG_TIGRINYA_ERITREA: USHORT = 0x02;
+pub const SUBLANG_TIGRINYA_ETHIOPIA: USHORT = 0x01;
+pub const SUBLANG_TSWANA_BOTSWANA: USHORT = 0x02;
+pub const SUBLANG_TSWANA_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_TURKISH_TURKEY: USHORT = 0x01;
+pub const SUBLANG_TURKMEN_TURKMENISTAN: USHORT = 0x01;
+pub const SUBLANG_UIGHUR_PRC: USHORT = 0x01;
+pub const SUBLANG_UKRAINIAN_UKRAINE: USHORT = 0x01;
+pub const SUBLANG_UPPER_SORBIAN_GERMANY: USHORT = 0x01;
+pub const SUBLANG_URDU_PAKISTAN: USHORT = 0x01;
+pub const SUBLANG_URDU_INDIA: USHORT = 0x02;
+pub const SUBLANG_UZBEK_LATIN: USHORT = 0x01;
+pub const SUBLANG_UZBEK_CYRILLIC: USHORT = 0x02;
+pub const SUBLANG_VALENCIAN_VALENCIA: USHORT = 0x02;
+pub const SUBLANG_VIETNAMESE_VIETNAM: USHORT = 0x01;
+pub const SUBLANG_WELSH_UNITED_KINGDOM: USHORT = 0x01;
+pub const SUBLANG_WOLOF_SENEGAL: USHORT = 0x01;
+pub const SUBLANG_XHOSA_SOUTH_AFRICA: USHORT = 0x01;
+pub const SUBLANG_YAKUT_RUSSIA: USHORT = 0x01;
+pub const SUBLANG_YI_PRC: USHORT = 0x01;
+pub const SUBLANG_YORUBA_NIGERIA: USHORT = 0x01;
+pub const SUBLANG_ZULU_SOUTH_AFRICA: USHORT = 0x01;
+pub const SORT_DEFAULT: USHORT = 0x0;
+pub const SORT_INVARIANT_MATH: USHORT = 0x1;
+pub const SORT_JAPANESE_XJIS: USHORT = 0x0;
+pub const SORT_JAPANESE_UNICODE: USHORT = 0x1;
+pub const SORT_JAPANESE_RADICALSTROKE: USHORT = 0x4;
+pub const SORT_CHINESE_BIG5: USHORT = 0x0;
+pub const SORT_CHINESE_PRCP: USHORT = 0x0;
+pub const SORT_CHINESE_UNICODE: USHORT = 0x1;
+pub const SORT_CHINESE_PRC: USHORT = 0x2;
+pub const SORT_CHINESE_BOPOMOFO: USHORT = 0x3;
+pub const SORT_CHINESE_RADICALSTROKE: USHORT = 0x4;
+pub const SORT_KOREAN_KSC: USHORT = 0x0;
+pub const SORT_KOREAN_UNICODE: USHORT = 0x1;
+pub const SORT_GERMAN_PHONE_BOOK: USHORT = 0x1;
+pub const SORT_HUNGARIAN_DEFAULT: USHORT = 0x0;
+pub const SORT_HUNGARIAN_TECHNICAL: USHORT = 0x1;
+pub const SORT_GEORGIAN_TRADITIONAL: USHORT = 0x0;
+pub const SORT_GEORGIAN_MODERN: USHORT = 0x1;
+macro_rules! MAKELANGID {
+ ($p:expr, $s:expr) => {
+ (($s as USHORT) << 10) | ($p as USHORT)
+ }
+}
+#[inline]
+pub fn MAKELANGID(p: USHORT, s: USHORT) -> LANGID { (s << 10) | p }
+#[inline]
+pub fn PRIMARYLANGID(lgid: LANGID) -> USHORT { lgid & 0x3ff }
+#[inline]
+pub fn SUBLANGID(lgid: LANGID) -> USHORT { lgid >> 10 }
+pub const NLS_VALID_LOCALE_MASK: ULONG = 0x000fffff;
+macro_rules! MAKELCID {
+ ($lgid:expr, $srtid:expr) => {
+ (($srtid as ULONG) << 16) | ($lgid as ULONG)
+ }
+}
+#[inline]
+pub fn MAKELCID(lgid: LANGID, srtid: USHORT) -> LCID {
+ ((srtid as ULONG) << 16) | (lgid as ULONG)
+}
+#[inline]
+pub fn MAKESORTLCID(lgid: LANGID, srtid: USHORT, ver: USHORT) -> LCID {
+ MAKELCID(lgid, srtid) | ((ver as ULONG) << 20)
+}
+#[inline]
+pub fn LANGIDFROMLCID(lcid: LCID) -> LANGID { lcid as LANGID }
+#[inline]
+pub fn SORTIDFROMLCID(lcid: LCID) -> USHORT { ((lcid >> 16) & 0xf) as USHORT }
+#[inline]
+pub fn SORTVERSIONFROMLCID(lcid: LCID) -> USHORT { ((lcid >> 16) & 0xf) as USHORT }
+pub const LOCALE_NAME_MAX_LENGTH: usize = 85;
+pub const LANG_SYSTEM_DEFAULT: LANGID = MAKELANGID!(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT);
+pub const LANG_USER_DEFAULT: LANGID = MAKELANGID!(LANG_NEUTRAL, SUBLANG_DEFAULT);
+pub const LOCALE_SYSTEM_DEFAULT: LCID = MAKELCID!(LANG_SYSTEM_DEFAULT, SORT_DEFAULT);
+pub const LOCALE_USER_DEFAULT: LCID = MAKELCID!(LANG_USER_DEFAULT, SORT_DEFAULT);
+pub const LOCALE_CUSTOM_DEFAULT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT);
+pub const LOCALE_CUSTOM_UNSPECIFIED: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT);
+pub const LOCALE_CUSTOM_UI_DEFAULT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT);
+pub const LOCALE_NEUTRAL: LCID
+ = MAKELCID!(MAKELANGID!(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT);
+pub const LOCALE_INVARIANT: LCID
+ = MAKELCID!(MAKELANGID!(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT);
+pub const LOCALE_TRANSIENT_KEYBOARD1: LCID = 0x2000;
+pub const LOCALE_TRANSIENT_KEYBOARD2: LCID = 0x2400;
+pub const LOCALE_TRANSIENT_KEYBOARD3: LCID = 0x2800;
+pub const LOCALE_TRANSIENT_KEYBOARD4: LCID = 0x2c00;
+pub const LOCALE_UNASSIGNED_LCID: LCID = LOCALE_CUSTOM_UNSPECIFIED;
diff --git a/third_party/rust/winapi/src/shared/ntstatus.rs b/third_party/rust/winapi/src/shared/ntstatus.rs
new file mode 100644
index 0000000000..c369c22fc9
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ntstatus.rs
@@ -0,0 +1,2574 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Constant definitions for the NTSTATUS values.
+use shared::ntdef::NTSTATUS;
+pub const STATUS_WAIT_0: NTSTATUS = 0x00000000;
+pub const FACILITY_VSM: NTSTATUS = 0x45;
+pub const FACILITY_VOLSNAP: NTSTATUS = 0x50;
+pub const FACILITY_VOLMGR: NTSTATUS = 0x38;
+pub const FACILITY_VIRTUALIZATION: NTSTATUS = 0x37;
+pub const FACILITY_VIDEO: NTSTATUS = 0x1B;
+pub const FACILITY_USB_ERROR_CODE: NTSTATUS = 0x10;
+pub const FACILITY_TRANSACTION: NTSTATUS = 0x19;
+pub const FACILITY_TPM: NTSTATUS = 0x29;
+pub const FACILITY_TERMINAL_SERVER: NTSTATUS = 0xA;
+pub const FACILITY_SXS_ERROR_CODE: NTSTATUS = 0x15;
+pub const FACILITY_NTSSPI: NTSTATUS = 0x9;
+pub const FACILITY_SPACES: NTSTATUS = 0xE7;
+pub const FACILITY_SMB: NTSTATUS = 0x5D;
+pub const FACILITY_SYSTEM_INTEGRITY: NTSTATUS = 0xE9;
+pub const FACILITY_SHARED_VHDX: NTSTATUS = 0x5C;
+pub const FACILITY_SECUREBOOT: NTSTATUS = 0x43;
+pub const FACILITY_SECURITY_CORE: NTSTATUS = 0xE8;
+pub const FACILITY_SDBUS: NTSTATUS = 0x51;
+pub const FACILITY_RTPM: NTSTATUS = 0x2A;
+pub const FACILITY_RPC_STUBS: NTSTATUS = 0x3;
+pub const FACILITY_RPC_RUNTIME: NTSTATUS = 0x2;
+pub const FACILITY_RESUME_KEY_FILTER: NTSTATUS = 0x40;
+pub const FACILITY_RDBSS: NTSTATUS = 0x41;
+pub const FACILITY_PLATFORM_MANIFEST: NTSTATUS = 0xEB;
+pub const FACILITY_NTWIN32: NTSTATUS = 0x7;
+pub const FACILITY_WIN32K_NTUSER: NTSTATUS = 0x3E;
+pub const FACILITY_WIN32K_NTGDI: NTSTATUS = 0x3F;
+pub const FACILITY_NDIS_ERROR_CODE: NTSTATUS = 0x23;
+pub const FACILTIY_MUI_ERROR_CODE: NTSTATUS = 0xB;
+pub const FACILITY_MONITOR: NTSTATUS = 0x1D;
+pub const FACILITY_MAXIMUM_VALUE: NTSTATUS = 0xEC;
+pub const FACILITY_LICENSING: NTSTATUS = 0xEA;
+pub const FACILITY_IPSEC: NTSTATUS = 0x36;
+pub const FACILITY_IO_ERROR_CODE: NTSTATUS = 0x4;
+pub const FACILITY_INTERIX: NTSTATUS = 0x99;
+pub const FACILITY_HYPERVISOR: NTSTATUS = 0x35;
+pub const FACILITY_HID_ERROR_CODE: NTSTATUS = 0x11;
+pub const FACILITY_GRAPHICS_KERNEL: NTSTATUS = 0x1E;
+pub const FACILITY_FWP_ERROR_CODE: NTSTATUS = 0x22;
+pub const FACILITY_FVE_ERROR_CODE: NTSTATUS = 0x21;
+pub const FACILITY_FIREWIRE_ERROR_CODE: NTSTATUS = 0x12;
+pub const FACILITY_FILTER_MANAGER: NTSTATUS = 0x1C;
+pub const FACILITY_DRIVER_FRAMEWORK: NTSTATUS = 0x20;
+pub const FACILITY_DEBUGGER: NTSTATUS = 0x1;
+pub const FACILITY_COMMONLOG: NTSTATUS = 0x1A;
+pub const FACILITY_CODCLASS_ERROR_CODE: NTSTATUS = 0x6;
+pub const FACILITY_CLUSTER_ERROR_CODE: NTSTATUS = 0x13;
+pub const FACILITY_NTCERT: NTSTATUS = 0x8;
+pub const FACILITY_BTH_ATT: NTSTATUS = 0x42;
+pub const FACILITY_BCD_ERROR_CODE: NTSTATUS = 0x39;
+pub const FACILITY_AUDIO_KERNEL: NTSTATUS = 0x44;
+pub const FACILITY_ACPI_ERROR_CODE: NTSTATUS = 0x14;
+pub const STATUS_SEVERITY_WARNING: NTSTATUS = 0x2;
+pub const STATUS_SEVERITY_SUCCESS: NTSTATUS = 0x0;
+pub const STATUS_SEVERITY_INFORMATIONAL: NTSTATUS = 0x1;
+pub const STATUS_SEVERITY_ERROR: NTSTATUS = 0x3;
+pub const STATUS_SUCCESS: NTSTATUS = 0x00000000;
+pub const STATUS_WAIT_1: NTSTATUS = 0x00000001;
+pub const STATUS_WAIT_2: NTSTATUS = 0x00000002;
+pub const STATUS_WAIT_3: NTSTATUS = 0x00000003;
+pub const STATUS_WAIT_63: NTSTATUS = 0x0000003F;
+pub const STATUS_ABANDONED: NTSTATUS = 0x00000080;
+pub const STATUS_ABANDONED_WAIT_0: NTSTATUS = 0x00000080;
+pub const STATUS_ABANDONED_WAIT_63: NTSTATUS = 0x000000BF;
+pub const STATUS_USER_APC: NTSTATUS = 0x000000C0;
+pub const STATUS_ALREADY_COMPLETE: NTSTATUS = 0x000000FF;
+pub const STATUS_KERNEL_APC: NTSTATUS = 0x00000100;
+pub const STATUS_ALERTED: NTSTATUS = 0x00000101;
+pub const STATUS_TIMEOUT: NTSTATUS = 0x00000102;
+pub const STATUS_PENDING: NTSTATUS = 0x00000103;
+pub const STATUS_REPARSE: NTSTATUS = 0x00000104;
+pub const STATUS_MORE_ENTRIES: NTSTATUS = 0x00000105;
+pub const STATUS_NOT_ALL_ASSIGNED: NTSTATUS = 0x00000106;
+pub const STATUS_SOME_NOT_MAPPED: NTSTATUS = 0x00000107;
+pub const STATUS_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = 0x00000108;
+pub const STATUS_VOLUME_MOUNTED: NTSTATUS = 0x00000109;
+pub const STATUS_RXACT_COMMITTED: NTSTATUS = 0x0000010A;
+pub const STATUS_NOTIFY_CLEANUP: NTSTATUS = 0x0000010B;
+pub const STATUS_NOTIFY_ENUM_DIR: NTSTATUS = 0x0000010C;
+pub const STATUS_NO_QUOTAS_FOR_ACCOUNT: NTSTATUS = 0x0000010D;
+pub const STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED: NTSTATUS = 0x0000010E;
+pub const STATUS_PAGE_FAULT_TRANSITION: NTSTATUS = 0x00000110;
+pub const STATUS_PAGE_FAULT_DEMAND_ZERO: NTSTATUS = 0x00000111;
+pub const STATUS_PAGE_FAULT_COPY_ON_WRITE: NTSTATUS = 0x00000112;
+pub const STATUS_PAGE_FAULT_GUARD_PAGE: NTSTATUS = 0x00000113;
+pub const STATUS_PAGE_FAULT_PAGING_FILE: NTSTATUS = 0x00000114;
+pub const STATUS_CACHE_PAGE_LOCKED: NTSTATUS = 0x00000115;
+pub const STATUS_CRASH_DUMP: NTSTATUS = 0x00000116;
+pub const STATUS_BUFFER_ALL_ZEROS: NTSTATUS = 0x00000117;
+pub const STATUS_REPARSE_OBJECT: NTSTATUS = 0x00000118;
+pub const STATUS_RESOURCE_REQUIREMENTS_CHANGED: NTSTATUS = 0x00000119;
+pub const STATUS_TRANSLATION_COMPLETE: NTSTATUS = 0x00000120;
+pub const STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY: NTSTATUS = 0x00000121;
+pub const STATUS_NOTHING_TO_TERMINATE: NTSTATUS = 0x00000122;
+pub const STATUS_PROCESS_NOT_IN_JOB: NTSTATUS = 0x00000123;
+pub const STATUS_PROCESS_IN_JOB: NTSTATUS = 0x00000124;
+pub const STATUS_VOLSNAP_HIBERNATE_READY: NTSTATUS = 0x00000125;
+pub const STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY: NTSTATUS = 0x00000126;
+pub const STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED: NTSTATUS = 0x00000127;
+pub const STATUS_INTERRUPT_STILL_CONNECTED: NTSTATUS = 0x00000128;
+pub const STATUS_PROCESS_CLONED: NTSTATUS = 0x00000129;
+pub const STATUS_FILE_LOCKED_WITH_ONLY_READERS: NTSTATUS = 0x0000012A;
+pub const STATUS_FILE_LOCKED_WITH_WRITERS: NTSTATUS = 0x0000012B;
+pub const STATUS_VALID_IMAGE_HASH: NTSTATUS = 0x0000012C;
+pub const STATUS_VALID_CATALOG_HASH: NTSTATUS = 0x0000012D;
+pub const STATUS_VALID_STRONG_CODE_HASH: NTSTATUS = 0x0000012E;
+pub const STATUS_GHOSTED: NTSTATUS = 0x0000012F;
+pub const STATUS_RESOURCEMANAGER_READ_ONLY: NTSTATUS = 0x00000202;
+pub const STATUS_RING_PREVIOUSLY_EMPTY: NTSTATUS = 0x00000210;
+pub const STATUS_RING_PREVIOUSLY_FULL: NTSTATUS = 0x00000211;
+pub const STATUS_RING_PREVIOUSLY_ABOVE_QUOTA: NTSTATUS = 0x00000212;
+pub const STATUS_RING_NEWLY_EMPTY: NTSTATUS = 0x00000213;
+pub const STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT: NTSTATUS = 0x00000214;
+pub const STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE: NTSTATUS = 0x00000215;
+pub const STATUS_OPLOCK_HANDLE_CLOSED: NTSTATUS = 0x00000216;
+pub const STATUS_WAIT_FOR_OPLOCK: NTSTATUS = 0x00000367;
+pub const STATUS_REPARSE_GLOBAL: NTSTATUS = 0x00000368;
+pub const DBG_EXCEPTION_HANDLED: NTSTATUS = 0x00010001;
+pub const DBG_CONTINUE: NTSTATUS = 0x00010002;
+pub const STATUS_FLT_IO_COMPLETE: NTSTATUS = 0x001C0001;
+pub const STATUS_OBJECT_NAME_EXISTS: NTSTATUS = 0x40000000;
+pub const STATUS_THREAD_WAS_SUSPENDED: NTSTATUS = 0x40000001;
+pub const STATUS_WORKING_SET_LIMIT_RANGE: NTSTATUS = 0x40000002;
+pub const STATUS_IMAGE_NOT_AT_BASE: NTSTATUS = 0x40000003;
+pub const STATUS_RXACT_STATE_CREATED: NTSTATUS = 0x40000004;
+pub const STATUS_SEGMENT_NOTIFICATION: NTSTATUS = 0x40000005;
+pub const STATUS_LOCAL_USER_SESSION_KEY: NTSTATUS = 0x40000006;
+pub const STATUS_BAD_CURRENT_DIRECTORY: NTSTATUS = 0x40000007;
+pub const STATUS_SERIAL_MORE_WRITES: NTSTATUS = 0x40000008;
+pub const STATUS_REGISTRY_RECOVERED: NTSTATUS = 0x40000009;
+pub const STATUS_FT_READ_RECOVERY_FROM_BACKUP: NTSTATUS = 0x4000000A;
+pub const STATUS_FT_WRITE_RECOVERY: NTSTATUS = 0x4000000B;
+pub const STATUS_SERIAL_COUNTER_TIMEOUT: NTSTATUS = 0x4000000C;
+pub const STATUS_NULL_LM_PASSWORD: NTSTATUS = 0x4000000D;
+pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH: NTSTATUS = 0x4000000E;
+pub const STATUS_RECEIVE_PARTIAL: NTSTATUS = 0x4000000F;
+pub const STATUS_RECEIVE_EXPEDITED: NTSTATUS = 0x40000010;
+pub const STATUS_RECEIVE_PARTIAL_EXPEDITED: NTSTATUS = 0x40000011;
+pub const STATUS_EVENT_DONE: NTSTATUS = 0x40000012;
+pub const STATUS_EVENT_PENDING: NTSTATUS = 0x40000013;
+pub const STATUS_CHECKING_FILE_SYSTEM: NTSTATUS = 0x40000014;
+pub const STATUS_FATAL_APP_EXIT: NTSTATUS = 0x40000015;
+pub const STATUS_PREDEFINED_HANDLE: NTSTATUS = 0x40000016;
+pub const STATUS_WAS_UNLOCKED: NTSTATUS = 0x40000017;
+pub const STATUS_SERVICE_NOTIFICATION: NTSTATUS = 0x40000018;
+pub const STATUS_WAS_LOCKED: NTSTATUS = 0x40000019;
+pub const STATUS_LOG_HARD_ERROR: NTSTATUS = 0x4000001A;
+pub const STATUS_ALREADY_WIN32: NTSTATUS = 0x4000001B;
+pub const STATUS_WX86_UNSIMULATE: NTSTATUS = 0x4000001C;
+pub const STATUS_WX86_CONTINUE: NTSTATUS = 0x4000001D;
+pub const STATUS_WX86_SINGLE_STEP: NTSTATUS = 0x4000001E;
+pub const STATUS_WX86_BREAKPOINT: NTSTATUS = 0x4000001F;
+pub const STATUS_WX86_EXCEPTION_CONTINUE: NTSTATUS = 0x40000020;
+pub const STATUS_WX86_EXCEPTION_LASTCHANCE: NTSTATUS = 0x40000021;
+pub const STATUS_WX86_EXCEPTION_CHAIN: NTSTATUS = 0x40000022;
+pub const STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE: NTSTATUS = 0x40000023;
+pub const STATUS_NO_YIELD_PERFORMED: NTSTATUS = 0x40000024;
+pub const STATUS_TIMER_RESUME_IGNORED: NTSTATUS = 0x40000025;
+pub const STATUS_ARBITRATION_UNHANDLED: NTSTATUS = 0x40000026;
+pub const STATUS_CARDBUS_NOT_SUPPORTED: NTSTATUS = 0x40000027;
+pub const STATUS_WX86_CREATEWX86TIB: NTSTATUS = 0x40000028;
+pub const STATUS_MP_PROCESSOR_MISMATCH: NTSTATUS = 0x40000029;
+pub const STATUS_HIBERNATED: NTSTATUS = 0x4000002A;
+pub const STATUS_RESUME_HIBERNATION: NTSTATUS = 0x4000002B;
+pub const STATUS_FIRMWARE_UPDATED: NTSTATUS = 0x4000002C;
+pub const STATUS_DRIVERS_LEAKING_LOCKED_PAGES: NTSTATUS = 0x4000002D;
+pub const STATUS_MESSAGE_RETRIEVED: NTSTATUS = 0x4000002E;
+pub const STATUS_SYSTEM_POWERSTATE_TRANSITION: NTSTATUS = 0x4000002F;
+pub const STATUS_ALPC_CHECK_COMPLETION_LIST: NTSTATUS = 0x40000030;
+pub const STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: NTSTATUS = 0x40000031;
+pub const STATUS_ACCESS_AUDIT_BY_POLICY: NTSTATUS = 0x40000032;
+pub const STATUS_ABANDON_HIBERFILE: NTSTATUS = 0x40000033;
+pub const STATUS_BIZRULES_NOT_ENABLED: NTSTATUS = 0x40000034;
+pub const STATUS_FT_READ_FROM_COPY: NTSTATUS = 0x40000035;
+pub const STATUS_IMAGE_AT_DIFFERENT_BASE: NTSTATUS = 0x40000036;
+pub const DBG_REPLY_LATER: NTSTATUS = 0x40010001;
+pub const DBG_UNABLE_TO_PROVIDE_HANDLE: NTSTATUS = 0x40010002;
+pub const DBG_TERMINATE_THREAD: NTSTATUS = 0x40010003;
+pub const DBG_TERMINATE_PROCESS: NTSTATUS = 0x40010004;
+pub const DBG_CONTROL_C: NTSTATUS = 0x40010005;
+pub const DBG_PRINTEXCEPTION_C: NTSTATUS = 0x40010006;
+pub const DBG_RIPEXCEPTION: NTSTATUS = 0x40010007;
+pub const DBG_CONTROL_BREAK: NTSTATUS = 0x40010008;
+pub const DBG_COMMAND_EXCEPTION: NTSTATUS = 0x40010009;
+pub const DBG_PRINTEXCEPTION_WIDE_C: NTSTATUS = 0x4001000A;
+pub const STATUS_HEURISTIC_DAMAGE_POSSIBLE: NTSTATUS = 0x40190001;
+pub const STATUS_GUARD_PAGE_VIOLATION: NTSTATUS = 0x80000001;
+pub const STATUS_DATATYPE_MISALIGNMENT: NTSTATUS = 0x80000002;
+pub const STATUS_BREAKPOINT: NTSTATUS = 0x80000003;
+pub const STATUS_SINGLE_STEP: NTSTATUS = 0x80000004;
+pub const STATUS_BUFFER_OVERFLOW: NTSTATUS = 0x80000005;
+pub const STATUS_NO_MORE_FILES: NTSTATUS = 0x80000006;
+pub const STATUS_WAKE_SYSTEM_DEBUGGER: NTSTATUS = 0x80000007;
+pub const STATUS_HANDLES_CLOSED: NTSTATUS = 0x8000000A;
+pub const STATUS_NO_INHERITANCE: NTSTATUS = 0x8000000B;
+pub const STATUS_GUID_SUBSTITUTION_MADE: NTSTATUS = 0x8000000C;
+pub const STATUS_PARTIAL_COPY: NTSTATUS = 0x8000000D;
+pub const STATUS_DEVICE_PAPER_EMPTY: NTSTATUS = 0x8000000E;
+pub const STATUS_DEVICE_POWERED_OFF: NTSTATUS = 0x8000000F;
+pub const STATUS_DEVICE_OFF_LINE: NTSTATUS = 0x80000010;
+pub const STATUS_DEVICE_BUSY: NTSTATUS = 0x80000011;
+pub const STATUS_NO_MORE_EAS: NTSTATUS = 0x80000012;
+pub const STATUS_INVALID_EA_NAME: NTSTATUS = 0x80000013;
+pub const STATUS_EA_LIST_INCONSISTENT: NTSTATUS = 0x80000014;
+pub const STATUS_INVALID_EA_FLAG: NTSTATUS = 0x80000015;
+pub const STATUS_VERIFY_REQUIRED: NTSTATUS = 0x80000016;
+pub const STATUS_EXTRANEOUS_INFORMATION: NTSTATUS = 0x80000017;
+pub const STATUS_RXACT_COMMIT_NECESSARY: NTSTATUS = 0x80000018;
+pub const STATUS_NO_MORE_ENTRIES: NTSTATUS = 0x8000001A;
+pub const STATUS_FILEMARK_DETECTED: NTSTATUS = 0x8000001B;
+pub const STATUS_MEDIA_CHANGED: NTSTATUS = 0x8000001C;
+pub const STATUS_BUS_RESET: NTSTATUS = 0x8000001D;
+pub const STATUS_END_OF_MEDIA: NTSTATUS = 0x8000001E;
+pub const STATUS_BEGINNING_OF_MEDIA: NTSTATUS = 0x8000001F;
+pub const STATUS_MEDIA_CHECK: NTSTATUS = 0x80000020;
+pub const STATUS_SETMARK_DETECTED: NTSTATUS = 0x80000021;
+pub const STATUS_NO_DATA_DETECTED: NTSTATUS = 0x80000022;
+pub const STATUS_REDIRECTOR_HAS_OPEN_HANDLES: NTSTATUS = 0x80000023;
+pub const STATUS_SERVER_HAS_OPEN_HANDLES: NTSTATUS = 0x80000024;
+pub const STATUS_ALREADY_DISCONNECTED: NTSTATUS = 0x80000025;
+pub const STATUS_LONGJUMP: NTSTATUS = 0x80000026;
+pub const STATUS_CLEANER_CARTRIDGE_INSTALLED: NTSTATUS = 0x80000027;
+pub const STATUS_PLUGPLAY_QUERY_VETOED: NTSTATUS = 0x80000028;
+pub const STATUS_UNWIND_CONSOLIDATE: NTSTATUS = 0x80000029;
+pub const STATUS_REGISTRY_HIVE_RECOVERED: NTSTATUS = 0x8000002A;
+pub const STATUS_DLL_MIGHT_BE_INSECURE: NTSTATUS = 0x8000002B;
+pub const STATUS_DLL_MIGHT_BE_INCOMPATIBLE: NTSTATUS = 0x8000002C;
+pub const STATUS_STOPPED_ON_SYMLINK: NTSTATUS = 0x8000002D;
+pub const STATUS_CANNOT_GRANT_REQUESTED_OPLOCK: NTSTATUS = 0x8000002E;
+pub const STATUS_NO_ACE_CONDITION: NTSTATUS = 0x8000002F;
+pub const STATUS_DEVICE_SUPPORT_IN_PROGRESS: NTSTATUS = 0x80000030;
+pub const STATUS_DEVICE_POWER_CYCLE_REQUIRED: NTSTATUS = 0x80000031;
+pub const STATUS_NO_WORK_DONE: NTSTATUS = 0x80000032;
+pub const DBG_EXCEPTION_NOT_HANDLED: NTSTATUS = 0x80010001;
+pub const STATUS_CLUSTER_NODE_ALREADY_UP: NTSTATUS = 0x80130001;
+pub const STATUS_CLUSTER_NODE_ALREADY_DOWN: NTSTATUS = 0x80130002;
+pub const STATUS_CLUSTER_NETWORK_ALREADY_ONLINE: NTSTATUS = 0x80130003;
+pub const STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE: NTSTATUS = 0x80130004;
+pub const STATUS_CLUSTER_NODE_ALREADY_MEMBER: NTSTATUS = 0x80130005;
+pub const STATUS_FLT_BUFFER_TOO_SMALL: NTSTATUS = 0x801C0001;
+pub const STATUS_FVE_PARTIAL_METADATA: NTSTATUS = 0x80210001;
+pub const STATUS_FVE_TRANSIENT_STATE: NTSTATUS = 0x80210002;
+pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH: NTSTATUS = 0x8000CF00;
+pub const STATUS_UNSUCCESSFUL: NTSTATUS = 0xC0000001;
+pub const STATUS_NOT_IMPLEMENTED: NTSTATUS = 0xC0000002;
+pub const STATUS_INVALID_INFO_CLASS: NTSTATUS = 0xC0000003;
+pub const STATUS_INFO_LENGTH_MISMATCH: NTSTATUS = 0xC0000004;
+pub const STATUS_ACCESS_VIOLATION: NTSTATUS = 0xC0000005;
+pub const STATUS_IN_PAGE_ERROR: NTSTATUS = 0xC0000006;
+pub const STATUS_PAGEFILE_QUOTA: NTSTATUS = 0xC0000007;
+pub const STATUS_INVALID_HANDLE: NTSTATUS = 0xC0000008;
+pub const STATUS_BAD_INITIAL_STACK: NTSTATUS = 0xC0000009;
+pub const STATUS_BAD_INITIAL_PC: NTSTATUS = 0xC000000A;
+pub const STATUS_INVALID_CID: NTSTATUS = 0xC000000B;
+pub const STATUS_TIMER_NOT_CANCELED: NTSTATUS = 0xC000000C;
+pub const STATUS_INVALID_PARAMETER: NTSTATUS = 0xC000000D;
+pub const STATUS_NO_SUCH_DEVICE: NTSTATUS = 0xC000000E;
+pub const STATUS_NO_SUCH_FILE: NTSTATUS = 0xC000000F;
+pub const STATUS_INVALID_DEVICE_REQUEST: NTSTATUS = 0xC0000010;
+pub const STATUS_END_OF_FILE: NTSTATUS = 0xC0000011;
+pub const STATUS_WRONG_VOLUME: NTSTATUS = 0xC0000012;
+pub const STATUS_NO_MEDIA_IN_DEVICE: NTSTATUS = 0xC0000013;
+pub const STATUS_UNRECOGNIZED_MEDIA: NTSTATUS = 0xC0000014;
+pub const STATUS_NONEXISTENT_SECTOR: NTSTATUS = 0xC0000015;
+pub const STATUS_MORE_PROCESSING_REQUIRED: NTSTATUS = 0xC0000016;
+pub const STATUS_NO_MEMORY: NTSTATUS = 0xC0000017;
+pub const STATUS_CONFLICTING_ADDRESSES: NTSTATUS = 0xC0000018;
+pub const STATUS_NOT_MAPPED_VIEW: NTSTATUS = 0xC0000019;
+pub const STATUS_UNABLE_TO_FREE_VM: NTSTATUS = 0xC000001A;
+pub const STATUS_UNABLE_TO_DELETE_SECTION: NTSTATUS = 0xC000001B;
+pub const STATUS_INVALID_SYSTEM_SERVICE: NTSTATUS = 0xC000001C;
+pub const STATUS_ILLEGAL_INSTRUCTION: NTSTATUS = 0xC000001D;
+pub const STATUS_INVALID_LOCK_SEQUENCE: NTSTATUS = 0xC000001E;
+pub const STATUS_INVALID_VIEW_SIZE: NTSTATUS = 0xC000001F;
+pub const STATUS_INVALID_FILE_FOR_SECTION: NTSTATUS = 0xC0000020;
+pub const STATUS_ALREADY_COMMITTED: NTSTATUS = 0xC0000021;
+pub const STATUS_ACCESS_DENIED: NTSTATUS = 0xC0000022;
+pub const STATUS_BUFFER_TOO_SMALL: NTSTATUS = 0xC0000023;
+pub const STATUS_OBJECT_TYPE_MISMATCH: NTSTATUS = 0xC0000024;
+pub const STATUS_NONCONTINUABLE_EXCEPTION: NTSTATUS = 0xC0000025;
+pub const STATUS_INVALID_DISPOSITION: NTSTATUS = 0xC0000026;
+pub const STATUS_UNWIND: NTSTATUS = 0xC0000027;
+pub const STATUS_BAD_STACK: NTSTATUS = 0xC0000028;
+pub const STATUS_INVALID_UNWIND_TARGET: NTSTATUS = 0xC0000029;
+pub const STATUS_NOT_LOCKED: NTSTATUS = 0xC000002A;
+pub const STATUS_PARITY_ERROR: NTSTATUS = 0xC000002B;
+pub const STATUS_UNABLE_TO_DECOMMIT_VM: NTSTATUS = 0xC000002C;
+pub const STATUS_NOT_COMMITTED: NTSTATUS = 0xC000002D;
+pub const STATUS_INVALID_PORT_ATTRIBUTES: NTSTATUS = 0xC000002E;
+pub const STATUS_PORT_MESSAGE_TOO_LONG: NTSTATUS = 0xC000002F;
+pub const STATUS_INVALID_PARAMETER_MIX: NTSTATUS = 0xC0000030;
+pub const STATUS_INVALID_QUOTA_LOWER: NTSTATUS = 0xC0000031;
+pub const STATUS_DISK_CORRUPT_ERROR: NTSTATUS = 0xC0000032;
+pub const STATUS_OBJECT_NAME_INVALID: NTSTATUS = 0xC0000033;
+pub const STATUS_OBJECT_NAME_NOT_FOUND: NTSTATUS = 0xC0000034;
+pub const STATUS_OBJECT_NAME_COLLISION: NTSTATUS = 0xC0000035;
+pub const STATUS_PORT_DO_NOT_DISTURB: NTSTATUS = 0xC0000036;
+pub const STATUS_PORT_DISCONNECTED: NTSTATUS = 0xC0000037;
+pub const STATUS_DEVICE_ALREADY_ATTACHED: NTSTATUS = 0xC0000038;
+pub const STATUS_OBJECT_PATH_INVALID: NTSTATUS = 0xC0000039;
+pub const STATUS_OBJECT_PATH_NOT_FOUND: NTSTATUS = 0xC000003A;
+pub const STATUS_OBJECT_PATH_SYNTAX_BAD: NTSTATUS = 0xC000003B;
+pub const STATUS_DATA_OVERRUN: NTSTATUS = 0xC000003C;
+pub const STATUS_DATA_LATE_ERROR: NTSTATUS = 0xC000003D;
+pub const STATUS_DATA_ERROR: NTSTATUS = 0xC000003E;
+pub const STATUS_CRC_ERROR: NTSTATUS = 0xC000003F;
+pub const STATUS_SECTION_TOO_BIG: NTSTATUS = 0xC0000040;
+pub const STATUS_PORT_CONNECTION_REFUSED: NTSTATUS = 0xC0000041;
+pub const STATUS_INVALID_PORT_HANDLE: NTSTATUS = 0xC0000042;
+pub const STATUS_SHARING_VIOLATION: NTSTATUS = 0xC0000043;
+pub const STATUS_QUOTA_EXCEEDED: NTSTATUS = 0xC0000044;
+pub const STATUS_INVALID_PAGE_PROTECTION: NTSTATUS = 0xC0000045;
+pub const STATUS_MUTANT_NOT_OWNED: NTSTATUS = 0xC0000046;
+pub const STATUS_SEMAPHORE_LIMIT_EXCEEDED: NTSTATUS = 0xC0000047;
+pub const STATUS_PORT_ALREADY_SET: NTSTATUS = 0xC0000048;
+pub const STATUS_SECTION_NOT_IMAGE: NTSTATUS = 0xC0000049;
+pub const STATUS_SUSPEND_COUNT_EXCEEDED: NTSTATUS = 0xC000004A;
+pub const STATUS_THREAD_IS_TERMINATING: NTSTATUS = 0xC000004B;
+pub const STATUS_BAD_WORKING_SET_LIMIT: NTSTATUS = 0xC000004C;
+pub const STATUS_INCOMPATIBLE_FILE_MAP: NTSTATUS = 0xC000004D;
+pub const STATUS_SECTION_PROTECTION: NTSTATUS = 0xC000004E;
+pub const STATUS_EAS_NOT_SUPPORTED: NTSTATUS = 0xC000004F;
+pub const STATUS_EA_TOO_LARGE: NTSTATUS = 0xC0000050;
+pub const STATUS_NONEXISTENT_EA_ENTRY: NTSTATUS = 0xC0000051;
+pub const STATUS_NO_EAS_ON_FILE: NTSTATUS = 0xC0000052;
+pub const STATUS_EA_CORRUPT_ERROR: NTSTATUS = 0xC0000053;
+pub const STATUS_FILE_LOCK_CONFLICT: NTSTATUS = 0xC0000054;
+pub const STATUS_LOCK_NOT_GRANTED: NTSTATUS = 0xC0000055;
+pub const STATUS_DELETE_PENDING: NTSTATUS = 0xC0000056;
+pub const STATUS_CTL_FILE_NOT_SUPPORTED: NTSTATUS = 0xC0000057;
+pub const STATUS_UNKNOWN_REVISION: NTSTATUS = 0xC0000058;
+pub const STATUS_REVISION_MISMATCH: NTSTATUS = 0xC0000059;
+pub const STATUS_INVALID_OWNER: NTSTATUS = 0xC000005A;
+pub const STATUS_INVALID_PRIMARY_GROUP: NTSTATUS = 0xC000005B;
+pub const STATUS_NO_IMPERSONATION_TOKEN: NTSTATUS = 0xC000005C;
+pub const STATUS_CANT_DISABLE_MANDATORY: NTSTATUS = 0xC000005D;
+pub const STATUS_NO_LOGON_SERVERS: NTSTATUS = 0xC000005E;
+pub const STATUS_NO_SUCH_LOGON_SESSION: NTSTATUS = 0xC000005F;
+pub const STATUS_NO_SUCH_PRIVILEGE: NTSTATUS = 0xC0000060;
+pub const STATUS_PRIVILEGE_NOT_HELD: NTSTATUS = 0xC0000061;
+pub const STATUS_INVALID_ACCOUNT_NAME: NTSTATUS = 0xC0000062;
+pub const STATUS_USER_EXISTS: NTSTATUS = 0xC0000063;
+pub const STATUS_NO_SUCH_USER: NTSTATUS = 0xC0000064;
+pub const STATUS_GROUP_EXISTS: NTSTATUS = 0xC0000065;
+pub const STATUS_NO_SUCH_GROUP: NTSTATUS = 0xC0000066;
+pub const STATUS_MEMBER_IN_GROUP: NTSTATUS = 0xC0000067;
+pub const STATUS_MEMBER_NOT_IN_GROUP: NTSTATUS = 0xC0000068;
+pub const STATUS_LAST_ADMIN: NTSTATUS = 0xC0000069;
+pub const STATUS_WRONG_PASSWORD: NTSTATUS = 0xC000006A;
+pub const STATUS_ILL_FORMED_PASSWORD: NTSTATUS = 0xC000006B;
+pub const STATUS_PASSWORD_RESTRICTION: NTSTATUS = 0xC000006C;
+pub const STATUS_LOGON_FAILURE: NTSTATUS = 0xC000006D;
+pub const STATUS_ACCOUNT_RESTRICTION: NTSTATUS = 0xC000006E;
+pub const STATUS_INVALID_LOGON_HOURS: NTSTATUS = 0xC000006F;
+pub const STATUS_INVALID_WORKSTATION: NTSTATUS = 0xC0000070;
+pub const STATUS_PASSWORD_EXPIRED: NTSTATUS = 0xC0000071;
+pub const STATUS_ACCOUNT_DISABLED: NTSTATUS = 0xC0000072;
+pub const STATUS_NONE_MAPPED: NTSTATUS = 0xC0000073;
+pub const STATUS_TOO_MANY_LUIDS_REQUESTED: NTSTATUS = 0xC0000074;
+pub const STATUS_LUIDS_EXHAUSTED: NTSTATUS = 0xC0000075;
+pub const STATUS_INVALID_SUB_AUTHORITY: NTSTATUS = 0xC0000076;
+pub const STATUS_INVALID_ACL: NTSTATUS = 0xC0000077;
+pub const STATUS_INVALID_SID: NTSTATUS = 0xC0000078;
+pub const STATUS_INVALID_SECURITY_DESCR: NTSTATUS = 0xC0000079;
+pub const STATUS_PROCEDURE_NOT_FOUND: NTSTATUS = 0xC000007A;
+pub const STATUS_INVALID_IMAGE_FORMAT: NTSTATUS = 0xC000007B;
+pub const STATUS_NO_TOKEN: NTSTATUS = 0xC000007C;
+pub const STATUS_BAD_INHERITANCE_ACL: NTSTATUS = 0xC000007D;
+pub const STATUS_RANGE_NOT_LOCKED: NTSTATUS = 0xC000007E;
+pub const STATUS_DISK_FULL: NTSTATUS = 0xC000007F;
+pub const STATUS_SERVER_DISABLED: NTSTATUS = 0xC0000080;
+pub const STATUS_SERVER_NOT_DISABLED: NTSTATUS = 0xC0000081;
+pub const STATUS_TOO_MANY_GUIDS_REQUESTED: NTSTATUS = 0xC0000082;
+pub const STATUS_GUIDS_EXHAUSTED: NTSTATUS = 0xC0000083;
+pub const STATUS_INVALID_ID_AUTHORITY: NTSTATUS = 0xC0000084;
+pub const STATUS_AGENTS_EXHAUSTED: NTSTATUS = 0xC0000085;
+pub const STATUS_INVALID_VOLUME_LABEL: NTSTATUS = 0xC0000086;
+pub const STATUS_SECTION_NOT_EXTENDED: NTSTATUS = 0xC0000087;
+pub const STATUS_NOT_MAPPED_DATA: NTSTATUS = 0xC0000088;
+pub const STATUS_RESOURCE_DATA_NOT_FOUND: NTSTATUS = 0xC0000089;
+pub const STATUS_RESOURCE_TYPE_NOT_FOUND: NTSTATUS = 0xC000008A;
+pub const STATUS_RESOURCE_NAME_NOT_FOUND: NTSTATUS = 0xC000008B;
+pub const STATUS_ARRAY_BOUNDS_EXCEEDED: NTSTATUS = 0xC000008C;
+pub const STATUS_FLOAT_DENORMAL_OPERAND: NTSTATUS = 0xC000008D;
+pub const STATUS_FLOAT_DIVIDE_BY_ZERO: NTSTATUS = 0xC000008E;
+pub const STATUS_FLOAT_INEXACT_RESULT: NTSTATUS = 0xC000008F;
+pub const STATUS_FLOAT_INVALID_OPERATION: NTSTATUS = 0xC0000090;
+pub const STATUS_FLOAT_OVERFLOW: NTSTATUS = 0xC0000091;
+pub const STATUS_FLOAT_STACK_CHECK: NTSTATUS = 0xC0000092;
+pub const STATUS_FLOAT_UNDERFLOW: NTSTATUS = 0xC0000093;
+pub const STATUS_INTEGER_DIVIDE_BY_ZERO: NTSTATUS = 0xC0000094;
+pub const STATUS_INTEGER_OVERFLOW: NTSTATUS = 0xC0000095;
+pub const STATUS_PRIVILEGED_INSTRUCTION: NTSTATUS = 0xC0000096;
+pub const STATUS_TOO_MANY_PAGING_FILES: NTSTATUS = 0xC0000097;
+pub const STATUS_FILE_INVALID: NTSTATUS = 0xC0000098;
+pub const STATUS_ALLOTTED_SPACE_EXCEEDED: NTSTATUS = 0xC0000099;
+pub const STATUS_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC000009A;
+pub const STATUS_DFS_EXIT_PATH_FOUND: NTSTATUS = 0xC000009B;
+pub const STATUS_DEVICE_DATA_ERROR: NTSTATUS = 0xC000009C;
+pub const STATUS_DEVICE_NOT_CONNECTED: NTSTATUS = 0xC000009D;
+pub const STATUS_DEVICE_POWER_FAILURE: NTSTATUS = 0xC000009E;
+pub const STATUS_FREE_VM_NOT_AT_BASE: NTSTATUS = 0xC000009F;
+pub const STATUS_MEMORY_NOT_ALLOCATED: NTSTATUS = 0xC00000A0;
+pub const STATUS_WORKING_SET_QUOTA: NTSTATUS = 0xC00000A1;
+pub const STATUS_MEDIA_WRITE_PROTECTED: NTSTATUS = 0xC00000A2;
+pub const STATUS_DEVICE_NOT_READY: NTSTATUS = 0xC00000A3;
+pub const STATUS_INVALID_GROUP_ATTRIBUTES: NTSTATUS = 0xC00000A4;
+pub const STATUS_BAD_IMPERSONATION_LEVEL: NTSTATUS = 0xC00000A5;
+pub const STATUS_CANT_OPEN_ANONYMOUS: NTSTATUS = 0xC00000A6;
+pub const STATUS_BAD_VALIDATION_CLASS: NTSTATUS = 0xC00000A7;
+pub const STATUS_BAD_TOKEN_TYPE: NTSTATUS = 0xC00000A8;
+pub const STATUS_BAD_MASTER_BOOT_RECORD: NTSTATUS = 0xC00000A9;
+pub const STATUS_INSTRUCTION_MISALIGNMENT: NTSTATUS = 0xC00000AA;
+pub const STATUS_INSTANCE_NOT_AVAILABLE: NTSTATUS = 0xC00000AB;
+pub const STATUS_PIPE_NOT_AVAILABLE: NTSTATUS = 0xC00000AC;
+pub const STATUS_INVALID_PIPE_STATE: NTSTATUS = 0xC00000AD;
+pub const STATUS_PIPE_BUSY: NTSTATUS = 0xC00000AE;
+pub const STATUS_ILLEGAL_FUNCTION: NTSTATUS = 0xC00000AF;
+pub const STATUS_PIPE_DISCONNECTED: NTSTATUS = 0xC00000B0;
+pub const STATUS_PIPE_CLOSING: NTSTATUS = 0xC00000B1;
+pub const STATUS_PIPE_CONNECTED: NTSTATUS = 0xC00000B2;
+pub const STATUS_PIPE_LISTENING: NTSTATUS = 0xC00000B3;
+pub const STATUS_INVALID_READ_MODE: NTSTATUS = 0xC00000B4;
+pub const STATUS_IO_TIMEOUT: NTSTATUS = 0xC00000B5;
+pub const STATUS_FILE_FORCED_CLOSED: NTSTATUS = 0xC00000B6;
+pub const STATUS_PROFILING_NOT_STARTED: NTSTATUS = 0xC00000B7;
+pub const STATUS_PROFILING_NOT_STOPPED: NTSTATUS = 0xC00000B8;
+pub const STATUS_COULD_NOT_INTERPRET: NTSTATUS = 0xC00000B9;
+pub const STATUS_FILE_IS_A_DIRECTORY: NTSTATUS = 0xC00000BA;
+pub const STATUS_NOT_SUPPORTED: NTSTATUS = 0xC00000BB;
+pub const STATUS_REMOTE_NOT_LISTENING: NTSTATUS = 0xC00000BC;
+pub const STATUS_DUPLICATE_NAME: NTSTATUS = 0xC00000BD;
+pub const STATUS_BAD_NETWORK_PATH: NTSTATUS = 0xC00000BE;
+pub const STATUS_NETWORK_BUSY: NTSTATUS = 0xC00000BF;
+pub const STATUS_DEVICE_DOES_NOT_EXIST: NTSTATUS = 0xC00000C0;
+pub const STATUS_TOO_MANY_COMMANDS: NTSTATUS = 0xC00000C1;
+pub const STATUS_ADAPTER_HARDWARE_ERROR: NTSTATUS = 0xC00000C2;
+pub const STATUS_INVALID_NETWORK_RESPONSE: NTSTATUS = 0xC00000C3;
+pub const STATUS_UNEXPECTED_NETWORK_ERROR: NTSTATUS = 0xC00000C4;
+pub const STATUS_BAD_REMOTE_ADAPTER: NTSTATUS = 0xC00000C5;
+pub const STATUS_PRINT_QUEUE_FULL: NTSTATUS = 0xC00000C6;
+pub const STATUS_NO_SPOOL_SPACE: NTSTATUS = 0xC00000C7;
+pub const STATUS_PRINT_CANCELLED: NTSTATUS = 0xC00000C8;
+pub const STATUS_NETWORK_NAME_DELETED: NTSTATUS = 0xC00000C9;
+pub const STATUS_NETWORK_ACCESS_DENIED: NTSTATUS = 0xC00000CA;
+pub const STATUS_BAD_DEVICE_TYPE: NTSTATUS = 0xC00000CB;
+pub const STATUS_BAD_NETWORK_NAME: NTSTATUS = 0xC00000CC;
+pub const STATUS_TOO_MANY_NAMES: NTSTATUS = 0xC00000CD;
+pub const STATUS_TOO_MANY_SESSIONS: NTSTATUS = 0xC00000CE;
+pub const STATUS_SHARING_PAUSED: NTSTATUS = 0xC00000CF;
+pub const STATUS_REQUEST_NOT_ACCEPTED: NTSTATUS = 0xC00000D0;
+pub const STATUS_REDIRECTOR_PAUSED: NTSTATUS = 0xC00000D1;
+pub const STATUS_NET_WRITE_FAULT: NTSTATUS = 0xC00000D2;
+pub const STATUS_PROFILING_AT_LIMIT: NTSTATUS = 0xC00000D3;
+pub const STATUS_NOT_SAME_DEVICE: NTSTATUS = 0xC00000D4;
+pub const STATUS_FILE_RENAMED: NTSTATUS = 0xC00000D5;
+pub const STATUS_VIRTUAL_CIRCUIT_CLOSED: NTSTATUS = 0xC00000D6;
+pub const STATUS_NO_SECURITY_ON_OBJECT: NTSTATUS = 0xC00000D7;
+pub const STATUS_CANT_WAIT: NTSTATUS = 0xC00000D8;
+pub const STATUS_PIPE_EMPTY: NTSTATUS = 0xC00000D9;
+pub const STATUS_CANT_ACCESS_DOMAIN_INFO: NTSTATUS = 0xC00000DA;
+pub const STATUS_CANT_TERMINATE_SELF: NTSTATUS = 0xC00000DB;
+pub const STATUS_INVALID_SERVER_STATE: NTSTATUS = 0xC00000DC;
+pub const STATUS_INVALID_DOMAIN_STATE: NTSTATUS = 0xC00000DD;
+pub const STATUS_INVALID_DOMAIN_ROLE: NTSTATUS = 0xC00000DE;
+pub const STATUS_NO_SUCH_DOMAIN: NTSTATUS = 0xC00000DF;
+pub const STATUS_DOMAIN_EXISTS: NTSTATUS = 0xC00000E0;
+pub const STATUS_DOMAIN_LIMIT_EXCEEDED: NTSTATUS = 0xC00000E1;
+pub const STATUS_OPLOCK_NOT_GRANTED: NTSTATUS = 0xC00000E2;
+pub const STATUS_INVALID_OPLOCK_PROTOCOL: NTSTATUS = 0xC00000E3;
+pub const STATUS_INTERNAL_DB_CORRUPTION: NTSTATUS = 0xC00000E4;
+pub const STATUS_INTERNAL_ERROR: NTSTATUS = 0xC00000E5;
+pub const STATUS_GENERIC_NOT_MAPPED: NTSTATUS = 0xC00000E6;
+pub const STATUS_BAD_DESCRIPTOR_FORMAT: NTSTATUS = 0xC00000E7;
+pub const STATUS_INVALID_USER_BUFFER: NTSTATUS = 0xC00000E8;
+pub const STATUS_UNEXPECTED_IO_ERROR: NTSTATUS = 0xC00000E9;
+pub const STATUS_UNEXPECTED_MM_CREATE_ERR: NTSTATUS = 0xC00000EA;
+pub const STATUS_UNEXPECTED_MM_MAP_ERROR: NTSTATUS = 0xC00000EB;
+pub const STATUS_UNEXPECTED_MM_EXTEND_ERR: NTSTATUS = 0xC00000EC;
+pub const STATUS_NOT_LOGON_PROCESS: NTSTATUS = 0xC00000ED;
+pub const STATUS_LOGON_SESSION_EXISTS: NTSTATUS = 0xC00000EE;
+pub const STATUS_INVALID_PARAMETER_1: NTSTATUS = 0xC00000EF;
+pub const STATUS_INVALID_PARAMETER_2: NTSTATUS = 0xC00000F0;
+pub const STATUS_INVALID_PARAMETER_3: NTSTATUS = 0xC00000F1;
+pub const STATUS_INVALID_PARAMETER_4: NTSTATUS = 0xC00000F2;
+pub const STATUS_INVALID_PARAMETER_5: NTSTATUS = 0xC00000F3;
+pub const STATUS_INVALID_PARAMETER_6: NTSTATUS = 0xC00000F4;
+pub const STATUS_INVALID_PARAMETER_7: NTSTATUS = 0xC00000F5;
+pub const STATUS_INVALID_PARAMETER_8: NTSTATUS = 0xC00000F6;
+pub const STATUS_INVALID_PARAMETER_9: NTSTATUS = 0xC00000F7;
+pub const STATUS_INVALID_PARAMETER_10: NTSTATUS = 0xC00000F8;
+pub const STATUS_INVALID_PARAMETER_11: NTSTATUS = 0xC00000F9;
+pub const STATUS_INVALID_PARAMETER_12: NTSTATUS = 0xC00000FA;
+pub const STATUS_REDIRECTOR_NOT_STARTED: NTSTATUS = 0xC00000FB;
+pub const STATUS_REDIRECTOR_STARTED: NTSTATUS = 0xC00000FC;
+pub const STATUS_STACK_OVERFLOW: NTSTATUS = 0xC00000FD;
+pub const STATUS_NO_SUCH_PACKAGE: NTSTATUS = 0xC00000FE;
+pub const STATUS_BAD_FUNCTION_TABLE: NTSTATUS = 0xC00000FF;
+pub const STATUS_VARIABLE_NOT_FOUND: NTSTATUS = 0xC0000100;
+pub const STATUS_DIRECTORY_NOT_EMPTY: NTSTATUS = 0xC0000101;
+pub const STATUS_FILE_CORRUPT_ERROR: NTSTATUS = 0xC0000102;
+pub const STATUS_NOT_A_DIRECTORY: NTSTATUS = 0xC0000103;
+pub const STATUS_BAD_LOGON_SESSION_STATE: NTSTATUS = 0xC0000104;
+pub const STATUS_LOGON_SESSION_COLLISION: NTSTATUS = 0xC0000105;
+pub const STATUS_NAME_TOO_LONG: NTSTATUS = 0xC0000106;
+pub const STATUS_FILES_OPEN: NTSTATUS = 0xC0000107;
+pub const STATUS_CONNECTION_IN_USE: NTSTATUS = 0xC0000108;
+pub const STATUS_MESSAGE_NOT_FOUND: NTSTATUS = 0xC0000109;
+pub const STATUS_PROCESS_IS_TERMINATING: NTSTATUS = 0xC000010A;
+pub const STATUS_INVALID_LOGON_TYPE: NTSTATUS = 0xC000010B;
+pub const STATUS_NO_GUID_TRANSLATION: NTSTATUS = 0xC000010C;
+pub const STATUS_CANNOT_IMPERSONATE: NTSTATUS = 0xC000010D;
+pub const STATUS_IMAGE_ALREADY_LOADED: NTSTATUS = 0xC000010E;
+pub const STATUS_ABIOS_NOT_PRESENT: NTSTATUS = 0xC000010F;
+pub const STATUS_ABIOS_LID_NOT_EXIST: NTSTATUS = 0xC0000110;
+pub const STATUS_ABIOS_LID_ALREADY_OWNED: NTSTATUS = 0xC0000111;
+pub const STATUS_ABIOS_NOT_LID_OWNER: NTSTATUS = 0xC0000112;
+pub const STATUS_ABIOS_INVALID_COMMAND: NTSTATUS = 0xC0000113;
+pub const STATUS_ABIOS_INVALID_LID: NTSTATUS = 0xC0000114;
+pub const STATUS_ABIOS_SELECTOR_NOT_AVAILABLE: NTSTATUS = 0xC0000115;
+pub const STATUS_ABIOS_INVALID_SELECTOR: NTSTATUS = 0xC0000116;
+pub const STATUS_NO_LDT: NTSTATUS = 0xC0000117;
+pub const STATUS_INVALID_LDT_SIZE: NTSTATUS = 0xC0000118;
+pub const STATUS_INVALID_LDT_OFFSET: NTSTATUS = 0xC0000119;
+pub const STATUS_INVALID_LDT_DESCRIPTOR: NTSTATUS = 0xC000011A;
+pub const STATUS_INVALID_IMAGE_NE_FORMAT: NTSTATUS = 0xC000011B;
+pub const STATUS_RXACT_INVALID_STATE: NTSTATUS = 0xC000011C;
+pub const STATUS_RXACT_COMMIT_FAILURE: NTSTATUS = 0xC000011D;
+pub const STATUS_MAPPED_FILE_SIZE_ZERO: NTSTATUS = 0xC000011E;
+pub const STATUS_TOO_MANY_OPENED_FILES: NTSTATUS = 0xC000011F;
+pub const STATUS_CANCELLED: NTSTATUS = 0xC0000120;
+pub const STATUS_CANNOT_DELETE: NTSTATUS = 0xC0000121;
+pub const STATUS_INVALID_COMPUTER_NAME: NTSTATUS = 0xC0000122;
+pub const STATUS_FILE_DELETED: NTSTATUS = 0xC0000123;
+pub const STATUS_SPECIAL_ACCOUNT: NTSTATUS = 0xC0000124;
+pub const STATUS_SPECIAL_GROUP: NTSTATUS = 0xC0000125;
+pub const STATUS_SPECIAL_USER: NTSTATUS = 0xC0000126;
+pub const STATUS_MEMBERS_PRIMARY_GROUP: NTSTATUS = 0xC0000127;
+pub const STATUS_FILE_CLOSED: NTSTATUS = 0xC0000128;
+pub const STATUS_TOO_MANY_THREADS: NTSTATUS = 0xC0000129;
+pub const STATUS_THREAD_NOT_IN_PROCESS: NTSTATUS = 0xC000012A;
+pub const STATUS_TOKEN_ALREADY_IN_USE: NTSTATUS = 0xC000012B;
+pub const STATUS_PAGEFILE_QUOTA_EXCEEDED: NTSTATUS = 0xC000012C;
+pub const STATUS_COMMITMENT_LIMIT: NTSTATUS = 0xC000012D;
+pub const STATUS_INVALID_IMAGE_LE_FORMAT: NTSTATUS = 0xC000012E;
+pub const STATUS_INVALID_IMAGE_NOT_MZ: NTSTATUS = 0xC000012F;
+pub const STATUS_INVALID_IMAGE_PROTECT: NTSTATUS = 0xC0000130;
+pub const STATUS_INVALID_IMAGE_WIN_16: NTSTATUS = 0xC0000131;
+pub const STATUS_LOGON_SERVER_CONFLICT: NTSTATUS = 0xC0000132;
+pub const STATUS_TIME_DIFFERENCE_AT_DC: NTSTATUS = 0xC0000133;
+pub const STATUS_SYNCHRONIZATION_REQUIRED: NTSTATUS = 0xC0000134;
+pub const STATUS_DLL_NOT_FOUND: NTSTATUS = 0xC0000135;
+pub const STATUS_OPEN_FAILED: NTSTATUS = 0xC0000136;
+pub const STATUS_IO_PRIVILEGE_FAILED: NTSTATUS = 0xC0000137;
+pub const STATUS_ORDINAL_NOT_FOUND: NTSTATUS = 0xC0000138;
+pub const STATUS_ENTRYPOINT_NOT_FOUND: NTSTATUS = 0xC0000139;
+pub const STATUS_CONTROL_C_EXIT: NTSTATUS = 0xC000013A;
+pub const STATUS_LOCAL_DISCONNECT: NTSTATUS = 0xC000013B;
+pub const STATUS_REMOTE_DISCONNECT: NTSTATUS = 0xC000013C;
+pub const STATUS_REMOTE_RESOURCES: NTSTATUS = 0xC000013D;
+pub const STATUS_LINK_FAILED: NTSTATUS = 0xC000013E;
+pub const STATUS_LINK_TIMEOUT: NTSTATUS = 0xC000013F;
+pub const STATUS_INVALID_CONNECTION: NTSTATUS = 0xC0000140;
+pub const STATUS_INVALID_ADDRESS: NTSTATUS = 0xC0000141;
+pub const STATUS_DLL_INIT_FAILED: NTSTATUS = 0xC0000142;
+pub const STATUS_MISSING_SYSTEMFILE: NTSTATUS = 0xC0000143;
+pub const STATUS_UNHANDLED_EXCEPTION: NTSTATUS = 0xC0000144;
+pub const STATUS_APP_INIT_FAILURE: NTSTATUS = 0xC0000145;
+pub const STATUS_PAGEFILE_CREATE_FAILED: NTSTATUS = 0xC0000146;
+pub const STATUS_NO_PAGEFILE: NTSTATUS = 0xC0000147;
+pub const STATUS_INVALID_LEVEL: NTSTATUS = 0xC0000148;
+pub const STATUS_WRONG_PASSWORD_CORE: NTSTATUS = 0xC0000149;
+pub const STATUS_ILLEGAL_FLOAT_CONTEXT: NTSTATUS = 0xC000014A;
+pub const STATUS_PIPE_BROKEN: NTSTATUS = 0xC000014B;
+pub const STATUS_REGISTRY_CORRUPT: NTSTATUS = 0xC000014C;
+pub const STATUS_REGISTRY_IO_FAILED: NTSTATUS = 0xC000014D;
+pub const STATUS_NO_EVENT_PAIR: NTSTATUS = 0xC000014E;
+pub const STATUS_UNRECOGNIZED_VOLUME: NTSTATUS = 0xC000014F;
+pub const STATUS_SERIAL_NO_DEVICE_INITED: NTSTATUS = 0xC0000150;
+pub const STATUS_NO_SUCH_ALIAS: NTSTATUS = 0xC0000151;
+pub const STATUS_MEMBER_NOT_IN_ALIAS: NTSTATUS = 0xC0000152;
+pub const STATUS_MEMBER_IN_ALIAS: NTSTATUS = 0xC0000153;
+pub const STATUS_ALIAS_EXISTS: NTSTATUS = 0xC0000154;
+pub const STATUS_LOGON_NOT_GRANTED: NTSTATUS = 0xC0000155;
+pub const STATUS_TOO_MANY_SECRETS: NTSTATUS = 0xC0000156;
+pub const STATUS_SECRET_TOO_LONG: NTSTATUS = 0xC0000157;
+pub const STATUS_INTERNAL_DB_ERROR: NTSTATUS = 0xC0000158;
+pub const STATUS_FULLSCREEN_MODE: NTSTATUS = 0xC0000159;
+pub const STATUS_TOO_MANY_CONTEXT_IDS: NTSTATUS = 0xC000015A;
+pub const STATUS_LOGON_TYPE_NOT_GRANTED: NTSTATUS = 0xC000015B;
+pub const STATUS_NOT_REGISTRY_FILE: NTSTATUS = 0xC000015C;
+pub const STATUS_NT_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = 0xC000015D;
+pub const STATUS_DOMAIN_CTRLR_CONFIG_ERROR: NTSTATUS = 0xC000015E;
+pub const STATUS_FT_MISSING_MEMBER: NTSTATUS = 0xC000015F;
+pub const STATUS_ILL_FORMED_SERVICE_ENTRY: NTSTATUS = 0xC0000160;
+pub const STATUS_ILLEGAL_CHARACTER: NTSTATUS = 0xC0000161;
+pub const STATUS_UNMAPPABLE_CHARACTER: NTSTATUS = 0xC0000162;
+pub const STATUS_UNDEFINED_CHARACTER: NTSTATUS = 0xC0000163;
+pub const STATUS_FLOPPY_VOLUME: NTSTATUS = 0xC0000164;
+pub const STATUS_FLOPPY_ID_MARK_NOT_FOUND: NTSTATUS = 0xC0000165;
+pub const STATUS_FLOPPY_WRONG_CYLINDER: NTSTATUS = 0xC0000166;
+pub const STATUS_FLOPPY_UNKNOWN_ERROR: NTSTATUS = 0xC0000167;
+pub const STATUS_FLOPPY_BAD_REGISTERS: NTSTATUS = 0xC0000168;
+pub const STATUS_DISK_RECALIBRATE_FAILED: NTSTATUS = 0xC0000169;
+pub const STATUS_DISK_OPERATION_FAILED: NTSTATUS = 0xC000016A;
+pub const STATUS_DISK_RESET_FAILED: NTSTATUS = 0xC000016B;
+pub const STATUS_SHARED_IRQ_BUSY: NTSTATUS = 0xC000016C;
+pub const STATUS_FT_ORPHANING: NTSTATUS = 0xC000016D;
+pub const STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT: NTSTATUS = 0xC000016E;
+pub const STATUS_PARTITION_FAILURE: NTSTATUS = 0xC0000172;
+pub const STATUS_INVALID_BLOCK_LENGTH: NTSTATUS = 0xC0000173;
+pub const STATUS_DEVICE_NOT_PARTITIONED: NTSTATUS = 0xC0000174;
+pub const STATUS_UNABLE_TO_LOCK_MEDIA: NTSTATUS = 0xC0000175;
+pub const STATUS_UNABLE_TO_UNLOAD_MEDIA: NTSTATUS = 0xC0000176;
+pub const STATUS_EOM_OVERFLOW: NTSTATUS = 0xC0000177;
+pub const STATUS_NO_MEDIA: NTSTATUS = 0xC0000178;
+pub const STATUS_NO_SUCH_MEMBER: NTSTATUS = 0xC000017A;
+pub const STATUS_INVALID_MEMBER: NTSTATUS = 0xC000017B;
+pub const STATUS_KEY_DELETED: NTSTATUS = 0xC000017C;
+pub const STATUS_NO_LOG_SPACE: NTSTATUS = 0xC000017D;
+pub const STATUS_TOO_MANY_SIDS: NTSTATUS = 0xC000017E;
+pub const STATUS_LM_CROSS_ENCRYPTION_REQUIRED: NTSTATUS = 0xC000017F;
+pub const STATUS_KEY_HAS_CHILDREN: NTSTATUS = 0xC0000180;
+pub const STATUS_CHILD_MUST_BE_VOLATILE: NTSTATUS = 0xC0000181;
+pub const STATUS_DEVICE_CONFIGURATION_ERROR: NTSTATUS = 0xC0000182;
+pub const STATUS_DRIVER_INTERNAL_ERROR: NTSTATUS = 0xC0000183;
+pub const STATUS_INVALID_DEVICE_STATE: NTSTATUS = 0xC0000184;
+pub const STATUS_IO_DEVICE_ERROR: NTSTATUS = 0xC0000185;
+pub const STATUS_DEVICE_PROTOCOL_ERROR: NTSTATUS = 0xC0000186;
+pub const STATUS_BACKUP_CONTROLLER: NTSTATUS = 0xC0000187;
+pub const STATUS_LOG_FILE_FULL: NTSTATUS = 0xC0000188;
+pub const STATUS_TOO_LATE: NTSTATUS = 0xC0000189;
+pub const STATUS_NO_TRUST_LSA_SECRET: NTSTATUS = 0xC000018A;
+pub const STATUS_NO_TRUST_SAM_ACCOUNT: NTSTATUS = 0xC000018B;
+pub const STATUS_TRUSTED_DOMAIN_FAILURE: NTSTATUS = 0xC000018C;
+pub const STATUS_TRUSTED_RELATIONSHIP_FAILURE: NTSTATUS = 0xC000018D;
+pub const STATUS_EVENTLOG_FILE_CORRUPT: NTSTATUS = 0xC000018E;
+pub const STATUS_EVENTLOG_CANT_START: NTSTATUS = 0xC000018F;
+pub const STATUS_TRUST_FAILURE: NTSTATUS = 0xC0000190;
+pub const STATUS_MUTANT_LIMIT_EXCEEDED: NTSTATUS = 0xC0000191;
+pub const STATUS_NETLOGON_NOT_STARTED: NTSTATUS = 0xC0000192;
+pub const STATUS_ACCOUNT_EXPIRED: NTSTATUS = 0xC0000193;
+pub const STATUS_POSSIBLE_DEADLOCK: NTSTATUS = 0xC0000194;
+pub const STATUS_NETWORK_CREDENTIAL_CONFLICT: NTSTATUS = 0xC0000195;
+pub const STATUS_REMOTE_SESSION_LIMIT: NTSTATUS = 0xC0000196;
+pub const STATUS_EVENTLOG_FILE_CHANGED: NTSTATUS = 0xC0000197;
+pub const STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: NTSTATUS = 0xC0000198;
+pub const STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT: NTSTATUS = 0xC0000199;
+pub const STATUS_NOLOGON_SERVER_TRUST_ACCOUNT: NTSTATUS = 0xC000019A;
+pub const STATUS_DOMAIN_TRUST_INCONSISTENT: NTSTATUS = 0xC000019B;
+pub const STATUS_FS_DRIVER_REQUIRED: NTSTATUS = 0xC000019C;
+pub const STATUS_IMAGE_ALREADY_LOADED_AS_DLL: NTSTATUS = 0xC000019D;
+pub const STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: NTSTATUS
+ = 0xC000019E;
+pub const STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: NTSTATUS = 0xC000019F;
+pub const STATUS_SECURITY_STREAM_IS_INCONSISTENT: NTSTATUS = 0xC00001A0;
+pub const STATUS_INVALID_LOCK_RANGE: NTSTATUS = 0xC00001A1;
+pub const STATUS_INVALID_ACE_CONDITION: NTSTATUS = 0xC00001A2;
+pub const STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT: NTSTATUS = 0xC00001A3;
+pub const STATUS_NOTIFICATION_GUID_ALREADY_DEFINED: NTSTATUS = 0xC00001A4;
+pub const STATUS_INVALID_EXCEPTION_HANDLER: NTSTATUS = 0xC00001A5;
+pub const STATUS_DUPLICATE_PRIVILEGES: NTSTATUS = 0xC00001A6;
+pub const STATUS_NOT_ALLOWED_ON_SYSTEM_FILE: NTSTATUS = 0xC00001A7;
+pub const STATUS_REPAIR_NEEDED: NTSTATUS = 0xC00001A8;
+pub const STATUS_QUOTA_NOT_ENABLED: NTSTATUS = 0xC00001A9;
+pub const STATUS_NO_APPLICATION_PACKAGE: NTSTATUS = 0xC00001AA;
+pub const STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS: NTSTATUS = 0xC00001AB;
+pub const STATUS_NOT_SAME_OBJECT: NTSTATUS = 0xC00001AC;
+pub const STATUS_FATAL_MEMORY_EXHAUSTION: NTSTATUS = 0xC00001AD;
+pub const STATUS_ERROR_PROCESS_NOT_IN_JOB: NTSTATUS = 0xC00001AE;
+pub const STATUS_CPU_SET_INVALID: NTSTATUS = 0xC00001AF;
+pub const STATUS_NETWORK_OPEN_RESTRICTION: NTSTATUS = 0xC0000201;
+pub const STATUS_NO_USER_SESSION_KEY: NTSTATUS = 0xC0000202;
+pub const STATUS_USER_SESSION_DELETED: NTSTATUS = 0xC0000203;
+pub const STATUS_RESOURCE_LANG_NOT_FOUND: NTSTATUS = 0xC0000204;
+pub const STATUS_INSUFF_SERVER_RESOURCES: NTSTATUS = 0xC0000205;
+pub const STATUS_INVALID_BUFFER_SIZE: NTSTATUS = 0xC0000206;
+pub const STATUS_INVALID_ADDRESS_COMPONENT: NTSTATUS = 0xC0000207;
+pub const STATUS_INVALID_ADDRESS_WILDCARD: NTSTATUS = 0xC0000208;
+pub const STATUS_TOO_MANY_ADDRESSES: NTSTATUS = 0xC0000209;
+pub const STATUS_ADDRESS_ALREADY_EXISTS: NTSTATUS = 0xC000020A;
+pub const STATUS_ADDRESS_CLOSED: NTSTATUS = 0xC000020B;
+pub const STATUS_CONNECTION_DISCONNECTED: NTSTATUS = 0xC000020C;
+pub const STATUS_CONNECTION_RESET: NTSTATUS = 0xC000020D;
+pub const STATUS_TOO_MANY_NODES: NTSTATUS = 0xC000020E;
+pub const STATUS_TRANSACTION_ABORTED: NTSTATUS = 0xC000020F;
+pub const STATUS_TRANSACTION_TIMED_OUT: NTSTATUS = 0xC0000210;
+pub const STATUS_TRANSACTION_NO_RELEASE: NTSTATUS = 0xC0000211;
+pub const STATUS_TRANSACTION_NO_MATCH: NTSTATUS = 0xC0000212;
+pub const STATUS_TRANSACTION_RESPONDED: NTSTATUS = 0xC0000213;
+pub const STATUS_TRANSACTION_INVALID_ID: NTSTATUS = 0xC0000214;
+pub const STATUS_TRANSACTION_INVALID_TYPE: NTSTATUS = 0xC0000215;
+pub const STATUS_NOT_SERVER_SESSION: NTSTATUS = 0xC0000216;
+pub const STATUS_NOT_CLIENT_SESSION: NTSTATUS = 0xC0000217;
+pub const STATUS_CANNOT_LOAD_REGISTRY_FILE: NTSTATUS = 0xC0000218;
+pub const STATUS_DEBUG_ATTACH_FAILED: NTSTATUS = 0xC0000219;
+pub const STATUS_SYSTEM_PROCESS_TERMINATED: NTSTATUS = 0xC000021A;
+pub const STATUS_DATA_NOT_ACCEPTED: NTSTATUS = 0xC000021B;
+pub const STATUS_NO_BROWSER_SERVERS_FOUND: NTSTATUS = 0xC000021C;
+pub const STATUS_VDM_HARD_ERROR: NTSTATUS = 0xC000021D;
+pub const STATUS_DRIVER_CANCEL_TIMEOUT: NTSTATUS = 0xC000021E;
+pub const STATUS_REPLY_MESSAGE_MISMATCH: NTSTATUS = 0xC000021F;
+pub const STATUS_MAPPED_ALIGNMENT: NTSTATUS = 0xC0000220;
+pub const STATUS_IMAGE_CHECKSUM_MISMATCH: NTSTATUS = 0xC0000221;
+pub const STATUS_LOST_WRITEBEHIND_DATA: NTSTATUS = 0xC0000222;
+pub const STATUS_CLIENT_SERVER_PARAMETERS_INVALID: NTSTATUS = 0xC0000223;
+pub const STATUS_PASSWORD_MUST_CHANGE: NTSTATUS = 0xC0000224;
+pub const STATUS_NOT_FOUND: NTSTATUS = 0xC0000225;
+pub const STATUS_NOT_TINY_STREAM: NTSTATUS = 0xC0000226;
+pub const STATUS_RECOVERY_FAILURE: NTSTATUS = 0xC0000227;
+pub const STATUS_STACK_OVERFLOW_READ: NTSTATUS = 0xC0000228;
+pub const STATUS_FAIL_CHECK: NTSTATUS = 0xC0000229;
+pub const STATUS_DUPLICATE_OBJECTID: NTSTATUS = 0xC000022A;
+pub const STATUS_OBJECTID_EXISTS: NTSTATUS = 0xC000022B;
+pub const STATUS_CONVERT_TO_LARGE: NTSTATUS = 0xC000022C;
+pub const STATUS_RETRY: NTSTATUS = 0xC000022D;
+pub const STATUS_FOUND_OUT_OF_SCOPE: NTSTATUS = 0xC000022E;
+pub const STATUS_ALLOCATE_BUCKET: NTSTATUS = 0xC000022F;
+pub const STATUS_PROPSET_NOT_FOUND: NTSTATUS = 0xC0000230;
+pub const STATUS_MARSHALL_OVERFLOW: NTSTATUS = 0xC0000231;
+pub const STATUS_INVALID_VARIANT: NTSTATUS = 0xC0000232;
+pub const STATUS_DOMAIN_CONTROLLER_NOT_FOUND: NTSTATUS = 0xC0000233;
+pub const STATUS_ACCOUNT_LOCKED_OUT: NTSTATUS = 0xC0000234;
+pub const STATUS_HANDLE_NOT_CLOSABLE: NTSTATUS = 0xC0000235;
+pub const STATUS_CONNECTION_REFUSED: NTSTATUS = 0xC0000236;
+pub const STATUS_GRACEFUL_DISCONNECT: NTSTATUS = 0xC0000237;
+pub const STATUS_ADDRESS_ALREADY_ASSOCIATED: NTSTATUS = 0xC0000238;
+pub const STATUS_ADDRESS_NOT_ASSOCIATED: NTSTATUS = 0xC0000239;
+pub const STATUS_CONNECTION_INVALID: NTSTATUS = 0xC000023A;
+pub const STATUS_CONNECTION_ACTIVE: NTSTATUS = 0xC000023B;
+pub const STATUS_NETWORK_UNREACHABLE: NTSTATUS = 0xC000023C;
+pub const STATUS_HOST_UNREACHABLE: NTSTATUS = 0xC000023D;
+pub const STATUS_PROTOCOL_UNREACHABLE: NTSTATUS = 0xC000023E;
+pub const STATUS_PORT_UNREACHABLE: NTSTATUS = 0xC000023F;
+pub const STATUS_REQUEST_ABORTED: NTSTATUS = 0xC0000240;
+pub const STATUS_CONNECTION_ABORTED: NTSTATUS = 0xC0000241;
+pub const STATUS_BAD_COMPRESSION_BUFFER: NTSTATUS = 0xC0000242;
+pub const STATUS_USER_MAPPED_FILE: NTSTATUS = 0xC0000243;
+pub const STATUS_AUDIT_FAILED: NTSTATUS = 0xC0000244;
+pub const STATUS_TIMER_RESOLUTION_NOT_SET: NTSTATUS = 0xC0000245;
+pub const STATUS_CONNECTION_COUNT_LIMIT: NTSTATUS = 0xC0000246;
+pub const STATUS_LOGIN_TIME_RESTRICTION: NTSTATUS = 0xC0000247;
+pub const STATUS_LOGIN_WKSTA_RESTRICTION: NTSTATUS = 0xC0000248;
+pub const STATUS_IMAGE_MP_UP_MISMATCH: NTSTATUS = 0xC0000249;
+pub const STATUS_INSUFFICIENT_LOGON_INFO: NTSTATUS = 0xC0000250;
+pub const STATUS_BAD_DLL_ENTRYPOINT: NTSTATUS = 0xC0000251;
+pub const STATUS_BAD_SERVICE_ENTRYPOINT: NTSTATUS = 0xC0000252;
+pub const STATUS_LPC_REPLY_LOST: NTSTATUS = 0xC0000253;
+pub const STATUS_IP_ADDRESS_CONFLICT1: NTSTATUS = 0xC0000254;
+pub const STATUS_IP_ADDRESS_CONFLICT2: NTSTATUS = 0xC0000255;
+pub const STATUS_REGISTRY_QUOTA_LIMIT: NTSTATUS = 0xC0000256;
+pub const STATUS_PATH_NOT_COVERED: NTSTATUS = 0xC0000257;
+pub const STATUS_NO_CALLBACK_ACTIVE: NTSTATUS = 0xC0000258;
+pub const STATUS_LICENSE_QUOTA_EXCEEDED: NTSTATUS = 0xC0000259;
+pub const STATUS_PWD_TOO_SHORT: NTSTATUS = 0xC000025A;
+pub const STATUS_PWD_TOO_RECENT: NTSTATUS = 0xC000025B;
+pub const STATUS_PWD_HISTORY_CONFLICT: NTSTATUS = 0xC000025C;
+pub const STATUS_PLUGPLAY_NO_DEVICE: NTSTATUS = 0xC000025E;
+pub const STATUS_UNSUPPORTED_COMPRESSION: NTSTATUS = 0xC000025F;
+pub const STATUS_INVALID_HW_PROFILE: NTSTATUS = 0xC0000260;
+pub const STATUS_INVALID_PLUGPLAY_DEVICE_PATH: NTSTATUS = 0xC0000261;
+pub const STATUS_DRIVER_ORDINAL_NOT_FOUND: NTSTATUS = 0xC0000262;
+pub const STATUS_DRIVER_ENTRYPOINT_NOT_FOUND: NTSTATUS = 0xC0000263;
+pub const STATUS_RESOURCE_NOT_OWNED: NTSTATUS = 0xC0000264;
+pub const STATUS_TOO_MANY_LINKS: NTSTATUS = 0xC0000265;
+pub const STATUS_QUOTA_LIST_INCONSISTENT: NTSTATUS = 0xC0000266;
+pub const STATUS_FILE_IS_OFFLINE: NTSTATUS = 0xC0000267;
+pub const STATUS_EVALUATION_EXPIRATION: NTSTATUS = 0xC0000268;
+pub const STATUS_ILLEGAL_DLL_RELOCATION: NTSTATUS = 0xC0000269;
+pub const STATUS_LICENSE_VIOLATION: NTSTATUS = 0xC000026A;
+pub const STATUS_DLL_INIT_FAILED_LOGOFF: NTSTATUS = 0xC000026B;
+pub const STATUS_DRIVER_UNABLE_TO_LOAD: NTSTATUS = 0xC000026C;
+pub const STATUS_DFS_UNAVAILABLE: NTSTATUS = 0xC000026D;
+pub const STATUS_VOLUME_DISMOUNTED: NTSTATUS = 0xC000026E;
+pub const STATUS_WX86_INTERNAL_ERROR: NTSTATUS = 0xC000026F;
+pub const STATUS_WX86_FLOAT_STACK_CHECK: NTSTATUS = 0xC0000270;
+pub const STATUS_VALIDATE_CONTINUE: NTSTATUS = 0xC0000271;
+pub const STATUS_NO_MATCH: NTSTATUS = 0xC0000272;
+pub const STATUS_NO_MORE_MATCHES: NTSTATUS = 0xC0000273;
+pub const STATUS_NOT_A_REPARSE_POINT: NTSTATUS = 0xC0000275;
+pub const STATUS_IO_REPARSE_TAG_INVALID: NTSTATUS = 0xC0000276;
+pub const STATUS_IO_REPARSE_TAG_MISMATCH: NTSTATUS = 0xC0000277;
+pub const STATUS_IO_REPARSE_DATA_INVALID: NTSTATUS = 0xC0000278;
+pub const STATUS_IO_REPARSE_TAG_NOT_HANDLED: NTSTATUS = 0xC0000279;
+pub const STATUS_PWD_TOO_LONG: NTSTATUS = 0xC000027A;
+pub const STATUS_STOWED_EXCEPTION: NTSTATUS = 0xC000027B;
+pub const STATUS_REPARSE_POINT_NOT_RESOLVED: NTSTATUS = 0xC0000280;
+pub const STATUS_DIRECTORY_IS_A_REPARSE_POINT: NTSTATUS = 0xC0000281;
+pub const STATUS_RANGE_LIST_CONFLICT: NTSTATUS = 0xC0000282;
+pub const STATUS_SOURCE_ELEMENT_EMPTY: NTSTATUS = 0xC0000283;
+pub const STATUS_DESTINATION_ELEMENT_FULL: NTSTATUS = 0xC0000284;
+pub const STATUS_ILLEGAL_ELEMENT_ADDRESS: NTSTATUS = 0xC0000285;
+pub const STATUS_MAGAZINE_NOT_PRESENT: NTSTATUS = 0xC0000286;
+pub const STATUS_REINITIALIZATION_NEEDED: NTSTATUS = 0xC0000287;
+pub const STATUS_DEVICE_REQUIRES_CLEANING: NTSTATUS = 0x80000288;
+pub const STATUS_DEVICE_DOOR_OPEN: NTSTATUS = 0x80000289;
+pub const STATUS_ENCRYPTION_FAILED: NTSTATUS = 0xC000028A;
+pub const STATUS_DECRYPTION_FAILED: NTSTATUS = 0xC000028B;
+pub const STATUS_RANGE_NOT_FOUND: NTSTATUS = 0xC000028C;
+pub const STATUS_NO_RECOVERY_POLICY: NTSTATUS = 0xC000028D;
+pub const STATUS_NO_EFS: NTSTATUS = 0xC000028E;
+pub const STATUS_WRONG_EFS: NTSTATUS = 0xC000028F;
+pub const STATUS_NO_USER_KEYS: NTSTATUS = 0xC0000290;
+pub const STATUS_FILE_NOT_ENCRYPTED: NTSTATUS = 0xC0000291;
+pub const STATUS_NOT_EXPORT_FORMAT: NTSTATUS = 0xC0000292;
+pub const STATUS_FILE_ENCRYPTED: NTSTATUS = 0xC0000293;
+pub const STATUS_WAKE_SYSTEM: NTSTATUS = 0x40000294;
+pub const STATUS_WMI_GUID_NOT_FOUND: NTSTATUS = 0xC0000295;
+pub const STATUS_WMI_INSTANCE_NOT_FOUND: NTSTATUS = 0xC0000296;
+pub const STATUS_WMI_ITEMID_NOT_FOUND: NTSTATUS = 0xC0000297;
+pub const STATUS_WMI_TRY_AGAIN: NTSTATUS = 0xC0000298;
+pub const STATUS_SHARED_POLICY: NTSTATUS = 0xC0000299;
+pub const STATUS_POLICY_OBJECT_NOT_FOUND: NTSTATUS = 0xC000029A;
+pub const STATUS_POLICY_ONLY_IN_DS: NTSTATUS = 0xC000029B;
+pub const STATUS_VOLUME_NOT_UPGRADED: NTSTATUS = 0xC000029C;
+pub const STATUS_REMOTE_STORAGE_NOT_ACTIVE: NTSTATUS = 0xC000029D;
+pub const STATUS_REMOTE_STORAGE_MEDIA_ERROR: NTSTATUS = 0xC000029E;
+pub const STATUS_NO_TRACKING_SERVICE: NTSTATUS = 0xC000029F;
+pub const STATUS_SERVER_SID_MISMATCH: NTSTATUS = 0xC00002A0;
+pub const STATUS_DS_NO_ATTRIBUTE_OR_VALUE: NTSTATUS = 0xC00002A1;
+pub const STATUS_DS_INVALID_ATTRIBUTE_SYNTAX: NTSTATUS = 0xC00002A2;
+pub const STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED: NTSTATUS = 0xC00002A3;
+pub const STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS: NTSTATUS = 0xC00002A4;
+pub const STATUS_DS_BUSY: NTSTATUS = 0xC00002A5;
+pub const STATUS_DS_UNAVAILABLE: NTSTATUS = 0xC00002A6;
+pub const STATUS_DS_NO_RIDS_ALLOCATED: NTSTATUS = 0xC00002A7;
+pub const STATUS_DS_NO_MORE_RIDS: NTSTATUS = 0xC00002A8;
+pub const STATUS_DS_INCORRECT_ROLE_OWNER: NTSTATUS = 0xC00002A9;
+pub const STATUS_DS_RIDMGR_INIT_ERROR: NTSTATUS = 0xC00002AA;
+pub const STATUS_DS_OBJ_CLASS_VIOLATION: NTSTATUS = 0xC00002AB;
+pub const STATUS_DS_CANT_ON_NON_LEAF: NTSTATUS = 0xC00002AC;
+pub const STATUS_DS_CANT_ON_RDN: NTSTATUS = 0xC00002AD;
+pub const STATUS_DS_CANT_MOD_OBJ_CLASS: NTSTATUS = 0xC00002AE;
+pub const STATUS_DS_CROSS_DOM_MOVE_FAILED: NTSTATUS = 0xC00002AF;
+pub const STATUS_DS_GC_NOT_AVAILABLE: NTSTATUS = 0xC00002B0;
+pub const STATUS_DIRECTORY_SERVICE_REQUIRED: NTSTATUS = 0xC00002B1;
+pub const STATUS_REPARSE_ATTRIBUTE_CONFLICT: NTSTATUS = 0xC00002B2;
+pub const STATUS_CANT_ENABLE_DENY_ONLY: NTSTATUS = 0xC00002B3;
+pub const STATUS_FLOAT_MULTIPLE_FAULTS: NTSTATUS = 0xC00002B4;
+pub const STATUS_FLOAT_MULTIPLE_TRAPS: NTSTATUS = 0xC00002B5;
+pub const STATUS_DEVICE_REMOVED: NTSTATUS = 0xC00002B6;
+pub const STATUS_JOURNAL_DELETE_IN_PROGRESS: NTSTATUS = 0xC00002B7;
+pub const STATUS_JOURNAL_NOT_ACTIVE: NTSTATUS = 0xC00002B8;
+pub const STATUS_NOINTERFACE: NTSTATUS = 0xC00002B9;
+pub const STATUS_DS_RIDMGR_DISABLED: NTSTATUS = 0xC00002BA;
+pub const STATUS_DS_ADMIN_LIMIT_EXCEEDED: NTSTATUS = 0xC00002C1;
+pub const STATUS_DRIVER_FAILED_SLEEP: NTSTATUS = 0xC00002C2;
+pub const STATUS_MUTUAL_AUTHENTICATION_FAILED: NTSTATUS = 0xC00002C3;
+pub const STATUS_CORRUPT_SYSTEM_FILE: NTSTATUS = 0xC00002C4;
+pub const STATUS_DATATYPE_MISALIGNMENT_ERROR: NTSTATUS = 0xC00002C5;
+pub const STATUS_WMI_READ_ONLY: NTSTATUS = 0xC00002C6;
+pub const STATUS_WMI_SET_FAILURE: NTSTATUS = 0xC00002C7;
+pub const STATUS_COMMITMENT_MINIMUM: NTSTATUS = 0xC00002C8;
+pub const STATUS_REG_NAT_CONSUMPTION: NTSTATUS = 0xC00002C9;
+pub const STATUS_TRANSPORT_FULL: NTSTATUS = 0xC00002CA;
+pub const STATUS_DS_SAM_INIT_FAILURE: NTSTATUS = 0xC00002CB;
+pub const STATUS_ONLY_IF_CONNECTED: NTSTATUS = 0xC00002CC;
+pub const STATUS_DS_SENSITIVE_GROUP_VIOLATION: NTSTATUS = 0xC00002CD;
+pub const STATUS_PNP_RESTART_ENUMERATION: NTSTATUS = 0xC00002CE;
+pub const STATUS_JOURNAL_ENTRY_DELETED: NTSTATUS = 0xC00002CF;
+pub const STATUS_DS_CANT_MOD_PRIMARYGROUPID: NTSTATUS = 0xC00002D0;
+pub const STATUS_SYSTEM_IMAGE_BAD_SIGNATURE: NTSTATUS = 0xC00002D1;
+pub const STATUS_PNP_REBOOT_REQUIRED: NTSTATUS = 0xC00002D2;
+pub const STATUS_POWER_STATE_INVALID: NTSTATUS = 0xC00002D3;
+pub const STATUS_DS_INVALID_GROUP_TYPE: NTSTATUS = 0xC00002D4;
+pub const STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: NTSTATUS = 0xC00002D5;
+pub const STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: NTSTATUS = 0xC00002D6;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = 0xC00002D7;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = 0xC00002D8;
+pub const STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: NTSTATUS = 0xC00002D9;
+pub const STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: NTSTATUS = 0xC00002DA;
+pub const STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: NTSTATUS = 0xC00002DB;
+pub const STATUS_DS_HAVE_PRIMARY_MEMBERS: NTSTATUS = 0xC00002DC;
+pub const STATUS_WMI_NOT_SUPPORTED: NTSTATUS = 0xC00002DD;
+pub const STATUS_INSUFFICIENT_POWER: NTSTATUS = 0xC00002DE;
+pub const STATUS_SAM_NEED_BOOTKEY_PASSWORD: NTSTATUS = 0xC00002DF;
+pub const STATUS_SAM_NEED_BOOTKEY_FLOPPY: NTSTATUS = 0xC00002E0;
+pub const STATUS_DS_CANT_START: NTSTATUS = 0xC00002E1;
+pub const STATUS_DS_INIT_FAILURE: NTSTATUS = 0xC00002E2;
+pub const STATUS_SAM_INIT_FAILURE: NTSTATUS = 0xC00002E3;
+pub const STATUS_DS_GC_REQUIRED: NTSTATUS = 0xC00002E4;
+pub const STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: NTSTATUS = 0xC00002E5;
+pub const STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS: NTSTATUS = 0xC00002E6;
+pub const STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: NTSTATUS = 0xC00002E7;
+pub const STATUS_MULTIPLE_FAULT_VIOLATION: NTSTATUS = 0xC00002E8;
+pub const STATUS_CURRENT_DOMAIN_NOT_ALLOWED: NTSTATUS = 0xC00002E9;
+pub const STATUS_CANNOT_MAKE: NTSTATUS = 0xC00002EA;
+pub const STATUS_SYSTEM_SHUTDOWN: NTSTATUS = 0xC00002EB;
+pub const STATUS_DS_INIT_FAILURE_CONSOLE: NTSTATUS = 0xC00002EC;
+pub const STATUS_DS_SAM_INIT_FAILURE_CONSOLE: NTSTATUS = 0xC00002ED;
+pub const STATUS_UNFINISHED_CONTEXT_DELETED: NTSTATUS = 0xC00002EE;
+pub const STATUS_NO_TGT_REPLY: NTSTATUS = 0xC00002EF;
+pub const STATUS_OBJECTID_NOT_FOUND: NTSTATUS = 0xC00002F0;
+pub const STATUS_NO_IP_ADDRESSES: NTSTATUS = 0xC00002F1;
+pub const STATUS_WRONG_CREDENTIAL_HANDLE: NTSTATUS = 0xC00002F2;
+pub const STATUS_CRYPTO_SYSTEM_INVALID: NTSTATUS = 0xC00002F3;
+pub const STATUS_MAX_REFERRALS_EXCEEDED: NTSTATUS = 0xC00002F4;
+pub const STATUS_MUST_BE_KDC: NTSTATUS = 0xC00002F5;
+pub const STATUS_STRONG_CRYPTO_NOT_SUPPORTED: NTSTATUS = 0xC00002F6;
+pub const STATUS_TOO_MANY_PRINCIPALS: NTSTATUS = 0xC00002F7;
+pub const STATUS_NO_PA_DATA: NTSTATUS = 0xC00002F8;
+pub const STATUS_PKINIT_NAME_MISMATCH: NTSTATUS = 0xC00002F9;
+pub const STATUS_SMARTCARD_LOGON_REQUIRED: NTSTATUS = 0xC00002FA;
+pub const STATUS_KDC_INVALID_REQUEST: NTSTATUS = 0xC00002FB;
+pub const STATUS_KDC_UNABLE_TO_REFER: NTSTATUS = 0xC00002FC;
+pub const STATUS_KDC_UNKNOWN_ETYPE: NTSTATUS = 0xC00002FD;
+pub const STATUS_SHUTDOWN_IN_PROGRESS: NTSTATUS = 0xC00002FE;
+pub const STATUS_SERVER_SHUTDOWN_IN_PROGRESS: NTSTATUS = 0xC00002FF;
+pub const STATUS_NOT_SUPPORTED_ON_SBS: NTSTATUS = 0xC0000300;
+pub const STATUS_WMI_GUID_DISCONNECTED: NTSTATUS = 0xC0000301;
+pub const STATUS_WMI_ALREADY_DISABLED: NTSTATUS = 0xC0000302;
+pub const STATUS_WMI_ALREADY_ENABLED: NTSTATUS = 0xC0000303;
+pub const STATUS_MFT_TOO_FRAGMENTED: NTSTATUS = 0xC0000304;
+pub const STATUS_COPY_PROTECTION_FAILURE: NTSTATUS = 0xC0000305;
+pub const STATUS_CSS_AUTHENTICATION_FAILURE: NTSTATUS = 0xC0000306;
+pub const STATUS_CSS_KEY_NOT_PRESENT: NTSTATUS = 0xC0000307;
+pub const STATUS_CSS_KEY_NOT_ESTABLISHED: NTSTATUS = 0xC0000308;
+pub const STATUS_CSS_SCRAMBLED_SECTOR: NTSTATUS = 0xC0000309;
+pub const STATUS_CSS_REGION_MISMATCH: NTSTATUS = 0xC000030A;
+pub const STATUS_CSS_RESETS_EXHAUSTED: NTSTATUS = 0xC000030B;
+pub const STATUS_PASSWORD_CHANGE_REQUIRED: NTSTATUS = 0xC000030C;
+pub const STATUS_PKINIT_FAILURE: NTSTATUS = 0xC0000320;
+pub const STATUS_SMARTCARD_SUBSYSTEM_FAILURE: NTSTATUS = 0xC0000321;
+pub const STATUS_NO_KERB_KEY: NTSTATUS = 0xC0000322;
+pub const STATUS_HOST_DOWN: NTSTATUS = 0xC0000350;
+pub const STATUS_UNSUPPORTED_PREAUTH: NTSTATUS = 0xC0000351;
+pub const STATUS_EFS_ALG_BLOB_TOO_BIG: NTSTATUS = 0xC0000352;
+pub const STATUS_PORT_NOT_SET: NTSTATUS = 0xC0000353;
+pub const STATUS_DEBUGGER_INACTIVE: NTSTATUS = 0xC0000354;
+pub const STATUS_DS_VERSION_CHECK_FAILURE: NTSTATUS = 0xC0000355;
+pub const STATUS_AUDITING_DISABLED: NTSTATUS = 0xC0000356;
+pub const STATUS_PRENT4_MACHINE_ACCOUNT: NTSTATUS = 0xC0000357;
+pub const STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: NTSTATUS = 0xC0000358;
+pub const STATUS_INVALID_IMAGE_WIN_32: NTSTATUS = 0xC0000359;
+pub const STATUS_INVALID_IMAGE_WIN_64: NTSTATUS = 0xC000035A;
+pub const STATUS_BAD_BINDINGS: NTSTATUS = 0xC000035B;
+pub const STATUS_NETWORK_SESSION_EXPIRED: NTSTATUS = 0xC000035C;
+pub const STATUS_APPHELP_BLOCK: NTSTATUS = 0xC000035D;
+pub const STATUS_ALL_SIDS_FILTERED: NTSTATUS = 0xC000035E;
+pub const STATUS_NOT_SAFE_MODE_DRIVER: NTSTATUS = 0xC000035F;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT: NTSTATUS = 0xC0000361;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_PATH: NTSTATUS = 0xC0000362;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER: NTSTATUS = 0xC0000363;
+pub const STATUS_ACCESS_DISABLED_BY_POLICY_OTHER: NTSTATUS = 0xC0000364;
+pub const STATUS_FAILED_DRIVER_ENTRY: NTSTATUS = 0xC0000365;
+pub const STATUS_DEVICE_ENUMERATION_ERROR: NTSTATUS = 0xC0000366;
+pub const STATUS_MOUNT_POINT_NOT_RESOLVED: NTSTATUS = 0xC0000368;
+pub const STATUS_INVALID_DEVICE_OBJECT_PARAMETER: NTSTATUS = 0xC0000369;
+pub const STATUS_MCA_OCCURED: NTSTATUS = 0xC000036A;
+pub const STATUS_DRIVER_BLOCKED_CRITICAL: NTSTATUS = 0xC000036B;
+pub const STATUS_DRIVER_BLOCKED: NTSTATUS = 0xC000036C;
+pub const STATUS_DRIVER_DATABASE_ERROR: NTSTATUS = 0xC000036D;
+pub const STATUS_SYSTEM_HIVE_TOO_LARGE: NTSTATUS = 0xC000036E;
+pub const STATUS_INVALID_IMPORT_OF_NON_DLL: NTSTATUS = 0xC000036F;
+pub const STATUS_DS_SHUTTING_DOWN: NTSTATUS = 0x40000370;
+pub const STATUS_NO_SECRETS: NTSTATUS = 0xC0000371;
+pub const STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: NTSTATUS = 0xC0000372;
+pub const STATUS_FAILED_STACK_SWITCH: NTSTATUS = 0xC0000373;
+pub const STATUS_HEAP_CORRUPTION: NTSTATUS = 0xC0000374;
+pub const STATUS_SMARTCARD_WRONG_PIN: NTSTATUS = 0xC0000380;
+pub const STATUS_SMARTCARD_CARD_BLOCKED: NTSTATUS = 0xC0000381;
+pub const STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED: NTSTATUS = 0xC0000382;
+pub const STATUS_SMARTCARD_NO_CARD: NTSTATUS = 0xC0000383;
+pub const STATUS_SMARTCARD_NO_KEY_CONTAINER: NTSTATUS = 0xC0000384;
+pub const STATUS_SMARTCARD_NO_CERTIFICATE: NTSTATUS = 0xC0000385;
+pub const STATUS_SMARTCARD_NO_KEYSET: NTSTATUS = 0xC0000386;
+pub const STATUS_SMARTCARD_IO_ERROR: NTSTATUS = 0xC0000387;
+pub const STATUS_DOWNGRADE_DETECTED: NTSTATUS = 0xC0000388;
+pub const STATUS_SMARTCARD_CERT_REVOKED: NTSTATUS = 0xC0000389;
+pub const STATUS_ISSUING_CA_UNTRUSTED: NTSTATUS = 0xC000038A;
+pub const STATUS_REVOCATION_OFFLINE_C: NTSTATUS = 0xC000038B;
+pub const STATUS_PKINIT_CLIENT_FAILURE: NTSTATUS = 0xC000038C;
+pub const STATUS_SMARTCARD_CERT_EXPIRED: NTSTATUS = 0xC000038D;
+pub const STATUS_DRIVER_FAILED_PRIOR_UNLOAD: NTSTATUS = 0xC000038E;
+pub const STATUS_SMARTCARD_SILENT_CONTEXT: NTSTATUS = 0xC000038F;
+pub const STATUS_PER_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000401;
+pub const STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000402;
+pub const STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED: NTSTATUS = 0xC0000403;
+pub const STATUS_DS_NAME_NOT_UNIQUE: NTSTATUS = 0xC0000404;
+pub const STATUS_DS_DUPLICATE_ID_FOUND: NTSTATUS = 0xC0000405;
+pub const STATUS_DS_GROUP_CONVERSION_ERROR: NTSTATUS = 0xC0000406;
+pub const STATUS_VOLSNAP_PREPARE_HIBERNATE: NTSTATUS = 0xC0000407;
+pub const STATUS_USER2USER_REQUIRED: NTSTATUS = 0xC0000408;
+pub const STATUS_STACK_BUFFER_OVERRUN: NTSTATUS = 0xC0000409;
+pub const STATUS_NO_S4U_PROT_SUPPORT: NTSTATUS = 0xC000040A;
+pub const STATUS_CROSSREALM_DELEGATION_FAILURE: NTSTATUS = 0xC000040B;
+pub const STATUS_REVOCATION_OFFLINE_KDC: NTSTATUS = 0xC000040C;
+pub const STATUS_ISSUING_CA_UNTRUSTED_KDC: NTSTATUS = 0xC000040D;
+pub const STATUS_KDC_CERT_EXPIRED: NTSTATUS = 0xC000040E;
+pub const STATUS_KDC_CERT_REVOKED: NTSTATUS = 0xC000040F;
+pub const STATUS_PARAMETER_QUOTA_EXCEEDED: NTSTATUS = 0xC0000410;
+pub const STATUS_HIBERNATION_FAILURE: NTSTATUS = 0xC0000411;
+pub const STATUS_DELAY_LOAD_FAILED: NTSTATUS = 0xC0000412;
+pub const STATUS_AUTHENTICATION_FIREWALL_FAILED: NTSTATUS = 0xC0000413;
+pub const STATUS_VDM_DISALLOWED: NTSTATUS = 0xC0000414;
+pub const STATUS_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = 0xC0000415;
+pub const STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: NTSTATUS
+ = 0xC0000416;
+pub const STATUS_INVALID_CRUNTIME_PARAMETER: NTSTATUS = 0xC0000417;
+pub const STATUS_NTLM_BLOCKED: NTSTATUS = 0xC0000418;
+pub const STATUS_DS_SRC_SID_EXISTS_IN_FOREST: NTSTATUS = 0xC0000419;
+pub const STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST: NTSTATUS = 0xC000041A;
+pub const STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST: NTSTATUS = 0xC000041B;
+pub const STATUS_INVALID_USER_PRINCIPAL_NAME: NTSTATUS = 0xC000041C;
+pub const STATUS_FATAL_USER_CALLBACK_EXCEPTION: NTSTATUS = 0xC000041D;
+pub const STATUS_ASSERTION_FAILURE: NTSTATUS = 0xC0000420;
+pub const STATUS_VERIFIER_STOP: NTSTATUS = 0xC0000421;
+pub const STATUS_CALLBACK_POP_STACK: NTSTATUS = 0xC0000423;
+pub const STATUS_INCOMPATIBLE_DRIVER_BLOCKED: NTSTATUS = 0xC0000424;
+pub const STATUS_HIVE_UNLOADED: NTSTATUS = 0xC0000425;
+pub const STATUS_COMPRESSION_DISABLED: NTSTATUS = 0xC0000426;
+pub const STATUS_FILE_SYSTEM_LIMITATION: NTSTATUS = 0xC0000427;
+pub const STATUS_INVALID_IMAGE_HASH: NTSTATUS = 0xC0000428;
+pub const STATUS_NOT_CAPABLE: NTSTATUS = 0xC0000429;
+pub const STATUS_REQUEST_OUT_OF_SEQUENCE: NTSTATUS = 0xC000042A;
+pub const STATUS_IMPLEMENTATION_LIMIT: NTSTATUS = 0xC000042B;
+pub const STATUS_ELEVATION_REQUIRED: NTSTATUS = 0xC000042C;
+pub const STATUS_NO_SECURITY_CONTEXT: NTSTATUS = 0xC000042D;
+pub const STATUS_PKU2U_CERT_FAILURE: NTSTATUS = 0xC000042F;
+pub const STATUS_BEYOND_VDL: NTSTATUS = 0xC0000432;
+pub const STATUS_ENCOUNTERED_WRITE_IN_PROGRESS: NTSTATUS = 0xC0000433;
+pub const STATUS_PTE_CHANGED: NTSTATUS = 0xC0000434;
+pub const STATUS_PURGE_FAILED: NTSTATUS = 0xC0000435;
+pub const STATUS_CRED_REQUIRES_CONFIRMATION: NTSTATUS = 0xC0000440;
+pub const STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: NTSTATUS = 0xC0000441;
+pub const STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER: NTSTATUS = 0xC0000442;
+pub const STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: NTSTATUS = 0xC0000443;
+pub const STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: NTSTATUS = 0xC0000444;
+pub const STATUS_CS_ENCRYPTION_FILE_NOT_CSE: NTSTATUS = 0xC0000445;
+pub const STATUS_INVALID_LABEL: NTSTATUS = 0xC0000446;
+pub const STATUS_DRIVER_PROCESS_TERMINATED: NTSTATUS = 0xC0000450;
+pub const STATUS_AMBIGUOUS_SYSTEM_DEVICE: NTSTATUS = 0xC0000451;
+pub const STATUS_SYSTEM_DEVICE_NOT_FOUND: NTSTATUS = 0xC0000452;
+pub const STATUS_RESTART_BOOT_APPLICATION: NTSTATUS = 0xC0000453;
+pub const STATUS_INSUFFICIENT_NVRAM_RESOURCES: NTSTATUS = 0xC0000454;
+pub const STATUS_INVALID_SESSION: NTSTATUS = 0xC0000455;
+pub const STATUS_THREAD_ALREADY_IN_SESSION: NTSTATUS = 0xC0000456;
+pub const STATUS_THREAD_NOT_IN_SESSION: NTSTATUS = 0xC0000457;
+pub const STATUS_INVALID_WEIGHT: NTSTATUS = 0xC0000458;
+pub const STATUS_REQUEST_PAUSED: NTSTATUS = 0xC0000459;
+pub const STATUS_NO_RANGES_PROCESSED: NTSTATUS = 0xC0000460;
+pub const STATUS_DISK_RESOURCES_EXHAUSTED: NTSTATUS = 0xC0000461;
+pub const STATUS_NEEDS_REMEDIATION: NTSTATUS = 0xC0000462;
+pub const STATUS_DEVICE_FEATURE_NOT_SUPPORTED: NTSTATUS = 0xC0000463;
+pub const STATUS_DEVICE_UNREACHABLE: NTSTATUS = 0xC0000464;
+pub const STATUS_INVALID_TOKEN: NTSTATUS = 0xC0000465;
+pub const STATUS_SERVER_UNAVAILABLE: NTSTATUS = 0xC0000466;
+pub const STATUS_FILE_NOT_AVAILABLE: NTSTATUS = 0xC0000467;
+pub const STATUS_DEVICE_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC0000468;
+pub const STATUS_PACKAGE_UPDATING: NTSTATUS = 0xC0000469;
+pub const STATUS_NOT_READ_FROM_COPY: NTSTATUS = 0xC000046A;
+pub const STATUS_FT_WRITE_FAILURE: NTSTATUS = 0xC000046B;
+pub const STATUS_FT_DI_SCAN_REQUIRED: NTSTATUS = 0xC000046C;
+pub const STATUS_OBJECT_NOT_EXTERNALLY_BACKED: NTSTATUS = 0xC000046D;
+pub const STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN: NTSTATUS = 0xC000046E;
+pub const STATUS_COMPRESSION_NOT_BENEFICIAL: NTSTATUS = 0xC000046F;
+pub const STATUS_DATA_CHECKSUM_ERROR: NTSTATUS = 0xC0000470;
+pub const STATUS_INTERMIXED_KERNEL_EA_OPERATION: NTSTATUS = 0xC0000471;
+pub const STATUS_TRIM_READ_ZERO_NOT_SUPPORTED: NTSTATUS = 0xC0000472;
+pub const STATUS_TOO_MANY_SEGMENT_DESCRIPTORS: NTSTATUS = 0xC0000473;
+pub const STATUS_INVALID_OFFSET_ALIGNMENT: NTSTATUS = 0xC0000474;
+pub const STATUS_INVALID_FIELD_IN_PARAMETER_LIST: NTSTATUS = 0xC0000475;
+pub const STATUS_OPERATION_IN_PROGRESS: NTSTATUS = 0xC0000476;
+pub const STATUS_INVALID_INITIATOR_TARGET_PATH: NTSTATUS = 0xC0000477;
+pub const STATUS_SCRUB_DATA_DISABLED: NTSTATUS = 0xC0000478;
+pub const STATUS_NOT_REDUNDANT_STORAGE: NTSTATUS = 0xC0000479;
+pub const STATUS_RESIDENT_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000047A;
+pub const STATUS_COMPRESSED_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000047B;
+pub const STATUS_DIRECTORY_NOT_SUPPORTED: NTSTATUS = 0xC000047C;
+pub const STATUS_IO_OPERATION_TIMEOUT: NTSTATUS = 0xC000047D;
+pub const STATUS_SYSTEM_NEEDS_REMEDIATION: NTSTATUS = 0xC000047E;
+pub const STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN: NTSTATUS = 0xC000047F;
+pub const STATUS_SHARE_UNAVAILABLE: NTSTATUS = 0xC0000480;
+pub const STATUS_APISET_NOT_HOSTED: NTSTATUS = 0xC0000481;
+pub const STATUS_APISET_NOT_PRESENT: NTSTATUS = 0xC0000482;
+pub const STATUS_DEVICE_HARDWARE_ERROR: NTSTATUS = 0xC0000483;
+pub const STATUS_FIRMWARE_SLOT_INVALID: NTSTATUS = 0xC0000484;
+pub const STATUS_FIRMWARE_IMAGE_INVALID: NTSTATUS = 0xC0000485;
+pub const STATUS_STORAGE_TOPOLOGY_ID_MISMATCH: NTSTATUS = 0xC0000486;
+pub const STATUS_WIM_NOT_BOOTABLE: NTSTATUS = 0xC0000487;
+pub const STATUS_BLOCKED_BY_PARENTAL_CONTROLS: NTSTATUS = 0xC0000488;
+pub const STATUS_NEEDS_REGISTRATION: NTSTATUS = 0xC0000489;
+pub const STATUS_QUOTA_ACTIVITY: NTSTATUS = 0xC000048A;
+pub const STATUS_CALLBACK_INVOKE_INLINE: NTSTATUS = 0xC000048B;
+pub const STATUS_BLOCK_TOO_MANY_REFERENCES: NTSTATUS = 0xC000048C;
+pub const STATUS_MARKED_TO_DISALLOW_WRITES: NTSTATUS = 0xC000048D;
+pub const STATUS_NETWORK_ACCESS_DENIED_EDP: NTSTATUS = 0xC000048E;
+pub const STATUS_ENCLAVE_FAILURE: NTSTATUS = 0xC000048F;
+pub const STATUS_PNP_NO_COMPAT_DRIVERS: NTSTATUS = 0xC0000490;
+pub const STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND: NTSTATUS = 0xC0000491;
+pub const STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND: NTSTATUS = 0xC0000492;
+pub const STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE: NTSTATUS = 0xC0000493;
+pub const STATUS_PNP_FUNCTION_DRIVER_REQUIRED: NTSTATUS = 0xC0000494;
+pub const STATUS_PNP_DEVICE_CONFIGURATION_PENDING: NTSTATUS = 0xC0000495;
+pub const STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL: NTSTATUS = 0xC0000496;
+pub const STATUS_PACKAGE_NOT_AVAILABLE: NTSTATUS = 0xC0000497;
+pub const STATUS_DEVICE_IN_MAINTENANCE: NTSTATUS = 0xC0000499;
+pub const STATUS_NOT_SUPPORTED_ON_DAX: NTSTATUS = 0xC000049A;
+pub const STATUS_FREE_SPACE_TOO_FRAGMENTED: NTSTATUS = 0xC000049B;
+pub const STATUS_DAX_MAPPING_EXISTS: NTSTATUS = 0xC000049C;
+pub const STATUS_CHILD_PROCESS_BLOCKED: NTSTATUS = 0xC000049D;
+pub const STATUS_STORAGE_LOST_DATA_PERSISTENCE: NTSTATUS = 0xC000049E;
+pub const STATUS_INVALID_TASK_NAME: NTSTATUS = 0xC0000500;
+pub const STATUS_INVALID_TASK_INDEX: NTSTATUS = 0xC0000501;
+pub const STATUS_THREAD_ALREADY_IN_TASK: NTSTATUS = 0xC0000502;
+pub const STATUS_CALLBACK_BYPASS: NTSTATUS = 0xC0000503;
+pub const STATUS_UNDEFINED_SCOPE: NTSTATUS = 0xC0000504;
+pub const STATUS_INVALID_CAP: NTSTATUS = 0xC0000505;
+pub const STATUS_NOT_GUI_PROCESS: NTSTATUS = 0xC0000506;
+pub const STATUS_DEVICE_HUNG: NTSTATUS = 0xC0000507;
+pub const STATUS_CONTAINER_ASSIGNED: NTSTATUS = 0xC0000508;
+pub const STATUS_JOB_NO_CONTAINER: NTSTATUS = 0xC0000509;
+pub const STATUS_DEVICE_UNRESPONSIVE: NTSTATUS = 0xC000050A;
+pub const STATUS_REPARSE_POINT_ENCOUNTERED: NTSTATUS = 0xC000050B;
+pub const STATUS_FAIL_FAST_EXCEPTION: NTSTATUS = 0xC0000602;
+pub const STATUS_IMAGE_CERT_REVOKED: NTSTATUS = 0xC0000603;
+pub const STATUS_DYNAMIC_CODE_BLOCKED: NTSTATUS = 0xC0000604;
+pub const STATUS_IMAGE_CERT_EXPIRED: NTSTATUS = 0xC0000605;
+pub const STATUS_PORT_CLOSED: NTSTATUS = 0xC0000700;
+pub const STATUS_MESSAGE_LOST: NTSTATUS = 0xC0000701;
+pub const STATUS_INVALID_MESSAGE: NTSTATUS = 0xC0000702;
+pub const STATUS_REQUEST_CANCELED: NTSTATUS = 0xC0000703;
+pub const STATUS_RECURSIVE_DISPATCH: NTSTATUS = 0xC0000704;
+pub const STATUS_LPC_RECEIVE_BUFFER_EXPECTED: NTSTATUS = 0xC0000705;
+pub const STATUS_LPC_INVALID_CONNECTION_USAGE: NTSTATUS = 0xC0000706;
+pub const STATUS_LPC_REQUESTS_NOT_ALLOWED: NTSTATUS = 0xC0000707;
+pub const STATUS_RESOURCE_IN_USE: NTSTATUS = 0xC0000708;
+pub const STATUS_HARDWARE_MEMORY_ERROR: NTSTATUS = 0xC0000709;
+pub const STATUS_THREADPOOL_HANDLE_EXCEPTION: NTSTATUS = 0xC000070A;
+pub const STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070B;
+pub const STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED: NTSTATUS
+ = 0xC000070C;
+pub const STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070D;
+pub const STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED: NTSTATUS = 0xC000070E;
+pub const STATUS_THREADPOOL_RELEASED_DURING_OPERATION: NTSTATUS = 0xC000070F;
+pub const STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING: NTSTATUS = 0xC0000710;
+pub const STATUS_APC_RETURNED_WHILE_IMPERSONATING: NTSTATUS = 0xC0000711;
+pub const STATUS_PROCESS_IS_PROTECTED: NTSTATUS = 0xC0000712;
+pub const STATUS_MCA_EXCEPTION: NTSTATUS = 0xC0000713;
+pub const STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE: NTSTATUS = 0xC0000714;
+pub const STATUS_SYMLINK_CLASS_DISABLED: NTSTATUS = 0xC0000715;
+pub const STATUS_INVALID_IDN_NORMALIZATION: NTSTATUS = 0xC0000716;
+pub const STATUS_NO_UNICODE_TRANSLATION: NTSTATUS = 0xC0000717;
+pub const STATUS_ALREADY_REGISTERED: NTSTATUS = 0xC0000718;
+pub const STATUS_CONTEXT_MISMATCH: NTSTATUS = 0xC0000719;
+pub const STATUS_PORT_ALREADY_HAS_COMPLETION_LIST: NTSTATUS = 0xC000071A;
+pub const STATUS_CALLBACK_RETURNED_THREAD_PRIORITY: NTSTATUS = 0xC000071B;
+pub const STATUS_INVALID_THREAD: NTSTATUS = 0xC000071C;
+pub const STATUS_CALLBACK_RETURNED_TRANSACTION: NTSTATUS = 0xC000071D;
+pub const STATUS_CALLBACK_RETURNED_LDR_LOCK: NTSTATUS = 0xC000071E;
+pub const STATUS_CALLBACK_RETURNED_LANG: NTSTATUS = 0xC000071F;
+pub const STATUS_CALLBACK_RETURNED_PRI_BACK: NTSTATUS = 0xC0000720;
+pub const STATUS_CALLBACK_RETURNED_THREAD_AFFINITY: NTSTATUS = 0xC0000721;
+pub const STATUS_LPC_HANDLE_COUNT_EXCEEDED: NTSTATUS = 0xC0000722;
+pub const STATUS_DISK_REPAIR_DISABLED: NTSTATUS = 0xC0000800;
+pub const STATUS_DS_DOMAIN_RENAME_IN_PROGRESS: NTSTATUS = 0xC0000801;
+pub const STATUS_DISK_QUOTA_EXCEEDED: NTSTATUS = 0xC0000802;
+pub const STATUS_DATA_LOST_REPAIR: NTSTATUS = 0x80000803;
+pub const STATUS_CONTENT_BLOCKED: NTSTATUS = 0xC0000804;
+pub const STATUS_BAD_CLUSTERS: NTSTATUS = 0xC0000805;
+pub const STATUS_VOLUME_DIRTY: NTSTATUS = 0xC0000806;
+pub const STATUS_DISK_REPAIR_REDIRECTED: NTSTATUS = 0x40000807;
+pub const STATUS_DISK_REPAIR_UNSUCCESSFUL: NTSTATUS = 0xC0000808;
+pub const STATUS_CORRUPT_LOG_OVERFULL: NTSTATUS = 0xC0000809;
+pub const STATUS_CORRUPT_LOG_CORRUPTED: NTSTATUS = 0xC000080A;
+pub const STATUS_CORRUPT_LOG_UNAVAILABLE: NTSTATUS = 0xC000080B;
+pub const STATUS_CORRUPT_LOG_DELETED_FULL: NTSTATUS = 0xC000080C;
+pub const STATUS_CORRUPT_LOG_CLEARED: NTSTATUS = 0xC000080D;
+pub const STATUS_ORPHAN_NAME_EXHAUSTED: NTSTATUS = 0xC000080E;
+pub const STATUS_PROACTIVE_SCAN_IN_PROGRESS: NTSTATUS = 0xC000080F;
+pub const STATUS_ENCRYPTED_IO_NOT_POSSIBLE: NTSTATUS = 0xC0000810;
+pub const STATUS_CORRUPT_LOG_UPLEVEL_RECORDS: NTSTATUS = 0xC0000811;
+pub const STATUS_FILE_CHECKED_OUT: NTSTATUS = 0xC0000901;
+pub const STATUS_CHECKOUT_REQUIRED: NTSTATUS = 0xC0000902;
+pub const STATUS_BAD_FILE_TYPE: NTSTATUS = 0xC0000903;
+pub const STATUS_FILE_TOO_LARGE: NTSTATUS = 0xC0000904;
+pub const STATUS_FORMS_AUTH_REQUIRED: NTSTATUS = 0xC0000905;
+pub const STATUS_VIRUS_INFECTED: NTSTATUS = 0xC0000906;
+pub const STATUS_VIRUS_DELETED: NTSTATUS = 0xC0000907;
+pub const STATUS_BAD_MCFG_TABLE: NTSTATUS = 0xC0000908;
+pub const STATUS_CANNOT_BREAK_OPLOCK: NTSTATUS = 0xC0000909;
+pub const STATUS_BAD_KEY: NTSTATUS = 0xC000090A;
+pub const STATUS_BAD_DATA: NTSTATUS = 0xC000090B;
+pub const STATUS_NO_KEY: NTSTATUS = 0xC000090C;
+pub const STATUS_FILE_HANDLE_REVOKED: NTSTATUS = 0xC0000910;
+pub const STATUS_WOW_ASSERTION: NTSTATUS = 0xC0009898;
+pub const STATUS_INVALID_SIGNATURE: NTSTATUS = 0xC000A000;
+pub const STATUS_HMAC_NOT_SUPPORTED: NTSTATUS = 0xC000A001;
+pub const STATUS_AUTH_TAG_MISMATCH: NTSTATUS = 0xC000A002;
+pub const STATUS_INVALID_STATE_TRANSITION: NTSTATUS = 0xC000A003;
+pub const STATUS_INVALID_KERNEL_INFO_VERSION: NTSTATUS = 0xC000A004;
+pub const STATUS_INVALID_PEP_INFO_VERSION: NTSTATUS = 0xC000A005;
+pub const STATUS_HANDLE_REVOKED: NTSTATUS = 0xC000A006;
+pub const STATUS_EOF_ON_GHOSTED_RANGE: NTSTATUS = 0xC000A007;
+pub const STATUS_IPSEC_QUEUE_OVERFLOW: NTSTATUS = 0xC000A010;
+pub const STATUS_ND_QUEUE_OVERFLOW: NTSTATUS = 0xC000A011;
+pub const STATUS_HOPLIMIT_EXCEEDED: NTSTATUS = 0xC000A012;
+pub const STATUS_PROTOCOL_NOT_SUPPORTED: NTSTATUS = 0xC000A013;
+pub const STATUS_FASTPATH_REJECTED: NTSTATUS = 0xC000A014;
+pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: NTSTATUS = 0xC000A080;
+pub const STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: NTSTATUS = 0xC000A081;
+pub const STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: NTSTATUS = 0xC000A082;
+pub const STATUS_XML_PARSE_ERROR: NTSTATUS = 0xC000A083;
+pub const STATUS_XMLDSIG_ERROR: NTSTATUS = 0xC000A084;
+pub const STATUS_WRONG_COMPARTMENT: NTSTATUS = 0xC000A085;
+pub const STATUS_AUTHIP_FAILURE: NTSTATUS = 0xC000A086;
+pub const STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: NTSTATUS = 0xC000A087;
+pub const STATUS_DS_OID_NOT_FOUND: NTSTATUS = 0xC000A088;
+pub const STATUS_INCORRECT_ACCOUNT_TYPE: NTSTATUS = 0xC000A089;
+pub const STATUS_HASH_NOT_SUPPORTED: NTSTATUS = 0xC000A100;
+pub const STATUS_HASH_NOT_PRESENT: NTSTATUS = 0xC000A101;
+pub const STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED: NTSTATUS = 0xC000A121;
+pub const STATUS_GPIO_CLIENT_INFORMATION_INVALID: NTSTATUS = 0xC000A122;
+pub const STATUS_GPIO_VERSION_NOT_SUPPORTED: NTSTATUS = 0xC000A123;
+pub const STATUS_GPIO_INVALID_REGISTRATION_PACKET: NTSTATUS = 0xC000A124;
+pub const STATUS_GPIO_OPERATION_DENIED: NTSTATUS = 0xC000A125;
+pub const STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE: NTSTATUS = 0xC000A126;
+pub const STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED: NTSTATUS = 0x8000A127;
+pub const STATUS_CANNOT_SWITCH_RUNLEVEL: NTSTATUS = 0xC000A141;
+pub const STATUS_INVALID_RUNLEVEL_SETTING: NTSTATUS = 0xC000A142;
+pub const STATUS_RUNLEVEL_SWITCH_TIMEOUT: NTSTATUS = 0xC000A143;
+pub const STATUS_SERVICES_FAILED_AUTOSTART: NTSTATUS = 0x4000A144;
+pub const STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT: NTSTATUS = 0xC000A145;
+pub const STATUS_RUNLEVEL_SWITCH_IN_PROGRESS: NTSTATUS = 0xC000A146;
+pub const STATUS_NOT_APPCONTAINER: NTSTATUS = 0xC000A200;
+pub const STATUS_NOT_SUPPORTED_IN_APPCONTAINER: NTSTATUS = 0xC000A201;
+pub const STATUS_INVALID_PACKAGE_SID_LENGTH: NTSTATUS = 0xC000A202;
+pub const STATUS_APP_DATA_NOT_FOUND: NTSTATUS = 0xC000A281;
+pub const STATUS_APP_DATA_EXPIRED: NTSTATUS = 0xC000A282;
+pub const STATUS_APP_DATA_CORRUPT: NTSTATUS = 0xC000A283;
+pub const STATUS_APP_DATA_LIMIT_EXCEEDED: NTSTATUS = 0xC000A284;
+pub const STATUS_APP_DATA_REBOOT_REQUIRED: NTSTATUS = 0xC000A285;
+pub const STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED: NTSTATUS = 0xC000A2A1;
+pub const STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: NTSTATUS = 0xC000A2A2;
+pub const STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000A2A3;
+pub const STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: NTSTATUS = 0xC000A2A4;
+pub const STATUS_CLOUD_FILE_PROVIDER_UNKNOWN: NTSTATUS = 0xC000CF00;
+pub const STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING: NTSTATUS = 0xC000CF01;
+pub const STATUS_CLOUD_FILE_METADATA_CORRUPT: NTSTATUS = 0xC000CF02;
+pub const STATUS_CLOUD_FILE_METADATA_TOO_LARGE: NTSTATUS = 0xC000CF03;
+pub const STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE: NTSTATUS = 0x8000CF04;
+pub const DBG_NO_STATE_CHANGE: NTSTATUS = 0xC0010001;
+pub const DBG_APP_NOT_IDLE: NTSTATUS = 0xC0010002;
+pub const RPC_NT_INVALID_STRING_BINDING: NTSTATUS = 0xC0020001;
+pub const RPC_NT_WRONG_KIND_OF_BINDING: NTSTATUS = 0xC0020002;
+pub const RPC_NT_INVALID_BINDING: NTSTATUS = 0xC0020003;
+pub const RPC_NT_PROTSEQ_NOT_SUPPORTED: NTSTATUS = 0xC0020004;
+pub const RPC_NT_INVALID_RPC_PROTSEQ: NTSTATUS = 0xC0020005;
+pub const RPC_NT_INVALID_STRING_UUID: NTSTATUS = 0xC0020006;
+pub const RPC_NT_INVALID_ENDPOINT_FORMAT: NTSTATUS = 0xC0020007;
+pub const RPC_NT_INVALID_NET_ADDR: NTSTATUS = 0xC0020008;
+pub const RPC_NT_NO_ENDPOINT_FOUND: NTSTATUS = 0xC0020009;
+pub const RPC_NT_INVALID_TIMEOUT: NTSTATUS = 0xC002000A;
+pub const RPC_NT_OBJECT_NOT_FOUND: NTSTATUS = 0xC002000B;
+pub const RPC_NT_ALREADY_REGISTERED: NTSTATUS = 0xC002000C;
+pub const RPC_NT_TYPE_ALREADY_REGISTERED: NTSTATUS = 0xC002000D;
+pub const RPC_NT_ALREADY_LISTENING: NTSTATUS = 0xC002000E;
+pub const RPC_NT_NO_PROTSEQS_REGISTERED: NTSTATUS = 0xC002000F;
+pub const RPC_NT_NOT_LISTENING: NTSTATUS = 0xC0020010;
+pub const RPC_NT_UNKNOWN_MGR_TYPE: NTSTATUS = 0xC0020011;
+pub const RPC_NT_UNKNOWN_IF: NTSTATUS = 0xC0020012;
+pub const RPC_NT_NO_BINDINGS: NTSTATUS = 0xC0020013;
+pub const RPC_NT_NO_PROTSEQS: NTSTATUS = 0xC0020014;
+pub const RPC_NT_CANT_CREATE_ENDPOINT: NTSTATUS = 0xC0020015;
+pub const RPC_NT_OUT_OF_RESOURCES: NTSTATUS = 0xC0020016;
+pub const RPC_NT_SERVER_UNAVAILABLE: NTSTATUS = 0xC0020017;
+pub const RPC_NT_SERVER_TOO_BUSY: NTSTATUS = 0xC0020018;
+pub const RPC_NT_INVALID_NETWORK_OPTIONS: NTSTATUS = 0xC0020019;
+pub const RPC_NT_NO_CALL_ACTIVE: NTSTATUS = 0xC002001A;
+pub const RPC_NT_CALL_FAILED: NTSTATUS = 0xC002001B;
+pub const RPC_NT_CALL_FAILED_DNE: NTSTATUS = 0xC002001C;
+pub const RPC_NT_PROTOCOL_ERROR: NTSTATUS = 0xC002001D;
+pub const RPC_NT_UNSUPPORTED_TRANS_SYN: NTSTATUS = 0xC002001F;
+pub const RPC_NT_UNSUPPORTED_TYPE: NTSTATUS = 0xC0020021;
+pub const RPC_NT_INVALID_TAG: NTSTATUS = 0xC0020022;
+pub const RPC_NT_INVALID_BOUND: NTSTATUS = 0xC0020023;
+pub const RPC_NT_NO_ENTRY_NAME: NTSTATUS = 0xC0020024;
+pub const RPC_NT_INVALID_NAME_SYNTAX: NTSTATUS = 0xC0020025;
+pub const RPC_NT_UNSUPPORTED_NAME_SYNTAX: NTSTATUS = 0xC0020026;
+pub const RPC_NT_UUID_NO_ADDRESS: NTSTATUS = 0xC0020028;
+pub const RPC_NT_DUPLICATE_ENDPOINT: NTSTATUS = 0xC0020029;
+pub const RPC_NT_UNKNOWN_AUTHN_TYPE: NTSTATUS = 0xC002002A;
+pub const RPC_NT_MAX_CALLS_TOO_SMALL: NTSTATUS = 0xC002002B;
+pub const RPC_NT_STRING_TOO_LONG: NTSTATUS = 0xC002002C;
+pub const RPC_NT_PROTSEQ_NOT_FOUND: NTSTATUS = 0xC002002D;
+pub const RPC_NT_PROCNUM_OUT_OF_RANGE: NTSTATUS = 0xC002002E;
+pub const RPC_NT_BINDING_HAS_NO_AUTH: NTSTATUS = 0xC002002F;
+pub const RPC_NT_UNKNOWN_AUTHN_SERVICE: NTSTATUS = 0xC0020030;
+pub const RPC_NT_UNKNOWN_AUTHN_LEVEL: NTSTATUS = 0xC0020031;
+pub const RPC_NT_INVALID_AUTH_IDENTITY: NTSTATUS = 0xC0020032;
+pub const RPC_NT_UNKNOWN_AUTHZ_SERVICE: NTSTATUS = 0xC0020033;
+pub const EPT_NT_INVALID_ENTRY: NTSTATUS = 0xC0020034;
+pub const EPT_NT_CANT_PERFORM_OP: NTSTATUS = 0xC0020035;
+pub const EPT_NT_NOT_REGISTERED: NTSTATUS = 0xC0020036;
+pub const RPC_NT_NOTHING_TO_EXPORT: NTSTATUS = 0xC0020037;
+pub const RPC_NT_INCOMPLETE_NAME: NTSTATUS = 0xC0020038;
+pub const RPC_NT_INVALID_VERS_OPTION: NTSTATUS = 0xC0020039;
+pub const RPC_NT_NO_MORE_MEMBERS: NTSTATUS = 0xC002003A;
+pub const RPC_NT_NOT_ALL_OBJS_UNEXPORTED: NTSTATUS = 0xC002003B;
+pub const RPC_NT_INTERFACE_NOT_FOUND: NTSTATUS = 0xC002003C;
+pub const RPC_NT_ENTRY_ALREADY_EXISTS: NTSTATUS = 0xC002003D;
+pub const RPC_NT_ENTRY_NOT_FOUND: NTSTATUS = 0xC002003E;
+pub const RPC_NT_NAME_SERVICE_UNAVAILABLE: NTSTATUS = 0xC002003F;
+pub const RPC_NT_INVALID_NAF_ID: NTSTATUS = 0xC0020040;
+pub const RPC_NT_CANNOT_SUPPORT: NTSTATUS = 0xC0020041;
+pub const RPC_NT_NO_CONTEXT_AVAILABLE: NTSTATUS = 0xC0020042;
+pub const RPC_NT_INTERNAL_ERROR: NTSTATUS = 0xC0020043;
+pub const RPC_NT_ZERO_DIVIDE: NTSTATUS = 0xC0020044;
+pub const RPC_NT_ADDRESS_ERROR: NTSTATUS = 0xC0020045;
+pub const RPC_NT_FP_DIV_ZERO: NTSTATUS = 0xC0020046;
+pub const RPC_NT_FP_UNDERFLOW: NTSTATUS = 0xC0020047;
+pub const RPC_NT_FP_OVERFLOW: NTSTATUS = 0xC0020048;
+pub const RPC_NT_NO_MORE_ENTRIES: NTSTATUS = 0xC0030001;
+pub const RPC_NT_SS_CHAR_TRANS_OPEN_FAIL: NTSTATUS = 0xC0030002;
+pub const RPC_NT_SS_CHAR_TRANS_SHORT_FILE: NTSTATUS = 0xC0030003;
+pub const RPC_NT_SS_IN_NULL_CONTEXT: NTSTATUS = 0xC0030004;
+pub const RPC_NT_SS_CONTEXT_MISMATCH: NTSTATUS = 0xC0030005;
+pub const RPC_NT_SS_CONTEXT_DAMAGED: NTSTATUS = 0xC0030006;
+pub const RPC_NT_SS_HANDLES_MISMATCH: NTSTATUS = 0xC0030007;
+pub const RPC_NT_SS_CANNOT_GET_CALL_HANDLE: NTSTATUS = 0xC0030008;
+pub const RPC_NT_NULL_REF_POINTER: NTSTATUS = 0xC0030009;
+pub const RPC_NT_ENUM_VALUE_OUT_OF_RANGE: NTSTATUS = 0xC003000A;
+pub const RPC_NT_BYTE_COUNT_TOO_SMALL: NTSTATUS = 0xC003000B;
+pub const RPC_NT_BAD_STUB_DATA: NTSTATUS = 0xC003000C;
+pub const RPC_NT_CALL_IN_PROGRESS: NTSTATUS = 0xC0020049;
+pub const RPC_NT_NO_MORE_BINDINGS: NTSTATUS = 0xC002004A;
+pub const RPC_NT_GROUP_MEMBER_NOT_FOUND: NTSTATUS = 0xC002004B;
+pub const EPT_NT_CANT_CREATE: NTSTATUS = 0xC002004C;
+pub const RPC_NT_INVALID_OBJECT: NTSTATUS = 0xC002004D;
+pub const RPC_NT_NO_INTERFACES: NTSTATUS = 0xC002004F;
+pub const RPC_NT_CALL_CANCELLED: NTSTATUS = 0xC0020050;
+pub const RPC_NT_BINDING_INCOMPLETE: NTSTATUS = 0xC0020051;
+pub const RPC_NT_COMM_FAILURE: NTSTATUS = 0xC0020052;
+pub const RPC_NT_UNSUPPORTED_AUTHN_LEVEL: NTSTATUS = 0xC0020053;
+pub const RPC_NT_NO_PRINC_NAME: NTSTATUS = 0xC0020054;
+pub const RPC_NT_NOT_RPC_ERROR: NTSTATUS = 0xC0020055;
+pub const RPC_NT_UUID_LOCAL_ONLY: NTSTATUS = 0x40020056;
+pub const RPC_NT_SEC_PKG_ERROR: NTSTATUS = 0xC0020057;
+pub const RPC_NT_NOT_CANCELLED: NTSTATUS = 0xC0020058;
+pub const RPC_NT_INVALID_ES_ACTION: NTSTATUS = 0xC0030059;
+pub const RPC_NT_WRONG_ES_VERSION: NTSTATUS = 0xC003005A;
+pub const RPC_NT_WRONG_STUB_VERSION: NTSTATUS = 0xC003005B;
+pub const RPC_NT_INVALID_PIPE_OBJECT: NTSTATUS = 0xC003005C;
+pub const RPC_NT_INVALID_PIPE_OPERATION: NTSTATUS = 0xC003005D;
+pub const RPC_NT_WRONG_PIPE_VERSION: NTSTATUS = 0xC003005E;
+pub const RPC_NT_PIPE_CLOSED: NTSTATUS = 0xC003005F;
+pub const RPC_NT_PIPE_DISCIPLINE_ERROR: NTSTATUS = 0xC0030060;
+pub const RPC_NT_PIPE_EMPTY: NTSTATUS = 0xC0030061;
+pub const RPC_NT_INVALID_ASYNC_HANDLE: NTSTATUS = 0xC0020062;
+pub const RPC_NT_INVALID_ASYNC_CALL: NTSTATUS = 0xC0020063;
+pub const RPC_NT_PROXY_ACCESS_DENIED: NTSTATUS = 0xC0020064;
+pub const RPC_NT_COOKIE_AUTH_FAILED: NTSTATUS = 0xC0020065;
+pub const RPC_NT_SEND_INCOMPLETE: NTSTATUS = 0x400200AF;
+pub const STATUS_ACPI_INVALID_OPCODE: NTSTATUS = 0xC0140001;
+pub const STATUS_ACPI_STACK_OVERFLOW: NTSTATUS = 0xC0140002;
+pub const STATUS_ACPI_ASSERT_FAILED: NTSTATUS = 0xC0140003;
+pub const STATUS_ACPI_INVALID_INDEX: NTSTATUS = 0xC0140004;
+pub const STATUS_ACPI_INVALID_ARGUMENT: NTSTATUS = 0xC0140005;
+pub const STATUS_ACPI_FATAL: NTSTATUS = 0xC0140006;
+pub const STATUS_ACPI_INVALID_SUPERNAME: NTSTATUS = 0xC0140007;
+pub const STATUS_ACPI_INVALID_ARGTYPE: NTSTATUS = 0xC0140008;
+pub const STATUS_ACPI_INVALID_OBJTYPE: NTSTATUS = 0xC0140009;
+pub const STATUS_ACPI_INVALID_TARGETTYPE: NTSTATUS = 0xC014000A;
+pub const STATUS_ACPI_INCORRECT_ARGUMENT_COUNT: NTSTATUS = 0xC014000B;
+pub const STATUS_ACPI_ADDRESS_NOT_MAPPED: NTSTATUS = 0xC014000C;
+pub const STATUS_ACPI_INVALID_EVENTTYPE: NTSTATUS = 0xC014000D;
+pub const STATUS_ACPI_HANDLER_COLLISION: NTSTATUS = 0xC014000E;
+pub const STATUS_ACPI_INVALID_DATA: NTSTATUS = 0xC014000F;
+pub const STATUS_ACPI_INVALID_REGION: NTSTATUS = 0xC0140010;
+pub const STATUS_ACPI_INVALID_ACCESS_SIZE: NTSTATUS = 0xC0140011;
+pub const STATUS_ACPI_ACQUIRE_GLOBAL_LOCK: NTSTATUS = 0xC0140012;
+pub const STATUS_ACPI_ALREADY_INITIALIZED: NTSTATUS = 0xC0140013;
+pub const STATUS_ACPI_NOT_INITIALIZED: NTSTATUS = 0xC0140014;
+pub const STATUS_ACPI_INVALID_MUTEX_LEVEL: NTSTATUS = 0xC0140015;
+pub const STATUS_ACPI_MUTEX_NOT_OWNED: NTSTATUS = 0xC0140016;
+pub const STATUS_ACPI_MUTEX_NOT_OWNER: NTSTATUS = 0xC0140017;
+pub const STATUS_ACPI_RS_ACCESS: NTSTATUS = 0xC0140018;
+pub const STATUS_ACPI_INVALID_TABLE: NTSTATUS = 0xC0140019;
+pub const STATUS_ACPI_REG_HANDLER_FAILED: NTSTATUS = 0xC0140020;
+pub const STATUS_ACPI_POWER_REQUEST_FAILED: NTSTATUS = 0xC0140021;
+pub const STATUS_CTX_WINSTATION_NAME_INVALID: NTSTATUS = 0xC00A0001;
+pub const STATUS_CTX_INVALID_PD: NTSTATUS = 0xC00A0002;
+pub const STATUS_CTX_PD_NOT_FOUND: NTSTATUS = 0xC00A0003;
+pub const STATUS_CTX_CDM_CONNECT: NTSTATUS = 0x400A0004;
+pub const STATUS_CTX_CDM_DISCONNECT: NTSTATUS = 0x400A0005;
+pub const STATUS_CTX_CLOSE_PENDING: NTSTATUS = 0xC00A0006;
+pub const STATUS_CTX_NO_OUTBUF: NTSTATUS = 0xC00A0007;
+pub const STATUS_CTX_MODEM_INF_NOT_FOUND: NTSTATUS = 0xC00A0008;
+pub const STATUS_CTX_INVALID_MODEMNAME: NTSTATUS = 0xC00A0009;
+pub const STATUS_CTX_RESPONSE_ERROR: NTSTATUS = 0xC00A000A;
+pub const STATUS_CTX_MODEM_RESPONSE_TIMEOUT: NTSTATUS = 0xC00A000B;
+pub const STATUS_CTX_MODEM_RESPONSE_NO_CARRIER: NTSTATUS = 0xC00A000C;
+pub const STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE: NTSTATUS = 0xC00A000D;
+pub const STATUS_CTX_MODEM_RESPONSE_BUSY: NTSTATUS = 0xC00A000E;
+pub const STATUS_CTX_MODEM_RESPONSE_VOICE: NTSTATUS = 0xC00A000F;
+pub const STATUS_CTX_TD_ERROR: NTSTATUS = 0xC00A0010;
+pub const STATUS_CTX_LICENSE_CLIENT_INVALID: NTSTATUS = 0xC00A0012;
+pub const STATUS_CTX_LICENSE_NOT_AVAILABLE: NTSTATUS = 0xC00A0013;
+pub const STATUS_CTX_LICENSE_EXPIRED: NTSTATUS = 0xC00A0014;
+pub const STATUS_CTX_WINSTATION_NOT_FOUND: NTSTATUS = 0xC00A0015;
+pub const STATUS_CTX_WINSTATION_NAME_COLLISION: NTSTATUS = 0xC00A0016;
+pub const STATUS_CTX_WINSTATION_BUSY: NTSTATUS = 0xC00A0017;
+pub const STATUS_CTX_BAD_VIDEO_MODE: NTSTATUS = 0xC00A0018;
+pub const STATUS_CTX_GRAPHICS_INVALID: NTSTATUS = 0xC00A0022;
+pub const STATUS_CTX_NOT_CONSOLE: NTSTATUS = 0xC00A0024;
+pub const STATUS_CTX_CLIENT_QUERY_TIMEOUT: NTSTATUS = 0xC00A0026;
+pub const STATUS_CTX_CONSOLE_DISCONNECT: NTSTATUS = 0xC00A0027;
+pub const STATUS_CTX_CONSOLE_CONNECT: NTSTATUS = 0xC00A0028;
+pub const STATUS_CTX_SHADOW_DENIED: NTSTATUS = 0xC00A002A;
+pub const STATUS_CTX_WINSTATION_ACCESS_DENIED: NTSTATUS = 0xC00A002B;
+pub const STATUS_CTX_INVALID_WD: NTSTATUS = 0xC00A002E;
+pub const STATUS_CTX_WD_NOT_FOUND: NTSTATUS = 0xC00A002F;
+pub const STATUS_CTX_SHADOW_INVALID: NTSTATUS = 0xC00A0030;
+pub const STATUS_CTX_SHADOW_DISABLED: NTSTATUS = 0xC00A0031;
+pub const STATUS_RDP_PROTOCOL_ERROR: NTSTATUS = 0xC00A0032;
+pub const STATUS_CTX_CLIENT_LICENSE_NOT_SET: NTSTATUS = 0xC00A0033;
+pub const STATUS_CTX_CLIENT_LICENSE_IN_USE: NTSTATUS = 0xC00A0034;
+pub const STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE: NTSTATUS = 0xC00A0035;
+pub const STATUS_CTX_SHADOW_NOT_RUNNING: NTSTATUS = 0xC00A0036;
+pub const STATUS_CTX_LOGON_DISABLED: NTSTATUS = 0xC00A0037;
+pub const STATUS_CTX_SECURITY_LAYER_ERROR: NTSTATUS = 0xC00A0038;
+pub const STATUS_TS_INCOMPATIBLE_SESSIONS: NTSTATUS = 0xC00A0039;
+pub const STATUS_TS_VIDEO_SUBSYSTEM_ERROR: NTSTATUS = 0xC00A003A;
+pub const STATUS_PNP_BAD_MPS_TABLE: NTSTATUS = 0xC0040035;
+pub const STATUS_PNP_TRANSLATION_FAILED: NTSTATUS = 0xC0040036;
+pub const STATUS_PNP_IRQ_TRANSLATION_FAILED: NTSTATUS = 0xC0040037;
+pub const STATUS_PNP_INVALID_ID: NTSTATUS = 0xC0040038;
+pub const STATUS_IO_REISSUE_AS_CACHED: NTSTATUS = 0xC0040039;
+pub const STATUS_MUI_FILE_NOT_FOUND: NTSTATUS = 0xC00B0001;
+pub const STATUS_MUI_INVALID_FILE: NTSTATUS = 0xC00B0002;
+pub const STATUS_MUI_INVALID_RC_CONFIG: NTSTATUS = 0xC00B0003;
+pub const STATUS_MUI_INVALID_LOCALE_NAME: NTSTATUS = 0xC00B0004;
+pub const STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME: NTSTATUS = 0xC00B0005;
+pub const STATUS_MUI_FILE_NOT_LOADED: NTSTATUS = 0xC00B0006;
+pub const STATUS_RESOURCE_ENUM_USER_STOP: NTSTATUS = 0xC00B0007;
+//FILTER_FLT_NTSTATUS_FROM_HRESULT
+pub const STATUS_FLT_NO_HANDLER_DEFINED: NTSTATUS = 0xC01C0001;
+pub const STATUS_FLT_CONTEXT_ALREADY_DEFINED: NTSTATUS = 0xC01C0002;
+pub const STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST: NTSTATUS = 0xC01C0003;
+pub const STATUS_FLT_DISALLOW_FAST_IO: NTSTATUS = 0xC01C0004;
+pub const STATUS_FLT_INVALID_NAME_REQUEST: NTSTATUS = 0xC01C0005;
+pub const STATUS_FLT_NOT_SAFE_TO_POST_OPERATION: NTSTATUS = 0xC01C0006;
+pub const STATUS_FLT_NOT_INITIALIZED: NTSTATUS = 0xC01C0007;
+pub const STATUS_FLT_FILTER_NOT_READY: NTSTATUS = 0xC01C0008;
+pub const STATUS_FLT_POST_OPERATION_CLEANUP: NTSTATUS = 0xC01C0009;
+pub const STATUS_FLT_INTERNAL_ERROR: NTSTATUS = 0xC01C000A;
+pub const STATUS_FLT_DELETING_OBJECT: NTSTATUS = 0xC01C000B;
+pub const STATUS_FLT_MUST_BE_NONPAGED_POOL: NTSTATUS = 0xC01C000C;
+pub const STATUS_FLT_DUPLICATE_ENTRY: NTSTATUS = 0xC01C000D;
+pub const STATUS_FLT_CBDQ_DISABLED: NTSTATUS = 0xC01C000E;
+pub const STATUS_FLT_DO_NOT_ATTACH: NTSTATUS = 0xC01C000F;
+pub const STATUS_FLT_DO_NOT_DETACH: NTSTATUS = 0xC01C0010;
+pub const STATUS_FLT_INSTANCE_ALTITUDE_COLLISION: NTSTATUS = 0xC01C0011;
+pub const STATUS_FLT_INSTANCE_NAME_COLLISION: NTSTATUS = 0xC01C0012;
+pub const STATUS_FLT_FILTER_NOT_FOUND: NTSTATUS = 0xC01C0013;
+pub const STATUS_FLT_VOLUME_NOT_FOUND: NTSTATUS = 0xC01C0014;
+pub const STATUS_FLT_INSTANCE_NOT_FOUND: NTSTATUS = 0xC01C0015;
+pub const STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND: NTSTATUS = 0xC01C0016;
+pub const STATUS_FLT_INVALID_CONTEXT_REGISTRATION: NTSTATUS = 0xC01C0017;
+pub const STATUS_FLT_NAME_CACHE_MISS: NTSTATUS = 0xC01C0018;
+pub const STATUS_FLT_NO_DEVICE_OBJECT: NTSTATUS = 0xC01C0019;
+pub const STATUS_FLT_VOLUME_ALREADY_MOUNTED: NTSTATUS = 0xC01C001A;
+pub const STATUS_FLT_ALREADY_ENLISTED: NTSTATUS = 0xC01C001B;
+pub const STATUS_FLT_CONTEXT_ALREADY_LINKED: NTSTATUS = 0xC01C001C;
+pub const STATUS_FLT_NO_WAITER_FOR_REPLY: NTSTATUS = 0xC01C0020;
+pub const STATUS_FLT_REGISTRATION_BUSY: NTSTATUS = 0xC01C0023;
+pub const STATUS_SXS_SECTION_NOT_FOUND: NTSTATUS = 0xC0150001;
+pub const STATUS_SXS_CANT_GEN_ACTCTX: NTSTATUS = 0xC0150002;
+pub const STATUS_SXS_INVALID_ACTCTXDATA_FORMAT: NTSTATUS = 0xC0150003;
+pub const STATUS_SXS_ASSEMBLY_NOT_FOUND: NTSTATUS = 0xC0150004;
+pub const STATUS_SXS_MANIFEST_FORMAT_ERROR: NTSTATUS = 0xC0150005;
+pub const STATUS_SXS_MANIFEST_PARSE_ERROR: NTSTATUS = 0xC0150006;
+pub const STATUS_SXS_ACTIVATION_CONTEXT_DISABLED: NTSTATUS = 0xC0150007;
+pub const STATUS_SXS_KEY_NOT_FOUND: NTSTATUS = 0xC0150008;
+pub const STATUS_SXS_VERSION_CONFLICT: NTSTATUS = 0xC0150009;
+pub const STATUS_SXS_WRONG_SECTION_TYPE: NTSTATUS = 0xC015000A;
+pub const STATUS_SXS_THREAD_QUERIES_DISABLED: NTSTATUS = 0xC015000B;
+pub const STATUS_SXS_ASSEMBLY_MISSING: NTSTATUS = 0xC015000C;
+pub const STATUS_SXS_RELEASE_ACTIVATION_CONTEXT: NTSTATUS = 0x4015000D;
+pub const STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET: NTSTATUS = 0xC015000E;
+pub const STATUS_SXS_EARLY_DEACTIVATION: NTSTATUS = 0xC015000F;
+pub const STATUS_SXS_INVALID_DEACTIVATION: NTSTATUS = 0xC0150010;
+pub const STATUS_SXS_MULTIPLE_DEACTIVATION: NTSTATUS = 0xC0150011;
+pub const STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: NTSTATUS = 0xC0150012;
+pub const STATUS_SXS_PROCESS_TERMINATION_REQUESTED: NTSTATUS = 0xC0150013;
+pub const STATUS_SXS_CORRUPT_ACTIVATION_STACK: NTSTATUS = 0xC0150014;
+pub const STATUS_SXS_CORRUPTION: NTSTATUS = 0xC0150015;
+pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: NTSTATUS = 0xC0150016;
+pub const STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: NTSTATUS = 0xC0150017;
+pub const STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: NTSTATUS = 0xC0150018;
+pub const STATUS_SXS_IDENTITY_PARSE_ERROR: NTSTATUS = 0xC0150019;
+pub const STATUS_SXS_COMPONENT_STORE_CORRUPT: NTSTATUS = 0xC015001A;
+pub const STATUS_SXS_FILE_HASH_MISMATCH: NTSTATUS = 0xC015001B;
+pub const STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: NTSTATUS
+ = 0xC015001C;
+pub const STATUS_SXS_IDENTITIES_DIFFERENT: NTSTATUS = 0xC015001D;
+pub const STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: NTSTATUS = 0xC015001E;
+pub const STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY: NTSTATUS = 0xC015001F;
+pub const STATUS_ADVANCED_INSTALLER_FAILED: NTSTATUS = 0xC0150020;
+pub const STATUS_XML_ENCODING_MISMATCH: NTSTATUS = 0xC0150021;
+pub const STATUS_SXS_MANIFEST_TOO_BIG: NTSTATUS = 0xC0150022;
+pub const STATUS_SXS_SETTING_NOT_REGISTERED: NTSTATUS = 0xC0150023;
+pub const STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE: NTSTATUS = 0xC0150024;
+pub const STATUS_SMI_PRIMITIVE_INSTALLER_FAILED: NTSTATUS = 0xC0150025;
+pub const STATUS_GENERIC_COMMAND_FAILED: NTSTATUS = 0xC0150026;
+pub const STATUS_SXS_FILE_HASH_MISSING: NTSTATUS = 0xC0150027;
+pub const STATUS_CLUSTER_INVALID_NODE: NTSTATUS = 0xC0130001;
+pub const STATUS_CLUSTER_NODE_EXISTS: NTSTATUS = 0xC0130002;
+pub const STATUS_CLUSTER_JOIN_IN_PROGRESS: NTSTATUS = 0xC0130003;
+pub const STATUS_CLUSTER_NODE_NOT_FOUND: NTSTATUS = 0xC0130004;
+pub const STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND: NTSTATUS = 0xC0130005;
+pub const STATUS_CLUSTER_NETWORK_EXISTS: NTSTATUS = 0xC0130006;
+pub const STATUS_CLUSTER_NETWORK_NOT_FOUND: NTSTATUS = 0xC0130007;
+pub const STATUS_CLUSTER_NETINTERFACE_EXISTS: NTSTATUS = 0xC0130008;
+pub const STATUS_CLUSTER_NETINTERFACE_NOT_FOUND: NTSTATUS = 0xC0130009;
+pub const STATUS_CLUSTER_INVALID_REQUEST: NTSTATUS = 0xC013000A;
+pub const STATUS_CLUSTER_INVALID_NETWORK_PROVIDER: NTSTATUS = 0xC013000B;
+pub const STATUS_CLUSTER_NODE_DOWN: NTSTATUS = 0xC013000C;
+pub const STATUS_CLUSTER_NODE_UNREACHABLE: NTSTATUS = 0xC013000D;
+pub const STATUS_CLUSTER_NODE_NOT_MEMBER: NTSTATUS = 0xC013000E;
+pub const STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS: NTSTATUS = 0xC013000F;
+pub const STATUS_CLUSTER_INVALID_NETWORK: NTSTATUS = 0xC0130010;
+pub const STATUS_CLUSTER_NO_NET_ADAPTERS: NTSTATUS = 0xC0130011;
+pub const STATUS_CLUSTER_NODE_UP: NTSTATUS = 0xC0130012;
+pub const STATUS_CLUSTER_NODE_PAUSED: NTSTATUS = 0xC0130013;
+pub const STATUS_CLUSTER_NODE_NOT_PAUSED: NTSTATUS = 0xC0130014;
+pub const STATUS_CLUSTER_NO_SECURITY_CONTEXT: NTSTATUS = 0xC0130015;
+pub const STATUS_CLUSTER_NETWORK_NOT_INTERNAL: NTSTATUS = 0xC0130016;
+pub const STATUS_CLUSTER_POISONED: NTSTATUS = 0xC0130017;
+pub const STATUS_CLUSTER_NON_CSV_PATH: NTSTATUS = 0xC0130018;
+pub const STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL: NTSTATUS = 0xC0130019;
+pub const STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS: NTSTATUS = 0xC0130020;
+pub const STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR: NTSTATUS = 0xC0130021;
+pub const STATUS_CLUSTER_CSV_REDIRECTED: NTSTATUS = 0xC0130022;
+pub const STATUS_CLUSTER_CSV_NOT_REDIRECTED: NTSTATUS = 0xC0130023;
+pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING: NTSTATUS = 0xC0130024;
+pub const STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS: NTSTATUS = 0xC0130025;
+pub const STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL: NTSTATUS = 0xC0130026;
+pub const STATUS_CLUSTER_CSV_NO_SNAPSHOTS: NTSTATUS = 0xC0130027;
+pub const STATUS_CSV_IO_PAUSE_TIMEOUT: NTSTATUS = 0xC0130028;
+pub const STATUS_CLUSTER_CSV_INVALID_HANDLE: NTSTATUS = 0xC0130029;
+pub const STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR: NTSTATUS = 0xC0130030;
+pub const STATUS_TRANSACTIONAL_CONFLICT: NTSTATUS = 0xC0190001;
+pub const STATUS_INVALID_TRANSACTION: NTSTATUS = 0xC0190002;
+pub const STATUS_TRANSACTION_NOT_ACTIVE: NTSTATUS = 0xC0190003;
+pub const STATUS_TM_INITIALIZATION_FAILED: NTSTATUS = 0xC0190004;
+pub const STATUS_RM_NOT_ACTIVE: NTSTATUS = 0xC0190005;
+pub const STATUS_RM_METADATA_CORRUPT: NTSTATUS = 0xC0190006;
+pub const STATUS_TRANSACTION_NOT_JOINED: NTSTATUS = 0xC0190007;
+pub const STATUS_DIRECTORY_NOT_RM: NTSTATUS = 0xC0190008;
+pub const STATUS_COULD_NOT_RESIZE_LOG: NTSTATUS = 0x80190009;
+pub const STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE: NTSTATUS = 0xC019000A;
+pub const STATUS_LOG_RESIZE_INVALID_SIZE: NTSTATUS = 0xC019000B;
+pub const STATUS_REMOTE_FILE_VERSION_MISMATCH: NTSTATUS = 0xC019000C;
+pub const STATUS_CRM_PROTOCOL_ALREADY_EXISTS: NTSTATUS = 0xC019000F;
+pub const STATUS_TRANSACTION_PROPAGATION_FAILED: NTSTATUS = 0xC0190010;
+pub const STATUS_CRM_PROTOCOL_NOT_FOUND: NTSTATUS = 0xC0190011;
+pub const STATUS_TRANSACTION_SUPERIOR_EXISTS: NTSTATUS = 0xC0190012;
+pub const STATUS_TRANSACTION_REQUEST_NOT_VALID: NTSTATUS = 0xC0190013;
+pub const STATUS_TRANSACTION_NOT_REQUESTED: NTSTATUS = 0xC0190014;
+pub const STATUS_TRANSACTION_ALREADY_ABORTED: NTSTATUS = 0xC0190015;
+pub const STATUS_TRANSACTION_ALREADY_COMMITTED: NTSTATUS = 0xC0190016;
+pub const STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER: NTSTATUS = 0xC0190017;
+pub const STATUS_CURRENT_TRANSACTION_NOT_VALID: NTSTATUS = 0xC0190018;
+pub const STATUS_LOG_GROWTH_FAILED: NTSTATUS = 0xC0190019;
+pub const STATUS_OBJECT_NO_LONGER_EXISTS: NTSTATUS = 0xC0190021;
+pub const STATUS_STREAM_MINIVERSION_NOT_FOUND: NTSTATUS = 0xC0190022;
+pub const STATUS_STREAM_MINIVERSION_NOT_VALID: NTSTATUS = 0xC0190023;
+pub const STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: NTSTATUS
+ = 0xC0190024;
+pub const STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: NTSTATUS = 0xC0190025;
+pub const STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS: NTSTATUS = 0xC0190026;
+pub const STATUS_HANDLE_NO_LONGER_VALID: NTSTATUS = 0xC0190028;
+pub const STATUS_NO_TXF_METADATA: NTSTATUS = 0x80190029;
+pub const STATUS_LOG_CORRUPTION_DETECTED: NTSTATUS = 0xC0190030;
+pub const STATUS_CANT_RECOVER_WITH_HANDLE_OPEN: NTSTATUS = 0x80190031;
+pub const STATUS_RM_DISCONNECTED: NTSTATUS = 0xC0190032;
+pub const STATUS_ENLISTMENT_NOT_SUPERIOR: NTSTATUS = 0xC0190033;
+pub const STATUS_RECOVERY_NOT_NEEDED: NTSTATUS = 0x40190034;
+pub const STATUS_RM_ALREADY_STARTED: NTSTATUS = 0x40190035;
+pub const STATUS_FILE_IDENTITY_NOT_PERSISTENT: NTSTATUS = 0xC0190036;
+pub const STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: NTSTATUS = 0xC0190037;
+pub const STATUS_CANT_CROSS_RM_BOUNDARY: NTSTATUS = 0xC0190038;
+pub const STATUS_TXF_DIR_NOT_EMPTY: NTSTATUS = 0xC0190039;
+pub const STATUS_INDOUBT_TRANSACTIONS_EXIST: NTSTATUS = 0xC019003A;
+pub const STATUS_TM_VOLATILE: NTSTATUS = 0xC019003B;
+pub const STATUS_ROLLBACK_TIMER_EXPIRED: NTSTATUS = 0xC019003C;
+pub const STATUS_TXF_ATTRIBUTE_CORRUPT: NTSTATUS = 0xC019003D;
+pub const STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC019003E;
+pub const STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED: NTSTATUS = 0xC019003F;
+pub const STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: NTSTATUS = 0xC0190040;
+pub const STATUS_TXF_METADATA_ALREADY_PRESENT: NTSTATUS = 0x80190041;
+pub const STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: NTSTATUS = 0x80190042;
+pub const STATUS_TRANSACTION_REQUIRED_PROMOTION: NTSTATUS = 0xC0190043;
+pub const STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION: NTSTATUS = 0xC0190044;
+pub const STATUS_TRANSACTIONS_NOT_FROZEN: NTSTATUS = 0xC0190045;
+pub const STATUS_TRANSACTION_FREEZE_IN_PROGRESS: NTSTATUS = 0xC0190046;
+pub const STATUS_NOT_SNAPSHOT_VOLUME: NTSTATUS = 0xC0190047;
+pub const STATUS_NO_SAVEPOINT_WITH_OPEN_FILES: NTSTATUS = 0xC0190048;
+pub const STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC0190049;
+pub const STATUS_TM_IDENTITY_MISMATCH: NTSTATUS = 0xC019004A;
+pub const STATUS_FLOATED_SECTION: NTSTATUS = 0xC019004B;
+pub const STATUS_CANNOT_ACCEPT_TRANSACTED_WORK: NTSTATUS = 0xC019004C;
+pub const STATUS_CANNOT_ABORT_TRANSACTIONS: NTSTATUS = 0xC019004D;
+pub const STATUS_TRANSACTION_NOT_FOUND: NTSTATUS = 0xC019004E;
+pub const STATUS_RESOURCEMANAGER_NOT_FOUND: NTSTATUS = 0xC019004F;
+pub const STATUS_ENLISTMENT_NOT_FOUND: NTSTATUS = 0xC0190050;
+pub const STATUS_TRANSACTIONMANAGER_NOT_FOUND: NTSTATUS = 0xC0190051;
+pub const STATUS_TRANSACTIONMANAGER_NOT_ONLINE: NTSTATUS = 0xC0190052;
+pub const STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: NTSTATUS = 0xC0190053;
+pub const STATUS_TRANSACTION_NOT_ROOT: NTSTATUS = 0xC0190054;
+pub const STATUS_TRANSACTION_OBJECT_EXPIRED: NTSTATUS = 0xC0190055;
+pub const STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: NTSTATUS = 0xC0190056;
+pub const STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED: NTSTATUS = 0xC0190057;
+pub const STATUS_TRANSACTION_RECORD_TOO_LONG: NTSTATUS = 0xC0190058;
+pub const STATUS_NO_LINK_TRACKING_IN_TRANSACTION: NTSTATUS = 0xC0190059;
+pub const STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: NTSTATUS = 0xC019005A;
+pub const STATUS_TRANSACTION_INTEGRITY_VIOLATED: NTSTATUS = 0xC019005B;
+pub const STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH: NTSTATUS = 0xC019005C;
+pub const STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: NTSTATUS = 0xC019005D;
+pub const STATUS_TRANSACTION_MUST_WRITETHROUGH: NTSTATUS = 0xC019005E;
+pub const STATUS_TRANSACTION_NO_SUPERIOR: NTSTATUS = 0xC019005F;
+pub const STATUS_EXPIRED_HANDLE: NTSTATUS = 0xC0190060;
+pub const STATUS_TRANSACTION_NOT_ENLISTED: NTSTATUS = 0xC0190061;
+pub const STATUS_LOG_SECTOR_INVALID: NTSTATUS = 0xC01A0001;
+pub const STATUS_LOG_SECTOR_PARITY_INVALID: NTSTATUS = 0xC01A0002;
+pub const STATUS_LOG_SECTOR_REMAPPED: NTSTATUS = 0xC01A0003;
+pub const STATUS_LOG_BLOCK_INCOMPLETE: NTSTATUS = 0xC01A0004;
+pub const STATUS_LOG_INVALID_RANGE: NTSTATUS = 0xC01A0005;
+pub const STATUS_LOG_BLOCKS_EXHAUSTED: NTSTATUS = 0xC01A0006;
+pub const STATUS_LOG_READ_CONTEXT_INVALID: NTSTATUS = 0xC01A0007;
+pub const STATUS_LOG_RESTART_INVALID: NTSTATUS = 0xC01A0008;
+pub const STATUS_LOG_BLOCK_VERSION: NTSTATUS = 0xC01A0009;
+pub const STATUS_LOG_BLOCK_INVALID: NTSTATUS = 0xC01A000A;
+pub const STATUS_LOG_READ_MODE_INVALID: NTSTATUS = 0xC01A000B;
+pub const STATUS_LOG_NO_RESTART: NTSTATUS = 0x401A000C;
+pub const STATUS_LOG_METADATA_CORRUPT: NTSTATUS = 0xC01A000D;
+pub const STATUS_LOG_METADATA_INVALID: NTSTATUS = 0xC01A000E;
+pub const STATUS_LOG_METADATA_INCONSISTENT: NTSTATUS = 0xC01A000F;
+pub const STATUS_LOG_RESERVATION_INVALID: NTSTATUS = 0xC01A0010;
+pub const STATUS_LOG_CANT_DELETE: NTSTATUS = 0xC01A0011;
+pub const STATUS_LOG_CONTAINER_LIMIT_EXCEEDED: NTSTATUS = 0xC01A0012;
+pub const STATUS_LOG_START_OF_LOG: NTSTATUS = 0xC01A0013;
+pub const STATUS_LOG_POLICY_ALREADY_INSTALLED: NTSTATUS = 0xC01A0014;
+pub const STATUS_LOG_POLICY_NOT_INSTALLED: NTSTATUS = 0xC01A0015;
+pub const STATUS_LOG_POLICY_INVALID: NTSTATUS = 0xC01A0016;
+pub const STATUS_LOG_POLICY_CONFLICT: NTSTATUS = 0xC01A0017;
+pub const STATUS_LOG_PINNED_ARCHIVE_TAIL: NTSTATUS = 0xC01A0018;
+pub const STATUS_LOG_RECORD_NONEXISTENT: NTSTATUS = 0xC01A0019;
+pub const STATUS_LOG_RECORDS_RESERVED_INVALID: NTSTATUS = 0xC01A001A;
+pub const STATUS_LOG_SPACE_RESERVED_INVALID: NTSTATUS = 0xC01A001B;
+pub const STATUS_LOG_TAIL_INVALID: NTSTATUS = 0xC01A001C;
+pub const STATUS_LOG_FULL: NTSTATUS = 0xC01A001D;
+pub const STATUS_LOG_MULTIPLEXED: NTSTATUS = 0xC01A001E;
+pub const STATUS_LOG_DEDICATED: NTSTATUS = 0xC01A001F;
+pub const STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS: NTSTATUS = 0xC01A0020;
+pub const STATUS_LOG_ARCHIVE_IN_PROGRESS: NTSTATUS = 0xC01A0021;
+pub const STATUS_LOG_EPHEMERAL: NTSTATUS = 0xC01A0022;
+pub const STATUS_LOG_NOT_ENOUGH_CONTAINERS: NTSTATUS = 0xC01A0023;
+pub const STATUS_LOG_CLIENT_ALREADY_REGISTERED: NTSTATUS = 0xC01A0024;
+pub const STATUS_LOG_CLIENT_NOT_REGISTERED: NTSTATUS = 0xC01A0025;
+pub const STATUS_LOG_FULL_HANDLER_IN_PROGRESS: NTSTATUS = 0xC01A0026;
+pub const STATUS_LOG_CONTAINER_READ_FAILED: NTSTATUS = 0xC01A0027;
+pub const STATUS_LOG_CONTAINER_WRITE_FAILED: NTSTATUS = 0xC01A0028;
+pub const STATUS_LOG_CONTAINER_OPEN_FAILED: NTSTATUS = 0xC01A0029;
+pub const STATUS_LOG_CONTAINER_STATE_INVALID: NTSTATUS = 0xC01A002A;
+pub const STATUS_LOG_STATE_INVALID: NTSTATUS = 0xC01A002B;
+pub const STATUS_LOG_PINNED: NTSTATUS = 0xC01A002C;
+pub const STATUS_LOG_METADATA_FLUSH_FAILED: NTSTATUS = 0xC01A002D;
+pub const STATUS_LOG_INCONSISTENT_SECURITY: NTSTATUS = 0xC01A002E;
+pub const STATUS_LOG_APPENDED_FLUSH_FAILED: NTSTATUS = 0xC01A002F;
+pub const STATUS_LOG_PINNED_RESERVATION: NTSTATUS = 0xC01A0030;
+pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD: NTSTATUS = 0xC01B00EA;
+pub const STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED: NTSTATUS = 0x801B00EB;
+pub const STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST: NTSTATUS = 0x401B00EC;
+pub const STATUS_MONITOR_NO_DESCRIPTOR: NTSTATUS = 0xC01D0001;
+pub const STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT: NTSTATUS = 0xC01D0002;
+pub const STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM: NTSTATUS = 0xC01D0003;
+pub const STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK: NTSTATUS = 0xC01D0004;
+pub const STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED: NTSTATUS = 0xC01D0005;
+pub const STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK: NTSTATUS = 0xC01D0006;
+pub const STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK: NTSTATUS = 0xC01D0007;
+pub const STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA: NTSTATUS = 0xC01D0008;
+pub const STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK: NTSTATUS = 0xC01D0009;
+pub const STATUS_MONITOR_INVALID_MANUFACTURE_DATE: NTSTATUS = 0xC01D000A;
+pub const STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER: NTSTATUS = 0xC01E0000;
+pub const STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER: NTSTATUS = 0xC01E0001;
+pub const STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER: NTSTATUS = 0xC01E0002;
+pub const STATUS_GRAPHICS_ADAPTER_WAS_RESET: NTSTATUS = 0xC01E0003;
+pub const STATUS_GRAPHICS_INVALID_DRIVER_MODEL: NTSTATUS = 0xC01E0004;
+pub const STATUS_GRAPHICS_PRESENT_MODE_CHANGED: NTSTATUS = 0xC01E0005;
+pub const STATUS_GRAPHICS_PRESENT_OCCLUDED: NTSTATUS = 0xC01E0006;
+pub const STATUS_GRAPHICS_PRESENT_DENIED: NTSTATUS = 0xC01E0007;
+pub const STATUS_GRAPHICS_CANNOTCOLORCONVERT: NTSTATUS = 0xC01E0008;
+pub const STATUS_GRAPHICS_DRIVER_MISMATCH: NTSTATUS = 0xC01E0009;
+pub const STATUS_GRAPHICS_PARTIAL_DATA_POPULATED: NTSTATUS = 0x401E000A;
+pub const STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED: NTSTATUS = 0xC01E000B;
+pub const STATUS_GRAPHICS_PRESENT_UNOCCLUDED: NTSTATUS = 0xC01E000C;
+pub const STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE: NTSTATUS = 0xC01E000D;
+pub const STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED: NTSTATUS = 0xC01E000E;
+pub const STATUS_GRAPHICS_NO_VIDEO_MEMORY: NTSTATUS = 0xC01E0100;
+pub const STATUS_GRAPHICS_CANT_LOCK_MEMORY: NTSTATUS = 0xC01E0101;
+pub const STATUS_GRAPHICS_ALLOCATION_BUSY: NTSTATUS = 0xC01E0102;
+pub const STATUS_GRAPHICS_TOO_MANY_REFERENCES: NTSTATUS = 0xC01E0103;
+pub const STATUS_GRAPHICS_TRY_AGAIN_LATER: NTSTATUS = 0xC01E0104;
+pub const STATUS_GRAPHICS_TRY_AGAIN_NOW: NTSTATUS = 0xC01E0105;
+pub const STATUS_GRAPHICS_ALLOCATION_INVALID: NTSTATUS = 0xC01E0106;
+pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE: NTSTATUS = 0xC01E0107;
+pub const STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED: NTSTATUS = 0xC01E0108;
+pub const STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION: NTSTATUS = 0xC01E0109;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE: NTSTATUS = 0xC01E0110;
+pub const STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION: NTSTATUS = 0xC01E0111;
+pub const STATUS_GRAPHICS_ALLOCATION_CLOSED: NTSTATUS = 0xC01E0112;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE: NTSTATUS = 0xC01E0113;
+pub const STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE: NTSTATUS = 0xC01E0114;
+pub const STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE: NTSTATUS = 0xC01E0115;
+pub const STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST: NTSTATUS = 0xC01E0116;
+pub const STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE: NTSTATUS = 0xC01E0200;
+pub const STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION: NTSTATUS = 0x401E0201;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E0300;
+pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED: NTSTATUS = 0xC01E0301;
+pub const STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED: NTSTATUS = 0xC01E0302;
+pub const STATUS_GRAPHICS_INVALID_VIDPN: NTSTATUS = 0xC01E0303;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE: NTSTATUS = 0xC01E0304;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET: NTSTATUS = 0xC01E0305;
+pub const STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED: NTSTATUS = 0xC01E0306;
+pub const STATUS_GRAPHICS_MODE_NOT_PINNED: NTSTATUS = 0x401E0307;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET: NTSTATUS = 0xC01E0308;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET: NTSTATUS = 0xC01E0309;
+pub const STATUS_GRAPHICS_INVALID_FREQUENCY: NTSTATUS = 0xC01E030A;
+pub const STATUS_GRAPHICS_INVALID_ACTIVE_REGION: NTSTATUS = 0xC01E030B;
+pub const STATUS_GRAPHICS_INVALID_TOTAL_REGION: NTSTATUS = 0xC01E030C;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE: NTSTATUS = 0xC01E0310;
+pub const STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE: NTSTATUS = 0xC01E0311;
+pub const STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET: NTSTATUS = 0xC01E0312;
+pub const STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY: NTSTATUS = 0xC01E0313;
+pub const STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET: NTSTATUS = 0xC01E0314;
+pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET: NTSTATUS = 0xC01E0315;
+pub const STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET: NTSTATUS = 0xC01E0316;
+pub const STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET: NTSTATUS = 0xC01E0317;
+pub const STATUS_GRAPHICS_TARGET_ALREADY_IN_SET: NTSTATUS = 0xC01E0318;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH: NTSTATUS = 0xC01E0319;
+pub const STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E031A;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET: NTSTATUS = 0xC01E031B;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE: NTSTATUS = 0xC01E031C;
+pub const STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET: NTSTATUS = 0xC01E031D;
+pub const STATUS_GRAPHICS_NO_PREFERRED_MODE: NTSTATUS = 0x401E031E;
+pub const STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET: NTSTATUS = 0xC01E031F;
+pub const STATUS_GRAPHICS_STALE_MODESET: NTSTATUS = 0xC01E0320;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET: NTSTATUS = 0xC01E0321;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE: NTSTATUS = 0xC01E0322;
+pub const STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN: NTSTATUS = 0xC01E0323;
+pub const STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0324;
+pub const STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION: NTSTATUS
+ = 0xC01E0325;
+pub const STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES: NTSTATUS = 0xC01E0326;
+pub const STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0327;
+pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE: NTSTATUS = 0xC01E0328;
+pub const STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET: NTSTATUS = 0xC01E0329;
+pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET: NTSTATUS = 0xC01E032A;
+pub const STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR: NTSTATUS = 0xC01E032B;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET: NTSTATUS = 0xC01E032C;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET: NTSTATUS = 0xC01E032D;
+pub const STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E032E;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE: NTSTATUS = 0xC01E032F;
+pub const STATUS_GRAPHICS_RESOURCES_NOT_RELATED: NTSTATUS = 0xC01E0330;
+pub const STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0331;
+pub const STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE: NTSTATUS = 0xC01E0332;
+pub const STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET: NTSTATUS = 0xC01E0333;
+pub const STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER: NTSTATUS
+ = 0xC01E0334;
+pub const STATUS_GRAPHICS_NO_VIDPNMGR: NTSTATUS = 0xC01E0335;
+pub const STATUS_GRAPHICS_NO_ACTIVE_VIDPN: NTSTATUS = 0xC01E0336;
+pub const STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY: NTSTATUS = 0xC01E0337;
+pub const STATUS_GRAPHICS_MONITOR_NOT_CONNECTED: NTSTATUS = 0xC01E0338;
+pub const STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0339;
+pub const STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE: NTSTATUS = 0xC01E033A;
+pub const STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE: NTSTATUS = 0xC01E033B;
+pub const STATUS_GRAPHICS_INVALID_STRIDE: NTSTATUS = 0xC01E033C;
+pub const STATUS_GRAPHICS_INVALID_PIXELFORMAT: NTSTATUS = 0xC01E033D;
+pub const STATUS_GRAPHICS_INVALID_COLORBASIS: NTSTATUS = 0xC01E033E;
+pub const STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE: NTSTATUS = 0xC01E033F;
+pub const STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY: NTSTATUS = 0xC01E0340;
+pub const STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT: NTSTATUS = 0xC01E0341;
+pub const STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE: NTSTATUS = 0xC01E0342;
+pub const STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN: NTSTATUS = 0xC01E0343;
+pub const STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL: NTSTATUS = 0xC01E0344;
+pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION: NTSTATUS
+ = 0xC01E0345;
+pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED: NTSTATUS
+ = 0xC01E0346;
+pub const STATUS_GRAPHICS_INVALID_GAMMA_RAMP: NTSTATUS = 0xC01E0347;
+pub const STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED: NTSTATUS = 0xC01E0348;
+pub const STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED: NTSTATUS = 0xC01E0349;
+pub const STATUS_GRAPHICS_MODE_NOT_IN_MODESET: NTSTATUS = 0xC01E034A;
+pub const STATUS_GRAPHICS_DATASET_IS_EMPTY: NTSTATUS = 0x401E034B;
+pub const STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET: NTSTATUS = 0x401E034C;
+pub const STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON: NTSTATUS
+ = 0xC01E034D;
+pub const STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE: NTSTATUS = 0xC01E034E;
+pub const STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE: NTSTATUS = 0xC01E034F;
+pub const STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS: NTSTATUS = 0xC01E0350;
+pub const STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED: NTSTATUS = 0x401E0351;
+pub const STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING: NTSTATUS = 0xC01E0352;
+pub const STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED: NTSTATUS = 0xC01E0353;
+pub const STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS: NTSTATUS = 0xC01E0354;
+pub const STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT: NTSTATUS = 0xC01E0355;
+pub const STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM: NTSTATUS = 0xC01E0356;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN: NTSTATUS = 0xC01E0357;
+pub const STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT: NTSTATUS
+ = 0xC01E0358;
+pub const STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED: NTSTATUS = 0xC01E0359;
+pub const STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION: NTSTATUS = 0xC01E035A;
+pub const STATUS_GRAPHICS_INVALID_CLIENT_TYPE: NTSTATUS = 0xC01E035B;
+pub const STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET: NTSTATUS = 0xC01E035C;
+pub const STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED: NTSTATUS = 0xC01E0400;
+pub const STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED: NTSTATUS = 0xC01E0401;
+pub const STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS: NTSTATUS = 0x401E042F;
+pub const STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER: NTSTATUS = 0xC01E0430;
+pub const STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED: NTSTATUS = 0xC01E0431;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED: NTSTATUS = 0xC01E0432;
+pub const STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY: NTSTATUS = 0xC01E0433;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED: NTSTATUS = 0xC01E0434;
+pub const STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON: NTSTATUS = 0xC01E0435;
+pub const STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE: NTSTATUS = 0xC01E0436;
+pub const STATUS_GRAPHICS_LEADLINK_START_DEFERRED: NTSTATUS = 0x401E0437;
+pub const STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER: NTSTATUS = 0xC01E0438;
+pub const STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY: NTSTATUS = 0x401E0439;
+pub const STATUS_GRAPHICS_START_DEFERRED: NTSTATUS = 0x401E043A;
+pub const STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED: NTSTATUS = 0xC01E043B;
+pub const STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS: NTSTATUS = 0x401E043C;
+pub const STATUS_GRAPHICS_OPM_NOT_SUPPORTED: NTSTATUS = 0xC01E0500;
+pub const STATUS_GRAPHICS_COPP_NOT_SUPPORTED: NTSTATUS = 0xC01E0501;
+pub const STATUS_GRAPHICS_UAB_NOT_SUPPORTED: NTSTATUS = 0xC01E0502;
+pub const STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS: NTSTATUS = 0xC01E0503;
+pub const STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST: NTSTATUS = 0xC01E0505;
+pub const STATUS_GRAPHICS_OPM_INTERNAL_ERROR: NTSTATUS = 0xC01E050B;
+pub const STATUS_GRAPHICS_OPM_INVALID_HANDLE: NTSTATUS = 0xC01E050C;
+pub const STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH: NTSTATUS = 0xC01E050E;
+pub const STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED: NTSTATUS = 0xC01E050F;
+pub const STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED: NTSTATUS = 0xC01E0510;
+pub const STATUS_GRAPHICS_PVP_HFS_FAILED: NTSTATUS = 0xC01E0511;
+pub const STATUS_GRAPHICS_OPM_INVALID_SRM: NTSTATUS = 0xC01E0512;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP: NTSTATUS = 0xC01E0513;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP: NTSTATUS = 0xC01E0514;
+pub const STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA: NTSTATUS = 0xC01E0515;
+pub const STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET: NTSTATUS = 0xC01E0516;
+pub const STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH: NTSTATUS = 0xC01E0517;
+pub const STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE: NTSTATUS = 0xC01E0518;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS: NTSTATUS = 0xC01E051A;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS: NTSTATUS
+ = 0xC01E051C;
+pub const STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST: NTSTATUS = 0xC01E051D;
+pub const STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR: NTSTATUS = 0xC01E051E;
+pub const STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS: NTSTATUS
+ = 0xC01E051F;
+pub const STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED: NTSTATUS = 0xC01E0520;
+pub const STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST: NTSTATUS = 0xC01E0521;
+pub const STATUS_GRAPHICS_I2C_NOT_SUPPORTED: NTSTATUS = 0xC01E0580;
+pub const STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST: NTSTATUS = 0xC01E0581;
+pub const STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA: NTSTATUS = 0xC01E0582;
+pub const STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA: NTSTATUS = 0xC01E0583;
+pub const STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED: NTSTATUS = 0xC01E0584;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_DATA: NTSTATUS = 0xC01E0585;
+pub const STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE: NTSTATUS
+ = 0xC01E0586;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING: NTSTATUS = 0xC01E0587;
+pub const STATUS_GRAPHICS_MCA_INTERNAL_ERROR: NTSTATUS = 0xC01E0588;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND: NTSTATUS = 0xC01E0589;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH: NTSTATUS = 0xC01E058A;
+pub const STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM: NTSTATUS = 0xC01E058B;
+pub const STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE: NTSTATUS = 0xC01E058C;
+pub const STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS: NTSTATUS = 0xC01E058D;
+pub const STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED: NTSTATUS = 0xC01E05E0;
+pub const STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME: NTSTATUS = 0xC01E05E1;
+pub const STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP: NTSTATUS = 0xC01E05E2;
+pub const STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED: NTSTATUS = 0xC01E05E3;
+pub const STATUS_GRAPHICS_INVALID_POINTER: NTSTATUS = 0xC01E05E4;
+pub const STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE: NTSTATUS
+ = 0xC01E05E5;
+pub const STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL: NTSTATUS = 0xC01E05E6;
+pub const STATUS_GRAPHICS_INTERNAL_ERROR: NTSTATUS = 0xC01E05E7;
+pub const STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS: NTSTATUS = 0xC01E05E8;
+pub const STATUS_FVE_LOCKED_VOLUME: NTSTATUS = 0xC0210000;
+pub const STATUS_FVE_NOT_ENCRYPTED: NTSTATUS = 0xC0210001;
+pub const STATUS_FVE_BAD_INFORMATION: NTSTATUS = 0xC0210002;
+pub const STATUS_FVE_TOO_SMALL: NTSTATUS = 0xC0210003;
+pub const STATUS_FVE_FAILED_WRONG_FS: NTSTATUS = 0xC0210004;
+pub const STATUS_FVE_BAD_PARTITION_SIZE: NTSTATUS = 0xC0210005;
+pub const STATUS_FVE_FS_NOT_EXTENDED: NTSTATUS = 0xC0210006;
+pub const STATUS_FVE_FS_MOUNTED: NTSTATUS = 0xC0210007;
+pub const STATUS_FVE_NO_LICENSE: NTSTATUS = 0xC0210008;
+pub const STATUS_FVE_ACTION_NOT_ALLOWED: NTSTATUS = 0xC0210009;
+pub const STATUS_FVE_BAD_DATA: NTSTATUS = 0xC021000A;
+pub const STATUS_FVE_VOLUME_NOT_BOUND: NTSTATUS = 0xC021000B;
+pub const STATUS_FVE_NOT_DATA_VOLUME: NTSTATUS = 0xC021000C;
+pub const STATUS_FVE_CONV_READ_ERROR: NTSTATUS = 0xC021000D;
+pub const STATUS_FVE_CONV_WRITE_ERROR: NTSTATUS = 0xC021000E;
+pub const STATUS_FVE_OVERLAPPED_UPDATE: NTSTATUS = 0xC021000F;
+pub const STATUS_FVE_FAILED_SECTOR_SIZE: NTSTATUS = 0xC0210010;
+pub const STATUS_FVE_FAILED_AUTHENTICATION: NTSTATUS = 0xC0210011;
+pub const STATUS_FVE_NOT_OS_VOLUME: NTSTATUS = 0xC0210012;
+pub const STATUS_FVE_KEYFILE_NOT_FOUND: NTSTATUS = 0xC0210013;
+pub const STATUS_FVE_KEYFILE_INVALID: NTSTATUS = 0xC0210014;
+pub const STATUS_FVE_KEYFILE_NO_VMK: NTSTATUS = 0xC0210015;
+pub const STATUS_FVE_TPM_DISABLED: NTSTATUS = 0xC0210016;
+pub const STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO: NTSTATUS = 0xC0210017;
+pub const STATUS_FVE_TPM_INVALID_PCR: NTSTATUS = 0xC0210018;
+pub const STATUS_FVE_TPM_NO_VMK: NTSTATUS = 0xC0210019;
+pub const STATUS_FVE_PIN_INVALID: NTSTATUS = 0xC021001A;
+pub const STATUS_FVE_AUTH_INVALID_APPLICATION: NTSTATUS = 0xC021001B;
+pub const STATUS_FVE_AUTH_INVALID_CONFIG: NTSTATUS = 0xC021001C;
+pub const STATUS_FVE_DEBUGGER_ENABLED: NTSTATUS = 0xC021001D;
+pub const STATUS_FVE_DRY_RUN_FAILED: NTSTATUS = 0xC021001E;
+pub const STATUS_FVE_BAD_METADATA_POINTER: NTSTATUS = 0xC021001F;
+pub const STATUS_FVE_OLD_METADATA_COPY: NTSTATUS = 0xC0210020;
+pub const STATUS_FVE_REBOOT_REQUIRED: NTSTATUS = 0xC0210021;
+pub const STATUS_FVE_RAW_ACCESS: NTSTATUS = 0xC0210022;
+pub const STATUS_FVE_RAW_BLOCKED: NTSTATUS = 0xC0210023;
+pub const STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY: NTSTATUS = 0xC0210024;
+pub const STATUS_FVE_MOR_FAILED: NTSTATUS = 0xC0210025;
+pub const STATUS_FVE_NO_FEATURE_LICENSE: NTSTATUS = 0xC0210026;
+pub const STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED: NTSTATUS = 0xC0210027;
+pub const STATUS_FVE_CONV_RECOVERY_FAILED: NTSTATUS = 0xC0210028;
+pub const STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG: NTSTATUS = 0xC0210029;
+pub const STATUS_FVE_INVALID_DATUM_TYPE: NTSTATUS = 0xC021002A;
+pub const STATUS_FVE_VOLUME_TOO_SMALL: NTSTATUS = 0xC0210030;
+pub const STATUS_FVE_ENH_PIN_INVALID: NTSTATUS = 0xC0210031;
+pub const STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = 0xC0210032;
+pub const STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE: NTSTATUS = 0xC0210033;
+pub const STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK: NTSTATUS = 0xC0210034;
+pub const STATUS_FVE_NOT_ALLOWED_ON_CLUSTER: NTSTATUS = 0xC0210035;
+pub const STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING: NTSTATUS = 0xC0210036;
+pub const STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE: NTSTATUS = 0xC0210037;
+pub const STATUS_FVE_EDRIVE_DRY_RUN_FAILED: NTSTATUS = 0xC0210038;
+pub const STATUS_FVE_SECUREBOOT_DISABLED: NTSTATUS = 0xC0210039;
+pub const STATUS_FVE_SECUREBOOT_CONFIG_CHANGE: NTSTATUS = 0xC021003A;
+pub const STATUS_FVE_DEVICE_LOCKEDOUT: NTSTATUS = 0xC021003B;
+pub const STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT: NTSTATUS = 0xC021003C;
+pub const STATUS_FVE_NOT_DE_VOLUME: NTSTATUS = 0xC021003D;
+pub const STATUS_FVE_PROTECTION_DISABLED: NTSTATUS = 0xC021003E;
+pub const STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED: NTSTATUS = 0xC021003F;
+pub const STATUS_FWP_CALLOUT_NOT_FOUND: NTSTATUS = 0xC0220001;
+pub const STATUS_FWP_CONDITION_NOT_FOUND: NTSTATUS = 0xC0220002;
+pub const STATUS_FWP_FILTER_NOT_FOUND: NTSTATUS = 0xC0220003;
+pub const STATUS_FWP_LAYER_NOT_FOUND: NTSTATUS = 0xC0220004;
+pub const STATUS_FWP_PROVIDER_NOT_FOUND: NTSTATUS = 0xC0220005;
+pub const STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND: NTSTATUS = 0xC0220006;
+pub const STATUS_FWP_SUBLAYER_NOT_FOUND: NTSTATUS = 0xC0220007;
+pub const STATUS_FWP_NOT_FOUND: NTSTATUS = 0xC0220008;
+pub const STATUS_FWP_ALREADY_EXISTS: NTSTATUS = 0xC0220009;
+pub const STATUS_FWP_IN_USE: NTSTATUS = 0xC022000A;
+pub const STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS: NTSTATUS = 0xC022000B;
+pub const STATUS_FWP_WRONG_SESSION: NTSTATUS = 0xC022000C;
+pub const STATUS_FWP_NO_TXN_IN_PROGRESS: NTSTATUS = 0xC022000D;
+pub const STATUS_FWP_TXN_IN_PROGRESS: NTSTATUS = 0xC022000E;
+pub const STATUS_FWP_TXN_ABORTED: NTSTATUS = 0xC022000F;
+pub const STATUS_FWP_SESSION_ABORTED: NTSTATUS = 0xC0220010;
+pub const STATUS_FWP_INCOMPATIBLE_TXN: NTSTATUS = 0xC0220011;
+pub const STATUS_FWP_TIMEOUT: NTSTATUS = 0xC0220012;
+pub const STATUS_FWP_NET_EVENTS_DISABLED: NTSTATUS = 0xC0220013;
+pub const STATUS_FWP_INCOMPATIBLE_LAYER: NTSTATUS = 0xC0220014;
+pub const STATUS_FWP_KM_CLIENTS_ONLY: NTSTATUS = 0xC0220015;
+pub const STATUS_FWP_LIFETIME_MISMATCH: NTSTATUS = 0xC0220016;
+pub const STATUS_FWP_BUILTIN_OBJECT: NTSTATUS = 0xC0220017;
+pub const STATUS_FWP_TOO_MANY_CALLOUTS: NTSTATUS = 0xC0220018;
+pub const STATUS_FWP_NOTIFICATION_DROPPED: NTSTATUS = 0xC0220019;
+pub const STATUS_FWP_TRAFFIC_MISMATCH: NTSTATUS = 0xC022001A;
+pub const STATUS_FWP_INCOMPATIBLE_SA_STATE: NTSTATUS = 0xC022001B;
+pub const STATUS_FWP_NULL_POINTER: NTSTATUS = 0xC022001C;
+pub const STATUS_FWP_INVALID_ENUMERATOR: NTSTATUS = 0xC022001D;
+pub const STATUS_FWP_INVALID_FLAGS: NTSTATUS = 0xC022001E;
+pub const STATUS_FWP_INVALID_NET_MASK: NTSTATUS = 0xC022001F;
+pub const STATUS_FWP_INVALID_RANGE: NTSTATUS = 0xC0220020;
+pub const STATUS_FWP_INVALID_INTERVAL: NTSTATUS = 0xC0220021;
+pub const STATUS_FWP_ZERO_LENGTH_ARRAY: NTSTATUS = 0xC0220022;
+pub const STATUS_FWP_NULL_DISPLAY_NAME: NTSTATUS = 0xC0220023;
+pub const STATUS_FWP_INVALID_ACTION_TYPE: NTSTATUS = 0xC0220024;
+pub const STATUS_FWP_INVALID_WEIGHT: NTSTATUS = 0xC0220025;
+pub const STATUS_FWP_MATCH_TYPE_MISMATCH: NTSTATUS = 0xC0220026;
+pub const STATUS_FWP_TYPE_MISMATCH: NTSTATUS = 0xC0220027;
+pub const STATUS_FWP_OUT_OF_BOUNDS: NTSTATUS = 0xC0220028;
+pub const STATUS_FWP_RESERVED: NTSTATUS = 0xC0220029;
+pub const STATUS_FWP_DUPLICATE_CONDITION: NTSTATUS = 0xC022002A;
+pub const STATUS_FWP_DUPLICATE_KEYMOD: NTSTATUS = 0xC022002B;
+pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER: NTSTATUS = 0xC022002C;
+pub const STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER: NTSTATUS = 0xC022002D;
+pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER: NTSTATUS = 0xC022002E;
+pub const STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT: NTSTATUS = 0xC022002F;
+pub const STATUS_FWP_INCOMPATIBLE_AUTH_METHOD: NTSTATUS = 0xC0220030;
+pub const STATUS_FWP_INCOMPATIBLE_DH_GROUP: NTSTATUS = 0xC0220031;
+pub const STATUS_FWP_EM_NOT_SUPPORTED: NTSTATUS = 0xC0220032;
+pub const STATUS_FWP_NEVER_MATCH: NTSTATUS = 0xC0220033;
+pub const STATUS_FWP_PROVIDER_CONTEXT_MISMATCH: NTSTATUS = 0xC0220034;
+pub const STATUS_FWP_INVALID_PARAMETER: NTSTATUS = 0xC0220035;
+pub const STATUS_FWP_TOO_MANY_SUBLAYERS: NTSTATUS = 0xC0220036;
+pub const STATUS_FWP_CALLOUT_NOTIFICATION_FAILED: NTSTATUS = 0xC0220037;
+pub const STATUS_FWP_INVALID_AUTH_TRANSFORM: NTSTATUS = 0xC0220038;
+pub const STATUS_FWP_INVALID_CIPHER_TRANSFORM: NTSTATUS = 0xC0220039;
+pub const STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM: NTSTATUS = 0xC022003A;
+pub const STATUS_FWP_INVALID_TRANSFORM_COMBINATION: NTSTATUS = 0xC022003B;
+pub const STATUS_FWP_DUPLICATE_AUTH_METHOD: NTSTATUS = 0xC022003C;
+pub const STATUS_FWP_INVALID_TUNNEL_ENDPOINT: NTSTATUS = 0xC022003D;
+pub const STATUS_FWP_L2_DRIVER_NOT_READY: NTSTATUS = 0xC022003E;
+pub const STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED: NTSTATUS = 0xC022003F;
+pub const STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL: NTSTATUS = 0xC0220040;
+pub const STATUS_FWP_CONNECTIONS_DISABLED: NTSTATUS = 0xC0220041;
+pub const STATUS_FWP_INVALID_DNS_NAME: NTSTATUS = 0xC0220042;
+pub const STATUS_FWP_STILL_ON: NTSTATUS = 0xC0220043;
+pub const STATUS_FWP_IKEEXT_NOT_RUNNING: NTSTATUS = 0xC0220044;
+pub const STATUS_FWP_TCPIP_NOT_READY: NTSTATUS = 0xC0220100;
+pub const STATUS_FWP_INJECT_HANDLE_CLOSING: NTSTATUS = 0xC0220101;
+pub const STATUS_FWP_INJECT_HANDLE_STALE: NTSTATUS = 0xC0220102;
+pub const STATUS_FWP_CANNOT_PEND: NTSTATUS = 0xC0220103;
+pub const STATUS_FWP_DROP_NOICMP: NTSTATUS = 0xC0220104;
+pub const STATUS_NDIS_CLOSING: NTSTATUS = 0xC0230002;
+pub const STATUS_NDIS_BAD_VERSION: NTSTATUS = 0xC0230004;
+pub const STATUS_NDIS_BAD_CHARACTERISTICS: NTSTATUS = 0xC0230005;
+pub const STATUS_NDIS_ADAPTER_NOT_FOUND: NTSTATUS = 0xC0230006;
+pub const STATUS_NDIS_OPEN_FAILED: NTSTATUS = 0xC0230007;
+pub const STATUS_NDIS_DEVICE_FAILED: NTSTATUS = 0xC0230008;
+pub const STATUS_NDIS_MULTICAST_FULL: NTSTATUS = 0xC0230009;
+pub const STATUS_NDIS_MULTICAST_EXISTS: NTSTATUS = 0xC023000A;
+pub const STATUS_NDIS_MULTICAST_NOT_FOUND: NTSTATUS = 0xC023000B;
+pub const STATUS_NDIS_REQUEST_ABORTED: NTSTATUS = 0xC023000C;
+pub const STATUS_NDIS_RESET_IN_PROGRESS: NTSTATUS = 0xC023000D;
+pub const STATUS_NDIS_NOT_SUPPORTED: NTSTATUS = 0xC02300BB;
+pub const STATUS_NDIS_INVALID_PACKET: NTSTATUS = 0xC023000F;
+pub const STATUS_NDIS_ADAPTER_NOT_READY: NTSTATUS = 0xC0230011;
+pub const STATUS_NDIS_INVALID_LENGTH: NTSTATUS = 0xC0230014;
+pub const STATUS_NDIS_INVALID_DATA: NTSTATUS = 0xC0230015;
+pub const STATUS_NDIS_BUFFER_TOO_SHORT: NTSTATUS = 0xC0230016;
+pub const STATUS_NDIS_INVALID_OID: NTSTATUS = 0xC0230017;
+pub const STATUS_NDIS_ADAPTER_REMOVED: NTSTATUS = 0xC0230018;
+pub const STATUS_NDIS_UNSUPPORTED_MEDIA: NTSTATUS = 0xC0230019;
+pub const STATUS_NDIS_GROUP_ADDRESS_IN_USE: NTSTATUS = 0xC023001A;
+pub const STATUS_NDIS_FILE_NOT_FOUND: NTSTATUS = 0xC023001B;
+pub const STATUS_NDIS_ERROR_READING_FILE: NTSTATUS = 0xC023001C;
+pub const STATUS_NDIS_ALREADY_MAPPED: NTSTATUS = 0xC023001D;
+pub const STATUS_NDIS_RESOURCE_CONFLICT: NTSTATUS = 0xC023001E;
+pub const STATUS_NDIS_MEDIA_DISCONNECTED: NTSTATUS = 0xC023001F;
+pub const STATUS_NDIS_INVALID_ADDRESS: NTSTATUS = 0xC0230022;
+pub const STATUS_NDIS_INVALID_DEVICE_REQUEST: NTSTATUS = 0xC0230010;
+pub const STATUS_NDIS_PAUSED: NTSTATUS = 0xC023002A;
+pub const STATUS_NDIS_INTERFACE_NOT_FOUND: NTSTATUS = 0xC023002B;
+pub const STATUS_NDIS_UNSUPPORTED_REVISION: NTSTATUS = 0xC023002C;
+pub const STATUS_NDIS_INVALID_PORT: NTSTATUS = 0xC023002D;
+pub const STATUS_NDIS_INVALID_PORT_STATE: NTSTATUS = 0xC023002E;
+pub const STATUS_NDIS_LOW_POWER_STATE: NTSTATUS = 0xC023002F;
+pub const STATUS_NDIS_REINIT_REQUIRED: NTSTATUS = 0xC0230030;
+pub const STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED: NTSTATUS = 0xC0232000;
+pub const STATUS_NDIS_DOT11_MEDIA_IN_USE: NTSTATUS = 0xC0232001;
+pub const STATUS_NDIS_DOT11_POWER_STATE_INVALID: NTSTATUS = 0xC0232002;
+pub const STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL: NTSTATUS = 0xC0232003;
+pub const STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL: NTSTATUS = 0xC0232004;
+pub const STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE: NTSTATUS = 0xC0232005;
+pub const STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE: NTSTATUS = 0xC0232006;
+pub const STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED: NTSTATUS = 0xC0232007;
+pub const STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED: NTSTATUS = 0xC0232008;
+pub const STATUS_NDIS_INDICATION_REQUIRED: NTSTATUS = 0x40230001;
+pub const STATUS_NDIS_OFFLOAD_POLICY: NTSTATUS = 0xC023100F;
+pub const STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED: NTSTATUS = 0xC0231012;
+pub const STATUS_NDIS_OFFLOAD_PATH_REJECTED: NTSTATUS = 0xC0231013;
+pub const STATUS_TPM_ERROR_MASK: NTSTATUS = 0xC0290000;
+pub const STATUS_TPM_AUTHFAIL: NTSTATUS = 0xC0290001;
+pub const STATUS_TPM_BADINDEX: NTSTATUS = 0xC0290002;
+pub const STATUS_TPM_BAD_PARAMETER: NTSTATUS = 0xC0290003;
+pub const STATUS_TPM_AUDITFAILURE: NTSTATUS = 0xC0290004;
+pub const STATUS_TPM_CLEAR_DISABLED: NTSTATUS = 0xC0290005;
+pub const STATUS_TPM_DEACTIVATED: NTSTATUS = 0xC0290006;
+pub const STATUS_TPM_DISABLED: NTSTATUS = 0xC0290007;
+pub const STATUS_TPM_DISABLED_CMD: NTSTATUS = 0xC0290008;
+pub const STATUS_TPM_FAIL: NTSTATUS = 0xC0290009;
+pub const STATUS_TPM_BAD_ORDINAL: NTSTATUS = 0xC029000A;
+pub const STATUS_TPM_INSTALL_DISABLED: NTSTATUS = 0xC029000B;
+pub const STATUS_TPM_INVALID_KEYHANDLE: NTSTATUS = 0xC029000C;
+pub const STATUS_TPM_KEYNOTFOUND: NTSTATUS = 0xC029000D;
+pub const STATUS_TPM_INAPPROPRIATE_ENC: NTSTATUS = 0xC029000E;
+pub const STATUS_TPM_MIGRATEFAIL: NTSTATUS = 0xC029000F;
+pub const STATUS_TPM_INVALID_PCR_INFO: NTSTATUS = 0xC0290010;
+pub const STATUS_TPM_NOSPACE: NTSTATUS = 0xC0290011;
+pub const STATUS_TPM_NOSRK: NTSTATUS = 0xC0290012;
+pub const STATUS_TPM_NOTSEALED_BLOB: NTSTATUS = 0xC0290013;
+pub const STATUS_TPM_OWNER_SET: NTSTATUS = 0xC0290014;
+pub const STATUS_TPM_RESOURCES: NTSTATUS = 0xC0290015;
+pub const STATUS_TPM_SHORTRANDOM: NTSTATUS = 0xC0290016;
+pub const STATUS_TPM_SIZE: NTSTATUS = 0xC0290017;
+pub const STATUS_TPM_WRONGPCRVAL: NTSTATUS = 0xC0290018;
+pub const STATUS_TPM_BAD_PARAM_SIZE: NTSTATUS = 0xC0290019;
+pub const STATUS_TPM_SHA_THREAD: NTSTATUS = 0xC029001A;
+pub const STATUS_TPM_SHA_ERROR: NTSTATUS = 0xC029001B;
+pub const STATUS_TPM_FAILEDSELFTEST: NTSTATUS = 0xC029001C;
+pub const STATUS_TPM_AUTH2FAIL: NTSTATUS = 0xC029001D;
+pub const STATUS_TPM_BADTAG: NTSTATUS = 0xC029001E;
+pub const STATUS_TPM_IOERROR: NTSTATUS = 0xC029001F;
+pub const STATUS_TPM_ENCRYPT_ERROR: NTSTATUS = 0xC0290020;
+pub const STATUS_TPM_DECRYPT_ERROR: NTSTATUS = 0xC0290021;
+pub const STATUS_TPM_INVALID_AUTHHANDLE: NTSTATUS = 0xC0290022;
+pub const STATUS_TPM_NO_ENDORSEMENT: NTSTATUS = 0xC0290023;
+pub const STATUS_TPM_INVALID_KEYUSAGE: NTSTATUS = 0xC0290024;
+pub const STATUS_TPM_WRONG_ENTITYTYPE: NTSTATUS = 0xC0290025;
+pub const STATUS_TPM_INVALID_POSTINIT: NTSTATUS = 0xC0290026;
+pub const STATUS_TPM_INAPPROPRIATE_SIG: NTSTATUS = 0xC0290027;
+pub const STATUS_TPM_BAD_KEY_PROPERTY: NTSTATUS = 0xC0290028;
+pub const STATUS_TPM_BAD_MIGRATION: NTSTATUS = 0xC0290029;
+pub const STATUS_TPM_BAD_SCHEME: NTSTATUS = 0xC029002A;
+pub const STATUS_TPM_BAD_DATASIZE: NTSTATUS = 0xC029002B;
+pub const STATUS_TPM_BAD_MODE: NTSTATUS = 0xC029002C;
+pub const STATUS_TPM_BAD_PRESENCE: NTSTATUS = 0xC029002D;
+pub const STATUS_TPM_BAD_VERSION: NTSTATUS = 0xC029002E;
+pub const STATUS_TPM_NO_WRAP_TRANSPORT: NTSTATUS = 0xC029002F;
+pub const STATUS_TPM_AUDITFAIL_UNSUCCESSFUL: NTSTATUS = 0xC0290030;
+pub const STATUS_TPM_AUDITFAIL_SUCCESSFUL: NTSTATUS = 0xC0290031;
+pub const STATUS_TPM_NOTRESETABLE: NTSTATUS = 0xC0290032;
+pub const STATUS_TPM_NOTLOCAL: NTSTATUS = 0xC0290033;
+pub const STATUS_TPM_BAD_TYPE: NTSTATUS = 0xC0290034;
+pub const STATUS_TPM_INVALID_RESOURCE: NTSTATUS = 0xC0290035;
+pub const STATUS_TPM_NOTFIPS: NTSTATUS = 0xC0290036;
+pub const STATUS_TPM_INVALID_FAMILY: NTSTATUS = 0xC0290037;
+pub const STATUS_TPM_NO_NV_PERMISSION: NTSTATUS = 0xC0290038;
+pub const STATUS_TPM_REQUIRES_SIGN: NTSTATUS = 0xC0290039;
+pub const STATUS_TPM_KEY_NOTSUPPORTED: NTSTATUS = 0xC029003A;
+pub const STATUS_TPM_AUTH_CONFLICT: NTSTATUS = 0xC029003B;
+pub const STATUS_TPM_AREA_LOCKED: NTSTATUS = 0xC029003C;
+pub const STATUS_TPM_BAD_LOCALITY: NTSTATUS = 0xC029003D;
+pub const STATUS_TPM_READ_ONLY: NTSTATUS = 0xC029003E;
+pub const STATUS_TPM_PER_NOWRITE: NTSTATUS = 0xC029003F;
+pub const STATUS_TPM_FAMILYCOUNT: NTSTATUS = 0xC0290040;
+pub const STATUS_TPM_WRITE_LOCKED: NTSTATUS = 0xC0290041;
+pub const STATUS_TPM_BAD_ATTRIBUTES: NTSTATUS = 0xC0290042;
+pub const STATUS_TPM_INVALID_STRUCTURE: NTSTATUS = 0xC0290043;
+pub const STATUS_TPM_KEY_OWNER_CONTROL: NTSTATUS = 0xC0290044;
+pub const STATUS_TPM_BAD_COUNTER: NTSTATUS = 0xC0290045;
+pub const STATUS_TPM_NOT_FULLWRITE: NTSTATUS = 0xC0290046;
+pub const STATUS_TPM_CONTEXT_GAP: NTSTATUS = 0xC0290047;
+pub const STATUS_TPM_MAXNVWRITES: NTSTATUS = 0xC0290048;
+pub const STATUS_TPM_NOOPERATOR: NTSTATUS = 0xC0290049;
+pub const STATUS_TPM_RESOURCEMISSING: NTSTATUS = 0xC029004A;
+pub const STATUS_TPM_DELEGATE_LOCK: NTSTATUS = 0xC029004B;
+pub const STATUS_TPM_DELEGATE_FAMILY: NTSTATUS = 0xC029004C;
+pub const STATUS_TPM_DELEGATE_ADMIN: NTSTATUS = 0xC029004D;
+pub const STATUS_TPM_TRANSPORT_NOTEXCLUSIVE: NTSTATUS = 0xC029004E;
+pub const STATUS_TPM_OWNER_CONTROL: NTSTATUS = 0xC029004F;
+pub const STATUS_TPM_DAA_RESOURCES: NTSTATUS = 0xC0290050;
+pub const STATUS_TPM_DAA_INPUT_DATA0: NTSTATUS = 0xC0290051;
+pub const STATUS_TPM_DAA_INPUT_DATA1: NTSTATUS = 0xC0290052;
+pub const STATUS_TPM_DAA_ISSUER_SETTINGS: NTSTATUS = 0xC0290053;
+pub const STATUS_TPM_DAA_TPM_SETTINGS: NTSTATUS = 0xC0290054;
+pub const STATUS_TPM_DAA_STAGE: NTSTATUS = 0xC0290055;
+pub const STATUS_TPM_DAA_ISSUER_VALIDITY: NTSTATUS = 0xC0290056;
+pub const STATUS_TPM_DAA_WRONG_W: NTSTATUS = 0xC0290057;
+pub const STATUS_TPM_BAD_HANDLE: NTSTATUS = 0xC0290058;
+pub const STATUS_TPM_BAD_DELEGATE: NTSTATUS = 0xC0290059;
+pub const STATUS_TPM_BADCONTEXT: NTSTATUS = 0xC029005A;
+pub const STATUS_TPM_TOOMANYCONTEXTS: NTSTATUS = 0xC029005B;
+pub const STATUS_TPM_MA_TICKET_SIGNATURE: NTSTATUS = 0xC029005C;
+pub const STATUS_TPM_MA_DESTINATION: NTSTATUS = 0xC029005D;
+pub const STATUS_TPM_MA_SOURCE: NTSTATUS = 0xC029005E;
+pub const STATUS_TPM_MA_AUTHORITY: NTSTATUS = 0xC029005F;
+pub const STATUS_TPM_PERMANENTEK: NTSTATUS = 0xC0290061;
+pub const STATUS_TPM_BAD_SIGNATURE: NTSTATUS = 0xC0290062;
+pub const STATUS_TPM_NOCONTEXTSPACE: NTSTATUS = 0xC0290063;
+pub const STATUS_TPM_COMMAND_BLOCKED: NTSTATUS = 0xC0290400;
+pub const STATUS_TPM_INVALID_HANDLE: NTSTATUS = 0xC0290401;
+pub const STATUS_TPM_DUPLICATE_VHANDLE: NTSTATUS = 0xC0290402;
+pub const STATUS_TPM_EMBEDDED_COMMAND_BLOCKED: NTSTATUS = 0xC0290403;
+pub const STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED: NTSTATUS = 0xC0290404;
+pub const STATUS_TPM_RETRY: NTSTATUS = 0xC0290800;
+pub const STATUS_TPM_NEEDS_SELFTEST: NTSTATUS = 0xC0290801;
+pub const STATUS_TPM_DOING_SELFTEST: NTSTATUS = 0xC0290802;
+pub const STATUS_TPM_DEFEND_LOCK_RUNNING: NTSTATUS = 0xC0290803;
+pub const STATUS_TPM_COMMAND_CANCELED: NTSTATUS = 0xC0291001;
+pub const STATUS_TPM_TOO_MANY_CONTEXTS: NTSTATUS = 0xC0291002;
+pub const STATUS_TPM_NOT_FOUND: NTSTATUS = 0xC0291003;
+pub const STATUS_TPM_ACCESS_DENIED: NTSTATUS = 0xC0291004;
+pub const STATUS_TPM_INSUFFICIENT_BUFFER: NTSTATUS = 0xC0291005;
+pub const STATUS_TPM_PPI_FUNCTION_UNSUPPORTED: NTSTATUS = 0xC0291006;
+pub const STATUS_PCP_ERROR_MASK: NTSTATUS = 0xC0292000;
+pub const STATUS_PCP_DEVICE_NOT_READY: NTSTATUS = 0xC0292001;
+pub const STATUS_PCP_INVALID_HANDLE: NTSTATUS = 0xC0292002;
+pub const STATUS_PCP_INVALID_PARAMETER: NTSTATUS = 0xC0292003;
+pub const STATUS_PCP_FLAG_NOT_SUPPORTED: NTSTATUS = 0xC0292004;
+pub const STATUS_PCP_NOT_SUPPORTED: NTSTATUS = 0xC0292005;
+pub const STATUS_PCP_BUFFER_TOO_SMALL: NTSTATUS = 0xC0292006;
+pub const STATUS_PCP_INTERNAL_ERROR: NTSTATUS = 0xC0292007;
+pub const STATUS_PCP_AUTHENTICATION_FAILED: NTSTATUS = 0xC0292008;
+pub const STATUS_PCP_AUTHENTICATION_IGNORED: NTSTATUS = 0xC0292009;
+pub const STATUS_PCP_POLICY_NOT_FOUND: NTSTATUS = 0xC029200A;
+pub const STATUS_PCP_PROFILE_NOT_FOUND: NTSTATUS = 0xC029200B;
+pub const STATUS_PCP_VALIDATION_FAILED: NTSTATUS = 0xC029200C;
+pub const STATUS_PCP_DEVICE_NOT_FOUND: NTSTATUS = 0xC029200D;
+pub const STATUS_RTPM_CONTEXT_CONTINUE: NTSTATUS = 0x00293000;
+pub const STATUS_RTPM_CONTEXT_COMPLETE: NTSTATUS = 0x00293001;
+pub const STATUS_RTPM_NO_RESULT: NTSTATUS = 0xC0293002;
+pub const STATUS_RTPM_PCR_READ_INCOMPLETE: NTSTATUS = 0xC0293003;
+pub const STATUS_RTPM_INVALID_CONTEXT: NTSTATUS = 0xC0293004;
+pub const STATUS_RTPM_UNSUPPORTED_CMD: NTSTATUS = 0xC0293005;
+pub const STATUS_HV_INVALID_HYPERCALL_CODE: NTSTATUS = 0xC0350002;
+pub const STATUS_HV_INVALID_HYPERCALL_INPUT: NTSTATUS = 0xC0350003;
+pub const STATUS_HV_INVALID_ALIGNMENT: NTSTATUS = 0xC0350004;
+pub const STATUS_HV_INVALID_PARAMETER: NTSTATUS = 0xC0350005;
+pub const STATUS_HV_ACCESS_DENIED: NTSTATUS = 0xC0350006;
+pub const STATUS_HV_INVALID_PARTITION_STATE: NTSTATUS = 0xC0350007;
+pub const STATUS_HV_OPERATION_DENIED: NTSTATUS = 0xC0350008;
+pub const STATUS_HV_UNKNOWN_PROPERTY: NTSTATUS = 0xC0350009;
+pub const STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE: NTSTATUS = 0xC035000A;
+pub const STATUS_HV_INSUFFICIENT_MEMORY: NTSTATUS = 0xC035000B;
+pub const STATUS_HV_PARTITION_TOO_DEEP: NTSTATUS = 0xC035000C;
+pub const STATUS_HV_INVALID_PARTITION_ID: NTSTATUS = 0xC035000D;
+pub const STATUS_HV_INVALID_VP_INDEX: NTSTATUS = 0xC035000E;
+pub const STATUS_HV_INVALID_PORT_ID: NTSTATUS = 0xC0350011;
+pub const STATUS_HV_INVALID_CONNECTION_ID: NTSTATUS = 0xC0350012;
+pub const STATUS_HV_INSUFFICIENT_BUFFERS: NTSTATUS = 0xC0350013;
+pub const STATUS_HV_NOT_ACKNOWLEDGED: NTSTATUS = 0xC0350014;
+pub const STATUS_HV_INVALID_VP_STATE: NTSTATUS = 0xC0350015;
+pub const STATUS_HV_ACKNOWLEDGED: NTSTATUS = 0xC0350016;
+pub const STATUS_HV_INVALID_SAVE_RESTORE_STATE: NTSTATUS = 0xC0350017;
+pub const STATUS_HV_INVALID_SYNIC_STATE: NTSTATUS = 0xC0350018;
+pub const STATUS_HV_OBJECT_IN_USE: NTSTATUS = 0xC0350019;
+pub const STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO: NTSTATUS = 0xC035001A;
+pub const STATUS_HV_NO_DATA: NTSTATUS = 0xC035001B;
+pub const STATUS_HV_INACTIVE: NTSTATUS = 0xC035001C;
+pub const STATUS_HV_NO_RESOURCES: NTSTATUS = 0xC035001D;
+pub const STATUS_HV_FEATURE_UNAVAILABLE: NTSTATUS = 0xC035001E;
+pub const STATUS_HV_INSUFFICIENT_BUFFER: NTSTATUS = 0xC0350033;
+pub const STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS: NTSTATUS = 0xC0350038;
+pub const STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR: NTSTATUS = 0xC035003C;
+pub const STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR: NTSTATUS = 0xC035003D;
+pub const STATUS_HV_PROCESSOR_STARTUP_TIMEOUT: NTSTATUS = 0xC035003E;
+pub const STATUS_HV_SMX_ENABLED: NTSTATUS = 0xC035003F;
+pub const STATUS_HV_INVALID_LP_INDEX: NTSTATUS = 0xC0350041;
+pub const STATUS_HV_INVALID_REGISTER_VALUE: NTSTATUS = 0xC0350050;
+pub const STATUS_HV_INVALID_VTL_STATE: NTSTATUS = 0xC0350051;
+pub const STATUS_HV_NX_NOT_DETECTED: NTSTATUS = 0xC0350055;
+pub const STATUS_HV_INVALID_DEVICE_ID: NTSTATUS = 0xC0350057;
+pub const STATUS_HV_INVALID_DEVICE_STATE: NTSTATUS = 0xC0350058;
+pub const STATUS_HV_PENDING_PAGE_REQUESTS: NTSTATUS = 0x00350059;
+pub const STATUS_HV_PAGE_REQUEST_INVALID: NTSTATUS = 0xC0350060;
+pub const STATUS_HV_INVALID_CPU_GROUP_ID: NTSTATUS = 0xC035006F;
+pub const STATUS_HV_INVALID_CPU_GROUP_STATE: NTSTATUS = 0xC0350070;
+pub const STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE: NTSTATUS = 0xC0350071;
+pub const STATUS_HV_NOT_PRESENT: NTSTATUS = 0xC0351000;
+pub const STATUS_VID_DUPLICATE_HANDLER: NTSTATUS = 0xC0370001;
+pub const STATUS_VID_TOO_MANY_HANDLERS: NTSTATUS = 0xC0370002;
+pub const STATUS_VID_QUEUE_FULL: NTSTATUS = 0xC0370003;
+pub const STATUS_VID_HANDLER_NOT_PRESENT: NTSTATUS = 0xC0370004;
+pub const STATUS_VID_INVALID_OBJECT_NAME: NTSTATUS = 0xC0370005;
+pub const STATUS_VID_PARTITION_NAME_TOO_LONG: NTSTATUS = 0xC0370006;
+pub const STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG: NTSTATUS = 0xC0370007;
+pub const STATUS_VID_PARTITION_ALREADY_EXISTS: NTSTATUS = 0xC0370008;
+pub const STATUS_VID_PARTITION_DOES_NOT_EXIST: NTSTATUS = 0xC0370009;
+pub const STATUS_VID_PARTITION_NAME_NOT_FOUND: NTSTATUS = 0xC037000A;
+pub const STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS: NTSTATUS = 0xC037000B;
+pub const STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT: NTSTATUS = 0xC037000C;
+pub const STATUS_VID_MB_STILL_REFERENCED: NTSTATUS = 0xC037000D;
+pub const STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED: NTSTATUS = 0xC037000E;
+pub const STATUS_VID_INVALID_NUMA_SETTINGS: NTSTATUS = 0xC037000F;
+pub const STATUS_VID_INVALID_NUMA_NODE_INDEX: NTSTATUS = 0xC0370010;
+pub const STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED: NTSTATUS = 0xC0370011;
+pub const STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE: NTSTATUS = 0xC0370012;
+pub const STATUS_VID_PAGE_RANGE_OVERFLOW: NTSTATUS = 0xC0370013;
+pub const STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE: NTSTATUS = 0xC0370014;
+pub const STATUS_VID_INVALID_GPA_RANGE_HANDLE: NTSTATUS = 0xC0370015;
+pub const STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE: NTSTATUS = 0xC0370016;
+pub const STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED: NTSTATUS = 0xC0370017;
+pub const STATUS_VID_INVALID_PPM_HANDLE: NTSTATUS = 0xC0370018;
+pub const STATUS_VID_MBPS_ARE_LOCKED: NTSTATUS = 0xC0370019;
+pub const STATUS_VID_MESSAGE_QUEUE_CLOSED: NTSTATUS = 0xC037001A;
+pub const STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED: NTSTATUS = 0xC037001B;
+pub const STATUS_VID_STOP_PENDING: NTSTATUS = 0xC037001C;
+pub const STATUS_VID_INVALID_PROCESSOR_STATE: NTSTATUS = 0xC037001D;
+pub const STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT: NTSTATUS = 0xC037001E;
+pub const STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED: NTSTATUS = 0xC037001F;
+pub const STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET: NTSTATUS = 0xC0370020;
+pub const STATUS_VID_MMIO_RANGE_DESTROYED: NTSTATUS = 0xC0370021;
+pub const STATUS_VID_INVALID_CHILD_GPA_PAGE_SET: NTSTATUS = 0xC0370022;
+pub const STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED: NTSTATUS = 0xC0370023;
+pub const STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL: NTSTATUS = 0xC0370024;
+pub const STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE: NTSTATUS = 0xC0370025;
+pub const STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT: NTSTATUS = 0xC0370026;
+pub const STATUS_VID_SAVED_STATE_CORRUPT: NTSTATUS = 0xC0370027;
+pub const STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM: NTSTATUS = 0xC0370028;
+pub const STATUS_VID_SAVED_STATE_INCOMPATIBLE: NTSTATUS = 0xC0370029;
+pub const STATUS_VID_VTL_ACCESS_DENIED: NTSTATUS = 0xC037002A;
+pub const STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED: NTSTATUS = 0x80370001;
+pub const STATUS_IPSEC_BAD_SPI: NTSTATUS = 0xC0360001;
+pub const STATUS_IPSEC_SA_LIFETIME_EXPIRED: NTSTATUS = 0xC0360002;
+pub const STATUS_IPSEC_WRONG_SA: NTSTATUS = 0xC0360003;
+pub const STATUS_IPSEC_REPLAY_CHECK_FAILED: NTSTATUS = 0xC0360004;
+pub const STATUS_IPSEC_INVALID_PACKET: NTSTATUS = 0xC0360005;
+pub const STATUS_IPSEC_INTEGRITY_CHECK_FAILED: NTSTATUS = 0xC0360006;
+pub const STATUS_IPSEC_CLEAR_TEXT_DROP: NTSTATUS = 0xC0360007;
+pub const STATUS_IPSEC_AUTH_FIREWALL_DROP: NTSTATUS = 0xC0360008;
+pub const STATUS_IPSEC_THROTTLE_DROP: NTSTATUS = 0xC0360009;
+pub const STATUS_IPSEC_DOSP_BLOCK: NTSTATUS = 0xC0368000;
+pub const STATUS_IPSEC_DOSP_RECEIVED_MULTICAST: NTSTATUS = 0xC0368001;
+pub const STATUS_IPSEC_DOSP_INVALID_PACKET: NTSTATUS = 0xC0368002;
+pub const STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED: NTSTATUS = 0xC0368003;
+pub const STATUS_IPSEC_DOSP_MAX_ENTRIES: NTSTATUS = 0xC0368004;
+pub const STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: NTSTATUS = 0xC0368005;
+pub const STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: NTSTATUS = 0xC0368006;
+pub const STATUS_VOLMGR_INCOMPLETE_REGENERATION: NTSTATUS = 0x80380001;
+pub const STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION: NTSTATUS = 0x80380002;
+pub const STATUS_VOLMGR_DATABASE_FULL: NTSTATUS = 0xC0380001;
+pub const STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED: NTSTATUS = 0xC0380002;
+pub const STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC: NTSTATUS = 0xC0380003;
+pub const STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED: NTSTATUS = 0xC0380004;
+pub const STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME: NTSTATUS = 0xC0380005;
+pub const STATUS_VOLMGR_DISK_DUPLICATE: NTSTATUS = 0xC0380006;
+pub const STATUS_VOLMGR_DISK_DYNAMIC: NTSTATUS = 0xC0380007;
+pub const STATUS_VOLMGR_DISK_ID_INVALID: NTSTATUS = 0xC0380008;
+pub const STATUS_VOLMGR_DISK_INVALID: NTSTATUS = 0xC0380009;
+pub const STATUS_VOLMGR_DISK_LAST_VOTER: NTSTATUS = 0xC038000A;
+pub const STATUS_VOLMGR_DISK_LAYOUT_INVALID: NTSTATUS = 0xC038000B;
+pub const STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS: NTSTATUS
+ = 0xC038000C;
+pub const STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED: NTSTATUS = 0xC038000D;
+pub const STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL: NTSTATUS = 0xC038000E;
+pub const STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS: NTSTATUS
+ = 0xC038000F;
+pub const STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS: NTSTATUS = 0xC0380010;
+pub const STATUS_VOLMGR_DISK_MISSING: NTSTATUS = 0xC0380011;
+pub const STATUS_VOLMGR_DISK_NOT_EMPTY: NTSTATUS = 0xC0380012;
+pub const STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE: NTSTATUS = 0xC0380013;
+pub const STATUS_VOLMGR_DISK_REVECTORING_FAILED: NTSTATUS = 0xC0380014;
+pub const STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID: NTSTATUS = 0xC0380015;
+pub const STATUS_VOLMGR_DISK_SET_NOT_CONTAINED: NTSTATUS = 0xC0380016;
+pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS: NTSTATUS = 0xC0380017;
+pub const STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES: NTSTATUS = 0xC0380018;
+pub const STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED: NTSTATUS = 0xC0380019;
+pub const STATUS_VOLMGR_EXTENT_ALREADY_USED: NTSTATUS = 0xC038001A;
+pub const STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS: NTSTATUS = 0xC038001B;
+pub const STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION: NTSTATUS = 0xC038001C;
+pub const STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED: NTSTATUS = 0xC038001D;
+pub const STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION: NTSTATUS = 0xC038001E;
+pub const STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH: NTSTATUS = 0xC038001F;
+pub const STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED: NTSTATUS = 0xC0380020;
+pub const STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID: NTSTATUS = 0xC0380021;
+pub const STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS: NTSTATUS = 0xC0380022;
+pub const STATUS_VOLMGR_MEMBER_IN_SYNC: NTSTATUS = 0xC0380023;
+pub const STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE: NTSTATUS = 0xC0380024;
+pub const STATUS_VOLMGR_MEMBER_INDEX_INVALID: NTSTATUS = 0xC0380025;
+pub const STATUS_VOLMGR_MEMBER_MISSING: NTSTATUS = 0xC0380026;
+pub const STATUS_VOLMGR_MEMBER_NOT_DETACHED: NTSTATUS = 0xC0380027;
+pub const STATUS_VOLMGR_MEMBER_REGENERATING: NTSTATUS = 0xC0380028;
+pub const STATUS_VOLMGR_ALL_DISKS_FAILED: NTSTATUS = 0xC0380029;
+pub const STATUS_VOLMGR_NO_REGISTERED_USERS: NTSTATUS = 0xC038002A;
+pub const STATUS_VOLMGR_NO_SUCH_USER: NTSTATUS = 0xC038002B;
+pub const STATUS_VOLMGR_NOTIFICATION_RESET: NTSTATUS = 0xC038002C;
+pub const STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID: NTSTATUS = 0xC038002D;
+pub const STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID: NTSTATUS = 0xC038002E;
+pub const STATUS_VOLMGR_PACK_DUPLICATE: NTSTATUS = 0xC038002F;
+pub const STATUS_VOLMGR_PACK_ID_INVALID: NTSTATUS = 0xC0380030;
+pub const STATUS_VOLMGR_PACK_INVALID: NTSTATUS = 0xC0380031;
+pub const STATUS_VOLMGR_PACK_NAME_INVALID: NTSTATUS = 0xC0380032;
+pub const STATUS_VOLMGR_PACK_OFFLINE: NTSTATUS = 0xC0380033;
+pub const STATUS_VOLMGR_PACK_HAS_QUORUM: NTSTATUS = 0xC0380034;
+pub const STATUS_VOLMGR_PACK_WITHOUT_QUORUM: NTSTATUS = 0xC0380035;
+pub const STATUS_VOLMGR_PARTITION_STYLE_INVALID: NTSTATUS = 0xC0380036;
+pub const STATUS_VOLMGR_PARTITION_UPDATE_FAILED: NTSTATUS = 0xC0380037;
+pub const STATUS_VOLMGR_PLEX_IN_SYNC: NTSTATUS = 0xC0380038;
+pub const STATUS_VOLMGR_PLEX_INDEX_DUPLICATE: NTSTATUS = 0xC0380039;
+pub const STATUS_VOLMGR_PLEX_INDEX_INVALID: NTSTATUS = 0xC038003A;
+pub const STATUS_VOLMGR_PLEX_LAST_ACTIVE: NTSTATUS = 0xC038003B;
+pub const STATUS_VOLMGR_PLEX_MISSING: NTSTATUS = 0xC038003C;
+pub const STATUS_VOLMGR_PLEX_REGENERATING: NTSTATUS = 0xC038003D;
+pub const STATUS_VOLMGR_PLEX_TYPE_INVALID: NTSTATUS = 0xC038003E;
+pub const STATUS_VOLMGR_PLEX_NOT_RAID5: NTSTATUS = 0xC038003F;
+pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE: NTSTATUS = 0xC0380040;
+pub const STATUS_VOLMGR_STRUCTURE_SIZE_INVALID: NTSTATUS = 0xC0380041;
+pub const STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS: NTSTATUS = 0xC0380042;
+pub const STATUS_VOLMGR_TRANSACTION_IN_PROGRESS: NTSTATUS = 0xC0380043;
+pub const STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE: NTSTATUS = 0xC0380044;
+pub const STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK: NTSTATUS = 0xC0380045;
+pub const STATUS_VOLMGR_VOLUME_ID_INVALID: NTSTATUS = 0xC0380046;
+pub const STATUS_VOLMGR_VOLUME_LENGTH_INVALID: NTSTATUS = 0xC0380047;
+pub const STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE: NTSTATUS = 0xC0380048;
+pub const STATUS_VOLMGR_VOLUME_NOT_MIRRORED: NTSTATUS = 0xC0380049;
+pub const STATUS_VOLMGR_VOLUME_NOT_RETAINED: NTSTATUS = 0xC038004A;
+pub const STATUS_VOLMGR_VOLUME_OFFLINE: NTSTATUS = 0xC038004B;
+pub const STATUS_VOLMGR_VOLUME_RETAINED: NTSTATUS = 0xC038004C;
+pub const STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID: NTSTATUS = 0xC038004D;
+pub const STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE: NTSTATUS = 0xC038004E;
+pub const STATUS_VOLMGR_BAD_BOOT_DISK: NTSTATUS = 0xC038004F;
+pub const STATUS_VOLMGR_PACK_CONFIG_OFFLINE: NTSTATUS = 0xC0380050;
+pub const STATUS_VOLMGR_PACK_CONFIG_ONLINE: NTSTATUS = 0xC0380051;
+pub const STATUS_VOLMGR_NOT_PRIMARY_PACK: NTSTATUS = 0xC0380052;
+pub const STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED: NTSTATUS = 0xC0380053;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID: NTSTATUS = 0xC0380054;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID: NTSTATUS = 0xC0380055;
+pub const STATUS_VOLMGR_VOLUME_MIRRORED: NTSTATUS = 0xC0380056;
+pub const STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED: NTSTATUS = 0xC0380057;
+pub const STATUS_VOLMGR_NO_VALID_LOG_COPIES: NTSTATUS = 0xC0380058;
+pub const STATUS_VOLMGR_PRIMARY_PACK_PRESENT: NTSTATUS = 0xC0380059;
+pub const STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID: NTSTATUS = 0xC038005A;
+pub const STATUS_VOLMGR_MIRROR_NOT_SUPPORTED: NTSTATUS = 0xC038005B;
+pub const STATUS_VOLMGR_RAID5_NOT_SUPPORTED: NTSTATUS = 0xC038005C;
+pub const STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED: NTSTATUS = 0x80390001;
+pub const STATUS_BCD_TOO_MANY_ELEMENTS: NTSTATUS = 0xC0390002;
+pub const STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED: NTSTATUS = 0x80390003;
+pub const STATUS_VHD_DRIVE_FOOTER_MISSING: NTSTATUS = 0xC03A0001;
+pub const STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH: NTSTATUS = 0xC03A0002;
+pub const STATUS_VHD_DRIVE_FOOTER_CORRUPT: NTSTATUS = 0xC03A0003;
+pub const STATUS_VHD_FORMAT_UNKNOWN: NTSTATUS = 0xC03A0004;
+pub const STATUS_VHD_FORMAT_UNSUPPORTED_VERSION: NTSTATUS = 0xC03A0005;
+pub const STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH: NTSTATUS = 0xC03A0006;
+pub const STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION: NTSTATUS = 0xC03A0007;
+pub const STATUS_VHD_SPARSE_HEADER_CORRUPT: NTSTATUS = 0xC03A0008;
+pub const STATUS_VHD_BLOCK_ALLOCATION_FAILURE: NTSTATUS = 0xC03A0009;
+pub const STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT: NTSTATUS = 0xC03A000A;
+pub const STATUS_VHD_INVALID_BLOCK_SIZE: NTSTATUS = 0xC03A000B;
+pub const STATUS_VHD_BITMAP_MISMATCH: NTSTATUS = 0xC03A000C;
+pub const STATUS_VHD_PARENT_VHD_NOT_FOUND: NTSTATUS = 0xC03A000D;
+pub const STATUS_VHD_CHILD_PARENT_ID_MISMATCH: NTSTATUS = 0xC03A000E;
+pub const STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH: NTSTATUS = 0xC03A000F;
+pub const STATUS_VHD_METADATA_READ_FAILURE: NTSTATUS = 0xC03A0010;
+pub const STATUS_VHD_METADATA_WRITE_FAILURE: NTSTATUS = 0xC03A0011;
+pub const STATUS_VHD_INVALID_SIZE: NTSTATUS = 0xC03A0012;
+pub const STATUS_VHD_INVALID_FILE_SIZE: NTSTATUS = 0xC03A0013;
+pub const STATUS_VIRTDISK_PROVIDER_NOT_FOUND: NTSTATUS = 0xC03A0014;
+pub const STATUS_VIRTDISK_NOT_VIRTUAL_DISK: NTSTATUS = 0xC03A0015;
+pub const STATUS_VHD_PARENT_VHD_ACCESS_DENIED: NTSTATUS = 0xC03A0016;
+pub const STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH: NTSTATUS = 0xC03A0017;
+pub const STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED: NTSTATUS = 0xC03A0018;
+pub const STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT: NTSTATUS = 0xC03A0019;
+pub const STATUS_VIRTUAL_DISK_LIMITATION: NTSTATUS = 0xC03A001A;
+pub const STATUS_VHD_INVALID_TYPE: NTSTATUS = 0xC03A001B;
+pub const STATUS_VHD_INVALID_STATE: NTSTATUS = 0xC03A001C;
+pub const STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE: NTSTATUS = 0xC03A001D;
+pub const STATUS_VIRTDISK_DISK_ALREADY_OWNED: NTSTATUS = 0xC03A001E;
+pub const STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE: NTSTATUS = 0xC03A001F;
+pub const STATUS_CTLOG_TRACKING_NOT_INITIALIZED: NTSTATUS = 0xC03A0020;
+pub const STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE: NTSTATUS = 0xC03A0021;
+pub const STATUS_CTLOG_VHD_CHANGED_OFFLINE: NTSTATUS = 0xC03A0022;
+pub const STATUS_CTLOG_INVALID_TRACKING_STATE: NTSTATUS = 0xC03A0023;
+pub const STATUS_CTLOG_INCONSISTENT_TRACKING_FILE: NTSTATUS = 0xC03A0024;
+pub const STATUS_VHD_METADATA_FULL: NTSTATUS = 0xC03A0028;
+pub const STATUS_VHD_INVALID_CHANGE_TRACKING_ID: NTSTATUS = 0xC03A0029;
+pub const STATUS_VHD_CHANGE_TRACKING_DISABLED: NTSTATUS = 0xC03A002A;
+pub const STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION: NTSTATUS = 0xC03A0030;
+pub const STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA: NTSTATUS = 0xC03A0031;
+pub const STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE: NTSTATUS = 0xC03A0032;
+pub const STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE: NTSTATUS = 0xC03A0033;
+pub const STATUS_QUERY_STORAGE_ERROR: NTSTATUS = 0x803A0001;
+pub const STATUS_RKF_KEY_NOT_FOUND: NTSTATUS = 0xC0400001;
+pub const STATUS_RKF_DUPLICATE_KEY: NTSTATUS = 0xC0400002;
+pub const STATUS_RKF_BLOB_FULL: NTSTATUS = 0xC0400003;
+pub const STATUS_RKF_STORE_FULL: NTSTATUS = 0xC0400004;
+pub const STATUS_RKF_FILE_BLOCKED: NTSTATUS = 0xC0400005;
+pub const STATUS_RKF_ACTIVE_KEY: NTSTATUS = 0xC0400006;
+pub const STATUS_RDBSS_RESTART_OPERATION: NTSTATUS = 0xC0410001;
+pub const STATUS_RDBSS_CONTINUE_OPERATION: NTSTATUS = 0xC0410002;
+pub const STATUS_RDBSS_POST_OPERATION: NTSTATUS = 0xC0410003;
+pub const STATUS_BTH_ATT_INVALID_HANDLE: NTSTATUS = 0xC0420001;
+pub const STATUS_BTH_ATT_READ_NOT_PERMITTED: NTSTATUS = 0xC0420002;
+pub const STATUS_BTH_ATT_WRITE_NOT_PERMITTED: NTSTATUS = 0xC0420003;
+pub const STATUS_BTH_ATT_INVALID_PDU: NTSTATUS = 0xC0420004;
+pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION: NTSTATUS = 0xC0420005;
+pub const STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED: NTSTATUS = 0xC0420006;
+pub const STATUS_BTH_ATT_INVALID_OFFSET: NTSTATUS = 0xC0420007;
+pub const STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION: NTSTATUS = 0xC0420008;
+pub const STATUS_BTH_ATT_PREPARE_QUEUE_FULL: NTSTATUS = 0xC0420009;
+pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND: NTSTATUS = 0xC042000A;
+pub const STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG: NTSTATUS = 0xC042000B;
+pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE: NTSTATUS = 0xC042000C;
+pub const STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH: NTSTATUS = 0xC042000D;
+pub const STATUS_BTH_ATT_UNLIKELY: NTSTATUS = 0xC042000E;
+pub const STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION: NTSTATUS = 0xC042000F;
+pub const STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE: NTSTATUS = 0xC0420010;
+pub const STATUS_BTH_ATT_INSUFFICIENT_RESOURCES: NTSTATUS = 0xC0420011;
+pub const STATUS_BTH_ATT_UNKNOWN_ERROR: NTSTATUS = 0xC0421000;
+pub const STATUS_SECUREBOOT_ROLLBACK_DETECTED: NTSTATUS = 0xC0430001;
+pub const STATUS_SECUREBOOT_POLICY_VIOLATION: NTSTATUS = 0xC0430002;
+pub const STATUS_SECUREBOOT_INVALID_POLICY: NTSTATUS = 0xC0430003;
+pub const STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: NTSTATUS = 0xC0430004;
+pub const STATUS_SECUREBOOT_POLICY_NOT_SIGNED: NTSTATUS = 0xC0430005;
+pub const STATUS_SECUREBOOT_NOT_ENABLED: NTSTATUS = 0x80430006;
+pub const STATUS_SECUREBOOT_FILE_REPLACED: NTSTATUS = 0xC0430007;
+pub const STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED: NTSTATUS = 0xC0430008;
+pub const STATUS_SECUREBOOT_POLICY_UNKNOWN: NTSTATUS = 0xC0430009;
+pub const STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION: NTSTATUS = 0xC043000A;
+pub const STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH: NTSTATUS = 0xC043000B;
+pub const STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED: NTSTATUS = 0xC043000C;
+pub const STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH: NTSTATUS = 0xC043000D;
+pub const STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING: NTSTATUS = 0xC043000E;
+pub const STATUS_SECUREBOOT_NOT_BASE_POLICY: NTSTATUS = 0xC043000F;
+pub const STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY: NTSTATUS = 0xC0430010;
+pub const STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0001;
+pub const STATUS_PLATFORM_MANIFEST_INVALID: NTSTATUS = 0xC0EB0002;
+pub const STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0003;
+pub const STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED: NTSTATUS = 0xC0EB0004;
+pub const STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND: NTSTATUS = 0xC0EB0005;
+pub const STATUS_PLATFORM_MANIFEST_NOT_ACTIVE: NTSTATUS = 0xC0EB0006;
+pub const STATUS_PLATFORM_MANIFEST_NOT_SIGNED: NTSTATUS = 0xC0EB0007;
+pub const STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED: NTSTATUS = 0xC0E90001;
+pub const STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION: NTSTATUS = 0xC0E90002;
+pub const STATUS_SYSTEM_INTEGRITY_INVALID_POLICY: NTSTATUS = 0xC0E90003;
+pub const STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED: NTSTATUS = 0xC0E90004;
+pub const STATUS_NO_APPLICABLE_APP_LICENSES_FOUND: NTSTATUS = 0xC0EA0001;
+pub const STATUS_CLIP_LICENSE_NOT_FOUND: NTSTATUS = 0xC0EA0002;
+pub const STATUS_CLIP_DEVICE_LICENSE_MISSING: NTSTATUS = 0xC0EA0003;
+pub const STATUS_CLIP_LICENSE_INVALID_SIGNATURE: NTSTATUS = 0xC0EA0004;
+pub const STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID: NTSTATUS = 0xC0EA0005;
+pub const STATUS_CLIP_LICENSE_EXPIRED: NTSTATUS = 0xC0EA0006;
+pub const STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE: NTSTATUS = 0xC0EA0007;
+pub const STATUS_CLIP_LICENSE_NOT_SIGNED: NTSTATUS = 0xC0EA0008;
+pub const STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE: NTSTATUS = 0xC0EA0009;
+pub const STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH: NTSTATUS = 0xC0EA000A;
+pub const STATUS_AUDIO_ENGINE_NODE_NOT_FOUND: NTSTATUS = 0xC0440001;
+pub const STATUS_HDAUDIO_EMPTY_CONNECTION_LIST: NTSTATUS = 0xC0440002;
+pub const STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED: NTSTATUS = 0xC0440003;
+pub const STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: NTSTATUS = 0xC0440004;
+pub const STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY: NTSTATUS = 0xC0440005;
+pub const STATUS_SPACES_REPAIRED: NTSTATUS = 0x00E70000;
+pub const STATUS_SPACES_PAUSE: NTSTATUS = 0x00E70001;
+pub const STATUS_SPACES_COMPLETE: NTSTATUS = 0x00E70002;
+pub const STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID: NTSTATUS = 0xC0E70001;
+pub const STATUS_SPACES_RESILIENCY_TYPE_INVALID: NTSTATUS = 0xC0E70003;
+pub const STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID: NTSTATUS = 0xC0E70004;
+pub const STATUS_SPACES_DRIVE_REDUNDANCY_INVALID: NTSTATUS = 0xC0E70006;
+pub const STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID: NTSTATUS = 0xC0E70007;
+pub const STATUS_SPACES_INTERLEAVE_LENGTH_INVALID: NTSTATUS = 0xC0E70009;
+pub const STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID: NTSTATUS = 0xC0E7000A;
+pub const STATUS_SPACES_NOT_ENOUGH_DRIVES: NTSTATUS = 0xC0E7000B;
+pub const STATUS_SPACES_EXTENDED_ERROR: NTSTATUS = 0xC0E7000C;
+pub const STATUS_SPACES_PROVISIONING_TYPE_INVALID: NTSTATUS = 0xC0E7000D;
+pub const STATUS_SPACES_ALLOCATION_SIZE_INVALID: NTSTATUS = 0xC0E7000E;
+pub const STATUS_SPACES_ENCLOSURE_AWARE_INVALID: NTSTATUS = 0xC0E7000F;
+pub const STATUS_SPACES_WRITE_CACHE_SIZE_INVALID: NTSTATUS = 0xC0E70010;
+pub const STATUS_SPACES_NUMBER_OF_GROUPS_INVALID: NTSTATUS = 0xC0E70011;
+pub const STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID: NTSTATUS = 0xC0E70012;
+pub const STATUS_SPACES_UPDATE_COLUMN_STATE: NTSTATUS = 0xC0E70013;
+pub const STATUS_SPACES_MAP_REQUIRED: NTSTATUS = 0xC0E70014;
+pub const STATUS_SPACES_UNSUPPORTED_VERSION: NTSTATUS = 0xC0E70015;
+pub const STATUS_SPACES_CORRUPT_METADATA: NTSTATUS = 0xC0E70016;
+pub const STATUS_SPACES_DRT_FULL: NTSTATUS = 0xC0E70017;
+pub const STATUS_SPACES_INCONSISTENCY: NTSTATUS = 0xC0E70018;
+pub const STATUS_SPACES_LOG_NOT_READY: NTSTATUS = 0xC0E70019;
+pub const STATUS_SPACES_NO_REDUNDANCY: NTSTATUS = 0xC0E7001A;
+pub const STATUS_SPACES_DRIVE_NOT_READY: NTSTATUS = 0xC0E7001B;
+pub const STATUS_SPACES_DRIVE_SPLIT: NTSTATUS = 0xC0E7001C;
+pub const STATUS_SPACES_DRIVE_LOST_DATA: NTSTATUS = 0xC0E7001D;
+pub const STATUS_VOLSNAP_BOOTFILE_NOT_VALID: NTSTATUS = 0xC0500003;
+pub const STATUS_VOLSNAP_ACTIVATION_TIMEOUT: NTSTATUS = 0xC0500004;
+pub const STATUS_IO_PREEMPTED: NTSTATUS = 0xC0510001;
+pub const STATUS_SVHDX_ERROR_STORED: NTSTATUS = 0xC05C0000;
+pub const STATUS_SVHDX_ERROR_NOT_AVAILABLE: NTSTATUS = 0xC05CFF00;
+pub const STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE: NTSTATUS = 0xC05CFF01;
+pub const STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED: NTSTATUS = 0xC05CFF02;
+pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED: NTSTATUS = 0xC05CFF03;
+pub const STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED: NTSTATUS = 0xC05CFF04;
+pub const STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED: NTSTATUS = 0xC05CFF05;
+pub const STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED: NTSTATUS
+ = 0xC05CFF06;
+pub const STATUS_SVHDX_RESERVATION_CONFLICT: NTSTATUS = 0xC05CFF07;
+pub const STATUS_SVHDX_WRONG_FILE_TYPE: NTSTATUS = 0xC05CFF08;
+pub const STATUS_SVHDX_VERSION_MISMATCH: NTSTATUS = 0xC05CFF09;
+pub const STATUS_VHD_SHARED: NTSTATUS = 0xC05CFF0A;
+pub const STATUS_SVHDX_NO_INITIATOR: NTSTATUS = 0xC05CFF0B;
+pub const STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND: NTSTATUS = 0xC05CFF0C;
+pub const STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP: NTSTATUS = 0xC05D0000;
+pub const STATUS_SMB_BAD_CLUSTER_DIALECT: NTSTATUS = 0xC05D0001;
+pub const STATUS_SMB_GUEST_LOGON_BLOCKED: NTSTATUS = 0xC05D0002;
+pub const STATUS_SECCORE_INVALID_COMMAND: NTSTATUS = 0xC0E80000;
+pub const STATUS_VSM_NOT_INITIALIZED: NTSTATUS = 0xC0450000;
+pub const STATUS_VSM_DMA_PROTECTION_NOT_IN_USE: NTSTATUS = 0xC0450001;
diff --git a/third_party/rust/winapi/src/shared/qos.rs b/third_party/rust/winapi/src/shared/qos.rs
new file mode 100644
index 0000000000..5117bd26a0
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/qos.rs
@@ -0,0 +1,20 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! QoS definitions for NDIS components.
+use shared::minwindef::ULONG;
+pub type SERVICETYPE = ULONG;
+STRUCT!{struct FLOWSPEC {
+ TokenRate: ULONG,
+ TokenBucketSize: ULONG,
+ PeakBandwidth: ULONG,
+ Latency: ULONG,
+ DelayVariation: ULONG,
+ ServiceType: SERVICETYPE,
+ MaxSduSize: ULONG,
+ MinimumPolicedSize: ULONG,
+}}
+pub type PFLOWSPEC = *mut FLOWSPEC;
+pub type LPFLOWSPEC = *mut FLOWSPEC;
diff --git a/third_party/rust/winapi/src/shared/rpc.rs b/third_party/rust/winapi/src/shared/rpc.rs
new file mode 100644
index 0000000000..5af7e095d3
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/rpc.rs
@@ -0,0 +1,9 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Master include file for RPC applications.
+use ctypes::{c_long, c_void};
+pub type I_RPC_HANDLE = *mut c_void;
+pub type RPC_STATUS = c_long;
diff --git a/third_party/rust/winapi/src/shared/rpcdce.rs b/third_party/rust/winapi/src/shared/rpcdce.rs
new file mode 100644
index 0000000000..ab2879d92a
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/rpcdce.rs
@@ -0,0 +1,563 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! This module contains the DCE RPC runtime APIs.
+use ctypes::{c_int, c_uchar, c_uint, c_ulong, c_ushort, c_void, wchar_t};
+use shared::guiddef::GUID;
+use shared::minwindef::DWORD;
+use shared::rpc::{I_RPC_HANDLE, RPC_STATUS};
+pub type RPC_CSTR = *mut c_uchar;
+pub type RPC_WSTR = *mut wchar_t;
+pub type RPC_CWSTR = *const wchar_t;
+pub type RPC_BINDING_HANDLE = I_RPC_HANDLE;
+pub type handle_t = RPC_BINDING_HANDLE;
+pub type rpc_binding_handle_t = RPC_BINDING_HANDLE;
+pub type UUID = GUID;
+pub type uuid_t = UUID;
+STRUCT!{struct RPC_BINDING_VECTOR {
+ Count: c_ulong,
+ BindingH: [RPC_BINDING_HANDLE; 1],
+}}
+pub type rpc_binding_vector_t = RPC_BINDING_VECTOR;
+STRUCT!{struct UUID_VECTOR {
+ Count: c_ulong,
+ Uuid: [*mut UUID; 1],
+}}
+pub type uuid_vector_t = UUID_VECTOR;
+pub type RPC_IF_HANDLE = *mut c_void;
+STRUCT!{struct RPC_IF_ID {
+ Uuid: UUID,
+ VersMajor: c_ushort,
+ VersMinor: c_ushort,
+}}
+pub const RPC_C_BINDING_INFINITE_TIMEOUT: DWORD = 10;
+pub const RPC_C_BINDING_MIN_TIMEOUT: DWORD = 0;
+pub const RPC_C_BINDING_DEFAULT_TIMEOUT: DWORD = 5;
+pub const RPC_C_BINDING_MAX_TIMEOUT: DWORD = 9;
+pub const RPC_C_CANCEL_INFINITE_TIMEOUT: c_int = -1;
+pub const RPC_C_LISTEN_MAX_CALLS_DEFAULT: DWORD = 1234;
+pub const RPC_C_PROTSEQ_MAX_REQS_DEFAULT: DWORD = 10;
+pub const RPC_C_BIND_TO_ALL_NICS: DWORD = 1;
+pub const RPC_C_USE_INTERNET_PORT: DWORD = 0x1;
+pub const RPC_C_USE_INTRANET_PORT: DWORD = 0x2;
+pub const RPC_C_DONT_FAIL: DWORD = 0x4;
+pub const RPC_C_RPCHTTP_USE_LOAD_BALANCE: DWORD = 0x8;
+pub const RPC_C_MQ_TEMPORARY: DWORD = 0x0000;
+pub const RPC_C_MQ_PERMANENT: DWORD = 0x0001;
+pub const RPC_C_MQ_CLEAR_ON_OPEN: DWORD = 0x0002;
+pub const RPC_C_MQ_USE_EXISTING_SECURITY: DWORD = 0x0004;
+pub const RPC_C_MQ_AUTHN_LEVEL_NONE: DWORD = 0x0000;
+pub const RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY: DWORD = 0x0008;
+pub const RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY: DWORD = 0x0010;
+pub const RPC_C_OPT_MQ_DELIVERY: DWORD = 1;
+pub const RPC_C_OPT_MQ_PRIORITY: DWORD = 2;
+pub const RPC_C_OPT_MQ_JOURNAL: DWORD = 3;
+pub const RPC_C_OPT_MQ_ACKNOWLEDGE: DWORD = 4;
+pub const RPC_C_OPT_MQ_AUTHN_SERVICE: DWORD = 5;
+pub const RPC_C_OPT_MQ_AUTHN_LEVEL: DWORD = 6;
+pub const RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE: DWORD = 7;
+pub const RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED: DWORD = 8;
+pub const RPC_C_OPT_BINDING_NONCAUSAL: DWORD = 9;
+pub const RPC_C_OPT_SECURITY_CALLBACK: DWORD = 10;
+pub const RPC_C_OPT_UNIQUE_BINDING: DWORD = 11;
+pub const RPC_C_OPT_CALL_TIMEOUT: DWORD = 12;
+pub const RPC_C_OPT_DONT_LINGER: DWORD = 13;
+pub const RPC_C_OPT_TRUST_PEER: DWORD = 14;
+pub const RPC_C_OPT_ASYNC_BLOCK: DWORD = 15;
+pub const RPC_C_OPT_OPTIMIZE_TIME: DWORD = 16;
+pub const RPC_C_OPT_MAX_OPTIONS: DWORD = 17;
+pub const RPC_C_MQ_EXPRESS: DWORD = 0;
+pub const RPC_C_MQ_RECOVERABLE: DWORD = 1;
+pub const RPC_C_MQ_JOURNAL_NONE: DWORD = 0;
+pub const RPC_C_MQ_JOURNAL_DEADLETTER: DWORD = 1;
+pub const RPC_C_MQ_JOURNAL_ALWAYS: DWORD = 2;
+pub const RPC_C_FULL_CERT_CHAIN: DWORD = 0x0001;
+STRUCT!{struct RPC_PROTSEQ_VECTORA {
+ Count: c_uint,
+ Protseq: [*mut c_uchar; 1],
+}}
+STRUCT!{struct RPC_PROTSEQ_VECTORW {
+ Count: c_uint,
+ Protseq: [*mut c_ushort; 1],
+}}
+STRUCT!{struct RPC_POLICY {
+ Length: c_uint,
+ EndpointFlags: c_ulong,
+ NICFlags: c_ulong,
+}}
+pub type PRPC_POLICY = *mut RPC_POLICY;
+FN!{stdcall RPC_OBJECT_INQ_FN(
+ ObjectUuid: *mut UUID,
+ TypeUuid: *mut UUID,
+ Status: *mut RPC_STATUS,
+) -> ()}
+FN!{stdcall RPC_IF_CALLBACK_FN(
+ InterfaceUuid: RPC_IF_HANDLE,
+ Context: *mut c_void,
+) -> RPC_STATUS}
+FN!{stdcall RPC_SECURITY_CALLBACK_FN(
+ Context: *mut c_void,
+) -> ()}
+pub type RPC_MGR_EPV = c_void;
+STRUCT!{struct RPC_STATS_VECTOR {
+ Count: c_uint,
+ Stats: [c_ulong; 1],
+}}
+pub const RPC_C_STATS_CALLS_IN: c_ulong = 0;
+pub const RPC_C_STATS_CALLS_OUT: c_ulong = 1;
+pub const RPC_C_STATS_PKTS_IN: c_ulong = 2;
+pub const RPC_C_STATS_PKTS_OUT: c_ulong = 3;
+STRUCT!{struct RPC_IF_ID_VECTOR {
+ Count: c_ulong,
+ IfId: [*mut RPC_IF_ID; 1],
+}}
+pub type RPC_AUTH_IDENTITY_HANDLE = *mut c_void;
+pub type RPC_AUTHZ_HANDLE = *mut c_void;
+pub const RPC_C_AUTHN_LEVEL_DEFAULT: DWORD = 0;
+pub const RPC_C_AUTHN_LEVEL_NONE: DWORD = 1;
+pub const RPC_C_AUTHN_LEVEL_CONNECT: DWORD = 2;
+pub const RPC_C_AUTHN_LEVEL_CALL: DWORD = 3;
+pub const RPC_C_AUTHN_LEVEL_PKT: DWORD = 4;
+pub const RPC_C_AUTHN_LEVEL_PKT_INTEGRITY: DWORD = 5;
+pub const RPC_C_AUTHN_LEVEL_PKT_PRIVACY: DWORD = 6;
+pub const RPC_C_IMP_LEVEL_DEFAULT: DWORD = 0;
+pub const RPC_C_IMP_LEVEL_ANONYMOUS: DWORD = 1;
+pub const RPC_C_IMP_LEVEL_IDENTIFY: DWORD = 2;
+pub const RPC_C_IMP_LEVEL_IMPERSONATE: DWORD = 3;
+pub const RPC_C_IMP_LEVEL_DELEGATE: DWORD = 4;
+pub const RPC_C_QOS_IDENTITY_STATIC: DWORD = 0;
+pub const RPC_C_QOS_IDENTITY_DYNAMIC: DWORD = 1;
+pub const RPC_C_QOS_CAPABILITIES_DEFAULT: DWORD = 0x0;
+pub const RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH: DWORD = 0x1;
+pub const RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC: DWORD = 0x2;
+pub const RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY: DWORD = 0x4;
+pub const RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE: DWORD = 0x8;
+pub const RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT: DWORD = 0x10;
+pub const RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY: DWORD = 0x20;
+pub const RPC_C_PROTECT_LEVEL_DEFAULT: DWORD = RPC_C_AUTHN_LEVEL_DEFAULT;
+pub const RPC_C_PROTECT_LEVEL_NONE: DWORD = RPC_C_AUTHN_LEVEL_NONE;
+pub const RPC_C_PROTECT_LEVEL_CONNECT: DWORD = RPC_C_AUTHN_LEVEL_CONNECT;
+pub const RPC_C_PROTECT_LEVEL_CALL: DWORD = RPC_C_AUTHN_LEVEL_CALL;
+pub const RPC_C_PROTECT_LEVEL_PKT: DWORD = RPC_C_AUTHN_LEVEL_PKT;
+pub const RPC_C_PROTECT_LEVEL_PKT_INTEGRITY: DWORD = RPC_C_AUTHN_LEVEL_PKT_INTEGRITY;
+pub const RPC_C_PROTECT_LEVEL_PKT_PRIVACY: DWORD = RPC_C_AUTHN_LEVEL_PKT_PRIVACY;
+pub const RPC_C_AUTHN_NONE: DWORD = 0;
+pub const RPC_C_AUTHN_DCE_PRIVATE: DWORD = 1;
+pub const RPC_C_AUTHN_DCE_PUBLIC: DWORD = 2;
+pub const RPC_C_AUTHN_DEC_PUBLIC: DWORD = 4;
+pub const RPC_C_AUTHN_GSS_NEGOTIATE: DWORD = 9;
+pub const RPC_C_AUTHN_WINNT: DWORD = 10;
+pub const RPC_C_AUTHN_GSS_SCHANNEL: DWORD = 14;
+pub const RPC_C_AUTHN_GSS_KERBEROS: DWORD = 16;
+pub const RPC_C_AUTHN_DPA: DWORD = 17;
+pub const RPC_C_AUTHN_MSN: DWORD = 18;
+pub const RPC_C_AUTHN_DIGEST: DWORD = 21;
+pub const RPC_C_AUTHN_KERNEL: DWORD = 20;
+pub const RPC_C_AUTHN_NEGO_EXTENDER: DWORD = 30;
+pub const RPC_C_AUTHN_PKU2U: DWORD = 31;
+pub const RPC_C_AUTHN_LIVE_SSP: DWORD = 32;
+pub const RPC_C_AUTHN_LIVEXP_SSP: DWORD = 35;
+pub const RPC_C_AUTHN_MSONLINE: DWORD = 82;
+pub const RPC_C_AUTHN_MQ: DWORD = 100;
+pub const RPC_C_AUTHN_DEFAULT: DWORD = 0xFFFFFFFF;
+pub const RPC_C_NO_CREDENTIALS: DWORD = 0xFFFFFFFF;
+pub const RPC_C_SECURITY_QOS_VERSION: DWORD = 1;
+pub const RPC_C_SECURITY_QOS_VERSION_1: DWORD = 1;
+STRUCT!{struct RPC_SECURITY_QOS {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+}}
+pub type PRPC_SECURITY_QOS = *mut RPC_SECURITY_QOS;
+STRUCT!{struct SEC_WINNT_AUTH_IDENTITY_W {
+ User: *mut c_ushort,
+ UserLength: c_ulong,
+ Domain: *mut c_ushort,
+ DomainLength: c_ulong,
+ Password: *mut c_ushort,
+ PasswordLength: c_ulong,
+ Flags: c_ulong,
+}}
+pub type PSEC_WINNT_AUTH_IDENTITY_W = *mut SEC_WINNT_AUTH_IDENTITY_W;
+STRUCT!{struct SEC_WINNT_AUTH_IDENTITY_A {
+ User: *mut c_uchar,
+ UserLength: c_ulong,
+ Domain: *mut c_uchar,
+ DomainLength: c_ulong,
+ Password: *mut c_uchar,
+ PasswordLength: c_ulong,
+ Flags: c_ulong,
+}}
+pub type PSEC_WINNT_AUTH_IDENTITY_A = *mut SEC_WINNT_AUTH_IDENTITY_A;
+pub const RPC_C_AUTHN_INFO_TYPE_HTTP: c_ulong = 1;
+pub const RPC_C_HTTP_AUTHN_TARGET_SERVER: c_ulong = 1;
+pub const RPC_C_HTTP_AUTHN_TARGET_PROXY: c_ulong = 2;
+pub const RPC_C_HTTP_AUTHN_SCHEME_BASIC: c_ulong = 0x00000001;
+pub const RPC_C_HTTP_AUTHN_SCHEME_NTLM: c_ulong = 0x00000002;
+pub const RPC_C_HTTP_AUTHN_SCHEME_PASSPORT: c_ulong = 0x00000004;
+pub const RPC_C_HTTP_AUTHN_SCHEME_DIGEST: c_ulong = 0x00000008;
+pub const RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE: c_ulong = 0x00000010;
+pub const RPC_C_HTTP_AUTHN_SCHEME_CERT: c_ulong = 0x00010000;
+pub const RPC_C_HTTP_FLAG_USE_SSL: c_ulong = 1;
+pub const RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME: c_ulong = 2;
+pub const RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID: c_ulong = 8;
+pub const RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK: c_ulong = 16;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_W {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_A {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+ ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A {
+ TransportCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+ ProxyCredentials: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {
+ TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_ushort,
+ ProxyCredentials: *mut RPC_AUTH_IDENTITY_HANDLE,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
+STRUCT!{struct RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A {
+ TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
+ Flags: c_ulong,
+ AuthenticationTarget: c_ulong,
+ NumberOfAuthnSchemes: c_ulong,
+ AuthnSchemes: *mut c_ulong,
+ ServerCertificateSubject: *mut c_uchar,
+ ProxyCredentials: *mut RPC_AUTH_IDENTITY_HANDLE,
+ NumberOfProxyAuthnSchemes: c_ulong,
+ ProxyAuthnSchemes: *mut c_ulong,
+}}
+pub type PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = *mut RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
+STRUCT!{struct RPC_SECURITY_QOS_V2_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V2_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V2_W_union,
+}}
+pub type PRPC_SECURITY_QOS_V2_W = *mut RPC_SECURITY_QOS_V2_W;
+STRUCT!{struct RPC_SECURITY_QOS_V2_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V2_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V2_A_union,
+}}
+pub type PRPC_SECURITY_QOS_V2_A = *mut RPC_SECURITY_QOS_V2_A;
+STRUCT!{struct RPC_SECURITY_QOS_V3_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V3_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V3_W_union,
+ Sid: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V3_W = *mut RPC_SECURITY_QOS_V3_W;
+STRUCT!{struct RPC_SECURITY_QOS_V3_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V3_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V3_A_union,
+ Sid: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V3_A = *mut RPC_SECURITY_QOS_V3_A;
+STRUCT!{struct RPC_SECURITY_QOS_V4_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V4_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V4_W_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+}}
+pub type PRPC_SECURITY_QOS_V4_W = *mut RPC_SECURITY_QOS_V4_W;
+STRUCT!{struct RPC_SECURITY_QOS_V4_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V4_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V4_A_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+}}
+pub type PRPC_SECURITY_QOS_V4_A = *mut RPC_SECURITY_QOS_V4_A;
+STRUCT!{struct RPC_SECURITY_QOS_V5_W_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_W,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V5_W {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V5_W_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+ ServerSecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V5_W = *mut RPC_SECURITY_QOS_V5_W;
+STRUCT!{struct RPC_SECURITY_QOS_V5_A_union {
+ HttpCredentials: *mut RPC_HTTP_TRANSPORT_CREDENTIALS_A,
+}}
+STRUCT!{struct RPC_SECURITY_QOS_V5_A {
+ Version: c_ulong,
+ Capabilities: c_ulong,
+ IdentityTracking: c_ulong,
+ ImpersonationType: c_ulong,
+ AdditionalSecurityInfoType: c_ulong,
+ u: RPC_SECURITY_QOS_V5_A_union,
+ Sid: *mut c_void,
+ EffectiveOnly: c_uint,
+ ServerSecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_SECURITY_QOS_V5_A = *mut RPC_SECURITY_QOS_V5_A;
+pub const RPC_PROTSEQ_TCP: c_ulong = 0x1;
+pub const RPC_PROTSEQ_NMP: c_ulong = 0x2;
+pub const RPC_PROTSEQ_LRPC: c_ulong = 0x3;
+pub const RPC_PROTSEQ_HTTP: c_ulong = 0x4;
+pub const RPC_BHT_OBJECT_UUID_VALID: c_ulong = 0x1;
+pub const RPC_BHO_NONCAUSAL: c_ulong = 0x1;
+pub const RPC_BHO_DONTLINGER: c_ulong = 0x2;
+pub const RPC_BHO_EXCLUSIVE_AND_GUARANTEED: c_ulong = 0x4;
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_W_union {
+ Reserved: *mut c_ushort,
+}}
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_W {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ProtocolSequence: c_ulong,
+ NetworkAddress: *mut c_ushort,
+ StringEndpoint: *mut c_ushort,
+ u1: RPC_BINDING_HANDLE_TEMPLATE_V1_W_union,
+ ObjectUuid: UUID,
+}}
+pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_W = *mut RPC_BINDING_HANDLE_TEMPLATE_V1_W;
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_A_union {
+ Reserved: *mut c_uchar,
+}}
+STRUCT!{struct RPC_BINDING_HANDLE_TEMPLATE_V1_A {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ProtocolSequence: c_ulong,
+ NetworkAddress: *mut c_uchar,
+ StringEndpoint: *mut c_uchar,
+ u1: RPC_BINDING_HANDLE_TEMPLATE_V1_A_union,
+ ObjectUuid: UUID,
+}}
+pub type PRPC_BINDING_HANDLE_TEMPLATE_V1_A = *mut RPC_BINDING_HANDLE_TEMPLATE_V1_A;
+STRUCT!{struct RPC_BINDING_HANDLE_SECURITY_V1_W {
+ Version: c_ulong,
+ ServerPrincName: *mut c_ushort,
+ AuthnLevel: c_ulong,
+ AuthnSvc: c_ulong,
+ AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_W,
+ SecurityQos: *mut RPC_SECURITY_QOS,
+}}
+pub type PRPC_BINDING_HANDLE_SECURITY_V1_W = *mut RPC_BINDING_HANDLE_SECURITY_V1_W;
+STRUCT!{struct RPC_BINDING_HANDLE_SECURITY_V1_A {
+ Version: c_ulong,
+ ServerPrincName: *mut c_uchar,
+ AuthnLevel: c_ulong,
+ AuthnSvc: c_ulong,
+ AuthIdentity: *mut SEC_WINNT_AUTH_IDENTITY_A,
+ SecurityQos: *mut RPC_SECURITY_QOS,
+}}
+pub type PRPC_BINDING_HANDLE_SECURITY_V1_A = *mut RPC_BINDING_HANDLE_SECURITY_V1_A;
+STRUCT!{struct RPC_BINDING_HANDLE_OPTIONS_V1 {
+ Version: c_ulong,
+ Flags: c_ulong,
+ ComTimeout: c_ulong,
+ CallTimeout: c_ulong,
+}}
+pub type PRPC_BINDING_HANDLE_OPTIONS_V1 = *mut RPC_BINDING_HANDLE_OPTIONS_V1;
+ENUM!{enum RPC_HTTP_REDIRECTOR_STAGE {
+ RPCHTTP_RS_REDIRECT = 1,
+ RPCHTTP_RS_ACCESS_1,
+ RPCHTTP_RS_SESSION,
+ RPCHTTP_RS_ACCESS_2,
+ RPCHTTP_RS_INTERFACE,
+}}
+FN!{stdcall RPC_NEW_HTTP_PROXY_CHANNEL(
+ RedirectorStage: RPC_HTTP_REDIRECTOR_STAGE,
+ ServerName: RPC_WSTR,
+ ServerPort: RPC_WSTR,
+ RemoteUser: RPC_WSTR,
+ AuthType: RPC_WSTR,
+ ResourceUuid: *mut c_void,
+ SessionId: *mut c_void,
+ Interface: *mut c_void,
+ Reserved: *mut c_void,
+ Flags: c_ulong,
+ NewServerName: *mut RPC_WSTR,
+ NewServerPort: *mut RPC_WSTR,
+) -> RPC_STATUS}
+FN!{stdcall RPC_HTTP_PROXY_FREE_STRING(
+ String: RPC_WSTR,
+) -> ()}
+pub const RPC_C_AUTHZ_NONE: DWORD = 0;
+pub const RPC_C_AUTHZ_NAME: DWORD = 1;
+pub const RPC_C_AUTHZ_DCE: DWORD = 2;
+pub const RPC_C_AUTHZ_DEFAULT: DWORD = 0xffffffff;
+FN!{stdcall RPC_AUTH_KEY_RETRIEVAL_FN(
+ Arg: *mut c_void,
+ ServerPrincName: RPC_WSTR,
+ KeyVer: c_ulong,
+ Key: *mut *mut c_void,
+ Status: *mut RPC_STATUS,
+) -> ()}
+STRUCT!{struct RPC_CLIENT_INFORMATION1 {
+ UserName: *mut c_uchar,
+ ComputerName: *mut c_uchar,
+ Privilege: c_ushort,
+ AuthFlags: c_ulong,
+}}
+pub type PRPC_CLIENT_INFORMATION1 = *mut RPC_CLIENT_INFORMATION1;
+pub type RPC_EP_INQ_HANDLE = *mut I_RPC_HANDLE;
+pub const RPC_C_EP_ALL_ELTS: c_ulong = 0;
+pub const RPC_C_EP_MATCH_BY_IF: c_ulong = 1;
+pub const RPC_C_EP_MATCH_BY_OBJ: c_ulong = 2;
+pub const RPC_C_EP_MATCH_BY_BOTH: c_ulong = 3;
+pub const RPC_C_VERS_ALL: c_ulong = 1;
+pub const RPC_C_VERS_COMPATIBLE: c_ulong = 2;
+pub const RPC_C_VERS_EXACT: c_ulong = 3;
+pub const RPC_C_VERS_MAJOR_ONLY: c_ulong = 4;
+pub const RPC_C_VERS_UPTO: c_ulong = 5;
+FN!{stdcall RPC_MGMT_AUTHORIZATION_FN(
+ ClientBinding: RPC_BINDING_HANDLE,
+ RequestedMgmtOperation: c_ulong,
+ Status: *mut RPC_STATUS,
+) -> c_int}
+pub const RPC_C_MGMT_INQ_IF_IDS: c_ulong = 0;
+pub const RPC_C_MGMT_INQ_PRINC_NAME: c_ulong = 1;
+pub const RPC_C_MGMT_INQ_STATS: c_ulong = 2;
+pub const RPC_C_MGMT_IS_SERVER_LISTEN: c_ulong = 3;
+pub const RPC_C_MGMT_STOP_SERVER_LISTEN: c_ulong = 4;
+pub const RPC_IF_AUTOLISTEN: c_uint = 0x0001;
+pub const RPC_IF_OLE: c_uint = 0x0002;
+pub const RPC_IF_ALLOW_UNKNOWN_AUTHORITY: c_uint = 0x0004;
+pub const RPC_IF_ALLOW_SECURE_ONLY: c_uint = 0x0008;
+pub const RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH: c_uint = 0x0010;
+pub const RPC_IF_ALLOW_LOCAL_ONLY: c_uint = 0x0020;
+pub const RPC_IF_SEC_NO_CACHE: c_uint = 0x0040;
+pub const RPC_IF_SEC_CACHE_PER_PROC: c_uint = 0x0080;
+pub const RPC_IF_ASYNC_CALLBACK: c_uint = 0x0100;
+pub const RPC_FW_IF_FLAG_DCOM: c_uint = 0x0001;
+pub type RPC_INTERFACE_GROUP = *mut c_void;
+pub type PRPC_INTERFACE_GROUP = *mut *mut c_void;
+STRUCT!{struct RPC_ENDPOINT_TEMPLATEW {
+ Version: c_ulong,
+ ProtSeq: RPC_WSTR,
+ Endpoint: RPC_WSTR,
+ SecurityDescriptor: *mut c_void,
+ Backlog: c_ulong,
+}}
+pub type PRPC_ENDPOINT_TEMPLATEW = *mut RPC_ENDPOINT_TEMPLATEW;
+STRUCT!{struct RPC_ENDPOINT_TEMPLATEA {
+ Version: c_ulong,
+ ProtSeq: RPC_CSTR,
+ Endpoint: RPC_CSTR,
+ SecurityDescriptor: *mut c_void,
+ Backlog: c_ulong,
+}}
+pub type PRPC_ENDPOINT_TEMPLATEA = *mut RPC_ENDPOINT_TEMPLATEA;
+STRUCT!{struct RPC_INTERFACE_TEMPLATEA {
+ Version: c_ulong,
+ IfSpec: RPC_IF_HANDLE,
+ MgrTypeUuid: *mut UUID,
+ MgrEpv: *mut RPC_MGR_EPV,
+ Flags: c_uint,
+ MaxCalls: c_uint,
+ MaxRpcSize: c_uint,
+ IfCallback: *mut RPC_IF_CALLBACK_FN,
+ UuidVector: *mut UUID_VECTOR,
+ Annotation: RPC_CSTR,
+ SecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_INTERFACE_TEMPLATEA = *mut RPC_INTERFACE_TEMPLATEA;
+STRUCT!{struct RPC_INTERFACE_TEMPLATEW {
+ Version: c_ulong,
+ IfSpec: RPC_IF_HANDLE,
+ MgrTypeUuid: *mut UUID,
+ MgrEpv: *mut RPC_MGR_EPV,
+ Flags: c_uint,
+ MaxCalls: c_uint,
+ MaxRpcSize: c_uint,
+ IfCallback: *mut RPC_IF_CALLBACK_FN,
+ UuidVector: *mut UUID_VECTOR,
+ Annotation: RPC_WSTR,
+ SecurityDescriptor: *mut c_void,
+}}
+pub type PRPC_INTERFACE_TEMPLATEW = *mut RPC_INTERFACE_TEMPLATEW;
+FN!{stdcall RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN(
+ IfGroup: RPC_INTERFACE_GROUP,
+ IdleCallbackContext: *mut c_void,
+ IsGroupIdle: c_ulong,
+) -> ()}
diff --git a/third_party/rust/winapi/src/shared/rpcndr.rs b/third_party/rust/winapi/src/shared/rpcndr.rs
new file mode 100644
index 0000000000..b65a3da056
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/rpcndr.rs
@@ -0,0 +1,25 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::{__int64, __uint64, c_char, c_uchar, c_ulong};
+pub const NDR_CHAR_REP_MASK: c_ulong = 0x0000000F;
+pub const NDR_INT_REP_MASK: c_ulong = 0x000000F0;
+pub const NDR_FLOAT_REP_MASK: c_ulong = 0x0000FF00;
+pub const NDR_LITTLE_ENDIAN: c_ulong = 0x00000010;
+pub const NDR_BIG_ENDIAN: c_ulong = 0x00000000;
+pub const NDR_IEEE_FLOAT: c_ulong = 0x00000000;
+pub const NDR_VAX_FLOAT: c_ulong = 0x00000100;
+pub const NDR_IBM_FLOAT: c_ulong = 0x00000300;
+pub const NDR_ASCII_CHAR: c_ulong = 0x00000000;
+pub const NDR_EBCDIC_CHAR: c_ulong = 0x00000001;
+pub const NDR_LOCAL_DATA_REPRESENTATION: c_ulong = 0x00000010;
+pub const NDR_LOCAL_ENDIAN: c_ulong = NDR_LITTLE_ENDIAN;
+pub type small = c_char;
+pub type byte = c_uchar;
+pub type cs_byte = byte;
+pub type boolean = c_uchar;
+pub type hyper = __int64;
+pub type MIDL_uhyper = __uint64;
+// TODO Finish the rest
diff --git a/third_party/rust/winapi/src/shared/sddl.rs b/third_party/rust/winapi/src/shared/sddl.rs
new file mode 100644
index 0000000000..cf64387a4b
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/sddl.rs
@@ -0,0 +1,217 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::SIZE_T;
+use shared::minwindef::{BOOL, DWORD, PULONG, UCHAR};
+use um::winnt::{LPCSTR, LPCWSTR, LPSTR, LPWSTR, PSECURITY_DESCRIPTOR, PSID, SECURITY_INFORMATION};
+pub const SDDL_REVISION_1: UCHAR = 1;
+pub const SDDL_REVISION: UCHAR = SDDL_REVISION_1;
+pub const SDDL_OWNER: &'static str = "O";
+pub const SDDL_GROUP: &'static str = "G";
+pub const SDDL_DACL: &'static str = "D";
+pub const SDDL_SACL: &'static str = "S";
+pub const SDDL_PROTECTED: &'static str = "P";
+pub const SDDL_AUTO_INHERIT_REQ: &'static str = "AR";
+pub const SDDL_AUTO_INHERITED: &'static str = "AI";
+pub const SDDL_NULL_ACL: &'static str = "NO_ACCESS_CONTROL";
+pub const SDDL_ACCESS_ALLOWED: &'static str = "A";
+pub const SDDL_ACCESS_DENIED: &'static str = "D";
+pub const SDDL_OBJECT_ACCESS_ALLOWED: &'static str = "OA";
+pub const SDDL_OBJECT_ACCESS_DENIED: &'static str = "OD";
+pub const SDDL_AUDIT: &'static str = "AU";
+pub const SDDL_ALARM: &'static str = "AL";
+pub const SDDL_OBJECT_AUDIT: &'static str = "OU";
+pub const SDDL_OBJECT_ALARM: &'static str = "OL";
+pub const SDDL_MANDATORY_LABEL: &'static str = "ML";
+pub const SDDL_PROCESS_TRUST_LABEL: &'static str = "TL";
+pub const SDDL_CALLBACK_ACCESS_ALLOWED: &'static str = "XA";
+pub const SDDL_CALLBACK_ACCESS_DENIED: &'static str = "XD";
+pub const SDDL_RESOURCE_ATTRIBUTE: &'static str = "RA";
+pub const SDDL_SCOPED_POLICY_ID: &'static str = "SP";
+pub const SDDL_CALLBACK_AUDIT: &'static str = "XU";
+pub const SDDL_CALLBACK_OBJECT_ACCESS_ALLOWED: &'static str = "ZA";
+pub const SDDL_ACCESS_FILTER: &'static str = "FL";
+pub const SDDL_INT: &'static str = "TI";
+pub const SDDL_UINT: &'static str = "TU";
+pub const SDDL_WSTRING: &'static str = "TS";
+pub const SDDL_SID: &'static str = "TD";
+pub const SDDL_BLOB: &'static str = "TX";
+pub const SDDL_BOOLEAN: &'static str = "TB";
+pub const SDDL_CONTAINER_INHERIT: &'static str = "CI";
+pub const SDDL_OBJECT_INHERIT: &'static str = "OI";
+pub const SDDL_NO_PROPAGATE: &'static str = "NP";
+pub const SDDL_INHERIT_ONLY: &'static str = "IO";
+pub const SDDL_INHERITED: &'static str = "ID";
+pub const SDDL_TRUST_PROTECTED_FILTER: &'static str = "TP";
+pub const SDDL_AUDIT_SUCCESS: &'static str = "SA";
+pub const SDDL_AUDIT_FAILURE: &'static str = "FA";
+pub const SDDL_READ_PROPERTY: &'static str = "RP";
+pub const SDDL_WRITE_PROPERTY: &'static str = "WP";
+pub const SDDL_CREATE_CHILD: &'static str = "CC";
+pub const SDDL_DELETE_CHILD: &'static str = "DC";
+pub const SDDL_LIST_CHILDREN: &'static str = "LC";
+pub const SDDL_SELF_WRITE: &'static str = "SW";
+pub const SDDL_LIST_OBJECT: &'static str = "LO";
+pub const SDDL_DELETE_TREE: &'static str = "DT";
+pub const SDDL_CONTROL_ACCESS: &'static str = "CR";
+pub const SDDL_READ_CONTROL: &'static str = "RC";
+pub const SDDL_WRITE_DAC: &'static str = "WD";
+pub const SDDL_WRITE_OWNER: &'static str = "WO";
+pub const SDDL_STANDARD_DELETE: &'static str = "SD";
+pub const SDDL_GENERIC_ALL: &'static str = "GA";
+pub const SDDL_GENERIC_READ: &'static str = "GR";
+pub const SDDL_GENERIC_WRITE: &'static str = "GW";
+pub const SDDL_GENERIC_EXECUTE: &'static str = "GX";
+pub const SDDL_FILE_ALL: &'static str = "FA";
+pub const SDDL_FILE_READ: &'static str = "FR";
+pub const SDDL_FILE_WRITE: &'static str = "FW";
+pub const SDDL_FILE_EXECUTE: &'static str = "FX";
+pub const SDDL_KEY_ALL: &'static str = "KA";
+pub const SDDL_KEY_READ: &'static str = "KR";
+pub const SDDL_KEY_WRITE: &'static str = "KW";
+pub const SDDL_KEY_EXECUTE: &'static str = "KX";
+pub const SDDL_NO_WRITE_UP: &'static str = "NW";
+pub const SDDL_NO_READ_UP: &'static str = "NR";
+pub const SDDL_NO_EXECUTE_UP: &'static str = "NX";
+pub const SDDL_ALIAS_SIZE: SIZE_T = 2;
+pub const SDDL_DOMAIN_ADMINISTRATORS: &'static str = "DA";
+pub const SDDL_DOMAIN_GUESTS: &'static str = "DG";
+pub const SDDL_DOMAIN_USERS: &'static str = "DU";
+pub const SDDL_ENTERPRISE_DOMAIN_CONTROLLERS: &'static str = "ED";
+pub const SDDL_DOMAIN_DOMAIN_CONTROLLERS: &'static str = "DD";
+pub const SDDL_DOMAIN_COMPUTERS: &'static str = "DC";
+pub const SDDL_BUILTIN_ADMINISTRATORS: &'static str = "BA";
+pub const SDDL_BUILTIN_GUESTS: &'static str = "BG";
+pub const SDDL_BUILTIN_USERS: &'static str = "BU";
+pub const SDDL_LOCAL_ADMIN: &'static str = "LA";
+pub const SDDL_LOCAL_GUEST: &'static str = "LG";
+pub const SDDL_ACCOUNT_OPERATORS: &'static str = "AO";
+pub const SDDL_BACKUP_OPERATORS: &'static str = "BO";
+pub const SDDL_PRINTER_OPERATORS: &'static str = "PO";
+pub const SDDL_SERVER_OPERATORS: &'static str = "SO";
+pub const SDDL_AUTHENTICATED_USERS: &'static str = "AU";
+pub const SDDL_PERSONAL_SELF: &'static str = "PS";
+pub const SDDL_CREATOR_OWNER: &'static str = "CO";
+pub const SDDL_CREATOR_GROUP: &'static str = "CG";
+pub const SDDL_LOCAL_SYSTEM: &'static str = "SY";
+pub const SDDL_POWER_USERS: &'static str = "PU";
+pub const SDDL_EVERYONE: &'static str = "WD";
+pub const SDDL_REPLICATOR: &'static str = "RE";
+pub const SDDL_INTERACTIVE: &'static str = "IU";
+pub const SDDL_NETWORK: &'static str = "NU";
+pub const SDDL_SERVICE: &'static str = "SU";
+pub const SDDL_RESTRICTED_CODE: &'static str = "RC";
+pub const SDDL_WRITE_RESTRICTED_CODE: &'static str = "WR";
+pub const SDDL_ANONYMOUS: &'static str = "AN";
+pub const SDDL_SCHEMA_ADMINISTRATORS: &'static str = "SA";
+pub const SDDL_CERT_SERV_ADMINISTRATORS: &'static str = "CA";
+pub const SDDL_RAS_SERVERS: &'static str = "RS";
+pub const SDDL_ENTERPRISE_ADMINS: &'static str = "EA";
+pub const SDDL_GROUP_POLICY_ADMINS: &'static str = "PA";
+pub const SDDL_ALIAS_PREW2KCOMPACC: &'static str = "RU";
+pub const SDDL_LOCAL_SERVICE: &'static str = "LS";
+pub const SDDL_NETWORK_SERVICE: &'static str = "NS";
+pub const SDDL_REMOTE_DESKTOP: &'static str = "RD";
+pub const SDDL_NETWORK_CONFIGURATION_OPS: &'static str = "NO";
+pub const SDDL_PERFMON_USERS: &'static str = "MU";
+pub const SDDL_PERFLOG_USERS: &'static str = "LU";
+pub const SDDL_IIS_USERS: &'static str = "IS";
+pub const SDDL_CRYPTO_OPERATORS: &'static str = "CY";
+pub const SDDL_OWNER_RIGHTS: &'static str = "OW";
+pub const SDDL_EVENT_LOG_READERS: &'static str = "ER";
+pub const SDDL_ENTERPRISE_RO_DCs: &'static str = "RO";
+pub const SDDL_CERTSVC_DCOM_ACCESS: &'static str = "CD";
+pub const SDDL_ALL_APP_PACKAGES: &'static str = "AC";
+pub const SDDL_RDS_REMOTE_ACCESS_SERVERS: &'static str = "RA";
+pub const SDDL_RDS_ENDPOINT_SERVERS: &'static str = "ES";
+pub const SDDL_RDS_MANAGEMENT_SERVERS: &'static str = "MS";
+pub const SDDL_USER_MODE_DRIVERS: &'static str = "UD";
+pub const SDDL_HYPER_V_ADMINS: &'static str = "HA";
+pub const SDDL_CLONEABLE_CONTROLLERS: &'static str = "CN";
+pub const SDDL_ACCESS_CONTROL_ASSISTANCE_OPS: &'static str = "AA";
+pub const SDDL_REMOTE_MANAGEMENT_USERS: &'static str = "RM";
+pub const SDDL_AUTHORITY_ASSERTED: &'static str = "AS";
+pub const SDDL_SERVICE_ASSERTED: &'static str = "SS";
+pub const SDDL_PROTECTED_USERS: &'static str = "AP";
+pub const SDDL_KEY_ADMINS: &'static str = "KA";
+pub const SDDL_ENTERPRISE_KEY_ADMINS: &'static str = "EK";
+pub const SDDL_ML_LOW: &'static str = "LW";
+pub const SDDL_ML_MEDIUM: &'static str = "ME";
+pub const SDDL_ML_MEDIUM_PLUS: &'static str = "MP";
+pub const SDDL_ML_HIGH: &'static str = "HI";
+pub const SDDL_ML_SYSTEM: &'static str = "SI";
+pub const SDDL_SEPERATORC: char = ';';
+pub const SDDL_DELIMINATORC: char = ':';
+pub const SDDL_ACE_BEGINC: char = '(';
+pub const SDDL_ACE_ENDC: char = ')';
+pub const SDDL_SPACEC: char = ' ';
+pub const SDDL_ACE_COND_BEGINC: char = '(';
+pub const SDDL_ACE_COND_ENDC: char = ')';
+pub const SDDL_ACE_COND_STRING_BEGINC: char = '"';
+pub const SDDL_ACE_COND_STRING_ENDC: char = '"';
+pub const SDDL_ACE_COND_COMPOSITEVALUE_BEGINC: char = '{';
+pub const SDDL_ACE_COND_COMPOSITEVALUE_ENDC: char = '}';
+pub const SDDL_ACE_COND_COMPOSITEVALUE_SEPERATORC: char = ',';
+pub const SDDL_ACE_COND_BLOB_PREFIXC: char = '#';
+pub const SDDL_ACE_COND_SID_BEGINC: char = '(';
+pub const SDDL_ACE_COND_SID_ENDC: char = ')';
+pub const SDDL_SEPERATOR: &'static str = ";";
+pub const SDDL_DELIMINATOR: &'static str = ":";
+pub const SDDL_ACE_BEGIN: &'static str = "(";
+pub const SDDL_ACE_END: &'static str = ")";
+pub const SDDL_ACE_COND_BEGIN: &'static str = "(";
+pub const SDDL_ACE_COND_END: &'static str = ")";
+pub const SDDL_SPACE: &'static str = " ";
+pub const SDDL_ACE_COND_BLOB_PREFIX: &'static str = "#";
+pub const SDDL_ACE_COND_SID_PREFIX: &'static str = "SID";
+pub const SDDL_ACE_COND_ATTRIBUTE_PREFIX: &'static str = "@";
+pub const SDDL_ACE_COND_USER_ATTRIBUTE_PREFIX: &'static str = "@USER.";
+pub const SDDL_ACE_COND_RESOURCE_ATTRIBUTE_PREFIX: &'static str = "@RESOURCE.";
+pub const SDDL_ACE_COND_DEVICE_ATTRIBUTE_PREFIX: &'static str = "@DEVICE.";
+pub const SDDL_ACE_COND_TOKEN_ATTRIBUTE_PREFIX: &'static str = "@TOKEN.";
+extern "system" {
+ pub fn ConvertSidToStringSidA(
+ Sid: PSID,
+ StringSid: *mut LPSTR,
+ ) -> BOOL;
+ pub fn ConvertSidToStringSidW(
+ Sid: PSID,
+ StringSid: *mut LPWSTR,
+ ) -> BOOL;
+ pub fn ConvertStringSidToSidA(
+ StringSid: LPCSTR,
+ Sid: *mut PSID,
+ ) -> BOOL;
+ pub fn ConvertStringSidToSidW(
+ StringSid: LPCWSTR,
+ Sid: *mut PSID,
+ ) -> BOOL;
+ pub fn ConvertStringSecurityDescriptorToSecurityDescriptorA(
+ StringSecurityDescriptor: LPCSTR,
+ StringSDRevision: DWORD,
+ SecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
+ SecurityDescriptorSize: PULONG,
+ ) -> BOOL;
+ pub fn ConvertStringSecurityDescriptorToSecurityDescriptorW(
+ StringSecurityDescriptor: LPCWSTR,
+ StringSDRevision: DWORD,
+ SecurityDescriptor: *mut PSECURITY_DESCRIPTOR,
+ SecurityDescriptorSize: PULONG,
+ ) -> BOOL;
+ pub fn ConvertSecurityDescriptorToStringSecurityDescriptorA(
+ SecurityDescriptor: PSECURITY_DESCRIPTOR,
+ RequestedStringSDRevision: DWORD,
+ SecurityInformation: SECURITY_INFORMATION,
+ StringSecurityDescriptor: *mut LPSTR,
+ StringSecurityDescriptorLen: PULONG,
+ ) -> BOOL;
+ pub fn ConvertSecurityDescriptorToStringSecurityDescriptorW(
+ SecurityDescriptor: PSECURITY_DESCRIPTOR,
+ RequestedStringSDRevision: DWORD,
+ SecurityInformation: SECURITY_INFORMATION,
+ StringSecurityDescriptor: *mut LPWSTR,
+ StringSecurityDescriptorLen: PULONG,
+ ) -> BOOL;
+}
diff --git a/third_party/rust/winapi/src/shared/sspi.rs b/third_party/rust/winapi/src/shared/sspi.rs
new file mode 100644
index 0000000000..3b7c2d68a5
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/sspi.rs
@@ -0,0 +1,1074 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Security Support Provider Interface Prototypes and structure definitions
+use ctypes::{c_char, c_int, c_uchar, c_ulong, c_ushort, c_void};
+use shared::basetsd::ULONG_PTR;
+use shared::guiddef::GUID;
+use shared::minwindef::{PUCHAR, ULONG, USHORT};
+use um::subauth::PUNICODE_STRING;
+use um::wincred::{PCREDUI_INFOA, PCREDUI_INFOW};
+use um::winnt::{
+ ANYSIZE_ARRAY, BOOLEAN, CHAR, HANDLE, LARGE_INTEGER, LONG, LPSTR, LPWSTR, LUID, PCSTR, PCWSTR,
+ PVOID, WCHAR
+};
+pub type SEC_WCHAR = WCHAR;
+pub type SEC_CHAR = CHAR;
+pub type SECURITY_STATUS = LONG;
+STRUCT!{struct SecHandle {
+ dwLower: ULONG_PTR,
+ dwUpper: ULONG_PTR,
+}}
+pub type PSecHandle = *mut SecHandle;
+pub const SEC_DELETED_HANDLE: ULONG_PTR = 2;
+pub type CredHandle = SecHandle;
+pub type PCredHandle = PSecHandle;
+pub type CtxtHandle = SecHandle;
+pub type PCtxtHandle = PSecHandle;
+pub type SECURITY_INTEGER = LARGE_INTEGER;
+pub type PSECURITY_INTEGER = *mut LARGE_INTEGER;
+pub type TimeStamp = SECURITY_INTEGER;
+pub type PTimeStamp = *mut SECURITY_INTEGER;
+STRUCT!{struct SECURITY_STRING {
+ Length: c_ushort,
+ MaximumLength: c_ushort,
+ Buffer: *mut c_ushort,
+}}
+pub type PSECURITY_STRING = *mut SECURITY_STRING;
+STRUCT!{struct SecPkgInfoW {
+ fCapabilities: c_ulong,
+ wVersion: c_ushort,
+ wRPCID: c_ushort,
+ cbMaxToken: c_ulong,
+ Name: *mut SEC_WCHAR,
+ Comment: *mut SEC_WCHAR,
+}}
+pub type PSecPkgInfoW = *mut SecPkgInfoW;
+STRUCT!{struct SecPkgInfoA {
+ fCapabilities: c_ulong,
+ wVersion: c_ushort,
+ wRPCID: c_ushort,
+ cbMaxToken: c_ulong,
+ Name: *mut SEC_CHAR,
+ Comment: *mut SEC_CHAR,
+}}
+pub type PSecPkgInfoA = *mut SecPkgInfoA;
+pub const SECPKG_FLAG_INTEGRITY: c_ulong = 0x00000001;
+pub const SECPKG_FLAG_PRIVACY: c_ulong = 0x00000002;
+pub const SECPKG_FLAG_TOKEN_ONLY: c_ulong = 0x00000004;
+pub const SECPKG_FLAG_DATAGRAM: c_ulong = 0x00000008;
+pub const SECPKG_FLAG_CONNECTION: c_ulong = 0x00000010;
+pub const SECPKG_FLAG_MULTI_REQUIRED: c_ulong = 0x00000020;
+pub const SECPKG_FLAG_CLIENT_ONLY: c_ulong = 0x00000040;
+pub const SECPKG_FLAG_EXTENDED_ERROR: c_ulong = 0x00000080;
+pub const SECPKG_FLAG_IMPERSONATION: c_ulong = 0x00000100;
+pub const SECPKG_FLAG_ACCEPT_WIN32_NAME: c_ulong = 0x00000200;
+pub const SECPKG_FLAG_STREAM: c_ulong = 0x00000400;
+pub const SECPKG_FLAG_NEGOTIABLE: c_ulong = 0x00000800;
+pub const SECPKG_FLAG_GSS_COMPATIBLE: c_ulong = 0x00001000;
+pub const SECPKG_FLAG_LOGON: c_ulong = 0x00002000;
+pub const SECPKG_FLAG_ASCII_BUFFERS: c_ulong = 0x00004000;
+pub const SECPKG_FLAG_FRAGMENT: c_ulong = 0x00008000;
+pub const SECPKG_FLAG_MUTUAL_AUTH: c_ulong = 0x00010000;
+pub const SECPKG_FLAG_DELEGATION: c_ulong = 0x00020000;
+pub const SECPKG_FLAG_READONLY_WITH_CHECKSUM: c_ulong = 0x00040000;
+pub const SECPKG_FLAG_RESTRICTED_TOKENS: c_ulong = 0x00080000;
+pub const SECPKG_FLAG_NEGO_EXTENDER: c_ulong = 0x00100000;
+pub const SECPKG_FLAG_NEGOTIABLE2: c_ulong = 0x00200000;
+pub const SECPKG_FLAG_APPCONTAINER_PASSTHROUGH: c_ulong = 0x00400000;
+pub const SECPKG_FLAG_APPCONTAINER_CHECKS: c_ulong = 0x00800000;
+pub const SECPKG_ID_NONE: c_ulong = 0xFFFF;
+pub const SECPKG_CALLFLAGS_APPCONTAINER: c_ulong = 0x00000001;
+pub const SECPKG_CALLFLAGS_APPCONTAINER_AUTHCAPABLE: c_ulong = 0x00000002;
+pub const SECPKG_CALLFLAGS_FORCE_SUPPLIED: c_ulong = 0x00000004;
+STRUCT!{struct SecBuffer {
+ cbBuffer: c_ulong,
+ BufferType: c_ulong,
+ pvBuffer: *mut c_void,
+}}
+pub type PSecBuffer = *mut SecBuffer;
+STRUCT!{struct SecBufferDesc {
+ ulVersion: c_ulong,
+ cBuffers: c_ulong,
+ pBuffers: PSecBuffer,
+}}
+pub type PSecBufferDesc = *mut SecBufferDesc;
+pub const SECBUFFER_VERSION: c_ulong = 0;
+pub const SECBUFFER_EMPTY: c_ulong = 0;
+pub const SECBUFFER_DATA: c_ulong = 1;
+pub const SECBUFFER_TOKEN: c_ulong = 2;
+pub const SECBUFFER_PKG_PARAMS: c_ulong = 3;
+pub const SECBUFFER_MISSING: c_ulong = 4;
+pub const SECBUFFER_EXTRA: c_ulong = 5;
+pub const SECBUFFER_STREAM_TRAILER: c_ulong = 6;
+pub const SECBUFFER_STREAM_HEADER: c_ulong = 7;
+pub const SECBUFFER_NEGOTIATION_INFO: c_ulong = 8;
+pub const SECBUFFER_PADDING: c_ulong = 9;
+pub const SECBUFFER_STREAM: c_ulong = 10;
+pub const SECBUFFER_MECHLIST: c_ulong = 11;
+pub const SECBUFFER_MECHLIST_SIGNATURE: c_ulong = 12;
+pub const SECBUFFER_TARGET: c_ulong = 13;
+pub const SECBUFFER_CHANNEL_BINDINGS: c_ulong = 14;
+pub const SECBUFFER_CHANGE_PASS_RESPONSE: c_ulong = 15;
+pub const SECBUFFER_TARGET_HOST: c_ulong = 16;
+pub const SECBUFFER_ALERT: c_ulong = 17;
+pub const SECBUFFER_APPLICATION_PROTOCOLS: c_ulong = 18;
+pub const SECBUFFER_ATTRMASK: c_ulong = 0xF0000000;
+pub const SECBUFFER_READONLY: c_ulong = 0x80000000;
+pub const SECBUFFER_READONLY_WITH_CHECKSUM: c_ulong = 0x10000000;
+pub const SECBUFFER_RESERVED: c_ulong = 0x60000000;
+STRUCT!{struct SEC_NEGOTIATION_INFO {
+ Size: c_ulong,
+ NameLength: c_ulong,
+ Name: *mut SEC_WCHAR,
+ Reserved: *mut c_void,
+}}
+pub type PSEC_NEGOTIATION_INFO = *mut SEC_NEGOTIATION_INFO;
+STRUCT!{struct SEC_CHANNEL_BINDINGS {
+ dwInitiatorAddrType: c_ulong,
+ cbInitiatorLength: c_ulong,
+ dwInitiatorOffset: c_ulong,
+ dwAcceptorAddrType: c_ulong,
+ cbAcceptorLength: c_ulong,
+ dwAcceptorOffset: c_ulong,
+ cbApplicationDataLength: c_ulong,
+ dwApplicationDataOffset: c_ulong,
+}}
+pub type PSEC_CHANNEL_BINDINGS = *mut SEC_CHANNEL_BINDINGS;
+ENUM!{enum SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT {
+ SecApplicationProtocolNegotiationExt_None,
+ SecApplicationProtocolNegotiationExt_NPN,
+ SecApplicationProtocolNegotiationExt_ALPN,
+}}
+pub type PSEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT = *mut SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT;
+STRUCT!{struct SEC_APPLICATION_PROTOCOL_LIST {
+ ProtoNegoExt: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT,
+ ProtocolListSize: c_ushort,
+ ProtocolList: [c_uchar; 0],
+}}
+pub type PSEC_APPLICATION_PROTOCOL_LIST = *mut SEC_APPLICATION_PROTOCOL_LIST;
+STRUCT!{struct SEC_APPLICATION_PROTOCOLS {
+ ProtocolListsSize: c_ulong,
+ ProtocolLists: [SEC_APPLICATION_PROTOCOL_LIST; ANYSIZE_ARRAY],
+}}
+pub type PSEC_APPLICATION_PROTOCOLS = *mut SEC_APPLICATION_PROTOCOLS;
+pub const SECURITY_NATIVE_DREP: c_ulong = 0x00000010;
+pub const SECURITY_NETWORK_DREP: c_ulong = 0x00000000;
+pub const SECPKG_CRED_INBOUND: c_ulong = 0x00000001;
+pub const SECPKG_CRED_OUTBOUND: c_ulong = 0x00000002;
+pub const SECPKG_CRED_BOTH: c_ulong = 0x00000003;
+pub const SECPKG_CRED_DEFAULT: c_ulong = 0x00000004;
+pub const SECPKG_CRED_RESERVED: c_ulong = 0xF0000000;
+pub const SECPKG_CRED_AUTOLOGON_RESTRICTED: c_ulong = 0x00000010;
+pub const SECPKG_CRED_PROCESS_POLICY_ONLY: c_ulong = 0x00000020;
+pub const ISC_REQ_DELEGATE: c_ulong = 0x00000001;
+pub const ISC_REQ_MUTUAL_AUTH: c_ulong = 0x00000002;
+pub const ISC_REQ_REPLAY_DETECT: c_ulong = 0x00000004;
+pub const ISC_REQ_SEQUENCE_DETECT: c_ulong = 0x00000008;
+pub const ISC_REQ_CONFIDENTIALITY: c_ulong = 0x00000010;
+pub const ISC_REQ_USE_SESSION_KEY: c_ulong = 0x00000020;
+pub const ISC_REQ_PROMPT_FOR_CREDS: c_ulong = 0x00000040;
+pub const ISC_REQ_USE_SUPPLIED_CREDS: c_ulong = 0x00000080;
+pub const ISC_REQ_ALLOCATE_MEMORY: c_ulong = 0x00000100;
+pub const ISC_REQ_USE_DCE_STYLE: c_ulong = 0x00000200;
+pub const ISC_REQ_DATAGRAM: c_ulong = 0x00000400;
+pub const ISC_REQ_CONNECTION: c_ulong = 0x00000800;
+pub const ISC_REQ_CALL_LEVEL: c_ulong = 0x00001000;
+pub const ISC_REQ_FRAGMENT_SUPPLIED: c_ulong = 0x00002000;
+pub const ISC_REQ_EXTENDED_ERROR: c_ulong = 0x00004000;
+pub const ISC_REQ_STREAM: c_ulong = 0x00008000;
+pub const ISC_REQ_INTEGRITY: c_ulong = 0x00010000;
+pub const ISC_REQ_IDENTIFY: c_ulong = 0x00020000;
+pub const ISC_REQ_NULL_SESSION: c_ulong = 0x00040000;
+pub const ISC_REQ_MANUAL_CRED_VALIDATION: c_ulong = 0x00080000;
+pub const ISC_REQ_RESERVED1: c_ulong = 0x00100000;
+pub const ISC_REQ_FRAGMENT_TO_FIT: c_ulong = 0x00200000;
+pub const ISC_REQ_FORWARD_CREDENTIALS: c_ulong = 0x00400000;
+pub const ISC_REQ_NO_INTEGRITY: c_ulong = 0x00800000;
+pub const ISC_REQ_USE_HTTP_STYLE: c_ulong = 0x01000000;
+pub const ISC_REQ_UNVERIFIED_TARGET_NAME: c_ulong = 0x20000000;
+pub const ISC_REQ_CONFIDENTIALITY_ONLY: c_ulong = 0x40000000;
+pub const ISC_RET_DELEGATE: c_ulong = 0x00000001;
+pub const ISC_RET_MUTUAL_AUTH: c_ulong = 0x00000002;
+pub const ISC_RET_REPLAY_DETECT: c_ulong = 0x00000004;
+pub const ISC_RET_SEQUENCE_DETECT: c_ulong = 0x00000008;
+pub const ISC_RET_CONFIDENTIALITY: c_ulong = 0x00000010;
+pub const ISC_RET_USE_SESSION_KEY: c_ulong = 0x00000020;
+pub const ISC_RET_USED_COLLECTED_CREDS: c_ulong = 0x00000040;
+pub const ISC_RET_USED_SUPPLIED_CREDS: c_ulong = 0x00000080;
+pub const ISC_RET_ALLOCATED_MEMORY: c_ulong = 0x00000100;
+pub const ISC_RET_USED_DCE_STYLE: c_ulong = 0x00000200;
+pub const ISC_RET_DATAGRAM: c_ulong = 0x00000400;
+pub const ISC_RET_CONNECTION: c_ulong = 0x00000800;
+pub const ISC_RET_INTERMEDIATE_RETURN: c_ulong = 0x00001000;
+pub const ISC_RET_CALL_LEVEL: c_ulong = 0x00002000;
+pub const ISC_RET_EXTENDED_ERROR: c_ulong = 0x00004000;
+pub const ISC_RET_STREAM: c_ulong = 0x00008000;
+pub const ISC_RET_INTEGRITY: c_ulong = 0x00010000;
+pub const ISC_RET_IDENTIFY: c_ulong = 0x00020000;
+pub const ISC_RET_NULL_SESSION: c_ulong = 0x00040000;
+pub const ISC_RET_MANUAL_CRED_VALIDATION: c_ulong = 0x00080000;
+pub const ISC_RET_RESERVED1: c_ulong = 0x00100000;
+pub const ISC_RET_FRAGMENT_ONLY: c_ulong = 0x00200000;
+pub const ISC_RET_FORWARD_CREDENTIALS: c_ulong = 0x00400000;
+pub const ISC_RET_USED_HTTP_STYLE: c_ulong = 0x01000000;
+pub const ISC_RET_NO_ADDITIONAL_TOKEN: c_ulong = 0x02000000;
+pub const ISC_RET_REAUTHENTICATION: c_ulong = 0x08000000;
+pub const ISC_RET_CONFIDENTIALITY_ONLY: c_ulong = 0x40000000;
+pub const ASC_REQ_DELEGATE: c_ulong = 0x00000001;
+pub const ASC_REQ_MUTUAL_AUTH: c_ulong = 0x00000002;
+pub const ASC_REQ_REPLAY_DETECT: c_ulong = 0x00000004;
+pub const ASC_REQ_SEQUENCE_DETECT: c_ulong = 0x00000008;
+pub const ASC_REQ_CONFIDENTIALITY: c_ulong = 0x00000010;
+pub const ASC_REQ_USE_SESSION_KEY: c_ulong = 0x00000020;
+pub const ASC_REQ_SESSION_TICKET: c_ulong = 0x00000040;
+pub const ASC_REQ_ALLOCATE_MEMORY: c_ulong = 0x00000100;
+pub const ASC_REQ_USE_DCE_STYLE: c_ulong = 0x00000200;
+pub const ASC_REQ_DATAGRAM: c_ulong = 0x00000400;
+pub const ASC_REQ_CONNECTION: c_ulong = 0x00000800;
+pub const ASC_REQ_CALL_LEVEL: c_ulong = 0x00001000;
+pub const ASC_REQ_EXTENDED_ERROR: c_ulong = 0x00008000;
+pub const ASC_REQ_STREAM: c_ulong = 0x00010000;
+pub const ASC_REQ_INTEGRITY: c_ulong = 0x00020000;
+pub const ASC_REQ_LICENSING: c_ulong = 0x00040000;
+pub const ASC_REQ_IDENTIFY: c_ulong = 0x00080000;
+pub const ASC_REQ_ALLOW_NULL_SESSION: c_ulong = 0x00100000;
+pub const ASC_REQ_ALLOW_NON_USER_LOGONS: c_ulong = 0x00200000;
+pub const ASC_REQ_ALLOW_CONTEXT_REPLAY: c_ulong = 0x00400000;
+pub const ASC_REQ_FRAGMENT_TO_FIT: c_ulong = 0x00800000;
+pub const ASC_REQ_FRAGMENT_SUPPLIED: c_ulong = 0x00002000;
+pub const ASC_REQ_NO_TOKEN: c_ulong = 0x01000000;
+pub const ASC_REQ_PROXY_BINDINGS: c_ulong = 0x04000000;
+pub const ASC_REQ_ALLOW_MISSING_BINDINGS: c_ulong = 0x10000000;
+pub const ASC_RET_DELEGATE: c_ulong = 0x00000001;
+pub const ASC_RET_MUTUAL_AUTH: c_ulong = 0x00000002;
+pub const ASC_RET_REPLAY_DETECT: c_ulong = 0x00000004;
+pub const ASC_RET_SEQUENCE_DETECT: c_ulong = 0x00000008;
+pub const ASC_RET_CONFIDENTIALITY: c_ulong = 0x00000010;
+pub const ASC_RET_USE_SESSION_KEY: c_ulong = 0x00000020;
+pub const ASC_RET_SESSION_TICKET: c_ulong = 0x00000040;
+pub const ASC_RET_ALLOCATED_MEMORY: c_ulong = 0x00000100;
+pub const ASC_RET_USED_DCE_STYLE: c_ulong = 0x00000200;
+pub const ASC_RET_DATAGRAM: c_ulong = 0x00000400;
+pub const ASC_RET_CONNECTION: c_ulong = 0x00000800;
+pub const ASC_RET_CALL_LEVEL: c_ulong = 0x00002000;
+pub const ASC_RET_THIRD_LEG_FAILED: c_ulong = 0x00004000;
+pub const ASC_RET_EXTENDED_ERROR: c_ulong = 0x00008000;
+pub const ASC_RET_STREAM: c_ulong = 0x00010000;
+pub const ASC_RET_INTEGRITY: c_ulong = 0x00020000;
+pub const ASC_RET_LICENSING: c_ulong = 0x00040000;
+pub const ASC_RET_IDENTIFY: c_ulong = 0x00080000;
+pub const ASC_RET_NULL_SESSION: c_ulong = 0x00100000;
+pub const ASC_RET_ALLOW_NON_USER_LOGONS: c_ulong = 0x00200000;
+pub const ASC_RET_ALLOW_CONTEXT_REPLAY: c_ulong = 0x00400000;
+pub const ASC_RET_FRAGMENT_ONLY: c_ulong = 0x00800000;
+pub const ASC_RET_NO_TOKEN: c_ulong = 0x01000000;
+pub const ASC_RET_NO_ADDITIONAL_TOKEN: c_ulong = 0x02000000;
+pub const SECPKG_CRED_ATTR_NAMES: c_ulong = 1;
+pub const SECPKG_CRED_ATTR_SSI_PROVIDER: c_ulong = 2;
+pub const SECPKG_CRED_ATTR_KDC_PROXY_SETTINGS: c_ulong = 3;
+pub const SECPKG_CRED_ATTR_CERT: c_ulong = 4;
+STRUCT!{struct SecPkgCredentials_NamesW {
+ sUserName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgCredentials_NamesW = *mut SecPkgCredentials_NamesW;
+STRUCT!{struct SecPkgCredentials_NamesA {
+ sUserName: *mut SEC_CHAR,
+}}
+pub type PSecPkgCredentials_NamesA = *mut SecPkgCredentials_NamesA;
+STRUCT!{struct SecPkgCredentials_SSIProviderW {
+ sProviderName: *mut SEC_WCHAR,
+ ProviderInfoLength: c_ulong,
+ ProviderInfo: *mut c_char,
+}}
+pub type PSecPkgCredentials_SSIProviderW = *mut SecPkgCredentials_SSIProviderW;
+STRUCT!{struct SecPkgCredentials_SSIProviderA {
+ sProviderName: *mut SEC_CHAR,
+ ProviderInfoLength: c_ulong,
+ ProviderInfo: *mut c_char,
+}}
+pub type PSecPkgCredentials_SSIProviderA = *mut SecPkgCredentials_SSIProviderA;
+pub const KDC_PROXY_SETTINGS_V1: ULONG = 1;
+pub const KDC_PROXY_SETTINGS_FLAGS_FORCEPROXY: ULONG = 0x1;
+STRUCT!{struct SecPkgCredentials_KdcProxySettingsW {
+ Version: ULONG,
+ Flags: ULONG,
+ ProxyServerOffset: USHORT,
+ ProxyServerLength: USHORT,
+ ClientTlsCredOffset: USHORT,
+ ClientTlsCredLength: USHORT,
+}}
+pub type PSecPkgCredentials_KdcProxySettingsW = *mut SecPkgCredentials_KdcProxySettingsW;
+STRUCT!{struct SecPkgCredentials_Cert {
+ EncodedCertSize: c_ulong,
+ EncodedCert: *mut c_uchar,
+}}
+pub type PSecPkgCredentials_Cert = *mut SecPkgCredentials_Cert;
+pub const SECPKG_ATTR_SIZES: c_ulong = 0;
+pub const SECPKG_ATTR_NAMES: c_ulong = 1;
+pub const SECPKG_ATTR_LIFESPAN: c_ulong = 2;
+pub const SECPKG_ATTR_DCE_INFO: c_ulong = 3;
+pub const SECPKG_ATTR_STREAM_SIZES: c_ulong = 4;
+pub const SECPKG_ATTR_KEY_INFO: c_ulong = 5;
+pub const SECPKG_ATTR_AUTHORITY: c_ulong = 6;
+pub const SECPKG_ATTR_PROTO_INFO: c_ulong = 7;
+pub const SECPKG_ATTR_PASSWORD_EXPIRY: c_ulong = 8;
+pub const SECPKG_ATTR_SESSION_KEY: c_ulong = 9;
+pub const SECPKG_ATTR_PACKAGE_INFO: c_ulong = 10;
+pub const SECPKG_ATTR_USER_FLAGS: c_ulong = 11;
+pub const SECPKG_ATTR_NEGOTIATION_INFO: c_ulong = 12;
+pub const SECPKG_ATTR_NATIVE_NAMES: c_ulong = 13;
+pub const SECPKG_ATTR_FLAGS: c_ulong = 14;
+pub const SECPKG_ATTR_USE_VALIDATED: c_ulong = 15;
+pub const SECPKG_ATTR_CREDENTIAL_NAME: c_ulong = 16;
+pub const SECPKG_ATTR_TARGET_INFORMATION: c_ulong = 17;
+pub const SECPKG_ATTR_ACCESS_TOKEN: c_ulong = 18;
+pub const SECPKG_ATTR_TARGET: c_ulong = 19;
+pub const SECPKG_ATTR_AUTHENTICATION_ID: c_ulong = 20;
+pub const SECPKG_ATTR_LOGOFF_TIME: c_ulong = 21;
+pub const SECPKG_ATTR_NEGO_KEYS: c_ulong = 22;
+pub const SECPKG_ATTR_PROMPTING_NEEDED: c_ulong = 24;
+pub const SECPKG_ATTR_UNIQUE_BINDINGS: c_ulong = 25;
+pub const SECPKG_ATTR_ENDPOINT_BINDINGS: c_ulong = 26;
+pub const SECPKG_ATTR_CLIENT_SPECIFIED_TARGET: c_ulong = 27;
+pub const SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS: c_ulong = 30;
+pub const SECPKG_ATTR_NEGO_PKG_INFO: c_ulong = 31;
+pub const SECPKG_ATTR_NEGO_STATUS: c_ulong = 32;
+pub const SECPKG_ATTR_CONTEXT_DELETED: c_ulong = 33;
+pub const SECPKG_ATTR_DTLS_MTU: c_ulong = 34;
+pub const SECPKG_ATTR_DATAGRAM_SIZES: c_ulong = SECPKG_ATTR_STREAM_SIZES;
+pub const SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES: c_ulong = 128;
+pub const SECPKG_ATTR_APPLICATION_PROTOCOL: c_ulong = 35;
+STRUCT!{struct SecPkgContext_SubjectAttributes {
+ AttributeInfo: *mut c_void,
+}}
+pub type PSecPkgContext_SubjectAttributes = *mut SecPkgContext_SubjectAttributes;
+pub const SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS: c_ulong = 0x1;
+pub const SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM: c_ulong = 0x2;
+ENUM!{enum SECPKG_CRED_CLASS {
+ SecPkgCredClass_None = 0,
+ SecPkgCredClass_Ephemeral = 10,
+ SecPkgCredClass_PersistedGeneric = 20,
+ SecPkgCredClass_PersistedSpecific = 30,
+ SecPkgCredClass_Explicit = 40,
+}}
+pub type PSECPKG_CRED_CLASS = *mut SECPKG_CRED_CLASS;
+STRUCT!{struct SecPkgContext_CredInfo {
+ CredClass: SECPKG_CRED_CLASS,
+ IsPromptingNeeded: c_ulong,
+}}
+pub type PSecPkgContext_CredInfo = *mut SecPkgContext_CredInfo;
+STRUCT!{struct SecPkgContext_NegoPackageInfo {
+ PackageMask: c_ulong,
+}}
+pub type PSecPkgContext_NegoPackageInfo = *mut SecPkgContext_NegoPackageInfo;
+STRUCT!{struct SecPkgContext_NegoStatus {
+ LastStatus: c_ulong,
+}}
+pub type PSecPkgContext_NegoStatus = *mut SecPkgContext_NegoStatus;
+STRUCT!{struct SecPkgContext_Sizes {
+ cbMaxToken: c_ulong,
+ cbMaxSignature: c_ulong,
+ cbBlockSize: c_ulong,
+ cbSecurityTrailer: c_ulong,
+}}
+pub type PSecPkgContext_Sizes = *mut SecPkgContext_Sizes;
+STRUCT!{struct SecPkgContext_StreamSizes {
+ cbHeader: c_ulong,
+ cbTrailer: c_ulong,
+ cbMaximumMessage: c_ulong,
+ cBuffers: c_ulong,
+ cbBlockSize: c_ulong,
+}}
+pub type PSecPkgContext_StreamSizes = *mut SecPkgContext_StreamSizes;
+pub type SecPkgContext_DatagramSizes = SecPkgContext_StreamSizes;
+pub type PSecPkgContext_DatagramSizes = PSecPkgContext_StreamSizes;
+STRUCT!{struct SecPkgContext_NamesW {
+ sUserName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgContext_NamesW = *mut SecPkgContext_NamesW;
+ENUM!{enum SECPKG_ATTR_LCT_STATUS {
+ SecPkgAttrLastClientTokenYes,
+ SecPkgAttrLastClientTokenNo,
+ SecPkgAttrLastClientTokenMaybe,
+}}
+pub type PSECPKG_ATTR_LCT_STATUS = *mut SECPKG_ATTR_LCT_STATUS;
+STRUCT!{struct SecPkgContext_LastClientTokenStatus {
+ LastClientTokenStatus: SECPKG_ATTR_LCT_STATUS,
+}}
+pub type PSecPkgContext_LastClientTokenStatus = *mut SecPkgContext_LastClientTokenStatus;
+STRUCT!{struct SecPkgContext_NamesA {
+ sUserName: *mut SEC_CHAR,
+}}
+pub type PSecPkgContext_NamesA = *mut SecPkgContext_NamesA;
+STRUCT!{struct SecPkgContext_Lifespan {
+ tsStart: TimeStamp,
+ tsExpiry: TimeStamp,
+}}
+pub type PSecPkgContext_Lifespan = *mut SecPkgContext_Lifespan;
+STRUCT!{struct SecPkgContext_DceInfo {
+ AuthzSvc: c_ulong,
+ pPac: *mut c_void,
+}}
+pub type PSecPkgContext_DceInfo = *mut SecPkgContext_DceInfo;
+STRUCT!{struct SecPkgContext_KeyInfoA {
+ sSignatureAlgorithmName: *mut SEC_CHAR,
+ sEncryptAlgorithmName: *mut SEC_CHAR,
+ KeySize: c_ulong,
+ SignatureAlgorithm: c_ulong,
+ EncryptAlgorithm: c_ulong,
+}}
+pub type PSecPkgContext_KeyInfoA = *mut SecPkgContext_KeyInfoA;
+STRUCT!{struct SecPkgContext_KeyInfoW {
+ sSignatureAlgorithmName: *mut SEC_WCHAR,
+ sEncryptAlgorithmName: *mut SEC_WCHAR,
+ KeySize: c_ulong,
+ SignatureAlgorithm: c_ulong,
+ EncryptAlgorithm: c_ulong,
+}}
+pub type PSecPkgContext_KeyInfoW = *mut SecPkgContext_KeyInfoW;
+STRUCT!{struct SecPkgContext_AuthorityA {
+ sAuthorityName: *mut SEC_CHAR,
+}}
+pub type PSecPkgContext_AuthorityA = *mut SecPkgContext_AuthorityA;
+STRUCT!{struct SecPkgContext_AuthorityW {
+ sAuthorityName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgContext_AuthorityW = *mut SecPkgContext_AuthorityW;
+STRUCT!{struct SecPkgContext_ProtoInfoA {
+ sProtocolName: *mut SEC_CHAR,
+ majorVersion: c_ulong,
+ minorVersion: c_ulong,
+}}
+pub type PSecPkgContext_ProtoInfoA = *mut SecPkgContext_ProtoInfoA;
+STRUCT!{struct SecPkgContext_ProtoInfoW {
+ sProtocolName: *mut SEC_WCHAR,
+ majorVersion: c_ulong,
+ minorVersion: c_ulong,
+}}
+pub type PSecPkgContext_ProtoInfoW = *mut SecPkgContext_ProtoInfoW;
+STRUCT!{struct SecPkgContext_PasswordExpiry {
+ tsPasswordExpires: TimeStamp,
+}}
+pub type PSecPkgContext_PasswordExpiry = *mut SecPkgContext_PasswordExpiry;
+STRUCT!{struct SecPkgContext_LogoffTime {
+ tsLogoffTime: TimeStamp,
+}}
+pub type PSecPkgContext_LogoffTime = *mut SecPkgContext_LogoffTime;
+STRUCT!{struct SecPkgContext_SessionKey {
+ SessionKeyLength: c_ulong,
+ SessionKey: *mut c_uchar,
+}}
+pub type PSecPkgContext_SessionKey = *mut SecPkgContext_SessionKey;
+STRUCT!{struct SecPkgContext_NegoKeys {
+ KeyType: c_ulong,
+ KeyLength: c_ushort,
+ KeyValue: *mut c_uchar,
+ VerifyKeyType: c_ulong,
+ VerifyKeyLength: c_ushort,
+ VerifyKeyValue: *mut c_uchar,
+}}
+pub type PSecPkgContext_NegoKeys = *mut SecPkgContext_NegoKeys;
+STRUCT!{struct SecPkgContext_PackageInfoW {
+ PackageInfo: PSecPkgInfoW,
+}}
+pub type PSecPkgContext_PackageInfoW = *mut SecPkgContext_PackageInfoW;
+STRUCT!{struct SecPkgContext_PackageInfoA {
+ PackageInfo: PSecPkgInfoA,
+}}
+pub type PSecPkgContext_PackageInfoA = *mut SecPkgContext_PackageInfoA;
+STRUCT!{struct SecPkgContext_UserFlags {
+ UserFlags: c_ulong,
+}}
+pub type PSecPkgContext_UserFlags = *mut SecPkgContext_UserFlags;
+STRUCT!{struct SecPkgContext_Flags {
+ Flags: c_ulong,
+}}
+pub type PSecPkgContext_Flags = *mut SecPkgContext_Flags;
+STRUCT!{struct SecPkgContext_NegotiationInfoA {
+ PackageInfo: PSecPkgInfoA,
+ NegotiationState: c_ulong,
+}}
+pub type PSecPkgContext_NegotiationInfoA = *mut SecPkgContext_NegotiationInfoA;
+STRUCT!{struct SecPkgContext_NegotiationInfoW {
+ PackageInfo: PSecPkgInfoW,
+ NegotiationState: c_ulong,
+}}
+pub type PSecPkgContext_NegotiationInfoW = *mut SecPkgContext_NegotiationInfoW;
+pub const SECPKG_NEGOTIATION_COMPLETE: c_ulong = 0;
+pub const SECPKG_NEGOTIATION_OPTIMISTIC: c_ulong = 1;
+pub const SECPKG_NEGOTIATION_IN_PROGRESS: c_ulong = 2;
+pub const SECPKG_NEGOTIATION_DIRECT: c_ulong = 3;
+pub const SECPKG_NEGOTIATION_TRY_MULTICRED: c_ulong = 4;
+STRUCT!{struct SecPkgContext_NativeNamesW {
+ sClientName: *mut SEC_WCHAR,
+ sServerName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgContext_NativeNamesW = *mut SecPkgContext_NativeNamesW;
+STRUCT!{struct SecPkgContext_NativeNamesA {
+ sClientName: *mut SEC_CHAR,
+ sServerName: *mut SEC_CHAR,
+}}
+pub type PSecPkgContext_NativeNamesA = *mut SecPkgContext_NativeNamesA;
+STRUCT!{struct SecPkgContext_CredentialNameW {
+ CredentialType: c_ulong,
+ sCredentialName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgContext_CredentialNameW = *mut SecPkgContext_CredentialNameW;
+STRUCT!{struct SecPkgContext_CredentialNameA {
+ CredentialType: c_ulong,
+ sCredentialName: *mut SEC_CHAR,
+}}
+pub type PSecPkgContext_CredentialNameA = *mut SecPkgContext_CredentialNameA;
+STRUCT!{struct SecPkgContext_AccessToken {
+ AccessToken: *mut c_void,
+}}
+pub type PSecPkgContext_AccessToken = *mut SecPkgContext_AccessToken;
+STRUCT!{struct SecPkgContext_TargetInformation {
+ MarshalledTargetInfoLength: c_ulong,
+ MarshalledTargetInfo: *mut c_uchar,
+}}
+pub type PSecPkgContext_TargetInformation = *mut SecPkgContext_TargetInformation;
+STRUCT!{struct SecPkgContext_AuthzID {
+ AuthzIDLength: c_ulong,
+ AuthzID: *mut c_char,
+}}
+pub type PSecPkgContext_AuthzID = *mut SecPkgContext_AuthzID;
+STRUCT!{struct SecPkgContext_Target {
+ TargetLength: c_ulong,
+ Target: *mut c_char,
+}}
+pub type PSecPkgContext_Target = *mut SecPkgContext_Target;
+STRUCT!{struct SecPkgContext_ClientSpecifiedTarget {
+ sTargetName: *mut SEC_WCHAR,
+}}
+pub type PSecPkgContext_ClientSpecifiedTarget = *mut SecPkgContext_ClientSpecifiedTarget;
+STRUCT!{struct SecPkgContext_Bindings {
+ BindingsLength: c_ulong,
+ Bindings: *mut SEC_CHANNEL_BINDINGS,
+}}
+pub type PSecPkgContext_Bindings = *mut SecPkgContext_Bindings;
+ENUM!{enum SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS {
+ SecApplicationProtocolNegotiationStatus_None,
+ SecApplicationProtocolNegotiationStatus_Success,
+ SecApplicationProtocolNegotiationStatus_SelectedClientOnly,
+}}
+pub type PSEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS =
+ *mut SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS;
+pub const MAX_PROTOCOL_ID_SIZE: usize = 0xff;
+STRUCT!{struct SecPkgContext_ApplicationProtocol {
+ ProtoNegoStatus: SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS,
+ ProtoNegoExt: SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT,
+ ProtocolIdSize: c_uchar,
+ ProtocolId: [c_uchar; MAX_PROTOCOL_ID_SIZE],
+}}
+pub type PSecPkgContext_ApplicationProtocol = *mut SecPkgContext_ApplicationProtocol;
+FN!{stdcall SEC_GET_KEY_FN(
+ Arg: *mut c_void,
+ Principal: *mut c_void,
+ KeyVer: c_ulong,
+ Key: *mut *mut c_void,
+ Status: *mut SECURITY_STATUS,
+) -> ()}
+pub const SECPKG_CONTEXT_EXPORT_RESET_NEW: c_ulong = 0x00000001;
+pub const SECPKG_CONTEXT_EXPORT_DELETE_OLD: c_ulong = 0x00000002;
+pub const SECPKG_CONTEXT_EXPORT_TO_KERNEL: c_ulong = 0x00000004;
+extern "system" {
+ pub fn AcquireCredentialsHandleW(
+ pszPrincipal: LPWSTR,
+ pszPackage: LPWSTR,
+ fCredentialUse: c_ulong,
+ pvLogonId: *mut c_void,
+ pAuthData: *mut c_void,
+ pGetKeyFn: SEC_GET_KEY_FN,
+ pvGetKeyArgument: *mut c_void,
+ phCredential: PCredHandle,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall ACQUIRE_CREDENTIALS_HANDLE_FN_W(
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ c_ulong,
+ *mut c_void,
+ *mut c_void,
+ SEC_GET_KEY_FN,
+ *mut c_void,
+ PCredHandle,
+ PTimeStamp,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn AcquireCredentialsHandleA(
+ pszPrincipal: LPSTR,
+ pszPackage: LPSTR,
+ fCredentialUse: c_ulong,
+ pvLogonId: *mut c_void,
+ pAuthData: *mut c_void,
+ pGetKeyFn: SEC_GET_KEY_FN,
+ pvGetKeyArgument: *mut c_void,
+ phCredential: PCredHandle,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall ACQUIRE_CREDENTIALS_HANDLE_FN_A(
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ c_ulong,
+ *mut c_void,
+ *mut c_void,
+ SEC_GET_KEY_FN,
+ *mut c_void,
+ PCredHandle,
+ PTimeStamp,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn FreeCredentialsHandle(
+ phCredential: PCredHandle,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall FREE_CREDENTIALS_HANDLE_FN(
+ PCredHandle,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn AddCredentialsW(
+ hCredentials: PCredHandle,
+ pszPrincipal: LPWSTR,
+ pszPackage: LPWSTR,
+ fCredentialUse: c_ulong,
+ pAuthData: *mut c_void,
+ pGetKeyFn: SEC_GET_KEY_FN,
+ pvGetKeyArgument: *mut c_void,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall ADD_CREDENTIALS_FN_W(
+ PCredHandle,
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ c_ulong,
+ *mut c_void,
+ SEC_GET_KEY_FN,
+ *mut c_void,
+ PTimeStamp,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn AddCredentialsA(
+ hCredentials: PCredHandle,
+ pszPrincipal: LPSTR,
+ pszPackage: LPSTR,
+ fCredentialUse: c_ulong,
+ pAuthData: *mut c_void,
+ pGetKeyFn: SEC_GET_KEY_FN,
+ pvGetKeyArgument: *mut c_void,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall ADD_CREDENTIALS_FN_A(
+ PCredHandle,
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ c_ulong,
+ *mut c_void,
+ SEC_GET_KEY_FN,
+ *mut c_void,
+ PTimeStamp,
+) -> SECURITY_STATUS}
+extern "system" {
+ // pub fn spiCreateAsyncContext();
+ // pub fn SspiFreeAsyncContext();
+ // pub fn SspiReinitAsyncContext();
+ // pub fn SspiSetAsyncNotifyCallback();
+ // pub fn SspiAsyncContextRequiresNotify();
+ // pub fn SspiGetAsyncCallStatus();
+ // pub fn SspiAcquireCredentialsHandleAsyncW();
+ // pub fn SspiAcquireCredentialsHandleAsyncA();
+ // pub fn SspiInitializeSecurityContextAsyncW();
+ // pub fn SspiInitializeSecurityContextAsyncA();
+ // pub fn SspiAcceptSecurityContextAsync();
+ // pub fn SspiFreeCredentialsHandleAsync();
+ // pub fn SspiDeleteSecurityContextAsync();
+ pub fn ChangeAccountPasswordW(
+ pszPackageName: *mut SEC_WCHAR,
+ pszDomainName: *mut SEC_WCHAR,
+ pszAccountName: *mut SEC_WCHAR,
+ pszOldPassword: *mut SEC_WCHAR,
+ pszNewPassword: *mut SEC_WCHAR,
+ bImpersonating: BOOLEAN,
+ dwReserved: c_ulong,
+ pOutput: PSecBufferDesc,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall CHANGE_PASSWORD_FN_W(
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ *mut SEC_WCHAR,
+ BOOLEAN,
+ c_ulong,
+ PSecBufferDesc,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn ChangeAccountPasswordA(
+ pszPackageName: *mut SEC_CHAR,
+ pszDomainName: *mut SEC_CHAR,
+ pszAccountName: *mut SEC_CHAR,
+ pszOldPassword: *mut SEC_CHAR,
+ pszNewPassword: *mut SEC_CHAR,
+ bImpersonating: BOOLEAN,
+ dwReserved: c_ulong,
+ pOutput: PSecBufferDesc,
+ ) -> SECURITY_STATUS;
+}
+FN!{stdcall CHANGE_PASSWORD_FN_A(
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ *mut SEC_CHAR,
+ BOOLEAN,
+ c_ulong,
+ PSecBufferDesc,
+) -> SECURITY_STATUS}
+extern "system" {
+ pub fn InitializeSecurityContextW(
+ phCredential: PCredHandle,
+ phContext: PCtxtHandle,
+ pszTargetName: *mut SEC_WCHAR,
+ fContextReq: c_ulong,
+ Reserved1: c_ulong,
+ TargetDataRep: c_ulong,
+ pInput: PSecBufferDesc,
+ Reserved2: c_ulong,
+ phNewContext: PCtxtHandle,
+ pOutput: PSecBufferDesc,
+ pfContextAttr: *mut c_ulong,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+}
+// INITIALIZE_SECURITY_CONTEXT_FN_W
+extern "system" {
+ pub fn InitializeSecurityContextA(
+ phCredential: PCredHandle,
+ phContext: PCtxtHandle,
+ pszTargetName: *mut SEC_CHAR,
+ fContextReq: c_ulong,
+ Reserved1: c_ulong,
+ TargetDataRep: c_ulong,
+ pInput: PSecBufferDesc,
+ Reserved2: c_ulong,
+ phNewContext: PCtxtHandle,
+ pOutput: PSecBufferDesc,
+ pfContextAttr: *mut c_ulong,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+ pub fn AcceptSecurityContext(
+ phCredential: PCredHandle,
+ phContext: PCtxtHandle,
+ pInput: PSecBufferDesc,
+ fContextReq: c_ulong,
+ TargetDataRep: c_ulong,
+ phNewContext: PCtxtHandle,
+ pOutput: PSecBufferDesc,
+ pfContextAttr: *mut c_ulong,
+ ptsExpiry: PTimeStamp,
+ ) -> SECURITY_STATUS;
+ pub fn CompleteAuthToken(
+ phContext: PCtxtHandle,
+ pToken: PSecBufferDesc,
+ ) -> SECURITY_STATUS;
+ pub fn ImpersonateSecurityContext(
+ phContext: PCtxtHandle,
+ ) -> SECURITY_STATUS;
+ pub fn RevertSecurityContext(
+ phContext: PCtxtHandle,
+ ) -> SECURITY_STATUS;
+ pub fn QuerySecurityContextToken(
+ phContext: PCtxtHandle,
+ Token: *mut *mut c_void,
+ ) -> SECURITY_STATUS;
+ pub fn DeleteSecurityContext(
+ phContext: PCtxtHandle,
+ ) -> SECURITY_STATUS;
+ pub fn ApplyControlToken(
+ phContext: PCtxtHandle,
+ pInput: PSecBufferDesc,
+ ) -> SECURITY_STATUS;
+ pub fn QueryContextAttributesW(
+ phContext: PCtxtHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ ) -> SECURITY_STATUS;
+ // pub fn QueryContextAttributesExW();
+ pub fn QueryContextAttributesA(
+ phContext: PCtxtHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ ) -> SECURITY_STATUS;
+ // pub fn QueryContextAttributesExA();
+ pub fn SetContextAttributesW(
+ phContext: PCtxtHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ cbBuffer: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn SetContextAttributesA(
+ phContext: PCtxtHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ cbBuffer: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn QueryCredentialsAttributesW(
+ phCredential: PCredHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ ) -> SECURITY_STATUS;
+ // pub fn QueryCredentialsAttributesExW();
+ pub fn QueryCredentialsAttributesA(
+ phCredential: PCredHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ ) -> SECURITY_STATUS;
+ // pub fn QueryCredentialsAttributesExA();
+ pub fn SetCredentialsAttributesW(
+ phCredential: PCredHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ cbBuffer: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn SetCredentialsAttributesA(
+ phCredential: PCredHandle,
+ ulAttribute: c_ulong,
+ pBuffer: *mut c_void,
+ cbBuffer: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn FreeContextBuffer(
+ pvContextBuffer: PVOID,
+ ) -> SECURITY_STATUS;
+ pub fn MakeSignature(
+ phContext: PCtxtHandle,
+ fQOP: c_ulong,
+ pMessage: PSecBufferDesc,
+ MessageSeqNo: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn VerifySignature(
+ phContext: PCtxtHandle,
+ pMessage: PSecBufferDesc,
+ MessageSeqNo: c_ulong,
+ pfQOP: *mut c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn EncryptMessage(
+ phContext: PCtxtHandle,
+ fQOP: c_ulong,
+ pMessage: PSecBufferDesc,
+ MessageSeqNo: c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn DecryptMessage(
+ phContext: PCtxtHandle,
+ pMessage: PSecBufferDesc,
+ MessageSeqNo: c_ulong,
+ pfQOP: *mut c_ulong,
+ ) -> SECURITY_STATUS;
+ pub fn EnumerateSecurityPackagesW(
+ pcPackages: *mut c_ulong,
+ ppPackageInfo: *mut PSecPkgInfoW,
+ ) -> SECURITY_STATUS;
+ pub fn EnumerateSecurityPackagesA(
+ pcPackages: *mut c_ulong,
+ ppPackageInfo: *mut PSecPkgInfoA,
+ ) -> SECURITY_STATUS;
+ pub fn QuerySecurityPackageInfoW(
+ pszPackageName: LPWSTR,
+ ppPackageInfo: *mut PSecPkgInfoW,
+ ) -> SECURITY_STATUS;
+ pub fn QuerySecurityPackageInfoA(
+ pszPackageName: LPSTR,
+ ppPackageInfo: *mut PSecPkgInfoA,
+ ) -> SECURITY_STATUS;
+}
+ENUM!{enum SecDelegationType {
+ SecFull,
+ SecService,
+ SecTree,
+ SecDirectory,
+ SecObject,
+}}
+pub type PSecDelegationType = *mut SecDelegationType;
+extern "system" {
+ // pub fn DelegateSecurityContext();
+ pub fn ExportSecurityContext(
+ phContext: PCtxtHandle,
+ fFlags: ULONG,
+ pPackedContext: PSecBuffer,
+ pToken: *mut *mut c_void,
+ ) -> SECURITY_STATUS;
+ pub fn ImportSecurityContextW(
+ pszPackage: LPWSTR,
+ pPackedContext: PSecBuffer,
+ Token: *mut c_void,
+ phContext: PCtxtHandle,
+ ) -> SECURITY_STATUS;
+ pub fn ImportSecurityContextA(
+ pszPackage: LPSTR,
+ pPackedContext: PSecBuffer,
+ Token: *mut c_void,
+ phContext: PCtxtHandle,
+ ) -> SECURITY_STATUS;
+// pub fn SecMakeSPN();
+// pub fn SecMakeSPNEx();
+// pub fn SecMakeSPNEx2();
+// pub fn SecLookupAccountSid();
+// pub fn SecLookupAccountName();
+// pub fn SecLookupWellKnownSid();
+}
+extern "system" {
+ // pub fn InitSecurityInterfaceA();
+ // pub fn InitSecurityInterfaceW();
+ // pub fn SaslEnumerateProfilesA();
+ // pub fn SaslEnumerateProfilesW();
+ // pub fn SaslGetProfilePackageA();
+ // pub fn SaslGetProfilePackageW();
+ // pub fn SaslIdentifyPackageA();
+ // pub fn SaslIdentifyPackageW();
+ // pub fn SaslInitializeSecurityContextW();
+ // pub fn SaslInitializeSecurityContextA();
+ // pub fn SaslAcceptSecurityContext();
+ // pub fn SaslSetContextOption();
+ // pub fn SaslGetContextOption();
+}
+pub type PSEC_WINNT_AUTH_IDENTITY_OPAQUE = PVOID;
+extern "system" {
+ pub fn SspiPromptForCredentialsW(
+ pszTargetName: PCWSTR,
+ pUiInfo: PCREDUI_INFOW,
+ dwAuthError: c_ulong,
+ pszPackage: PCWSTR,
+ pInputAuthIdentity: PSEC_WINNT_AUTH_IDENTITY_OPAQUE,
+ ppAuthIdentity: *mut PSEC_WINNT_AUTH_IDENTITY_OPAQUE,
+ pfSave: *mut c_int,
+ dwFlags: c_ulong,
+ ) -> c_ulong;
+ pub fn SspiPromptForCredentialsA(
+ pszTargetName: PCSTR,
+ pUiInfo: PCREDUI_INFOA,
+ dwAuthError: c_ulong,
+ pszPackage: PCSTR,
+ pInputAuthIdentity: PSEC_WINNT_AUTH_IDENTITY_OPAQUE,
+ ppAuthIdentity: *mut PSEC_WINNT_AUTH_IDENTITY_OPAQUE,
+ pfSave: *mut c_int,
+ dwFlags: c_ulong,
+ ) -> c_ulong;
+}
+STRUCT!{struct SEC_WINNT_AUTH_BYTE_VECTOR {
+ ByteArrayOffset: c_ulong,
+ ByteArrayLength: c_ushort,
+}}
+pub type PSEC_WINNT_AUTH_BYTE_VECTOR = *mut SEC_WINNT_AUTH_BYTE_VECTOR;
+STRUCT!{struct SEC_WINNT_AUTH_DATA {
+ CredType: GUID,
+ CredData: SEC_WINNT_AUTH_BYTE_VECTOR,
+}}
+pub type PSEC_WINNT_AUTH_DATA = *mut SEC_WINNT_AUTH_DATA;
+STRUCT!{struct SEC_WINNT_AUTH_PACKED_CREDENTIALS {
+ cbHeaderLength: c_ushort,
+ cbStructureLength: c_ushort,
+ AuthData: SEC_WINNT_AUTH_DATA,
+}}
+pub type PSEC_WINNT_AUTH_PACKED_CREDENTIALS = *mut SEC_WINNT_AUTH_PACKED_CREDENTIALS;
+DEFINE_GUID!{SEC_WINNT_AUTH_DATA_TYPE_PASSWORD,
+ 0x28bfc32f, 0x10f6, 0x4738, 0x98, 0xd1, 0x1a, 0xc0, 0x61, 0xdf, 0x71, 0x6a}
+DEFINE_GUID!{SEC_WINNT_AUTH_DATA_TYPE_CERT,
+ 0x235f69ad, 0x73fb, 0x4dbc, 0x82, 0x3, 0x6, 0x29, 0xe7, 0x39, 0x33, 0x9b}
+STRUCT!{struct SEC_WINNT_AUTH_DATA_PASSWORD {
+ UnicodePassword: SEC_WINNT_AUTH_BYTE_VECTOR,
+}}
+pub type PSEC_WINNT_AUTH_DATA_PASSWORD = *mut SEC_WINNT_AUTH_DATA_PASSWORD;
+DEFINE_GUID!{SEC_WINNT_AUTH_DATA_TYPE_CSP_DATA,
+ 0x68fd9879, 0x79c, 0x4dfe, 0x82, 0x81, 0x57, 0x8a, 0xad, 0xc1, 0xc1, 0x0}
+// GUID SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS
+STRUCT!{struct SEC_WINNT_AUTH_CERTIFICATE_DATA {
+ cbHeaderLength: c_ushort,
+ cbStructureLength: c_ushort,
+ Certificate: SEC_WINNT_AUTH_BYTE_VECTOR,
+}}
+pub type PSEC_WINNT_AUTH_CERTIFICATE_DATA = *mut SEC_WINNT_AUTH_CERTIFICATE_DATA;
+STRUCT!{struct SEC_WINNT_CREDUI_CONTEXT_VECTOR {
+ CredUIContextArrayOffset: ULONG,
+ CredUIContextCount: USHORT,
+}}
+pub type PSEC_WINNT_CREDUI_CONTEXT_VECTOR = *mut SEC_WINNT_CREDUI_CONTEXT_VECTOR;
+STRUCT!{struct SEC_WINNT_AUTH_SHORT_VECTOR {
+ ShortArrayOffset: ULONG,
+ ShortArrayCount: USHORT,
+}}
+pub type PSEC_WINNT_AUTH_SHORT_VECTOR = *mut SEC_WINNT_AUTH_SHORT_VECTOR;
+extern "system" {
+ pub fn SspiGetCredUIContext(
+ ContextHandle: HANDLE,
+ CredType: *mut GUID,
+ LogonId: *mut LUID,
+ CredUIContexts: *mut PSEC_WINNT_CREDUI_CONTEXT_VECTOR,
+ TokenHandle: *mut HANDLE,
+ ) -> SECURITY_STATUS;
+ pub fn SspiUpdateCredentials(
+ ContextHandle: HANDLE,
+ CredType: *mut GUID,
+ FlatCredUIContextLength: ULONG,
+ FlatCredUIContext: PUCHAR,
+ ) -> SECURITY_STATUS;
+}
+STRUCT!{struct CREDUIWIN_MARSHALED_CONTEXT {
+ StructureType: GUID,
+ cbHeaderLength: USHORT,
+ LogonId: LUID,
+ MarshaledDataType: GUID,
+ MarshaledDataOffset: ULONG,
+ MarshaledDataLength: USHORT,
+}}
+pub type PCREDUIWIN_MARSHALED_CONTEXT = *mut CREDUIWIN_MARSHALED_CONTEXT;
+STRUCT!{struct SEC_WINNT_CREDUI_CONTEXT {
+ cbHeaderLength: USHORT,
+ CredUIContextHandle: HANDLE,
+ UIInfo: PCREDUI_INFOW,
+ dwAuthError: ULONG,
+ pInputAuthIdentity: PSEC_WINNT_AUTH_IDENTITY_OPAQUE,
+ TargetName: PUNICODE_STRING,
+}}
+pub type PSEC_WINNT_CREDUI_CONTEXT = *mut SEC_WINNT_CREDUI_CONTEXT;
+// GUID CREDUIWIN_STRUCTURE_TYPE_SSPIPFC
+// GUID SSPIPFC_STRUCTURE_TYPE_CREDUI_CONTEXT
+extern "system" {
+ pub fn SspiUnmarshalCredUIContext(
+ MarshaledCredUIContext: PUCHAR,
+ MarshaledCredUIContextLength: ULONG,
+ CredUIContext: *mut PSEC_WINNT_CREDUI_CONTEXT,
+ ) -> SECURITY_STATUS;
+ // pub fn SspiPrepareForCredRead();
+ // pub fn SspiPrepareForCredWrite();
+ // pub fn SspiEncryptAuthIdentity();
+ // pub fn SspiEncryptAuthIdentityEx();
+ // pub fn SspiDecryptAuthIdentity();
+ // pub fn SspiDecryptAuthIdentityEx();
+ // pub fn SspiIsAuthIdentityEncrypted();
+ // pub fn SspiEncodeAuthIdentityAsStrings();
+ // pub fn SspiValidateAuthIdentity();
+ // pub fn SspiCopyAuthIdentity();
+ // pub fn SspiFreeAuthIdentity();
+ // pub fn SspiZeroAuthIdentity();
+ // pub fn SspiLocalFree();
+ // pub fn SspiEncodeStringsAsAuthIdentity();
+ // pub fn SspiCompareAuthIdentities();
+ // pub fn SspiMarshalAuthIdentity();
+ // pub fn SspiUnmarshalAuthIdentity();
+ pub fn SspiIsPromptingNeeded(
+ ErrorOrNtStatus: c_ulong,
+ ) -> BOOLEAN;
+ // pub fn SspiGetTargetHostName();
+ // pub fn SspiExcludePackage();
+ // pub fn AddSecurityPackageA();
+ // pub fn AddSecurityPackageW();
+ // pub fn DeleteSecurityPackageA();
+ // pub fn DeleteSecurityPackageW();
+}
diff --git a/third_party/rust/winapi/src/shared/stralign.rs b/third_party/rust/winapi/src/shared/stralign.rs
new file mode 100644
index 0000000000..2e2a703fe6
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/stralign.rs
@@ -0,0 +1,40 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::c_int;
+use um::winnt::{LPCUWSTR, PCUWSTR, PUWSTR, WCHAR};
+use vc::vcruntime::size_t;
+extern "system" {
+ pub fn uaw_lstrcmpW(
+ String1: PCUWSTR,
+ String2: PCUWSTR,
+ ) -> c_int;
+ pub fn uaw_lstrcmpiW(
+ String1: PCUWSTR,
+ String2: PCUWSTR,
+ ) -> c_int;
+ pub fn uaw_lstrlenW(
+ String: LPCUWSTR,
+ ) -> c_int;
+ pub fn uaw_wcschr(
+ String: PCUWSTR,
+ Character: WCHAR,
+ ) -> PUWSTR;
+ pub fn uaw_wcscpy(
+ Destination: PUWSTR,
+ Source: PCUWSTR,
+ ) -> PUWSTR;
+ pub fn uaw_wcsicmp(
+ String1: PCUWSTR,
+ String2: PCUWSTR,
+ ) -> c_int;
+ pub fn uaw_wcslen(
+ String: PCUWSTR,
+ ) -> size_t;
+ pub fn uaw_wcsrchr(
+ String: PCUWSTR,
+ Character: WCHAR,
+ ) -> PUWSTR;
+}
diff --git a/third_party/rust/winapi/src/shared/tcpestats.rs b/third_party/rust/winapi/src/shared/tcpestats.rs
new file mode 100644
index 0000000000..7ddbd9645c
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/tcpestats.rs
@@ -0,0 +1,211 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+// #include <winapifamily.h>
+use shared::basetsd::{SIZE_T, ULONG64};
+use shared::ntdef::{BOOLEAN, UCHAR, ULONG};
+ENUM!{enum TCP_ESTATS_TYPE {
+ TcpConnectionEstatsSynOpts = 0,
+ TcpConnectionEstatsData = 1,
+ TcpConnectionEstatsSndCong = 2,
+ TcpConnectionEstatsPath = 3,
+ TcpConnectionEstatsSendBuff = 4,
+ TcpConnectionEstatsRec = 5,
+ TcpConnectionEstatsObsRec = 6,
+ TcpConnectionEstatsBandwidth = 7,
+ TcpConnectionEstatsFineRtt = 8,
+ TcpConnectionEstatsMaximum = 9,
+}}
+pub type PTCP_ESTATS_TYPE = *mut TCP_ESTATS_TYPE;
+ENUM!{enum TCP_BOOLEAN_OPTIONAL {
+ TcpBoolOptDisabled = 0,
+ TcpBoolOptEnabled = 1,
+ TcpBoolOptUnchanged = -1i32 as u32,
+}}
+pub type PTCP_BOOLEAN_OPTIONAL = *mut TCP_BOOLEAN_OPTIONAL;
+STRUCT!{struct TCP_ESTATS_SYN_OPTS_ROS_v0 {
+ ActiveOpen: BOOLEAN,
+ MssRcvd: ULONG,
+ MssSent: ULONG,
+}}
+pub type PTCP_ESTATS_SYN_OPTS_ROS_v0 = *mut TCP_ESTATS_SYN_OPTS_ROS_v0;
+ENUM!{enum TCP_SOFT_ERROR {
+ TcpErrorNone = 0,
+ TcpErrorBelowDataWindow = 1,
+ TcpErrorAboveDataWindow = 2,
+ TcpErrorBelowAckWindow = 3,
+ TcpErrorAboveAckWindow = 4,
+ TcpErrorBelowTsWindow = 5,
+ TcpErrorAboveTsWindow = 6,
+ TcpErrorDataChecksumError = 7,
+ TcpErrorDataLengthError = 8,
+ TcpErrorMaxSoftError = 9,
+}}
+pub type PTCP_SOFT_ERROR = *mut TCP_SOFT_ERROR;
+STRUCT!{struct TCP_ESTATS_DATA_ROD_v0 {
+ DataBytesOut: ULONG64,
+ DataSegsOut: ULONG64,
+ DataBytesIn: ULONG64,
+ DataSegsIn: ULONG64,
+ SegsOut: ULONG64,
+ SegsIn: ULONG64,
+ SoftErrors: ULONG,
+ SoftErrorReason: ULONG,
+ SndUna: ULONG,
+ SndNxt: ULONG,
+ SndMax: ULONG,
+ ThruBytesAcked: ULONG64,
+ RcvNxt: ULONG,
+ ThruBytesReceived: ULONG64,
+}}
+pub type PTCP_ESTATS_DATA_ROD_v0 = *mut TCP_ESTATS_DATA_ROD_v0;
+STRUCT!{struct TCP_ESTATS_DATA_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_DATA_RW_v0 = TCP_ESTATS_DATA_RW_v0;
+STRUCT!{struct TCP_ESTATS_SND_CONG_ROD_v0 {
+ SndLimTransRwin: ULONG,
+ SndLimTimeRwin: ULONG,
+ SndLimBytesRwin: SIZE_T,
+ SndLimTransCwnd: ULONG,
+ SndLimTimeCwnd: ULONG,
+ SndLimBytesCwnd: SIZE_T,
+ SndLimTransSnd: ULONG,
+ SndLimTimeSnd: ULONG,
+ SndLimBytesSnd: SIZE_T,
+ SlowStart: ULONG,
+ CongAvoid: ULONG,
+ OtherReductions: ULONG,
+ CurCwnd: ULONG,
+ MaxSsCwnd: ULONG,
+ MaxCaCwnd: ULONG,
+ CurSsthresh: ULONG,
+ MaxSsthresh: ULONG,
+ MinSsthresh: ULONG,
+}}
+pub type PTCP_ESTATS_SND_CONG_ROD_v0 = *mut TCP_ESTATS_SND_CONG_ROD_v0;
+STRUCT!{struct TCP_ESTATS_SND_CONG_ROS_v0 {
+ LimCwnd: ULONG,
+}}
+pub type PTCP_ESTATS_SND_CONG_ROS_v0 = *mut TCP_ESTATS_SND_CONG_ROS_v0;
+STRUCT!{struct TCP_ESTATS_SND_CONG_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_SND_CONG_RW_v0 = *mut TCP_ESTATS_SND_CONG_RW_v0;
+STRUCT!{struct TCP_ESTATS_PATH_ROD_v0 {
+ FastRetran: ULONG,
+ Timeouts: ULONG,
+ SubsequentTimeouts: ULONG,
+ CurTimeoutCount: ULONG,
+ AbruptTimeouts: ULONG,
+ PktsRetrans: ULONG,
+ BytesRetrans: ULONG,
+ DupAcksIn: ULONG,
+ SacksRcvd: ULONG,
+ SackBlocksRcvd: ULONG,
+ CongSignals: ULONG,
+ PreCongSumCwnd: ULONG,
+ PreCongSumRtt: ULONG,
+ PostCongSumRtt: ULONG,
+ PostCongCountRtt: ULONG,
+ EcnSignals: ULONG,
+ EceRcvd: ULONG,
+ SendStall: ULONG,
+ QuenchRcvd: ULONG,
+ RetranThresh: ULONG,
+ SndDupAckEpisodes: ULONG,
+ SumBytesReordered: ULONG,
+ NonRecovDa: ULONG,
+ NonRecovDaEpisodes: ULONG,
+ AckAfterFr: ULONG,
+ DsackDups: ULONG,
+ SampleRtt: ULONG,
+ SmoothedRtt: ULONG,
+ RttVar: ULONG,
+ MaxRtt: ULONG,
+ MinRtt: ULONG,
+ SumRtt: ULONG,
+ CountRtt: ULONG,
+ CurRto: ULONG,
+ MaxRto: ULONG,
+ MinRto: ULONG,
+ CurMss: ULONG,
+ MaxMss: ULONG,
+ MinMss: ULONG,
+ SpuriousRtoDetections: ULONG,
+}}
+pub type PTCP_ESTATS_PATH_ROD_v0 = *mut TCP_ESTATS_PATH_ROD_v0;
+STRUCT!{struct TCP_ESTATS_PATH_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_PATH_RW_v0 = *mut TCP_ESTATS_PATH_RW_v0;
+STRUCT!{struct TCP_ESTATS_SEND_BUFF_ROD_v0 {
+ CurRetxQueue: SIZE_T,
+ MaxRetxQueue: SIZE_T,
+ CurAppWQueue: SIZE_T,
+ MaxAppWQueue: SIZE_T,
+}}
+pub type PTCP_ESTATS_SEND_BUFF_ROD_v0 = *mut TCP_ESTATS_SEND_BUFF_ROD_v0;
+STRUCT!{struct TCP_ESTATS_SEND_BUFF_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_SEND_BUFF_RW_v0 = *mut TCP_ESTATS_SEND_BUFF_RW_v0;
+STRUCT!{struct TCP_ESTATS_REC_ROD_v0 {
+ CurRwinSent: ULONG,
+ MaxRwinSent: ULONG,
+ MinRwinSent: ULONG,
+ LimRwin: ULONG,
+ DupAckEpisodes: ULONG,
+ DupAcksOut: ULONG,
+ CeRcvd: ULONG,
+ EcnSent: ULONG,
+ EcnNoncesRcvd: ULONG,
+ CurReasmQueue: ULONG,
+ MaxReasmQueue: ULONG,
+ CurAppRQueue: SIZE_T,
+ MaxAppRQueue: SIZE_T,
+ WinScaleSent: UCHAR,
+}}
+pub type PTCP_ESTATS_REC_ROD_v0 = *mut TCP_ESTATS_REC_ROD_v0;
+STRUCT!{struct TCP_ESTATS_REC_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_REC_RW_v0 = *mut TCP_ESTATS_REC_RW_v0;
+STRUCT!{struct TCP_ESTATS_OBS_REC_ROD_v0 {
+ CurRwinRcvd: ULONG,
+ MaxRwinRcvd: ULONG,
+ MinRwinRcvd: ULONG,
+ WinScaleRcvd: UCHAR,
+}}
+pub type PTCP_ESTATS_OBS_REC_ROD_v0 = *mut TCP_ESTATS_OBS_REC_ROD_v0;
+STRUCT!{struct TCP_ESTATS_OBS_REC_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_OBS_REC_RW_v0 = *mut TCP_ESTATS_OBS_REC_RW_v0;
+STRUCT!{struct TCP_ESTATS_BANDWIDTH_RW_v0 {
+ EnableCollectionOutbound: TCP_BOOLEAN_OPTIONAL,
+ EnableCollectionInbound: TCP_BOOLEAN_OPTIONAL,
+}}
+pub type PTCP_ESTATS_BANDWIDTH_RW_v0 = *mut TCP_ESTATS_BANDWIDTH_RW_v0;
+STRUCT!{struct TCP_ESTATS_BANDWIDTH_ROD_v0 {
+ OutboundBandwidth: ULONG64,
+ InboundBandwidth: ULONG64,
+ OutboundInstability: ULONG64,
+ InboundInstability: ULONG64,
+ OutboundBandwidthPeaked: BOOLEAN,
+ InboundBandwidthPeaked: BOOLEAN,
+}}
+pub type PTCP_ESTATS_BANDWIDTH_ROD_v0 = *mut TCP_ESTATS_BANDWIDTH_ROD_v0;
+STRUCT!{struct TCP_ESTATS_FINE_RTT_RW_v0 {
+ EnableCollection: BOOLEAN,
+}}
+pub type PTCP_ESTATS_FINE_RTT_RW_v0 = *mut TCP_ESTATS_FINE_RTT_RW_v0;
+STRUCT!{struct TCP_ESTATS_FINE_RTT_ROD_v0 {
+ RttVar: ULONG,
+ MaxRtt: ULONG,
+ MinRtt: ULONG,
+ SumRtt: ULONG,
+}}
+pub type PTCP_ESTATS_FINE_RTT_ROD_v0 = *mut TCP_ESTATS_FINE_RTT_ROD_v0;
diff --git a/third_party/rust/winapi/src/shared/tcpmib.rs b/third_party/rust/winapi/src/shared/tcpmib.rs
new file mode 100644
index 0000000000..63ae7965a9
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/tcpmib.rs
@@ -0,0 +1,244 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+// #include <winapifamily.h>
+use shared::basetsd::DWORD64;
+use shared::in6addr::IN6_ADDR;
+use shared::minwindef::DWORD;
+use shared::ntdef::{LARGE_INTEGER, UCHAR, ULONGLONG};
+const ANY_SIZE: usize = 1;
+pub const TCPIP_OWNING_MODULE_SIZE: usize = 16;
+ENUM!{enum MIB_TCP_STATE {
+ MIB_TCP_STATE_CLOSED = 1,
+ MIB_TCP_STATE_LISTEN = 2,
+ MIB_TCP_STATE_SYN_SENT = 3,
+ MIB_TCP_STATE_SYN_RCVD = 4,
+ MIB_TCP_STATE_ESTAB = 5,
+ MIB_TCP_STATE_FIN_WAIT1 = 6,
+ MIB_TCP_STATE_FIN_WAIT2 = 7,
+ MIB_TCP_STATE_CLOSE_WAIT = 8,
+ MIB_TCP_STATE_CLOSING = 9,
+ MIB_TCP_STATE_LAST_ACK = 10,
+ MIB_TCP_STATE_TIME_WAIT = 11,
+ MIB_TCP_STATE_DELETE_TCB = 12,
+ MIB_TCP_STATE_RESERVED = 100,
+}}
+ENUM!{enum TCP_CONNECTION_OFFLOAD_STATE {
+ TcpConnectionOffloadStateInHost = 0,
+ TcpConnectionOffloadStateOffloading = 1,
+ TcpConnectionOffloadStateOffloaded = 2,
+ TcpConnectionOffloadStateUploading = 3,
+ TcpConnectionOffloadStateMax = 4,
+}}
+pub type PTCP_CONNECTION_OFFLOAD_STATE = *mut TCP_CONNECTION_OFFLOAD_STATE;
+STRUCT!{struct MIB_TCPROW_LH {
+ State: MIB_TCP_STATE,
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwRemoteAddr: DWORD,
+ dwRemotePort: DWORD,
+}}
+pub type PMIB_TCPROW_LH = *mut MIB_TCPROW_LH;
+STRUCT!{struct MIB_TCPROW_W2K {
+ dwState: DWORD,
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwRemoteAddr: DWORD,
+ dwRemotePort: DWORD,
+}}
+pub type PMIB_TCPROW_W2K = *mut MIB_TCPROW_W2K;
+pub type MIB_TCPROW = MIB_TCPROW_LH;
+pub type PMIB_TCPROW = *mut MIB_TCPROW;
+STRUCT!{struct MIB_TCPTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_TCPROW; ANY_SIZE],
+}}
+pub type PMIB_TCPTABLE = *mut MIB_TCPTABLE;
+// FIXME: SIZEOF_TCPTABLE(x)
+STRUCT!{struct MIB_TCPROW2 {
+ dwState: DWORD,
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwRemoteAddr: DWORD,
+ dwRemotePort: DWORD,
+ dwOwningPid: DWORD,
+ dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE,
+}}
+pub type PMIB_TCPROW2 = *mut MIB_TCPROW2;
+STRUCT!{struct MIB_TCPTABLE2 {
+ dwNumEntries: DWORD,
+ table: [MIB_TCPROW2; ANY_SIZE],
+}}
+pub type PMIB_TCPTABLE2 = *mut MIB_TCPTABLE2;
+// FIXME: SIZEOF_TCPTABLE2(x)
+STRUCT!{struct MIB_TCPROW_OWNER_PID {
+ dwState: DWORD,
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwRemoteAddr: DWORD,
+ dwRemotePort: DWORD,
+ dwOwningPid: DWORD,
+}}
+pub type PMIB_TCPROW_OWNER_PID = *mut MIB_TCPROW_OWNER_PID;
+STRUCT!{struct MIB_TCPTABLE_OWNER_PID {
+ dwNumEntries: DWORD,
+ table: [MIB_TCPROW_OWNER_PID; ANY_SIZE],
+}}
+pub type PMIB_TCPTABLE_OWNER_PID = *mut MIB_TCPTABLE_OWNER_PID;
+// FIXME: SIZEOF_TCPTABLE_OWNER_PID(x)
+STRUCT!{struct MIB_TCPROW_OWNER_MODULE {
+ dwState: DWORD,
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwRemoteAddr: DWORD,
+ dwRemotePort: DWORD,
+ dwOwningPid: DWORD,
+ liCreateTimestamp: LARGE_INTEGER,
+ OwningModuleInfo: [ULONGLONG; TCPIP_OWNING_MODULE_SIZE],
+}}
+pub type PMIB_TCPROW_OWNER_MODULE = *mut MIB_TCPROW_OWNER_MODULE;
+STRUCT!{struct MIB_TCPTABLE_OWNER_MODULE {
+ dwNumEntries: DWORD,
+ table: [MIB_TCPROW_OWNER_MODULE; ANY_SIZE],
+}}
+pub type PMIB_TCPTABLE_OWNER_MODULE = *mut MIB_TCPTABLE_OWNER_MODULE;
+// FIXME: SIZEOF_TCPTABLE_OWNER_MODULE(x)
+STRUCT!{struct MIB_TCP6ROW {
+ State: MIB_TCP_STATE,
+ LocalAddr: IN6_ADDR,
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ RemoteAddr: IN6_ADDR,
+ dwRemoteScopeId: DWORD,
+ dwRemotePort: DWORD,
+}}
+pub type PMIB_TCP6ROW = *mut MIB_TCP6ROW;
+STRUCT!{struct MIB_TCP6TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_TCP6ROW; ANY_SIZE],
+}}
+pub type PMIB_TCP6TABLE = *mut MIB_TCP6TABLE;
+// FIXME: SIZEOF_TCP6TABLE(x)
+STRUCT!{struct MIB_TCP6ROW2 {
+ LocalAddr: IN6_ADDR,
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ RemoteAddr: IN6_ADDR,
+ dwRemoteScopeId: DWORD,
+ dwRemotePort: DWORD,
+ State: MIB_TCP_STATE,
+ dwOwningPid: DWORD,
+ dwOffloadState: TCP_CONNECTION_OFFLOAD_STATE,
+}}
+pub type PMIB_TCP6ROW2 = *mut MIB_TCP6ROW2;
+STRUCT!{struct MIB_TCP6TABLE2 {
+ dwNumEntries: DWORD,
+ table: [MIB_TCP6ROW2; ANY_SIZE],
+}}
+pub type PMIB_TCP6TABLE2 = *mut MIB_TCP6TABLE2;
+// FIXME: SIZEOF_TCP6TABLE2(x)
+STRUCT!{struct MIB_TCP6ROW_OWNER_PID {
+ ucLocalAddr: [UCHAR; 16],
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ ucRemoteAddr: [UCHAR; 16],
+ dwRemoteScopeId: DWORD,
+ dwRemotePort: DWORD,
+ dwState: DWORD,
+ dwOwningPid: DWORD,
+}}
+pub type PMIB_TCP6ROW_OWNER_PID = *mut MIB_TCP6ROW_OWNER_PID;
+STRUCT!{struct MIB_TCP6TABLE_OWNER_PID {
+ dwNumEntries: DWORD,
+ table: [MIB_TCP6ROW_OWNER_PID; ANY_SIZE],
+}}
+pub type PMIB_TCP6TABLE_OWNER_PID = *mut MIB_TCP6TABLE_OWNER_PID;
+// FIXME: SIZEOF_TCP6TABLE_OWNER_PID(x)
+STRUCT!{struct MIB_TCP6ROW_OWNER_MODULE {
+ ucLocalAddr: [UCHAR; 16],
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ ucRemoteAddr: [UCHAR; 16],
+ dwRemoteScopeId: DWORD,
+ dwRemotePort: DWORD,
+ dwState: DWORD,
+ dwOwningPid: DWORD,
+ liCreateTimestamp: LARGE_INTEGER,
+ OwningModuleInfo: [ULONGLONG; TCPIP_OWNING_MODULE_SIZE],
+}}
+pub type PMIB_TCP6ROW_OWNER_MODULE = *mut MIB_TCP6ROW_OWNER_MODULE;
+STRUCT!{struct MIB_TCP6TABLE_OWNER_MODULE {
+ dwNumEntries: DWORD,
+ table: [MIB_TCP6ROW_OWNER_MODULE; ANY_SIZE],
+}}
+pub type PMIB_TCP6TABLE_OWNER_MODULE = *mut MIB_TCP6TABLE_OWNER_MODULE;
+// FIXME: SIZEOF_TCP6TABLE_OWNER_MODULE(x)
+ENUM!{enum TCP_RTO_ALGORITHM {
+ TcpRtoAlgorithmOther = 1,
+ TcpRtoAlgorithmConstant = 2,
+ TcpRtoAlgorithmRsre = 3,
+ TcpRtoAlgorithmVanj = 4,
+ MIB_TCP_RTO_OTHER = 1,
+ MIB_TCP_RTO_CONSTANT = 2,
+ MIB_TCP_RTO_RSRE = 3,
+ MIB_TCP_RTO_VANJ = 4,
+}}
+pub type PTCP_RTO_ALGORITHM = *mut TCP_RTO_ALGORITHM;
+STRUCT!{struct MIB_TCPSTATS_LH {
+ RtoAlgorithm: TCP_RTO_ALGORITHM,
+ dwRtoMin: DWORD,
+ dwRtoMax: DWORD,
+ dwMaxConn: DWORD,
+ dwActiveOpens: DWORD,
+ dwPassiveOpens: DWORD,
+ dwAttemptFails: DWORD,
+ dwEstabResets: DWORD,
+ dwCurrEstab: DWORD,
+ dwInSegs: DWORD,
+ dwOutSegs: DWORD,
+ dwRetransSegs: DWORD,
+ dwInErrs: DWORD,
+ dwOutRsts: DWORD,
+ dwNumConns: DWORD,
+}}
+pub type PMIB_TCPSTATS_LH = *mut MIB_TCPSTATS_LH;
+STRUCT!{struct MIB_TCPSTATS_W2K {
+ dwRtoAlgorithm: DWORD,
+ dwRtoMin: DWORD,
+ dwRtoMax: DWORD,
+ dwMaxConn: DWORD,
+ dwActiveOpens: DWORD,
+ dwPassiveOpens: DWORD,
+ dwAttemptFails: DWORD,
+ dwEstabResets: DWORD,
+ dwCurrEstab: DWORD,
+ dwInSegs: DWORD,
+ dwOutSegs: DWORD,
+ dwRetransSegs: DWORD,
+ dwInErrs: DWORD,
+ dwOutRsts: DWORD,
+ dwNumConns: DWORD,
+}}
+pub type PMIB_TCPSTATS_W2K = *mut MIB_TCPSTATS_W2K;
+pub type MIB_TCPSTATS = MIB_TCPSTATS_LH;
+pub type PMIB_TCPSTATS = *mut MIB_TCPSTATS;
+STRUCT!{struct MIB_TCPSTATS2 {
+ RtoAlgorithm: TCP_RTO_ALGORITHM,
+ dwRtoMin: DWORD,
+ dwRtoMax: DWORD,
+ dwMaxConn: DWORD,
+ dwActiveOpens: DWORD,
+ dwPassiveOpens: DWORD,
+ dwAttemptFails: DWORD,
+ dwEstabResets: DWORD,
+ dwCurrEstab: DWORD,
+ dw64InSegs: DWORD64,
+ dw64OutSegs: DWORD64,
+ dwRetransSegs: DWORD,
+ dwInErrs: DWORD,
+ dwOutRsts: DWORD,
+ dwNumConns: DWORD,
+}}
+pub type PMIB_TCPSTATS2 = *mut MIB_TCPSTATS2;
diff --git a/third_party/rust/winapi/src/shared/transportsettingcommon.rs b/third_party/rust/winapi/src/shared/transportsettingcommon.rs
new file mode 100644
index 0000000000..2f5f6fb6c1
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/transportsettingcommon.rs
@@ -0,0 +1,10 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+STRUCT!{struct TRANSPORT_SETTING_ID {
+ Guid: GUID,
+}}
+pub type PTRANSPORT_SETTING_ID = *mut TRANSPORT_SETTING_ID;
diff --git a/third_party/rust/winapi/src/shared/tvout.rs b/third_party/rust/winapi/src/shared/tvout.rs
new file mode 100644
index 0000000000..f691bdf32a
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/tvout.rs
@@ -0,0 +1,72 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::guiddef::GUID;
+use shared::minwindef::{UCHAR, ULONG};
+STRUCT!{struct VIDEOPARAMETERS {
+ Guid: GUID,
+ dwOffset: ULONG,
+ dwCommand: ULONG,
+ dwFlags: ULONG,
+ dwMode: ULONG,
+ dwTVStandard: ULONG,
+ dwAvailableModes: ULONG,
+ dwAvailableTVStandard: ULONG,
+ dwFlickerFilter: ULONG,
+ dwOverScanX: ULONG,
+ dwOverScanY: ULONG,
+ dwMaxUnscaledX: ULONG,
+ dwMaxUnscaledY: ULONG,
+ dwPositionX: ULONG,
+ dwPositionY: ULONG,
+ dwBrightness: ULONG,
+ dwContrast: ULONG,
+ dwCPType: ULONG,
+ dwCPCommand: ULONG,
+ dwCPStandard: ULONG,
+ dwCPKey: ULONG,
+ bCP_APSTriggerBits: ULONG,
+ bOEMCopyProtection: [UCHAR; 256],
+}}
+pub type PVIDEOPARAMETERS = *mut VIDEOPARAMETERS;
+pub type LPVIDEOPARAMETERS = *mut VIDEOPARAMETERS;
+pub const VP_COMMAND_GET: ULONG = 0x0001;
+pub const VP_COMMAND_SET: ULONG = 0x0002;
+pub const VP_FLAGS_TV_MODE: ULONG = 0x0001;
+pub const VP_FLAGS_TV_STANDARD: ULONG = 0x0002;
+pub const VP_FLAGS_FLICKER: ULONG = 0x0004;
+pub const VP_FLAGS_OVERSCAN: ULONG = 0x0008;
+pub const VP_FLAGS_MAX_UNSCALED: ULONG = 0x0010;
+pub const VP_FLAGS_POSITION: ULONG = 0x0020;
+pub const VP_FLAGS_BRIGHTNESS: ULONG = 0x0040;
+pub const VP_FLAGS_CONTRAST: ULONG = 0x0080;
+pub const VP_FLAGS_COPYPROTECT: ULONG = 0x0100;
+pub const VP_MODE_WIN_GRAPHICS: ULONG = 0x0001;
+pub const VP_MODE_TV_PLAYBACK: ULONG = 0x0002;
+pub const VP_TV_STANDARD_NTSC_M: ULONG = 0x0001;
+pub const VP_TV_STANDARD_NTSC_M_J: ULONG = 0x0002;
+pub const VP_TV_STANDARD_PAL_B: ULONG = 0x0004;
+pub const VP_TV_STANDARD_PAL_D: ULONG = 0x0008;
+pub const VP_TV_STANDARD_PAL_H: ULONG = 0x0010;
+pub const VP_TV_STANDARD_PAL_I: ULONG = 0x0020;
+pub const VP_TV_STANDARD_PAL_M: ULONG = 0x0040;
+pub const VP_TV_STANDARD_PAL_N: ULONG = 0x0080;
+pub const VP_TV_STANDARD_SECAM_B: ULONG = 0x0100;
+pub const VP_TV_STANDARD_SECAM_D: ULONG = 0x0200;
+pub const VP_TV_STANDARD_SECAM_G: ULONG = 0x0400;
+pub const VP_TV_STANDARD_SECAM_H: ULONG = 0x0800;
+pub const VP_TV_STANDARD_SECAM_K: ULONG = 0x1000;
+pub const VP_TV_STANDARD_SECAM_K1: ULONG = 0x2000;
+pub const VP_TV_STANDARD_SECAM_L: ULONG = 0x4000;
+pub const VP_TV_STANDARD_WIN_VGA: ULONG = 0x8000;
+pub const VP_TV_STANDARD_NTSC_433: ULONG = 0x00010000;
+pub const VP_TV_STANDARD_PAL_G: ULONG = 0x00020000;
+pub const VP_TV_STANDARD_PAL_60: ULONG = 0x00040000;
+pub const VP_TV_STANDARD_SECAM_L1: ULONG = 0x00080000;
+pub const VP_CP_TYPE_APS_TRIGGER: ULONG = 0x0001;
+pub const VP_CP_TYPE_MACROVISION: ULONG = 0x0002;
+pub const VP_CP_CMD_ACTIVATE: ULONG = 0x0001;
+pub const VP_CP_CMD_DEACTIVATE: ULONG = 0x0002;
+pub const VP_CP_CMD_CHANGE: ULONG = 0x0004;
diff --git a/third_party/rust/winapi/src/shared/udpmib.rs b/third_party/rust/winapi/src/shared/udpmib.rs
new file mode 100644
index 0000000000..e5a73a20ce
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/udpmib.rs
@@ -0,0 +1,130 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Contains the public definitions and structures for the UDP-specific parts of MIB-II
+// #include <winapifamily.h>
+use shared::basetsd::DWORD64;
+use shared::in6addr::IN6_ADDR;
+use shared::minwindef::DWORD;
+use shared::ntdef::{INT, LARGE_INTEGER, UCHAR, ULONGLONG};
+const ANY_SIZE: usize = 1;
+pub const TCPIP_OWNING_MODULE_SIZE: usize = 16;
+STRUCT!{struct MIB_UDPROW {
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+}}
+pub type PMIB_UDPROW = *mut MIB_UDPROW;
+STRUCT!{struct MIB_UDPTABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_UDPROW; ANY_SIZE],
+}}
+pub type PMIB_UDPTABLE = *mut MIB_UDPTABLE;
+// FIXME: SIZEOF_UDPTABLE(x)
+STRUCT!{struct MIB_UDPROW_OWNER_PID {
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwOwningPid: DWORD,
+}}
+pub type PMIB_UDPROW_OWNER_PID = *mut MIB_UDPROW_OWNER_PID;
+STRUCT!{struct MIB_UDPTABLE_OWNER_PID {
+ dwNumEntries: DWORD,
+ table: [MIB_UDPROW_OWNER_PID; ANY_SIZE],
+}}
+pub type PMIB_UDPTABLE_OWNER_PID = *mut MIB_UDPTABLE_OWNER_PID;
+// FIXME: SIZEOF_UDPTABLE_OWNER_PID(x)
+STRUCT!{struct MIB_UDPROW_OWNER_MODULE_u_s {
+ bitfield: INT,
+}}
+BITFIELD!{MIB_UDPROW_OWNER_MODULE_u_s bitfield: INT [
+ SpecificPortBind set_SpecificPortBind[0..1],
+]}
+UNION!{union MIB_UDPROW_OWNER_MODULE_u {
+ [i32; 1],
+ s s_mut: MIB_UDPROW_OWNER_MODULE_u_s,
+ dwFlags dwFlags_mut: INT,
+}}
+STRUCT!{struct MIB_UDPROW_OWNER_MODULE {
+ dwLocalAddr: DWORD,
+ dwLocalPort: DWORD,
+ dwOwningPid: DWORD,
+ liCreateTimestamp: LARGE_INTEGER,
+ u: MIB_UDPROW_OWNER_MODULE_u,
+ OwningModuleInfo: [ULONGLONG; TCPIP_OWNING_MODULE_SIZE],
+}}
+pub type PMIB_UDPROW_OWNER_MODULE = *mut MIB_UDPROW_OWNER_MODULE;
+STRUCT!{struct MIB_UDPTABLE_OWNER_MODULE {
+ dwNumEntries: DWORD,
+ table: [MIB_UDPROW_OWNER_MODULE; ANY_SIZE],
+}}
+pub type PMIB_UDPTABLE_OWNER_MODULE = *mut MIB_UDPTABLE_OWNER_MODULE;
+// FIXME: SIZEOF_UDPTABLE_OWNER_MODULE(x)
+STRUCT!{struct MIB_UDP6ROW {
+ dwLocalAddr: IN6_ADDR,
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+}}
+pub type PMIB_UDP6ROW = *mut MIB_UDP6ROW;
+STRUCT!{struct MIB_UDP6TABLE {
+ dwNumEntries: DWORD,
+ table: [MIB_UDP6ROW; ANY_SIZE],
+}}
+pub type PMIB_UDP6TABLE = *mut MIB_UDP6TABLE;
+// FIXME: SIZEOF_UDP6TABLE(x)
+STRUCT!{struct MIB_UDP6ROW_OWNER_PID {
+ ucLocalAddr: [UCHAR; 16],
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ dwOwningPid: DWORD,
+}}
+pub type PMIB_UDP6ROW_OWNER_PID = *mut MIB_UDP6ROW_OWNER_PID;
+STRUCT!{struct MIB_UDP6TABLE_OWNER_PID {
+ dwNumEntries: DWORD,
+ table: [MIB_UDP6ROW_OWNER_PID; ANY_SIZE],
+}}
+pub type PMIB_UDP6TABLE_OWNER_PID = *mut MIB_UDP6TABLE_OWNER_PID;
+// FIXME: SIZEOF_UDP6TABLE_OWNER_PID(x)
+STRUCT!{struct MIB_UDP6ROW_OWNER_MODULE_u_s {
+ bitfield: INT,
+}}
+BITFIELD!{MIB_UDP6ROW_OWNER_MODULE_u_s bitfield: INT [
+ SpecificPortBind set_SpecificPortBind[0..1],
+]}
+UNION!{union MIB_UDP6ROW_OWNER_MODULE_u {
+ [i32; 1],
+ s s_mut: INT,
+ dwFlags dwFlags_mut: INT,
+}}
+STRUCT!{struct MIB_UDP6ROW_OWNER_MODULE {
+ ucLocalAddr: [UCHAR; 16],
+ dwLocalScopeId: DWORD,
+ dwLocalPort: DWORD,
+ dwOwningPid: DWORD,
+ liCreateTimestamp: LARGE_INTEGER,
+ u: MIB_UDP6ROW_OWNER_MODULE_u,
+ OwningModuleInfo: [ULONGLONG; TCPIP_OWNING_MODULE_SIZE],
+}}
+pub type PMIB_UDP6ROW_OWNER_MODULE = *mut MIB_UDP6ROW_OWNER_MODULE;
+STRUCT!{struct MIB_UDP6TABLE_OWNER_MODULE {
+ dwNumEntries: DWORD,
+ table: [MIB_UDP6ROW_OWNER_MODULE; ANY_SIZE],
+}}
+pub type PMIB_UDP6TABLE_OWNER_MODULE = *mut MIB_UDP6TABLE_OWNER_MODULE;
+// FIXME: SIZEOF_UDP6TABLE_OWNER_MODULE(x)
+STRUCT!{struct MIB_UDPSTATS {
+ dwInDatagrams: DWORD,
+ dwNoPorts: DWORD,
+ dwInErrors: DWORD,
+ dwOutDatagrams: DWORD,
+ dwNumAddrs: DWORD,
+}}
+pub type PMIB_UDPSTATS = *mut MIB_UDPSTATS;
+STRUCT!{struct MIB_UDPSTATS2 {
+ dw64InDatagrams: DWORD64,
+ dwNoPorts: DWORD,
+ dwInErrors: DWORD,
+ dw64OutDatagrams: DWORD64,
+ dwNumAddrs: DWORD,
+}}
+pub type PMIB_UDPSTATS2 = *mut MIB_UDPSTATS2;
diff --git a/third_party/rust/winapi/src/shared/usb.rs b/third_party/rust/winapi/src/shared/usb.rs
new file mode 100644
index 0000000000..f6bd3b77ee
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/usb.rs
@@ -0,0 +1,523 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! USB Definitions.
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use shared::usbspec::{
+ PUSB_CONFIGURATION_DESCRIPTOR, USB_DEVICE_DESCRIPTOR, USB_ENDPOINT_DIRECTION_MASK,
+};
+use um::winnt::{LONG, PVOID, WCHAR};
+pub type PRIP = PVOID;
+pub type PMDL = PVOID;
+pub const USBDI_VERSION: ULONG = 0x00000600;
+pub const USB_PORTATTR_NO_CONNECTOR: ULONG = 0x00000001;
+pub const USB_PORTATTR_SHARED_USB2: ULONG = 0x00000002;
+pub const USB_PORTATTR_MINI_CONNECTOR: ULONG = 0x00000004;
+pub const USB_PORTATTR_OEM_CONNECTOR: ULONG = 0x00000008;
+pub const USB_PORTATTR_OWNED_BY_CC: ULONG = 0x01000000;
+pub const USB_PORTATTR_NO_OVERCURRENT_UI: ULONG = 0x02000000;
+ENUM!{enum USB_CONTROLLER_FLAVOR {
+ USB_HcGeneric = 0,
+ OHCI_Generic = 100,
+ OHCI_Hydra,
+ OHCI_NEC,
+ UHCI_Generic = 200,
+ UHCI_Piix4 = 201,
+ UHCI_Piix3 = 202,
+ UHCI_Ich2 = 203,
+ UHCI_Reserved204 = 204,
+ UHCI_Ich1 = 205,
+ UHCI_Ich3m = 206,
+ UHCI_Ich4 = 207,
+ UHCI_Ich5 = 208,
+ UHCI_Ich6 = 209,
+ UHCI_Intel = 249,
+ UHCI_VIA = 250,
+ UHCI_VIA_x01 = 251,
+ UHCI_VIA_x02 = 252,
+ UHCI_VIA_x03 = 253,
+ UHCI_VIA_x04 = 254,
+ UHCI_VIA_x0E_FIFO = 264,
+ EHCI_Generic = 1000,
+ EHCI_NEC = 2000,
+ EHCI_Lucent = 3000,
+ EHCI_NVIDIA_Tegra2 = 4000,
+ EHCI_NVIDIA_Tegra3 = 4001,
+ EHCI_Intel_Medfield = 5001,
+}}
+pub const USB_DEFAULT_DEVICE_ADDRESS: UCHAR = 0;
+pub const USB_DEFAULT_ENDPOINT_ADDRESS: UCHAR = 0;
+pub const USB_DEFAULT_MAX_PACKET: USHORT = 64;
+pub const URB_FUNCTION_SELECT_CONFIGURATION: USHORT = 0x0000;
+pub const URB_FUNCTION_SELECT_INTERFACE: USHORT = 0x0001;
+pub const URB_FUNCTION_ABORT_PIPE: USHORT = 0x0002;
+pub const URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL: USHORT = 0x0003;
+pub const URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL: USHORT = 0x0004;
+pub const URB_FUNCTION_GET_FRAME_LENGTH: USHORT = 0x0005;
+pub const URB_FUNCTION_SET_FRAME_LENGTH: USHORT = 0x0006;
+pub const URB_FUNCTION_GET_CURRENT_FRAME_NUMBER: USHORT = 0x0007;
+pub const URB_FUNCTION_CONTROL_TRANSFER: USHORT = 0x0008;
+pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: USHORT = 0x0009;
+pub const URB_FUNCTION_ISOCH_TRANSFER: USHORT = 0x000A;
+pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE: USHORT = 0x000B;
+pub const URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE: USHORT = 0x000C;
+pub const URB_FUNCTION_SET_FEATURE_TO_DEVICE: USHORT = 0x000D;
+pub const URB_FUNCTION_SET_FEATURE_TO_INTERFACE: USHORT = 0x000E;
+pub const URB_FUNCTION_SET_FEATURE_TO_ENDPOINT: USHORT = 0x000F;
+pub const URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE: USHORT = 0x0010;
+pub const URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE: USHORT = 0x0011;
+pub const URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT: USHORT = 0x0012;
+pub const URB_FUNCTION_GET_STATUS_FROM_DEVICE: USHORT = 0x0013;
+pub const URB_FUNCTION_GET_STATUS_FROM_INTERFACE: USHORT = 0x0014;
+pub const URB_FUNCTION_GET_STATUS_FROM_ENDPOINT: USHORT = 0x0015;
+pub const URB_FUNCTION_RESERVED_0X0016: USHORT = 0x0016;
+pub const URB_FUNCTION_VENDOR_DEVICE: USHORT = 0x0017;
+pub const URB_FUNCTION_VENDOR_INTERFACE: USHORT = 0x0018;
+pub const URB_FUNCTION_VENDOR_ENDPOINT: USHORT = 0x0019;
+pub const URB_FUNCTION_CLASS_DEVICE: USHORT = 0x001A;
+pub const URB_FUNCTION_CLASS_INTERFACE: USHORT = 0x001B;
+pub const URB_FUNCTION_CLASS_ENDPOINT: USHORT = 0x001C;
+pub const URB_FUNCTION_RESERVE_0X001D: USHORT = 0x001D;
+pub const URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL: USHORT = 0x001E;
+pub const URB_FUNCTION_CLASS_OTHER: USHORT = 0x001F;
+pub const URB_FUNCTION_VENDOR_OTHER: USHORT = 0x0020;
+pub const URB_FUNCTION_GET_STATUS_FROM_OTHER: USHORT = 0x0021;
+pub const URB_FUNCTION_CLEAR_FEATURE_TO_OTHER: USHORT = 0x0022;
+pub const URB_FUNCTION_SET_FEATURE_TO_OTHER: USHORT = 0x0023;
+pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT: USHORT = 0x0024;
+pub const URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT: USHORT = 0x0025;
+pub const URB_FUNCTION_GET_CONFIGURATION: USHORT = 0x0026;
+pub const URB_FUNCTION_GET_INTERFACE: USHORT = 0x0027;
+pub const URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE: USHORT = 0x0028;
+pub const URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE: USHORT = 0x0029;
+pub const URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR: USHORT = 0x002A;
+pub const URB_FUNCTION_SYNC_RESET_PIPE: USHORT = 0x0030;
+pub const URB_FUNCTION_SYNC_CLEAR_STALL: USHORT = 0x0031;
+pub const URB_FUNCTION_CONTROL_TRANSFER_EX: USHORT = 0x0032;
+pub const URB_FUNCTION_RESERVE_0X0033: USHORT = 0x0033;
+pub const URB_FUNCTION_RESERVE_0X0034: USHORT = 0x0034;
+pub const URB_FUNCTION_OPEN_STATIC_STREAMS: USHORT = 0x0035;
+pub const URB_FUNCTION_CLOSE_STATIC_STREAMS: USHORT = 0x0036;
+pub const URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER_USING_CHAINED_MDL: USHORT = 0x0037;
+pub const URB_FUNCTION_ISOCH_TRANSFER_USING_CHAINED_MDL: USHORT = 0x0038;
+pub const URB_FUNCTION_RESERVE_0X002B: USHORT = 0x002B;
+pub const URB_FUNCTION_RESERVE_0X002C: USHORT = 0x002C;
+pub const URB_FUNCTION_RESERVE_0X002D: USHORT = 0x002D;
+pub const URB_FUNCTION_RESERVE_0X002E: USHORT = 0x002E;
+pub const URB_FUNCTION_RESERVE_0X002F: USHORT = 0x002F;
+pub const URB_FUNCTION_RESET_PIPE: USHORT = URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL;
+pub const USBD_SHORT_TRANSFER_OK: ULONG = 0x00000002;
+pub const USBD_START_ISO_TRANSFER_ASAP: ULONG = 0x00000004;
+pub const USBD_DEFAULT_PIPE_TRANSFER: ULONG = 0x00000008;
+pub const USBD_TRANSFER_DIRECTION_OUT: ULONG = 0;
+pub const USBD_TRANSFER_DIRECTION_IN: ULONG = 1;
+pub const USBD_TRANSFER_DIRECTION: ULONG = USBD_TRANSFER_DIRECTION_IN;
+#[inline]
+pub fn USBD_TRANSFER_DIRECTION_FLAG(flags: ULONG) -> ULONG {
+ flags & USBD_TRANSFER_DIRECTION
+}
+pub const VALID_TRANSFER_FLAGS_MASK: ULONG = USBD_SHORT_TRANSFER_OK | USBD_TRANSFER_DIRECTION
+ | USBD_START_ISO_TRANSFER_ASAP | USBD_DEFAULT_PIPE_TRANSFER;
+pub const USBD_ISO_START_FRAME_RANGE: ULONG = 1024;
+pub type USBD_STATUS = LONG;
+#[inline]
+pub fn USBD_SUCCESS(Status: USBD_STATUS) -> bool {
+ Status >= 0
+}
+#[inline]
+pub fn USBD_PENDING(Status: ULONG) -> bool {
+ (Status >> 30) == 1
+}
+pub const USBD_STATUS_SUCCESS: USBD_STATUS = 0x00000000;
+pub const USBD_STATUS_PORT_OPERATION_PENDING: USBD_STATUS = 0x00000001;
+pub const USBD_STATUS_PENDING: USBD_STATUS = 0x40000000;
+pub const USBD_STATUS_CRC: USBD_STATUS = 0xC0000001;
+pub const USBD_STATUS_BTSTUFF: USBD_STATUS = 0xC0000002;
+pub const USBD_STATUS_DATA_TOGGLE_MISMATCH: USBD_STATUS = 0xC0000003;
+pub const USBD_STATUS_STALL_PID: USBD_STATUS = 0xC0000004;
+pub const USBD_STATUS_DEV_NOT_RESPONDING: USBD_STATUS = 0xC0000005;
+pub const USBD_STATUS_PID_CHECK_FAILURE: USBD_STATUS = 0xC0000006;
+pub const USBD_STATUS_UNEXPECTED_PID: USBD_STATUS = 0xC0000007;
+pub const USBD_STATUS_DATA_OVERRUN: USBD_STATUS = 0xC0000008;
+pub const USBD_STATUS_DATA_UNDERRUN: USBD_STATUS = 0xC0000009;
+pub const USBD_STATUS_RESERVED1: USBD_STATUS = 0xC000000A;
+pub const USBD_STATUS_RESERVED2: USBD_STATUS = 0xC000000B;
+pub const USBD_STATUS_BUFFER_OVERRUN: USBD_STATUS = 0xC000000C;
+pub const USBD_STATUS_BUFFER_UNDERRUN: USBD_STATUS = 0xC000000D;
+pub const USBD_STATUS_NOT_ACCESSED: USBD_STATUS = 0xC000000F;
+pub const USBD_STATUS_FIFO: USBD_STATUS = 0xC0000010;
+pub const USBD_STATUS_XACT_ERROR: USBD_STATUS = 0xC0000011;
+pub const USBD_STATUS_BABBLE_DETECTED: USBD_STATUS = 0xC0000012;
+pub const USBD_STATUS_DATA_BUFFER_ERROR: USBD_STATUS = 0xC0000013;
+pub const USBD_STATUS_NO_PING_RESPONSE: USBD_STATUS = 0xC0000014;
+pub const USBD_STATUS_INVALID_STREAM_TYPE: USBD_STATUS = 0xC0000015;
+pub const USBD_STATUS_INVALID_STREAM_ID: USBD_STATUS = 0xC0000016;
+pub const USBD_STATUS_ENDPOINT_HALTED: USBD_STATUS = 0xC0000030;
+pub const USBD_STATUS_INVALID_URB_FUNCTION: USBD_STATUS = 0x80000200;
+pub const USBD_STATUS_INVALID_PARAMETER: USBD_STATUS = 0x80000300;
+pub const USBD_STATUS_ERROR_BUSY: USBD_STATUS = 0x80000400;
+pub const USBD_STATUS_INVALID_PIPE_HANDLE: USBD_STATUS = 0x80000600;
+pub const USBD_STATUS_NO_BANDWIDTH: USBD_STATUS = 0x80000700;
+pub const USBD_STATUS_INTERNAL_HC_ERROR: USBD_STATUS = 0x80000800;
+pub const USBD_STATUS_ERROR_SHORT_TRANSFER: USBD_STATUS = 0x80000900;
+pub const USBD_STATUS_BAD_START_FRAME: USBD_STATUS = 0xC0000A00;
+pub const USBD_STATUS_ISOCH_REQUEST_FAILED: USBD_STATUS = 0xC0000B00;
+pub const USBD_STATUS_FRAME_CONTROL_OWNED: USBD_STATUS = 0xC0000C00;
+pub const USBD_STATUS_FRAME_CONTROL_NOT_OWNED: USBD_STATUS = 0xC0000D00;
+pub const USBD_STATUS_NOT_SUPPORTED: USBD_STATUS = 0xC0000E00;
+pub const USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR: USBD_STATUS = 0xC0000F00;
+pub const USBD_STATUS_INVALID_CONFIGURATION_DESCRIPTOR: USBD_STATUS = 0xC0000F00;
+pub const USBD_STATUS_INSUFFICIENT_RESOURCES: USBD_STATUS = 0xC0001000;
+pub const USBD_STATUS_SET_CONFIG_FAILED: USBD_STATUS = 0xC0002000;
+pub const USBD_STATUS_BUFFER_TOO_SMALL: USBD_STATUS = 0xC0003000;
+pub const USBD_STATUS_INTERFACE_NOT_FOUND: USBD_STATUS = 0xC0004000;
+pub const USBD_STATUS_INAVLID_PIPE_FLAGS: USBD_STATUS = 0xC0005000;
+pub const USBD_STATUS_TIMEOUT: USBD_STATUS = 0xC0006000;
+pub const USBD_STATUS_DEVICE_GONE: USBD_STATUS = 0xC0007000;
+pub const USBD_STATUS_STATUS_NOT_MAPPED: USBD_STATUS = 0xC0008000;
+pub const USBD_STATUS_HUB_INTERNAL_ERROR: USBD_STATUS = 0xC0009000;
+pub const USBD_STATUS_CANCELED: USBD_STATUS = 0xC0010000;
+pub const USBD_STATUS_ISO_NOT_ACCESSED_BY_HW: USBD_STATUS = 0xC0020000;
+pub const USBD_STATUS_ISO_TD_ERROR: USBD_STATUS = 0xC0030000;
+pub const USBD_STATUS_ISO_NA_LATE_USBPORT: USBD_STATUS = 0xC0040000;
+pub const USBD_STATUS_ISO_NOT_ACCESSED_LATE: USBD_STATUS = 0xC0050000;
+pub const USBD_STATUS_BAD_DESCRIPTOR: USBD_STATUS = 0xC0100000;
+pub const USBD_STATUS_BAD_DESCRIPTOR_BLEN: USBD_STATUS = 0xC0100001;
+pub const USBD_STATUS_BAD_DESCRIPTOR_TYPE: USBD_STATUS = 0xC0100002;
+pub const USBD_STATUS_BAD_INTERFACE_DESCRIPTOR: USBD_STATUS = 0xC0100003;
+pub const USBD_STATUS_BAD_ENDPOINT_DESCRIPTOR: USBD_STATUS = 0xC0100004;
+pub const USBD_STATUS_BAD_INTERFACE_ASSOC_DESCRIPTOR: USBD_STATUS = 0xC0100005;
+pub const USBD_STATUS_BAD_CONFIG_DESC_LENGTH: USBD_STATUS = 0xC0100006;
+pub const USBD_STATUS_BAD_NUMBER_OF_INTERFACES: USBD_STATUS = 0xC0100007;
+pub const USBD_STATUS_BAD_NUMBER_OF_ENDPOINTS: USBD_STATUS = 0xC0100008;
+pub const USBD_STATUS_BAD_ENDPOINT_ADDRESS: USBD_STATUS = 0xC0100009;
+pub type USBD_PIPE_HANDLE = PVOID;
+pub type USBD_CONFIGURATION_HANDLE = PVOID;
+pub type USBD_INTERFACE_HANDLE = PVOID;
+pub const USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE: ULONG = 0xFFFFFFFF;
+STRUCT!{struct USBD_VERSION_INFORMATION {
+ USBDI_Version: ULONG,
+ Supported_USB_Version: ULONG,
+}}
+pub type PUSBD_VERSION_INFORMATION = *mut USBD_VERSION_INFORMATION;
+ENUM!{enum USBD_PIPE_TYPE {
+ UsbdPipeTypeControl,
+ UsbdPipeTypeIsochronous,
+ UsbdPipeTypeBulk,
+ UsbdPipeTypeInterrupt,
+}}
+#[inline]
+pub fn USBD_PIPE_DIRECTION_IN(pipeInformation: &USBD_PIPE_INFORMATION) -> UCHAR {
+ pipeInformation.EndpointAddress & USB_ENDPOINT_DIRECTION_MASK
+}
+STRUCT!{struct USBD_DEVICE_INFORMATION {
+ OffsetNext: ULONG,
+ UsbdDeviceHandle: PVOID,
+ DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
+}}
+pub type PUSBD_DEVICE_INFORMATION = *mut USBD_DEVICE_INFORMATION;
+STRUCT!{struct USBD_PIPE_INFORMATION {
+ MaximumPacketSize: USHORT,
+ EndpointAddress: UCHAR,
+ Interval: UCHAR,
+ PipeType: USBD_PIPE_TYPE,
+ PipeHandle: USBD_PIPE_HANDLE,
+ MaximumTransferSize: ULONG,
+ PipeFlags: ULONG,
+}}
+pub type PUSBD_PIPE_INFORMATION = *mut USBD_PIPE_INFORMATION;
+pub const USBD_PF_CHANGE_MAX_PACKET: ULONG = 0x00000001;
+pub const USBD_PF_SHORT_PACKET_OPT: ULONG = 0x00000002;
+pub const USBD_PF_ENABLE_RT_THREAD_ACCESS: ULONG = 0x00000004;
+pub const USBD_PF_MAP_ADD_TRANSFERS: ULONG = 0x00000008;
+pub const USBD_PF_VALID_MASK: ULONG = USBD_PF_CHANGE_MAX_PACKET | USBD_PF_SHORT_PACKET_OPT
+ | USBD_PF_ENABLE_RT_THREAD_ACCESS | USBD_PF_MAP_ADD_TRANSFERS;
+STRUCT!{struct USBD_INTERFACE_INFORMATION {
+ Length: USHORT,
+ InterfaceNumber: UCHAR,
+ AlternateSetting: UCHAR,
+ Class: UCHAR,
+ SubClass: UCHAR,
+ Protocol: UCHAR,
+ Reserved: UCHAR,
+ InterfaceHandle: USBD_INTERFACE_HANDLE,
+ NumberOfPipes: ULONG,
+ Pipes: [USBD_PIPE_INFORMATION; 1],
+}}
+pub type PUSBD_INTERFACE_INFORMATION = *mut USBD_INTERFACE_INFORMATION;
+STRUCT!{struct URB_HCD_AREA {
+ Reserved8: [PVOID; 8],
+}}
+STRUCT!{struct URB_HEADER {
+ Length: USHORT,
+ Function: USHORT,
+ Status: USBD_STATUS,
+ UsbdDeviceHandle: PVOID,
+ UsbdFlags: ULONG,
+}}
+STRUCT!{struct URB_SELECT_INTERFACE {
+ Hdr: URB_HEADER,
+ ConfigurationHandle: USBD_CONFIGURATION_HANDLE,
+ Interface: USBD_INTERFACE_INFORMATION,
+}}
+STRUCT!{struct URB_SELECT_CONFIGURATION {
+ Hdr: URB_HEADER,
+ ConfigurationDescriptor: PUSB_CONFIGURATION_DESCRIPTOR,
+ ConfigurationHandle: USBD_CONFIGURATION_HANDLE,
+ Interface: USBD_INTERFACE_INFORMATION,
+}}
+STRUCT!{struct URB_PIPE_REQUEST {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ Reserved: ULONG,
+}}
+STRUCT!{struct URB_FRAME_LENGTH_CONTROL {
+ Hdr: URB_HEADER,
+}}
+STRUCT!{struct URB_GET_FRAME_LENGTH {
+ Hdr: URB_HEADER,
+ FrameLength: ULONG,
+ FrameNumber: ULONG,
+}}
+STRUCT!{struct URB_SET_FRAME_LENGTH {
+ Hdr: URB_HEADER,
+ FrameLengthDelta: LONG,
+}}
+STRUCT!{struct URB_GET_CURRENT_FRAME_NUMBER {
+ Hdr: URB_HEADER,
+ FrameNumber: ULONG,
+}}
+STRUCT!{struct URB_CONTROL_DESCRIPTOR_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved0: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ Reserved1: USHORT,
+ Index: UCHAR,
+ DescriptorType: UCHAR,
+ LanguageId: USHORT,
+ Reserved2: USHORT,
+}}
+STRUCT!{struct URB_CONTROL_GET_STATUS_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved0: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ Reserved1: [UCHAR; 4],
+ Index: USHORT,
+ Reserved2: USHORT,
+}}
+STRUCT!{struct URB_CONTROL_FEATURE_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved2: ULONG,
+ Reserved3: ULONG,
+ Reserved4: PVOID,
+ Reserved5: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ Reserved0: USHORT,
+ FeatureSelector: USHORT,
+ Index: USHORT,
+ Reserved1: USHORT,
+}}
+STRUCT!{struct URB_CONTROL_VENDOR_OR_CLASS_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ RequestTypeReservedBits: UCHAR,
+ Request: UCHAR,
+ Value: USHORT,
+ Index: USHORT,
+ Reserved1: USHORT,
+}}
+STRUCT!{struct URB_CONTROL_GET_INTERFACE_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved0: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ Reserved1: [UCHAR; 4],
+ Interface: USHORT,
+ Reserved2: USHORT,
+}}
+STRUCT!{struct URB_CONTROL_GET_CONFIGURATION_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved0: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ Reserved1: [UCHAR; 8],
+}}
+pub const OS_STRING_DESCRIPTOR_INDEX: UCHAR = 0xEE;
+pub const MS_GENRE_DESCRIPTOR_INDEX: USHORT = 0x0001;
+pub const MS_POWER_DESCRIPTOR_INDEX: USHORT = 0x0002;
+pub const MS_OS_STRING_SIGNATURE: &'static str = "MSFT100";
+pub const MS_OS_FLAGS_CONTAINERID: UCHAR = 0x02;
+UNION!{union OS_STRING_u {
+ [u8; 1],
+ bPad bPad_mut: UCHAR,
+ bFlags bFlags_mut: UCHAR,
+}}
+STRUCT!{struct OS_STRING {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ MicrosoftString: [WCHAR; 7],
+ bVendorCode: UCHAR,
+ u: OS_STRING_u,
+}}
+pub type POS_STRING = *mut OS_STRING;
+STRUCT!{struct URB_OS_FEATURE_DESCRIPTOR_REQUEST {
+ Hdr: URB_HEADER,
+ Reserved: PVOID,
+ Reserved0: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ BitField: UCHAR,
+ Reserved2: UCHAR,
+ InterfaceNumber: UCHAR,
+ MS_PageIndex: UCHAR,
+ MS_FeatureDescriptorIndex: USHORT,
+ Reserved3: USHORT,
+}}
+BITFIELD!{URB_OS_FEATURE_DESCRIPTOR_REQUEST BitField: UCHAR [
+ Recipient set_Recipient[0..5],
+ Reserved1 set_Reserved1[5..8],
+]}
+STRUCT!{struct URB_CONTROL_TRANSFER {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ SetupPacket: [UCHAR; 8],
+}}
+#[cfg(target_pointer_width = "64")]
+STRUCT!{struct URB_CONTROL_TRANSFER_EX {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ Timeout: ULONG,
+ Pad: ULONG,
+ hca: URB_HCD_AREA,
+ SetupPacket: [UCHAR; 8],
+}}
+#[cfg(target_pointer_width = "32")]
+STRUCT!{struct URB_CONTROL_TRANSFER_EX {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ Timeout: ULONG,
+ hca: URB_HCD_AREA,
+ SetupPacket: [UCHAR; 8],
+}}
+STRUCT!{struct URB_BULK_OR_INTERRUPT_TRANSFER {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+}}
+STRUCT!{struct USBD_ISO_PACKET_DESCRIPTOR {
+ Offset: ULONG,
+ Length: ULONG,
+ Status: USBD_STATUS,
+}}
+pub type PUSBD_ISO_PACKET_DESCRIPTOR = *mut USBD_ISO_PACKET_DESCRIPTOR;
+STRUCT!{struct URB_ISOCH_TRANSFER {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ TransferFlags: ULONG,
+ TransferBufferLength: ULONG,
+ TransferBuffer: PVOID,
+ TransferBufferMDL: PMDL,
+ UrbLink: *mut URB,
+ hca: URB_HCD_AREA,
+ StartFrame: ULONG,
+ NumberOfPackets: ULONG,
+ ErrorCount: ULONG,
+ IsoPacket: [USBD_ISO_PACKET_DESCRIPTOR; 1],
+}}
+pub const URB_OPEN_STATIC_STREAMS_VERSION_100: USHORT = 0x100;
+STRUCT!{struct USBD_STREAM_INFORMATION {
+ PipeHandle: USBD_PIPE_HANDLE,
+ StreamID: ULONG,
+ MaximumTransferSize: ULONG,
+ PipeFlags: ULONG,
+}}
+pub type PUSBD_STREAM_INFORMATION = *mut USBD_STREAM_INFORMATION;
+STRUCT!{struct URB_OPEN_STATIC_STREAMS {
+ Hdr: URB_HEADER,
+ PipeHandle: USBD_PIPE_HANDLE,
+ NumberOfStreams: ULONG,
+ StreamInfoVersion: USHORT,
+ StreamInfoSize: USHORT,
+ Streams: PUSBD_STREAM_INFORMATION,
+}}
+UNION!{union URB_u {
+ [u32; 24] [u64; 19],
+ UrbHeader UrbHeader_mut: URB_HEADER,
+ UrbSelectInterface UrbSelectInterface_mut: URB_SELECT_INTERFACE,
+ UrbSelectConfiguration UrbSelectConfiguration_mut: URB_SELECT_CONFIGURATION,
+ UrbPipeRequest UrbPipeRequest_mut: URB_PIPE_REQUEST,
+ UrbFrameLengthControl UrbFrameLengthControl_mut: URB_FRAME_LENGTH_CONTROL,
+ UrbGetFrameLength UrbGetFrameLength_mut: URB_GET_FRAME_LENGTH,
+ UrbSetFrameLength UrbSetFrameLength_mut: URB_SET_FRAME_LENGTH,
+ UrbGetCurrentFrameNumber UrbGetCurrentFrameNumber_mut: URB_GET_CURRENT_FRAME_NUMBER,
+ UrbControlTransfer UrbControlTransfer_mut: URB_CONTROL_TRANSFER,
+ UrbControlTransferEx UrbControlTransferEx_mut: URB_CONTROL_TRANSFER_EX,
+ UrbBulkOrInterruptTransfer UrbBulkOrInterruptTransfer_mut: URB_BULK_OR_INTERRUPT_TRANSFER,
+ UrbIsochronousTransfer UrbIsochronousTransfer_mut: URB_ISOCH_TRANSFER,
+ UrbControlDescriptorRequest UrbControlDescriptorRequest_mut: URB_CONTROL_DESCRIPTOR_REQUEST,
+ UrbControlGetStatusRequest UrbControlGetStatusRequest_mut: URB_CONTROL_GET_STATUS_REQUEST,
+ UrbControlFeatureRequest UrbControlFeatureRequest_mut: URB_CONTROL_FEATURE_REQUEST,
+ UrbControlVendorClassRequest UrbControlVendorClassRequest_mut:
+ URB_CONTROL_VENDOR_OR_CLASS_REQUEST,
+ UrbControlGetInterfaceRequest UrbControlGetInterfaceRequest_mut:
+ URB_CONTROL_GET_INTERFACE_REQUEST,
+ UrbControlGetConfigurationRequest UrbControlGetConfigurationRequest_mut:
+ URB_CONTROL_GET_CONFIGURATION_REQUEST,
+ UrbOSFeatureDescriptorRequest UrbOSFeatureDescriptorRequest_mut:
+ URB_OS_FEATURE_DESCRIPTOR_REQUEST,
+ UrbOpenStaticStreams UrbOpenStaticStreams_mut: URB_OPEN_STATIC_STREAMS,
+}}
+STRUCT!{struct URB {
+ u: URB_u,
+}}
+pub type PURB = *mut URB;
diff --git a/third_party/rust/winapi/src/shared/usbioctl.rs b/third_party/rust/winapi/src/shared/usbioctl.rs
new file mode 100644
index 0000000000..a7906fe5af
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/usbioctl.rs
@@ -0,0 +1,705 @@
+use shared::basetsd::ULONG64;
+use shared::guiddef::GUID;
+use shared::minwindef::{DWORD, UCHAR, ULONG, USHORT};
+use shared::ntdef::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, NTSTATUS, PWCHAR, WCHAR};
+use shared::usb::USBD_STATUS;
+use shared::usbiodef::{
+ FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_OFF, HCD_DIAGNOSTIC_MODE_ON, HCD_DISABLE_PORT,
+ HCD_ENABLE_PORT, HCD_GET_DRIVERKEY_NAME, HCD_GET_ROOT_HUB_NAME, HCD_GET_STATS_1,
+ HCD_GET_STATS_2, USB_CYCLE_PORT, USB_DIAG_IGNORE_HUBS_OFF, USB_DIAG_IGNORE_HUBS_ON,
+ USB_ENABLE_PORT, USB_FAIL_GET_STATUS, USB_GET_BUSGUID_INFO, USB_GET_BUS_INFO,
+ USB_GET_CONTROLLER_NAME, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION,
+ USB_GET_DEVICE_CHARACTERISTICS, USB_GET_DEVICE_HANDLE, USB_GET_DEVICE_HANDLE_EX,
+ USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, USB_GET_HUB_CAPABILITIES,
+ USB_GET_HUB_CAPABILITIES_EX, USB_GET_HUB_CONFIG_INFO, USB_GET_HUB_COUNT,
+ USB_GET_HUB_INFORMATION_EX, USB_GET_HUB_NAME, USB_GET_NODE_CONNECTION_ATTRIBUTES,
+ USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, USB_GET_NODE_CONNECTION_INFORMATION,
+ USB_GET_NODE_CONNECTION_INFORMATION_EX, USB_GET_NODE_CONNECTION_INFORMATION_EX_V2,
+ USB_GET_NODE_CONNECTION_NAME, USB_GET_NODE_INFORMATION, USB_GET_PARENT_HUB_INFO,
+ USB_GET_PORT_CONNECTOR_PROPERTIES, USB_GET_PORT_STATUS, USB_GET_ROOTHUB_PDO,
+ USB_GET_TOPOLOGY_ADDRESS, USB_GET_TRANSPORT_CHARACTERISTICS, USB_GET_TT_DEVICE_HANDLE,
+ USB_HUB_CYCLE_PORT, USB_IDLE_NOTIFICATION, USB_IDLE_NOTIFICATION_EX,
+ USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, USB_RECORD_FAILURE,
+ USB_REGISTER_COMPOSITE_DEVICE, USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE,
+ USB_REQUEST_REMOTE_WAKE_NOTIFICATION, USB_REQ_GLOBAL_RESUME, USB_REQ_GLOBAL_SUSPEND,
+ USB_RESET_HUB, USB_RESET_PORT, USB_START_TRACKING_FOR_TIME_SYNC,
+ USB_STOP_TRACKING_FOR_TIME_SYNC, USB_SUBMIT_URB, USB_UNREGISTER_COMPOSITE_DEVICE,
+ USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE,
+};
+use shared::usbspec::{
+ USB_30_HUB_DESCRIPTOR, USB_CONFIGURATION_DESCRIPTOR, USB_DEVICE_DESCRIPTOR, USB_DEVICE_SPEED,
+ USB_ENDPOINT_DESCRIPTOR, USB_HUB_DESCRIPTOR,
+};
+use um::winioctl::{FILE_ANY_ACCESS, FILE_DEVICE_USBEX, METHOD_BUFFERED, METHOD_NEITHER};
+pub const IOCTL_INTERNAL_USB_SUBMIT_URB: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_SUBMIT_URB, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_RESET_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_RESET_PORT, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_ROOTHUB_PDO, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const USBD_PORT_ENABLED: DWORD = 0x00000001;
+pub const USBD_PORT_CONNECTED: DWORD = 0x00000002;
+pub const IOCTL_INTERNAL_USB_GET_PORT_STATUS: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PORT_STATUS, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_ENABLE_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_ENABLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_HUB_COUNT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_COUNT, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_CYCLE_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_CYCLE_PORT, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_HUB_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_BUS_INFO: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_BUS_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_CONTROLLER_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_CONTROLLER_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_BUSGUID_INFO: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_BUSGUID_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_PARENT_HUB_INFO: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PARENT_HUB_INFO, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_IDLE_NOTIFICATION, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_HANDLE, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_NOTIFY_IDLE_READY: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_IDLE_NOTIFICATION_EX, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_SUSPEND: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_REQ_GLOBAL_SUSPEND, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_REQ_GLOBAL_RESUME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_REQ_GLOBAL_RESUME, METHOD_NEITHER, FILE_ANY_ACCESS);
+STRUCT!{struct USB_START_FAILDATA {
+ LengthInBytes: ULONG,
+ NtStatus: NTSTATUS,
+ UsbdStatus: USBD_STATUS,
+ ConnectStatus: ULONG,
+ DriverData: [UCHAR; 4],
+}}
+pub type PUSB_START_FAILDATA = *mut USB_START_FAILDATA;
+pub const IOCTL_INTERNAL_USB_RECORD_FAILURE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_RECORD_FAILURE, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE_EX: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_HANDLE_EX, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_TT_DEVICE_HANDLE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TT_DEVICE_HANDLE, METHOD_NEITHER, FILE_ANY_ACCESS);
+STRUCT!{struct USB_TOPOLOGY_ADDRESS {
+ PciBusNumber: ULONG,
+ PciDeviceNumber: ULONG,
+ PciFunctionNumber: ULONG,
+ Reserved: ULONG,
+ RootHubPortNumber: USHORT,
+ HubPortNumber: [USHORT; 5],
+ Reserved2: USHORT,
+}}
+pub type PUSB_TOPOLOGY_ADDRESS = *mut USB_TOPOLOGY_ADDRESS;
+pub const IOCTL_INTERNAL_USB_GET_TOPOLOGY_ADDRESS: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TOPOLOGY_ADDRESS, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_GET_DEVICE_CONFIG_INFO: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CONFIG_INFO, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_REGISTER_COMPOSITE_DEVICE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USBEX, USB_REGISTER_COMPOSITE_DEVICE, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_UNREGISTER_COMPOSITE_DEVICE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USBEX, USB_UNREGISTER_COMPOSITE_DEVICE, METHOD_NEITHER,
+ FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_REQUEST_REMOTE_WAKE_NOTIFICATION: DWORD
+ = CTL_CODE!(FILE_DEVICE_USBEX, USB_REQUEST_REMOTE_WAKE_NOTIFICATION, METHOD_NEITHER,
+ FILE_ANY_ACCESS);
+pub const IOCTL_INTERNAL_USB_FAIL_GET_STATUS_FROM_DEVICE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_FAIL_GET_STATUS, METHOD_NEITHER, FILE_ANY_ACCESS);
+pub const IOCTL_USB_HCD_GET_STATS_1: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_STATS_1, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_HCD_GET_STATS_2: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_STATS_2, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_HCD_DISABLE_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_DISABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_HCD_ENABLE_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_ENABLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_DIAGNOSTIC_MODE_ON: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_ON, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_DIAGNOSTIC_MODE_OFF: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_DIAGNOSTIC_MODE_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_ROOT_HUB_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_ROOT_HUB_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_GET_HCD_DRIVERKEY_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, HCD_GET_DRIVERKEY_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_INFORMATION: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_INFORMATION, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_NAME, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_DIAG_IGNORE_HUBS_ON: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_ON, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_DIAG_IGNORE_HUBS_OFF: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_DIAG_IGNORE_HUBS_OFF, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_HUB_CAPABILITIES: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_HUB_CYCLE_PORT: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_HUB_CYCLE_PORT, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_ATTRIBUTES: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_ATTRIBUTES, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_RESET_HUB: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_RESET_HUB, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_HUB_CAPABILITIES_EX: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_CAPABILITIES_EX, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_HUB_INFORMATION_EX: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_HUB_INFORMATION_EX, METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_PORT_CONNECTOR_PROPERTIES: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_PORT_CONNECTOR_PROPERTIES, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_NODE_CONNECTION_INFORMATION_EX_V2, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_TRANSPORT_CHARACTERISTICS: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_TRANSPORT_CHARACTERISTICS, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE,
+ METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE,
+ METHOD_BUFFERED, FILE_ANY_ACCESS);
+pub const IOCTL_USB_START_TRACKING_FOR_TIME_SYNC: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_START_TRACKING_FOR_TIME_SYNC, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_STOP_TRACKING_FOR_TIME_SYNC: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_STOP_TRACKING_FOR_TIME_SYNC, METHOD_BUFFERED,
+ FILE_ANY_ACCESS);
+pub const IOCTL_USB_GET_DEVICE_CHARACTERISTICS: DWORD
+ = CTL_CODE!(FILE_DEVICE_USB, USB_GET_DEVICE_CHARACTERISTICS, METHOD_BUFFERED, FILE_ANY_ACCESS);
+ENUM!{enum USB_HUB_NODE {
+ UsbHub,
+ UsbMIParent,
+}}
+STRUCT!{#[repr(packed)] struct USB_HUB_INFORMATION {
+ HubDescriptor: USB_HUB_DESCRIPTOR,
+ HubIsBusPowered: BOOLEAN,
+}}
+pub type PUSB_HUB_INFORMATION = *mut USB_HUB_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_MI_PARENT_INFORMATION {
+ NumberOfInterfaces: ULONG,
+}}
+pub type PUSB_MI_PARENT_INFORMATION = *mut USB_MI_PARENT_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_NODE_INFORMATION {
+ NodeType: USB_HUB_NODE,
+ u: USB_NODE_INFORMATION_u,
+}}
+UNION!{union USB_NODE_INFORMATION_u {
+ [u8; 72],
+ HubInformation HubInformation_mut: USB_HUB_INFORMATION,
+ MiParentInformation MiParentInformation_mut: USB_MI_PARENT_INFORMATION,
+}}
+pub type PUSB_NODE_INFORMATION = *mut USB_NODE_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_PIPE_INFO {
+ EndpointDescriptor: USB_ENDPOINT_DESCRIPTOR,
+ ScheduleOffset: ULONG,
+}}
+pub type PUSB_PIPE_INFO = *mut USB_PIPE_INFO;
+ENUM!{enum USB_CONNECTION_STATUS {
+ NoDeviceConnected,
+ DeviceConnected,
+ DeviceFailedEnumeration,
+ DeviceGeneralFailure,
+ DeviceCausedOvercurrent,
+ DeviceNotEnoughPower,
+ DeviceNotEnoughBandwidth,
+ DeviceHubNestedTooDeeply,
+ DeviceInLegacyHub,
+ DeviceEnumerating,
+ DeviceReset,
+}}
+pub type PUSB_CONNECTION_STATUS = *mut USB_CONNECTION_STATUS;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION {
+ ConnectionIndex: ULONG,
+ DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
+ CurrentConfigurationValue: UCHAR,
+ LowSpeed: BOOLEAN,
+ DeviceIsHub: BOOLEAN,
+ DeviceAddress: USHORT,
+ NumberOfOpenPipes: ULONG,
+ ConnectionStatus: USB_CONNECTION_STATUS,
+ PipeList: [USB_PIPE_INFO; 0],
+}}
+pub type PUSB_NODE_CONNECTION_INFORMATION = *mut USB_NODE_CONNECTION_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_DRIVERKEY_NAME {
+ ConnectionIndex: ULONG,
+ ActualLength: ULONG,
+ DriverKeyName: [WCHAR; 1],
+}}
+pub type PUSB_NODE_CONNECTION_DRIVERKEY_NAME = *mut USB_NODE_CONNECTION_DRIVERKEY_NAME;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_NAME {
+ ConnectionIndex: ULONG,
+ ActualLength: ULONG,
+ NodeName: [WCHAR; 1],
+}}
+pub type PUSB_NODE_CONNECTION_NAME = *mut USB_NODE_CONNECTION_NAME;
+STRUCT!{#[repr(packed)] struct USB_HUB_NAME {
+ ActualLength: ULONG,
+ HubName: [WCHAR; 1],
+}}
+pub type PUSB_HUB_NAME = *mut USB_HUB_NAME;
+STRUCT!{#[repr(packed)] struct USB_ROOT_HUB_NAME {
+ ActualLength: ULONG,
+ RootHubName: [WCHAR; 1],
+}}
+pub type PUSB_ROOT_HUB_NAME = *mut USB_ROOT_HUB_NAME;
+STRUCT!{#[repr(packed)] struct USB_HCD_DRIVERKEY_NAME {
+ ActualLength: ULONG,
+ DriverKeyName: [WCHAR; 1],
+}}
+pub type PUSB_HCD_DRIVERKEY_NAME = *mut USB_HCD_DRIVERKEY_NAME;
+STRUCT!{#[repr(packed)] struct USB_DESCRIPTOR_REQUEST {
+ ConnectionIndex: ULONG,
+ SetupPacket: USB_DESCRIPTOR_REQUEST_SetupPacket,
+ Data: [UCHAR; 0],
+}}
+STRUCT!{#[repr(packed)] struct USB_DESCRIPTOR_REQUEST_SetupPacket {
+ bmRequest: UCHAR,
+ bRequest: UCHAR,
+ wValue: USHORT,
+ wIndex: USHORT,
+ wLength: USHORT,
+}}
+pub type PUSB_DESCRIPTOR_REQUEST = *mut USB_DESCRIPTOR_REQUEST;
+STRUCT!{#[repr(packed)] struct USB_HUB_CAPABILITIES {
+ bitfield: ULONG,
+}}
+BITFIELD!{USB_HUB_CAPABILITIES bitfield: ULONG [
+ HubIs2xCapable set_HubIs2xCapable[0..1],
+]}
+pub type PUSB_HUB_CAPABILITIES = *mut USB_HUB_CAPABILITIES;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_ATTRIBUTES {
+ ConnectionIndex: ULONG,
+ ConnectionStatus: USB_CONNECTION_STATUS,
+ PortAttributes: ULONG,
+}}
+pub type PUSB_NODE_CONNECTION_ATTRIBUTES = *mut USB_NODE_CONNECTION_ATTRIBUTES;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX {
+ ConnectionIndex: ULONG,
+ DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
+ CurrentConfigurationValue: UCHAR,
+ Speed: UCHAR,
+ DeviceIsHub: BOOLEAN,
+ DeviceAddress: USHORT,
+ NumberOfOpenPipes: ULONG,
+ ConnectionStatus: USB_CONNECTION_STATUS,
+ PipeList: [USB_PIPE_INFO; 0],
+}}
+pub type PUSB_NODE_CONNECTION_INFORMATION_EX = *mut USB_NODE_CONNECTION_INFORMATION_EX;
+STRUCT!{#[repr(packed)] struct USB_HUB_CAP_FLAGS {
+ ul: ULONG,
+}}
+BITFIELD!{USB_HUB_CAP_FLAGS ul: ULONG [
+ HubIsHighSpeedCapable set_HubIsHighSpeedCapable[0..1],
+ HubIsHighSpeed set_HubIsHighSpeed[1..2],
+ HubIsMultiTtCapable set_HubIsMultiTtCapable[2..3],
+ HubIsMultiTt set_HubIsMultiTt[3..4],
+ HubIsRoot set_HubIsRoot[4..5],
+ HubIsArmedWakeOnConnect set_HubIsArmedWakeOnConnect[5..6],
+ HubIsBusPowered set_HubIsBusPowered[6..7],
+ ReservedMBZ set_ReservedMBZ[7..32],
+]}
+pub type PUSB_HUB_CAP_FLAGS = *mut USB_HUB_CAP_FLAGS;
+STRUCT!{#[repr(packed)] struct USB_HUB_CAPABILITIES_EX {
+ CapabilityFlags: USB_HUB_CAP_FLAGS,
+}}
+pub type PUSB_HUB_CAPABILITIES_EX = *mut USB_HUB_CAPABILITIES_EX;
+STRUCT!{#[repr(packed)] struct USB_CYCLE_PORT_PARAMS {
+ ConnectionIndex: ULONG,
+ StatusReturned: ULONG,
+}}
+pub type PUSB_CYCLE_PORT_PARAMS = *mut USB_CYCLE_PORT_PARAMS;
+STRUCT!{#[repr(packed)] struct USB_ID_STRING {
+ LanguageId: USHORT,
+ Pad: USHORT,
+ LengthInBytes: ULONG,
+ Buffer: PWCHAR,
+}}
+pub type PUSB_ID_STRING = *mut USB_ID_STRING;
+STRUCT!{#[repr(packed)] struct USB_HUB_DEVICE_UXD_SETTINGS {
+ Version: ULONG,
+ PnpGuid: GUID,
+ OwnerGuid: GUID,
+ DeleteOnShutdown: ULONG,
+ DeleteOnReload: ULONG,
+ DeleteOnDisconnect: ULONG,
+ Reserved: [ULONG; 5],
+}}
+pub type PUSB_HUB_DEVICE_UXD_SETTINGS = *mut USB_HUB_DEVICE_UXD_SETTINGS;
+STRUCT!{#[repr(packed)] struct HUB_DEVICE_CONFIG_INFO {
+ Version: ULONG,
+ Length: ULONG,
+ HubFlags: USB_HUB_CAP_FLAGS,
+ HardwareIds: USB_ID_STRING,
+ CompatibleIds: USB_ID_STRING,
+ DeviceDescription: USB_ID_STRING,
+ Reserved: [ULONG; 19],
+ UxdSettings: USB_HUB_DEVICE_UXD_SETTINGS,
+}}
+pub type PHUB_DEVICE_CONFIG_INFO = *mut HUB_DEVICE_CONFIG_INFO;
+STRUCT!{#[repr(packed)] struct HCD_STAT_COUNTERS {
+ BytesTransferred: ULONG,
+ IsoMissedCount: USHORT,
+ DataOverrunErrorCount: USHORT,
+ CrcErrorCount: USHORT,
+ ScheduleOverrunCount: USHORT,
+ TimeoutErrorCount: USHORT,
+ InternalHcErrorCount: USHORT,
+ BufferOverrunErrorCount: USHORT,
+ SWErrorCount: USHORT,
+ StallPidCount: USHORT,
+ PortDisableCount: USHORT,
+}}
+pub type PHCD_STAT_COUNTERS = *mut HCD_STAT_COUNTERS;
+STRUCT!{#[repr(packed)] struct HCD_ISO_STAT_COUNTERS {
+ LateUrbs: USHORT,
+ DoubleBufferedPackets: USHORT,
+ TransfersCF_5ms: USHORT,
+ TransfersCF_2ms: USHORT,
+ TransfersCF_1ms: USHORT,
+ MaxInterruptLatency: USHORT,
+ BadStartFrame: USHORT,
+ StaleUrbs: USHORT,
+ IsoPacketNotAccesed: USHORT,
+ IsoPacketHWError: USHORT,
+ SmallestUrbPacketCount: USHORT,
+ LargestUrbPacketCount: USHORT,
+ IsoCRC_Error: USHORT,
+ IsoOVERRUN_Error: USHORT,
+ IsoINTERNAL_Error: USHORT,
+ IsoUNKNOWN_Error: USHORT,
+ IsoBytesTransferred: ULONG,
+ LateMissedCount: USHORT,
+ HWIsoMissedCount: USHORT,
+ Reserved7: [ULONG; 8],
+}}
+pub type PHCD_ISO_STAT_COUNTERS = *mut HCD_ISO_STAT_COUNTERS;
+STRUCT!{#[repr(packed)] struct HCD_STAT_INFORMATION_1 {
+ Reserved1: ULONG,
+ Reserved2: ULONG,
+ ResetCounters: ULONG,
+ TimeRead: LARGE_INTEGER,
+ Counters: HCD_STAT_COUNTERS,
+}}
+pub type PHCD_STAT_INFORMATION_1 = *mut HCD_STAT_INFORMATION_1;
+STRUCT!{#[repr(packed)] struct HCD_STAT_INFORMATION_2 {
+ Reserved1: ULONG,
+ Reserved2: ULONG,
+ ResetCounters: ULONG,
+ TimeRead: LARGE_INTEGER,
+ LockedMemoryUsed: LONG,
+ Counters: HCD_STAT_COUNTERS,
+ IsoCounters: HCD_ISO_STAT_COUNTERS,
+}}
+pub type PHCD_STAT_INFORMATION_2 = *mut HCD_STAT_INFORMATION_2;
+pub const WMI_USB_DRIVER_INFORMATION: ULONG = 0;
+pub const WMI_USB_DRIVER_NOTIFICATION: ULONG = 1;
+pub const WMI_USB_POWER_DEVICE_ENABLE: ULONG = 2;
+pub const WMI_USB_HUB_NODE_INFORMATION: ULONG = 4;
+pub const WMI_USB_PERFORMANCE_INFORMATION: ULONG = 1;
+pub const WMI_USB_DEVICE_NODE_INFORMATION: ULONG = 2;
+ENUM!{enum USB_NOTIFICATION_TYPE {
+ EnumerationFailure = 0,
+ InsufficentBandwidth,
+ InsufficentPower,
+ OverCurrent,
+ ResetOvercurrent,
+ AcquireBusInfo,
+ AcquireHubName,
+ AcquireControllerName,
+ HubOvercurrent,
+ HubPowerChange,
+ HubNestedTooDeeply,
+ ModernDeviceInLegacyHub,
+}}
+STRUCT!{#[repr(packed)] struct USB_NOTIFICATION {
+ NotificationType: USB_NOTIFICATION_TYPE,
+}}
+pub type PUSB_NOTIFICATION = *mut USB_NOTIFICATION;
+STRUCT!{#[repr(packed)] struct USB_CONNECTION_NOTIFICATION {
+ NotificationType: USB_NOTIFICATION_TYPE,
+ ConnectionNumber: ULONG,
+ RequestedBandwidth: ULONG,
+ EnumerationFailReason: ULONG,
+ PowerRequested: ULONG,
+ HubNameLength: ULONG,
+}}
+pub type PUSB_CONNECTION_NOTIFICATION = *mut USB_CONNECTION_NOTIFICATION;
+STRUCT!{#[repr(packed)] struct USB_BUS_NOTIFICATION {
+ NotificationType: USB_NOTIFICATION_TYPE,
+ TotalBandwidth: ULONG,
+ ConsumedBandwidth: ULONG,
+ ControllerNameLength: ULONG,
+}}
+pub type PUSB_BUS_NOTIFICATION = *mut USB_BUS_NOTIFICATION;
+STRUCT!{#[repr(packed)] struct USB_ACQUIRE_INFO {
+ NotificationType: USB_NOTIFICATION_TYPE,
+ TotalSize: ULONG,
+ Buffer: [WCHAR; 1],
+}}
+pub type PUSB_ACQUIRE_INFO = *mut USB_ACQUIRE_INFO;
+ENUM!{enum USB_WMI_DEVICE_NODE_TYPE {
+ UsbDevice,
+ HubDevice,
+ CompositeDevice,
+ UsbController,
+}}
+pub type PUSB_WMI_DEVICE_NODE_TYPE = *mut USB_WMI_DEVICE_NODE_TYPE;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_STATE {
+ bitfield: ULONG,
+}}
+BITFIELD!{USB_DEVICE_STATE bitfield: ULONG [
+ DeviceConnected set_DeviceConnected[0..1],
+ DeviceStarted set_DeviceStarted[1..2],
+]}
+pub type PUSB_DEVICE_STATE = *mut USB_DEVICE_STATE;
+STRUCT!{#[repr(packed)] struct USB_HUB_PORT_INFORMATION {
+ DeviceState: USB_DEVICE_STATE,
+ PortNumber: USHORT,
+ DeviceAddress: USHORT,
+ ConnectionIndex: ULONG,
+ ConnectionStatus: USB_CONNECTION_STATUS,
+}}
+pub type PUSB_HUB_PORT_INFORMATION = *mut USB_HUB_PORT_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_HUB_DEVICE_INFO {
+ HubDescriptor: USB_HUB_DESCRIPTOR,
+ HubNumber: ULONG,
+ DeviceAddress: USHORT,
+ HubIsSelfPowered: BOOLEAN,
+ HubIsRootHub: BOOLEAN,
+ HubCapabilities: USB_HUB_CAPABILITIES,
+ NumberOfHubPorts: ULONG,
+ PortInfo: [USB_HUB_PORT_INFORMATION; 1],
+}}
+pub type PUSB_HUB_DEVICE_INFO = *mut USB_HUB_DEVICE_INFO;
+STRUCT!{#[repr(packed)] struct USB_COMPOSITE_FUNCTION_INFO {
+ FunctionNumber: UCHAR,
+ BaseInterfaceNumber: UCHAR,
+ NumberOfInterfaces: UCHAR,
+ FunctionIsIdle: BOOLEAN,
+}}
+pub type PUSB_COMPOSITE_FUNCTION_INFO = *mut USB_COMPOSITE_FUNCTION_INFO;
+STRUCT!{#[repr(packed)] struct USB_COMPOSITE_DEVICE_INFO {
+ DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
+ CurrentConfigDescriptor: USB_CONFIGURATION_DESCRIPTOR,
+ CurrentConfigurationValue: UCHAR,
+ NumberOfFunctions: UCHAR,
+ FunctionInfo: [USB_COMPOSITE_FUNCTION_INFO; 1],
+}}
+pub type PUSB_COMPOSITE_DEVICE_INFO = *mut USB_COMPOSITE_DEVICE_INFO;
+STRUCT!{#[repr(packed)] struct USB_CONTROLLER_DEVICE_INFO {
+ PciVendorId: ULONG,
+ PciDeviceId: ULONG,
+ PciRevision: ULONG,
+ NumberOfRootPorts: ULONG,
+ HcFeatureFlags: ULONG,
+}}
+pub type PUSB_CONTROLLER_DEVICE_INFO = *mut USB_CONTROLLER_DEVICE_INFO;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_INFO {
+ DeviceState: USB_DEVICE_STATE,
+ PortNumber: USHORT,
+ DeviceDescriptor: USB_DEVICE_DESCRIPTOR,
+ CurrentConfigurationValue: UCHAR,
+ Speed: USB_DEVICE_SPEED,
+ DeviceAddress: USHORT,
+ ConnectionIndex: ULONG,
+ ConnectionStatus: USB_CONNECTION_STATUS,
+ PnpHardwareId: [WCHAR; 128],
+ PnpCompatibleId: [WCHAR; 128],
+ SerialNumberId: [WCHAR; 128],
+ PnpDeviceDescription: [WCHAR; 128],
+ NumberOfOpenPipes: ULONG,
+ PipeList: [USB_PIPE_INFO; 1],
+}}
+pub type PUSB_DEVICE_INFO = *mut USB_DEVICE_INFO;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_NODE_INFO {
+ Sig: ULONG,
+ LengthInBytes: ULONG,
+ DeviceDescription: [WCHAR; 40],
+ NodeType: USB_WMI_DEVICE_NODE_TYPE,
+ BusAddress: USB_TOPOLOGY_ADDRESS,
+ u: USB_DEVICE_NODE_INFO_u,
+}}
+UNION!{union USB_DEVICE_NODE_INFO_u {
+ [u8; 1078],
+ UsbDeviceInfo UsbDeviceInfo_mut: USB_DEVICE_INFO,
+ HubDeviceInfo HubDeviceInfo_mut: USB_HUB_DEVICE_INFO,
+ CompositeDeviceInfo CompositeDeviceInfo_mut: USB_COMPOSITE_DEVICE_INFO,
+ ControllerDeviceInfo ControllerDeviceInfo_mut: USB_CONTROLLER_DEVICE_INFO,
+ DeviceInformation DeviceInformation_mut: [UCHAR; 4],
+}}
+pub type PUSB_DEVICE_NODE_INFO = *mut USB_DEVICE_NODE_INFO;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_PERFORMANCE_INFO {
+ BulkBytes: ULONG,
+ ControlDataBytes: ULONG,
+ IsoBytes: ULONG,
+ InterruptBytes: ULONG,
+ BulkUrbCount: ULONG,
+ ControlUrbCount: ULONG,
+ IsoUrbCount: ULONG,
+ InterruptUrbCount: ULONG,
+ AllocedInterrupt: [ULONG; 6],
+ AllocedIso: ULONG,
+ Total32secBandwidth: ULONG,
+ TotalTtBandwidth: ULONG,
+ DeviceDescription: [WCHAR; 60],
+ DeviceSpeed: USB_DEVICE_SPEED,
+ TotalIsoLatency: ULONG,
+ DroppedIsoPackets: ULONG,
+ TransferErrors: ULONG,
+ PciInterruptCount: ULONG,
+ HcIdleState: ULONG,
+ HcAsyncIdleState: ULONG,
+ HcAsyncCacheFlushCount: ULONG,
+ HcPeriodicIdleState: ULONG,
+ HcPeriodicCacheFlushCount: ULONG,
+}}
+pub type PUSB_DEVICE_PERFORMANCE_INFO = *mut USB_DEVICE_PERFORMANCE_INFO;
+ENUM!{enum USB_HUB_TYPE {
+ UsbRootHub = 1,
+ Usb20Hub = 2,
+ Usb30Hub = 3,
+}}
+STRUCT!{#[repr(packed)] struct USB_HUB_INFORMATION_EX {
+ HubType: USB_HUB_TYPE,
+ HighestPortNumber: USHORT,
+ u: USB_HUB_INFORMATION_EX_u,
+}}
+UNION!{union USB_HUB_INFORMATION_EX_u {
+ [u8; 71],
+ UsbHubDescriptor UsbHubDescriptor_mut: USB_HUB_DESCRIPTOR,
+ Usb30HubDescriptor Usb30HubDescriptor_mut: USB_30_HUB_DESCRIPTOR,
+}}
+pub type PUSB_HUB_INFORMATION_EX = *mut USB_HUB_INFORMATION_EX;
+STRUCT!{#[repr(packed)] struct USB_PORT_PROPERTIES {
+ ul: ULONG,
+}}
+BITFIELD!{USB_PORT_PROPERTIES ul: ULONG [
+ PortIsUserConnectable set_PortIsUserConnectable[0..1],
+ PortIsDebugCapable set_PortIsDebugCapable[1..2],
+ PortHasMultipleCompanions set_PortHasMultipleCompanions[2..3],
+ PortConnectorIsTypeC set_PortConnectorIsTypeC[3..4],
+ ReservedMBZ set_ReservedMBZ[4..32],
+]}
+pub type PUSB_PORT_PROPERTIES = *mut USB_PORT_PROPERTIES;
+STRUCT!{#[repr(packed)] struct USB_PORT_CONNECTOR_PROPERTIES {
+ ConnectionIndex: ULONG,
+ ActualLength: ULONG,
+ UsbPortProperties: USB_PORT_PROPERTIES,
+ CompanionIndex: USHORT,
+ CompanionPortNumber: USHORT,
+ CompanionHubSymbolicLinkName: [WCHAR; 1],
+}}
+pub type PUSB_PORT_CONNECTOR_PROPERTIES = *mut USB_PORT_CONNECTOR_PROPERTIES;
+STRUCT!{#[repr(packed)] struct USB_PROTOCOLS {
+ ul: ULONG,
+}}
+BITFIELD!{USB_PROTOCOLS ul: ULONG [
+ Usb110 set_Usb110[0..1],
+ Usb200 set_Usb200[1..2],
+ Usb300 set_Usb300[2..3],
+ ReservedMBZ set_ReservedMBZ[3..32],
+]}
+pub type PUSB_PROTOCOLS = *mut USB_PROTOCOLS;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS {
+ ul: ULONG,
+}}
+BITFIELD!{USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS ul: ULONG [
+ DeviceIsOperatingAtSuperSpeedOrHigher set_DeviceIsOperatingAtSuperSpeedOrHigher[0..1],
+ DeviceIsSuperSpeedCapableOrHigher set_DeviceIsSuperSpeedCapableOrHigher[1..2],
+ DeviceIsOperatingAtSuperSpeedPlusOrHigher set_DeviceIsOperatingAtSuperSpeedPlusOrHigher[2..3],
+ DeviceIsSuperSpeedPlusCapableOrHigher set_DeviceIsSuperSpeedPlusCapableOrHigher[3..4],
+ ReservedMBZ set_ReservedMBZ[4..32],
+]}
+pub type PUSB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS
+ = *mut USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS;
+STRUCT!{#[repr(packed)] struct USB_NODE_CONNECTION_INFORMATION_EX_V2 {
+ ConnectionIndex: ULONG,
+ Length: ULONG,
+ SupportedUsbProtocols: USB_PROTOCOLS,
+ Flags: USB_NODE_CONNECTION_INFORMATION_EX_V2_FLAGS,
+}}
+pub type PUSB_NODE_CONNECTION_INFORMATION_EX_V2 = *mut USB_NODE_CONNECTION_INFORMATION_EX_V2;
+pub const USB_TRANSPORT_CHARACTERISTICS_VERSION_1: ULONG = 0x01;
+pub const USB_TRANSPORT_CHARACTERISTICS_LATENCY_AVAILABLE: ULONG = 0x1;
+pub const USB_TRANSPORT_CHARACTERISTICS_BANDWIDTH_AVAILABLE: ULONG = 0x2;
+STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS {
+ Version: ULONG,
+ TransportCharacteristicsFlags: ULONG,
+ CurrentRoundtripLatencyInMilliSeconds: ULONG64,
+ MaxPotentialBandwidth: ULONG64,
+}}
+pub type PUSB_TRANSPORT_CHARACTERISTICS = *mut USB_TRANSPORT_CHARACTERISTICS;
+pub const USB_REGISTER_FOR_TRANSPORT_LATENCY_CHANGE: ULONG = 0x1;
+pub const USB_REGISTER_FOR_TRANSPORT_BANDWIDTH_CHANGE: ULONG = 0x2;
+DECLARE_HANDLE!(USB_CHANGE_REGISTRATION_HANDLE, USB_CHANGE_REGISTRATION_HANDLE__);
+STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION {
+ ChangeNotificationInputFlags: ULONG,
+ Handle: USB_CHANGE_REGISTRATION_HANDLE,
+ UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS,
+}}
+pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION
+ = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_REGISTRATION;
+STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION {
+ Handle: USB_CHANGE_REGISTRATION_HANDLE,
+ UsbTransportCharacteristics: USB_TRANSPORT_CHARACTERISTICS,
+}}
+pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION
+ = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_NOTIFICATION;
+STRUCT!{#[repr(packed)] struct USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION {
+ Handle: USB_CHANGE_REGISTRATION_HANDLE,
+}}
+pub type PUSB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION
+ = *mut USB_TRANSPORT_CHARACTERISTICS_CHANGE_UNREGISTRATION;
+pub const USB_DEVICE_CHARACTERISTICS_VERSION_1: ULONG = 0x01;
+pub const USB_DEVICE_CHARACTERISTICS_MAXIMUM_PATH_DELAYS_AVAILABLE: ULONG = 0x1;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CHARACTERISTICS {
+ Version: ULONG,
+ Reserved: [ULONG; 2],
+ UsbDeviceCharacteristicsFlags: ULONG,
+ MaximumSendPathDelayInMilliSeconds: ULONG,
+ MaximumCompletionPathDelayInMilliSeconds: ULONG,
+}}
+pub type PUSB_DEVICE_CHARACTERISTICS = *mut USB_DEVICE_CHARACTERISTICS;
+STRUCT!{#[repr(packed)] struct USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION {
+ TimeTrackingHandle: HANDLE,
+ IsStartupDelayTolerable: BOOLEAN,
+}}
+pub type PUSB_START_TRACKING_FOR_TIME_SYNC_INFORMATION
+ = *mut USB_START_TRACKING_FOR_TIME_SYNC_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION {
+ TimeTrackingHandle: HANDLE,
+}}
+pub type PUSB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION
+ = *mut USB_STOP_TRACKING_FOR_TIME_SYNC_INFORMATION;
+STRUCT!{#[repr(packed)] struct USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION {
+ TimeTrackingHandle: HANDLE,
+ InputFrameNumber: ULONG,
+ InputMicroFrameNumber: ULONG,
+ QueryPerformanceCounterAtInputFrameOrMicroFrame: LARGE_INTEGER,
+ QueryPerformanceCounterFrequency: LARGE_INTEGER,
+ PredictedAccuracyInMicroSeconds: ULONG,
+ CurrentGenerationID: ULONG,
+ CurrentQueryPerformanceCounter: LARGE_INTEGER,
+ CurrentHardwareFrameNumber: ULONG,
+ CurrentHardwareMicroFrameNumber: ULONG,
+ CurrentUSBFrameNumber: ULONG,
+}}
+pub type PUSB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION
+ = *mut USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION;
diff --git a/third_party/rust/winapi/src/shared/usbiodef.rs b/third_party/rust/winapi/src/shared/usbiodef.rs
new file mode 100644
index 0000000000..8fcde38c56
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/usbiodef.rs
@@ -0,0 +1,120 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+//! Common header file for all USB IOCTLs defined for
+//! the core stack. We define them in this single header file
+//! so that we can maintain backward compatibilty with older
+//! versions of the stack.
+use shared::guiddef::GUID;
+use shared::minwindef::ULONG;
+use um::winioctl::{FILE_ANY_ACCESS, FILE_DEVICE_UNKNOWN, METHOD_BUFFERED, METHOD_NEITHER};
+use um::winnt::PVOID;
+pub const USB_SUBMIT_URB: ULONG = 0;
+pub const USB_RESET_PORT: ULONG = 1;
+pub const USB_GET_ROOTHUB_PDO: ULONG = 3;
+pub const USB_GET_PORT_STATUS: ULONG = 4;
+pub const USB_ENABLE_PORT: ULONG = 5;
+pub const USB_GET_HUB_COUNT: ULONG = 6;
+pub const USB_CYCLE_PORT: ULONG = 7;
+pub const USB_GET_HUB_NAME: ULONG = 8;
+pub const USB_IDLE_NOTIFICATION: ULONG = 9;
+pub const USB_RECORD_FAILURE: ULONG = 10;
+pub const USB_GET_BUS_INFO: ULONG = 264;
+pub const USB_GET_CONTROLLER_NAME: ULONG = 265;
+pub const USB_GET_BUSGUID_INFO: ULONG = 266;
+pub const USB_GET_PARENT_HUB_INFO: ULONG = 267;
+pub const USB_GET_DEVICE_HANDLE: ULONG = 268;
+pub const USB_GET_DEVICE_HANDLE_EX: ULONG = 269;
+pub const USB_GET_TT_DEVICE_HANDLE: ULONG = 270;
+pub const USB_GET_TOPOLOGY_ADDRESS: ULONG = 271;
+pub const USB_IDLE_NOTIFICATION_EX: ULONG = 272;
+pub const USB_REQ_GLOBAL_SUSPEND: ULONG = 273;
+pub const USB_REQ_GLOBAL_RESUME: ULONG = 274;
+pub const USB_GET_HUB_CONFIG_INFO: ULONG = 275;
+pub const USB_FAIL_GET_STATUS: ULONG = 280;
+pub const USB_REGISTER_COMPOSITE_DEVICE: ULONG = 0;
+pub const USB_UNREGISTER_COMPOSITE_DEVICE: ULONG = 1;
+pub const USB_REQUEST_REMOTE_WAKE_NOTIFICATION: ULONG = 2;
+pub const HCD_GET_STATS_1: ULONG = 255;
+pub const HCD_DIAGNOSTIC_MODE_ON: ULONG = 256;
+pub const HCD_DIAGNOSTIC_MODE_OFF: ULONG = 257;
+pub const HCD_GET_ROOT_HUB_NAME: ULONG = 258;
+pub const HCD_GET_DRIVERKEY_NAME: ULONG = 265;
+pub const HCD_GET_STATS_2: ULONG = 266;
+pub const HCD_DISABLE_PORT: ULONG = 268;
+pub const HCD_ENABLE_PORT: ULONG = 269;
+pub const HCD_USER_REQUEST: ULONG = 270;
+pub const HCD_TRACE_READ_REQUEST: ULONG = 275;
+pub const USB_GET_NODE_INFORMATION: ULONG = 258;
+pub const USB_GET_NODE_CONNECTION_INFORMATION: ULONG = 259;
+pub const USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION: ULONG = 260;
+pub const USB_GET_NODE_CONNECTION_NAME: ULONG = 261;
+pub const USB_DIAG_IGNORE_HUBS_ON: ULONG = 262;
+pub const USB_DIAG_IGNORE_HUBS_OFF: ULONG = 263;
+pub const USB_GET_NODE_CONNECTION_DRIVERKEY_NAME: ULONG = 264;
+pub const USB_GET_HUB_CAPABILITIES: ULONG = 271;
+pub const USB_GET_NODE_CONNECTION_ATTRIBUTES: ULONG = 272;
+pub const USB_HUB_CYCLE_PORT: ULONG = 273;
+pub const USB_GET_NODE_CONNECTION_INFORMATION_EX: ULONG = 274;
+pub const USB_RESET_HUB: ULONG = 275;
+pub const USB_GET_HUB_CAPABILITIES_EX: ULONG = 276;
+pub const USB_GET_HUB_INFORMATION_EX: ULONG = 277;
+pub const USB_GET_PORT_CONNECTOR_PROPERTIES: ULONG = 278;
+pub const USB_GET_NODE_CONNECTION_INFORMATION_EX_V2: ULONG = 279;
+pub const USB_GET_TRANSPORT_CHARACTERISTICS: ULONG = 281;
+pub const USB_REGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: ULONG = 282;
+pub const USB_NOTIFY_ON_TRANSPORT_CHARACTERISTICS_CHANGE: ULONG = 283;
+pub const USB_UNREGISTER_FOR_TRANSPORT_CHARACTERISTICS_CHANGE: ULONG = 284;
+pub const USB_START_TRACKING_FOR_TIME_SYNC: ULONG = 285;
+pub const USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC: ULONG = 286;
+pub const USB_STOP_TRACKING_FOR_TIME_SYNC: ULONG = 287;
+pub const USB_GET_DEVICE_CHARACTERISTICS: ULONG = 288;
+DEFINE_GUID!{GUID_DEVINTERFACE_USB_HUB,
+ 0xf18a0e88, 0xc30c, 0x11d0, 0x88, 0x15, 0x00, 0xa0, 0xc9, 0x06, 0xbe, 0xd8}
+DEFINE_GUID!{GUID_DEVINTERFACE_USB_DEVICE,
+ 0xA5DCBF10, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED}
+DEFINE_GUID!{GUID_DEVINTERFACE_USB_HOST_CONTROLLER,
+ 0x3abf6f2d, 0x71c4, 0x462a, 0x8a, 0x92, 0x1e, 0x68, 0x61, 0xe6, 0xaf, 0x27}
+DEFINE_GUID!{GUID_USB_WMI_STD_DATA,
+ 0x4E623B20, 0xCB14, 0x11D1, 0xB3, 0x31, 0x00, 0xA0, 0xC9, 0x59, 0xBB, 0xD2}
+DEFINE_GUID!{GUID_USB_WMI_STD_NOTIFICATION,
+ 0x4E623B20, 0xCB14, 0x11D1, 0xB3, 0x31, 0x00, 0xA0, 0xC9, 0x59, 0xBB, 0xD2}
+DEFINE_GUID!{GUID_USB_WMI_DEVICE_PERF_INFO,
+ 0x66c1aa3c, 0x499f, 0x49a0, 0xa9, 0xa5, 0x61, 0xe2, 0x35, 0x9f, 0x64, 0x7}
+DEFINE_GUID!{GUID_USB_WMI_NODE_INFO,
+ 0x9c179357, 0xdc7a, 0x4f41, 0xb6, 0x6b, 0x32, 0x3b, 0x9d, 0xdc, 0xb5, 0xb1}
+DEFINE_GUID!{GUID_USB_WMI_TRACING,
+ 0x3a61881b, 0xb4e6, 0x4bf9, 0xae, 0xf, 0x3c, 0xd8, 0xf3, 0x94, 0xe5, 0x2f}
+DEFINE_GUID!{GUID_USB_TRANSFER_TRACING,
+ 0x681eb8aa, 0x403d, 0x452c, 0x9f, 0x8a, 0xf0, 0x61, 0x6f, 0xac, 0x95, 0x40}
+DEFINE_GUID!{GUID_USB_PERFORMANCE_TRACING,
+ 0xd5de77a6, 0x6ae9, 0x425c, 0xb1, 0xe2, 0xf5, 0x61, 0x5f, 0xd3, 0x48, 0xa9}
+DEFINE_GUID!{GUID_USB_WMI_SURPRISE_REMOVAL_NOTIFICATION,
+ 0x9bbbf831, 0xa2f2, 0x43b4, 0x96, 0xd1, 0x86, 0x94, 0x4b, 0x59, 0x14, 0xb3}
+pub const GUID_CLASS_USBHUB: GUID = GUID_DEVINTERFACE_USB_HUB;
+pub const GUID_CLASS_USB_DEVICE: GUID = GUID_DEVINTERFACE_USB_DEVICE;
+pub const GUID_CLASS_USB_HOST_CONTROLLER: GUID = GUID_DEVINTERFACE_USB_HOST_CONTROLLER;
+pub const FILE_DEVICE_USB: ULONG = FILE_DEVICE_UNKNOWN;
+#[inline]
+pub fn USB_CTL(id: ULONG) -> ULONG {
+ CTL_CODE!(FILE_DEVICE_USB, id, METHOD_BUFFERED, FILE_ANY_ACCESS)
+}
+#[inline]
+pub fn USB_KERNEL_CTL(id: ULONG) -> ULONG {
+ CTL_CODE!(FILE_DEVICE_USB, id, METHOD_NEITHER, FILE_ANY_ACCESS)
+}
+#[inline]
+pub fn USB_KERNEL_CTL_BUFFERED(id: ULONG) -> ULONG {
+ CTL_CODE!(FILE_DEVICE_USB, id, METHOD_BUFFERED, FILE_ANY_ACCESS)
+}
+// No calling convention was specified in the code
+FN!{stdcall USB_IDLE_CALLBACK(
+ Context: PVOID,
+) -> ()}
+STRUCT!{struct USB_IDLE_CALLBACK_INFO {
+ IdleCallback: USB_IDLE_CALLBACK,
+ IdleContext: PVOID,
+}}
+pub type PUSB_IDLE_CALLBACK_INFO = *mut USB_IDLE_CALLBACK_INFO;
diff --git a/third_party/rust/winapi/src/shared/usbscan.rs b/third_party/rust/winapi/src/shared/usbscan.rs
new file mode 100644
index 0000000000..f5c71625ca
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/usbscan.rs
@@ -0,0 +1,21 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms
+use shared::ntdef::{ULONG, USHORT};
+use um::winioctl::{FILE_ANY_ACCESS, METHOD_BUFFERED};
+//98
+STRUCT!{struct DEVICE_DESCRIPTOR {
+ usVendorId: USHORT,
+ usProductId: USHORT,
+ usBcdDevice: USHORT,
+ usLanguageId: USHORT,
+}}
+pub type PDEVICE_DESCRIPTOR = *mut DEVICE_DESCRIPTOR;
+//132
+pub const FILE_DEVICE_USB_SCAN: ULONG = 0x8000;
+pub const IOCTL_INDEX: ULONG = 0x0800;
+//143
+pub const IOCTL_GET_USB_DESCRIPTOR: ULONG
+ = CTL_CODE!(FILE_DEVICE_USB_SCAN, IOCTL_INDEX + 8, METHOD_BUFFERED, FILE_ANY_ACCESS);
diff --git a/third_party/rust/winapi/src/shared/usbspec.rs b/third_party/rust/winapi/src/shared/usbspec.rs
new file mode 100644
index 0000000000..5fae43efdd
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/usbspec.rs
@@ -0,0 +1,860 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! USB Spec Definitions.
+use shared::basetsd::ULONG64;
+use shared::guiddef::GUID;
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use um::winnt::WCHAR;
+ENUM!{enum USB_DEVICE_SPEED {
+ UsbLowSpeed = 0,
+ UsbFullSpeed,
+ UsbHighSpeed,
+ UsbSuperSpeed,
+}}
+ENUM!{enum USB_DEVICE_TYPE {
+ Usb11Device = 0,
+ Usb20Device,
+}}
+STRUCT!{#[repr(packed)] struct BM_REQUEST_TYPE {
+ B: UCHAR,
+}}
+BITFIELD!{BM_REQUEST_TYPE B: UCHAR [
+ Recipient set_Recipient[0..2],
+ Reserved set_Reserved[2..5],
+ Type set_Type[5..7],
+ Dir set_Dir[7..8],
+]}
+pub type PBM_REQUEST_TYPE = *mut BM_REQUEST_TYPE;
+STRUCT!{#[repr(packed)] struct USB_DEFAULT_PIPE_SETUP_PACKET_wValue_s {
+ LowByte: UCHAR,
+ HiByte: UCHAR,
+}}
+UNION!{#[repr(packed)] union USB_DEFAULT_PIPE_SETUP_PACKET_wValue {
+ [u16; 1],
+ s s_mut: USB_DEFAULT_PIPE_SETUP_PACKET_wValue_s,
+ W W_mut: USHORT,
+}}
+STRUCT!{#[repr(packed)] struct USB_DEFAULT_PIPE_SETUP_PACKET_wIndex_s {
+ LowByte: UCHAR,
+ HiByte: UCHAR,
+}}
+UNION!{#[repr(packed)] union USB_DEFAULT_PIPE_SETUP_PACKET_wIndex {
+ [u16; 1],
+ s s_mut: USB_DEFAULT_PIPE_SETUP_PACKET_wIndex_s,
+ W W_mut: USHORT,
+}}
+STRUCT!{#[repr(packed)] struct USB_DEFAULT_PIPE_SETUP_PACKET {
+ bmRequestType: BM_REQUEST_TYPE,
+ bRequest: UCHAR,
+ wValue: USB_DEFAULT_PIPE_SETUP_PACKET_wValue,
+ wIndex: USB_DEFAULT_PIPE_SETUP_PACKET_wIndex,
+ wLength: USHORT,
+}}
+pub type PUSB_DEFAULT_PIPE_SETUP_PACKET = *mut USB_DEFAULT_PIPE_SETUP_PACKET;
+pub const BMREQUEST_HOST_TO_DEVICE: UCHAR = 0;
+pub const BMREQUEST_DEVICE_TO_HOST: UCHAR = 1;
+pub const BMREQUEST_STANDARD: UCHAR = 0;
+pub const BMREQUEST_CLASS: UCHAR = 1;
+pub const BMREQUEST_VENDOR: UCHAR = 2;
+pub const BMREQUEST_TO_DEVICE: UCHAR = 0;
+pub const BMREQUEST_TO_INTERFACE: UCHAR = 1;
+pub const BMREQUEST_TO_ENDPOINT: UCHAR = 2;
+pub const BMREQUEST_TO_OTHER: UCHAR = 3;
+#[inline]
+pub fn USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d: UCHAR, i: UCHAR) -> USHORT {
+ (d as USHORT) << 8 | (i as USHORT)
+}
+pub const USB_REQUEST_GET_STATUS: UCHAR = 0x00;
+pub const USB_REQUEST_CLEAR_FEATURE: UCHAR = 0x01;
+pub const USB_REQUEST_SET_FEATURE: UCHAR = 0x03;
+pub const USB_REQUEST_SET_ADDRESS: UCHAR = 0x05;
+pub const USB_REQUEST_GET_DESCRIPTOR: UCHAR = 0x06;
+pub const USB_REQUEST_SET_DESCRIPTOR: UCHAR = 0x07;
+pub const USB_REQUEST_GET_CONFIGURATION: UCHAR = 0x08;
+pub const USB_REQUEST_SET_CONFIGURATION: UCHAR = 0x09;
+pub const USB_REQUEST_GET_INTERFACE: UCHAR = 0x0A;
+pub const USB_REQUEST_SET_INTERFACE: UCHAR = 0x0B;
+pub const USB_REQUEST_SYNC_FRAME: UCHAR = 0x0C;
+pub const USB_REQUEST_SET_SEL: UCHAR = 0x30;
+pub const USB_REQUEST_ISOCH_DELAY: UCHAR = 0x31;
+pub const USB_DEVICE_DESCRIPTOR_TYPE: UCHAR = 0x01;
+pub const USB_CONFIGURATION_DESCRIPTOR_TYPE: UCHAR = 0x02;
+pub const USB_STRING_DESCRIPTOR_TYPE: UCHAR = 0x03;
+pub const USB_INTERFACE_DESCRIPTOR_TYPE: UCHAR = 0x04;
+pub const USB_ENDPOINT_DESCRIPTOR_TYPE: UCHAR = 0x05;
+pub const USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE: UCHAR = 0x06;
+pub const USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE: UCHAR = 0x07;
+pub const USB_INTERFACE_POWER_DESCRIPTOR_TYPE: UCHAR = 0x08;
+pub const USB_OTG_DESCRIPTOR_TYPE: UCHAR = 0x09;
+pub const USB_DEBUG_DESCRIPTOR_TYPE: UCHAR = 0x0A;
+pub const USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE: UCHAR = 0x0B;
+pub const USB_BOS_DESCRIPTOR_TYPE: UCHAR = 0x0F;
+pub const USB_DEVICE_CAPABILITY_DESCRIPTOR_TYPE: UCHAR = 0x10;
+pub const USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: UCHAR = 0x30;
+pub const USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR_TYPE: UCHAR = 0x31;
+pub const USB_RESERVED_DESCRIPTOR_TYPE: UCHAR = 0x06;
+pub const USB_CONFIG_POWER_DESCRIPTOR_TYPE: UCHAR = 0x07;
+pub const USB_FEATURE_ENDPOINT_STALL: UCHAR = 0x00;
+pub const USB_FEATURE_REMOTE_WAKEUP: UCHAR = 0x01;
+pub const USB_FEATURE_TEST_MODE: UCHAR = 0x02;
+pub const USB_FEATURE_FUNCTION_SUSPEND: UCHAR = 0x00;
+pub const USB_FEATURE_U1_ENABLE: UCHAR = 0x30;
+pub const USB_FEATURE_U2_ENABLE: UCHAR = 0x31;
+pub const USB_FEATURE_LTM_ENABLE: UCHAR = 0x32;
+pub const USB_FEATURE_LDM_ENABLE: UCHAR = 0x35;
+pub const USB_FEATURE_BATTERY_WAKE_MASK: UCHAR = 0x28;
+pub const USB_FEATURE_OS_IS_PD_AWARE: UCHAR = 0x29;
+pub const USB_FEATURE_POLICY_MODE: UCHAR = 0x2A;
+pub const USB_FEATURE_CHARGING_POLICY: UCHAR = 0x36;
+pub const USB_CHARGING_POLICY_DEFAULT: UCHAR = 0x00;
+pub const USB_CHARGING_POLICY_ICCHPF: UCHAR = 0x01;
+pub const USB_CHARGING_POLICY_ICCLPF: UCHAR = 0x02;
+pub const USB_CHARGING_POLICY_NO_POWER: UCHAR = 0x03;
+pub const USB_STATUS_PORT_STATUS: UCHAR = 0x00;
+pub const USB_STATUS_PD_STATUS: UCHAR = 0x01;
+pub const USB_STATUS_EXT_PORT_STATUS: UCHAR = 0x02;
+pub const USB_GETSTATUS_SELF_POWERED: UCHAR = 0x01;
+pub const USB_GETSTATUS_REMOTE_WAKEUP_ENABLED: UCHAR = 0x02;
+pub const USB_GETSTATUS_U1_ENABLE: UCHAR = 0x04;
+pub const USB_GETSTATUS_U2_ENABLE: UCHAR = 0x08;
+pub const USB_GETSTATUS_LTM_ENABLE: UCHAR = 0x10;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_DEVICE_STATUS AsUshort16: USHORT [
+ SelfPowered set_SelfPowered[0..1],
+ RemoteWakeup set_RemoteWakeup[1..2],
+ U1Enable set_U1Enable[2..3],
+ U2Enable set_U2Enable[3..4],
+ LtmEnable set_LtmEnable[4..5],
+ Reserved set_Reserved[5..16],
+]}
+pub type PUSB_DEVICE_STATUS = *mut USB_DEVICE_STATUS;
+STRUCT!{#[repr(packed)] struct USB_INTERFACE_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_INTERFACE_STATUS AsUshort16: USHORT [
+ RemoteWakeupCapable set_RemoteWakeupCapable[0..1],
+ RemoteWakeupEnabled set_RemoteWakeupEnabled[1..2],
+ Reserved set_Reserved[2..16],
+]}
+pub type PUSB_INTERFACE_STATUS = *mut USB_INTERFACE_STATUS;
+STRUCT!{#[repr(packed)] struct USB_ENDPOINT_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_ENDPOINT_STATUS AsUshort16: USHORT [
+ Halt set_Halt[0..1],
+ Reserved set_Reserved[1..16],
+]}
+pub type PUSB_ENDPOINT_STATUS = *mut USB_ENDPOINT_STATUS;
+STRUCT!{#[repr(packed)] struct USB_COMMON_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+}}
+pub type PUSB_COMMON_DESCRIPTOR = *mut USB_COMMON_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bcdUSB: USHORT,
+ bDeviceClass: UCHAR,
+ bDeviceSubClass: UCHAR,
+ bDeviceProtocol: UCHAR,
+ bMaxPacketSize0: UCHAR,
+ idVendor: USHORT,
+ idProduct: USHORT,
+ bcdDevice: USHORT,
+ iManufacturer: UCHAR,
+ iProduct: UCHAR,
+ iSerialNumber: UCHAR,
+ bNumConfigurations: UCHAR,
+}}
+pub type PUSB_DEVICE_DESCRIPTOR = *mut USB_DEVICE_DESCRIPTOR;
+pub const USB_DEVICE_CLASS_RESERVED: UCHAR = 0x00;
+pub const USB_DEVICE_CLASS_AUDIO: UCHAR = 0x01;
+pub const USB_DEVICE_CLASS_COMMUNICATIONS: UCHAR = 0x02;
+pub const USB_DEVICE_CLASS_HUMAN_INTERFACE: UCHAR = 0x03;
+pub const USB_DEVICE_CLASS_MONITOR: UCHAR = 0x04;
+pub const USB_DEVICE_CLASS_PHYSICAL_INTERFACE: UCHAR = 0x05;
+pub const USB_DEVICE_CLASS_POWER: UCHAR = 0x06;
+pub const USB_DEVICE_CLASS_IMAGE: UCHAR = 0x06;
+pub const USB_DEVICE_CLASS_PRINTER: UCHAR = 0x07;
+pub const USB_DEVICE_CLASS_STORAGE: UCHAR = 0x08;
+pub const USB_DEVICE_CLASS_HUB: UCHAR = 0x09;
+pub const USB_DEVICE_CLASS_CDC_DATA: UCHAR = 0x0A;
+pub const USB_DEVICE_CLASS_SMART_CARD: UCHAR = 0x0B;
+pub const USB_DEVICE_CLASS_CONTENT_SECURITY: UCHAR = 0x0D;
+pub const USB_DEVICE_CLASS_VIDEO: UCHAR = 0x0E;
+pub const USB_DEVICE_CLASS_PERSONAL_HEALTHCARE: UCHAR = 0x0F;
+pub const USB_DEVICE_CLASS_AUDIO_VIDEO: UCHAR = 0x10;
+pub const USB_DEVICE_CLASS_BILLBOARD: UCHAR = 0x11;
+pub const USB_DEVICE_CLASS_DIAGNOSTIC_DEVICE: UCHAR = 0xDC;
+pub const USB_DEVICE_CLASS_WIRELESS_CONTROLLER: UCHAR = 0xE0;
+pub const USB_DEVICE_CLASS_MISCELLANEOUS: UCHAR = 0xEF;
+pub const USB_DEVICE_CLASS_APPLICATION_SPECIFIC: UCHAR = 0xFE;
+pub const USB_DEVICE_CLASS_VENDOR_SPECIFIC: UCHAR = 0xFF;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_QUALIFIER_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bcdUSB: USHORT,
+ bDeviceClass: UCHAR,
+ bDeviceSubClass: UCHAR,
+ bDeviceProtocol: UCHAR,
+ bMaxPacketSize0: UCHAR,
+ bNumConfigurations: UCHAR,
+ bReserved: UCHAR,
+}}
+pub type PUSB_DEVICE_QUALIFIER_DESCRIPTOR = *mut USB_DEVICE_QUALIFIER_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_BOS_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ wTotalLength: USHORT,
+ bNumDeviceCaps: UCHAR,
+}}
+pub type PUSB_BOS_DESCRIPTOR = *mut USB_BOS_DESCRIPTOR;
+pub const USB_DEVICE_CAPABILITY_WIRELESS_USB: UCHAR = 0x01;
+pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION: UCHAR = 0x02;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_USB: UCHAR = 0x03;
+pub const USB_DEVICE_CAPABILITY_CONTAINER_ID: UCHAR = 0x04;
+pub const USB_DEVICE_CAPABILITY_PLATFORM: UCHAR = 0x05;
+pub const USB_DEVICE_CAPABILITY_POWER_DELIVERY: UCHAR = 0x06;
+pub const USB_DEVICE_CAPABILITY_BATTERY_INFO: UCHAR = 0x07;
+pub const USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT: UCHAR = 0x08;
+pub const USB_DEVICE_CAPABILITY_PD_PROVIDER_PORT: UCHAR = 0x09;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB: UCHAR = 0x0A;
+pub const USB_DEVICE_CAPABILITY_PRECISION_TIME_MEASUREMENT: UCHAR = 0x0B;
+pub const USB_DEVICE_CAPABILITY_BILLBOARD: UCHAR = 0x0D;
+pub const USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY: UCHAR = 0x10;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_bmAttributes {
+ AsUlong: ULONG,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_bmAttributes AsUlong: ULONG [
+ Reserved set_Reserved[0..1],
+ LPMCapable set_LPMCapable[1..2],
+ BESLAndAlternateHIRDSupported set_BESLAndAlternateHIRDSupported[2..3],
+ BaselineBESLValid set_BaselineBESLValid[3..4],
+ DeepBESLValid set_DeepBESLValid[4..5],
+ Reserved1 set_Reserved1[5..8],
+ BaselineBESL set_BaselineBESL[8..12],
+ DeepBESL set_DeepBESL[12..16],
+ Reserved2 set_Reserved2[16..32],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bmAttributes: USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR_bmAttributes,
+}}
+pub type PUSB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_USB20_EXTENSION_DESCRIPTOR;
+pub const USB_DEVICE_CAPABILITY_USB20_EXTENSION_BMATTRIBUTES_RESERVED_MASK: ULONG = 0xFFFF00E1;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_bmAttributes {
+ AsUlong: ULONG,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_bmAttributes AsUlong: ULONG [
+ Reserved set_Reserved[0..1],
+ BatteryCharging set_BatteryCharging[1..2],
+ USBPowerDelivery set_USBPowerDelivery[2..3],
+ Provider set_Provider[3..4],
+ Consumer set_Consumer[4..5],
+ ChargingPolicy set_ChargingPolicy[5..6],
+ TypeCCurrent set_TypeCCurrent[6..7],
+ Reserved2 set_Reserved2[7..8],
+ ACSupply set_ACSupply[8..9],
+ Battery set_Battery[9..10],
+ Other set_Other[10..11],
+ NumBatteries set_NumBatteries[11..14],
+ UsesVbus set_UsesVbus[14..15],
+ Reserved3 set_Reserved3[15..32],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bReserved: UCHAR,
+ bmAttributes: USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR_bmAttributes,
+ bmProviderPorts: USHORT,
+ bmConsumerPorts: USHORT,
+ bcdBCVersion: USHORT,
+ bcdPDVersion: USHORT,
+ bcdUSBTypeCVersion: USHORT,
+}}
+pub type PUSB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_POWER_DELIVERY_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_bmCapabilities {
+ AsUshort: USHORT,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_bmCapabilities AsUshort: USHORT [
+ BatteryCharging set_BatteryCharging[0..1],
+ USBPowerDelivery set_USBPowerDelivery[1..2],
+ USBTypeCCurrent set_USBTypeCCurrent[2..3],
+ Reserved set_Reserved[3..16],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bReserved: UCHAR,
+ bmCapabilities: USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR_bmCapabilities,
+ wMinVoltage: USHORT,
+ wMaxVoltage: USHORT,
+ wReserved: USHORT,
+ dwMaxOperatingPower: ULONG,
+ dwMaxPeakPower: ULONG,
+ dwMaxPeakPowerTime: ULONG,
+}}
+pub type PUSB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_PD_CONSUMER_PORT_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bmAttributes: UCHAR,
+ wSpeedsSupported: USHORT,
+ bFunctionalitySupport: UCHAR,
+ bU1DevExitLat: UCHAR,
+ wU2DevExitLat: USHORT,
+}}
+pub type PUSB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_SUPERSPEED_USB_DESCRIPTOR;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_RESERVED_MASK: UCHAR = 0xFD;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_BMATTRIBUTES_LTM_CAPABLE: UCHAR = 0x02;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_RESERVED_MASK: USHORT = 0xFFF0;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_LOW: USHORT = 0x0001;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_FULL: USHORT = 0x0002;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_HIGH: USHORT = 0x0004;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_SPEEDS_SUPPORTED_SUPER: USHORT = 0x0008;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U1_DEVICE_EXIT_MAX_VALUE: UCHAR = 0x0A;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEED_U2_DEVICE_EXIT_MAX_VALUE: USHORT = 0x07FF;
+pub const USB_DEVICE_CAPABILITY_MAX_U1_LATENCY: UCHAR = 0x0A;
+pub const USB_DEVICE_CAPABILITY_MAX_U2_LATENCY: USHORT = 0x07FF;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_BPS: ULONG = 0;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_KBPS: ULONG = 1;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_MBPS: ULONG = 2;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_LSE_GBPS: ULONG = 3;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_SYMMETRIC: ULONG = 0;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_MODE_ASYMMETRIC: ULONG = 1;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_RX: ULONG = 0;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_DIR_TX: ULONG = 1;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SS: ULONG = 0;
+pub const USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED_PROTOCOL_SSP: ULONG = 1;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED {
+ AsUlong32: ULONG,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED AsUlong32: ULONG [
+ SublinkSpeedAttrID set_SublinkSpeedAttrID[0..4],
+ LaneSpeedExponent set_LaneSpeedExponent[4..6],
+ SublinkTypeMode set_SublinkTypeMode[6..7],
+ SublinkTypeDir set_SublinkTypeDir[7..8],
+ Reserved set_Reserved[8..14],
+ LinkProtocol set_LinkProtocol[14..16],
+ LaneSpeedMantissa set_LaneSpeedMantissa[16..32],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_bmAttributes {
+ AsUlong32: ULONG,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_bmAttributes AsUlong32: ULONG [
+ SublinkSpeedAttrCount set_SublinkSpeedAttrCount[0..5],
+ SublinkSpeedIDCount set_SublinkSpeedIDCount[5..9],
+ Reserved set_Reserved[9..32],
+]}
+STRUCT!{#[repr(packed)]
+ struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_wFunctionalitySupport {
+ AsUshort: USHORT,
+}}
+BITFIELD!{
+ USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_wFunctionalitySupport AsUshort: USHORT [
+ SublinkSpeedAttrID set_SublinkSpeedAttrID[0..4],
+ Reserved set_Reserved[4..8],
+ MinRxLaneCount set_MinRxLaneCount[8..12],
+ MinTxLaneCount set_MinTxLaneCount[12..16],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bReserved: UCHAR,
+ bmAttributes: USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_bmAttributes,
+ wFunctionalitySupport:
+ USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR_wFunctionalitySupport,
+ wReserved: USHORT,
+ bmSublinkSpeedAttr: [USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_SPEED; 1],
+}}
+pub type PUSB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_SUPERSPEEDPLUS_USB_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bReserved: UCHAR,
+ ContainerID: [UCHAR; 16],
+}}
+pub type PUSB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_CONTAINER_ID_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR_Function {
+ bClass: UCHAR,
+ bSubClass: UCHAR,
+ bProtocol: UCHAR,
+}}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bcdVersion: USHORT,
+ bConfigurationValue: UCHAR,
+ bMaxPower: UCHAR,
+ bNumFunctions: UCHAR,
+ Function: [USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR_Function; 1],
+}}
+pub type PUSB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_CONFIGURATION_SUMMARY_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ bReserved: UCHAR,
+ PlatformCapabilityUuid: GUID,
+ CapabililityData: [UCHAR; 1],
+}}
+pub type PUSB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_PLATFORM_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_VconnPower {
+ AsUshort: USHORT,
+}}
+BITFIELD!{USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_VconnPower AsUshort: USHORT [
+ VConnPowerNeededForFullFunctionality set_VConnPowerNeededForFullFunctionality[0..3],
+ Reserved set_Reserved[3..15],
+ NoVconnPowerRequired set_NoVconnPowerRequired[15..16],
+]}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_AlternateMode {
+ wSVID: USHORT,
+ bAlternateMode: UCHAR,
+ iAlternateModeSetting: UCHAR,
+}}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+ iAddtionalInfoURL: UCHAR,
+ bNumberOfAlternateModes: UCHAR,
+ bPreferredAlternateMode: UCHAR,
+ VconnPower: USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_VconnPower,
+ bmConfigured: [UCHAR; 32],
+ bReserved: ULONG,
+ AlternateMode: [USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR_AlternateMode; 1],
+}}
+pub type PUSB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR
+ = *mut USB_DEVICE_CAPABILITY_BILLBOARD_DESCRIPTOR;
+DEFINE_GUID!{GUID_USB_MSOS20_PLATFORM_CAPABILITY_ID,
+ 0xd8dd60df, 0x4589, 0x4cc7, 0x9c, 0xd2, 0x65, 0x9d, 0x9e, 0x64, 0x8a, 0x9f}
+STRUCT!{#[repr(packed)] struct USB_DEVICE_CAPABILITY_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bDevCapabilityType: UCHAR,
+}}
+pub type PUSB_DEVICE_CAPABILITY_DESCRIPTOR = *mut USB_DEVICE_CAPABILITY_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_CONFIGURATION_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ wTotalLength: USHORT,
+ bNumInterfaces: UCHAR,
+ bConfigurationValue: UCHAR,
+ iConfiguration: UCHAR,
+ bmAttributes: UCHAR,
+ MaxPower: UCHAR,
+}}
+pub type PUSB_CONFIGURATION_DESCRIPTOR = *mut USB_CONFIGURATION_DESCRIPTOR;
+pub const USB_CONFIG_POWERED_MASK: UCHAR = 0xC0;
+pub const USB_CONFIG_BUS_POWERED: UCHAR = 0x80;
+pub const USB_CONFIG_SELF_POWERED: UCHAR = 0x40;
+pub const USB_CONFIG_REMOTE_WAKEUP: UCHAR = 0x20;
+pub const USB_CONFIG_RESERVED: UCHAR = 0x1F;
+STRUCT!{#[repr(packed)] struct USB_INTERFACE_ASSOCIATION_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bFirstInterface: UCHAR,
+ bInterfaceCount: UCHAR,
+ bFunctionClass: UCHAR,
+ bFunctionSubClass: UCHAR,
+ bFunctionProtocol: UCHAR,
+ iFunction: UCHAR,
+}}
+pub type PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR = *mut USB_INTERFACE_ASSOCIATION_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_INTERFACE_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bInterfaceNumber: UCHAR,
+ bAlternateSetting: UCHAR,
+ bNumEndpoints: UCHAR,
+ bInterfaceClass: UCHAR,
+ bInterfaceSubClass: UCHAR,
+ bInterfaceProtocol: UCHAR,
+ iInterface: UCHAR,
+}}
+pub type PUSB_INTERFACE_DESCRIPTOR = *mut USB_INTERFACE_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_ENDPOINT_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bEndpointAddress: UCHAR,
+ bmAttributes: UCHAR,
+ wMaxPacketSize: USHORT,
+ bInterval: UCHAR,
+}}
+pub type PUSB_ENDPOINT_DESCRIPTOR = *mut USB_ENDPOINT_DESCRIPTOR;
+pub const USB_ENDPOINT_DIRECTION_MASK: UCHAR = 0x80;
+#[inline]
+pub fn USB_ENDPOINT_DIRECTION_OUT(addr: UCHAR) -> UCHAR {
+ !(addr & USB_ENDPOINT_DIRECTION_MASK)
+}
+#[inline]
+pub fn USB_ENDPOINT_DIRECTION_IN(addr: UCHAR) -> UCHAR {
+ addr & USB_ENDPOINT_DIRECTION_MASK
+}
+pub const USB_ENDPOINT_ADDRESS_MASK: UCHAR = 0x0F;
+pub const USB_ENDPOINT_TYPE_MASK: UCHAR = 0x03;
+pub const USB_ENDPOINT_TYPE_CONTROL: UCHAR = 0x00;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS: UCHAR = 0x01;
+pub const USB_ENDPOINT_TYPE_BULK: UCHAR = 0x02;
+pub const USB_ENDPOINT_TYPE_INTERRUPT: UCHAR = 0x03;
+pub const USB_ENDPOINT_TYPE_BULK_RESERVED_MASK: UCHAR = 0xFC;
+pub const USB_ENDPOINT_TYPE_CONTROL_RESERVED_MASK: UCHAR = 0xFC;
+pub const USB_20_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: UCHAR = 0xFC;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_RESERVED_MASK: UCHAR = 0xCC;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_RESERVED_MASK: UCHAR = 0xC0;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_MASK: UCHAR = 0x30;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_PERIODIC: UCHAR = 0x00;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_NOTIFICATION: UCHAR = 0x10;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED10: UCHAR = 0x20;
+pub const USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_RESERVED11: UCHAR = 0x30;
+#[inline]
+pub fn USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE(bmAttr: UCHAR) -> UCHAR {
+ bmAttr & USB_30_ENDPOINT_TYPE_INTERRUPT_USAGE_MASK
+}
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_MASK: UCHAR = 0x0C;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_NO_SYNCHRONIZATION: UCHAR = 0x00;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ASYNCHRONOUS: UCHAR = 0x04;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_ADAPTIVE: UCHAR = 0x08;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_SYNCHRONOUS: UCHAR = 0x0C;
+#[inline]
+pub fn USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION(bmAttr: UCHAR) -> UCHAR {
+ bmAttr & USB_ENDPOINT_TYPE_ISOCHRONOUS_SYNCHRONIZATION_MASK
+}
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_MASK: UCHAR = 0x30;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_DATA_ENDOINT: UCHAR = 0x00;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_FEEDBACK_ENDPOINT: UCHAR = 0x10;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_IMPLICIT_FEEDBACK_DATA_ENDPOINT: UCHAR = 0x20;
+pub const USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_RESERVED: UCHAR = 0x30;
+#[inline]
+pub fn USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE(bmAttr: UCHAR) -> UCHAR {
+ bmAttr & USB_ENDPOINT_TYPE_ISOCHRONOUS_USAGE_MASK
+}
+STRUCT!{#[repr(packed)] struct USB_HIGH_SPEED_MAXPACKET {
+ us: USHORT,
+}}
+BITFIELD!{USB_HIGH_SPEED_MAXPACKET us: USHORT [
+ MaxPacket set_MaxPacket[0..11],
+ HSmux set_HSmux[11..13],
+ Reserved set_Reserved[13..16],
+]}
+pub type PUSB_HIGH_SPEED_MAXPACKET = *mut USB_HIGH_SPEED_MAXPACKET;
+pub const USB_ENDPOINT_SUPERSPEED_BULK_MAX_PACKET_SIZE: USHORT = 1024;
+pub const USB_ENDPOINT_SUPERSPEED_CONTROL_MAX_PACKET_SIZE: USHORT = 512;
+pub const USB_ENDPOINT_SUPERSPEED_ISO_MAX_PACKET_SIZE: USHORT = 1024;
+pub const USB_ENDPOINT_SUPERSPEED_INTERRUPT_MAX_PACKET_SIZE: USHORT = 1024;
+STRUCT!{#[repr(packed)] struct USB_STRING_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bString: [WCHAR; 1],
+}}
+pub type PUSB_STRING_DESCRIPTOR = *mut USB_STRING_DESCRIPTOR;
+pub const MAXIMUM_USB_STRING_LENGTH: UCHAR = 255;
+STRUCT!{#[repr(packed)] struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Bulk {
+ BitField: UCHAR,
+}}
+BITFIELD!{USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Bulk BitField: UCHAR [
+ MaxStreams set_MaxStreams[0..5],
+ Reserved1 set_Reserved1[5..8],
+]}
+STRUCT!{#[repr(packed)]
+ struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Isochronous {
+ BitField: UCHAR,
+}}
+BITFIELD!{USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Isochronous BitField: UCHAR [
+ Mult set_Mult[0..2],
+ Reserved2 set_Reserved2[2..7],
+ SspCompanion set_SspCompanion[7..8],
+]}
+UNION!{#[repr(packed)] union USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes {
+ [u8; 1],
+ AsUchar AsUchar_mut: UCHAR,
+ Bulk Bulk_mut: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Bulk,
+ Isochronous Isochronous_mut:
+ USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes_Isochronous,
+}}
+STRUCT!{#[repr(packed)] struct USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bMaxBurst: UCHAR,
+ bmAttributes: USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR_bmAttributes,
+ wBytesPerInterval: USHORT,
+}}
+pub type PUSB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR
+ = *mut USB_SUPERSPEED_ENDPOINT_COMPANION_DESCRIPTOR;
+pub const USB_SUPERSPEED_ISOCHRONOUS_MAX_MULTIPLIER: UCHAR = 2;
+STRUCT!{#[repr(packed)] struct USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ wReserved: USHORT,
+ dwBytesPerInterval: ULONG,
+}}
+pub type PUSB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR
+ = *mut USB_SUPERSPEEDPLUS_ISOCH_ENDPOINT_COMPANION_DESCRIPTOR;
+pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MIN_BYTESPERINTERVAL: ULONG = 0xC001;
+pub const USB_SUPERSPEEDPLUS_ISOCHRONOUS_MAX_BYTESPERINTERVAL: ULONG = 0xFFFFFF;
+STRUCT!{#[repr(packed)] struct USB_HUB_DESCRIPTOR {
+ bDescriptorLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bNumberOfPorts: UCHAR,
+ wHubCharacteristics: USHORT,
+ bPowerOnToPowerGood: UCHAR,
+ bHubControlCurrent: UCHAR,
+ bRemoveAndPowerMask: [UCHAR; 64],
+}}
+pub type PUSB_HUB_DESCRIPTOR = *mut USB_HUB_DESCRIPTOR;
+pub const USB_20_HUB_DESCRIPTOR_TYPE: UCHAR = 0x29;
+STRUCT!{#[repr(packed)] struct USB_30_HUB_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bNumberOfPorts: UCHAR,
+ wHubCharacteristics: USHORT,
+ bPowerOnToPowerGood: UCHAR,
+ bHubControlCurrent: UCHAR,
+ bHubHdrDecLat: UCHAR,
+ wHubDelay: USHORT,
+ DeviceRemovable: USHORT,
+}}
+pub type PUSB_30_HUB_DESCRIPTOR = *mut USB_30_HUB_DESCRIPTOR;
+pub const USB_30_HUB_DESCRIPTOR_TYPE: UCHAR = 0x2A;
+pub const USB_REQUEST_GET_STATE: UCHAR = 0x02;
+pub const USB_REQUEST_CLEAR_TT_BUFFER: UCHAR = 0x08;
+pub const USB_REQUEST_RESET_TT: UCHAR = 0x09;
+pub const USB_REQUEST_GET_TT_STATE: UCHAR = 0x0A;
+pub const USB_REQUEST_STOP_TT: UCHAR = 0x0B;
+pub const USB_REQUEST_SET_HUB_DEPTH: UCHAR = 0x0C;
+pub const USB_REQUEST_GET_PORT_ERR_COUNT: UCHAR = 0x0D;
+STRUCT!{#[repr(packed)] struct USB_HUB_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_HUB_STATUS AsUshort16: USHORT [
+ LocalPowerLost set_LocalPowerLost[0..1],
+ OverCurrent set_OverCurrent[1..2],
+ Reserved set_Reserved[2..16],
+]}
+pub type PUSB_HUB_STATUS = *mut USB_HUB_STATUS;
+STRUCT!{#[repr(packed)] struct USB_HUB_CHANGE {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_HUB_CHANGE AsUshort16: USHORT [
+ LocalPowerChange set_LocalPowerChange[0..1],
+ OverCurrentChange set_OverCurrentChange[1..2],
+ Reserved set_Reserved[2..16],
+]}
+pub type PUSB_HUB_CHANGE = *mut USB_HUB_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_HUB_STATUS_AND_CHANGE_s {
+ HubStatus: USB_HUB_STATUS,
+ HubChange: USB_HUB_CHANGE,
+}}
+UNION!{#[repr(packed)] union USB_HUB_STATUS_AND_CHANGE {
+ [u32; 1],
+ AsUlong32 AsUlong32_mut: ULONG,
+ s s_mut: USB_HUB_STATUS_AND_CHANGE_s,
+}}
+pub type PUSB_HUB_STATUS_AND_CHANGE = *mut USB_HUB_STATUS_AND_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_20_PORT_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_20_PORT_STATUS AsUshort16: USHORT [
+ CurrentConnectStatus set_CurrentConnectStatus[0..1],
+ PortEnabledDisabled set_PortEnabledDisabled[1..2],
+ Suspend set_Suspend[2..3],
+ OverCurrent set_OverCurrent[3..4],
+ Reset set_Reset[4..5],
+ L1 set_L1[5..6],
+ Reserved0 set_Reserved0[6..8],
+ PortPower set_PortPower[8..9],
+ LowSpeedDeviceAttached set_LowSpeedDeviceAttached[9..10],
+ HighSpeedDeviceAttached set_HighSpeedDeviceAttached[10..11],
+ PortTestMode set_PortTestMode[11..12],
+ PortIndicatorControl set_PortIndicatorControl[12..13],
+ Reserved1 set_Reserved1[13..16],
+]}
+pub type PUSB_20_PORT_STATUS = *mut USB_20_PORT_STATUS;
+pub const USB_PORT_STATUS_CONNECT: USHORT = 0x0001;
+pub const USB_PORT_STATUS_ENABLE: USHORT = 0x0002;
+pub const USB_PORT_STATUS_SUSPEND: USHORT = 0x0004;
+pub const USB_PORT_STATUS_OVER_CURRENT: USHORT = 0x0008;
+pub const USB_PORT_STATUS_RESET: USHORT = 0x0010;
+pub const USB_PORT_STATUS_POWER: USHORT = 0x0100;
+pub const USB_PORT_STATUS_LOW_SPEED: USHORT = 0x0200;
+pub const USB_PORT_STATUS_HIGH_SPEED: USHORT = 0x0400;
+STRUCT!{#[repr(packed)] struct USB_20_PORT_CHANGE {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_20_PORT_CHANGE AsUshort16: USHORT [
+ ConnectStatusChange set_ConnectStatusChange[0..1],
+ PortEnableDisableChange set_PortEnableDisableChange[1..2],
+ SuspendChange set_SuspendChange[2..3],
+ OverCurrentIndicatorChange set_OverCurrentIndicatorChange[3..4],
+ ResetChange set_ResetChange[4..5],
+ Reserved2 set_Reserved2[5..16],
+]}
+pub type PUSB_20_PORT_CHANGE = *mut USB_20_PORT_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_30_PORT_STATUS {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_30_PORT_STATUS AsUshort16: USHORT [
+ CurrentConnectStatus set_CurrentConnectStatus[0..1],
+ PortEnabledDisabled set_PortEnabledDisabled[1..2],
+ Reserved0 set_Reserved0[2..3],
+ OverCurrent set_OverCurrent[3..4],
+ Reset set_Reset[4..5],
+ PortLinkState set_PortLinkState[5..9],
+ PortPower set_PortPower[9..10],
+ NegotiatedDeviceSpeed set_NegotiatedDeviceSpeed[10..13],
+ Reserved1 set_Reserved1[13..16],
+]}
+pub type PUSB_30_PORT_STATUS = *mut USB_30_PORT_STATUS;
+pub const PORT_LINK_STATE_U0: USHORT = 0;
+pub const PORT_LINK_STATE_U1: USHORT = 1;
+pub const PORT_LINK_STATE_U2: USHORT = 2;
+pub const PORT_LINK_STATE_U3: USHORT = 3;
+pub const PORT_LINK_STATE_DISABLED: USHORT = 4;
+pub const PORT_LINK_STATE_RX_DETECT: USHORT = 5;
+pub const PORT_LINK_STATE_INACTIVE: USHORT = 6;
+pub const PORT_LINK_STATE_POLLING: USHORT = 7;
+pub const PORT_LINK_STATE_RECOVERY: USHORT = 8;
+pub const PORT_LINK_STATE_HOT_RESET: USHORT = 9;
+pub const PORT_LINK_STATE_COMPLIANCE_MODE: USHORT = 10;
+pub const PORT_LINK_STATE_LOOPBACK: USHORT = 11;
+pub const PORT_LINK_STATE_TEST_MODE: USHORT = 11;
+STRUCT!{#[repr(packed)] struct USB_30_PORT_CHANGE {
+ AsUshort16: USHORT,
+}}
+BITFIELD!{USB_30_PORT_CHANGE AsUshort16: USHORT [
+ ConnectStatusChange set_ConnectStatusChange[0..1],
+ Reserved2 set_Reserved2[1..3],
+ OverCurrentIndicatorChange set_OverCurrentIndicatorChange[3..4],
+ ResetChange set_ResetChange[4..5],
+ BHResetChange set_BHResetChange[5..6],
+ PortLinkStateChange set_PortLinkStateChange[6..7],
+ PortConfigErrorChange set_PortConfigErrorChange[7..8],
+ Reserved3 set_Reserved3[8..16],
+]}
+pub type PUSB_30_PORT_CHANGE = *mut USB_30_PORT_CHANGE;
+UNION!{#[repr(packed)] union USB_PORT_STATUS {
+ [u16; 1],
+ AsUshort16 AsUshort16_mut: USHORT,
+ Usb20PortStatus Usb20PortStatus_mut: USB_20_PORT_STATUS,
+ Usb30PortStatus Usb30PortStatus_mut: USB_30_PORT_STATUS,
+}}
+pub type PUSB_PORT_STATUS = *mut USB_PORT_STATUS;
+UNION!{#[repr(packed)] union USB_PORT_CHANGE {
+ [u16; 1],
+ AsUshort16 AsUshort16_mut: USHORT,
+ Usb20PortChange Usb20PortChange_mut: USB_20_PORT_CHANGE,
+ Usb30PortChange Usb30PortChange_mut: USB_30_PORT_CHANGE,
+}}
+pub type PUSB_PORT_CHANGE = *mut USB_PORT_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_PORT_EXT_STATUS {
+ AsUlong32: ULONG,
+}}
+BITFIELD!{USB_PORT_EXT_STATUS AsUlong32: ULONG [
+ RxSublinkSpeedID set_RxSublinkSpeedID[0..4],
+ TxSublinkSpeedID set_TxSublinkSpeedID[4..8],
+ RxLaneCount set_RxLaneCount[8..12],
+ TxLaneCount set_TxLaneCount[12..16],
+ Reserved set_Reserved[16..32],
+]}
+pub type PUSB_PORT_EXT_STATUS = *mut USB_PORT_EXT_STATUS;
+STRUCT!{#[repr(packed)] struct USB_PORT_STATUS_AND_CHANGE_s {
+ PortStatus: USB_PORT_STATUS,
+ PortChange: USB_PORT_CHANGE,
+}}
+UNION!{#[repr(packed)] union USB_PORT_STATUS_AND_CHANGE {
+ [u32; 1],
+ AsUlong32 AsUlong32_mut: ULONG,
+ s s_mut: USB_PORT_STATUS_AND_CHANGE_s,
+}}
+pub type PUSB_PORT_STATUS_AND_CHANGE = *mut USB_PORT_STATUS_AND_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_PORT_EXT_STATUS_AND_CHANGE_s {
+ PortStatusChange: USB_PORT_STATUS_AND_CHANGE,
+ PortExtStatus: USB_PORT_EXT_STATUS,
+}}
+UNION!{#[repr(packed)] union USB_PORT_EXT_STATUS_AND_CHANGE {
+ [u64; 1],
+ AsUlong64 AsUlong64_mut: ULONG64,
+ s s_mut: USB_PORT_EXT_STATUS_AND_CHANGE_s,
+}}
+pub type PUSB_PORT_EXT_STATUS_AND_CHANGE = *mut USB_PORT_EXT_STATUS_AND_CHANGE;
+STRUCT!{#[repr(packed)] struct USB_HUB_30_PORT_REMOTE_WAKE_MASK {
+ AsUchar8: UCHAR,
+}}
+BITFIELD!{USB_HUB_30_PORT_REMOTE_WAKE_MASK AsUchar8: UCHAR [
+ ConnectRemoteWakeEnable set_ConnectRemoteWakeEnable[0..1],
+ DisconnectRemoteWakeEnable set_DisconnectRemoteWakeEnable[1..2],
+ OverCurrentRemoteWakeEnable set_OverCurrentRemoteWakeEnable[2..3],
+ Reserved0 set_Reserved0[3..8],
+]}
+pub type PUSB_HUB_30_PORT_REMOTE_WAKE_MASK = *mut USB_HUB_30_PORT_REMOTE_WAKE_MASK;
+STRUCT!{#[repr(packed)] struct USB_FUNCTION_SUSPEND_OPTIONS {
+ AsUchar: UCHAR,
+}}
+BITFIELD!{USB_FUNCTION_SUSPEND_OPTIONS AsUchar: UCHAR [
+ PowerState set_PowerState[0..1],
+ RemoteWakeEnabled set_RemoteWakeEnabled[1..2],
+ Reserved0 set_Reserved0[2..8],
+]}
+pub type PUSB_FUNCTION_SUSPEND_OPTIONS = *mut USB_FUNCTION_SUSPEND_OPTIONS;
+pub const USB_FEATURE_INTERFACE_POWER_D0: USHORT = 0x0002;
+pub const USB_FEATURE_INTERFACE_POWER_D1: USHORT = 0x0003;
+pub const USB_FEATURE_INTERFACE_POWER_D2: USHORT = 0x0004;
+pub const USB_FEATURE_INTERFACE_POWER_D3: USHORT = 0x0005;
+pub const USB_SUPPORT_D0_COMMAND: UCHAR = 0x01;
+pub const USB_SUPPORT_D1_COMMAND: UCHAR = 0x02;
+pub const USB_SUPPORT_D2_COMMAND: UCHAR = 0x04;
+pub const USB_SUPPORT_D3_COMMAND: UCHAR = 0x08;
+pub const USB_SUPPORT_D1_WAKEUP: UCHAR = 0x10;
+pub const USB_SUPPORT_D2_WAKEUP: UCHAR = 0x20;
+STRUCT!{#[repr(packed)] struct USB_CONFIGURATION_POWER_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ SelfPowerConsumedD0: [UCHAR; 3],
+ bPowerSummaryId: UCHAR,
+ bBusPowerSavingD1: UCHAR,
+ bSelfPowerSavingD1: UCHAR,
+ bBusPowerSavingD2: UCHAR,
+ bSelfPowerSavingD2: UCHAR,
+ bBusPowerSavingD3: UCHAR,
+ bSelfPowerSavingD3: UCHAR,
+ TransitionTimeFromD1: USHORT,
+ TransitionTimeFromD2: USHORT,
+ TransitionTimeFromD3: USHORT,
+}}
+pub type PUSB_CONFIGURATION_POWER_DESCRIPTOR = *mut USB_CONFIGURATION_POWER_DESCRIPTOR;
+STRUCT!{#[repr(packed)] struct USB_INTERFACE_POWER_DESCRIPTOR {
+ bLength: UCHAR,
+ bDescriptorType: UCHAR,
+ bmCapabilitiesFlags: UCHAR,
+ bBusPowerSavingD1: UCHAR,
+ bSelfPowerSavingD1: UCHAR,
+ bBusPowerSavingD2: UCHAR,
+ bSelfPowerSavingD2: UCHAR,
+ bBusPowerSavingD3: UCHAR,
+ bSelfPowerSavingD3: UCHAR,
+ TransitionTimeFromD1: USHORT,
+ TransitionTimeFromD2: USHORT,
+ TransitionTimeFromD3: USHORT,
+}}
+pub type PUSB_INTERFACE_POWER_DESCRIPTOR = *mut USB_INTERFACE_POWER_DESCRIPTOR;
diff --git a/third_party/rust/winapi/src/shared/windef.rs b/third_party/rust/winapi/src/shared/windef.rs
new file mode 100644
index 0000000000..d2e5fe01c0
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/windef.rs
@@ -0,0 +1,125 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Basic Windows Type Definitions
+use ctypes::c_void;
+use shared::minwindef::{DWORD, HFILE, WORD};
+use um::winnt::{LONG, SHORT};
+DECLARE_HANDLE!{HWND, HWND__}
+DECLARE_HANDLE!{HHOOK, HHOOK__}
+pub type HGDIOBJ = *mut c_void;
+DECLARE_HANDLE!{HACCEL, HACCEL__}
+DECLARE_HANDLE!{HBITMAP, HBITMAP__}
+DECLARE_HANDLE!{HBRUSH, HBRUSH__}
+DECLARE_HANDLE!{HCOLORSPACE, HCOLORSPACE__}
+DECLARE_HANDLE!{HDC, HDC__}
+DECLARE_HANDLE!{HGLRC, HGLRC__}
+DECLARE_HANDLE!{HDESK, HDESK__}
+DECLARE_HANDLE!{HENHMETAFILE, HENHMETAFILE__}
+DECLARE_HANDLE!{HFONT, HFONT__}
+DECLARE_HANDLE!{HICON, HICON__}
+DECLARE_HANDLE!{HMENU, HMENU__}
+DECLARE_HANDLE!{HPALETTE, HPALETTE__}
+DECLARE_HANDLE!{HPEN, HPEN__}
+DECLARE_HANDLE!{HWINEVENTHOOK, HWINEVENTHOOK__}
+DECLARE_HANDLE!{HMONITOR, HMONITOR__}
+DECLARE_HANDLE!{HUMPD, HUMPD__}
+pub type HCURSOR = HICON;
+pub type COLORREF = DWORD;
+pub type LPCOLORREF = *mut DWORD;
+pub const HFILE_ERROR: HFILE = -1;
+STRUCT!{#[debug] struct RECT {
+ left: LONG,
+ top: LONG,
+ right: LONG,
+ bottom: LONG,
+}}
+pub type PRECT = *mut RECT;
+pub type NPRECT = *mut RECT;
+pub type LPRECT = *mut RECT;
+pub type LPCRECT = *const RECT;
+STRUCT!{#[debug] struct RECTL {
+ left: LONG,
+ top: LONG,
+ right: LONG,
+ bottom: LONG,
+}}
+pub type PRECTL = *mut RECTL;
+pub type LPRECTL = *mut RECTL;
+pub type LPCRECTL = *const RECTL;
+STRUCT!{struct POINT {
+ x: LONG,
+ y: LONG,
+}}
+pub type PPOINT = *mut POINT;
+pub type NPPOINT = *mut POINT;
+pub type LPPOINT = *mut POINT;
+STRUCT!{struct POINTL {
+ x: LONG,
+ y: LONG,
+}}
+pub type PPOINTL = *mut POINTL;
+STRUCT!{struct SIZE {
+ cx: LONG,
+ cy: LONG,
+}}
+pub type PSIZE = *mut SIZE;
+pub type LPSIZE = *mut SIZE;
+pub type SIZEL = SIZE;
+pub type PSIZEL = *mut SIZE;
+pub type LPSIZEL = *mut SIZE;
+STRUCT!{struct POINTS {
+ x: SHORT,
+ y: SHORT,
+}}
+pub type PPOINTS = *mut POINTS;
+pub type LPPOINTS = *mut POINTS;
+pub const DM_UPDATE: WORD = 1;
+pub const DM_COPY: WORD = 2;
+pub const DM_PROMPT: WORD = 4;
+pub const DM_MODIFY: WORD = 8;
+pub const DM_IN_BUFFER: WORD = DM_MODIFY;
+pub const DM_IN_PROMPT: WORD = DM_PROMPT;
+pub const DM_OUT_BUFFER: WORD = DM_COPY;
+pub const DM_OUT_DEFAULT: WORD = DM_UPDATE;
+pub const DC_FIELDS: DWORD = 1;
+pub const DC_PAPERS: DWORD = 2;
+pub const DC_PAPERSIZE: DWORD = 3;
+pub const DC_MINEXTENT: DWORD = 4;
+pub const DC_MAXEXTENT: DWORD = 5;
+pub const DC_BINS: DWORD = 6;
+pub const DC_DUPLEX: DWORD = 7;
+pub const DC_SIZE: DWORD = 8;
+pub const DC_EXTRA: DWORD = 9;
+pub const DC_VERSION: DWORD = 10;
+pub const DC_DRIVER: DWORD = 11;
+pub const DC_BINNAMES: DWORD = 12;
+pub const DC_ENUMRESOLUTIONS: DWORD = 13;
+pub const DC_FILEDEPENDENCIES: DWORD = 14;
+pub const DC_TRUETYPE: DWORD = 15;
+pub const DC_PAPERNAMES: DWORD = 16;
+pub const DC_ORIENTATION: DWORD = 17;
+pub const DC_COPIES: DWORD = 18;
+DECLARE_HANDLE!{DPI_AWARENESS_CONTEXT, DPI_AWARENESS_CONTEXT__}
+ENUM!{enum DPI_AWARENESS {
+ DPI_AWARENESS_INVALID = -1i32 as u32,
+ DPI_AWARENESS_UNAWARE = 0,
+ DPI_AWARENESS_SYSTEM_AWARE = 1,
+ DPI_AWARENESS_PER_MONITOR_AWARE = 2,
+}}
+pub const DPI_AWARENESS_CONTEXT_UNAWARE: DPI_AWARENESS_CONTEXT = -1isize as DPI_AWARENESS_CONTEXT;
+pub const DPI_AWARENESS_CONTEXT_SYSTEM_AWARE: DPI_AWARENESS_CONTEXT
+ = -2isize as DPI_AWARENESS_CONTEXT;
+pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE: DPI_AWARENESS_CONTEXT
+ = -3isize as DPI_AWARENESS_CONTEXT;
+pub const DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2: DPI_AWARENESS_CONTEXT
+ = -4isize as DPI_AWARENESS_CONTEXT;
+pub const DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED: DPI_AWARENESS_CONTEXT
+ = -5isize as DPI_AWARENESS_CONTEXT;
+ENUM!{enum DPI_HOSTING_BEHAVIOR {
+ DPI_HOSTING_BEHAVIOR_INVALID = -1i32 as u32,
+ DPI_HOSTING_BEHAVIOR_DEFAULT = 0,
+ DPI_HOSTING_BEHAVIOR_MIXED = 1,
+}}
diff --git a/third_party/rust/winapi/src/shared/windot11.rs b/third_party/rust/winapi/src/shared/windot11.rs
new file mode 100644
index 0000000000..4e483047f5
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/windot11.rs
@@ -0,0 +1,2853 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Definitions for native 802.11 miniport driver specifications.
+use shared::basetsd::UINT8;
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use shared::ntddndis::{
+ NDIS_OBJECT_HEADER, NDIS_PACKET_TYPE_ALL_MULTICAST, NDIS_PACKET_TYPE_BROADCAST,
+ NDIS_PACKET_TYPE_DIRECTED, NDIS_PACKET_TYPE_MULTICAST, NDIS_PACKET_TYPE_PROMISCUOUS,
+ NDIS_STATUS,
+};
+use shared::wlantypes::{
+ DOT11_AUTH_ALGORITHM, DOT11_AUTH_CIPHER_PAIR, DOT11_BSS_TYPE, DOT11_CIPHER_ALGORITHM,
+ DOT11_SSID, PDOT11_AUTH_CIPHER_PAIR,
+};
+use um::winnt::{BOOLEAN, HANDLE, LARGE_INTEGER, LONG, PVOID, ULONGLONG};
+pub type DOT11_MAC_ADDRESS = [UCHAR; 6];
+pub type PDOT11_MAC_ADDRESS = *mut DOT11_MAC_ADDRESS;
+STRUCT!{struct DOT11_BSSID_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ BSSIDs: [DOT11_MAC_ADDRESS; 1],
+}}
+pub type PDOT11_BSSID_LIST = *mut DOT11_BSSID_LIST;
+pub const DOT11_BSSID_LIST_REVISION_1: UCHAR = 1;
+pub const DOT11_HESSID_LENGTH: usize = 6;
+pub type DOT11_HESSID = [UCHAR; DOT11_HESSID_LENGTH];
+pub type PDOT11_HESSID = *mut DOT11_HESSID;
+ENUM!{enum DOT11_PHY_TYPE {
+ dot11_phy_type_unknown = 0,
+ dot11_phy_type_any = dot11_phy_type_unknown,
+ dot11_phy_type_fhss = 1,
+ dot11_phy_type_dsss = 2,
+ dot11_phy_type_irbaseband = 3,
+ dot11_phy_type_ofdm = 4,
+ dot11_phy_type_hrdsss = 5,
+ dot11_phy_type_erp = 6,
+ dot11_phy_type_ht = 7,
+ dot11_phy_type_vht = 8,
+ dot11_phy_type_dmg = 9,
+ dot11_phy_type_IHV_start = 0x80000000,
+ dot11_phy_type_IHV_end = 0xffffffff,
+}}
+pub type PDOT11_PHY_TYPE = *mut DOT11_PHY_TYPE;
+pub const DOT11_RATE_SET_MAX_LENGTH: usize = 126;
+STRUCT!{struct DOT11_RATE_SET {
+ uRateSetLength: ULONG,
+ ucRateSet: [UCHAR; DOT11_RATE_SET_MAX_LENGTH],
+}}
+pub type PDOT11_RATE_SET = *mut DOT11_RATE_SET;
+pub type DOT11_COUNTRY_OR_REGION_STRING = [UCHAR; 3];
+pub type PDOT11_COUNTRY_OR_REGION_STRING = *mut DOT11_COUNTRY_OR_REGION_STRING;
+pub type DOT11_DIALOG_TOKEN = UCHAR;
+pub type DOT11_WFD_STATUS_CODE = UCHAR;
+pub type DOT11_WFD_MINOR_REASON_CODE = UCHAR;
+pub type DOT11_WFD_SERVICE_HASH = [UCHAR; 6];
+pub const DOT11_WFD_SERVICE_NAME_MAX_LENGTH: usize = 255;
+pub const DOT11_WFD_APS2_SERVICE_TYPE_MAX_LENGTH: usize = 21;
+pub const DOT11_WFD_ASP2_INSTANCE_NAME_MAX_LENGTH: usize = 63;
+pub const DOT11_WFD_SERVICE_INFORMATION_MAX_LENGTH: usize = 65535;
+pub const DOT11_MAX_REQUESTED_SERVICE_INFORMATION_LENGTH: usize = 255;
+pub const DOT11_WFD_SESSION_INFO_MAX_LENGTH: usize = 144;
+STRUCT!{struct DOT11_WFD_SESSION_INFO {
+ uSessionInfoLength: USHORT,
+ ucSessionInfo: [UCHAR; DOT11_WFD_SESSION_INFO_MAX_LENGTH],
+}}
+pub type PDOT11_WFD_SESSION_INFO = *mut DOT11_WFD_SESSION_INFO;
+pub const NDIS_PACKET_TYPE_MEDIA_SPECIFIC_MASK: u32 = 0x0fff0000;
+pub const NDIS_PACKET_TYPE_802_11_DIRECTED_DATA: u32 = NDIS_PACKET_TYPE_DIRECTED;
+pub const NDIS_PACKET_TYPE_802_11_BROADCAST_DATA: u32 = NDIS_PACKET_TYPE_BROADCAST;
+pub const NDIS_PACKET_TYPE_802_11_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_MULTICAST;
+pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_DATA: u32 = NDIS_PACKET_TYPE_ALL_MULTICAST;
+pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_DATA: u32 = NDIS_PACKET_TYPE_PROMISCUOUS;
+pub const NDIS_PACKET_TYPE_802_11_RAW_DATA: u32 = 0x00010000;
+pub const NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT: u32 = 0x00020000;
+pub const NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT: u32 = 0x00040000;
+pub const NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT: u32 = 0x00080000;
+pub const NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT: u32 = 0x00100000;
+pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT: u32 = 0x00200000;
+pub const NDIS_PACKET_TYPE_802_11_RAW_MGMT: u32 = 0x00400000;
+pub const NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL: u32 = 0x00800000;
+pub const NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL: u32 = 0x01000000;
+pub const NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL: u32 = 0x02000000;
+pub const NDIS_PACKET_TYPE_ALL_802_11_FILTERS: u32 = NDIS_PACKET_TYPE_DIRECTED
+ | NDIS_PACKET_TYPE_MULTICAST | NDIS_PACKET_TYPE_ALL_MULTICAST | NDIS_PACKET_TYPE_BROADCAST
+ | NDIS_PACKET_TYPE_PROMISCUOUS | NDIS_PACKET_TYPE_802_11_RAW_DATA
+ | NDIS_PACKET_TYPE_802_11_DIRECTED_MGMT | NDIS_PACKET_TYPE_802_11_BROADCAST_MGMT
+ | NDIS_PACKET_TYPE_802_11_MULTICAST_MGMT | NDIS_PACKET_TYPE_802_11_ALL_MULTICAST_MGMT
+ | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_MGMT | NDIS_PACKET_TYPE_802_11_RAW_MGMT
+ | NDIS_PACKET_TYPE_802_11_DIRECTED_CTRL | NDIS_PACKET_TYPE_802_11_BROADCAST_CTRL
+ | NDIS_PACKET_TYPE_802_11_PROMISCUOUS_CTRL;
+pub const DOT11_MAX_PDU_SIZE: i32 = 2346;
+pub const DOT11_MIN_PDU_SIZE: i32 = 256;
+pub const DOT11_MAX_NUM_DEFAULT_KEY: i32 = 4;
+pub const DOT11_MAX_NUM_DEFAULT_KEY_MFP: i32 = DOT11_MAX_NUM_DEFAULT_KEY + 2;
+pub const OID_DOT11_NDIS_START: u32 = 0x0D010300;
+pub const NWF_MANDATORY_OID: u32 = 0x01;
+pub const NWF_OPTIONAL_OID: u32 = 0x02;
+pub const NWF_OPERATIONAL_OID: u32 = 0x01;
+pub const NWF_STATISTICS_OID: u32 = 0x02;
+#[inline]
+pub fn NWF_DEFINE_OID(Seq: u32, o: u32, m: u32) -> u32 {
+ 0x0E000000 | (o << 16) | (m << 8) | Seq
+}
+macro_rules! NWF_DEFINE_OID {
+ ($Seq:expr, $o:expr, $m:expr) => { 0x0E000000 | $o << 16 | $m << 8 | $Seq };
+}
+pub const OID_DOT11_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 0;
+pub const DOT11_HW_WEP_SUPPORTED_TX: u32 = 0x00000001;
+pub const DOT11_HW_WEP_SUPPORTED_RX: u32 = 0x00000002;
+pub const DOT11_HW_FRAGMENTATION_SUPPORTED: u32 = 0x00000004;
+pub const DOT11_HW_DEFRAGMENTATION_SUPPORTED: u32 = 0x00000008;
+pub const DOT11_HW_MSDU_AUTH_SUPPORTED_TX: u32 = 0x00000010;
+pub const DOT11_HW_MSDU_AUTH_SUPPORTED_RX: u32 = 0x00000020;
+pub const DOT11_CONF_ALGO_WEP_RC4: u32 = 0x00000001;
+pub const DOT11_CONF_ALGO_TKIP: u32 = 0x00000002;
+pub const DOT11_AUTH_ALGO_MICHAEL: u32 = 0x00000001;
+STRUCT!{struct DOT11_OFFLOAD_CAPABILITY {
+ uReserved: ULONG,
+ uFlags: ULONG,
+ uSupportedWEPAlgorithms: ULONG,
+ uNumOfReplayWindows: ULONG,
+ uMaxWEPKeyMappingLength: ULONG,
+ uSupportedAuthAlgorithms: ULONG,
+ uMaxAuthKeyMappingLength: ULONG,
+}}
+pub type PDOT11_OFFLOAD_CAPABILITY = *mut DOT11_OFFLOAD_CAPABILITY;
+pub const OID_DOT11_CURRENT_OFFLOAD_CAPABILITY: u32 = OID_DOT11_NDIS_START + 1;
+STRUCT!{struct DOT11_CURRENT_OFFLOAD_CAPABILITY {
+ uReserved: ULONG,
+ uFlags: ULONG,
+}}
+pub type PDOT11_CURRENT_OFFLOAD_CAPABILITY = *mut DOT11_CURRENT_OFFLOAD_CAPABILITY;
+pub const OID_DOT11_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 2;
+ENUM!{enum DOT11_OFFLOAD_TYPE {
+ dot11_offload_type_wep = 1,
+ dot11_offload_type_auth = 2,
+}}
+pub type PDOT11_OFFLOAD_TYPE = *mut DOT11_OFFLOAD_TYPE;
+STRUCT!{struct DOT11_IV48_COUNTER {
+ uIV32Counter: ULONG,
+ usIV16Counter: USHORT,
+}}
+pub type PDOT11_IV48_COUNTER = *mut DOT11_IV48_COUNTER;
+STRUCT!{struct DOT11_WEP_OFFLOAD {
+ uReserved: ULONG,
+ hOffloadContext: HANDLE,
+ hOffload: HANDLE,
+ dot11OffloadType: DOT11_OFFLOAD_TYPE,
+ dwAlgorithm: ULONG,
+ bRowIsOutbound: BOOLEAN,
+ bUseDefault: BOOLEAN,
+ uFlags: ULONG,
+ ucMacAddress: [UCHAR; 6],
+ uNumOfRWsOnPeer: ULONG,
+ uNumOfRWsOnMe: ULONG,
+ dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
+ usDot11RWBitMaps: [USHORT; 16],
+ usKeyLength: USHORT,
+ ucKey: [UCHAR; 1],
+}}
+pub type PDOT11_WEP_OFFLOAD = *mut DOT11_WEP_OFFLOAD;
+pub const OID_DOT11_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 3;
+STRUCT!{struct DOT11_WEP_UPLOAD {
+ uReserved: ULONG,
+ dot11OffloadType: DOT11_OFFLOAD_TYPE,
+ hOffload: HANDLE,
+ uNumOfRWsUsed: ULONG,
+ dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
+ usDot11RWBitMaps: [USHORT; 16],
+}}
+pub type PDOT11_WEP_UPLOAD = *mut DOT11_WEP_UPLOAD;
+pub const OID_DOT11_DEFAULT_WEP_OFFLOAD: u32 = OID_DOT11_NDIS_START + 4;
+ENUM!{enum DOT11_KEY_DIRECTION {
+ dot11_key_direction_both = 1,
+ dot11_key_direction_inbound = 2,
+ dot11_key_direction_outbound = 3,
+}}
+pub type PDOT11_KEY_DIRECTION = *mut DOT11_KEY_DIRECTION;
+STRUCT!{struct DOT11_DEFAULT_WEP_OFFLOAD {
+ uReserved: ULONG,
+ hOffloadContext: HANDLE,
+ hOffload: HANDLE,
+ dwIndex: ULONG,
+ dot11OffloadType: DOT11_OFFLOAD_TYPE,
+ dwAlgorithm: ULONG,
+ uFlags: ULONG,
+ dot11KeyDirection: DOT11_KEY_DIRECTION,
+ ucMacAddress: [UCHAR; 6],
+ uNumOfRWsOnMe: ULONG,
+ dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
+ usDot11RWBitMaps: [USHORT; 16],
+ usKeyLength: USHORT,
+ ucKey: [UCHAR; 1],
+}}
+pub type PDOT11_DEFAULT_WEP_OFFLOAD = *mut DOT11_DEFAULT_WEP_OFFLOAD;
+pub const OID_DOT11_DEFAULT_WEP_UPLOAD: u32 = OID_DOT11_NDIS_START + 5;
+STRUCT!{struct DOT11_DEFAULT_WEP_UPLOAD {
+ uReserved: ULONG,
+ dot11OffloadType: DOT11_OFFLOAD_TYPE,
+ hOffload: HANDLE,
+ uNumOfRWsUsed: ULONG,
+ dot11IV48Counters: [DOT11_IV48_COUNTER; 16],
+ usDot11RWBitMaps: [USHORT; 16],
+}}
+pub type PDOT11_DEFAULT_WEP_UPLOAD = *mut DOT11_DEFAULT_WEP_UPLOAD;
+pub const OID_DOT11_MPDU_MAX_LENGTH: u32 = OID_DOT11_NDIS_START + 6;
+pub const OID_DOT11_OPERATION_MODE_CAPABILITY: u32 = OID_DOT11_NDIS_START + 7;
+pub const DOT11_OPERATION_MODE_UNKNOWN: ULONG = 0x00000000;
+pub const DOT11_OPERATION_MODE_STATION: ULONG = 0x00000001;
+pub const DOT11_OPERATION_MODE_AP: ULONG = 0x00000002;
+pub const DOT11_OPERATION_MODE_EXTENSIBLE_STATION: ULONG = 0x00000004;
+pub const DOT11_OPERATION_MODE_EXTENSIBLE_AP: ULONG = 0x00000008;
+pub const DOT11_OPERATION_MODE_WFD_DEVICE: ULONG = 0x00000010;
+pub const DOT11_OPERATION_MODE_WFD_GROUP_OWNER: ULONG = 0x00000020;
+pub const DOT11_OPERATION_MODE_WFD_CLIENT: ULONG = 0x00000040;
+pub const DOT11_OPERATION_MODE_MANUFACTURING: ULONG = 0x40000000;
+pub const DOT11_OPERATION_MODE_NETWORK_MONITOR: ULONG = 0x80000000;
+STRUCT!{struct DOT11_OPERATION_MODE_CAPABILITY {
+ uReserved: ULONG,
+ uMajorVersion: ULONG,
+ uMinorVersion: ULONG,
+ uNumOfTXBuffers: ULONG,
+ uNumOfRXBuffers: ULONG,
+ uOpModeCapability: ULONG,
+}}
+pub type PDOT11_OPERATION_MODE_CAPABILITY = *mut DOT11_OPERATION_MODE_CAPABILITY;
+pub const OID_DOT11_CURRENT_OPERATION_MODE: u32 = OID_DOT11_NDIS_START + 8;
+STRUCT!{struct DOT11_CURRENT_OPERATION_MODE {
+ uReserved: ULONG,
+ uCurrentOpMode: ULONG,
+}}
+pub type PDOT11_CURRENT_OPERATION_MODE = *mut DOT11_CURRENT_OPERATION_MODE;
+pub const OID_DOT11_CURRENT_PACKET_FILTER: u32 = OID_DOT11_NDIS_START + 9;
+pub const DOT11_PACKET_TYPE_DIRECTED_CTRL: u32 = 0x00000001;
+pub const DOT11_PACKET_TYPE_DIRECTED_MGMT: u32 = 0x00000002;
+pub const DOT11_PACKET_TYPE_DIRECTED_DATA: u32 = 0x00000004;
+pub const DOT11_PACKET_TYPE_MULTICAST_CTRL: u32 = 0x00000008;
+pub const DOT11_PACKET_TYPE_MULTICAST_MGMT: u32 = 0x00000010;
+pub const DOT11_PACKET_TYPE_MULTICAST_DATA: u32 = 0x00000020;
+pub const DOT11_PACKET_TYPE_BROADCAST_CTRL: u32 = 0x00000040;
+pub const DOT11_PACKET_TYPE_BROADCAST_MGMT: u32 = 0x00000080;
+pub const DOT11_PACKET_TYPE_BROADCAST_DATA: u32 = 0x00000100;
+pub const DOT11_PACKET_TYPE_PROMISCUOUS_CTRL: u32 = 0x00000200;
+pub const DOT11_PACKET_TYPE_PROMISCUOUS_MGMT: u32 = 0x00000400;
+pub const DOT11_PACKET_TYPE_PROMISCUOUS_DATA: u32 = 0x00000800;
+pub const DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL: u32 = 0x00001000;
+pub const DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT: u32 = 0x00002000;
+pub const DOT11_PACKET_TYPE_ALL_MULTICAST_DATA: u32 = 0x00004000;
+pub const DOT11_PACKET_TYPE_RESERVED: u32 = !(DOT11_PACKET_TYPE_DIRECTED_CTRL
+ | DOT11_PACKET_TYPE_DIRECTED_MGMT | DOT11_PACKET_TYPE_DIRECTED_DATA
+ | DOT11_PACKET_TYPE_MULTICAST_CTRL | DOT11_PACKET_TYPE_MULTICAST_MGMT
+ | DOT11_PACKET_TYPE_MULTICAST_DATA | DOT11_PACKET_TYPE_BROADCAST_CTRL
+ | DOT11_PACKET_TYPE_BROADCAST_MGMT | DOT11_PACKET_TYPE_BROADCAST_DATA
+ | DOT11_PACKET_TYPE_PROMISCUOUS_CTRL | DOT11_PACKET_TYPE_PROMISCUOUS_MGMT
+ | DOT11_PACKET_TYPE_PROMISCUOUS_DATA | DOT11_PACKET_TYPE_ALL_MULTICAST_CTRL
+ | DOT11_PACKET_TYPE_ALL_MULTICAST_MGMT | DOT11_PACKET_TYPE_ALL_MULTICAST_DATA | 0);
+pub const OID_DOT11_ATIM_WINDOW: u32 = OID_DOT11_NDIS_START + 10;
+pub const OID_DOT11_SCAN_REQUEST: u32 = OID_DOT11_NDIS_START + 11;
+ENUM!{enum DOT11_SCAN_TYPE {
+ dot11_scan_type_active = 1,
+ dot11_scan_type_passive = 2,
+ dot11_scan_type_auto = 3,
+ dot11_scan_type_forced = 0x80000000,
+}}
+pub type PDOT11_SCAN_TYPE = *mut DOT11_SCAN_TYPE;
+STRUCT!{struct DOT11_SCAN_REQUEST {
+ dot11BSSType: DOT11_BSS_TYPE,
+ dot11BSSID: DOT11_MAC_ADDRESS,
+ dot11SSID: DOT11_SSID,
+ dot11ScanType: DOT11_SCAN_TYPE,
+ bRestrictedScan: BOOLEAN,
+ bUseRequestIE: BOOLEAN,
+ uRequestIDsOffset: ULONG,
+ uNumOfRequestIDs: ULONG,
+ uPhyTypesOffset: ULONG,
+ uNumOfPhyTypes: ULONG,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_SCAN_REQUEST = *mut DOT11_SCAN_REQUEST;
+ENUM!{enum CH_DESCRIPTION_TYPE {
+ ch_description_type_logical = 1,
+ ch_description_type_center_frequency = 2,
+ ch_description_type_phy_specific = 3,
+}}
+pub type PCH_DESCRIPTION_TYPE = *mut CH_DESCRIPTION_TYPE;
+STRUCT!{struct DOT11_PHY_TYPE_INFO {
+ dot11PhyType: DOT11_PHY_TYPE,
+ bUseParameters: BOOLEAN,
+ uProbeDelay: ULONG,
+ uMinChannelTime: ULONG,
+ uMaxChannelTime: ULONG,
+ ChDescriptionType: CH_DESCRIPTION_TYPE,
+ uChannelListSize: ULONG,
+ ucChannelListBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_PHY_TYPE_INFO = *mut DOT11_PHY_TYPE_INFO;
+STRUCT!{struct DOT11_SCAN_REQUEST_V2 {
+ dot11BSSType: DOT11_BSS_TYPE,
+ dot11BSSID: DOT11_MAC_ADDRESS,
+ dot11ScanType: DOT11_SCAN_TYPE,
+ bRestrictedScan: BOOLEAN,
+ udot11SSIDsOffset: ULONG,
+ uNumOfdot11SSIDs: ULONG,
+ bUseRequestIE: BOOLEAN,
+ uRequestIDsOffset: ULONG,
+ uNumOfRequestIDs: ULONG,
+ uPhyTypeInfosOffset: ULONG,
+ uNumOfPhyTypeInfos: ULONG,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_SCAN_REQUEST_V2 = *mut DOT11_SCAN_REQUEST_V2;
+pub const OID_DOT11_CURRENT_PHY_TYPE: u32 = OID_DOT11_NDIS_START + 12;
+STRUCT!{struct DOT11_PHY_TYPE_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11PhyType: [DOT11_PHY_TYPE; 1],
+}}
+pub type PDOT11_PHY_TYPE_LIST = *mut DOT11_PHY_TYPE_LIST;
+pub const DOT11_PHY_TYPE_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 13;
+pub const DOT11_CAPABILITY_INFO_ESS: USHORT = 0x0001;
+pub const DOT11_CAPABILITY_INFO_IBSS: USHORT = 0x0002;
+pub const DOT11_CAPABILITY_INFO_CF_POLLABLE: USHORT = 0x0004;
+pub const DOT11_CAPABILITY_INFO_CF_POLL_REQ: USHORT = 0x0008;
+pub const DOT11_CAPABILITY_INFO_PRIVACY: USHORT = 0x0010;
+pub const DOT11_CAPABILITY_SHORT_PREAMBLE: USHORT = 0x0020;
+pub const DOT11_CAPABILITY_PBCC: USHORT = 0x0040;
+pub const DOT11_CAPABILITY_CHANNEL_AGILITY: USHORT = 0x0080;
+pub const DOT11_CAPABILITY_SHORT_SLOT_TIME: USHORT = 0x0400;
+pub const DOT11_CAPABILITY_DSSSOFDM: USHORT = 0x2000;
+STRUCT!{struct DOT11_BSS_DESCRIPTION {
+ uReserved: ULONG,
+ dot11BSSID: DOT11_MAC_ADDRESS,
+ dot11BSSType: DOT11_BSS_TYPE,
+ usBeaconPeriod: USHORT,
+ ullTimestamp: ULONGLONG,
+ usCapabilityInformation: USHORT,
+ uBufferLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_BSS_DESCRIPTION = *mut DOT11_BSS_DESCRIPTION;
+STRUCT!{struct DOT11_JOIN_REQUEST {
+ uJoinFailureTimeout: ULONG,
+ OperationalRateSet: DOT11_RATE_SET,
+ uChCenterFrequency: ULONG,
+ dot11BSSDescription: DOT11_BSS_DESCRIPTION,
+}}
+pub type PDOT11_JOIN_REQUEST = *mut DOT11_JOIN_REQUEST;
+pub const OID_DOT11_START_REQUEST: u32 = OID_DOT11_NDIS_START + 14;
+STRUCT!{struct DOT11_START_REQUEST {
+ uStartFailureTimeout: ULONG,
+ OperationalRateSet: DOT11_RATE_SET,
+ uChCenterFrequency: ULONG,
+ dot11BSSDescription: DOT11_BSS_DESCRIPTION,
+}}
+pub type PDOT11_START_REQUEST = *mut DOT11_START_REQUEST;
+pub const OID_DOT11_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 15;
+ENUM!{enum DOT11_UPDATE_IE_OP {
+ dot11_update_ie_op_create_replace = 1,
+ dot11_update_ie_op_delete = 2,
+}}
+pub type PDOT11_UPDATE_IE_OP = *mut DOT11_UPDATE_IE_OP;
+STRUCT!{struct DOT11_UPDATE_IE {
+ dot11UpdateIEOp: DOT11_UPDATE_IE_OP,
+ uBufferLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_UPDATE_IE = *mut DOT11_UPDATE_IE;
+pub const OID_DOT11_RESET_REQUEST: u32 = OID_DOT11_NDIS_START + 16;
+ENUM!{enum DOT11_RESET_TYPE {
+ dot11_reset_type_phy = 1,
+ dot11_reset_type_mac = 2,
+ dot11_reset_type_phy_and_mac = 3,
+}}
+pub type PDOT11_RESET_TYPE = *mut DOT11_RESET_TYPE;
+STRUCT!{struct DOT11_RESET_REQUEST {
+ dot11ResetType: DOT11_RESET_TYPE,
+ dot11MacAddress: DOT11_MAC_ADDRESS,
+ bSetDefaultMIB: BOOLEAN,
+}}
+pub type PDOT11_RESET_REQUEST = *mut DOT11_RESET_REQUEST;
+pub const OID_DOT11_NIC_POWER_STATE: u32 = OID_DOT11_NDIS_START + 17;
+pub const OID_DOT11_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 18;
+STRUCT!{struct DOT11_OPTIONAL_CAPABILITY {
+ uReserved: ULONG,
+ bDot11PCF: BOOLEAN,
+ bDot11PCFMPDUTransferToPC: BOOLEAN,
+ bStrictlyOrderedServiceClass: BOOLEAN,
+}}
+pub type PDOT11_OPTIONAL_CAPABILITY = *mut DOT11_OPTIONAL_CAPABILITY;
+pub const OID_DOT11_CURRENT_OPTIONAL_CAPABILITY: u32 = OID_DOT11_NDIS_START + 19;
+STRUCT!{struct DOT11_CURRENT_OPTIONAL_CAPABILITY {
+ uReserved: ULONG,
+ bDot11CFPollable: BOOLEAN,
+ bDot11PCF: BOOLEAN,
+ bDot11PCFMPDUTransferToPC: BOOLEAN,
+ bStrictlyOrderedServiceClass: BOOLEAN,
+}}
+pub type PDOT11_CURRENT_OPTIONAL_CAPABILITY = *mut DOT11_CURRENT_OPTIONAL_CAPABILITY;
+pub const OID_DOT11_STATION_ID: u32 = OID_DOT11_NDIS_START + 20;
+pub const OID_DOT11_MEDIUM_OCCUPANCY_LIMIT: u32 = OID_DOT11_NDIS_START + 21;
+pub const OID_DOT11_CF_POLLABLE: u32 = OID_DOT11_NDIS_START + 22;
+pub const OID_DOT11_CFP_PERIOD: u32 = OID_DOT11_NDIS_START + 23;
+pub const OID_DOT11_CFP_MAX_DURATION: u32 = OID_DOT11_NDIS_START + 24;
+pub const OID_DOT11_POWER_MGMT_MODE: u32 = OID_DOT11_NDIS_START + 25;
+ENUM!{enum DOT11_POWER_MODE {
+ dot11_power_mode_unknown = 0,
+ dot11_power_mode_active = 1,
+ dot11_power_mode_powersave = 2,
+}}
+pub type PDOT11_POWER_MODE = *mut DOT11_POWER_MODE;
+pub const DOT11_POWER_SAVE_LEVEL_MAX_PSP: ULONG = 1;
+pub const DOT11_POWER_SAVE_LEVEL_FAST_PSP: ULONG = 2;
+STRUCT!{struct DOT11_POWER_MGMT_MODE {
+ dot11PowerMode: DOT11_POWER_MODE,
+ uPowerSaveLevel: ULONG,
+ usListenInterval: USHORT,
+ usAID: USHORT,
+ bReceiveDTIMs: BOOLEAN,
+}}
+pub type PDOT11_POWER_MGMT_MODE = *mut DOT11_POWER_MGMT_MODE;
+pub const OID_DOT11_OPERATIONAL_RATE_SET: u32 = OID_DOT11_NDIS_START + 26;
+pub const OID_DOT11_BEACON_PERIOD: u32 = OID_DOT11_NDIS_START + 27;
+pub const OID_DOT11_DTIM_PERIOD: u32 = OID_DOT11_NDIS_START + 28;
+pub const OID_DOT11_WEP_ICV_ERROR_COUNT: u32 = OID_DOT11_NDIS_START + 29;
+pub const OID_DOT11_MAC_ADDRESS: u32 = OID_DOT11_NDIS_START + 30;
+pub const OID_DOT11_RTS_THRESHOLD: u32 = OID_DOT11_NDIS_START + 31;
+pub const OID_DOT11_SHORT_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 32;
+pub const OID_DOT11_LONG_RETRY_LIMIT: u32 = OID_DOT11_NDIS_START + 33;
+pub const OID_DOT11_FRAGMENTATION_THRESHOLD: u32 = OID_DOT11_NDIS_START + 34;
+pub const OID_DOT11_MAX_TRANSMIT_MSDU_LIFETIME: u32 = OID_DOT11_NDIS_START + 35;
+pub const OID_DOT11_MAX_RECEIVE_LIFETIME: u32 = OID_DOT11_NDIS_START + 36;
+pub const OID_DOT11_COUNTERS_ENTRY: u32 = OID_DOT11_NDIS_START + 37;
+STRUCT!{struct DOT11_COUNTERS_ENTRY {
+ uTransmittedFragmentCount: ULONG,
+ uMulticastTransmittedFrameCount: ULONG,
+ uFailedCount: ULONG,
+ uRetryCount: ULONG,
+ uMultipleRetryCount: ULONG,
+ uFrameDuplicateCount: ULONG,
+ uRTSSuccessCount: ULONG,
+ uRTSFailureCount: ULONG,
+ uACKFailureCount: ULONG,
+ uReceivedFragmentCount: ULONG,
+ uMulticastReceivedFrameCount: ULONG,
+ uFCSErrorCount: ULONG,
+ uTransmittedFrameCount: ULONG,
+}}
+pub type PDOT11_COUNTERS_ENTRY = *mut DOT11_COUNTERS_ENTRY;
+pub const OID_DOT11_SUPPORTED_PHY_TYPES: u32 = OID_DOT11_NDIS_START + 38;
+STRUCT!{struct DOT11_SUPPORTED_PHY_TYPES {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11PHYType: [DOT11_PHY_TYPE; 1],
+}}
+pub type PDOT11_SUPPORTED_PHY_TYPES = *mut DOT11_SUPPORTED_PHY_TYPES;
+pub const OID_DOT11_CURRENT_REG_DOMAIN: u32 = OID_DOT11_NDIS_START + 39;
+pub const DOT11_REG_DOMAIN_OTHER: ULONG = 0x00000000;
+pub const DOT11_REG_DOMAIN_FCC: ULONG = 0x00000010;
+pub const DOT11_REG_DOMAIN_DOC: ULONG = 0x00000020;
+pub const DOT11_REG_DOMAIN_ETSI: ULONG = 0x00000030;
+pub const DOT11_REG_DOMAIN_SPAIN: ULONG = 0x00000031;
+pub const DOT11_REG_DOMAIN_FRANCE: ULONG = 0x00000032;
+pub const DOT11_REG_DOMAIN_MKK: ULONG = 0x00000040;
+pub const OID_DOT11_TEMP_TYPE: u32 = OID_DOT11_NDIS_START + 40;
+ENUM!{enum DOT11_TEMP_TYPE {
+ dot11_temp_type_unknown = 0,
+ dot11_temp_type_1 = 1,
+ dot11_temp_type_2 = 2,
+}}
+pub type PDOT11_TEMP_TYPE = *mut DOT11_TEMP_TYPE;
+pub const OID_DOT11_CURRENT_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 41;
+pub const OID_DOT11_DIVERSITY_SUPPORT: u32 = OID_DOT11_NDIS_START + 42;
+ENUM!{enum DOT11_DIVERSITY_SUPPORT {
+ dot11_diversity_support_unknown = 0,
+ dot11_diversity_support_fixedlist = 1,
+ dot11_diversity_support_notsupported = 2,
+ dot11_diversity_support_dynamic = 3,
+}}
+pub type PDOT11_DIVERSITY_SUPPORT = *mut DOT11_DIVERSITY_SUPPORT;
+pub const OID_DOT11_CURRENT_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 43;
+pub const OID_DOT11_SUPPORTED_POWER_LEVELS: u32 = OID_DOT11_NDIS_START + 44;
+STRUCT!{struct DOT11_SUPPORTED_POWER_LEVELS {
+ uNumOfSupportedPowerLevels: ULONG,
+ uTxPowerLevelValues: [ULONG; 8],
+}}
+pub type PDOT11_SUPPORTED_POWER_LEVELS = *mut DOT11_SUPPORTED_POWER_LEVELS;
+pub const OID_DOT11_CURRENT_TX_POWER_LEVEL: u32 = OID_DOT11_NDIS_START + 45;
+pub const OID_DOT11_HOP_TIME: u32 = OID_DOT11_NDIS_START + 46;
+pub const OID_DOT11_CURRENT_CHANNEL_NUMBER: u32 = OID_DOT11_NDIS_START + 47;
+pub const OID_DOT11_MAX_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 48;
+pub const OID_DOT11_CURRENT_DWELL_TIME: u32 = OID_DOT11_NDIS_START + 49;
+pub const OID_DOT11_CURRENT_SET: u32 = OID_DOT11_NDIS_START + 50;
+pub const OID_DOT11_CURRENT_PATTERN: u32 = OID_DOT11_NDIS_START + 51;
+pub const OID_DOT11_CURRENT_INDEX: u32 = OID_DOT11_NDIS_START + 52;
+pub const OID_DOT11_CURRENT_CHANNEL: u32 = OID_DOT11_NDIS_START + 53;
+pub const OID_DOT11_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 54;
+pub const DOT11_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
+pub const DOT11_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
+pub const DOT11_CCA_MODE_ED_and_CS: ULONG = 0x00000004;
+pub const DOT11_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
+pub const DOT11_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
+pub const OID_DOT11_CURRENT_CCA_MODE: u32 = OID_DOT11_NDIS_START + 55;
+pub const OID_DOT11_ED_THRESHOLD: u32 = OID_DOT11_NDIS_START + 56;
+pub const OID_DOT11_CCA_WATCHDOG_TIMER_MAX: u32 = OID_DOT11_NDIS_START + 57;
+pub const OID_DOT11_CCA_WATCHDOG_COUNT_MAX: u32 = OID_DOT11_NDIS_START + 58;
+pub const OID_DOT11_CCA_WATCHDOG_TIMER_MIN: u32 = OID_DOT11_NDIS_START + 59;
+pub const OID_DOT11_CCA_WATCHDOG_COUNT_MIN: u32 = OID_DOT11_NDIS_START + 60;
+pub const OID_DOT11_REG_DOMAINS_SUPPORT_VALUE: u32 = OID_DOT11_NDIS_START + 61;
+STRUCT!{struct DOT11_REG_DOMAIN_VALUE {
+ uRegDomainsSupportIndex: ULONG,
+ uRegDomainsSupportValue: ULONG,
+}}
+pub type PDOT11_REG_DOMAIN_VALUE = *mut DOT11_REG_DOMAIN_VALUE;
+STRUCT!{struct DOT11_REG_DOMAINS_SUPPORT_VALUE {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11RegDomainValue: [DOT11_REG_DOMAIN_VALUE; 1],
+}}
+pub type PDOT11_REG_DOMAINS_SUPPORT_VALUE = *mut DOT11_REG_DOMAINS_SUPPORT_VALUE;
+pub const OID_DOT11_SUPPORTED_TX_ANTENNA: u32 = OID_DOT11_NDIS_START + 62;
+STRUCT!{struct DOT11_SUPPORTED_ANTENNA {
+ uAntennaListIndex: ULONG,
+ bSupportedAntenna: BOOLEAN,
+}}
+pub type PDOT11_SUPPORTED_ANTENNA = *mut DOT11_SUPPORTED_ANTENNA;
+STRUCT!{struct DOT11_SUPPORTED_ANTENNA_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11SupportedAntenna: [DOT11_SUPPORTED_ANTENNA; 1],
+}}
+pub type PDOT11_SUPPORTED_ANTENNA_LIST = *mut DOT11_SUPPORTED_ANTENNA_LIST;
+pub const OID_DOT11_SUPPORTED_RX_ANTENNA: u32 = OID_DOT11_NDIS_START + 63;
+pub const OID_DOT11_DIVERSITY_SELECTION_RX: u32 = OID_DOT11_NDIS_START + 64;
+STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX {
+ uAntennaListIndex: ULONG,
+ bDiversitySelectionRX: BOOLEAN,
+}}
+pub type PDOT11_DIVERSITY_SELECTION_RX = *mut DOT11_DIVERSITY_SELECTION_RX;
+STRUCT!{struct DOT11_DIVERSITY_SELECTION_RX_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11DiversitySelectionRx: [DOT11_DIVERSITY_SELECTION_RX; 1],
+}}
+pub type PDOT11_DIVERSITY_SELECTION_RX_LIST = *mut DOT11_DIVERSITY_SELECTION_RX_LIST;
+pub const OID_DOT11_SUPPORTED_DATA_RATES_VALUE: u32 = OID_DOT11_NDIS_START + 65;
+pub const MAX_NUM_SUPPORTED_RATES: usize = 8;
+pub const MAX_NUM_SUPPORTED_RATES_V2: usize = 255;
+STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE {
+ ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
+ ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES],
+}}
+pub type PDOT11_SUPPORTED_DATA_RATES_VALUE = *mut DOT11_SUPPORTED_DATA_RATES_VALUE;
+STRUCT!{struct DOT11_SUPPORTED_DATA_RATES_VALUE_V2 {
+ ucSupportedTxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
+ ucSupportedRxDataRatesValue: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
+}}
+pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V2 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
+pub type DOT11_SUPPORTED_DATA_RATES_VALUE_V1 = DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
+pub type PDOT11_SUPPORTED_DATA_RATES_VALUE_V1 = *mut DOT11_SUPPORTED_DATA_RATES_VALUE_V2;
+pub const OID_DOT11_CURRENT_FREQUENCY: u32 = OID_DOT11_NDIS_START + 66;
+pub const OID_DOT11_TI_THRESHOLD: u32 = OID_DOT11_NDIS_START + 67;
+pub const OID_DOT11_FREQUENCY_BANDS_SUPPORTED: u32 = OID_DOT11_NDIS_START + 68;
+pub const DOT11_FREQUENCY_BANDS_LOWER: u32 = 0x00000001;
+pub const DOT11_FREQUENCY_BANDS_MIDDLE: u32 = 0x00000002;
+pub const DOT11_FREQUENCY_BANDS_UPPER: u32 = 0x00000004;
+pub const OID_DOT11_SHORT_PREAMBLE_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 69;
+pub const OID_DOT11_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 70;
+pub const OID_DOT11_CHANNEL_AGILITY_PRESENT: u32 = OID_DOT11_NDIS_START + 71;
+pub const OID_DOT11_CHANNEL_AGILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 72;
+pub const OID_DOT11_HR_CCA_MODE_SUPPORTED: u32 = OID_DOT11_NDIS_START + 73;
+pub const DOT11_HR_CCA_MODE_ED_ONLY: ULONG = 0x00000001;
+pub const DOT11_HR_CCA_MODE_CS_ONLY: ULONG = 0x00000002;
+pub const DOT11_HR_CCA_MODE_CS_AND_ED: ULONG = 0x00000004;
+pub const DOT11_HR_CCA_MODE_CS_WITH_TIMER: ULONG = 0x00000008;
+pub const DOT11_HR_CCA_MODE_HRCS_AND_ED: ULONG = 0x00000010;
+pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 74;
+pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 75;
+pub const OID_DOT11_COUNTRY_STRING: u32 = OID_DOT11_NDIS_START + 76;
+STRUCT!{struct DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY {
+ uMultiDomainCapabilityIndex: ULONG,
+ uFirstChannelNumber: ULONG,
+ uNumberOfChannels: ULONG,
+ lMaximumTransmitPowerLevel: LONG,
+}}
+pub type PDOT11_MULTI_DOMAIN_CAPABILITY_ENTRY = *mut DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY;
+STRUCT!{struct DOT11_MD_CAPABILITY_ENTRY_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11MDCapabilityEntry: [DOT11_MULTI_DOMAIN_CAPABILITY_ENTRY; 1],
+}}
+pub type PDOT11_MD_CAPABILITY_ENTRY_LIST = *mut DOT11_MD_CAPABILITY_ENTRY_LIST;
+pub const OID_DOT11_MULTI_DOMAIN_CAPABILITY: u32 = OID_DOT11_NDIS_START + 77;
+pub const OID_DOT11_EHCC_PRIME_RADIX: u32 = OID_DOT11_NDIS_START + 78;
+pub const OID_DOT11_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX: u32 = OID_DOT11_NDIS_START + 79;
+pub const OID_DOT11_EHCC_CAPABILITY_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 80;
+pub const OID_DOT11_EHCC_CAPABILITY_ENABLED: u32 = OID_DOT11_NDIS_START + 81;
+pub const OID_DOT11_HOP_ALGORITHM_ADOPTED: u32 = OID_DOT11_NDIS_START + 82;
+ENUM!{enum DOT11_HOP_ALGO_ADOPTED {
+ dot11_hop_algo_current = 0,
+ dot11_hop_algo_hop_index = 1,
+ dot11_hop_algo_hcc = 2,
+}}
+pub type PDOT11_HOP_ALGO_ADOPTED = *mut DOT11_HOP_ALGO_ADOPTED;
+pub const OID_DOT11_RANDOM_TABLE_FLAG: u32 = OID_DOT11_NDIS_START + 83;
+pub const OID_DOT11_NUMBER_OF_HOPPING_SETS: u32 = OID_DOT11_NDIS_START + 84;
+pub const OID_DOT11_HOP_MODULUS: u32 = OID_DOT11_NDIS_START + 85;
+pub const OID_DOT11_HOP_OFFSET: u32 = OID_DOT11_NDIS_START + 86;
+pub const OID_DOT11_HOPPING_PATTERN: u32 = OID_DOT11_NDIS_START + 87;
+STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY {
+ uHoppingPatternIndex: ULONG,
+ uRandomTableFieldNumber: ULONG,
+}}
+pub type PDOT11_HOPPING_PATTERN_ENTRY = *mut DOT11_HOPPING_PATTERN_ENTRY;
+STRUCT!{struct DOT11_HOPPING_PATTERN_ENTRY_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11HoppingPatternEntry: [DOT11_HOPPING_PATTERN_ENTRY; 1],
+}}
+pub type PDOT11_HOPPING_PATTERN_ENTRY_LIST = *mut DOT11_HOPPING_PATTERN_ENTRY_LIST;
+pub const OID_DOT11_RANDOM_TABLE_FIELD_NUMBER: u32 = OID_DOT11_NDIS_START + 88;
+pub const OID_DOT11_WPA_TSC: u32 = OID_DOT11_NDIS_START + 89;
+STRUCT!{struct DOT11_WPA_TSC {
+ uReserved: ULONG,
+ dot11OffloadType: DOT11_OFFLOAD_TYPE,
+ hOffload: HANDLE,
+ dot11IV48Counter: DOT11_IV48_COUNTER,
+}}
+pub type PDOT11_WPA_TSC = *mut DOT11_WPA_TSC;
+pub const OID_DOT11_RSSI_RANGE: u32 = OID_DOT11_NDIS_START + 90;
+STRUCT!{struct DOT11_RSSI_RANGE {
+ dot11PhyType: DOT11_PHY_TYPE,
+ uRSSIMin: ULONG,
+ uRSSIMax: ULONG,
+}}
+pub type PDOT11_RSSI_RANGE = *mut DOT11_RSSI_RANGE;
+pub const OID_DOT11_RF_USAGE: u32 = OID_DOT11_NDIS_START + 91;
+pub const OID_DOT11_NIC_SPECIFIC_EXTENSION: u32 = OID_DOT11_NDIS_START + 92;
+STRUCT!{struct DOT11_NIC_SPECIFIC_EXTENSION {
+ uBufferLength: ULONG,
+ uTotalBufferLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_NIC_SPECIFIC_EXTENSION = *mut DOT11_NIC_SPECIFIC_EXTENSION;
+pub const OID_DOT11_AP_JOIN_REQUEST: u32 = OID_DOT11_NDIS_START + 93;
+STRUCT!{struct DOT11_AP_JOIN_REQUEST {
+ uJoinFailureTimeout: ULONG,
+ OperationalRateSet: DOT11_RATE_SET,
+ uChCenterFrequency: ULONG,
+ dot11BSSDescription: DOT11_BSS_DESCRIPTION,
+}}
+pub type PDOT11_AP_JOIN_REQUEST = *mut DOT11_AP_JOIN_REQUEST;
+pub const OID_DOT11_ERP_PBCC_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 94;
+pub const OID_DOT11_ERP_PBCC_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 95;
+pub const OID_DOT11_DSSS_OFDM_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 96;
+pub const OID_DOT11_DSSS_OFDM_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 97;
+pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 98;
+pub const OID_DOT11_SHORT_SLOT_TIME_OPTION_ENABLED: u32 = OID_DOT11_NDIS_START + 99;
+pub const OID_DOT11_MAX_MAC_ADDRESS_STATES: u32 = OID_DOT11_NDIS_START + 100;
+pub const OID_DOT11_RECV_SENSITIVITY_LIST: u32 = OID_DOT11_NDIS_START + 101;
+STRUCT!{struct DOT11_RECV_SENSITIVITY {
+ ucDataRate: UCHAR,
+ lRSSIMin: LONG,
+ lRSSIMax: LONG,
+}}
+pub type PDOT11_RECV_SENSITIVITY = *mut DOT11_RECV_SENSITIVITY;
+UNION!{union DOT11_RECV_SENSITIVITY_LIST_u {
+ [u32; 1],
+ dot11PhyType dot11PhyType_mut: DOT11_PHY_TYPE,
+ uPhyId uPhyId_mut: ULONG,
+}}
+STRUCT!{struct DOT11_RECV_SENSITIVITY_LIST {
+ u: DOT11_RECV_SENSITIVITY_LIST_u,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11RecvSensitivity: [DOT11_RECV_SENSITIVITY; 1],
+}}
+pub type PDOT11_RECV_SENSITIVITY_LIST = *mut DOT11_RECV_SENSITIVITY_LIST;
+pub const OID_DOT11_WME_IMPLEMENTED: u32 = OID_DOT11_NDIS_START + 102;
+pub const OID_DOT11_WME_ENABLED: u32 = OID_DOT11_NDIS_START + 103;
+pub const OID_DOT11_WME_AC_PARAMETERS: u32 = OID_DOT11_NDIS_START + 104;
+ENUM!{enum DOT11_AC_PARAM {
+ dot11_AC_param_BE = 0,
+ dot11_AC_param_BK = 1,
+ dot11_AC_param_VI = 2,
+ dot11_AC_param_VO = 3,
+ dot11_AC_param_max = 4,
+}}
+pub type PDOT11_AC_PARAM = *mut DOT11_AC_PARAM;
+STRUCT!{struct DOT11_WME_AC_PARAMETERS {
+ ucAccessCategoryIndex: UCHAR,
+ ucAIFSN: UCHAR,
+ ucECWmin: UCHAR,
+ ucECWmax: UCHAR,
+ usTXOPLimit: USHORT,
+}}
+pub type PDOT11_WME_AC_PARAMETERS = *mut DOT11_WME_AC_PARAMETERS;
+STRUCT!{struct DOT11_WME_AC_PARAMETERS_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11WMEACParameters: [DOT11_WME_AC_PARAMETERS; 1],
+}}
+pub type PDOT11_WME_AC_PARAMETERS_LIST = *mut DOT11_WME_AC_PARAMETERS_LIST;
+pub const OID_DOT11_WME_UPDATE_IE: u32 = OID_DOT11_NDIS_START + 105;
+STRUCT!{struct DOT11_WME_UPDATE_IE {
+ uParamElemMinBeaconIntervals: ULONG,
+ uWMEInfoElemOffset: ULONG,
+ uWMEInfoElemLength: ULONG,
+ uWMEParamElemOffset: ULONG,
+ uWMEParamElemLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_WME_UPDATE_IE = *mut DOT11_WME_UPDATE_IE;
+pub const OID_DOT11_QOS_TX_QUEUES_SUPPORTED: u32 = OID_DOT11_NDIS_START + 106;
+pub const OID_DOT11_QOS_TX_DURATION: u32 = OID_DOT11_NDIS_START + 107;
+STRUCT!{struct DOT11_QOS_TX_DURATION {
+ uNominalMSDUSize: ULONG,
+ uMinPHYRate: ULONG,
+ uDuration: ULONG,
+}}
+pub type PDOT11_QOS_TX_DURATION = *mut DOT11_QOS_TX_DURATION;
+pub const OID_DOT11_QOS_TX_MEDIUM_TIME: u32 = OID_DOT11_NDIS_START + 108;
+STRUCT!{struct DOT11_QOS_TX_MEDIUM_TIME {
+ dot11PeerAddress: DOT11_MAC_ADDRESS,
+ ucQoSPriority: UCHAR,
+ uMediumTimeAdmited: ULONG,
+}}
+pub type PDOT11_QOS_TX_MEDIUM_TIME = *mut DOT11_QOS_TX_MEDIUM_TIME;
+pub const OID_DOT11_SUPPORTED_OFDM_FREQUENCY_LIST: u32 = OID_DOT11_NDIS_START + 109;
+STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY {
+ uCenterFrequency: ULONG,
+}}
+pub type PDOT11_SUPPORTED_OFDM_FREQUENCY = *mut DOT11_SUPPORTED_OFDM_FREQUENCY;
+STRUCT!{struct DOT11_SUPPORTED_OFDM_FREQUENCY_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11SupportedOFDMFrequency: [DOT11_SUPPORTED_OFDM_FREQUENCY; 1],
+}}
+pub type PDOT11_SUPPORTED_OFDM_FREQUENCY_LIST = *mut DOT11_SUPPORTED_OFDM_FREQUENCY_LIST;
+pub const OID_DOT11_SUPPORTED_DSSS_CHANNEL_LIST: u32 = OID_DOT11_NDIS_START + 110;
+STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL {
+ uChannel: ULONG,
+}}
+pub type PDOT11_SUPPORTED_DSSS_CHANNEL = *mut DOT11_SUPPORTED_DSSS_CHANNEL;
+STRUCT!{struct DOT11_SUPPORTED_DSSS_CHANNEL_LIST {
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11SupportedDSSSChannel: [DOT11_SUPPORTED_DSSS_CHANNEL; 1],
+}}
+pub type PDOT11_SUPPORTED_DSSS_CHANNEL_LIST = *mut DOT11_SUPPORTED_DSSS_CHANNEL_LIST;
+STRUCT!{struct DOT11_BYTE_ARRAY {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfBytes: ULONG,
+ uTotalNumOfBytes: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_BYTE_ARRAY = *mut DOT11_BYTE_ARRAY;
+pub const OID_DOT11_AUTO_CONFIG_ENABLED: u32 =
+ NWF_DEFINE_OID!(120, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const DOT11_PHY_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000001;
+pub const DOT11_MAC_AUTO_CONFIG_ENABLED_FLAG: ULONG = 0x00000002;
+pub const OID_DOT11_ENUM_BSS_LIST: u32 =
+ NWF_DEFINE_OID!(121, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const DOT11_BSS_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS {
+ uHopPattern: ULONG,
+ uHopSet: ULONG,
+ uDwellTime: ULONG,
+}}
+UNION!{union DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO {
+ [u32; 3],
+ uChCenterFrequency uChCenterFrequency_mut: ULONG,
+ FHSS FHSS_mut: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO_FHSS,
+}}
+pub type PDOT11_BSS_ENTRY_PHY_SPECIFIC_INFO = *mut DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO;
+STRUCT!{struct DOT11_BSS_ENTRY {
+ uPhyId: ULONG,
+ PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO,
+ dot11BSSID: DOT11_MAC_ADDRESS,
+ dot11BSSType: DOT11_BSS_TYPE,
+ lRSSI: LONG,
+ uLinkQuality: ULONG,
+ bInRegDomain: BOOLEAN,
+ usBeaconPeriod: USHORT,
+ ullTimestamp: ULONGLONG,
+ ullHostTimestamp: ULONGLONG,
+ usCapabilityInformation: USHORT,
+ uBufferLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_BSS_ENTRY = *mut DOT11_BSS_ENTRY;
+pub const OID_DOT11_FLUSH_BSS_LIST: u32 =
+ NWF_DEFINE_OID!(122, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_POWER_MGMT_REQUEST: u32 =
+ NWF_DEFINE_OID!(123, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const DOT11_POWER_SAVING_NO_POWER_SAVING: ULONG = 0;
+pub const DOT11_POWER_SAVING_FAST_PSP: ULONG = 8;
+pub const DOT11_POWER_SAVING_MAX_PSP: ULONG = 16;
+pub const DOT11_POWER_SAVING_MAXIMUM_LEVEL: ULONG = 24;
+pub const OID_DOT11_DESIRED_SSID_LIST: u32 =
+ NWF_DEFINE_OID!(124, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_SSID_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ SSIDs: [DOT11_SSID; 1],
+}}
+pub type PDOT11_SSID_LIST = *mut DOT11_SSID_LIST;
+pub const DOT11_SSID_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_EXCLUDED_MAC_ADDRESS_LIST: u32 =
+ NWF_DEFINE_OID!(125, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_MAC_ADDRESS_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ MacAddrs: [DOT11_MAC_ADDRESS; 1],
+}}
+pub type PDOT11_MAC_ADDRESS_LIST = *mut DOT11_MAC_ADDRESS_LIST;
+pub const DOT11_MAC_ADDRESS_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_DESIRED_BSSID_LIST: u32 =
+ NWF_DEFINE_OID!(126, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_DESIRED_BSS_TYPE: u32 =
+ NWF_DEFINE_OID!(127, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_PMKID_LIST: u32 = NWF_DEFINE_OID!(128, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
+pub type DOT11_PMKID_VALUE = [UCHAR; 16];
+STRUCT!{struct DOT11_PMKID_ENTRY {
+ BSSID: DOT11_MAC_ADDRESS,
+ PMKID: DOT11_PMKID_VALUE,
+ uFlags: ULONG,
+}}
+pub type PDOT11_PMKID_ENTRY = *mut DOT11_PMKID_ENTRY;
+STRUCT!{struct DOT11_PMKID_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ PMKIDs: [DOT11_PMKID_ENTRY; 1],
+}}
+pub type PDOT11_PMKID_LIST = *mut DOT11_PMKID_LIST;
+pub const DOT11_PMKID_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_CONNECT_REQUEST: u32 =
+ NWF_DEFINE_OID!(129, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_EXCLUDE_UNENCRYPTED: u32 =
+ NWF_DEFINE_OID!(130, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_STATISTICS: u32 =
+ NWF_DEFINE_OID!(131, NWF_STATISTICS_OID, NWF_MANDATORY_OID);
+pub const DOT11_STATISTICS_UNKNOWN: ULONGLONG = -1i64 as u64;
+STRUCT!{struct DOT11_PHY_FRAME_STATISTICS {
+ ullTransmittedFrameCount: ULONGLONG,
+ ullMulticastTransmittedFrameCount: ULONGLONG,
+ ullFailedCount: ULONGLONG,
+ ullRetryCount: ULONGLONG,
+ ullMultipleRetryCount: ULONGLONG,
+ ullMaxTXLifetimeExceededCount: ULONGLONG,
+ ullTransmittedFragmentCount: ULONGLONG,
+ ullRTSSuccessCount: ULONGLONG,
+ ullRTSFailureCount: ULONGLONG,
+ ullACKFailureCount: ULONGLONG,
+ ullReceivedFrameCount: ULONGLONG,
+ ullMulticastReceivedFrameCount: ULONGLONG,
+ ullPromiscuousReceivedFrameCount: ULONGLONG,
+ ullMaxRXLifetimeExceededCount: ULONGLONG,
+ ullFrameDuplicateCount: ULONGLONG,
+ ullReceivedFragmentCount: ULONGLONG,
+ ullPromiscuousReceivedFragmentCount: ULONGLONG,
+ ullFCSErrorCount: ULONGLONG,
+}}
+pub type PDOT11_PHY_FRAME_STATISTICS = *mut DOT11_PHY_FRAME_STATISTICS;
+STRUCT!{struct DOT11_MAC_FRAME_STATISTICS {
+ ullTransmittedFrameCount: ULONGLONG,
+ ullReceivedFrameCount: ULONGLONG,
+ ullTransmittedFailureFrameCount: ULONGLONG,
+ ullReceivedFailureFrameCount: ULONGLONG,
+ ullWEPExcludedCount: ULONGLONG,
+ ullTKIPLocalMICFailures: ULONGLONG,
+ ullTKIPReplays: ULONGLONG,
+ ullTKIPICVErrorCount: ULONGLONG,
+ ullCCMPReplays: ULONGLONG,
+ ullCCMPDecryptErrors: ULONGLONG,
+ ullWEPUndecryptableCount: ULONGLONG,
+ ullWEPICVErrorCount: ULONGLONG,
+ ullDecryptSuccessCount: ULONGLONG,
+ ullDecryptFailureCount: ULONGLONG,
+}}
+pub type PDOT11_MAC_FRAME_STATISTICS = *mut DOT11_MAC_FRAME_STATISTICS;
+STRUCT!{struct DOT11_STATISTICS {
+ Header: NDIS_OBJECT_HEADER,
+ ullFourWayHandshakeFailures: ULONGLONG,
+ ullTKIPCounterMeasuresInvoked: ULONGLONG,
+ ullReserved: ULONGLONG,
+ MacUcastCounters: DOT11_MAC_FRAME_STATISTICS,
+ MacMcastCounters: DOT11_MAC_FRAME_STATISTICS,
+ PhyCounters: [DOT11_PHY_FRAME_STATISTICS; 1],
+}}
+pub type PDOT11_STATISTICS = *mut DOT11_STATISTICS;
+pub const DOT11_STATISTICS_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_PRIVACY_EXEMPTION_LIST: u32 =
+ NWF_DEFINE_OID!(132, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_PRIVACY_EXEMPTION {
+ usEtherType: USHORT,
+ usExemptionActionType: USHORT,
+ usExemptionPacketType: USHORT,
+}}
+pub type PDOT11_PRIVACY_EXEMPTION = *mut DOT11_PRIVACY_EXEMPTION;
+pub const DOT11_EXEMPT_NO_EXEMPTION: USHORT = 0;
+pub const DOT11_EXEMPT_ALWAYS: USHORT = 1;
+pub const DOT11_EXEMPT_ON_KEY_MAPPING_KEY_UNAVAILABLE: USHORT = 2;
+pub const DOT11_EXEMPT_UNICAST: USHORT = 1;
+pub const DOT11_EXEMPT_MULTICAST: USHORT = 2;
+pub const DOT11_EXEMPT_BOTH: USHORT = 3;
+STRUCT!{struct DOT11_PRIVACY_EXEMPTION_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ PrivacyExemptionEntries: [DOT11_PRIVACY_EXEMPTION; 1],
+}}
+pub type PDOT11_PRIVACY_EXEMPTION_LIST = *mut DOT11_PRIVACY_EXEMPTION_LIST;
+pub const DOT11_PRIVACY_EXEMPTION_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_ENABLED_AUTHENTICATION_ALGORITHM: u32 =
+ NWF_DEFINE_OID!(133, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_AUTH_ALGORITHM_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ AlgorithmIds: [DOT11_AUTH_ALGORITHM; 1],
+}}
+pub type PDOT11_AUTH_ALGORITHM_LIST = *mut DOT11_AUTH_ALGORITHM_LIST;
+pub const DOT11_AUTH_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_SUPPORTED_UNICAST_ALGORITHM_PAIR: u32 =
+ NWF_DEFINE_OID!(134, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_AUTH_CIPHER_PAIR_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ AuthCipherPairs: [DOT11_AUTH_CIPHER_PAIR; 1],
+}}
+pub type PDOT11_AUTH_CIPHER_PAIR_LIST = *mut DOT11_AUTH_CIPHER_PAIR_LIST;
+pub const DOT11_AUTH_CIPHER_PAIR_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_ENABLED_UNICAST_CIPHER_ALGORITHM: u32 =
+ NWF_DEFINE_OID!(135, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_CIPHER_ALGORITHM_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ AlgorithmIds: [DOT11_CIPHER_ALGORITHM; 1],
+}}
+pub type PDOT11_CIPHER_ALGORITHM_LIST = *mut DOT11_CIPHER_ALGORITHM_LIST;
+pub const DOT11_CIPHER_ALGORITHM_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_SUPPORTED_MULTICAST_ALGORITHM_PAIR: u32 =
+ NWF_DEFINE_OID!(136, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_ENABLED_MULTICAST_CIPHER_ALGORITHM: u32 =
+ NWF_DEFINE_OID!(137, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_CIPHER_DEFAULT_KEY_ID: u32 =
+ NWF_DEFINE_OID!(138, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_CIPHER_DEFAULT_KEY: u32 =
+ NWF_DEFINE_OID!(139, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_CIPHER_DEFAULT_KEY_VALUE {
+ Header: NDIS_OBJECT_HEADER,
+ uKeyIndex: ULONG,
+ AlgorithmId: DOT11_CIPHER_ALGORITHM,
+ MacAddr: DOT11_MAC_ADDRESS,
+ bDelete: BOOLEAN,
+ bStatic: BOOLEAN,
+ usKeyLength: USHORT,
+ ucKey: [UCHAR; 1],
+}}
+pub type PDOT11_CIPHER_DEFAULT_KEY_VALUE = *mut DOT11_CIPHER_DEFAULT_KEY_VALUE;
+pub const DOT11_CIPHER_DEFAULT_KEY_VALUE_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_KEY_ALGO_TKIP_MIC {
+ ucIV48Counter: [UCHAR; 6],
+ ulTKIPKeyLength: ULONG,
+ ulMICKeyLength: ULONG,
+ ucTKIPMICKeys: [UCHAR; 1],
+}}
+pub type PDOT11_KEY_ALGO_TKIP_MIC = *mut DOT11_KEY_ALGO_TKIP_MIC;
+STRUCT!{struct DOT11_KEY_ALGO_CCMP {
+ ucIV48Counter: [UCHAR; 6],
+ ulCCMPKeyLength: ULONG,
+ ucCCMPKey: [UCHAR; 1],
+}}
+pub type PDOT11_KEY_ALGO_CCMP = *mut DOT11_KEY_ALGO_CCMP;
+STRUCT!{struct DOT11_KEY_ALGO_GCMP {
+ ucIV48Counter: [UCHAR; 6],
+ ulGCMPKeyLength: ULONG,
+ ucGCMPKey: [UCHAR; 1],
+}}
+pub type PDOT11_KEY_ALGO_GCMP = *mut DOT11_KEY_ALGO_GCMP;
+STRUCT!{struct DOT11_KEY_ALGO_BIP {
+ ucIPN: [UCHAR; 6],
+ ulBIPKeyLength: ULONG,
+ ucBIPKey: [UCHAR; 1],
+}}
+pub type PDOT11_KEY_ALGO_BIP = *mut DOT11_KEY_ALGO_BIP;
+pub const OID_DOT11_CIPHER_KEY_MAPPING_KEY: u32 =
+ NWF_DEFINE_OID!(140, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+ENUM!{enum DOT11_DIRECTION {
+ DOT11_DIR_INBOUND = 1,
+ DOT11_DIR_OUTBOUND = 2,
+ DOT11_DIR_BOTH = 3,
+}}
+pub type PDOT11_DIRECTION = *mut DOT11_DIRECTION;
+pub const DOT11_CIPHER_KEY_MAPPING_KEY_VALUE_BYTE_ARRAY_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_CIPHER_KEY_MAPPING_KEY_VALUE {
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ AlgorithmId: DOT11_CIPHER_ALGORITHM,
+ Direction: DOT11_DIRECTION,
+ bDelete: BOOLEAN,
+ bStatic: BOOLEAN,
+ usKeyLength: USHORT,
+ ucKey: [UCHAR; 1],
+}}
+pub type PDOT11_CIPHER_KEY_MAPPING_KEY_VALUE = *mut DOT11_CIPHER_KEY_MAPPING_KEY_VALUE;
+pub const OID_DOT11_ENUM_ASSOCIATION_INFO: u32 =
+ NWF_DEFINE_OID!(141, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+ENUM!{enum DOT11_ASSOCIATION_STATE {
+ dot11_assoc_state_zero = 0,
+ dot11_assoc_state_unauth_unassoc = 1,
+ dot11_assoc_state_auth_unassoc = 2,
+ dot11_assoc_state_auth_assoc = 3,
+}}
+pub type PDOT11_ASSOCIATION_STATE = *mut DOT11_ASSOCIATION_STATE;
+STRUCT!{struct DOT11_ASSOCIATION_INFO_EX {
+ PeerMacAddress: DOT11_MAC_ADDRESS,
+ BSSID: DOT11_MAC_ADDRESS,
+ usCapabilityInformation: USHORT,
+ usListenInterval: USHORT,
+ ucPeerSupportedRates: [UCHAR; 255],
+ usAssociationID: USHORT,
+ dot11AssociationState: DOT11_ASSOCIATION_STATE,
+ dot11PowerMode: DOT11_POWER_MODE,
+ liAssociationUpTime: LARGE_INTEGER,
+ ullNumOfTxPacketSuccesses: ULONGLONG,
+ ullNumOfTxPacketFailures: ULONGLONG,
+ ullNumOfRxPacketSuccesses: ULONGLONG,
+ ullNumOfRxPacketFailures: ULONGLONG,
+}}
+pub type PDOT11_ASSOCIATION_INFO_EX = *mut DOT11_ASSOCIATION_INFO_EX;
+STRUCT!{struct DOT11_ASSOCIATION_INFO_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11AssocInfo: [DOT11_ASSOCIATION_INFO_EX; 1],
+}}
+pub type PDOT11_ASSOCIATION_INFO_LIST = *mut DOT11_ASSOCIATION_INFO_LIST;
+pub const DOT11_ASSOCIATION_INFO_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_DISCONNECT_REQUEST: u32 =
+ NWF_DEFINE_OID!(142, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_UNICAST_USE_GROUP_ENABLED: u32 =
+ NWF_DEFINE_OID!(143, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_HARDWARE_PHY_STATE: u32 =
+ NWF_DEFINE_OID!(144, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_DESIRED_PHY_LIST: u32 =
+ NWF_DEFINE_OID!(145, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_PHY_ID_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ dot11PhyId: [ULONG; 1],
+}}
+pub type PDOT11_PHY_ID_LIST = *mut DOT11_PHY_ID_LIST;
+pub const DOT11_PHY_ID_LIST_REVISION_1: UCHAR = 1;
+pub const DOT11_PHY_ID_ANY: ULONG = 0xffffffff;
+pub const OID_DOT11_CURRENT_PHY_ID: u32 =
+ NWF_DEFINE_OID!(146, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_MEDIA_STREAMING_ENABLED: u32 =
+ NWF_DEFINE_OID!(147, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_UNREACHABLE_DETECTION_THRESHOLD: u32 =
+ NWF_DEFINE_OID!(148, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_ACTIVE_PHY_LIST: u32 =
+ NWF_DEFINE_OID!(149, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_EXTSTA_CAPABILITY: u32 =
+ NWF_DEFINE_OID!(150, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_EXTSTA_CAPABILITY {
+ Header: NDIS_OBJECT_HEADER,
+ uScanSSIDListSize: ULONG,
+ uDesiredBSSIDListSize: ULONG,
+ uDesiredSSIDListSize: ULONG,
+ uExcludedMacAddressListSize: ULONG,
+ uPrivacyExemptionListSize: ULONG,
+ uKeyMappingTableSize: ULONG,
+ uDefaultKeyTableSize: ULONG,
+ uWEPKeyValueMaxLength: ULONG,
+ uPMKIDCacheSize: ULONG,
+ uMaxNumPerSTADefaultKeyTables: ULONG,
+}}
+pub type PDOT11_EXTSTA_CAPABILITY = *mut DOT11_EXTSTA_CAPABILITY;
+pub const DOT11_EXTSTA_CAPABILITY_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_DATA_RATE_MAPPING_TABLE: u32 =
+ NWF_DEFINE_OID!(151, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_DATA_RATE_MAPPING_ENTRY {
+ ucDataRateIndex: UCHAR,
+ ucDataRateFlag: UCHAR,
+ usDataRateValue: USHORT,
+}}
+pub type PDOT11_DATA_RATE_MAPPING_ENTRY = *mut DOT11_DATA_RATE_MAPPING_ENTRY;
+STRUCT!{struct DOT11_DATA_RATE_MAPPING_TABLE {
+ Header: NDIS_OBJECT_HEADER,
+ uDataRateMappingLength: ULONG,
+ DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
+}}
+pub type PDOT11_DATA_RATE_MAPPING_TABLE = *mut DOT11_DATA_RATE_MAPPING_TABLE;
+pub const DOT11_DATA_RATE_MAPPING_TABLE_REVISION_1: UCHAR = 1;
+pub const DOT11_DATA_RATE_NON_STANDARD: UCHAR = 0x01;
+pub const DOT11_DATA_RATE_INDEX_MASK: UCHAR = 0x7f;
+pub const OID_DOT11_SUPPORTED_COUNTRY_OR_REGION_STRING: u32 =
+ NWF_DEFINE_OID!(152, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_COUNTRY_OR_REGION_STRING_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ CountryOrRegionStrings: [DOT11_COUNTRY_OR_REGION_STRING; 1],
+}}
+pub type PDOT11_COUNTRY_OR_REGION_STRING_LIST = *mut DOT11_COUNTRY_OR_REGION_STRING_LIST;
+pub const DOT11_COUNTRY_OR_REGION_STRING_LIST_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_DESIRED_COUNTRY_OR_REGION_STRING: u32 =
+ NWF_DEFINE_OID!(153, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_PORT_STATE_NOTIFICATION: u32 =
+ NWF_DEFINE_OID!(154, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
+STRUCT!{struct DOT11_PORT_STATE_NOTIFICATION {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMac: DOT11_MAC_ADDRESS,
+ bOpen: BOOLEAN,
+}}
+pub type PDOT11_PORT_STATE_NOTIFICATION = *mut DOT11_PORT_STATE_NOTIFICATION;
+pub const DOT11_PORT_STATE_NOTIFICATION_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_IBSS_PARAMS: u32 =
+ NWF_DEFINE_OID!(155, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_IBSS_PARAMS {
+ Header: NDIS_OBJECT_HEADER,
+ bJoinOnly: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_IBSS_PARAMS = *mut DOT11_IBSS_PARAMS;
+pub const DOT11_IBSS_PARAMS_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_QOS_PARAMS: u32 = NWF_DEFINE_OID!(156, NWF_OPERATIONAL_OID, NWF_OPTIONAL_OID);
+STRUCT!{struct DOT11_QOS_PARAMS {
+ Header: NDIS_OBJECT_HEADER,
+ ucEnabledQoSProtocolFlags: UCHAR,
+}}
+pub type PDOT11_QOS_PARAMS = *mut DOT11_QOS_PARAMS;
+pub const DOT11_QOS_PARAMS_REVISION_1: UCHAR = 1;
+pub const DOT11_QOS_PROTOCOL_FLAG_WMM: UCHAR = 0x01;
+pub const DOT11_QOS_PROTOCOL_FLAG_11E: UCHAR = 0x02;
+pub const OID_DOT11_SAFE_MODE_ENABLED: u32 =
+ NWF_DEFINE_OID!(157, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_HIDDEN_NETWORK_ENABLED: u32 =
+ NWF_DEFINE_OID!(158, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_ASSOCIATION_PARAMS: u32 =
+ NWF_DEFINE_OID!(159, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_ASSOCIATION_PARAMS {
+ Header: NDIS_OBJECT_HEADER,
+ BSSID: DOT11_MAC_ADDRESS,
+ uAssocRequestIEsOffset: ULONG,
+ uAssocRequestIEsLength: ULONG,
+}}
+pub type PDOT11_ASSOCIATION_PARAMS = *mut DOT11_ASSOCIATION_PARAMS;
+pub const DOT11_ASSOCIATION_PARAMS_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_SAFE_MODE_HT_ENABLED: u32 =
+ NWF_DEFINE_OID!(160, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
+pub const DOT11_MAX_NUM_OF_FRAGMENTS: USHORT = 16;
+pub const DOT11_PRIORITY_CONTENTION: i32 = 0;
+pub const DOT11_PRIORITY_CONTENTION_FREE: i32 = 1;
+pub const DOT11_SERVICE_CLASS_REORDERABLE_MULTICAST: i32 = 0;
+pub const DOT11_SERVICE_CLASS_STRICTLY_ORDERED: i32 = 1;
+pub const DOT11_FLAGS_80211B_SHORT_PREAMBLE: u32 = 0x00000001;
+pub const DOT11_FLAGS_80211B_PBCC: u32 = 0x00000002;
+pub const DOT11_FLAGS_80211B_CHANNEL_AGILITY: u32 = 0x00000004;
+pub const DOT11_FLAGS_PS_ON: u32 = 0x00000008;
+pub const DOT11_FLAGS_80211G_DSSS_OFDM: u32 = 0x00000010;
+pub const DOT11_FLAGS_80211G_USE_PROTECTION: u32 = 0x00000020;
+pub const DOT11_FLAGS_80211G_NON_ERP_PRESENT: u32 = 0x00000040;
+pub const DOT11_FLAGS_80211G_BARKER_PREAMBLE_MODE: u32 = 0x00000080;
+pub const DOT11_WME_PACKET: u32 = 0x00000100;
+STRUCT!{struct DOT11_FRAGMENT_DESCRIPTOR {
+ uOffset: ULONG,
+ uLength: ULONG,
+}}
+pub type PDOT11_FRAGMENT_DESCRIPTOR = *mut DOT11_FRAGMENT_DESCRIPTOR;
+STRUCT!{struct DOT11_PER_MSDU_COUNTERS {
+ uTransmittedFragmentCount: ULONG,
+ uRetryCount: ULONG,
+ uRTSSuccessCount: ULONG,
+ uRTSFailureCount: ULONG,
+ uACKFailureCount: ULONG,
+}}
+pub type PDOT11_PER_MSDU_COUNTERS = *mut DOT11_PER_MSDU_COUNTERS;
+STRUCT!{struct DOT11_HRDSSS_PHY_ATTRIBUTES {
+ bShortPreambleOptionImplemented: BOOLEAN,
+ bPBCCOptionImplemented: BOOLEAN,
+ bChannelAgilityPresent: BOOLEAN,
+ uHRCCAModeSupported: ULONG,
+}}
+pub type PDOT11_HRDSSS_PHY_ATTRIBUTES = *mut DOT11_HRDSSS_PHY_ATTRIBUTES;
+STRUCT!{struct DOT11_OFDM_PHY_ATTRIBUTES {
+ uFrequencyBandsSupported: ULONG,
+}}
+pub type PDOT11_OFDM_PHY_ATTRIBUTES = *mut DOT11_OFDM_PHY_ATTRIBUTES;
+STRUCT!{struct DOT11_ERP_PHY_ATTRIBUTES {
+ HRDSSSAttributes: DOT11_HRDSSS_PHY_ATTRIBUTES,
+ bERPPBCCOptionImplemented: BOOLEAN,
+ bDSSSOFDMOptionImplemented: BOOLEAN,
+ bShortSlotTimeOptionImplemented: BOOLEAN,
+}}
+pub type PDOT11_ERP_PHY_ATTRIBUTES = *mut DOT11_ERP_PHY_ATTRIBUTES;
+pub const DOT11_PHY_ATTRIBUTES_REVISION_1: UCHAR = 1;
+UNION!{union DOT11_PHY_ATTRIBUTES_u {
+ [u32; 3],
+ HRDSSSAttributes HRDSSSAttributes_mut: DOT11_HRDSSS_PHY_ATTRIBUTES,
+ OFDMAttributes OFDMAttributes_mut: DOT11_OFDM_PHY_ATTRIBUTES,
+ ERPAttributes ERPAttributes_mut: DOT11_ERP_PHY_ATTRIBUTES,
+}}
+STRUCT!{struct DOT11_PHY_ATTRIBUTES {
+ Header: NDIS_OBJECT_HEADER,
+ PhyType: DOT11_PHY_TYPE,
+ bHardwarePhyState: BOOLEAN,
+ bSoftwarePhyState: BOOLEAN,
+ bCFPollable: BOOLEAN,
+ uMPDUMaxLength: ULONG,
+ TempType: DOT11_TEMP_TYPE,
+ DiversitySupport: DOT11_DIVERSITY_SUPPORT,
+ u: DOT11_PHY_ATTRIBUTES_u,
+ uNumberSupportedPowerLevels: ULONG,
+ TxPowerLevels: [ULONG; 8],
+ uNumDataRateMappingEntries: ULONG,
+ DataRateMappingEntries: [DOT11_DATA_RATE_MAPPING_ENTRY; DOT11_RATE_SET_MAX_LENGTH],
+ SupportedDataRatesValue: DOT11_SUPPORTED_DATA_RATES_VALUE_V2,
+}}
+pub type PDOT11_PHY_ATTRIBUTES = *mut DOT11_PHY_ATTRIBUTES;
+pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_OID_SUPPORTED: UINT8 = 0x1;
+pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_CERTIFIED: UINT8 = 0x2;
+pub const DOT11_EXTSTA_ATTRIBUTES_SAFEMODE_RESERVED: UINT8 = 0xC;
+pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_1: UCHAR = 1;
+pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_2: UCHAR = 2;
+pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_3: UCHAR = 3;
+pub const DOT11_EXTSTA_ATTRIBUTES_REVISION_4: UCHAR = 4;
+STRUCT!{struct DOT11_EXTSTA_ATTRIBUTES {
+ Header: NDIS_OBJECT_HEADER,
+ uScanSSIDListSize: ULONG,
+ uDesiredBSSIDListSize: ULONG,
+ uDesiredSSIDListSize: ULONG,
+ uExcludedMacAddressListSize: ULONG,
+ uPrivacyExemptionListSize: ULONG,
+ uKeyMappingTableSize: ULONG,
+ uDefaultKeyTableSize: ULONG,
+ uWEPKeyValueMaxLength: ULONG,
+ uPMKIDCacheSize: ULONG,
+ uMaxNumPerSTADefaultKeyTables: ULONG,
+ bStrictlyOrderedServiceClassImplemented: BOOLEAN,
+ ucSupportedQoSProtocolFlags: UCHAR,
+ bSafeModeImplemented: BOOLEAN,
+ uNumSupportedCountryOrRegionStrings: ULONG,
+ pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
+ uInfraNumSupportedUcastAlgoPairs: ULONG,
+ pInfraSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ uInfraNumSupportedMcastAlgoPairs: ULONG,
+ pInfraSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ uAdhocNumSupportedUcastAlgoPairs: ULONG,
+ pAdhocSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ uAdhocNumSupportedMcastAlgoPairs: ULONG,
+ pAdhocSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ bAutoPowerSaveMode: BOOLEAN,
+ uMaxNetworkOffloadListSize: ULONG,
+ bMFPCapable: BOOLEAN,
+ uInfraNumSupportedMcastMgmtAlgoPairs: ULONG,
+ pInfraSupportedMcastMgmtAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ bNeighborReportSupported: BOOLEAN,
+ bAPChannelReportSupported: BOOLEAN,
+ bActionFramesSupported: BOOLEAN,
+ bANQPQueryOffloadSupported: BOOLEAN,
+ bHESSIDConnectionSupported: BOOLEAN,
+}}
+pub type PDOT11_EXTSTA_ATTRIBUTES = *mut DOT11_EXTSTA_ATTRIBUTES;
+STRUCT!{struct DOT11_RECV_EXTENSION_INFO {
+ uVersion: ULONG,
+ pvReserved: PVOID,
+ dot11PhyType: DOT11_PHY_TYPE,
+ uChCenterFrequency: ULONG,
+ lRSSI: LONG,
+ lRSSIMin: LONG,
+ lRSSIMax: LONG,
+ uRSSI: ULONG,
+ ucPriority: UCHAR,
+ ucDataRate: UCHAR,
+ ucPeerMacAddress: [UCHAR; 6],
+ dwExtendedStatus: ULONG,
+ hWEPOffloadContext: HANDLE,
+ hAuthOffloadContext: HANDLE,
+ usWEPAppliedMask: USHORT,
+ usWPAMSDUPriority: USHORT,
+ dot11LowestIV48Counter: DOT11_IV48_COUNTER,
+ usDot11LeftRWBitMap: USHORT,
+ dot11HighestIV48Counter: DOT11_IV48_COUNTER,
+ usDot11RightRWBitMap: USHORT,
+ usNumberOfMPDUsReceived: USHORT,
+ usNumberOfFragments: USHORT,
+ pNdisPackets: [PVOID; 1],
+}}
+pub type PDOT11_RECV_EXTENSION_INFO = *mut DOT11_RECV_EXTENSION_INFO;
+STRUCT!{struct DOT11_RECV_EXTENSION_INFO_V2 {
+ uVersion: ULONG,
+ pvReserved: PVOID,
+ dot11PhyType: DOT11_PHY_TYPE,
+ uChCenterFrequency: ULONG,
+ lRSSI: LONG,
+ uRSSI: ULONG,
+ ucPriority: UCHAR,
+ ucDataRate: UCHAR,
+ ucPeerMacAddress: [UCHAR; 6],
+ dwExtendedStatus: ULONG,
+ hWEPOffloadContext: HANDLE,
+ hAuthOffloadContext: HANDLE,
+ usWEPAppliedMask: USHORT,
+ usWPAMSDUPriority: USHORT,
+ dot11LowestIV48Counter: DOT11_IV48_COUNTER,
+ usDot11LeftRWBitMap: USHORT,
+ dot11HighestIV48Counter: DOT11_IV48_COUNTER,
+ usDot11RightRWBitMap: USHORT,
+ usNumberOfMPDUsReceived: USHORT,
+ usNumberOfFragments: USHORT,
+ pNdisPackets: [PVOID; 1],
+}}
+pub type PDOT11_RECV_EXTENSION_INFO_V2 = *mut DOT11_RECV_EXTENSION_INFO_V2;
+pub const DOT11_STATUS_SUCCESS: NDIS_STATUS = 0x00000001;
+pub const DOT11_STATUS_RETRY_LIMIT_EXCEEDED: NDIS_STATUS = 0x00000002;
+pub const DOT11_STATUS_UNSUPPORTED_PRIORITY: NDIS_STATUS = 0x00000004;
+pub const DOT11_STATUS_UNSUPPORTED_SERVICE_CLASS: NDIS_STATUS = 0x00000008;
+pub const DOT11_STATUS_UNAVAILABLE_PRIORITY: NDIS_STATUS = 0x00000010;
+pub const DOT11_STATUS_UNAVAILABLE_SERVICE_CLASS: NDIS_STATUS = 0x00000020;
+pub const DOT11_STATUS_XMIT_MSDU_TIMER_EXPIRED: NDIS_STATUS = 0x00000040;
+pub const DOT11_STATUS_UNAVAILABLE_BSS: NDIS_STATUS = 0x00000080;
+pub const DOT11_STATUS_EXCESSIVE_DATA_LENGTH: NDIS_STATUS = 0x00000100;
+pub const DOT11_STATUS_ENCRYPTION_FAILED: NDIS_STATUS = 0x00000200;
+pub const DOT11_STATUS_WEP_KEY_UNAVAILABLE: NDIS_STATUS = 0x00000400;
+pub const DOT11_STATUS_ICV_VERIFIED: NDIS_STATUS = 0x00000800;
+pub const DOT11_STATUS_PACKET_REASSEMBLED: NDIS_STATUS = 0x00001000;
+pub const DOT11_STATUS_PACKET_NOT_REASSEMBLED: NDIS_STATUS = 0x00002000;
+pub const DOT11_STATUS_GENERATE_AUTH_FAILED: NDIS_STATUS = 0x00004000;
+pub const DOT11_STATUS_AUTH_NOT_VERIFIED: NDIS_STATUS = 0x00008000;
+pub const DOT11_STATUS_AUTH_VERIFIED: NDIS_STATUS = 0x00010000;
+pub const DOT11_STATUS_AUTH_FAILED: NDIS_STATUS = 0x00020000;
+pub const DOT11_STATUS_PS_LIFETIME_EXPIRED: NDIS_STATUS = 0x00040000;
+STRUCT!{struct DOT11_STATUS_INDICATION {
+ uStatusType: ULONG,
+ ndisStatus: NDIS_STATUS,
+}}
+pub type PDOT11_STATUS_INDICATION = *mut DOT11_STATUS_INDICATION;
+pub const DOT11_STATUS_RESET_CONFIRM: ULONG = 4;
+pub const DOT11_STATUS_SCAN_CONFIRM: ULONG = 1;
+pub const DOT11_STATUS_JOIN_CONFIRM: ULONG = 2;
+pub const DOT11_STATUS_START_CONFIRM: ULONG = 3;
+pub const DOT11_STATUS_AP_JOIN_CONFIRM: ULONG = 5;
+pub const DOT11_STATUS_MPDU_MAX_LENGTH_CHANGED: ULONG = 6;
+STRUCT!{struct DOT11_MPDU_MAX_LENGTH_INDICATION {
+ Header: NDIS_OBJECT_HEADER,
+ uPhyId: ULONG,
+ uMPDUMaxLength: ULONG,
+}}
+pub type PDOT11_MPDU_MAX_LENGTH_INDICATION = *mut DOT11_MPDU_MAX_LENGTH_INDICATION;
+pub const DOT11_MPDU_MAX_LENGTH_INDICATION_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_ASSOCIATION_START_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ MacAddr: DOT11_MAC_ADDRESS,
+ SSID: DOT11_SSID,
+ uIHVDataOffset: ULONG,
+ uIHVDataSize: ULONG,
+}}
+pub type PDOT11_ASSOCIATION_START_PARAMETERS = *mut DOT11_ASSOCIATION_START_PARAMETERS;
+pub const DOT11_ASSOCIATION_START_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_ENCAP_RFC_1042: USHORT = 1;
+pub const DOT11_ENCAP_802_1H: USHORT = 2;
+STRUCT!{struct DOT11_ENCAP_ENTRY {
+ usEtherType: USHORT,
+ usEncapType: USHORT,
+}}
+pub type PDOT11_ENCAP_ENTRY = *mut DOT11_ENCAP_ENTRY;
+ENUM!{enum DOT11_DS_INFO {
+ DOT11_DS_CHANGED = 0,
+ DOT11_DS_UNCHANGED = 1,
+ DOT11_DS_UNKNOWN = 2,
+}}
+pub type PDOT11_DS_INFO = *mut DOT11_DS_INFO;
+pub type DOT11_ASSOC_STATUS = ULONG;
+pub const DOT11_ASSOC_STATUS_SUCCESS: DOT11_ASSOC_STATUS = 0;
+pub const DOT11_ASSOC_STATUS_FAILURE: DOT11_ASSOC_STATUS = 0x00000001;
+pub const DOT11_ASSOC_STATUS_UNREACHABLE: DOT11_ASSOC_STATUS = 0x00000002;
+pub const DOT11_ASSOC_STATUS_RADIO_OFF: DOT11_ASSOC_STATUS = 0x00000003;
+pub const DOT11_ASSOC_STATUS_PHY_DISABLED: DOT11_ASSOC_STATUS = 0x00000004;
+pub const DOT11_ASSOC_STATUS_CANCELLED: DOT11_ASSOC_STATUS = 0x00000005;
+pub const DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS = 0x00000006;
+pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS: DOT11_ASSOC_STATUS = 0x00000007;
+pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_ROAMING: DOT11_ASSOC_STATUS = 0x00000008;
+pub const DOT11_ASSOC_STATUS_DISASSOCIATED_BY_RESET: DOT11_ASSOC_STATUS = 0x00000009;
+pub const DOT11_ASSOC_STATUS_SYSTEM_ERROR: DOT11_ASSOC_STATUS = 0x0000000a;
+pub const DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND: DOT11_ASSOC_STATUS = 0x0000000b;
+pub const DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST: DOT11_ASSOC_STATUS = 0x0000000c;
+pub const DOT11_ASSOC_STATUS_ROAMING_ADHOC: DOT11_ASSOC_STATUS = 0x0000000d;
+pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS = 0x00010000;
+pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_START: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
+pub const DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED_END: DOT11_ASSOC_STATUS = 0x0001ffff;
+pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS = 0x00020000;
+pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_START: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
+pub const DOT11_ASSOC_STATUS_PEER_DISASSOCIATED_END: DOT11_ASSOC_STATUS = 0x0002ffff;
+pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE: DOT11_ASSOC_STATUS = 0x00030000;
+pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_START: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE;
+pub const DOT11_ASSOC_STATUS_ASSOCIATION_RESPONSE_END: DOT11_ASSOC_STATUS = 0x0003ffff;
+pub const DOT11_ASSOC_STATUS_REASON_CODE_MASK: DOT11_ASSOC_STATUS = 0xffff;
+pub const DOT11_ASSOC_STATUS_IHV_START: DOT11_ASSOC_STATUS = 0x80000000;
+pub const DOT11_ASSOC_STATUS_IHV_END: DOT11_ASSOC_STATUS = 0xffffffff;
+STRUCT!{struct DOT11_ASSOCIATION_COMPLETION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ MacAddr: DOT11_MAC_ADDRESS,
+ uStatus: DOT11_ASSOC_STATUS,
+ bReAssocReq: BOOLEAN,
+ bReAssocResp: BOOLEAN,
+ uAssocReqOffset: ULONG,
+ uAssocReqSize: ULONG,
+ uAssocRespOffset: ULONG,
+ uAssocRespSize: ULONG,
+ uBeaconOffset: ULONG,
+ uBeaconSize: ULONG,
+ uIHVDataOffset: ULONG,
+ uIHVDataSize: ULONG,
+ AuthAlgo: DOT11_AUTH_ALGORITHM,
+ UnicastCipher: DOT11_CIPHER_ALGORITHM,
+ MulticastCipher: DOT11_CIPHER_ALGORITHM,
+ uActivePhyListOffset: ULONG,
+ uActivePhyListSize: ULONG,
+ bFourAddressSupported: BOOLEAN,
+ bPortAuthorized: BOOLEAN,
+ ucActiveQoSProtocol: UCHAR,
+ DSInfo: DOT11_DS_INFO,
+ uEncapTableOffset: ULONG,
+ uEncapTableSize: ULONG,
+ MulticastMgmtCipher: DOT11_CIPHER_ALGORITHM,
+ uAssocComebackTime: ULONG,
+}}
+pub type PDOT11_ASSOCIATION_COMPLETION_PARAMETERS = *mut DOT11_ASSOCIATION_COMPLETION_PARAMETERS;
+pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_ASSOCIATION_COMPLETION_PARAMETERS_REVISION_2: UCHAR = 2;
+STRUCT!{struct DOT11_CONNECTION_START_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ BSSType: DOT11_BSS_TYPE,
+ AdhocBSSID: DOT11_MAC_ADDRESS,
+ AdhocSSID: DOT11_SSID,
+}}
+pub type PDOT11_CONNECTION_START_PARAMETERS = *mut DOT11_CONNECTION_START_PARAMETERS;
+pub const DOT11_CONNECTION_START_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_CONNECTION_STATUS_SUCCESS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_SUCCESS;
+pub const DOT11_CONNECTION_STATUS_FAILURE: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_FAILURE;
+pub const DOT11_CONNECTION_STATUS_CANDIDATE_LIST_EXHAUSTED: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_CANDIDATE_LIST_EXHAUSTED;
+pub const DOT11_CONNECTION_STATUS_PHY_POWER_DOWN: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_RADIO_OFF;
+pub const DOT11_CONNECTION_STATUS_CANCELLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_CANCELLED;
+pub const DOT11_CONNECTION_STATUS_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
+pub const DOT11_CONNECTION_STATUS_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
+STRUCT!{struct DOT11_CONNECTION_COMPLETION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uStatus: DOT11_ASSOC_STATUS,
+}}
+pub type PDOT11_CONNECTION_COMPLETION_PARAMETERS = *mut DOT11_CONNECTION_COMPLETION_PARAMETERS;
+pub const DOT11_CONNECTION_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_ROAMING_REASON_BETTER_AP_FOUND: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_ROAMING_BETTER_AP_FOUND;
+pub const DOT11_ROAMING_REASON_ASSOCIATION_LOST: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_ROAMING_ASSOCIATION_LOST;
+pub const DOT11_ROAMING_REASON_ADHOC: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_ROAMING_ADHOC;
+pub const DOT11_ROAMING_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
+pub const DOT11_ROAMING_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
+STRUCT!{struct DOT11_ROAMING_START_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ AdhocBSSID: DOT11_MAC_ADDRESS,
+ AdhocSSID: DOT11_SSID,
+ uRoamingReason: DOT11_ASSOC_STATUS,
+}}
+pub type PDOT11_ROAMING_START_PARAMETERS = *mut DOT11_ROAMING_START_PARAMETERS;
+pub const DOT11_ROAMING_START_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_ROAMING_COMPLETION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uStatus: DOT11_ASSOC_STATUS,
+}}
+pub type PDOT11_ROAMING_COMPLETION_PARAMETERS = *mut DOT11_ROAMING_COMPLETION_PARAMETERS;
+pub const DOT11_ROAMING_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_DISASSOC_REASON_OS: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_DISASSOCIATED_BY_OS;
+pub const DOT11_DISASSOC_REASON_PEER_UNREACHABLE: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_UNREACHABLE;
+pub const DOT11_DISASSOC_REASON_PEER_DEAUTHENTICATED: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_PEER_DEAUTHENTICATED;
+pub const DOT11_DISASSOC_REASON_PEER_DISASSOCIATED: DOT11_ASSOC_STATUS =
+ DOT11_ASSOC_STATUS_PEER_DISASSOCIATED;
+pub const DOT11_DISASSOC_REASON_RADIO_OFF: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_RADIO_OFF;
+pub const DOT11_DISASSOC_REASON_PHY_DISABLED: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_PHY_DISABLED;
+pub const DOT11_DISASSOC_REASON_IHV_START: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_START;
+pub const DOT11_DISASSOC_REASON_IHV_END: DOT11_ASSOC_STATUS = DOT11_ASSOC_STATUS_IHV_END;
+STRUCT!{struct DOT11_DISASSOCIATION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ MacAddr: DOT11_MAC_ADDRESS,
+ uReason: DOT11_ASSOC_STATUS,
+ uIHVDataOffset: ULONG,
+ uIHVDataSize: ULONG,
+}}
+pub type PDOT11_DISASSOCIATION_PARAMETERS = *mut DOT11_DISASSOCIATION_PARAMETERS;
+pub const DOT11_DISASSOCIATION_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_TKIPMIC_FAILURE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ bDefaultKeyFailure: BOOLEAN,
+ uKeyIndex: ULONG,
+ PeerMac: DOT11_MAC_ADDRESS,
+}}
+pub type PDOT11_TKIPMIC_FAILURE_PARAMETERS = *mut DOT11_TKIPMIC_FAILURE_PARAMETERS;
+pub const DOT11_TKIPMIC_FAILURE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_PMKID_CANDIDATE_LIST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uCandidateListSize: ULONG,
+ uCandidateListOffset: ULONG,
+}}
+pub type PDOT11_PMKID_CANDIDATE_LIST_PARAMETERS = *mut DOT11_PMKID_CANDIDATE_LIST_PARAMETERS;
+pub const DOT11_PMKID_CANDIDATE_LIST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_BSSID_CANDIDATE {
+ BSSID: DOT11_MAC_ADDRESS,
+ uFlags: ULONG,
+}}
+pub type PDOT11_BSSID_CANDIDATE = *mut DOT11_BSSID_CANDIDATE;
+pub const DOT11_PMKID_CANDIDATE_PREAUTH_ENABLED: ULONG = 0x00000001;
+STRUCT!{struct DOT11_PHY_STATE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uPhyId: ULONG,
+ bHardwarePhyState: BOOLEAN,
+ bSoftwarePhyState: BOOLEAN,
+}}
+pub type PDOT11_PHY_STATE_PARAMETERS = *mut DOT11_PHY_STATE_PARAMETERS;
+pub const DOT11_PHY_STATE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_LINK_QUALITY_ENTRY {
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ ucLinkQuality: UCHAR,
+}}
+pub type PDOT11_LINK_QUALITY_ENTRY = *mut DOT11_LINK_QUALITY_ENTRY;
+STRUCT!{struct DOT11_LINK_QUALITY_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uLinkQualityListSize: ULONG,
+ uLinkQualityListOffset: ULONG,
+}}
+pub type PDOT11_LINK_QUALITY_PARAMETERS = *mut DOT11_LINK_QUALITY_PARAMETERS;
+pub const DOT11_LINK_QUALITY_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_EXTSTA_SEND_CONTEXT {
+ Header: NDIS_OBJECT_HEADER,
+ usExemptionActionType: USHORT,
+ uPhyId: ULONG,
+ uDelayedSleepValue: ULONG,
+ pvMediaSpecificInfo: PVOID,
+ uSendFlags: ULONG,
+}}
+pub type PDOT11_EXTSTA_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
+pub type DOT11_EXTAP_SEND_CONTEXT = DOT11_EXTSTA_SEND_CONTEXT;
+pub type PDOT11_EXTAP_SEND_CONTEXT = *mut DOT11_EXTSTA_SEND_CONTEXT;
+pub const DOT11_EXTSTA_SEND_CONTEXT_REVISION_1: UCHAR = 1;
+pub const DOT11_RECV_FLAG_RAW_PACKET: ULONG = 0x00000001;
+pub const DOT11_RECV_FLAG_RAW_PACKET_FCS_FAILURE: ULONG = 0x00000002;
+pub const DOT11_RECV_FLAG_RAW_PACKET_TIMESTAMP: ULONG = 0x00000004;
+pub const DOT11_EXTSTA_RECV_CONTEXT_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_EXTSTA_RECV_CONTEXT {
+ Header: NDIS_OBJECT_HEADER,
+ uReceiveFlags: ULONG,
+ uPhyId: ULONG,
+ uChCenterFrequency: ULONG,
+ usNumberOfMPDUsReceived: USHORT,
+ lRSSI: LONG,
+ ucDataRate: UCHAR,
+ uSizeMediaSpecificInfo: ULONG,
+ pvMediaSpecificInfo: PVOID,
+ ullTimestamp: ULONGLONG,
+}}
+pub type PDOT11_EXTSTA_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
+pub type DOT11_EXTAP_RECV_CONTEXT = DOT11_EXTSTA_RECV_CONTEXT;
+pub type PDOT11_EXTAP_RECV_CONTEXT = *mut DOT11_EXTSTA_RECV_CONTEXT;
+pub const OID_DOT11_PRIVATE_OIDS_START: u32 = OID_DOT11_NDIS_START + 1024;
+pub const OID_DOT11_CURRENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 2;
+pub const OID_DOT11_PERMANENT_ADDRESS: u32 = OID_DOT11_PRIVATE_OIDS_START + 3;
+pub const OID_DOT11_MULTICAST_LIST: u32 = OID_DOT11_PRIVATE_OIDS_START + 4;
+pub const OID_DOT11_MAXIMUM_LIST_SIZE: u32 = OID_DOT11_PRIVATE_OIDS_START + 5;
+macro_rules! DEFINE_NWF_GUID {
+ ($name:ident, $ord:expr) => {
+ DEFINE_GUID!{
+ $name, 0x6cb9a43e + $ord, 0xc45f, 0x4039, 0x9f, 0xe6, 0xd0, 0x8c, 0xb0, 0x57, 0x18,
+ 0x4c
+ }
+ };
+}
+DEFINE_NWF_GUID!{GUID_NWF_OFFLOAD_CAPABILITY, 0}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OFFLOAD_CAPABILITY, 1}
+DEFINE_NWF_GUID!{GUID_NWF_WEP_OFFLOAD, 2}
+DEFINE_NWF_GUID!{GUID_NWF_WEP_UPLOAD, 3}
+DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_OFFLOAD, 4}
+DEFINE_NWF_GUID!{GUID_NWF_DEFAULT_WEP_UPLOAD, 5}
+DEFINE_NWF_GUID!{GUID_NWF_MPDU_MAX_LENGTH, 6}
+DEFINE_NWF_GUID!{GUID_NWF_OPERATION_MODE_CAPABILITY, 7}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPERATION_MODE, 8}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PACKET_FILTER, 9}
+DEFINE_NWF_GUID!{GUID_NWF_ATIM_WINDOW, 10}
+DEFINE_NWF_GUID!{GUID_NWF_SCAN_REQUEST, 11}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_TYPE, 12}
+DEFINE_NWF_GUID!{GUID_NWF_JOIN_REQUEST, 13}
+DEFINE_NWF_GUID!{GUID_NWF_START_REQUEST, 14}
+DEFINE_NWF_GUID!{GUID_NWF_UPDATE_IE, 15}
+DEFINE_NWF_GUID!{GUID_NWF_RESET_REQUEST, 16}
+DEFINE_NWF_GUID!{GUID_NWF_NIC_POWER_STATE, 17}
+DEFINE_NWF_GUID!{GUID_NWF_OPTIONAL_CAPABILITY, 18}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_OPTIONAL_CAPABILITY, 19}
+DEFINE_NWF_GUID!{GUID_NWF_STATION_ID, 20}
+DEFINE_NWF_GUID!{GUID_NWF_MEDIUM_OCCUPANCY_LIMIT, 21}
+DEFINE_NWF_GUID!{GUID_NWF_CF_POLLABLE, 22}
+DEFINE_NWF_GUID!{GUID_NWF_CFP_PERIOD, 23}
+DEFINE_NWF_GUID!{GUID_NWF_CFP_MAX_DURATION, 24}
+DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_MODE, 25}
+DEFINE_NWF_GUID!{GUID_NWF_OPERATIONAL_RATE_SET, 26}
+DEFINE_NWF_GUID!{GUID_NWF_BEACON_PERIOD, 27}
+DEFINE_NWF_GUID!{GUID_NWF_DTIM_PERIOD, 28}
+DEFINE_NWF_GUID!{GUID_NWF_WEP_ICV_ERROR_COUNT, 29}
+DEFINE_NWF_GUID!{GUID_NWF_MAC_ADDRESS, 30}
+DEFINE_NWF_GUID!{GUID_NWF_RTS_THRESHOLD, 31}
+DEFINE_NWF_GUID!{GUID_NWF_SHORT_RETRY_LIMIT, 32}
+DEFINE_NWF_GUID!{GUID_NWF_LONG_RETRY_LIMIT, 33}
+DEFINE_NWF_GUID!{GUID_NWF_FRAGMENTATION_THRESHOLD, 34}
+DEFINE_NWF_GUID!{GUID_NWF_MAX_TRANSMIT_MSDU_LIFETIME, 35}
+DEFINE_NWF_GUID!{GUID_NWF_MAX_RECEIVE_LIFETIME, 36}
+DEFINE_NWF_GUID!{GUID_NWF_COUNTERS_ENTRY, 37}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_PHY_TYPES, 38}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_REG_DOMAIN, 39}
+DEFINE_NWF_GUID!{GUID_NWF_TEMP_TYPE, 40}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_ANTENNA, 41}
+DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SUPPORT, 42}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_RX_ANTENNA, 43}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_POWER_LEVELS, 44}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_TX_POWER_LEVEL, 45}
+DEFINE_NWF_GUID!{GUID_NWF_HOP_TIME, 46}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL_NUMBER, 47}
+DEFINE_NWF_GUID!{GUID_NWF_MAX_DWELL_TIME, 48}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_DWELL_TIME, 49}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_SET, 50}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PATTERN, 51}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_INDEX, 52}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CHANNEL, 53}
+DEFINE_NWF_GUID!{GUID_NWF_CCA_MODE_SUPPORTED, 54}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_CCA_MODE, 55}
+DEFINE_NWF_GUID!{GUID_NWF_ED_THRESHOLD, 56}
+DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MAX, 57}
+DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MAX, 58}
+DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_TIMER_MIN, 59}
+DEFINE_NWF_GUID!{GUID_NWF_CCA_WATCHDOG_COUNT_MIN, 60}
+DEFINE_NWF_GUID!{GUID_NWF_REG_DOMAINS_SUPPORT_VALUE, 61}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_TX_ANTENNA, 62}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_RX_ANTENNA, 63}
+DEFINE_NWF_GUID!{GUID_NWF_DIVERSITY_SELECTION_RX, 64}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DATA_RATES_VALUE, 65}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_FREQUENCY, 66}
+DEFINE_NWF_GUID!{GUID_NWF_TI_THRESHOLD, 67}
+DEFINE_NWF_GUID!{GUID_NWF_FREQUENCY_BANDS_SUPPORTED, 68}
+DEFINE_NWF_GUID!{GUID_NWF_SHORT_PREAMBLE_OPTION_IMPLEMENTED, 69}
+DEFINE_NWF_GUID!{GUID_NWF_PBCC_OPTION_IMPLEMENTED, 70}
+DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_PRESENT, 71}
+DEFINE_NWF_GUID!{GUID_NWF_CHANNEL_AGILITY_ENABLED, 72}
+DEFINE_NWF_GUID!{GUID_NWF_HR_CCA_MODE_SUPPORTED, 73}
+DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_IMPLEMENTED, 74}
+DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY_ENABLED, 75}
+DEFINE_NWF_GUID!{GUID_NWF_COUNTRY_STRING, 76}
+DEFINE_NWF_GUID!{GUID_NWF_MULTI_DOMAIN_CAPABILITY, 77}
+DEFINE_NWF_GUID!{GUID_NWF_EHCC_PRIME_RADIX, 78}
+DEFINE_NWF_GUID!{GUID_NWF_EHCC_NUMBER_OF_CHANNELS_FAMILY_INDEX, 79}
+DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_IMPLEMENTED, 80}
+DEFINE_NWF_GUID!{GUID_NWF_EHCC_CAPABILITY_ENABLED, 81}
+DEFINE_NWF_GUID!{GUID_NWF_HOP_ALGORITHM_ADOPTED, 82}
+DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FLAG, 83}
+DEFINE_NWF_GUID!{GUID_NWF_NUMBER_OF_HOPPING_SETS, 84}
+DEFINE_NWF_GUID!{GUID_NWF_HOP_MODULUS, 85}
+DEFINE_NWF_GUID!{GUID_NWF_HOP_OFFSET, 86}
+DEFINE_NWF_GUID!{GUID_NWF_HOPPING_PATTERN, 87}
+DEFINE_NWF_GUID!{GUID_NWF_RANDOM_TABLE_FIELD_NUMBER, 88}
+DEFINE_NWF_GUID!{GUID_NWF_WPA_TSC, 89}
+DEFINE_NWF_GUID!{GUID_NWF_RSSI_RANGE, 90}
+DEFINE_NWF_GUID!{GUID_NWF_RF_USAGE, 91}
+DEFINE_NWF_GUID!{GUID_NWF_NIC_SPECIFIC_EXTENSION, 92}
+DEFINE_NWF_GUID!{GUID_NWF_AP_JOIN_REQUEST, 93}
+DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_IMPLEMENTED, 94}
+DEFINE_NWF_GUID!{GUID_NWF_ERP_PBCC_OPTION_ENABLED, 95}
+DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_IMPLEMENTED, 96}
+DEFINE_NWF_GUID!{GUID_NWF_DSSS_OFDM_OPTION_ENABLED, 97}
+DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_IMPLEMENTED, 98}
+DEFINE_NWF_GUID!{GUID_NWF_SHORT_SLOT_TIME_OPTION_ENABLED, 99}
+DEFINE_NWF_GUID!{GUID_NWF_MAX_MAC_ADDRESS_STATES, 100}
+DEFINE_NWF_GUID!{GUID_NWF_RECV_SENSITIVITY_LIST, 101}
+DEFINE_NWF_GUID!{GUID_NWF_WME_IMPLEMENTED, 102}
+DEFINE_NWF_GUID!{GUID_NWF_WME_ENABLED, 103}
+DEFINE_NWF_GUID!{GUID_NWF_WME_AC_PARAMETERS, 104}
+DEFINE_NWF_GUID!{GUID_NWF_WME_UPDATE_IE, 105}
+DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_QUEUES_SUPPORTED, 106}
+DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_DURATION, 107}
+DEFINE_NWF_GUID!{GUID_NWF_QOS_TX_MEDIUM_TIME, 108}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_OFDM_FREQUENCY_LIST, 109}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_DSSS_CHANNEL_LIST, 110}
+DEFINE_NWF_GUID!{GUID_NWF_AUTO_CONFIG_ENABLED, 120}
+DEFINE_NWF_GUID!{GUID_NWF_ENUM_BSS_LIST, 121}
+DEFINE_NWF_GUID!{GUID_NWF_FLUSH_BSS_LIST, 122}
+DEFINE_NWF_GUID!{GUID_NWF_POWER_MGMT_REQUEST, 123}
+DEFINE_NWF_GUID!{GUID_NWF_DESIRED_SSID_LIST, 124}
+DEFINE_NWF_GUID!{GUID_NWF_EXCLUDED_MAC_ADDRESS_LIST, 125}
+DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSSID_LIST, 126}
+DEFINE_NWF_GUID!{GUID_NWF_DESIRED_BSS_TYPE, 127}
+DEFINE_NWF_GUID!{GUID_NWF_PMKID_LIST, 128}
+DEFINE_NWF_GUID!{GUID_NWF_CONNECT_REQUEST, 129}
+DEFINE_NWF_GUID!{GUID_NWF_EXCLUDE_UNENCRYPTED, 130}
+DEFINE_NWF_GUID!{GUID_NWF_STATISTICS, 131}
+DEFINE_NWF_GUID!{GUID_NWF_PRIVACY_EXEMPTION_LIST, 132}
+DEFINE_NWF_GUID!{GUID_NWF_ENABLED_AUTHENTICATION_ALGORITHM, 133}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_UNICAST_ALGORITHM_PAIR, 134}
+DEFINE_NWF_GUID!{GUID_NWF_ENABLED_UNICAST_CIPHER_ALGORITHM, 135}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_MULTICAST_ALGORITHM_PAIR, 136}
+DEFINE_NWF_GUID!{GUID_NWF_ENABLED_MULTICAST_CIPHER_ALGORITHM, 137}
+DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY_ID, 138}
+DEFINE_NWF_GUID!{GUID_NWF_CIPHER_DEFAULT_KEY, 139}
+DEFINE_NWF_GUID!{GUID_NWF_CIPHER_KEY_MAPPING_KEY, 140}
+DEFINE_NWF_GUID!{GUID_NWF_ENUM_ASSOCIATION_INFO, 141}
+DEFINE_NWF_GUID!{GUID_NWF_DISCONNECT_REQUEST, 142}
+DEFINE_NWF_GUID!{GUID_NWF_UNICAST_USE_GROUP_ENABLED, 143}
+DEFINE_NWF_GUID!{GUID_NWF_PHY_STATE, 144}
+DEFINE_NWF_GUID!{GUID_NWF_DESIRED_PHY_LIST, 145}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_PHY_ID, 146}
+DEFINE_NWF_GUID!{GUID_NWF_MEDIA_STREAMING_ENABLED, 147}
+DEFINE_NWF_GUID!{GUID_NWF_UNREACHABLE_DETECTION_THRESHOLD, 148}
+DEFINE_NWF_GUID!{GUID_NWF_ACTIVE_PHY_LIST, 149}
+DEFINE_NWF_GUID!{GUID_NWF_EXTSTA_CAPABILITY, 150}
+DEFINE_NWF_GUID!{GUID_NWF_DATA_RATE_MAPPING_TABLE, 151}
+DEFINE_NWF_GUID!{GUID_NWF_SUPPORTED_COUNTRY_OR_REGION_STRING, 152}
+DEFINE_NWF_GUID!{GUID_NWF_DESIRED_COUNTRY_OR_REGION_STRING, 153}
+DEFINE_NWF_GUID!{GUID_NWF_PORT_STATE_NOTIFICATION, 154}
+DEFINE_NWF_GUID!{GUID_NWF_IBSS_PARAMS, 155}
+DEFINE_NWF_GUID!{GUID_NWF_QOS_PARAMS, 156}
+DEFINE_NWF_GUID!{GUID_NWF_SAFE_MODE_ENABLED, 157}
+DEFINE_NWF_GUID!{GUID_NWF_HIDDEN_NETWORK_ENABLED, 158}
+DEFINE_NWF_GUID!{GUID_NWF_ASSOCIATION_PARAMS, 159}
+DEFINE_NWF_GUID!{GUID_NWF_CURRENT_ADDRESS, 1024 + 2}
+DEFINE_NWF_GUID!{GUID_NWF_PERMANENT_ADDRESS, 1024 + 3}
+DEFINE_NWF_GUID!{GUID_NWF_MULTICAST_LIST, 1024 + 4}
+DEFINE_NWF_GUID!{GUID_NWF_MAXIMUM_LIST_SIZE, 1024 + 5}
+pub const DOT11_EXTAP_ATTRIBUTES_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_EXTAP_ATTRIBUTES {
+ Header: NDIS_OBJECT_HEADER,
+ uScanSSIDListSize: ULONG,
+ uDesiredSSIDListSize: ULONG,
+ uPrivacyExemptionListSize: ULONG,
+ uAssociationTableSize: ULONG,
+ uDefaultKeyTableSize: ULONG,
+ uWEPKeyValueMaxLength: ULONG,
+ bStrictlyOrderedServiceClassImplemented: BOOLEAN,
+ uNumSupportedCountryOrRegionStrings: ULONG,
+ pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
+ uInfraNumSupportedUcastAlgoPairs: ULONG,
+ pInfraSupportedUcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+ uInfraNumSupportedMcastAlgoPairs: ULONG,
+ pInfraSupportedMcastAlgoPairs: PDOT11_AUTH_CIPHER_PAIR,
+}}
+pub type PDOT11_EXTAP_ATTRIBUTES = *mut DOT11_EXTAP_ATTRIBUTES;
+pub const DOT11_INCOMING_ASSOC_STARTED_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INCOMING_ASSOC_STARTED_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+}}
+pub type PDOT11_INCOMING_ASSOC_STARTED_PARAMETERS = *mut DOT11_INCOMING_ASSOC_STARTED_PARAMETERS;
+pub const DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ bReAssocReq: BOOLEAN,
+ uAssocReqOffset: ULONG,
+ uAssocReqSize: ULONG,
+}}
+pub type PDOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS =
+ *mut DOT11_INCOMING_ASSOC_REQUEST_RECEIVED_PARAMETERS;
+pub const DOT11_ASSOC_ERROR_SOURCE_OS: UCHAR = 0x0;
+pub const DOT11_ASSOC_ERROR_SOURCE_REMOTE: UCHAR = 0x01;
+pub const DOT11_ASSOC_ERROR_SOURCE_OTHER: UCHAR = 0xFF;
+pub const DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ uStatus: ULONG,
+ ucErrorSource: UCHAR,
+ bReAssocReq: BOOLEAN,
+ bReAssocResp: BOOLEAN,
+ uAssocReqOffset: ULONG,
+ uAssocReqSize: ULONG,
+ uAssocRespOffset: ULONG,
+ uAssocRespSize: ULONG,
+ AuthAlgo: DOT11_AUTH_ALGORITHM,
+ UnicastCipher: DOT11_CIPHER_ALGORITHM,
+ MulticastCipher: DOT11_CIPHER_ALGORITHM,
+ uActivePhyListOffset: ULONG,
+ uActivePhyListSize: ULONG,
+ uBeaconOffset: ULONG,
+ uBeaconSize: ULONG,
+}}
+pub type PDOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS =
+ *mut DOT11_INCOMING_ASSOC_COMPLETION_PARAMETERS;
+pub const DOT11_STOP_AP_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_STOP_AP_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ulReason: ULONG,
+}}
+pub type PDOT11_STOP_AP_PARAMETERS = *mut DOT11_STOP_AP_PARAMETERS;
+pub const DOT11_STOP_AP_REASON_FREQUENCY_NOT_AVAILABLE: ULONG = 0x1;
+pub const DOT11_STOP_AP_REASON_CHANNEL_NOT_AVAILABLE: ULONG = 0x2;
+pub const DOT11_STOP_AP_REASON_AP_ACTIVE: ULONG = 0x3;
+pub const DOT11_STOP_AP_REASON_IHV_START: ULONG = 0xFF000000;
+pub const DOT11_STOP_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
+pub const DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_REVISION_1: UCHAR = 1;
+UNION!{union DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u {
+ [u32; 1],
+ ulChannel ulChannel_mut: ULONG,
+ ulFrequency ulFrequency_mut: ULONG,
+}}
+STRUCT!{struct DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ulPhyId: ULONG,
+ u: DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS_u,
+}}
+pub type PDOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS = *mut DOT11_PHY_FREQUENCY_ADOPTED_PARAMETERS;
+pub const DOT11_CAN_SUSTAIN_AP_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_CAN_SUSTAIN_AP_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ulReason: ULONG,
+}}
+pub type PDOT11_CAN_SUSTAIN_AP_PARAMETERS = *mut DOT11_CAN_SUSTAIN_AP_PARAMETERS;
+pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_START: ULONG = 0xFF000000;
+pub const DOT11_CAN_SUSTAIN_AP_REASON_IHV_END: ULONG = 0xFFFFFFFF;
+pub const NWF_EXTAP_OID: u32 = 0x03;
+pub const OID_DOT11_WPS_ENABLED: u32 = NWF_DEFINE_OID!(0x01, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_START_AP_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x02, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_AVAILABLE_CHANNEL_LIST: u32 =
+ NWF_DEFINE_OID!(0x03, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const DOT11_AVAILABLE_CHANNEL_LIST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_AVAILABLE_CHANNEL_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ uChannelNumber: [ULONG; 1],
+}}
+pub type PDOT11_AVAILABLE_CHANNEL_LIST = *mut DOT11_AVAILABLE_CHANNEL_LIST;
+pub const OID_DOT11_AVAILABLE_FREQUENCY_LIST: u32 =
+ NWF_DEFINE_OID!(0x04, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const DOT11_AVAILABLE_FREQUENCY_LIST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_AVAILABLE_FREQUENCY_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ uFrequencyValue: [ULONG; 1],
+}}
+pub type PDOT11_AVAILABLE_FREQUENCY_LIST = *mut DOT11_AVAILABLE_FREQUENCY_LIST;
+pub const OID_DOT11_DISASSOCIATE_PEER_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x05, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const DOT11_DISASSOCIATE_PEER_REQUEST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_DISASSOCIATE_PEER_REQUEST {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ usReason: USHORT,
+}}
+pub type PDOT11_DISASSOCIATE_PEER_REQUEST = *mut DOT11_DISASSOCIATE_PEER_REQUEST;
+pub const OID_DOT11_INCOMING_ASSOCIATION_DECISION: u32 =
+ NWF_DEFINE_OID!(0x06, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INCOMING_ASSOC_DECISION {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ bAccept: BOOLEAN,
+ usReasonCode: USHORT,
+ uAssocResponseIEsOffset: ULONG,
+ uAssocResponseIEsLength: ULONG,
+}}
+pub type PDOT11_INCOMING_ASSOC_DECISION = *mut DOT11_INCOMING_ASSOC_DECISION;
+pub const DOT11_INCOMING_ASSOC_DECISION_REVISION_2: UCHAR = 2;
+STRUCT!{struct DOT11_INCOMING_ASSOC_DECISION_V2 {
+ Header: NDIS_OBJECT_HEADER,
+ PeerMacAddr: DOT11_MAC_ADDRESS,
+ bAccept: BOOLEAN,
+ usReasonCode: USHORT,
+ uAssocResponseIEsOffset: ULONG,
+ uAssocResponseIEsLength: ULONG,
+ WFDStatus: DOT11_WFD_STATUS_CODE,
+}}
+pub type PDOT11_INCOMING_ASSOC_DECISION_V2 = *mut DOT11_INCOMING_ASSOC_DECISION_V2;
+pub const OID_DOT11_ADDITIONAL_IE: u32 = NWF_DEFINE_OID!(0x07, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+pub const DOT11_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_ADDITIONAL_IE {
+ Header: NDIS_OBJECT_HEADER,
+ uBeaconIEsOffset: ULONG,
+ uBeaconIEsLength: ULONG,
+ uResponseIEsOffset: ULONG,
+ uResponseIEsLength: ULONG,
+}}
+pub type PDOT11_ADDITIONAL_IE = *mut DOT11_ADDITIONAL_IE;
+pub const DOT11_EXTAP_SEND_CONTEXT_REVISION_1: UCHAR = 1;
+pub const DOT11_EXTAP_RECV_CONTEXT_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_ENUM_PEER_INFO: u32 = NWF_DEFINE_OID!(0x08, NWF_EXTAP_OID, NWF_MANDATORY_OID);
+STRUCT!{struct DOT11_PEER_STATISTICS {
+ ullDecryptSuccessCount: ULONGLONG,
+ ullDecryptFailureCount: ULONGLONG,
+ ullTxPacketSuccessCount: ULONGLONG,
+ ullTxPacketFailureCount: ULONGLONG,
+ ullRxPacketSuccessCount: ULONGLONG,
+ ullRxPacketFailureCount: ULONGLONG,
+}}
+pub type PDOT11_PEER_STATISTICS = *mut DOT11_PEER_STATISTICS;
+STRUCT!{struct DOT11_PEER_INFO {
+ MacAddress: DOT11_MAC_ADDRESS,
+ usCapabilityInformation: USHORT,
+ AuthAlgo: DOT11_AUTH_ALGORITHM,
+ UnicastCipherAlgo: DOT11_CIPHER_ALGORITHM,
+ MulticastCipherAlgo: DOT11_CIPHER_ALGORITHM,
+ bWpsEnabled: BOOLEAN,
+ usListenInterval: USHORT,
+ ucSupportedRates: [UCHAR; MAX_NUM_SUPPORTED_RATES_V2],
+ usAssociationID: USHORT,
+ AssociationState: DOT11_ASSOCIATION_STATE,
+ PowerMode: DOT11_POWER_MODE,
+ liAssociationUpTime: LARGE_INTEGER,
+ Statistics: DOT11_PEER_STATISTICS,
+}}
+pub type PDOT11_PEER_INFO = *mut DOT11_PEER_INFO;
+pub const DOT11_PEER_INFO_LIST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_PEER_INFO_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ PeerInfo: [DOT11_PEER_INFO; 1],
+}}
+pub type PDOT11_PEER_INFO_LIST = *mut DOT11_PEER_INFO_LIST;
+pub const DOT11_VWIFI_COMBINATION_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_VWIFI_COMBINATION {
+ Header: NDIS_OBJECT_HEADER,
+ uNumInfrastructure: ULONG,
+ uNumAdhoc: ULONG,
+ uNumSoftAP: ULONG,
+}}
+pub type PDOT11_VWIFI_COMBINATION = *mut DOT11_VWIFI_COMBINATION;
+pub const DOT11_VWIFI_COMBINATION_REVISION_2: UCHAR = 2;
+STRUCT!{struct DOT11_VWIFI_COMBINATION_V2 {
+ Header: NDIS_OBJECT_HEADER,
+ uNumInfrastructure: ULONG,
+ uNumAdhoc: ULONG,
+ uNumSoftAP: ULONG,
+ uNumVirtualStation: ULONG,
+}}
+pub type PDOT11_VWIFI_COMBINATION_V2 = *mut DOT11_VWIFI_COMBINATION_V2;
+pub const DOT11_VWIFI_COMBINATION_REVISION_3: UCHAR = 3;
+STRUCT!{struct DOT11_VWIFI_COMBINATION_V3 {
+ Header: NDIS_OBJECT_HEADER,
+ uNumInfrastructure: ULONG,
+ uNumAdhoc: ULONG,
+ uNumSoftAP: ULONG,
+ uNumVirtualStation: ULONG,
+ uNumWFDGroup: ULONG,
+}}
+pub type PDOT11_VWIFI_COMBINATION_V3 = *mut DOT11_VWIFI_COMBINATION_V3;
+pub const DOT11_VWIFI_ATTRIBUTES_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_VWIFI_ATTRIBUTES {
+ Header: NDIS_OBJECT_HEADER,
+ uTotalNumOfEntries: ULONG,
+ Combinations: [DOT11_VWIFI_COMBINATION; 1],
+}}
+pub type PDOT11_VWIFI_ATTRIBUTES = *mut DOT11_VWIFI_ATTRIBUTES;
+pub const NWF_VWIFI_OID: u32 = 0x04;
+pub const OID_DOT11_CREATE_MAC: u32 = NWF_DEFINE_OID!(0x01, NWF_VWIFI_OID, NWF_MANDATORY_OID);
+pub const DOT11_MAC_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_MAC_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ uOpmodeMask: ULONG,
+}}
+pub type PDOT11_MAC_PARAMETERS = *mut DOT11_MAC_PARAMETERS;
+STRUCT!{struct DOT11_MAC_INFO {
+ uReserved: ULONG,
+ uNdisPortNumber: ULONG,
+ MacAddr: DOT11_MAC_ADDRESS,
+}}
+pub type PDOT11_MAC_INFO = *mut DOT11_MAC_INFO;
+pub const OID_DOT11_DELETE_MAC: u32 = NWF_DEFINE_OID!(0x02, NWF_VWIFI_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_PREFERRED_MAC: u32 = NWF_DEFINE_OID!(0x03, NWF_VWIFI_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_VIRTUAL_STATION_CAPABILITY: u32 =
+ NWF_DEFINE_OID!(0x04, NWF_VWIFI_OID, NWF_OPTIONAL_OID);
+pub const DOT11_WFD_ATTRIBUTES_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_ATTRIBUTES {
+ Header: NDIS_OBJECT_HEADER,
+ uNumConcurrentGORole: ULONG,
+ uNumConcurrentClientRole: ULONG,
+ WPSVersionsSupported: ULONG,
+ bServiceDiscoverySupported: BOOLEAN,
+ bClientDiscoverabilitySupported: BOOLEAN,
+ bInfrastructureManagementSupported: BOOLEAN,
+ uMaxSecondaryDeviceTypeListSize: ULONG,
+ DeviceAddress: DOT11_MAC_ADDRESS,
+ uInterfaceAddressListCount: ULONG,
+ pInterfaceAddressList: PDOT11_MAC_ADDRESS,
+ uNumSupportedCountryOrRegionStrings: ULONG,
+ pSupportedCountryOrRegionStrings: PDOT11_COUNTRY_OR_REGION_STRING,
+ uDiscoveryFilterListSize: ULONG,
+ uGORoleClientTableSize: ULONG,
+}}
+pub type PDOT11_WFD_ATTRIBUTES = *mut DOT11_WFD_ATTRIBUTES;
+pub type DOT11_WFD_GROUP_CAPABILITY = UCHAR;
+pub const DOT11_WFD_STATUS_SUCCESS: DOT11_WFD_STATUS_CODE = 0;
+pub const DOT11_WFD_STATUS_FAILED_INFORMATION_IS_UNAVAILABLE: DOT11_WFD_STATUS_CODE = 1;
+pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PARAMETERS: DOT11_WFD_STATUS_CODE = 2;
+pub const DOT11_WFD_STATUS_FAILED_LIMIT_REACHED: DOT11_WFD_STATUS_CODE = 3;
+pub const DOT11_WFD_STATUS_FAILED_INVALID_PARAMETERS: DOT11_WFD_STATUS_CODE = 4;
+pub const DOT11_WFD_STATUS_FAILED_UNABLE_TO_ACCOMODATE_REQUEST: DOT11_WFD_STATUS_CODE = 5;
+pub const DOT11_WFD_STATUS_FAILED_PREVIOUS_PROTOCOL_ERROR: DOT11_WFD_STATUS_CODE = 6;
+pub const DOT11_WFD_STATUS_FAILED_NO_COMMON_CHANNELS: DOT11_WFD_STATUS_CODE = 7;
+pub const DOT11_WFD_STATUS_FAILED_UNKNOWN_WFD_GROUP: DOT11_WFD_STATUS_CODE = 8;
+pub const DOT11_WFD_STATUS_FAILED_MATCHING_MAX_INTENT: DOT11_WFD_STATUS_CODE = 9;
+pub const DOT11_WFD_STATUS_FAILED_INCOMPATIBLE_PROVISIONING_METHOD: DOT11_WFD_STATUS_CODE = 10;
+pub const DOT11_WFD_STATUS_FAILED_REJECTED_BY_USER: DOT11_WFD_STATUS_CODE = 11;
+pub const DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER: DOT11_WFD_STATUS_CODE = 12;
+#[inline]
+pub fn WFD_STATUS_SUCCEEDED(status: DOT11_WFD_STATUS_CODE) -> bool {
+ status == DOT11_WFD_STATUS_SUCCESS || status == DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER
+}
+#[inline]
+pub fn WFD_STATUS_FAILED(status: DOT11_WFD_STATUS_CODE) -> bool {
+ status != DOT11_WFD_STATUS_SUCCESS || status != DOT11_WFD_STATUS_SUCCESS_ACCEPTED_BY_USER
+}
+pub const DOT11_WFD_MINOR_REASON_SUCCESS: i32 = 0;
+pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_FROM_WLAN_CROSS_CONNECTION_POLICY: i32 = 1;
+pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_NOT_MANAGED_INFRASTRUCTURE_CAPABLE: i32 = 2;
+pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_WFD_COEXISTENCE_POLICY: i32 = 3;
+pub const DOT11_WFD_MINOR_REASON_DISASSOCIATED_INFRASTRUCTURE_MANAGED_POLICY: i32 = 4;
+pub const DOT11_WPS_VERSION_1_0: u8 = 0x01;
+pub const DOT11_WPS_VERSION_2_0: u8 = 0x02;
+pub const DOT11_WFD_DEVICE_CAPABILITY_SERVICE_DISCOVERY: u8 = 0x01;
+pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_CLIENT_DISCOVERABILITY: u8 = 0x02;
+pub const DOT11_WFD_DEVICE_CAPABILITY_CONCURRENT_OPERATION: u8 = 0x04;
+pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INFRASTRUCTURE_MANAGED: u8 = 0x08;
+pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_DEVICE_LIMIT: u8 = 0x10;
+pub const DOT11_WFD_DEVICE_CAPABILITY_P2P_INVITATION_PROCEDURE: u8 = 0x20;
+pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_6: u8 = 0x40;
+pub const DOT11_WFD_DEVICE_CAPABILITY_RESERVED_7: u8 = 0x80;
+pub const DOT11_WFD_GROUP_CAPABILITY_NONE: u8 = 0x00;
+pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_OWNER: u8 = 0x01;
+pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_GROUP: u8 = 0x02;
+pub const DOT11_WFD_GROUP_CAPABILITY_GROUP_LIMIT_REACHED: u8 = 0x04;
+pub const DOT11_WFD_GROUP_CAPABILITY_INTRABSS_DISTRIBUTION_SUPPORTED: u8 = 0x08;
+pub const DOT11_WFD_GROUP_CAPABILITY_CROSS_CONNECTION_SUPPORTED: u8 = 0x10;
+pub const DOT11_WFD_GROUP_CAPABILITY_PERSISTENT_RECONNECT_SUPPORTED: u8 = 0x20;
+pub const DOT11_WFD_GROUP_CAPABILITY_IN_GROUP_FORMATION: u8 = 0x40;
+pub const DOT11_WFD_GROUP_CAPABILITY_RESERVED_7: u8 = 0x80;
+pub const DOT11_WFD_GROUP_CAPABILITY_EAPOL_KEY_IP_ADDRESS_ALLOCATION_SUPPORTED: u8 = 0x80;
+pub const DOT11_WPS_DEVICE_NAME_MAX_LENGTH: usize = 32;
+pub const DOT11_WPS_MAX_PASSKEY_LENGTH: usize = 8;
+pub const DOT11_WPS_MAX_MODEL_NAME_LENGTH: usize = 32;
+pub const DOT11_WPS_MAX_MODEL_NUMBER_LENGTH: usize = 32;
+STRUCT!{struct DOT11_WFD_DEVICE_TYPE {
+ CategoryID: USHORT,
+ SubCategoryID: USHORT,
+ OUI: [UCHAR; 4],
+}}
+pub type PDOT11_WFD_DEVICE_TYPE = *mut DOT11_WFD_DEVICE_TYPE;
+STRUCT!{struct DOT11_WPS_DEVICE_NAME {
+ uDeviceNameLength: ULONG,
+ ucDeviceName: [UCHAR; DOT11_WPS_DEVICE_NAME_MAX_LENGTH],
+}}
+pub type PDOT11_WPS_DEVICE_NAME = *mut DOT11_WPS_DEVICE_NAME;
+STRUCT!{struct DOT11_WFD_CONFIGURATION_TIMEOUT {
+ GOTimeout: UCHAR,
+ ClientTimeout: UCHAR,
+}}
+pub type PDOT11_WFD_CONFIGURATION_TIMEOUT = *mut DOT11_WFD_CONFIGURATION_TIMEOUT;
+STRUCT!{struct DOT11_WFD_GROUP_ID {
+ DeviceAddress: DOT11_MAC_ADDRESS,
+ SSID: DOT11_SSID,
+}}
+pub type PDOT11_WFD_GROUP_ID = *mut DOT11_WFD_GROUP_ID;
+STRUCT!{#[repr(packed)] struct DOT11_WFD_GO_INTENT {
+ Bitfields: UCHAR,
+}}
+BITFIELD!{DOT11_WFD_GO_INTENT Bitfields: UCHAR [
+ TieBreaker set_TieBreaker[0..1],
+ Intent set_Intent[1..8],
+]}
+pub type PDOT11_WFD_GO_INTENT = *mut DOT11_WFD_GO_INTENT;
+STRUCT!{struct DOT11_WFD_CHANNEL {
+ CountryRegionString: DOT11_COUNTRY_OR_REGION_STRING,
+ OperatingClass: UCHAR,
+ ChannelNumber: UCHAR,
+}}
+pub type PDOT11_WFD_CHANNEL = *mut DOT11_WFD_CHANNEL;
+ENUM!{enum DOT11_WPS_CONFIG_METHOD {
+ DOT11_WPS_CONFIG_METHOD_NULL = 0,
+ DOT11_WPS_CONFIG_METHOD_DISPLAY = 0x0008,
+ DOT11_WPS_CONFIG_METHOD_NFC_TAG = 0x0020,
+ DOT11_WPS_CONFIG_METHOD_NFC_INTERFACE = 0x0040,
+ DOT11_WPS_CONFIG_METHOD_PUSHBUTTON = 0x0080,
+ DOT11_WPS_CONFIG_METHOD_KEYPAD = 0x0100,
+ DOT11_WPS_CONFIG_METHOD_WFDS_DEFAULT = 0x1000,
+}}
+pub type PDOT11_WPS_CONFIG_METHOD = *mut DOT11_WPS_CONFIG_METHOD;
+ENUM!{enum DOT11_WPS_DEVICE_PASSWORD_ID {
+ DOT11_WPS_PASSWORD_ID_DEFAULT = 0x0000,
+ DOT11_WPS_PASSWORD_ID_USER_SPECIFIED = 0x0001,
+ DOT11_WPS_PASSWORD_ID_MACHINE_SPECIFIED = 0x0002,
+ DOT11_WPS_PASSWORD_ID_REKEY = 0x0003,
+ DOT11_WPS_PASSWORD_ID_PUSHBUTTON = 0x0004,
+ DOT11_WPS_PASSWORD_ID_REGISTRAR_SPECIFIED = 0x0005,
+ DOT11_WPS_PASSWORD_ID_NFC_CONNECTION_HANDOVER = 0x0007,
+ DOT11_WPS_PASSWORD_ID_WFD_SERVICES = 0x0008,
+ DOT11_WPS_PASSWORD_ID_OOB_RANGE_MIN = 0x0010,
+ DOT11_WPS_PASSWORD_ID_OOB_RANGE_MAX = 0xFFFF,
+}}
+pub type PDOT11_WPS_DEVICE_PASSWORD_ID = *mut DOT11_WPS_DEVICE_PASSWORD_ID;
+STRUCT!{struct WFDSVC_CONNECTION_CAPABILITY {
+ bNew: BOOLEAN,
+ bClient: BOOLEAN,
+ bGO: BOOLEAN,
+}}
+pub type PWFDSVC_CONNECTION_CAPABILITY = *mut WFDSVC_CONNECTION_CAPABILITY;
+pub const WFDSVC_CONNECTION_CAPABILITY_NEW: BOOLEAN = 0x01;
+pub const WFDSVC_CONNECTION_CAPABILITY_CLIENT: BOOLEAN = 0x02;
+pub const WFDSVC_CONNECTION_CAPABILITY_GO: BOOLEAN = 0x04;
+STRUCT!{struct DOT11_WFD_SERVICE_HASH_LIST {
+ ServiceHashCount: USHORT,
+ ServiceHash: [DOT11_WFD_SERVICE_HASH; 1],
+}}
+pub type PDOT11_WFD_SERVICE_HASH_LIST = *mut DOT11_WFD_SERVICE_HASH_LIST;
+STRUCT!{struct DOT11_WFD_ADVERTISEMENT_ID {
+ AdvertisementID: ULONG,
+ ServiceAddress: DOT11_MAC_ADDRESS,
+}}
+pub type PDOT11_WFD_ADVERTISEMENT_ID = *mut DOT11_WFD_ADVERTISEMENT_ID;
+STRUCT!{struct DOT11_WFD_SESSION_ID {
+ SessionID: ULONG,
+ SessionAddress: DOT11_MAC_ADDRESS,
+}}
+pub type PDOT11_WFD_SESSION_ID = *mut DOT11_WFD_SESSION_ID;
+STRUCT!{struct DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR {
+ AdvertisementID: ULONG,
+ ConfigMethods: USHORT,
+ ServiceNameLength: UCHAR,
+ ServiceName: [UCHAR; DOT11_WFD_SERVICE_NAME_MAX_LENGTH],
+}}
+pub type PDOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR = *mut DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR;
+STRUCT!{struct DOT11_WFD_ADVERTISED_SERVICE_LIST {
+ ServiceCount: USHORT,
+ AdvertisedService: [DOT11_WFD_ADVERTISED_SERVICE_DESCRIPTOR; 1],
+}}
+pub type PDOT11_WFD_ADVERTISED_SERVICE_LIST = *mut DOT11_WFD_ADVERTISED_SERVICE_LIST;
+pub const DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+pub const DOT11_WFD_DISCOVER_COMPLETE_MAX_LIST_SIZE: ULONG = 128;
+STRUCT!{struct DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ Status: NDIS_STATUS,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ uListOffset: ULONG,
+ uListLength: ULONG,
+}}
+pub type PDOT11_WFD_DISCOVER_COMPLETE_PARAMETERS = *mut DOT11_WFD_DISCOVER_COMPLETE_PARAMETERS;
+pub const DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_GO_NEGOTIATION_REQUEST_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS =
+ *mut DOT11_RECEIVED_GO_NEGOTIATION_REQUEST_PARAMETERS;
+pub const DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_GO_NEGOTIATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ ResponseContext: PVOID,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS =
+ *mut DOT11_RECEIVED_GO_NEGOTIATION_RESPONSE_PARAMETERS;
+pub const DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_GO_NEGOTIATION_CONFIRMATION_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
+ *mut DOT11_RECEIVED_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
+pub const DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ ReceiverAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_INVITATION_REQUEST_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
+ BSSID: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS =
+ *mut DOT11_RECEIVED_INVITATION_REQUEST_PARAMETERS;
+pub const DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_INVITATION_RESPONSE_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
+ BSSID: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS =
+ *mut DOT11_RECEIVED_INVITATION_RESPONSE_PARAMETERS;
+pub const DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ ReceiverAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_PROVISION_DISCOVERY_REQUEST_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
+ BSSID: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
+ *mut DOT11_RECEIVED_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
+pub const DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ Status: NDIS_STATUS,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS =
+ *mut DOT11_PROVISION_DISCOVERY_RESPONSE_SEND_COMPLETE_PARAMETERS;
+pub const DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ TransmitterDeviceAddress: DOT11_MAC_ADDRESS,
+ BSSID: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
+ *mut DOT11_RECEIVED_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
+pub const DOT11_ANQP_QUERY_COMPLETE_PARAMETERS_REVISION_1: UCHAR = 1;
+ENUM!{enum DOT11_ANQP_QUERY_RESULT {
+ dot11_ANQP_query_result_success = 0,
+ dot11_ANQP_query_result_failure = 1,
+ dot11_ANQP_query_result_timed_out = 2,
+ dot11_ANQP_query_result_resources = 3,
+ dot11_ANQP_query_result_advertisement_protocol_not_supported_on_remote = 4,
+ dot11_ANQP_query_result_gas_protocol_failure = 5,
+ dot11_ANQP_query_result_advertisement_server_not_responding = 6,
+ dot11_ANQP_query_result_access_issues = 7,
+}}
+pub type PDOT11_ANQP_QUERY_RESULT = *mut DOT11_ANQP_QUERY_RESULT;
+STRUCT!{struct DOT11_ANQP_QUERY_COMPLETE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ Status: DOT11_ANQP_QUERY_RESULT,
+ hContext: HANDLE,
+ uResponseLength: ULONG,
+}}
+pub type PDOT11_ANQP_QUERY_COMPLETE_PARAMETERS = *mut DOT11_ANQP_QUERY_COMPLETE_PARAMETERS;
+pub const NWF_WFD_DEVICE_OID: u32 = 0x05;
+pub const NWF_WFD_ROLE_OID: u32 = 0x06;
+pub const OID_DOT11_WFD_DEVICE_CAPABILITY: u32 =
+ NWF_DEFINE_OID!(0x01, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_DEVICE_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_DEVICE_CAPABILITY_CONFIG {
+ Header: NDIS_OBJECT_HEADER,
+ bServiceDiscoveryEnabled: BOOLEAN,
+ bClientDiscoverabilityEnabled: BOOLEAN,
+ bConcurrentOperationSupported: BOOLEAN,
+ bInfrastructureManagementEnabled: BOOLEAN,
+ bDeviceLimitReached: BOOLEAN,
+ bInvitationProcedureEnabled: BOOLEAN,
+ WPSVersionsEnabled: ULONG,
+}}
+pub type PDOT11_WFD_DEVICE_CAPABILITY_CONFIG = *mut DOT11_WFD_DEVICE_CAPABILITY_CONFIG;
+pub const OID_DOT11_WFD_GROUP_OWNER_CAPABILITY: u32 =
+ NWF_DEFINE_OID!(0x02, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG {
+ Header: NDIS_OBJECT_HEADER,
+ bPersistentGroupEnabled: BOOLEAN,
+ bIntraBSSDistributionSupported: BOOLEAN,
+ bCrossConnectionSupported: BOOLEAN,
+ bPersistentReconnectSupported: BOOLEAN,
+ bGroupFormationEnabled: BOOLEAN,
+ uMaximumGroupLimit: ULONG,
+}}
+pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG = *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG;
+pub const DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_REVISION_2: UCHAR = 2;
+STRUCT!{struct DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 {
+ Header: NDIS_OBJECT_HEADER,
+ bPersistentGroupEnabled: BOOLEAN,
+ bIntraBSSDistributionSupported: BOOLEAN,
+ bCrossConnectionSupported: BOOLEAN,
+ bPersistentReconnectSupported: BOOLEAN,
+ bGroupFormationEnabled: BOOLEAN,
+ uMaximumGroupLimit: ULONG,
+ bEapolKeyIpAddressAllocationSupported: BOOLEAN,
+}}
+pub type PDOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2 =
+ *mut DOT11_WFD_GROUP_OWNER_CAPABILITY_CONFIG_V2;
+pub const OID_DOT11_WFD_DEVICE_INFO: u32 =
+ NWF_DEFINE_OID!(0x03, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_DEVICE_INFO_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_DEVICE_INFO {
+ Header: NDIS_OBJECT_HEADER,
+ DeviceAddress: DOT11_MAC_ADDRESS,
+ ConfigMethods: USHORT,
+ PrimaryDeviceType: DOT11_WFD_DEVICE_TYPE,
+ DeviceName: DOT11_WPS_DEVICE_NAME,
+}}
+pub type PDOT11_WFD_DEVICE_INFO = *mut DOT11_WFD_DEVICE_INFO;
+pub const OID_DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST: u32 =
+ NWF_DEFINE_OID!(0x04, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST {
+ Header: NDIS_OBJECT_HEADER,
+ uNumOfEntries: ULONG,
+ uTotalNumOfEntries: ULONG,
+ SecondaryDeviceTypes: [DOT11_WFD_DEVICE_TYPE; 1],
+}}
+pub type PDOT11_WFD_SECONDARY_DEVICE_TYPE_LIST = *mut DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST;
+// pub const DOT11_SIZEOF_WFD_SECONDARY_DEVICE_TYPE_LIST_REVISION_1: usize =
+// FIELD_OFFSET(DOT11_WFD_SECONDARY_DEVICE_TYPE_LIST, SecondaryDeviceTypes);
+pub const OID_DOT11_WFD_DISCOVER_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x05, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+ENUM!{enum DOT11_WFD_DISCOVER_TYPE {
+ dot11_wfd_discover_type_scan_only = 1,
+ dot11_wfd_discover_type_find_only = 2,
+ dot11_wfd_discover_type_auto = 3,
+ dot11_wfd_discover_type_scan_social_channels = 4,
+ dot11_wfd_discover_type_forced = 0x80000000,
+}}
+pub type PDOT11_WFD_DISCOVER_TYPE = *mut DOT11_WFD_DISCOVER_TYPE;
+ENUM!{enum DOT11_WFD_SCAN_TYPE {
+ dot11_wfd_scan_type_active = 1,
+ dot11_wfd_scan_type_passive = 2,
+ dot11_wfd_scan_type_auto = 3,
+}}
+pub type PDOT11_WFD_SCAN_TYPE = *mut DOT11_WFD_SCAN_TYPE;
+pub const DISCOVERY_FILTER_BITMASK_DEVICE: UCHAR = 0x1;
+pub const DISCOVERY_FILTER_BITMASK_GO: UCHAR = 0x2;
+pub const DISCOVERY_FILTER_BITMASK_ANY: UCHAR = 0xF;
+STRUCT!{struct DOT11_WFD_DISCOVER_DEVICE_FILTER {
+ DeviceID: DOT11_MAC_ADDRESS,
+ ucBitmask: UCHAR,
+ GroupSSID: DOT11_SSID,
+}}
+pub type PDOT11_WFD_DISCOVER_DEVICE_FILTER = *mut DOT11_WFD_DISCOVER_DEVICE_FILTER;
+pub const DOT11_WFD_DISCOVER_REQUEST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_DISCOVER_REQUEST {
+ Header: NDIS_OBJECT_HEADER,
+ DiscoverType: DOT11_WFD_DISCOVER_TYPE,
+ ScanType: DOT11_WFD_SCAN_TYPE,
+ uDiscoverTimeout: ULONG,
+ uDeviceFilterListOffset: ULONG,
+ uNumDeviceFilters: ULONG,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+ bForceScanLegacyNetworks: BOOLEAN,
+}}
+pub type PDOT11_WFD_DISCOVER_REQUEST = *mut DOT11_WFD_DISCOVER_REQUEST;
+pub const OID_DOT11_WFD_ENUM_DEVICE_LIST: u32 =
+ NWF_DEFINE_OID!(0x06, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_DEVICE_ENTRY_BYTE_ARRAY_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_DEVICE_ENTRY {
+ uPhyId: ULONG,
+ PhySpecificInfo: DOT11_BSS_ENTRY_PHY_SPECIFIC_INFO,
+ dot11BSSID: DOT11_MAC_ADDRESS,
+ dot11BSSType: DOT11_BSS_TYPE,
+ TransmitterAddress: DOT11_MAC_ADDRESS,
+ lRSSI: LONG,
+ uLinkQuality: ULONG,
+ usBeaconPeriod: USHORT,
+ ullTimestamp: ULONGLONG,
+ ullBeaconHostTimestamp: ULONGLONG,
+ ullProbeResponseHostTimestamp: ULONGLONG,
+ usCapabilityInformation: USHORT,
+ uBeaconIEsOffset: ULONG,
+ uBeaconIEsLength: ULONG,
+ uProbeResponseIEsOffset: ULONG,
+ uProbeResponseIEsLength: ULONG,
+}}
+pub type PDOT11_WFD_DEVICE_ENTRY = *mut DOT11_WFD_DEVICE_ENTRY;
+pub const OID_DOT11_WFD_LISTEN_STATE_DISCOVERABILITY: u32 =
+ NWF_DEFINE_OID!(0x07, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_DEVICE_NOT_DISCOVERABLE: i32 = 0;
+pub const DOT11_WFD_DEVICE_AUTO_AVAILABILITY: i32 = 16;
+pub const DOT11_WFD_DEVICE_HIGH_AVAILABILITY: i32 = 24;
+pub const OID_DOT11_WFD_ADDITIONAL_IE: u32 =
+ NWF_DEFINE_OID!(0x08, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_ADDITIONAL_IE_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_ADDITIONAL_IE {
+ Header: NDIS_OBJECT_HEADER,
+ uBeaconIEsOffset: ULONG,
+ uBeaconIEsLength: ULONG,
+ uProbeResponseIEsOffset: ULONG,
+ uProbeResponseIEsLength: ULONG,
+ uDefaultRequestIEsOffset: ULONG,
+ uDefaultRequestIEsLength: ULONG,
+}}
+pub type PDOT11_WFD_ADDITIONAL_IE = *mut DOT11_WFD_ADDITIONAL_IE;
+pub const OID_DOT11_WFD_FLUSH_DEVICE_LIST: u32 =
+ NWF_DEFINE_OID!(0x09, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x0A, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ uSendTimeout: ULONG,
+ GroupOwnerIntent: DOT11_WFD_GO_INTENT,
+ MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
+ IntendedInterfaceAddress: DOT11_MAC_ADDRESS,
+ GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS =
+ *mut DOT11_SEND_GO_NEGOTIATION_REQUEST_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_RESPONSE: u32 =
+ NWF_DEFINE_OID!(0x0B, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uSendTimeout: ULONG,
+ Status: DOT11_WFD_STATUS_CODE,
+ GroupOwnerIntent: DOT11_WFD_GO_INTENT,
+ MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
+ IntendedInterfaceAddress: DOT11_MAC_ADDRESS,
+ GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
+ GroupID: DOT11_WFD_GROUP_ID,
+ bUseGroupID: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS =
+ *mut DOT11_SEND_GO_NEGOTIATION_RESPONSE_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_GO_NEGOTIATION_CONFIRMATION: u32 =
+ NWF_DEFINE_OID!(0x0C, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ ResponseContext: PVOID,
+ uSendTimeout: ULONG,
+ Status: DOT11_WFD_STATUS_CODE,
+ GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
+ GroupID: DOT11_WFD_GROUP_ID,
+ bUseGroupID: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS =
+ *mut DOT11_SEND_GO_NEGOTIATION_CONFIRMATION_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_INVITATION_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x0D, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+STRUCT!{#[repr(packed)] struct DOT11_WFD_INVITATION_FLAGS {
+ Bitfields: UCHAR,
+}}
+BITFIELD!{DOT11_WFD_INVITATION_FLAGS Bitfields: UCHAR [
+ InvitationType set_InvitationType[0..1],
+ Reserved set_Reserved[1..8],
+]}
+pub type PDOT11_WFD_INVITATION_FLAGS = *mut DOT11_WFD_INVITATION_FLAGS;
+pub const DOT11_SEND_INVITATION_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_INVITATION_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ uSendTimeout: ULONG,
+ MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
+ InvitationFlags: DOT11_WFD_INVITATION_FLAGS,
+ GroupBSSID: DOT11_MAC_ADDRESS,
+ bUseGroupBSSID: BOOLEAN,
+ OperatingChannel: DOT11_WFD_CHANNEL,
+ bUseSpecifiedOperatingChannel: BOOLEAN,
+ GroupID: DOT11_WFD_GROUP_ID,
+ bLocalGO: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_INVITATION_REQUEST_PARAMETERS =
+ *mut DOT11_SEND_INVITATION_REQUEST_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_INVITATION_RESPONSE: u32 =
+ NWF_DEFINE_OID!(0x0E, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_INVITATION_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_INVITATION_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uSendTimeout: ULONG,
+ Status: DOT11_WFD_STATUS_CODE,
+ MinimumConfigTimeout: DOT11_WFD_CONFIGURATION_TIMEOUT,
+ GroupBSSID: DOT11_MAC_ADDRESS,
+ bUseGroupBSSID: BOOLEAN,
+ OperatingChannel: DOT11_WFD_CHANNEL,
+ bUseSpecifiedOperatingChannel: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_INVITATION_RESPONSE_PARAMETERS =
+ *mut DOT11_SEND_INVITATION_RESPONSE_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x0F, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ PeerDeviceAddress: DOT11_MAC_ADDRESS,
+ uSendTimeout: ULONG,
+ GroupCapability: DOT11_WFD_GROUP_CAPABILITY,
+ GroupID: DOT11_WFD_GROUP_ID,
+ bUseGroupID: BOOLEAN,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS =
+ *mut DOT11_SEND_PROVISION_DISCOVERY_REQUEST_PARAMETERS;
+pub const OID_DOT11_WFD_SEND_PROVISION_DISCOVERY_RESPONSE: u32 =
+ NWF_DEFINE_OID!(0x10, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ ReceiverDeviceAddress: DOT11_MAC_ADDRESS,
+ DialogToken: DOT11_DIALOG_TOKEN,
+ RequestContext: PVOID,
+ uSendTimeout: ULONG,
+ uIEsOffset: ULONG,
+ uIEsLength: ULONG,
+}}
+pub type PDOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS =
+ *mut DOT11_SEND_PROVISION_DISCOVERY_RESPONSE_PARAMETERS;
+pub const OID_DOT11_WFD_GET_DIALOG_TOKEN: u32 =
+ NWF_DEFINE_OID!(0x11, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_STOP_DISCOVERY: u32 =
+ NWF_DEFINE_OID!(0x12, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_ENABLE_HRDSSS_DEVICES: u32 =
+ NWF_DEFINE_OID!(0x13, NWF_WFD_DEVICE_OID, NWF_OPTIONAL_OID);
+pub const OID_DOT11_WFD_DEVICE_LISTEN_CHANNEL: u32 =
+ NWF_DEFINE_OID!(0x14, NWF_WFD_DEVICE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_DEVICE_LISTEN_CHANNEL_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_DEVICE_LISTEN_CHANNEL {
+ Header: NDIS_OBJECT_HEADER,
+ ChannelNumber: UCHAR,
+}}
+pub type PDOT11_WFD_DEVICE_LISTEN_CHANNEL = *mut DOT11_WFD_DEVICE_LISTEN_CHANNEL;
+pub const OID_DOT11_WFD_DESIRED_GROUP_ID: u32 =
+ NWF_DEFINE_OID!(0x01, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_START_GO_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x02, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_GROUP_START_PARAMETERS: u32 =
+ NWF_DEFINE_OID!(0x03, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_GROUP_START_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_GROUP_START_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ AdvertisedOperatingChannel: DOT11_WFD_CHANNEL,
+}}
+pub type PDOT11_WFD_GROUP_START_PARAMETERS = *mut DOT11_WFD_GROUP_START_PARAMETERS;
+pub const OID_DOT11_WFD_CONNECT_TO_GROUP_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x04, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_DISCONNECT_FROM_GROUP_REQUEST: u32 =
+ NWF_DEFINE_OID!(0x05, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const OID_DOT11_WFD_GROUP_JOIN_PARAMETERS: u32 =
+ NWF_DEFINE_OID!(0x06, NWF_WFD_ROLE_OID, NWF_MANDATORY_OID);
+pub const DOT11_WFD_GROUP_JOIN_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_WFD_GROUP_JOIN_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ GOOperatingChannel: DOT11_WFD_CHANNEL,
+ GOConfigTime: ULONG,
+ bInGroupFormation: BOOLEAN,
+ bWaitForWPSReady: BOOLEAN,
+}}
+pub type PDOT11_WFD_GROUP_JOIN_PARAMETERS = *mut DOT11_WFD_GROUP_JOIN_PARAMETERS;
+pub const NWF_POWER_SAVE_OID: u32 = 0x07;
+pub const OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED: u32 =
+ NWF_DEFINE_OID!(0x01, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
+pub const DOT11_POWER_MGMT_AUTO_MODE_ENABLED_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO {
+ Header: NDIS_OBJECT_HEADER,
+ bEnabled: BOOLEAN,
+}}
+pub type PDOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO = *mut DOT11_POWER_MGMT_AUTO_MODE_ENABLED_INFO;
+pub const OID_DOT11_POWER_MGMT_MODE_STATUS: u32 =
+ NWF_DEFINE_OID!(0x02, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
+ENUM!{enum DOT11_POWER_MODE_REASON {
+ dot11_power_mode_reason_no_change = 0,
+ dot11_power_mode_reason_noncompliant_AP = 1,
+ dot11_power_mode_reason_legacy_WFD_device = 2,
+ dot11_power_mode_reason_compliant_AP = 3,
+ dot11_power_mode_reason_compliant_WFD_device = 4,
+ dot11_power_mode_reason_others = 5,
+}}
+pub const DOT11_POWER_MGMT_MODE_STATUS_INFO_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_POWER_MGMT_MODE_STATUS_INFO {
+ Header: NDIS_OBJECT_HEADER,
+ PowerSaveMode: DOT11_POWER_MODE,
+ uPowerSaveLevel: ULONG,
+ Reason: DOT11_POWER_MODE_REASON,
+}}
+pub type PDOT11_POWER_MGMT_MODE_STATUSINFO = *mut DOT11_POWER_MGMT_MODE_STATUS_INFO;
+pub const OID_DOT11_OFFLOAD_NETWORK_LIST: u32 =
+ NWF_DEFINE_OID!(0x03, NWF_POWER_SAVE_OID, NWF_MANDATORY_OID);
+pub const DOT11_MAX_CHANNEL_HINTS: usize = 4;
+pub const DOT11_INVALID_CHANNEL_NUMBER: ULONG = 0;
+STRUCT!{struct DOT11_CHANNEL_HINT {
+ Dot11PhyType: DOT11_PHY_TYPE,
+ uChannelNumber: ULONG,
+}}
+pub type PDOT11_CHANNEL_HINT = *mut DOT11_CHANNEL_HINT;
+STRUCT!{struct DOT11_OFFLOAD_NETWORK {
+ Ssid: DOT11_SSID,
+ UnicastCipher: DOT11_CIPHER_ALGORITHM,
+ AuthAlgo: DOT11_AUTH_ALGORITHM,
+ Dot11ChannelHints: [DOT11_CHANNEL_HINT; DOT11_MAX_CHANNEL_HINTS],
+}}
+pub type PDOT11_OFFLOAD_NETWORK = *mut DOT11_OFFLOAD_NETWORK;
+pub const DOT11_NLO_FLAG_STOP_NLO_INDICATION: ULONG = 0x00000001;
+pub const DOT11_NLO_FLAG_SCAN_ON_AOAC_PLATFORM: ULONG = 0x00000002;
+pub const DOT11_NLO_FLAG_SCAN_AT_SYSTEM_RESUME: ULONG = 0x00000004;
+pub const DOT11_OFFLOAD_NETWORK_LIST_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_OFFLOAD_NETWORK_LIST_INFO {
+ Header: NDIS_OBJECT_HEADER,
+ ulFlags: ULONG,
+ FastScanPeriod: ULONG,
+ FastScanIterations: ULONG,
+ SlowScanPeriod: ULONG,
+ uNumOfEntries: ULONG,
+ offloadNetworkList: [DOT11_OFFLOAD_NETWORK; 1],
+}}
+pub type PDOT11_OFFLOAD_NETWORK_LIST_INFO = *mut DOT11_OFFLOAD_NETWORK_LIST_INFO;
+pub const DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS_REVISION_1: UCHAR = 1;
+STRUCT!{struct DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ Status: NDIS_STATUS,
+}}
+pub type PDOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS = *mut DOT11_OFFLOAD_NETWORK_STATUS_PARAMETERS;
+pub const NWF_MANUFACTURING_OID: u32 = 0x08;
+pub const OID_DOT11_MANUFACTURING_TEST: u32 =
+ NWF_DEFINE_OID!(0x01, NWF_MANUFACTURING_OID, NWF_OPTIONAL_OID);
+pub const DOT11_MANUFACTURING_TEST_REVISION_1: UCHAR = 1;
+ENUM!{enum DOT11_MANUFACTURING_TEST_TYPE {
+ dot11_manufacturing_test_unknown = 0,
+ dot11_manufacturing_test_self_start = 1,
+ dot11_manufacturing_test_self_query_result = 2,
+ dot11_manufacturing_test_rx = 3,
+ dot11_manufacturing_test_tx = 4,
+ dot11_manufacturing_test_query_adc = 5,
+ dot11_manufacturing_test_set_data = 6,
+ dot11_manufacturing_test_query_data = 7,
+ dot11_manufacturing_test_sleep = 8,
+ dot11_manufacturing_test_awake = 9,
+ dot11_manufacturing_test_IHV_start = 0x80000000,
+ dot11_manufacturing_test_IHV_end = 0xffffffff,
+}}
+pub type PDOT11_MANUFACTURING_TEST_TYPE = *mut DOT11_MANUFACTURING_TEST_TYPE;
+STRUCT!{struct DOT11_MANUFACTURING_TEST {
+ dot11ManufacturingTestType: DOT11_MANUFACTURING_TEST_TYPE,
+ uBufferLength: ULONG,
+ ucBuffer: [UCHAR; 1],
+}}
+pub type PDOT11_MANUFACTURING_TEST = *mut DOT11_MANUFACTURING_TEST;
+ENUM!{enum DOT11_MANUFACTURING_SELF_TEST_TYPE {
+ DOT11_MANUFACTURING_SELF_TEST_TYPE_INTERFACE = 1,
+ DOT11_MANUFACTURING_SELF_TEST_TYPE_RF_INTERFACE = 2,
+ DOT11_MANUFACTURING_SELF_TEST_TYPE_BT_COEXISTENCE = 3,
+}}
+pub type PDOT11_MANUFACTURING_SELF_TEST_TYPE = *mut DOT11_MANUFACTURING_SELF_TEST_TYPE;
+STRUCT!{struct DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS {
+ SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE,
+ uTestID: ULONG,
+ uPinBitMask: ULONG,
+ pvContext: PVOID,
+ uBufferLength: ULONG,
+ ucBufferIn: [UCHAR; 1],
+}}
+pub type PDOT11_MANUFACTURING_SELF_TEST_SET_PARAMS =
+ *mut DOT11_MANUFACTURING_SELF_TEST_SET_PARAMS;
+STRUCT!{struct DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS {
+ SelfTestType: DOT11_MANUFACTURING_SELF_TEST_TYPE,
+ uTestID: ULONG,
+ bResult: BOOLEAN,
+ uPinFailedBitMask: ULONG,
+ pvContext: PVOID,
+ uBytesWrittenOut: ULONG,
+ ucBufferOut: [UCHAR; 1],
+}}
+pub type PDOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS =
+ *mut DOT11_MANUFACTURING_SELF_TEST_QUERY_RESULTS;
+ENUM!{enum DOT11_BAND {
+ dot11_band_2p4g = 1,
+ dot11_band_4p9g = 2,
+ dot11_band_5g = 3,
+}}
+pub type PDOT11_BAND = *mut DOT11_BAND;
+STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX {
+ bEnabled: BOOLEAN,
+ Dot11Band: DOT11_BAND,
+ uChannel: ULONG,
+ PowerLevel: LONG,
+}}
+pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_RX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_RX;
+STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX {
+ bEnable: BOOLEAN,
+ bOpenLoop: BOOLEAN,
+ Dot11Band: DOT11_BAND,
+ uChannel: ULONG,
+ uSetPowerLevel: ULONG,
+ ADCPowerLevel: LONG,
+}}
+pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_TX = *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_TX;
+STRUCT!{struct DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC {
+ Dot11Band: DOT11_BAND,
+ uChannel: ULONG,
+ ADCPowerLevel: LONG,
+}}
+pub type PDOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC =
+ *mut DOT11_MANUFACTURING_FUNCTIONAL_TEST_QUERY_ADC;
+STRUCT!{struct DOT11_MANUFACTURING_TEST_SET_DATA {
+ uKey: ULONG,
+ uOffset: ULONG,
+ uBufferLength: ULONG,
+ ucBufferIn: [UCHAR; 1],
+}}
+pub type PDOT11_MANUFACTURING_TEST_SET_DATA = *mut DOT11_MANUFACTURING_TEST_SET_DATA;
+STRUCT!{struct DOT11_MANUFACTURING_TEST_QUERY_DATA {
+ uKey: ULONG,
+ uOffset: ULONG,
+ uBufferLength: ULONG,
+ uBytesRead: ULONG,
+ ucBufferOut: [UCHAR; 1],
+}}
+pub type PDOT11_MANUFACTURING_TEST_QUERY_DATA = *mut DOT11_MANUFACTURING_TEST_QUERY_DATA;
+STRUCT!{struct DOT11_MANUFACTURING_TEST_SLEEP {
+ uSleepTime: ULONG,
+ pvContext: PVOID,
+}}
+pub type PDOT11_MANUFACTURING_TEST_SLEEP = *mut DOT11_MANUFACTURING_TEST_SLEEP;
+ENUM!{enum DOT11_MANUFACTURING_CALLBACK_TYPE {
+ dot11_manufacturing_callback_unknown = 0,
+ dot11_manufacturing_callback_self_test_complete = 1,
+ dot11_manufacturing_callback_sleep_complete = 2,
+ dot11_manufacturing_callback_IHV_start = 0x80000000,
+ dot11_manufacturing_callback_IHV_end = 0xffffffff,
+}}
+pub type PDOT11_MANUFACTURING_CALLBACK_TYPE = *mut DOT11_MANUFACTURING_CALLBACK_TYPE;
+STRUCT!{struct DOT11_MANUFACTURING_CALLBACK_PARAMETERS {
+ Header: NDIS_OBJECT_HEADER,
+ dot11ManufacturingCallbackType: DOT11_MANUFACTURING_CALLBACK_TYPE,
+ uStatus: ULONG,
+ pvContext: PVOID,
+}}
+pub type PDOT11_MANUFACTURING_CALLBACK_PARAMETERS = *mut DOT11_MANUFACTURING_CALLBACK_PARAMETERS;
+pub const DOT11_MANUFACTURING_CALLBACK_REVISION_1: UCHAR = 1;
+pub const OID_DOT11_SET_FT_REASSOCIATION_PARAMETERS: u32 =
+ NWF_DEFINE_OID!(0x168, NWF_OPERATIONAL_OID, NWF_MANDATORY_OID);
diff --git a/third_party/rust/winapi/src/shared/windowsx.rs b/third_party/rust/winapi/src/shared/windowsx.rs
new file mode 100644
index 0000000000..4147aa353c
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/windowsx.rs
@@ -0,0 +1,17 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Macro APIs, window message crackers, and control APIs
+use ctypes::{c_int, c_short};
+use shared::minwindef::{DWORD, HIWORD, LOWORD, LPARAM};
+//1233
+#[inline]
+pub fn GET_X_LPARAM(lp: LPARAM) -> c_int {
+ LOWORD(lp as DWORD) as c_short as c_int
+}
+#[inline]
+pub fn GET_Y_LPARAM(lp: LPARAM) -> c_int {
+ HIWORD(lp as DWORD) as c_short as c_int
+}
diff --git a/third_party/rust/winapi/src/shared/winerror.rs b/third_party/rust/winapi/src/shared/winerror.rs
new file mode 100644
index 0000000000..2c2982100c
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/winerror.rs
@@ -0,0 +1,6150 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! error code definitions for the Win32 API functions
+use ctypes::{c_long, c_ulong};
+use shared::minwindef::DWORD;
+use shared::wtypesbase::SCODE;
+pub const FACILITY_XPS: HRESULT = 82;
+pub const FACILITY_XAML: HRESULT = 43;
+pub const FACILITY_USN: HRESULT = 129;
+pub const FACILITY_BLBUI: HRESULT = 128;
+pub const FACILITY_SPP: HRESULT = 256;
+pub const FACILITY_WSB_ONLINE: HRESULT = 133;
+pub const FACILITY_DLS: HRESULT = 153;
+pub const FACILITY_BLB_CLI: HRESULT = 121;
+pub const FACILITY_BLB: HRESULT = 120;
+pub const FACILITY_WSBAPP: HRESULT = 122;
+pub const FACILITY_WPN: HRESULT = 62;
+pub const FACILITY_WMAAECMA: HRESULT = 1996;
+pub const FACILITY_WINRM: HRESULT = 51;
+pub const FACILITY_WINPE: HRESULT = 61;
+pub const FACILITY_WINDOWSUPDATE: HRESULT = 36;
+pub const FACILITY_WINDOWS_STORE: HRESULT = 63;
+pub const FACILITY_WINDOWS_SETUP: HRESULT = 48;
+pub const FACILITY_WINDOWS_DEFENDER: HRESULT = 80;
+pub const FACILITY_WINDOWS_CE: HRESULT = 24;
+pub const FACILITY_WINDOWS: HRESULT = 8;
+pub const FACILITY_WINCODEC_DWRITE_DWM: HRESULT = 2200;
+pub const FACILITY_WIA: HRESULT = 33;
+pub const FACILITY_WER: HRESULT = 27;
+pub const FACILITY_WEP: HRESULT = 2049;
+pub const FACILITY_WEB_SOCKET: HRESULT = 886;
+pub const FACILITY_WEB: HRESULT = 885;
+pub const FACILITY_USERMODE_VOLSNAP: HRESULT = 130;
+pub const FACILITY_USERMODE_VOLMGR: HRESULT = 56;
+pub const FACILITY_VISUALCPP: HRESULT = 109;
+pub const FACILITY_USERMODE_VIRTUALIZATION: HRESULT = 55;
+pub const FACILITY_USERMODE_VHD: HRESULT = 58;
+pub const FACILITY_URT: HRESULT = 19;
+pub const FACILITY_UMI: HRESULT = 22;
+pub const FACILITY_UI: HRESULT = 42;
+pub const FACILITY_TPM_SOFTWARE: HRESULT = 41;
+pub const FACILITY_TPM_SERVICES: HRESULT = 40;
+pub const FACILITY_TIERING: HRESULT = 131;
+pub const FACILITY_SYNCENGINE: HRESULT = 2050;
+pub const FACILITY_SXS: HRESULT = 23;
+pub const FACILITY_STORAGE: HRESULT = 3;
+pub const FACILITY_STATE_MANAGEMENT: HRESULT = 34;
+pub const FACILITY_SSPI: HRESULT = 9;
+pub const FACILITY_USERMODE_SPACES: HRESULT = 231;
+pub const FACILITY_SOS: HRESULT = 160;
+pub const FACILITY_SCARD: HRESULT = 16;
+pub const FACILITY_SHELL: HRESULT = 39;
+pub const FACILITY_SETUPAPI: HRESULT = 15;
+pub const FACILITY_SECURITY: HRESULT = 9;
+pub const FACILITY_SDIAG: HRESULT = 60;
+pub const FACILITY_USERMODE_SDBUS: HRESULT = 2305;
+pub const FACILITY_RPC: HRESULT = 1;
+pub const FACILITY_RESTORE: HRESULT = 256;
+pub const FACILITY_SCRIPT: HRESULT = 112;
+pub const FACILITY_PARSE: HRESULT = 113;
+pub const FACILITY_RAS: HRESULT = 83;
+pub const FACILITY_POWERSHELL: HRESULT = 84;
+pub const FACILITY_PLA: HRESULT = 48;
+pub const FACILITY_PIDGENX: HRESULT = 2561;
+pub const FACILITY_P2P_INT: HRESULT = 98;
+pub const FACILITY_P2P: HRESULT = 99;
+pub const FACILITY_OPC: HRESULT = 81;
+pub const FACILITY_ONLINE_ID: HRESULT = 134;
+pub const FACILITY_WIN32: HRESULT = 7;
+pub const FACILITY_CONTROL: HRESULT = 10;
+pub const FACILITY_WEBSERVICES: HRESULT = 61;
+pub const FACILITY_NULL: HRESULT = 0;
+pub const FACILITY_NDIS: HRESULT = 52;
+pub const FACILITY_NAP: HRESULT = 39;
+pub const FACILITY_MOBILE: HRESULT = 1793;
+pub const FACILITY_METADIRECTORY: HRESULT = 35;
+pub const FACILITY_MSMQ: HRESULT = 14;
+pub const FACILITY_MEDIASERVER: HRESULT = 13;
+pub const FACILITY_MBN: HRESULT = 84;
+pub const FACILITY_LINGUISTIC_SERVICES: HRESULT = 305;
+pub const FACILITY_LEAP: HRESULT = 2184;
+pub const FACILITY_JSCRIPT: HRESULT = 2306;
+pub const FACILITY_INTERNET: HRESULT = 12;
+pub const FACILITY_ITF: HRESULT = 4;
+pub const FACILITY_INPUT: HRESULT = 64;
+pub const FACILITY_USERMODE_HYPERVISOR: HRESULT = 53;
+pub const FACILITY_ACCELERATOR: HRESULT = 1536;
+pub const FACILITY_HTTP: HRESULT = 25;
+pub const FACILITY_GRAPHICS: HRESULT = 38;
+pub const FACILITY_FWP: HRESULT = 50;
+pub const FACILITY_FVE: HRESULT = 49;
+pub const FACILITY_USERMODE_FILTER_MANAGER: HRESULT = 31;
+pub const FACILITY_EAS: HRESULT = 85;
+pub const FACILITY_EAP: HRESULT = 66;
+pub const FACILITY_DXGI_DDI: HRESULT = 2171;
+pub const FACILITY_DXGI: HRESULT = 2170;
+pub const FACILITY_DPLAY: HRESULT = 21;
+pub const FACILITY_DMSERVER: HRESULT = 256;
+pub const FACILITY_DISPATCH: HRESULT = 2;
+pub const FACILITY_DIRECTORYSERVICE: HRESULT = 37;
+pub const FACILITY_DIRECTMUSIC: HRESULT = 2168;
+pub const FACILITY_DIRECT3D11: HRESULT = 2172;
+pub const FACILITY_DIRECT3D10: HRESULT = 2169;
+pub const FACILITY_DIRECT2D: HRESULT = 2201;
+pub const FACILITY_DAF: HRESULT = 100;
+pub const FACILITY_DEPLOYMENT_SERVICES_UTIL: HRESULT = 260;
+pub const FACILITY_DEPLOYMENT_SERVICES_TRANSPORT_MANAGEMENT: HRESULT = 272;
+pub const FACILITY_DEPLOYMENT_SERVICES_TFTP: HRESULT = 264;
+pub const FACILITY_DEPLOYMENT_SERVICES_PXE: HRESULT = 263;
+pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_SERVER: HRESULT = 289;
+pub const FACILITY_DEPLOYMENT_SERVICES_MULTICAST_CLIENT: HRESULT = 290;
+pub const FACILITY_DEPLOYMENT_SERVICES_MANAGEMENT: HRESULT = 259;
+pub const FACILITY_DEPLOYMENT_SERVICES_IMAGING: HRESULT = 258;
+pub const FACILITY_DEPLOYMENT_SERVICES_DRIVER_PROVISIONING: HRESULT = 278;
+pub const FACILITY_DEPLOYMENT_SERVICES_SERVER: HRESULT = 257;
+pub const FACILITY_DEPLOYMENT_SERVICES_CONTENT_PROVIDER: HRESULT = 293;
+pub const FACILITY_DEPLOYMENT_SERVICES_BINLSVC: HRESULT = 261;
+pub const FACILITY_DEFRAG: HRESULT = 2304;
+pub const FACILITY_DEBUGGERS: HRESULT = 176;
+pub const FACILITY_CONFIGURATION: HRESULT = 33;
+pub const FACILITY_COMPLUS: HRESULT = 17;
+pub const FACILITY_USERMODE_COMMONLOG: HRESULT = 26;
+pub const FACILITY_CMI: HRESULT = 54;
+pub const FACILITY_CERT: HRESULT = 11;
+pub const FACILITY_BLUETOOTH_ATT: HRESULT = 101;
+pub const FACILITY_BCD: HRESULT = 57;
+pub const FACILITY_BACKGROUNDCOPY: HRESULT = 32;
+pub const FACILITY_AUDIOSTREAMING: HRESULT = 1094;
+pub const FACILITY_AUDCLNT: HRESULT = 2185;
+pub const FACILITY_AUDIO: HRESULT = 102;
+pub const FACILITY_ACTION_QUEUE: HRESULT = 44;
+pub const FACILITY_ACS: HRESULT = 20;
+pub const FACILITY_AAF: HRESULT = 18;
+pub const ERROR_SUCCESS: DWORD = 0;
+pub const NO_ERROR: DWORD = 0;
+pub const SEC_E_OK: HRESULT = 0;
+pub const ERROR_INVALID_FUNCTION: DWORD = 1;
+pub const ERROR_FILE_NOT_FOUND: DWORD = 2;
+pub const ERROR_PATH_NOT_FOUND: DWORD = 3;
+pub const ERROR_TOO_MANY_OPEN_FILES: DWORD = 4;
+pub const ERROR_ACCESS_DENIED: DWORD = 5;
+pub const ERROR_INVALID_HANDLE: DWORD = 6;
+pub const ERROR_ARENA_TRASHED: DWORD = 7;
+pub const ERROR_NOT_ENOUGH_MEMORY: DWORD = 8;
+pub const ERROR_INVALID_BLOCK: DWORD = 9;
+pub const ERROR_BAD_ENVIRONMENT: DWORD = 10;
+pub const ERROR_BAD_FORMAT: DWORD = 11;
+pub const ERROR_INVALID_ACCESS: DWORD = 12;
+pub const ERROR_INVALID_DATA: DWORD = 13;
+pub const ERROR_OUTOFMEMORY: DWORD = 14;
+pub const ERROR_INVALID_DRIVE: DWORD = 15;
+pub const ERROR_CURRENT_DIRECTORY: DWORD = 16;
+pub const ERROR_NOT_SAME_DEVICE: DWORD = 17;
+pub const ERROR_NO_MORE_FILES: DWORD = 18;
+pub const ERROR_WRITE_PROTECT: DWORD = 19;
+pub const ERROR_BAD_UNIT: DWORD = 20;
+pub const ERROR_NOT_READY: DWORD = 21;
+pub const ERROR_BAD_COMMAND: DWORD = 22;
+pub const ERROR_CRC: DWORD = 23;
+pub const ERROR_BAD_LENGTH: DWORD = 24;
+pub const ERROR_SEEK: DWORD = 25;
+pub const ERROR_NOT_DOS_DISK: DWORD = 26;
+pub const ERROR_SECTOR_NOT_FOUND: DWORD = 27;
+pub const ERROR_OUT_OF_PAPER: DWORD = 28;
+pub const ERROR_WRITE_FAULT: DWORD = 29;
+pub const ERROR_READ_FAULT: DWORD = 30;
+pub const ERROR_GEN_FAILURE: DWORD = 31;
+pub const ERROR_SHARING_VIOLATION: DWORD = 32;
+pub const ERROR_LOCK_VIOLATION: DWORD = 33;
+pub const ERROR_WRONG_DISK: DWORD = 34;
+pub const ERROR_SHARING_BUFFER_EXCEEDED: DWORD = 36;
+pub const ERROR_HANDLE_EOF: DWORD = 38;
+pub const ERROR_HANDLE_DISK_FULL: DWORD = 39;
+pub const ERROR_NOT_SUPPORTED: DWORD = 50;
+pub const ERROR_REM_NOT_LIST: DWORD = 51;
+pub const ERROR_DUP_NAME: DWORD = 52;
+pub const ERROR_BAD_NETPATH: DWORD = 53;
+pub const ERROR_NETWORK_BUSY: DWORD = 54;
+pub const ERROR_DEV_NOT_EXIST: DWORD = 55;
+pub const ERROR_TOO_MANY_CMDS: DWORD = 56;
+pub const ERROR_ADAP_HDW_ERR: DWORD = 57;
+pub const ERROR_BAD_NET_RESP: DWORD = 58;
+pub const ERROR_UNEXP_NET_ERR: DWORD = 59;
+pub const ERROR_BAD_REM_ADAP: DWORD = 60;
+pub const ERROR_PRINTQ_FULL: DWORD = 61;
+pub const ERROR_NO_SPOOL_SPACE: DWORD = 62;
+pub const ERROR_PRINT_CANCELLED: DWORD = 63;
+pub const ERROR_NETNAME_DELETED: DWORD = 64;
+pub const ERROR_NETWORK_ACCESS_DENIED: DWORD = 65;
+pub const ERROR_BAD_DEV_TYPE: DWORD = 66;
+pub const ERROR_BAD_NET_NAME: DWORD = 67;
+pub const ERROR_TOO_MANY_NAMES: DWORD = 68;
+pub const ERROR_TOO_MANY_SESS: DWORD = 69;
+pub const ERROR_SHARING_PAUSED: DWORD = 70;
+pub const ERROR_REQ_NOT_ACCEP: DWORD = 71;
+pub const ERROR_REDIR_PAUSED: DWORD = 72;
+pub const ERROR_FILE_EXISTS: DWORD = 80;
+pub const ERROR_CANNOT_MAKE: DWORD = 82;
+pub const ERROR_FAIL_I24: DWORD = 83;
+pub const ERROR_OUT_OF_STRUCTURES: DWORD = 84;
+pub const ERROR_ALREADY_ASSIGNED: DWORD = 85;
+pub const ERROR_INVALID_PASSWORD: DWORD = 86;
+pub const ERROR_INVALID_PARAMETER: DWORD = 87;
+pub const ERROR_NET_WRITE_FAULT: DWORD = 88;
+pub const ERROR_NO_PROC_SLOTS: DWORD = 89;
+pub const ERROR_TOO_MANY_SEMAPHORES: DWORD = 100;
+pub const ERROR_EXCL_SEM_ALREADY_OWNED: DWORD = 101;
+pub const ERROR_SEM_IS_SET: DWORD = 102;
+pub const ERROR_TOO_MANY_SEM_REQUESTS: DWORD = 103;
+pub const ERROR_INVALID_AT_INTERRUPT_TIME: DWORD = 104;
+pub const ERROR_SEM_OWNER_DIED: DWORD = 105;
+pub const ERROR_SEM_USER_LIMIT: DWORD = 106;
+pub const ERROR_DISK_CHANGE: DWORD = 107;
+pub const ERROR_DRIVE_LOCKED: DWORD = 108;
+pub const ERROR_BROKEN_PIPE: DWORD = 109;
+pub const ERROR_OPEN_FAILED: DWORD = 110;
+pub const ERROR_BUFFER_OVERFLOW: DWORD = 111;
+pub const ERROR_DISK_FULL: DWORD = 112;
+pub const ERROR_NO_MORE_SEARCH_HANDLES: DWORD = 113;
+pub const ERROR_INVALID_TARGET_HANDLE: DWORD = 114;
+pub const ERROR_INVALID_CATEGORY: DWORD = 117;
+pub const ERROR_INVALID_VERIFY_SWITCH: DWORD = 118;
+pub const ERROR_BAD_DRIVER_LEVEL: DWORD = 119;
+pub const ERROR_CALL_NOT_IMPLEMENTED: DWORD = 120;
+pub const ERROR_SEM_TIMEOUT: DWORD = 121;
+pub const ERROR_INSUFFICIENT_BUFFER: DWORD = 122;
+pub const ERROR_INVALID_NAME: DWORD = 123;
+pub const ERROR_INVALID_LEVEL: DWORD = 124;
+pub const ERROR_NO_VOLUME_LABEL: DWORD = 125;
+pub const ERROR_MOD_NOT_FOUND: DWORD = 126;
+pub const ERROR_PROC_NOT_FOUND: DWORD = 127;
+pub const ERROR_WAIT_NO_CHILDREN: DWORD = 128;
+pub const ERROR_CHILD_NOT_COMPLETE: DWORD = 129;
+pub const ERROR_DIRECT_ACCESS_HANDLE: DWORD = 130;
+pub const ERROR_NEGATIVE_SEEK: DWORD = 131;
+pub const ERROR_SEEK_ON_DEVICE: DWORD = 132;
+pub const ERROR_IS_JOIN_TARGET: DWORD = 133;
+pub const ERROR_IS_JOINED: DWORD = 134;
+pub const ERROR_IS_SUBSTED: DWORD = 135;
+pub const ERROR_NOT_JOINED: DWORD = 136;
+pub const ERROR_NOT_SUBSTED: DWORD = 137;
+pub const ERROR_JOIN_TO_JOIN: DWORD = 138;
+pub const ERROR_SUBST_TO_SUBST: DWORD = 139;
+pub const ERROR_JOIN_TO_SUBST: DWORD = 140;
+pub const ERROR_SUBST_TO_JOIN: DWORD = 141;
+pub const ERROR_BUSY_DRIVE: DWORD = 142;
+pub const ERROR_SAME_DRIVE: DWORD = 143;
+pub const ERROR_DIR_NOT_ROOT: DWORD = 144;
+pub const ERROR_DIR_NOT_EMPTY: DWORD = 145;
+pub const ERROR_IS_SUBST_PATH: DWORD = 146;
+pub const ERROR_IS_JOIN_PATH: DWORD = 147;
+pub const ERROR_PATH_BUSY: DWORD = 148;
+pub const ERROR_IS_SUBST_TARGET: DWORD = 149;
+pub const ERROR_SYSTEM_TRACE: DWORD = 150;
+pub const ERROR_INVALID_EVENT_COUNT: DWORD = 151;
+pub const ERROR_TOO_MANY_MUXWAITERS: DWORD = 152;
+pub const ERROR_INVALID_LIST_FORMAT: DWORD = 153;
+pub const ERROR_LABEL_TOO_LONG: DWORD = 154;
+pub const ERROR_TOO_MANY_TCBS: DWORD = 155;
+pub const ERROR_SIGNAL_REFUSED: DWORD = 156;
+pub const ERROR_DISCARDED: DWORD = 157;
+pub const ERROR_NOT_LOCKED: DWORD = 158;
+pub const ERROR_BAD_THREADID_ADDR: DWORD = 159;
+pub const ERROR_BAD_ARGUMENTS: DWORD = 160;
+pub const ERROR_BAD_PATHNAME: DWORD = 161;
+pub const ERROR_SIGNAL_PENDING: DWORD = 162;
+pub const ERROR_MAX_THRDS_REACHED: DWORD = 164;
+pub const ERROR_LOCK_FAILED: DWORD = 167;
+pub const ERROR_BUSY: DWORD = 170;
+pub const ERROR_DEVICE_SUPPORT_IN_PROGRESS: DWORD = 171;
+pub const ERROR_CANCEL_VIOLATION: DWORD = 173;
+pub const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED: DWORD = 174;
+pub const ERROR_INVALID_SEGMENT_NUMBER: DWORD = 180;
+pub const ERROR_INVALID_ORDINAL: DWORD = 182;
+pub const ERROR_ALREADY_EXISTS: DWORD = 183;
+pub const ERROR_INVALID_FLAG_NUMBER: DWORD = 186;
+pub const ERROR_SEM_NOT_FOUND: DWORD = 187;
+pub const ERROR_INVALID_STARTING_CODESEG: DWORD = 188;
+pub const ERROR_INVALID_STACKSEG: DWORD = 189;
+pub const ERROR_INVALID_MODULETYPE: DWORD = 190;
+pub const ERROR_INVALID_EXE_SIGNATURE: DWORD = 191;
+pub const ERROR_EXE_MARKED_INVALID: DWORD = 192;
+pub const ERROR_BAD_EXE_FORMAT: DWORD = 193;
+pub const ERROR_ITERATED_DATA_EXCEEDS_64k: DWORD = 194;
+pub const ERROR_INVALID_MINALLOCSIZE: DWORD = 195;
+pub const ERROR_DYNLINK_FROM_INVALID_RING: DWORD = 196;
+pub const ERROR_IOPL_NOT_ENABLED: DWORD = 197;
+pub const ERROR_INVALID_SEGDPL: DWORD = 198;
+pub const ERROR_AUTODATASEG_EXCEEDS_64k: DWORD = 199;
+pub const ERROR_RING2SEG_MUST_BE_MOVABLE: DWORD = 200;
+pub const ERROR_RELOC_CHAIN_XEEDS_SEGLIM: DWORD = 201;
+pub const ERROR_INFLOOP_IN_RELOC_CHAIN: DWORD = 202;
+pub const ERROR_ENVVAR_NOT_FOUND: DWORD = 203;
+pub const ERROR_NO_SIGNAL_SENT: DWORD = 205;
+pub const ERROR_FILENAME_EXCED_RANGE: DWORD = 206;
+pub const ERROR_RING2_STACK_IN_USE: DWORD = 207;
+pub const ERROR_META_EXPANSION_TOO_LONG: DWORD = 208;
+pub const ERROR_INVALID_SIGNAL_NUMBER: DWORD = 209;
+pub const ERROR_THREAD_1_INACTIVE: DWORD = 210;
+pub const ERROR_LOCKED: DWORD = 212;
+pub const ERROR_TOO_MANY_MODULES: DWORD = 214;
+pub const ERROR_NESTING_NOT_ALLOWED: DWORD = 215;
+pub const ERROR_EXE_MACHINE_TYPE_MISMATCH: DWORD = 216;
+pub const ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY: DWORD = 217;
+pub const ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY: DWORD = 218;
+pub const ERROR_FILE_CHECKED_OUT: DWORD = 220;
+pub const ERROR_CHECKOUT_REQUIRED: DWORD = 221;
+pub const ERROR_BAD_FILE_TYPE: DWORD = 222;
+pub const ERROR_FILE_TOO_LARGE: DWORD = 223;
+pub const ERROR_FORMS_AUTH_REQUIRED: DWORD = 224;
+pub const ERROR_VIRUS_INFECTED: DWORD = 225;
+pub const ERROR_VIRUS_DELETED: DWORD = 226;
+pub const ERROR_PIPE_LOCAL: DWORD = 229;
+pub const ERROR_BAD_PIPE: DWORD = 230;
+pub const ERROR_PIPE_BUSY: DWORD = 231;
+pub const ERROR_NO_DATA: DWORD = 232;
+pub const ERROR_PIPE_NOT_CONNECTED: DWORD = 233;
+pub const ERROR_MORE_DATA: DWORD = 234;
+pub const ERROR_VC_DISCONNECTED: DWORD = 240;
+pub const ERROR_INVALID_EA_NAME: DWORD = 254;
+pub const ERROR_EA_LIST_INCONSISTENT: DWORD = 255;
+pub const WAIT_TIMEOUT: DWORD = 258;
+pub const ERROR_NO_MORE_ITEMS: DWORD = 259;
+pub const ERROR_CANNOT_COPY: DWORD = 266;
+pub const ERROR_DIRECTORY: DWORD = 267;
+pub const ERROR_EAS_DIDNT_FIT: DWORD = 275;
+pub const ERROR_EA_FILE_CORRUPT: DWORD = 276;
+pub const ERROR_EA_TABLE_FULL: DWORD = 277;
+pub const ERROR_INVALID_EA_HANDLE: DWORD = 278;
+pub const ERROR_EAS_NOT_SUPPORTED: DWORD = 282;
+pub const ERROR_NOT_OWNER: DWORD = 288;
+pub const ERROR_TOO_MANY_POSTS: DWORD = 298;
+pub const ERROR_PARTIAL_COPY: DWORD = 299;
+pub const ERROR_OPLOCK_NOT_GRANTED: DWORD = 300;
+pub const ERROR_INVALID_OPLOCK_PROTOCOL: DWORD = 301;
+pub const ERROR_DISK_TOO_FRAGMENTED: DWORD = 302;
+pub const ERROR_DELETE_PENDING: DWORD = 303;
+pub const ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING: DWORD = 304;
+pub const ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME: DWORD = 305;
+pub const ERROR_SECURITY_STREAM_IS_INCONSISTENT: DWORD = 306;
+pub const ERROR_INVALID_LOCK_RANGE: DWORD = 307;
+pub const ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT: DWORD = 308;
+pub const ERROR_NOTIFICATION_GUID_ALREADY_DEFINED: DWORD = 309;
+pub const ERROR_INVALID_EXCEPTION_HANDLER: DWORD = 310;
+pub const ERROR_DUPLICATE_PRIVILEGES: DWORD = 311;
+pub const ERROR_NO_RANGES_PROCESSED: DWORD = 312;
+pub const ERROR_NOT_ALLOWED_ON_SYSTEM_FILE: DWORD = 313;
+pub const ERROR_DISK_RESOURCES_EXHAUSTED: DWORD = 314;
+pub const ERROR_INVALID_TOKEN: DWORD = 315;
+pub const ERROR_DEVICE_FEATURE_NOT_SUPPORTED: DWORD = 316;
+pub const ERROR_MR_MID_NOT_FOUND: DWORD = 317;
+pub const ERROR_SCOPE_NOT_FOUND: DWORD = 318;
+pub const ERROR_UNDEFINED_SCOPE: DWORD = 319;
+pub const ERROR_INVALID_CAP: DWORD = 320;
+pub const ERROR_DEVICE_UNREACHABLE: DWORD = 321;
+pub const ERROR_DEVICE_NO_RESOURCES: DWORD = 322;
+pub const ERROR_DATA_CHECKSUM_ERROR: DWORD = 323;
+pub const ERROR_INTERMIXED_KERNEL_EA_OPERATION: DWORD = 324;
+pub const ERROR_FILE_LEVEL_TRIM_NOT_SUPPORTED: DWORD = 326;
+pub const ERROR_OFFSET_ALIGNMENT_VIOLATION: DWORD = 327;
+pub const ERROR_INVALID_FIELD_IN_PARAMETER_LIST: DWORD = 328;
+pub const ERROR_OPERATION_IN_PROGRESS: DWORD = 329;
+pub const ERROR_BAD_DEVICE_PATH: DWORD = 330;
+pub const ERROR_TOO_MANY_DESCRIPTORS: DWORD = 331;
+pub const ERROR_SCRUB_DATA_DISABLED: DWORD = 332;
+pub const ERROR_NOT_REDUNDANT_STORAGE: DWORD = 333;
+pub const ERROR_RESIDENT_FILE_NOT_SUPPORTED: DWORD = 334;
+pub const ERROR_COMPRESSED_FILE_NOT_SUPPORTED: DWORD = 335;
+pub const ERROR_DIRECTORY_NOT_SUPPORTED: DWORD = 336;
+pub const ERROR_NOT_READ_FROM_COPY: DWORD = 337;
+pub const ERROR_FT_WRITE_FAILURE: DWORD = 338;
+pub const ERROR_FT_DI_SCAN_REQUIRED: DWORD = 339;
+pub const ERROR_INVALID_KERNEL_INFO_VERSION: DWORD = 340;
+pub const ERROR_INVALID_PEP_INFO_VERSION: DWORD = 341;
+pub const ERROR_OBJECT_NOT_EXTERNALLY_BACKED: DWORD = 342;
+pub const ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN: DWORD = 343;
+pub const ERROR_ENCLAVE_FAILURE: DWORD = 349;
+pub const ERROR_FAIL_NOACTION_REBOOT: DWORD = 350;
+pub const ERROR_FAIL_SHUTDOWN: DWORD = 351;
+pub const ERROR_FAIL_RESTART: DWORD = 352;
+pub const ERROR_MAX_SESSIONS_REACHED: DWORD = 353;
+pub const ERROR_THREAD_MODE_ALREADY_BACKGROUND: DWORD = 400;
+pub const ERROR_THREAD_MODE_NOT_BACKGROUND: DWORD = 401;
+pub const ERROR_PROCESS_MODE_ALREADY_BACKGROUND: DWORD = 402;
+pub const ERROR_PROCESS_MODE_NOT_BACKGROUND: DWORD = 403;
+pub const ERROR_DEVICE_HARDWARE_ERROR: DWORD = 483;
+pub const ERROR_INVALID_ADDRESS: DWORD = 487;
+pub const ERROR_USER_PROFILE_LOAD: DWORD = 500;
+pub const ERROR_ARITHMETIC_OVERFLOW: DWORD = 534;
+pub const ERROR_PIPE_CONNECTED: DWORD = 535;
+pub const ERROR_PIPE_LISTENING: DWORD = 536;
+pub const ERROR_VERIFIER_STOP: DWORD = 537;
+pub const ERROR_ABIOS_ERROR: DWORD = 538;
+pub const ERROR_WX86_WARNING: DWORD = 539;
+pub const ERROR_WX86_ERROR: DWORD = 540;
+pub const ERROR_TIMER_NOT_CANCELED: DWORD = 541;
+pub const ERROR_UNWIND: DWORD = 542;
+pub const ERROR_BAD_STACK: DWORD = 543;
+pub const ERROR_INVALID_UNWIND_TARGET: DWORD = 544;
+pub const ERROR_INVALID_PORT_ATTRIBUTES: DWORD = 545;
+pub const ERROR_PORT_MESSAGE_TOO_LONG: DWORD = 546;
+pub const ERROR_INVALID_QUOTA_LOWER: DWORD = 547;
+pub const ERROR_DEVICE_ALREADY_ATTACHED: DWORD = 548;
+pub const ERROR_INSTRUCTION_MISALIGNMENT: DWORD = 549;
+pub const ERROR_PROFILING_NOT_STARTED: DWORD = 550;
+pub const ERROR_PROFILING_NOT_STOPPED: DWORD = 551;
+pub const ERROR_COULD_NOT_INTERPRET: DWORD = 552;
+pub const ERROR_PROFILING_AT_LIMIT: DWORD = 553;
+pub const ERROR_CANT_WAIT: DWORD = 554;
+pub const ERROR_CANT_TERMINATE_SELF: DWORD = 555;
+pub const ERROR_UNEXPECTED_MM_CREATE_ERR: DWORD = 556;
+pub const ERROR_UNEXPECTED_MM_MAP_ERROR: DWORD = 557;
+pub const ERROR_UNEXPECTED_MM_EXTEND_ERR: DWORD = 558;
+pub const ERROR_BAD_FUNCTION_TABLE: DWORD = 559;
+pub const ERROR_NO_GUID_TRANSLATION: DWORD = 560;
+pub const ERROR_INVALID_LDT_SIZE: DWORD = 561;
+pub const ERROR_INVALID_LDT_OFFSET: DWORD = 563;
+pub const ERROR_INVALID_LDT_DESCRIPTOR: DWORD = 564;
+pub const ERROR_TOO_MANY_THREADS: DWORD = 565;
+pub const ERROR_THREAD_NOT_IN_PROCESS: DWORD = 566;
+pub const ERROR_PAGEFILE_QUOTA_EXCEEDED: DWORD = 567;
+pub const ERROR_LOGON_SERVER_CONFLICT: DWORD = 568;
+pub const ERROR_SYNCHRONIZATION_REQUIRED: DWORD = 569;
+pub const ERROR_NET_OPEN_FAILED: DWORD = 570;
+pub const ERROR_IO_PRIVILEGE_FAILED: DWORD = 571;
+pub const ERROR_CONTROL_C_EXIT: DWORD = 572;
+pub const ERROR_MISSING_SYSTEMFILE: DWORD = 573;
+pub const ERROR_UNHANDLED_EXCEPTION: DWORD = 574;
+pub const ERROR_APP_INIT_FAILURE: DWORD = 575;
+pub const ERROR_PAGEFILE_CREATE_FAILED: DWORD = 576;
+pub const ERROR_INVALID_IMAGE_HASH: DWORD = 577;
+pub const ERROR_NO_PAGEFILE: DWORD = 578;
+pub const ERROR_ILLEGAL_FLOAT_CONTEXT: DWORD = 579;
+pub const ERROR_NO_EVENT_PAIR: DWORD = 580;
+pub const ERROR_DOMAIN_CTRLR_CONFIG_ERROR: DWORD = 581;
+pub const ERROR_ILLEGAL_CHARACTER: DWORD = 582;
+pub const ERROR_UNDEFINED_CHARACTER: DWORD = 583;
+pub const ERROR_FLOPPY_VOLUME: DWORD = 584;
+pub const ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT: DWORD = 585;
+pub const ERROR_BACKUP_CONTROLLER: DWORD = 586;
+pub const ERROR_MUTANT_LIMIT_EXCEEDED: DWORD = 587;
+pub const ERROR_FS_DRIVER_REQUIRED: DWORD = 588;
+pub const ERROR_CANNOT_LOAD_REGISTRY_FILE: DWORD = 589;
+pub const ERROR_DEBUG_ATTACH_FAILED: DWORD = 590;
+pub const ERROR_SYSTEM_PROCESS_TERMINATED: DWORD = 591;
+pub const ERROR_DATA_NOT_ACCEPTED: DWORD = 592;
+pub const ERROR_VDM_HARD_ERROR: DWORD = 593;
+pub const ERROR_DRIVER_CANCEL_TIMEOUT: DWORD = 594;
+pub const ERROR_REPLY_MESSAGE_MISMATCH: DWORD = 595;
+pub const ERROR_LOST_WRITEBEHIND_DATA: DWORD = 596;
+pub const ERROR_CLIENT_SERVER_PARAMETERS_INVALID: DWORD = 597;
+pub const ERROR_NOT_TINY_STREAM: DWORD = 598;
+pub const ERROR_STACK_OVERFLOW_READ: DWORD = 599;
+pub const ERROR_CONVERT_TO_LARGE: DWORD = 600;
+pub const ERROR_FOUND_OUT_OF_SCOPE: DWORD = 601;
+pub const ERROR_ALLOCATE_BUCKET: DWORD = 602;
+pub const ERROR_MARSHALL_OVERFLOW: DWORD = 603;
+pub const ERROR_INVALID_VARIANT: DWORD = 604;
+pub const ERROR_BAD_COMPRESSION_BUFFER: DWORD = 605;
+pub const ERROR_AUDIT_FAILED: DWORD = 606;
+pub const ERROR_TIMER_RESOLUTION_NOT_SET: DWORD = 607;
+pub const ERROR_INSUFFICIENT_LOGON_INFO: DWORD = 608;
+pub const ERROR_BAD_DLL_ENTRYPOINT: DWORD = 609;
+pub const ERROR_BAD_SERVICE_ENTRYPOINT: DWORD = 610;
+pub const ERROR_IP_ADDRESS_CONFLICT1: DWORD = 611;
+pub const ERROR_IP_ADDRESS_CONFLICT2: DWORD = 612;
+pub const ERROR_REGISTRY_QUOTA_LIMIT: DWORD = 613;
+pub const ERROR_NO_CALLBACK_ACTIVE: DWORD = 614;
+pub const ERROR_PWD_TOO_SHORT: DWORD = 615;
+pub const ERROR_PWD_TOO_RECENT: DWORD = 616;
+pub const ERROR_PWD_HISTORY_CONFLICT: DWORD = 617;
+pub const ERROR_UNSUPPORTED_COMPRESSION: DWORD = 618;
+pub const ERROR_INVALID_HW_PROFILE: DWORD = 619;
+pub const ERROR_INVALID_PLUGPLAY_DEVICE_PATH: DWORD = 620;
+pub const ERROR_QUOTA_LIST_INCONSISTENT: DWORD = 621;
+pub const ERROR_EVALUATION_EXPIRATION: DWORD = 622;
+pub const ERROR_ILLEGAL_DLL_RELOCATION: DWORD = 623;
+pub const ERROR_DLL_INIT_FAILED_LOGOFF: DWORD = 624;
+pub const ERROR_VALIDATE_CONTINUE: DWORD = 625;
+pub const ERROR_NO_MORE_MATCHES: DWORD = 626;
+pub const ERROR_RANGE_LIST_CONFLICT: DWORD = 627;
+pub const ERROR_SERVER_SID_MISMATCH: DWORD = 628;
+pub const ERROR_CANT_ENABLE_DENY_ONLY: DWORD = 629;
+pub const ERROR_FLOAT_MULTIPLE_FAULTS: DWORD = 630;
+pub const ERROR_FLOAT_MULTIPLE_TRAPS: DWORD = 631;
+pub const ERROR_NOINTERFACE: DWORD = 632;
+pub const ERROR_DRIVER_FAILED_SLEEP: DWORD = 633;
+pub const ERROR_CORRUPT_SYSTEM_FILE: DWORD = 634;
+pub const ERROR_COMMITMENT_MINIMUM: DWORD = 635;
+pub const ERROR_PNP_RESTART_ENUMERATION: DWORD = 636;
+pub const ERROR_SYSTEM_IMAGE_BAD_SIGNATURE: DWORD = 637;
+pub const ERROR_PNP_REBOOT_REQUIRED: DWORD = 638;
+pub const ERROR_INSUFFICIENT_POWER: DWORD = 639;
+pub const ERROR_MULTIPLE_FAULT_VIOLATION: DWORD = 640;
+pub const ERROR_SYSTEM_SHUTDOWN: DWORD = 641;
+pub const ERROR_PORT_NOT_SET: DWORD = 642;
+pub const ERROR_DS_VERSION_CHECK_FAILURE: DWORD = 643;
+pub const ERROR_RANGE_NOT_FOUND: DWORD = 644;
+pub const ERROR_NOT_SAFE_MODE_DRIVER: DWORD = 646;
+pub const ERROR_FAILED_DRIVER_ENTRY: DWORD = 647;
+pub const ERROR_DEVICE_ENUMERATION_ERROR: DWORD = 648;
+pub const ERROR_MOUNT_POINT_NOT_RESOLVED: DWORD = 649;
+pub const ERROR_INVALID_DEVICE_OBJECT_PARAMETER: DWORD = 650;
+pub const ERROR_MCA_OCCURED: DWORD = 651;
+pub const ERROR_DRIVER_DATABASE_ERROR: DWORD = 652;
+pub const ERROR_SYSTEM_HIVE_TOO_LARGE: DWORD = 653;
+pub const ERROR_DRIVER_FAILED_PRIOR_UNLOAD: DWORD = 654;
+pub const ERROR_VOLSNAP_PREPARE_HIBERNATE: DWORD = 655;
+pub const ERROR_HIBERNATION_FAILURE: DWORD = 656;
+pub const ERROR_PWD_TOO_LONG: DWORD = 657;
+pub const ERROR_FILE_SYSTEM_LIMITATION: DWORD = 665;
+pub const ERROR_ASSERTION_FAILURE: DWORD = 668;
+pub const ERROR_ACPI_ERROR: DWORD = 669;
+pub const ERROR_WOW_ASSERTION: DWORD = 670;
+pub const ERROR_PNP_BAD_MPS_TABLE: DWORD = 671;
+pub const ERROR_PNP_TRANSLATION_FAILED: DWORD = 672;
+pub const ERROR_PNP_IRQ_TRANSLATION_FAILED: DWORD = 673;
+pub const ERROR_PNP_INVALID_ID: DWORD = 674;
+pub const ERROR_WAKE_SYSTEM_DEBUGGER: DWORD = 675;
+pub const ERROR_HANDLES_CLOSED: DWORD = 676;
+pub const ERROR_EXTRANEOUS_INFORMATION: DWORD = 677;
+pub const ERROR_RXACT_COMMIT_NECESSARY: DWORD = 678;
+pub const ERROR_MEDIA_CHECK: DWORD = 679;
+pub const ERROR_GUID_SUBSTITUTION_MADE: DWORD = 680;
+pub const ERROR_STOPPED_ON_SYMLINK: DWORD = 681;
+pub const ERROR_LONGJUMP: DWORD = 682;
+pub const ERROR_PLUGPLAY_QUERY_VETOED: DWORD = 683;
+pub const ERROR_UNWIND_CONSOLIDATE: DWORD = 684;
+pub const ERROR_REGISTRY_HIVE_RECOVERED: DWORD = 685;
+pub const ERROR_DLL_MIGHT_BE_INSECURE: DWORD = 686;
+pub const ERROR_DLL_MIGHT_BE_INCOMPATIBLE: DWORD = 687;
+pub const ERROR_DBG_EXCEPTION_NOT_HANDLED: DWORD = 688;
+pub const ERROR_DBG_REPLY_LATER: DWORD = 689;
+pub const ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE: DWORD = 690;
+pub const ERROR_DBG_TERMINATE_THREAD: DWORD = 691;
+pub const ERROR_DBG_TERMINATE_PROCESS: DWORD = 692;
+pub const ERROR_DBG_CONTROL_C: DWORD = 693;
+pub const ERROR_DBG_PRINTEXCEPTION_C: DWORD = 694;
+pub const ERROR_DBG_RIPEXCEPTION: DWORD = 695;
+pub const ERROR_DBG_CONTROL_BREAK: DWORD = 696;
+pub const ERROR_DBG_COMMAND_EXCEPTION: DWORD = 697;
+pub const ERROR_OBJECT_NAME_EXISTS: DWORD = 698;
+pub const ERROR_THREAD_WAS_SUSPENDED: DWORD = 699;
+pub const ERROR_IMAGE_NOT_AT_BASE: DWORD = 700;
+pub const ERROR_RXACT_STATE_CREATED: DWORD = 701;
+pub const ERROR_SEGMENT_NOTIFICATION: DWORD = 702;
+pub const ERROR_BAD_CURRENT_DIRECTORY: DWORD = 703;
+pub const ERROR_FT_READ_RECOVERY_FROM_BACKUP: DWORD = 704;
+pub const ERROR_FT_WRITE_RECOVERY: DWORD = 705;
+pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH: DWORD = 706;
+pub const ERROR_RECEIVE_PARTIAL: DWORD = 707;
+pub const ERROR_RECEIVE_EXPEDITED: DWORD = 708;
+pub const ERROR_RECEIVE_PARTIAL_EXPEDITED: DWORD = 709;
+pub const ERROR_EVENT_DONE: DWORD = 710;
+pub const ERROR_EVENT_PENDING: DWORD = 711;
+pub const ERROR_CHECKING_FILE_SYSTEM: DWORD = 712;
+pub const ERROR_FATAL_APP_EXIT: DWORD = 713;
+pub const ERROR_PREDEFINED_HANDLE: DWORD = 714;
+pub const ERROR_WAS_UNLOCKED: DWORD = 715;
+pub const ERROR_SERVICE_NOTIFICATION: DWORD = 716;
+pub const ERROR_WAS_LOCKED: DWORD = 717;
+pub const ERROR_LOG_HARD_ERROR: DWORD = 718;
+pub const ERROR_ALREADY_WIN32: DWORD = 719;
+pub const ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE: DWORD = 720;
+pub const ERROR_NO_YIELD_PERFORMED: DWORD = 721;
+pub const ERROR_TIMER_RESUME_IGNORED: DWORD = 722;
+pub const ERROR_ARBITRATION_UNHANDLED: DWORD = 723;
+pub const ERROR_CARDBUS_NOT_SUPPORTED: DWORD = 724;
+pub const ERROR_MP_PROCESSOR_MISMATCH: DWORD = 725;
+pub const ERROR_HIBERNATED: DWORD = 726;
+pub const ERROR_RESUME_HIBERNATION: DWORD = 727;
+pub const ERROR_FIRMWARE_UPDATED: DWORD = 728;
+pub const ERROR_DRIVERS_LEAKING_LOCKED_PAGES: DWORD = 729;
+pub const ERROR_WAKE_SYSTEM: DWORD = 730;
+pub const ERROR_WAIT_1: DWORD = 731;
+pub const ERROR_WAIT_2: DWORD = 732;
+pub const ERROR_WAIT_3: DWORD = 733;
+pub const ERROR_WAIT_63: DWORD = 734;
+pub const ERROR_ABANDONED_WAIT_0: DWORD = 735;
+pub const ERROR_ABANDONED_WAIT_63: DWORD = 736;
+pub const ERROR_USER_APC: DWORD = 737;
+pub const ERROR_KERNEL_APC: DWORD = 738;
+pub const ERROR_ALERTED: DWORD = 739;
+pub const ERROR_ELEVATION_REQUIRED: DWORD = 740;
+pub const ERROR_REPARSE: DWORD = 741;
+pub const ERROR_OPLOCK_BREAK_IN_PROGRESS: DWORD = 742;
+pub const ERROR_VOLUME_MOUNTED: DWORD = 743;
+pub const ERROR_RXACT_COMMITTED: DWORD = 744;
+pub const ERROR_NOTIFY_CLEANUP: DWORD = 745;
+pub const ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED: DWORD = 746;
+pub const ERROR_PAGE_FAULT_TRANSITION: DWORD = 747;
+pub const ERROR_PAGE_FAULT_DEMAND_ZERO: DWORD = 748;
+pub const ERROR_PAGE_FAULT_COPY_ON_WRITE: DWORD = 749;
+pub const ERROR_PAGE_FAULT_GUARD_PAGE: DWORD = 750;
+pub const ERROR_PAGE_FAULT_PAGING_FILE: DWORD = 751;
+pub const ERROR_CACHE_PAGE_LOCKED: DWORD = 752;
+pub const ERROR_CRASH_DUMP: DWORD = 753;
+pub const ERROR_BUFFER_ALL_ZEROS: DWORD = 754;
+pub const ERROR_REPARSE_OBJECT: DWORD = 755;
+pub const ERROR_RESOURCE_REQUIREMENTS_CHANGED: DWORD = 756;
+pub const ERROR_TRANSLATION_COMPLETE: DWORD = 757;
+pub const ERROR_NOTHING_TO_TERMINATE: DWORD = 758;
+pub const ERROR_PROCESS_NOT_IN_JOB: DWORD = 759;
+pub const ERROR_PROCESS_IN_JOB: DWORD = 760;
+pub const ERROR_VOLSNAP_HIBERNATE_READY: DWORD = 761;
+pub const ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY: DWORD = 762;
+pub const ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED: DWORD = 763;
+pub const ERROR_INTERRUPT_STILL_CONNECTED: DWORD = 764;
+pub const ERROR_WAIT_FOR_OPLOCK: DWORD = 765;
+pub const ERROR_DBG_EXCEPTION_HANDLED: DWORD = 766;
+pub const ERROR_DBG_CONTINUE: DWORD = 767;
+pub const ERROR_CALLBACK_POP_STACK: DWORD = 768;
+pub const ERROR_COMPRESSION_DISABLED: DWORD = 769;
+pub const ERROR_CANTFETCHBACKWARDS: DWORD = 770;
+pub const ERROR_CANTSCROLLBACKWARDS: DWORD = 771;
+pub const ERROR_ROWSNOTRELEASED: DWORD = 772;
+pub const ERROR_BAD_ACCESSOR_FLAGS: DWORD = 773;
+pub const ERROR_ERRORS_ENCOUNTERED: DWORD = 774;
+pub const ERROR_NOT_CAPABLE: DWORD = 775;
+pub const ERROR_REQUEST_OUT_OF_SEQUENCE: DWORD = 776;
+pub const ERROR_VERSION_PARSE_ERROR: DWORD = 777;
+pub const ERROR_BADSTARTPOSITION: DWORD = 778;
+pub const ERROR_MEMORY_HARDWARE: DWORD = 779;
+pub const ERROR_DISK_REPAIR_DISABLED: DWORD = 780;
+pub const ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE: DWORD = 781;
+pub const ERROR_SYSTEM_POWERSTATE_TRANSITION: DWORD = 782;
+pub const ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION: DWORD = 783;
+pub const ERROR_MCA_EXCEPTION: DWORD = 784;
+pub const ERROR_ACCESS_AUDIT_BY_POLICY: DWORD = 785;
+pub const ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY: DWORD = 786;
+pub const ERROR_ABANDON_HIBERFILE: DWORD = 787;
+pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED: DWORD = 788;
+pub const ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR: DWORD = 789;
+pub const ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR: DWORD = 790;
+pub const ERROR_BAD_MCFG_TABLE: DWORD = 791;
+pub const ERROR_DISK_REPAIR_REDIRECTED: DWORD = 792;
+pub const ERROR_DISK_REPAIR_UNSUCCESSFUL: DWORD = 793;
+pub const ERROR_CORRUPT_LOG_OVERFULL: DWORD = 794;
+pub const ERROR_CORRUPT_LOG_CORRUPTED: DWORD = 795;
+pub const ERROR_CORRUPT_LOG_UNAVAILABLE: DWORD = 796;
+pub const ERROR_CORRUPT_LOG_DELETED_FULL: DWORD = 797;
+pub const ERROR_CORRUPT_LOG_CLEARED: DWORD = 798;
+pub const ERROR_ORPHAN_NAME_EXHAUSTED: DWORD = 799;
+pub const ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE: DWORD = 800;
+pub const ERROR_CANNOT_GRANT_REQUESTED_OPLOCK: DWORD = 801;
+pub const ERROR_CANNOT_BREAK_OPLOCK: DWORD = 802;
+pub const ERROR_OPLOCK_HANDLE_CLOSED: DWORD = 803;
+pub const ERROR_NO_ACE_CONDITION: DWORD = 804;
+pub const ERROR_INVALID_ACE_CONDITION: DWORD = 805;
+pub const ERROR_FILE_HANDLE_REVOKED: DWORD = 806;
+pub const ERROR_IMAGE_AT_DIFFERENT_BASE: DWORD = 807;
+pub const ERROR_ENCRYPTED_IO_NOT_POSSIBLE: DWORD = 808;
+pub const ERROR_EA_ACCESS_DENIED: DWORD = 994;
+pub const ERROR_OPERATION_ABORTED: DWORD = 995;
+pub const ERROR_IO_INCOMPLETE: DWORD = 996;
+pub const ERROR_IO_PENDING: DWORD = 997;
+pub const ERROR_NOACCESS: DWORD = 998;
+pub const ERROR_SWAPERROR: DWORD = 999;
+pub const ERROR_STACK_OVERFLOW: DWORD = 1001;
+pub const ERROR_INVALID_MESSAGE: DWORD = 1002;
+pub const ERROR_CAN_NOT_COMPLETE: DWORD = 1003;
+pub const ERROR_INVALID_FLAGS: DWORD = 1004;
+pub const ERROR_UNRECOGNIZED_VOLUME: DWORD = 1005;
+pub const ERROR_FILE_INVALID: DWORD = 1006;
+pub const ERROR_FULLSCREEN_MODE: DWORD = 1007;
+pub const ERROR_NO_TOKEN: DWORD = 1008;
+pub const ERROR_BADDB: DWORD = 1009;
+pub const ERROR_BADKEY: DWORD = 1010;
+pub const ERROR_CANTOPEN: DWORD = 1011;
+pub const ERROR_CANTREAD: DWORD = 1012;
+pub const ERROR_CANTWRITE: DWORD = 1013;
+pub const ERROR_REGISTRY_RECOVERED: DWORD = 1014;
+pub const ERROR_REGISTRY_CORRUPT: DWORD = 1015;
+pub const ERROR_REGISTRY_IO_FAILED: DWORD = 1016;
+pub const ERROR_NOT_REGISTRY_FILE: DWORD = 1017;
+pub const ERROR_KEY_DELETED: DWORD = 1018;
+pub const ERROR_NO_LOG_SPACE: DWORD = 1019;
+pub const ERROR_KEY_HAS_CHILDREN: DWORD = 1020;
+pub const ERROR_CHILD_MUST_BE_VOLATILE: DWORD = 1021;
+pub const ERROR_NOTIFY_ENUM_DIR: DWORD = 1022;
+pub const ERROR_DEPENDENT_SERVICES_RUNNING: DWORD = 1051;
+pub const ERROR_INVALID_SERVICE_CONTROL: DWORD = 1052;
+pub const ERROR_SERVICE_REQUEST_TIMEOUT: DWORD = 1053;
+pub const ERROR_SERVICE_NO_THREAD: DWORD = 1054;
+pub const ERROR_SERVICE_DATABASE_LOCKED: DWORD = 1055;
+pub const ERROR_SERVICE_ALREADY_RUNNING: DWORD = 1056;
+pub const ERROR_INVALID_SERVICE_ACCOUNT: DWORD = 1057;
+pub const ERROR_SERVICE_DISABLED: DWORD = 1058;
+pub const ERROR_CIRCULAR_DEPENDENCY: DWORD = 1059;
+pub const ERROR_SERVICE_DOES_NOT_EXIST: DWORD = 1060;
+pub const ERROR_SERVICE_CANNOT_ACCEPT_CTRL: DWORD = 1061;
+pub const ERROR_SERVICE_NOT_ACTIVE: DWORD = 1062;
+pub const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT: DWORD = 1063;
+pub const ERROR_EXCEPTION_IN_SERVICE: DWORD = 1064;
+pub const ERROR_DATABASE_DOES_NOT_EXIST: DWORD = 1065;
+pub const ERROR_SERVICE_SPECIFIC_ERROR: DWORD = 1066;
+pub const ERROR_PROCESS_ABORTED: DWORD = 1067;
+pub const ERROR_SERVICE_DEPENDENCY_FAIL: DWORD = 1068;
+pub const ERROR_SERVICE_LOGON_FAILED: DWORD = 1069;
+pub const ERROR_SERVICE_START_HANG: DWORD = 1070;
+pub const ERROR_INVALID_SERVICE_LOCK: DWORD = 1071;
+pub const ERROR_SERVICE_MARKED_FOR_DELETE: DWORD = 1072;
+pub const ERROR_SERVICE_EXISTS: DWORD = 1073;
+pub const ERROR_ALREADY_RUNNING_LKG: DWORD = 1074;
+pub const ERROR_SERVICE_DEPENDENCY_DELETED: DWORD = 1075;
+pub const ERROR_BOOT_ALREADY_ACCEPTED: DWORD = 1076;
+pub const ERROR_SERVICE_NEVER_STARTED: DWORD = 1077;
+pub const ERROR_DUPLICATE_SERVICE_NAME: DWORD = 1078;
+pub const ERROR_DIFFERENT_SERVICE_ACCOUNT: DWORD = 1079;
+pub const ERROR_CANNOT_DETECT_DRIVER_FAILURE: DWORD = 1080;
+pub const ERROR_CANNOT_DETECT_PROCESS_ABORT: DWORD = 1081;
+pub const ERROR_NO_RECOVERY_PROGRAM: DWORD = 1082;
+pub const ERROR_SERVICE_NOT_IN_EXE: DWORD = 1083;
+pub const ERROR_NOT_SAFEBOOT_SERVICE: DWORD = 1084;
+pub const ERROR_END_OF_MEDIA: DWORD = 1100;
+pub const ERROR_FILEMARK_DETECTED: DWORD = 1101;
+pub const ERROR_BEGINNING_OF_MEDIA: DWORD = 1102;
+pub const ERROR_SETMARK_DETECTED: DWORD = 1103;
+pub const ERROR_NO_DATA_DETECTED: DWORD = 1104;
+pub const ERROR_PARTITION_FAILURE: DWORD = 1105;
+pub const ERROR_INVALID_BLOCK_LENGTH: DWORD = 1106;
+pub const ERROR_DEVICE_NOT_PARTITIONED: DWORD = 1107;
+pub const ERROR_UNABLE_TO_LOCK_MEDIA: DWORD = 1108;
+pub const ERROR_UNABLE_TO_UNLOAD_MEDIA: DWORD = 1109;
+pub const ERROR_MEDIA_CHANGED: DWORD = 1110;
+pub const ERROR_BUS_RESET: DWORD = 1111;
+pub const ERROR_NO_MEDIA_IN_DRIVE: DWORD = 1112;
+pub const ERROR_NO_UNICODE_TRANSLATION: DWORD = 1113;
+pub const ERROR_DLL_INIT_FAILED: DWORD = 1114;
+pub const ERROR_SHUTDOWN_IN_PROGRESS: DWORD = 1115;
+pub const ERROR_NO_SHUTDOWN_IN_PROGRESS: DWORD = 1116;
+pub const ERROR_IO_DEVICE: DWORD = 1117;
+pub const ERROR_SERIAL_NO_DEVICE: DWORD = 1118;
+pub const ERROR_IRQ_BUSY: DWORD = 1119;
+pub const ERROR_MORE_WRITES: DWORD = 1120;
+pub const ERROR_COUNTER_TIMEOUT: DWORD = 1121;
+pub const ERROR_FLOPPY_ID_MARK_NOT_FOUND: DWORD = 1122;
+pub const ERROR_FLOPPY_WRONG_CYLINDER: DWORD = 1123;
+pub const ERROR_FLOPPY_UNKNOWN_ERROR: DWORD = 1124;
+pub const ERROR_FLOPPY_BAD_REGISTERS: DWORD = 1125;
+pub const ERROR_DISK_RECALIBRATE_FAILED: DWORD = 1126;
+pub const ERROR_DISK_OPERATION_FAILED: DWORD = 1127;
+pub const ERROR_DISK_RESET_FAILED: DWORD = 1128;
+pub const ERROR_EOM_OVERFLOW: DWORD = 1129;
+pub const ERROR_NOT_ENOUGH_SERVER_MEMORY: DWORD = 1130;
+pub const ERROR_POSSIBLE_DEADLOCK: DWORD = 1131;
+pub const ERROR_MAPPED_ALIGNMENT: DWORD = 1132;
+pub const ERROR_SET_POWER_STATE_VETOED: DWORD = 1140;
+pub const ERROR_SET_POWER_STATE_FAILED: DWORD = 1141;
+pub const ERROR_TOO_MANY_LINKS: DWORD = 1142;
+pub const ERROR_OLD_WIN_VERSION: DWORD = 1150;
+pub const ERROR_APP_WRONG_OS: DWORD = 1151;
+pub const ERROR_SINGLE_INSTANCE_APP: DWORD = 1152;
+pub const ERROR_RMODE_APP: DWORD = 1153;
+pub const ERROR_INVALID_DLL: DWORD = 1154;
+pub const ERROR_NO_ASSOCIATION: DWORD = 1155;
+pub const ERROR_DDE_FAIL: DWORD = 1156;
+pub const ERROR_DLL_NOT_FOUND: DWORD = 1157;
+pub const ERROR_NO_MORE_USER_HANDLES: DWORD = 1158;
+pub const ERROR_MESSAGE_SYNC_ONLY: DWORD = 1159;
+pub const ERROR_SOURCE_ELEMENT_EMPTY: DWORD = 1160;
+pub const ERROR_DESTINATION_ELEMENT_FULL: DWORD = 1161;
+pub const ERROR_ILLEGAL_ELEMENT_ADDRESS: DWORD = 1162;
+pub const ERROR_MAGAZINE_NOT_PRESENT: DWORD = 1163;
+pub const ERROR_DEVICE_REINITIALIZATION_NEEDED: DWORD = 1164;
+pub const ERROR_DEVICE_REQUIRES_CLEANING: DWORD = 1165;
+pub const ERROR_DEVICE_DOOR_OPEN: DWORD = 1166;
+pub const ERROR_DEVICE_NOT_CONNECTED: DWORD = 1167;
+pub const ERROR_NOT_FOUND: DWORD = 1168;
+pub const ERROR_NO_MATCH: DWORD = 1169;
+pub const ERROR_SET_NOT_FOUND: DWORD = 1170;
+pub const ERROR_POINT_NOT_FOUND: DWORD = 1171;
+pub const ERROR_NO_TRACKING_SERVICE: DWORD = 1172;
+pub const ERROR_NO_VOLUME_ID: DWORD = 1173;
+pub const ERROR_UNABLE_TO_REMOVE_REPLACED: DWORD = 1175;
+pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT: DWORD = 1176;
+pub const ERROR_UNABLE_TO_MOVE_REPLACEMENT_2: DWORD = 1177;
+pub const ERROR_JOURNAL_DELETE_IN_PROGRESS: DWORD = 1178;
+pub const ERROR_JOURNAL_NOT_ACTIVE: DWORD = 1179;
+pub const ERROR_POTENTIAL_FILE_FOUND: DWORD = 1180;
+pub const ERROR_JOURNAL_ENTRY_DELETED: DWORD = 1181;
+pub const ERROR_SHUTDOWN_IS_SCHEDULED: DWORD = 1190;
+pub const ERROR_SHUTDOWN_USERS_LOGGED_ON: DWORD = 1191;
+pub const ERROR_BAD_DEVICE: DWORD = 1200;
+pub const ERROR_CONNECTION_UNAVAIL: DWORD = 1201;
+pub const ERROR_DEVICE_ALREADY_REMEMBERED: DWORD = 1202;
+pub const ERROR_NO_NET_OR_BAD_PATH: DWORD = 1203;
+pub const ERROR_BAD_PROVIDER: DWORD = 1204;
+pub const ERROR_CANNOT_OPEN_PROFILE: DWORD = 1205;
+pub const ERROR_BAD_PROFILE: DWORD = 1206;
+pub const ERROR_NOT_CONTAINER: DWORD = 1207;
+pub const ERROR_EXTENDED_ERROR: DWORD = 1208;
+pub const ERROR_INVALID_GROUPNAME: DWORD = 1209;
+pub const ERROR_INVALID_COMPUTERNAME: DWORD = 1210;
+pub const ERROR_INVALID_EVENTNAME: DWORD = 1211;
+pub const ERROR_INVALID_DOMAINNAME: DWORD = 1212;
+pub const ERROR_INVALID_SERVICENAME: DWORD = 1213;
+pub const ERROR_INVALID_NETNAME: DWORD = 1214;
+pub const ERROR_INVALID_SHARENAME: DWORD = 1215;
+pub const ERROR_INVALID_PASSWORDNAME: DWORD = 1216;
+pub const ERROR_INVALID_MESSAGENAME: DWORD = 1217;
+pub const ERROR_INVALID_MESSAGEDEST: DWORD = 1218;
+pub const ERROR_SESSION_CREDENTIAL_CONFLICT: DWORD = 1219;
+pub const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED: DWORD = 1220;
+pub const ERROR_DUP_DOMAINNAME: DWORD = 1221;
+pub const ERROR_NO_NETWORK: DWORD = 1222;
+pub const ERROR_CANCELLED: DWORD = 1223;
+pub const ERROR_USER_MAPPED_FILE: DWORD = 1224;
+pub const ERROR_CONNECTION_REFUSED: DWORD = 1225;
+pub const ERROR_GRACEFUL_DISCONNECT: DWORD = 1226;
+pub const ERROR_ADDRESS_ALREADY_ASSOCIATED: DWORD = 1227;
+pub const ERROR_ADDRESS_NOT_ASSOCIATED: DWORD = 1228;
+pub const ERROR_CONNECTION_INVALID: DWORD = 1229;
+pub const ERROR_CONNECTION_ACTIVE: DWORD = 1230;
+pub const ERROR_NETWORK_UNREACHABLE: DWORD = 1231;
+pub const ERROR_HOST_UNREACHABLE: DWORD = 1232;
+pub const ERROR_PROTOCOL_UNREACHABLE: DWORD = 1233;
+pub const ERROR_PORT_UNREACHABLE: DWORD = 1234;
+pub const ERROR_REQUEST_ABORTED: DWORD = 1235;
+pub const ERROR_CONNECTION_ABORTED: DWORD = 1236;
+pub const ERROR_RETRY: DWORD = 1237;
+pub const ERROR_CONNECTION_COUNT_LIMIT: DWORD = 1238;
+pub const ERROR_LOGIN_TIME_RESTRICTION: DWORD = 1239;
+pub const ERROR_LOGIN_WKSTA_RESTRICTION: DWORD = 1240;
+pub const ERROR_INCORRECT_ADDRESS: DWORD = 1241;
+pub const ERROR_ALREADY_REGISTERED: DWORD = 1242;
+pub const ERROR_SERVICE_NOT_FOUND: DWORD = 1243;
+pub const ERROR_NOT_AUTHENTICATED: DWORD = 1244;
+pub const ERROR_NOT_LOGGED_ON: DWORD = 1245;
+pub const ERROR_CONTINUE: DWORD = 1246;
+pub const ERROR_ALREADY_INITIALIZED: DWORD = 1247;
+pub const ERROR_NO_MORE_DEVICES: DWORD = 1248;
+pub const ERROR_NO_SUCH_SITE: DWORD = 1249;
+pub const ERROR_DOMAIN_CONTROLLER_EXISTS: DWORD = 1250;
+pub const ERROR_ONLY_IF_CONNECTED: DWORD = 1251;
+pub const ERROR_OVERRIDE_NOCHANGES: DWORD = 1252;
+pub const ERROR_BAD_USER_PROFILE: DWORD = 1253;
+pub const ERROR_NOT_SUPPORTED_ON_SBS: DWORD = 1254;
+pub const ERROR_SERVER_SHUTDOWN_IN_PROGRESS: DWORD = 1255;
+pub const ERROR_HOST_DOWN: DWORD = 1256;
+pub const ERROR_NON_ACCOUNT_SID: DWORD = 1257;
+pub const ERROR_NON_DOMAIN_SID: DWORD = 1258;
+pub const ERROR_APPHELP_BLOCK: DWORD = 1259;
+pub const ERROR_ACCESS_DISABLED_BY_POLICY: DWORD = 1260;
+pub const ERROR_REG_NAT_CONSUMPTION: DWORD = 1261;
+pub const ERROR_CSCSHARE_OFFLINE: DWORD = 1262;
+pub const ERROR_PKINIT_FAILURE: DWORD = 1263;
+pub const ERROR_SMARTCARD_SUBSYSTEM_FAILURE: DWORD = 1264;
+pub const ERROR_DOWNGRADE_DETECTED: DWORD = 1265;
+pub const ERROR_MACHINE_LOCKED: DWORD = 1271;
+pub const ERROR_CALLBACK_SUPPLIED_INVALID_DATA: DWORD = 1273;
+pub const ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED: DWORD = 1274;
+pub const ERROR_DRIVER_BLOCKED: DWORD = 1275;
+pub const ERROR_INVALID_IMPORT_OF_NON_DLL: DWORD = 1276;
+pub const ERROR_ACCESS_DISABLED_WEBBLADE: DWORD = 1277;
+pub const ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER: DWORD = 1278;
+pub const ERROR_RECOVERY_FAILURE: DWORD = 1279;
+pub const ERROR_ALREADY_FIBER: DWORD = 1280;
+pub const ERROR_ALREADY_THREAD: DWORD = 1281;
+pub const ERROR_STACK_BUFFER_OVERRUN: DWORD = 1282;
+pub const ERROR_PARAMETER_QUOTA_EXCEEDED: DWORD = 1283;
+pub const ERROR_DEBUGGER_INACTIVE: DWORD = 1284;
+pub const ERROR_DELAY_LOAD_FAILED: DWORD = 1285;
+pub const ERROR_VDM_DISALLOWED: DWORD = 1286;
+pub const ERROR_UNIDENTIFIED_ERROR: DWORD = 1287;
+pub const ERROR_INVALID_CRUNTIME_PARAMETER: DWORD = 1288;
+pub const ERROR_BEYOND_VDL: DWORD = 1289;
+pub const ERROR_INCOMPATIBLE_SERVICE_SID_TYPE: DWORD = 1290;
+pub const ERROR_DRIVER_PROCESS_TERMINATED: DWORD = 1291;
+pub const ERROR_IMPLEMENTATION_LIMIT: DWORD = 1292;
+pub const ERROR_PROCESS_IS_PROTECTED: DWORD = 1293;
+pub const ERROR_SERVICE_NOTIFY_CLIENT_LAGGING: DWORD = 1294;
+pub const ERROR_DISK_QUOTA_EXCEEDED: DWORD = 1295;
+pub const ERROR_CONTENT_BLOCKED: DWORD = 1296;
+pub const ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE: DWORD = 1297;
+pub const ERROR_APP_HANG: DWORD = 1298;
+pub const ERROR_INVALID_LABEL: DWORD = 1299;
+pub const ERROR_NOT_ALL_ASSIGNED: DWORD = 1300;
+pub const ERROR_SOME_NOT_MAPPED: DWORD = 1301;
+pub const ERROR_NO_QUOTAS_FOR_ACCOUNT: DWORD = 1302;
+pub const ERROR_LOCAL_USER_SESSION_KEY: DWORD = 1303;
+pub const ERROR_NULL_LM_PASSWORD: DWORD = 1304;
+pub const ERROR_UNKNOWN_REVISION: DWORD = 1305;
+pub const ERROR_REVISION_MISMATCH: DWORD = 1306;
+pub const ERROR_INVALID_OWNER: DWORD = 1307;
+pub const ERROR_INVALID_PRIMARY_GROUP: DWORD = 1308;
+pub const ERROR_NO_IMPERSONATION_TOKEN: DWORD = 1309;
+pub const ERROR_CANT_DISABLE_MANDATORY: DWORD = 1310;
+pub const ERROR_NO_LOGON_SERVERS: DWORD = 1311;
+pub const ERROR_NO_SUCH_LOGON_SESSION: DWORD = 1312;
+pub const ERROR_NO_SUCH_PRIVILEGE: DWORD = 1313;
+pub const ERROR_PRIVILEGE_NOT_HELD: DWORD = 1314;
+pub const ERROR_INVALID_ACCOUNT_NAME: DWORD = 1315;
+pub const ERROR_USER_EXISTS: DWORD = 1316;
+pub const ERROR_NO_SUCH_USER: DWORD = 1317;
+pub const ERROR_GROUP_EXISTS: DWORD = 1318;
+pub const ERROR_NO_SUCH_GROUP: DWORD = 1319;
+pub const ERROR_MEMBER_IN_GROUP: DWORD = 1320;
+pub const ERROR_MEMBER_NOT_IN_GROUP: DWORD = 1321;
+pub const ERROR_LAST_ADMIN: DWORD = 1322;
+pub const ERROR_WRONG_PASSWORD: DWORD = 1323;
+pub const ERROR_ILL_FORMED_PASSWORD: DWORD = 1324;
+pub const ERROR_PASSWORD_RESTRICTION: DWORD = 1325;
+pub const ERROR_LOGON_FAILURE: DWORD = 1326;
+pub const ERROR_ACCOUNT_RESTRICTION: DWORD = 1327;
+pub const ERROR_INVALID_LOGON_HOURS: DWORD = 1328;
+pub const ERROR_INVALID_WORKSTATION: DWORD = 1329;
+pub const ERROR_PASSWORD_EXPIRED: DWORD = 1330;
+pub const ERROR_ACCOUNT_DISABLED: DWORD = 1331;
+pub const ERROR_NONE_MAPPED: DWORD = 1332;
+pub const ERROR_TOO_MANY_LUIDS_REQUESTED: DWORD = 1333;
+pub const ERROR_LUIDS_EXHAUSTED: DWORD = 1334;
+pub const ERROR_INVALID_SUB_AUTHORITY: DWORD = 1335;
+pub const ERROR_INVALID_ACL: DWORD = 1336;
+pub const ERROR_INVALID_SID: DWORD = 1337;
+pub const ERROR_INVALID_SECURITY_DESCR: DWORD = 1338;
+pub const ERROR_BAD_INHERITANCE_ACL: DWORD = 1340;
+pub const ERROR_SERVER_DISABLED: DWORD = 1341;
+pub const ERROR_SERVER_NOT_DISABLED: DWORD = 1342;
+pub const ERROR_INVALID_ID_AUTHORITY: DWORD = 1343;
+pub const ERROR_ALLOTTED_SPACE_EXCEEDED: DWORD = 1344;
+pub const ERROR_INVALID_GROUP_ATTRIBUTES: DWORD = 1345;
+pub const ERROR_BAD_IMPERSONATION_LEVEL: DWORD = 1346;
+pub const ERROR_CANT_OPEN_ANONYMOUS: DWORD = 1347;
+pub const ERROR_BAD_VALIDATION_CLASS: DWORD = 1348;
+pub const ERROR_BAD_TOKEN_TYPE: DWORD = 1349;
+pub const ERROR_NO_SECURITY_ON_OBJECT: DWORD = 1350;
+pub const ERROR_CANT_ACCESS_DOMAIN_INFO: DWORD = 1351;
+pub const ERROR_INVALID_SERVER_STATE: DWORD = 1352;
+pub const ERROR_INVALID_DOMAIN_STATE: DWORD = 1353;
+pub const ERROR_INVALID_DOMAIN_ROLE: DWORD = 1354;
+pub const ERROR_NO_SUCH_DOMAIN: DWORD = 1355;
+pub const ERROR_DOMAIN_EXISTS: DWORD = 1356;
+pub const ERROR_DOMAIN_LIMIT_EXCEEDED: DWORD = 1357;
+pub const ERROR_INTERNAL_DB_CORRUPTION: DWORD = 1358;
+pub const ERROR_INTERNAL_ERROR: DWORD = 1359;
+pub const ERROR_GENERIC_NOT_MAPPED: DWORD = 1360;
+pub const ERROR_BAD_DESCRIPTOR_FORMAT: DWORD = 1361;
+pub const ERROR_NOT_LOGON_PROCESS: DWORD = 1362;
+pub const ERROR_LOGON_SESSION_EXISTS: DWORD = 1363;
+pub const ERROR_NO_SUCH_PACKAGE: DWORD = 1364;
+pub const ERROR_BAD_LOGON_SESSION_STATE: DWORD = 1365;
+pub const ERROR_LOGON_SESSION_COLLISION: DWORD = 1366;
+pub const ERROR_INVALID_LOGON_TYPE: DWORD = 1367;
+pub const ERROR_CANNOT_IMPERSONATE: DWORD = 1368;
+pub const ERROR_RXACT_INVALID_STATE: DWORD = 1369;
+pub const ERROR_RXACT_COMMIT_FAILURE: DWORD = 1370;
+pub const ERROR_SPECIAL_ACCOUNT: DWORD = 1371;
+pub const ERROR_SPECIAL_GROUP: DWORD = 1372;
+pub const ERROR_SPECIAL_USER: DWORD = 1373;
+pub const ERROR_MEMBERS_PRIMARY_GROUP: DWORD = 1374;
+pub const ERROR_TOKEN_ALREADY_IN_USE: DWORD = 1375;
+pub const ERROR_NO_SUCH_ALIAS: DWORD = 1376;
+pub const ERROR_MEMBER_NOT_IN_ALIAS: DWORD = 1377;
+pub const ERROR_MEMBER_IN_ALIAS: DWORD = 1378;
+pub const ERROR_ALIAS_EXISTS: DWORD = 1379;
+pub const ERROR_LOGON_NOT_GRANTED: DWORD = 1380;
+pub const ERROR_TOO_MANY_SECRETS: DWORD = 1381;
+pub const ERROR_SECRET_TOO_LONG: DWORD = 1382;
+pub const ERROR_INTERNAL_DB_ERROR: DWORD = 1383;
+pub const ERROR_TOO_MANY_CONTEXT_IDS: DWORD = 1384;
+pub const ERROR_LOGON_TYPE_NOT_GRANTED: DWORD = 1385;
+pub const ERROR_NT_CROSS_ENCRYPTION_REQUIRED: DWORD = 1386;
+pub const ERROR_NO_SUCH_MEMBER: DWORD = 1387;
+pub const ERROR_INVALID_MEMBER: DWORD = 1388;
+pub const ERROR_TOO_MANY_SIDS: DWORD = 1389;
+pub const ERROR_LM_CROSS_ENCRYPTION_REQUIRED: DWORD = 1390;
+pub const ERROR_NO_INHERITANCE: DWORD = 1391;
+pub const ERROR_FILE_CORRUPT: DWORD = 1392;
+pub const ERROR_DISK_CORRUPT: DWORD = 1393;
+pub const ERROR_NO_USER_SESSION_KEY: DWORD = 1394;
+pub const ERROR_LICENSE_QUOTA_EXCEEDED: DWORD = 1395;
+pub const ERROR_WRONG_TARGET_NAME: DWORD = 1396;
+pub const ERROR_MUTUAL_AUTH_FAILED: DWORD = 1397;
+pub const ERROR_TIME_SKEW: DWORD = 1398;
+pub const ERROR_CURRENT_DOMAIN_NOT_ALLOWED: DWORD = 1399;
+pub const ERROR_INVALID_WINDOW_HANDLE: DWORD = 1400;
+pub const ERROR_INVALID_MENU_HANDLE: DWORD = 1401;
+pub const ERROR_INVALID_CURSOR_HANDLE: DWORD = 1402;
+pub const ERROR_INVALID_ACCEL_HANDLE: DWORD = 1403;
+pub const ERROR_INVALID_HOOK_HANDLE: DWORD = 1404;
+pub const ERROR_INVALID_DWP_HANDLE: DWORD = 1405;
+pub const ERROR_TLW_WITH_WSCHILD: DWORD = 1406;
+pub const ERROR_CANNOT_FIND_WND_CLASS: DWORD = 1407;
+pub const ERROR_WINDOW_OF_OTHER_THREAD: DWORD = 1408;
+pub const ERROR_HOTKEY_ALREADY_REGISTERED: DWORD = 1409;
+pub const ERROR_CLASS_ALREADY_EXISTS: DWORD = 1410;
+pub const ERROR_CLASS_DOES_NOT_EXIST: DWORD = 1411;
+pub const ERROR_CLASS_HAS_WINDOWS: DWORD = 1412;
+pub const ERROR_INVALID_INDEX: DWORD = 1413;
+pub const ERROR_INVALID_ICON_HANDLE: DWORD = 1414;
+pub const ERROR_PRIVATE_DIALOG_INDEX: DWORD = 1415;
+pub const ERROR_LISTBOX_ID_NOT_FOUND: DWORD = 1416;
+pub const ERROR_NO_WILDCARD_CHARACTERS: DWORD = 1417;
+pub const ERROR_CLIPBOARD_NOT_OPEN: DWORD = 1418;
+pub const ERROR_HOTKEY_NOT_REGISTERED: DWORD = 1419;
+pub const ERROR_WINDOW_NOT_DIALOG: DWORD = 1420;
+pub const ERROR_CONTROL_ID_NOT_FOUND: DWORD = 1421;
+pub const ERROR_INVALID_COMBOBOX_MESSAGE: DWORD = 1422;
+pub const ERROR_WINDOW_NOT_COMBOBOX: DWORD = 1423;
+pub const ERROR_INVALID_EDIT_HEIGHT: DWORD = 1424;
+pub const ERROR_DC_NOT_FOUND: DWORD = 1425;
+pub const ERROR_INVALID_HOOK_FILTER: DWORD = 1426;
+pub const ERROR_INVALID_FILTER_PROC: DWORD = 1427;
+pub const ERROR_HOOK_NEEDS_HMOD: DWORD = 1428;
+pub const ERROR_GLOBAL_ONLY_HOOK: DWORD = 1429;
+pub const ERROR_JOURNAL_HOOK_SET: DWORD = 1430;
+pub const ERROR_HOOK_NOT_INSTALLED: DWORD = 1431;
+pub const ERROR_INVALID_LB_MESSAGE: DWORD = 1432;
+pub const ERROR_SETCOUNT_ON_BAD_LB: DWORD = 1433;
+pub const ERROR_LB_WITHOUT_TABSTOPS: DWORD = 1434;
+pub const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD: DWORD = 1435;
+pub const ERROR_CHILD_WINDOW_MENU: DWORD = 1436;
+pub const ERROR_NO_SYSTEM_MENU: DWORD = 1437;
+pub const ERROR_INVALID_MSGBOX_STYLE: DWORD = 1438;
+pub const ERROR_INVALID_SPI_VALUE: DWORD = 1439;
+pub const ERROR_SCREEN_ALREADY_LOCKED: DWORD = 1440;
+pub const ERROR_HWNDS_HAVE_DIFF_PARENT: DWORD = 1441;
+pub const ERROR_NOT_CHILD_WINDOW: DWORD = 1442;
+pub const ERROR_INVALID_GW_COMMAND: DWORD = 1443;
+pub const ERROR_INVALID_THREAD_ID: DWORD = 1444;
+pub const ERROR_NON_MDICHILD_WINDOW: DWORD = 1445;
+pub const ERROR_POPUP_ALREADY_ACTIVE: DWORD = 1446;
+pub const ERROR_NO_SCROLLBARS: DWORD = 1447;
+pub const ERROR_INVALID_SCROLLBAR_RANGE: DWORD = 1448;
+pub const ERROR_INVALID_SHOWWIN_COMMAND: DWORD = 1449;
+pub const ERROR_NO_SYSTEM_RESOURCES: DWORD = 1450;
+pub const ERROR_NONPAGED_SYSTEM_RESOURCES: DWORD = 1451;
+pub const ERROR_PAGED_SYSTEM_RESOURCES: DWORD = 1452;
+pub const ERROR_WORKING_SET_QUOTA: DWORD = 1453;
+pub const ERROR_PAGEFILE_QUOTA: DWORD = 1454;
+pub const ERROR_COMMITMENT_LIMIT: DWORD = 1455;
+pub const ERROR_MENU_ITEM_NOT_FOUND: DWORD = 1456;
+pub const ERROR_INVALID_KEYBOARD_HANDLE: DWORD = 1457;
+pub const ERROR_HOOK_TYPE_NOT_ALLOWED: DWORD = 1458;
+pub const ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION: DWORD = 1459;
+pub const ERROR_TIMEOUT: DWORD = 1460;
+pub const ERROR_INVALID_MONITOR_HANDLE: DWORD = 1461;
+pub const ERROR_INCORRECT_SIZE: DWORD = 1462;
+pub const ERROR_SYMLINK_CLASS_DISABLED: DWORD = 1463;
+pub const ERROR_SYMLINK_NOT_SUPPORTED: DWORD = 1464;
+pub const ERROR_XML_PARSE_ERROR: DWORD = 1465;
+pub const ERROR_XMLDSIG_ERROR: DWORD = 1466;
+pub const ERROR_RESTART_APPLICATION: DWORD = 1467;
+pub const ERROR_WRONG_COMPARTMENT: DWORD = 1468;
+pub const ERROR_AUTHIP_FAILURE: DWORD = 1469;
+pub const ERROR_NO_NVRAM_RESOURCES: DWORD = 1470;
+pub const ERROR_NOT_GUI_PROCESS: DWORD = 1471;
+pub const ERROR_EVENTLOG_FILE_CORRUPT: DWORD = 1500;
+pub const ERROR_EVENTLOG_CANT_START: DWORD = 1501;
+pub const ERROR_LOG_FILE_FULL: DWORD = 1502;
+pub const ERROR_EVENTLOG_FILE_CHANGED: DWORD = 1503;
+pub const ERROR_INVALID_TASK_NAME: DWORD = 1550;
+pub const ERROR_INVALID_TASK_INDEX: DWORD = 1551;
+pub const ERROR_THREAD_ALREADY_IN_TASK: DWORD = 1552;
+pub const ERROR_INSTALL_SERVICE_FAILURE: DWORD = 1601;
+pub const ERROR_INSTALL_USEREXIT: DWORD = 1602;
+pub const ERROR_INSTALL_FAILURE: DWORD = 1603;
+pub const ERROR_INSTALL_SUSPEND: DWORD = 1604;
+pub const ERROR_UNKNOWN_PRODUCT: DWORD = 1605;
+pub const ERROR_UNKNOWN_FEATURE: DWORD = 1606;
+pub const ERROR_UNKNOWN_COMPONENT: DWORD = 1607;
+pub const ERROR_UNKNOWN_PROPERTY: DWORD = 1608;
+pub const ERROR_INVALID_HANDLE_STATE: DWORD = 1609;
+pub const ERROR_BAD_CONFIGURATION: DWORD = 1610;
+pub const ERROR_INDEX_ABSENT: DWORD = 1611;
+pub const ERROR_INSTALL_SOURCE_ABSENT: DWORD = 1612;
+pub const ERROR_INSTALL_PACKAGE_VERSION: DWORD = 1613;
+pub const ERROR_PRODUCT_UNINSTALLED: DWORD = 1614;
+pub const ERROR_BAD_QUERY_SYNTAX: DWORD = 1615;
+pub const ERROR_INVALID_FIELD: DWORD = 1616;
+pub const ERROR_DEVICE_REMOVED: DWORD = 1617;
+pub const ERROR_INSTALL_ALREADY_RUNNING: DWORD = 1618;
+pub const ERROR_INSTALL_PACKAGE_OPEN_FAILED: DWORD = 1619;
+pub const ERROR_INSTALL_PACKAGE_INVALID: DWORD = 1620;
+pub const ERROR_INSTALL_UI_FAILURE: DWORD = 1621;
+pub const ERROR_INSTALL_LOG_FAILURE: DWORD = 1622;
+pub const ERROR_INSTALL_LANGUAGE_UNSUPPORTED: DWORD = 1623;
+pub const ERROR_INSTALL_TRANSFORM_FAILURE: DWORD = 1624;
+pub const ERROR_INSTALL_PACKAGE_REJECTED: DWORD = 1625;
+pub const ERROR_FUNCTION_NOT_CALLED: DWORD = 1626;
+pub const ERROR_FUNCTION_FAILED: DWORD = 1627;
+pub const ERROR_INVALID_TABLE: DWORD = 1628;
+pub const ERROR_DATATYPE_MISMATCH: DWORD = 1629;
+pub const ERROR_UNSUPPORTED_TYPE: DWORD = 1630;
+pub const ERROR_CREATE_FAILED: DWORD = 1631;
+pub const ERROR_INSTALL_TEMP_UNWRITABLE: DWORD = 1632;
+pub const ERROR_INSTALL_PLATFORM_UNSUPPORTED: DWORD = 1633;
+pub const ERROR_INSTALL_NOTUSED: DWORD = 1634;
+pub const ERROR_PATCH_PACKAGE_OPEN_FAILED: DWORD = 1635;
+pub const ERROR_PATCH_PACKAGE_INVALID: DWORD = 1636;
+pub const ERROR_PATCH_PACKAGE_UNSUPPORTED: DWORD = 1637;
+pub const ERROR_PRODUCT_VERSION: DWORD = 1638;
+pub const ERROR_INVALID_COMMAND_LINE: DWORD = 1639;
+pub const ERROR_INSTALL_REMOTE_DISALLOWED: DWORD = 1640;
+pub const ERROR_SUCCESS_REBOOT_INITIATED: DWORD = 1641;
+pub const ERROR_PATCH_TARGET_NOT_FOUND: DWORD = 1642;
+pub const ERROR_PATCH_PACKAGE_REJECTED: DWORD = 1643;
+pub const ERROR_INSTALL_TRANSFORM_REJECTED: DWORD = 1644;
+pub const ERROR_INSTALL_REMOTE_PROHIBITED: DWORD = 1645;
+pub const ERROR_PATCH_REMOVAL_UNSUPPORTED: DWORD = 1646;
+pub const ERROR_UNKNOWN_PATCH: DWORD = 1647;
+pub const ERROR_PATCH_NO_SEQUENCE: DWORD = 1648;
+pub const ERROR_PATCH_REMOVAL_DISALLOWED: DWORD = 1649;
+pub const ERROR_INVALID_PATCH_XML: DWORD = 1650;
+pub const ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT: DWORD = 1651;
+pub const ERROR_INSTALL_SERVICE_SAFEBOOT: DWORD = 1652;
+pub const ERROR_FAIL_FAST_EXCEPTION: DWORD = 1653;
+pub const ERROR_INSTALL_REJECTED: DWORD = 1654;
+pub const ERROR_DYNAMIC_CODE_BLOCKED: DWORD = 1655;
+pub const RPC_S_INVALID_STRING_BINDING: DWORD = 1700;
+pub const RPC_S_WRONG_KIND_OF_BINDING: DWORD = 1701;
+pub const RPC_S_INVALID_BINDING: DWORD = 1702;
+pub const RPC_S_PROTSEQ_NOT_SUPPORTED: DWORD = 1703;
+pub const RPC_S_INVALID_RPC_PROTSEQ: DWORD = 1704;
+pub const RPC_S_INVALID_STRING_UUID: DWORD = 1705;
+pub const RPC_S_INVALID_ENDPOINT_FORMAT: DWORD = 1706;
+pub const RPC_S_INVALID_NET_ADDR: DWORD = 1707;
+pub const RPC_S_NO_ENDPOINT_FOUND: DWORD = 1708;
+pub const RPC_S_INVALID_TIMEOUT: DWORD = 1709;
+pub const RPC_S_OBJECT_NOT_FOUND: DWORD = 1710;
+pub const RPC_S_ALREADY_REGISTERED: DWORD = 1711;
+pub const RPC_S_TYPE_ALREADY_REGISTERED: DWORD = 1712;
+pub const RPC_S_ALREADY_LISTENING: DWORD = 1713;
+pub const RPC_S_NO_PROTSEQS_REGISTERED: DWORD = 1714;
+pub const RPC_S_NOT_LISTENING: DWORD = 1715;
+pub const RPC_S_UNKNOWN_MGR_TYPE: DWORD = 1716;
+pub const RPC_S_UNKNOWN_IF: DWORD = 1717;
+pub const RPC_S_NO_BINDINGS: DWORD = 1718;
+pub const RPC_S_NO_PROTSEQS: DWORD = 1719;
+pub const RPC_S_CANT_CREATE_ENDPOINT: DWORD = 1720;
+pub const RPC_S_OUT_OF_RESOURCES: DWORD = 1721;
+pub const RPC_S_SERVER_UNAVAILABLE: DWORD = 1722;
+pub const RPC_S_SERVER_TOO_BUSY: DWORD = 1723;
+pub const RPC_S_INVALID_NETWORK_OPTIONS: DWORD = 1724;
+pub const RPC_S_NO_CALL_ACTIVE: DWORD = 1725;
+pub const RPC_S_CALL_FAILED: DWORD = 1726;
+pub const RPC_S_CALL_FAILED_DNE: DWORD = 1727;
+pub const RPC_S_PROTOCOL_ERROR: DWORD = 1728;
+pub const RPC_S_PROXY_ACCESS_DENIED: DWORD = 1729;
+pub const RPC_S_UNSUPPORTED_TRANS_SYN: DWORD = 1730;
+pub const RPC_S_UNSUPPORTED_TYPE: DWORD = 1732;
+pub const RPC_S_INVALID_TAG: DWORD = 1733;
+pub const RPC_S_INVALID_BOUND: DWORD = 1734;
+pub const RPC_S_NO_ENTRY_NAME: DWORD = 1735;
+pub const RPC_S_INVALID_NAME_SYNTAX: DWORD = 1736;
+pub const RPC_S_UNSUPPORTED_NAME_SYNTAX: DWORD = 1737;
+pub const RPC_S_UUID_NO_ADDRESS: DWORD = 1739;
+pub const RPC_S_DUPLICATE_ENDPOINT: DWORD = 1740;
+pub const RPC_S_UNKNOWN_AUTHN_TYPE: DWORD = 1741;
+pub const RPC_S_MAX_CALLS_TOO_SMALL: DWORD = 1742;
+pub const RPC_S_STRING_TOO_LONG: DWORD = 1743;
+pub const RPC_S_PROTSEQ_NOT_FOUND: DWORD = 1744;
+pub const RPC_S_PROCNUM_OUT_OF_RANGE: DWORD = 1745;
+pub const RPC_S_BINDING_HAS_NO_AUTH: DWORD = 1746;
+pub const RPC_S_UNKNOWN_AUTHN_SERVICE: DWORD = 1747;
+pub const RPC_S_UNKNOWN_AUTHN_LEVEL: DWORD = 1748;
+pub const RPC_S_INVALID_AUTH_IDENTITY: DWORD = 1749;
+pub const RPC_S_UNKNOWN_AUTHZ_SERVICE: DWORD = 1750;
+pub const EPT_S_INVALID_ENTRY: DWORD = 1751;
+pub const EPT_S_CANT_PERFORM_OP: DWORD = 1752;
+pub const EPT_S_NOT_REGISTERED: DWORD = 1753;
+pub const RPC_S_NOTHING_TO_EXPORT: DWORD = 1754;
+pub const RPC_S_INCOMPLETE_NAME: DWORD = 1755;
+pub const RPC_S_INVALID_VERS_OPTION: DWORD = 1756;
+pub const RPC_S_NO_MORE_MEMBERS: DWORD = 1757;
+pub const RPC_S_NOT_ALL_OBJS_UNEXPORTED: DWORD = 1758;
+pub const RPC_S_INTERFACE_NOT_FOUND: DWORD = 1759;
+pub const RPC_S_ENTRY_ALREADY_EXISTS: DWORD = 1760;
+pub const RPC_S_ENTRY_NOT_FOUND: DWORD = 1761;
+pub const RPC_S_NAME_SERVICE_UNAVAILABLE: DWORD = 1762;
+pub const RPC_S_INVALID_NAF_ID: DWORD = 1763;
+pub const RPC_S_CANNOT_SUPPORT: DWORD = 1764;
+pub const RPC_S_NO_CONTEXT_AVAILABLE: DWORD = 1765;
+pub const RPC_S_INTERNAL_ERROR: DWORD = 1766;
+pub const RPC_S_ZERO_DIVIDE: DWORD = 1767;
+pub const RPC_S_ADDRESS_ERROR: DWORD = 1768;
+pub const RPC_S_FP_DIV_ZERO: DWORD = 1769;
+pub const RPC_S_FP_UNDERFLOW: DWORD = 1770;
+pub const RPC_S_FP_OVERFLOW: DWORD = 1771;
+pub const RPC_X_NO_MORE_ENTRIES: DWORD = 1772;
+pub const RPC_X_SS_CHAR_TRANS_OPEN_FAIL: DWORD = 1773;
+pub const RPC_X_SS_CHAR_TRANS_SHORT_FILE: DWORD = 1774;
+pub const RPC_X_SS_IN_NULL_CONTEXT: DWORD = 1775;
+pub const RPC_X_SS_CONTEXT_DAMAGED: DWORD = 1777;
+pub const RPC_X_SS_HANDLES_MISMATCH: DWORD = 1778;
+pub const RPC_X_SS_CANNOT_GET_CALL_HANDLE: DWORD = 1779;
+pub const RPC_X_NULL_REF_POINTER: DWORD = 1780;
+pub const RPC_X_ENUM_VALUE_OUT_OF_RANGE: DWORD = 1781;
+pub const RPC_X_BYTE_COUNT_TOO_SMALL: DWORD = 1782;
+pub const RPC_X_BAD_STUB_DATA: DWORD = 1783;
+pub const ERROR_INVALID_USER_BUFFER: DWORD = 1784;
+pub const ERROR_UNRECOGNIZED_MEDIA: DWORD = 1785;
+pub const ERROR_NO_TRUST_LSA_SECRET: DWORD = 1786;
+pub const ERROR_NO_TRUST_SAM_ACCOUNT: DWORD = 1787;
+pub const ERROR_TRUSTED_DOMAIN_FAILURE: DWORD = 1788;
+pub const ERROR_TRUSTED_RELATIONSHIP_FAILURE: DWORD = 1789;
+pub const ERROR_TRUST_FAILURE: DWORD = 1790;
+pub const RPC_S_CALL_IN_PROGRESS: DWORD = 1791;
+pub const ERROR_NETLOGON_NOT_STARTED: DWORD = 1792;
+pub const ERROR_ACCOUNT_EXPIRED: DWORD = 1793;
+pub const ERROR_REDIRECTOR_HAS_OPEN_HANDLES: DWORD = 1794;
+pub const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED: DWORD = 1795;
+pub const ERROR_UNKNOWN_PORT: DWORD = 1796;
+pub const ERROR_UNKNOWN_PRINTER_DRIVER: DWORD = 1797;
+pub const ERROR_UNKNOWN_PRINTPROCESSOR: DWORD = 1798;
+pub const ERROR_INVALID_SEPARATOR_FILE: DWORD = 1799;
+pub const ERROR_INVALID_PRIORITY: DWORD = 1800;
+pub const ERROR_INVALID_PRINTER_NAME: DWORD = 1801;
+pub const ERROR_PRINTER_ALREADY_EXISTS: DWORD = 1802;
+pub const ERROR_INVALID_PRINTER_COMMAND: DWORD = 1803;
+pub const ERROR_INVALID_DATATYPE: DWORD = 1804;
+pub const ERROR_INVALID_ENVIRONMENT: DWORD = 1805;
+pub const RPC_S_NO_MORE_BINDINGS: DWORD = 1806;
+pub const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT: DWORD = 1807;
+pub const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT: DWORD = 1808;
+pub const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT: DWORD = 1809;
+pub const ERROR_DOMAIN_TRUST_INCONSISTENT: DWORD = 1810;
+pub const ERROR_SERVER_HAS_OPEN_HANDLES: DWORD = 1811;
+pub const ERROR_RESOURCE_DATA_NOT_FOUND: DWORD = 1812;
+pub const ERROR_RESOURCE_TYPE_NOT_FOUND: DWORD = 1813;
+pub const ERROR_RESOURCE_NAME_NOT_FOUND: DWORD = 1814;
+pub const ERROR_RESOURCE_LANG_NOT_FOUND: DWORD = 1815;
+pub const ERROR_NOT_ENOUGH_QUOTA: DWORD = 1816;
+pub const RPC_S_NO_INTERFACES: DWORD = 1817;
+pub const RPC_S_CALL_CANCELLED: DWORD = 1818;
+pub const RPC_S_BINDING_INCOMPLETE: DWORD = 1819;
+pub const RPC_S_COMM_FAILURE: DWORD = 1820;
+pub const RPC_S_UNSUPPORTED_AUTHN_LEVEL: DWORD = 1821;
+pub const RPC_S_NO_PRINC_NAME: DWORD = 1822;
+pub const RPC_S_NOT_RPC_ERROR: DWORD = 1823;
+pub const RPC_S_UUID_LOCAL_ONLY: DWORD = 1824;
+pub const RPC_S_SEC_PKG_ERROR: DWORD = 1825;
+pub const RPC_S_NOT_CANCELLED: DWORD = 1826;
+pub const RPC_X_INVALID_ES_ACTION: DWORD = 1827;
+pub const RPC_X_WRONG_ES_VERSION: DWORD = 1828;
+pub const RPC_X_WRONG_STUB_VERSION: DWORD = 1829;
+pub const RPC_X_INVALID_PIPE_OBJECT: DWORD = 1830;
+pub const RPC_X_WRONG_PIPE_ORDER: DWORD = 1831;
+pub const RPC_X_WRONG_PIPE_VERSION: DWORD = 1832;
+pub const RPC_S_COOKIE_AUTH_FAILED: DWORD = 1833;
+pub const RPC_S_GROUP_MEMBER_NOT_FOUND: DWORD = 1898;
+pub const EPT_S_CANT_CREATE: DWORD = 1899;
+pub const RPC_S_INVALID_OBJECT: DWORD = 1900;
+pub const ERROR_INVALID_TIME: DWORD = 1901;
+pub const ERROR_INVALID_FORM_NAME: DWORD = 1902;
+pub const ERROR_INVALID_FORM_SIZE: DWORD = 1903;
+pub const ERROR_ALREADY_WAITING: DWORD = 1904;
+pub const ERROR_PRINTER_DELETED: DWORD = 1905;
+pub const ERROR_INVALID_PRINTER_STATE: DWORD = 1906;
+pub const ERROR_PASSWORD_MUST_CHANGE: DWORD = 1907;
+pub const ERROR_DOMAIN_CONTROLLER_NOT_FOUND: DWORD = 1908;
+pub const ERROR_ACCOUNT_LOCKED_OUT: DWORD = 1909;
+pub const OR_INVALID_OXID: DWORD = 1910;
+pub const OR_INVALID_OID: DWORD = 1911;
+pub const OR_INVALID_SET: DWORD = 1912;
+pub const RPC_S_SEND_INCOMPLETE: DWORD = 1913;
+pub const RPC_S_INVALID_ASYNC_HANDLE: DWORD = 1914;
+pub const RPC_S_INVALID_ASYNC_CALL: DWORD = 1915;
+pub const RPC_X_PIPE_CLOSED: DWORD = 1916;
+pub const RPC_X_PIPE_DISCIPLINE_ERROR: DWORD = 1917;
+pub const RPC_X_PIPE_EMPTY: DWORD = 1918;
+pub const ERROR_NO_SITENAME: DWORD = 1919;
+pub const ERROR_CANT_ACCESS_FILE: DWORD = 1920;
+pub const ERROR_CANT_RESOLVE_FILENAME: DWORD = 1921;
+pub const RPC_S_ENTRY_TYPE_MISMATCH: DWORD = 1922;
+pub const RPC_S_NOT_ALL_OBJS_EXPORTED: DWORD = 1923;
+pub const RPC_S_INTERFACE_NOT_EXPORTED: DWORD = 1924;
+pub const RPC_S_PROFILE_NOT_ADDED: DWORD = 1925;
+pub const RPC_S_PRF_ELT_NOT_ADDED: DWORD = 1926;
+pub const RPC_S_PRF_ELT_NOT_REMOVED: DWORD = 1927;
+pub const RPC_S_GRP_ELT_NOT_ADDED: DWORD = 1928;
+pub const RPC_S_GRP_ELT_NOT_REMOVED: DWORD = 1929;
+pub const ERROR_KM_DRIVER_BLOCKED: DWORD = 1930;
+pub const ERROR_CONTEXT_EXPIRED: DWORD = 1931;
+pub const ERROR_PER_USER_TRUST_QUOTA_EXCEEDED: DWORD = 1932;
+pub const ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED: DWORD = 1933;
+pub const ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED: DWORD = 1934;
+pub const ERROR_AUTHENTICATION_FIREWALL_FAILED: DWORD = 1935;
+pub const ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED: DWORD = 1936;
+pub const ERROR_NTLM_BLOCKED: DWORD = 1937;
+pub const ERROR_PASSWORD_CHANGE_REQUIRED: DWORD = 1938;
+pub const ERROR_INVALID_PIXEL_FORMAT: DWORD = 2000;
+pub const ERROR_BAD_DRIVER: DWORD = 2001;
+pub const ERROR_INVALID_WINDOW_STYLE: DWORD = 2002;
+pub const ERROR_METAFILE_NOT_SUPPORTED: DWORD = 2003;
+pub const ERROR_TRANSFORM_NOT_SUPPORTED: DWORD = 2004;
+pub const ERROR_CLIPPING_NOT_SUPPORTED: DWORD = 2005;
+pub const ERROR_INVALID_CMM: DWORD = 2010;
+pub const ERROR_INVALID_PROFILE: DWORD = 2011;
+pub const ERROR_TAG_NOT_FOUND: DWORD = 2012;
+pub const ERROR_TAG_NOT_PRESENT: DWORD = 2013;
+pub const ERROR_DUPLICATE_TAG: DWORD = 2014;
+pub const ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE: DWORD = 2015;
+pub const ERROR_PROFILE_NOT_FOUND: DWORD = 2016;
+pub const ERROR_INVALID_COLORSPACE: DWORD = 2017;
+pub const ERROR_ICM_NOT_ENABLED: DWORD = 2018;
+pub const ERROR_DELETING_ICM_XFORM: DWORD = 2019;
+pub const ERROR_INVALID_TRANSFORM: DWORD = 2020;
+pub const ERROR_COLORSPACE_MISMATCH: DWORD = 2021;
+pub const ERROR_INVALID_COLORINDEX: DWORD = 2022;
+pub const ERROR_PROFILE_DOES_NOT_MATCH_DEVICE: DWORD = 2023;
+pub const ERROR_CONNECTED_OTHER_PASSWORD: DWORD = 2108;
+pub const ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT: DWORD = 2109;
+pub const ERROR_BAD_USERNAME: DWORD = 2202;
+pub const ERROR_NOT_CONNECTED: DWORD = 2250;
+pub const ERROR_OPEN_FILES: DWORD = 2401;
+pub const ERROR_ACTIVE_CONNECTIONS: DWORD = 2402;
+pub const ERROR_DEVICE_IN_USE: DWORD = 2404;
+pub const ERROR_UNKNOWN_PRINT_MONITOR: DWORD = 3000;
+pub const ERROR_PRINTER_DRIVER_IN_USE: DWORD = 3001;
+pub const ERROR_SPOOL_FILE_NOT_FOUND: DWORD = 3002;
+pub const ERROR_SPL_NO_STARTDOC: DWORD = 3003;
+pub const ERROR_SPL_NO_ADDJOB: DWORD = 3004;
+pub const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED: DWORD = 3005;
+pub const ERROR_PRINT_MONITOR_ALREADY_INSTALLED: DWORD = 3006;
+pub const ERROR_INVALID_PRINT_MONITOR: DWORD = 3007;
+pub const ERROR_PRINT_MONITOR_IN_USE: DWORD = 3008;
+pub const ERROR_PRINTER_HAS_JOBS_QUEUED: DWORD = 3009;
+pub const ERROR_SUCCESS_REBOOT_REQUIRED: DWORD = 3010;
+pub const ERROR_SUCCESS_RESTART_REQUIRED: DWORD = 3011;
+pub const ERROR_PRINTER_NOT_FOUND: DWORD = 3012;
+pub const ERROR_PRINTER_DRIVER_WARNED: DWORD = 3013;
+pub const ERROR_PRINTER_DRIVER_BLOCKED: DWORD = 3014;
+pub const ERROR_PRINTER_DRIVER_PACKAGE_IN_USE: DWORD = 3015;
+pub const ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND: DWORD = 3016;
+pub const ERROR_FAIL_REBOOT_REQUIRED: DWORD = 3017;
+pub const ERROR_FAIL_REBOOT_INITIATED: DWORD = 3018;
+pub const ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED: DWORD = 3019;
+pub const ERROR_PRINT_JOB_RESTART_REQUIRED: DWORD = 3020;
+pub const ERROR_INVALID_PRINTER_DRIVER_MANIFEST: DWORD = 3021;
+pub const ERROR_PRINTER_NOT_SHAREABLE: DWORD = 3022;
+pub const ERROR_REQUEST_PAUSED: DWORD = 3050;
+pub const ERROR_IO_REISSUE_AS_CACHED: DWORD = 3950;
+pub const ERROR_WINS_INTERNAL: DWORD = 4000;
+pub const ERROR_CAN_NOT_DEL_LOCAL_WINS: DWORD = 4001;
+pub const ERROR_STATIC_INIT: DWORD = 4002;
+pub const ERROR_INC_BACKUP: DWORD = 4003;
+pub const ERROR_FULL_BACKUP: DWORD = 4004;
+pub const ERROR_REC_NON_EXISTENT: DWORD = 4005;
+pub const ERROR_RPL_NOT_ALLOWED: DWORD = 4006;
+pub const PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED: DWORD = 4050;
+pub const PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO: DWORD = 4051;
+pub const PEERDIST_ERROR_MISSING_DATA: DWORD = 4052;
+pub const PEERDIST_ERROR_NO_MORE: DWORD = 4053;
+pub const PEERDIST_ERROR_NOT_INITIALIZED: DWORD = 4054;
+pub const PEERDIST_ERROR_ALREADY_INITIALIZED: DWORD = 4055;
+pub const PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS: DWORD = 4056;
+pub const PEERDIST_ERROR_INVALIDATED: DWORD = 4057;
+pub const PEERDIST_ERROR_ALREADY_EXISTS: DWORD = 4058;
+pub const PEERDIST_ERROR_OPERATION_NOTFOUND: DWORD = 4059;
+pub const PEERDIST_ERROR_ALREADY_COMPLETED: DWORD = 4060;
+pub const PEERDIST_ERROR_OUT_OF_BOUNDS: DWORD = 4061;
+pub const PEERDIST_ERROR_VERSION_UNSUPPORTED: DWORD = 4062;
+pub const PEERDIST_ERROR_INVALID_CONFIGURATION: DWORD = 4063;
+pub const PEERDIST_ERROR_NOT_LICENSED: DWORD = 4064;
+pub const PEERDIST_ERROR_SERVICE_UNAVAILABLE: DWORD = 4065;
+pub const PEERDIST_ERROR_TRUST_FAILURE: DWORD = 4066;
+pub const ERROR_DHCP_ADDRESS_CONFLICT: DWORD = 4100;
+pub const ERROR_WMI_GUID_NOT_FOUND: DWORD = 4200;
+pub const ERROR_WMI_INSTANCE_NOT_FOUND: DWORD = 4201;
+pub const ERROR_WMI_ITEMID_NOT_FOUND: DWORD = 4202;
+pub const ERROR_WMI_TRY_AGAIN: DWORD = 4203;
+pub const ERROR_WMI_DP_NOT_FOUND: DWORD = 4204;
+pub const ERROR_WMI_UNRESOLVED_INSTANCE_REF: DWORD = 4205;
+pub const ERROR_WMI_ALREADY_ENABLED: DWORD = 4206;
+pub const ERROR_WMI_GUID_DISCONNECTED: DWORD = 4207;
+pub const ERROR_WMI_SERVER_UNAVAILABLE: DWORD = 4208;
+pub const ERROR_WMI_DP_FAILED: DWORD = 4209;
+pub const ERROR_WMI_INVALID_MOF: DWORD = 4210;
+pub const ERROR_WMI_INVALID_REGINFO: DWORD = 4211;
+pub const ERROR_WMI_ALREADY_DISABLED: DWORD = 4212;
+pub const ERROR_WMI_READ_ONLY: DWORD = 4213;
+pub const ERROR_WMI_SET_FAILURE: DWORD = 4214;
+pub const ERROR_NOT_APPCONTAINER: DWORD = 4250;
+pub const ERROR_APPCONTAINER_REQUIRED: DWORD = 4251;
+pub const ERROR_NOT_SUPPORTED_IN_APPCONTAINER: DWORD = 4252;
+pub const ERROR_INVALID_PACKAGE_SID_LENGTH: DWORD = 4253;
+pub const ERROR_INVALID_MEDIA: DWORD = 4300;
+pub const ERROR_INVALID_LIBRARY: DWORD = 4301;
+pub const ERROR_INVALID_MEDIA_POOL: DWORD = 4302;
+pub const ERROR_DRIVE_MEDIA_MISMATCH: DWORD = 4303;
+pub const ERROR_MEDIA_OFFLINE: DWORD = 4304;
+pub const ERROR_LIBRARY_OFFLINE: DWORD = 4305;
+pub const ERROR_EMPTY: DWORD = 4306;
+pub const ERROR_NOT_EMPTY: DWORD = 4307;
+pub const ERROR_MEDIA_UNAVAILABLE: DWORD = 4308;
+pub const ERROR_RESOURCE_DISABLED: DWORD = 4309;
+pub const ERROR_INVALID_CLEANER: DWORD = 4310;
+pub const ERROR_UNABLE_TO_CLEAN: DWORD = 4311;
+pub const ERROR_OBJECT_NOT_FOUND: DWORD = 4312;
+pub const ERROR_DATABASE_FAILURE: DWORD = 4313;
+pub const ERROR_DATABASE_FULL: DWORD = 4314;
+pub const ERROR_MEDIA_INCOMPATIBLE: DWORD = 4315;
+pub const ERROR_RESOURCE_NOT_PRESENT: DWORD = 4316;
+pub const ERROR_INVALID_OPERATION: DWORD = 4317;
+pub const ERROR_MEDIA_NOT_AVAILABLE: DWORD = 4318;
+pub const ERROR_DEVICE_NOT_AVAILABLE: DWORD = 4319;
+pub const ERROR_REQUEST_REFUSED: DWORD = 4320;
+pub const ERROR_INVALID_DRIVE_OBJECT: DWORD = 4321;
+pub const ERROR_LIBRARY_FULL: DWORD = 4322;
+pub const ERROR_MEDIUM_NOT_ACCESSIBLE: DWORD = 4323;
+pub const ERROR_UNABLE_TO_LOAD_MEDIUM: DWORD = 4324;
+pub const ERROR_UNABLE_TO_INVENTORY_DRIVE: DWORD = 4325;
+pub const ERROR_UNABLE_TO_INVENTORY_SLOT: DWORD = 4326;
+pub const ERROR_UNABLE_TO_INVENTORY_TRANSPORT: DWORD = 4327;
+pub const ERROR_TRANSPORT_FULL: DWORD = 4328;
+pub const ERROR_CONTROLLING_IEPORT: DWORD = 4329;
+pub const ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA: DWORD = 4330;
+pub const ERROR_CLEANER_SLOT_SET: DWORD = 4331;
+pub const ERROR_CLEANER_SLOT_NOT_SET: DWORD = 4332;
+pub const ERROR_CLEANER_CARTRIDGE_SPENT: DWORD = 4333;
+pub const ERROR_UNEXPECTED_OMID: DWORD = 4334;
+pub const ERROR_CANT_DELETE_LAST_ITEM: DWORD = 4335;
+pub const ERROR_MESSAGE_EXCEEDS_MAX_SIZE: DWORD = 4336;
+pub const ERROR_VOLUME_CONTAINS_SYS_FILES: DWORD = 4337;
+pub const ERROR_INDIGENOUS_TYPE: DWORD = 4338;
+pub const ERROR_NO_SUPPORTING_DRIVES: DWORD = 4339;
+pub const ERROR_CLEANER_CARTRIDGE_INSTALLED: DWORD = 4340;
+pub const ERROR_IEPORT_FULL: DWORD = 4341;
+pub const ERROR_FILE_OFFLINE: DWORD = 4350;
+pub const ERROR_REMOTE_STORAGE_NOT_ACTIVE: DWORD = 4351;
+pub const ERROR_REMOTE_STORAGE_MEDIA_ERROR: DWORD = 4352;
+pub const ERROR_NOT_A_REPARSE_POINT: DWORD = 4390;
+pub const ERROR_REPARSE_ATTRIBUTE_CONFLICT: DWORD = 4391;
+pub const ERROR_INVALID_REPARSE_DATA: DWORD = 4392;
+pub const ERROR_REPARSE_TAG_INVALID: DWORD = 4393;
+pub const ERROR_REPARSE_TAG_MISMATCH: DWORD = 4394;
+pub const ERROR_APP_DATA_NOT_FOUND: DWORD = 4400;
+pub const ERROR_APP_DATA_EXPIRED: DWORD = 4401;
+pub const ERROR_APP_DATA_CORRUPT: DWORD = 4402;
+pub const ERROR_APP_DATA_LIMIT_EXCEEDED: DWORD = 4403;
+pub const ERROR_APP_DATA_REBOOT_REQUIRED: DWORD = 4404;
+pub const ERROR_SECUREBOOT_ROLLBACK_DETECTED: DWORD = 4420;
+pub const ERROR_SECUREBOOT_POLICY_VIOLATION: DWORD = 4421;
+pub const ERROR_SECUREBOOT_INVALID_POLICY: DWORD = 4422;
+pub const ERROR_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND: DWORD = 4423;
+pub const ERROR_SECUREBOOT_POLICY_NOT_SIGNED: DWORD = 4424;
+pub const ERROR_SECUREBOOT_NOT_ENABLED: DWORD = 4425;
+pub const ERROR_SECUREBOOT_FILE_REPLACED: DWORD = 4426;
+pub const ERROR_OFFLOAD_READ_FLT_NOT_SUPPORTED: DWORD = 4440;
+pub const ERROR_OFFLOAD_WRITE_FLT_NOT_SUPPORTED: DWORD = 4441;
+pub const ERROR_OFFLOAD_READ_FILE_NOT_SUPPORTED: DWORD = 4442;
+pub const ERROR_OFFLOAD_WRITE_FILE_NOT_SUPPORTED: DWORD = 4443;
+pub const ERROR_VOLUME_NOT_SIS_ENABLED: DWORD = 4500;
+pub const ERROR_DEPENDENT_RESOURCE_EXISTS: DWORD = 5001;
+pub const ERROR_DEPENDENCY_NOT_FOUND: DWORD = 5002;
+pub const ERROR_DEPENDENCY_ALREADY_EXISTS: DWORD = 5003;
+pub const ERROR_RESOURCE_NOT_ONLINE: DWORD = 5004;
+pub const ERROR_HOST_NODE_NOT_AVAILABLE: DWORD = 5005;
+pub const ERROR_RESOURCE_NOT_AVAILABLE: DWORD = 5006;
+pub const ERROR_RESOURCE_NOT_FOUND: DWORD = 5007;
+pub const ERROR_SHUTDOWN_CLUSTER: DWORD = 5008;
+pub const ERROR_CANT_EVICT_ACTIVE_NODE: DWORD = 5009;
+pub const ERROR_OBJECT_ALREADY_EXISTS: DWORD = 5010;
+pub const ERROR_OBJECT_IN_LIST: DWORD = 5011;
+pub const ERROR_GROUP_NOT_AVAILABLE: DWORD = 5012;
+pub const ERROR_GROUP_NOT_FOUND: DWORD = 5013;
+pub const ERROR_GROUP_NOT_ONLINE: DWORD = 5014;
+pub const ERROR_HOST_NODE_NOT_RESOURCE_OWNER: DWORD = 5015;
+pub const ERROR_HOST_NODE_NOT_GROUP_OWNER: DWORD = 5016;
+pub const ERROR_RESMON_CREATE_FAILED: DWORD = 5017;
+pub const ERROR_RESMON_ONLINE_FAILED: DWORD = 5018;
+pub const ERROR_RESOURCE_ONLINE: DWORD = 5019;
+pub const ERROR_QUORUM_RESOURCE: DWORD = 5020;
+pub const ERROR_NOT_QUORUM_CAPABLE: DWORD = 5021;
+pub const ERROR_CLUSTER_SHUTTING_DOWN: DWORD = 5022;
+pub const ERROR_INVALID_STATE: DWORD = 5023;
+pub const ERROR_RESOURCE_PROPERTIES_STORED: DWORD = 5024;
+pub const ERROR_NOT_QUORUM_CLASS: DWORD = 5025;
+pub const ERROR_CORE_RESOURCE: DWORD = 5026;
+pub const ERROR_QUORUM_RESOURCE_ONLINE_FAILED: DWORD = 5027;
+pub const ERROR_QUORUMLOG_OPEN_FAILED: DWORD = 5028;
+pub const ERROR_CLUSTERLOG_CORRUPT: DWORD = 5029;
+pub const ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE: DWORD = 5030;
+pub const ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE: DWORD = 5031;
+pub const ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND: DWORD = 5032;
+pub const ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE: DWORD = 5033;
+pub const ERROR_QUORUM_OWNER_ALIVE: DWORD = 5034;
+pub const ERROR_NETWORK_NOT_AVAILABLE: DWORD = 5035;
+pub const ERROR_NODE_NOT_AVAILABLE: DWORD = 5036;
+pub const ERROR_ALL_NODES_NOT_AVAILABLE: DWORD = 5037;
+pub const ERROR_RESOURCE_FAILED: DWORD = 5038;
+pub const ERROR_CLUSTER_INVALID_NODE: DWORD = 5039;
+pub const ERROR_CLUSTER_NODE_EXISTS: DWORD = 5040;
+pub const ERROR_CLUSTER_JOIN_IN_PROGRESS: DWORD = 5041;
+pub const ERROR_CLUSTER_NODE_NOT_FOUND: DWORD = 5042;
+pub const ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND: DWORD = 5043;
+pub const ERROR_CLUSTER_NETWORK_EXISTS: DWORD = 5044;
+pub const ERROR_CLUSTER_NETWORK_NOT_FOUND: DWORD = 5045;
+pub const ERROR_CLUSTER_NETINTERFACE_EXISTS: DWORD = 5046;
+pub const ERROR_CLUSTER_NETINTERFACE_NOT_FOUND: DWORD = 5047;
+pub const ERROR_CLUSTER_INVALID_REQUEST: DWORD = 5048;
+pub const ERROR_CLUSTER_INVALID_NETWORK_PROVIDER: DWORD = 5049;
+pub const ERROR_CLUSTER_NODE_DOWN: DWORD = 5050;
+pub const ERROR_CLUSTER_NODE_UNREACHABLE: DWORD = 5051;
+pub const ERROR_CLUSTER_NODE_NOT_MEMBER: DWORD = 5052;
+pub const ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS: DWORD = 5053;
+pub const ERROR_CLUSTER_INVALID_NETWORK: DWORD = 5054;
+pub const ERROR_CLUSTER_NODE_UP: DWORD = 5056;
+pub const ERROR_CLUSTER_IPADDR_IN_USE: DWORD = 5057;
+pub const ERROR_CLUSTER_NODE_NOT_PAUSED: DWORD = 5058;
+pub const ERROR_CLUSTER_NO_SECURITY_CONTEXT: DWORD = 5059;
+pub const ERROR_CLUSTER_NETWORK_NOT_INTERNAL: DWORD = 5060;
+pub const ERROR_CLUSTER_NODE_ALREADY_UP: DWORD = 5061;
+pub const ERROR_CLUSTER_NODE_ALREADY_DOWN: DWORD = 5062;
+pub const ERROR_CLUSTER_NETWORK_ALREADY_ONLINE: DWORD = 5063;
+pub const ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE: DWORD = 5064;
+pub const ERROR_CLUSTER_NODE_ALREADY_MEMBER: DWORD = 5065;
+pub const ERROR_CLUSTER_LAST_INTERNAL_NETWORK: DWORD = 5066;
+pub const ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS: DWORD = 5067;
+pub const ERROR_INVALID_OPERATION_ON_QUORUM: DWORD = 5068;
+pub const ERROR_DEPENDENCY_NOT_ALLOWED: DWORD = 5069;
+pub const ERROR_CLUSTER_NODE_PAUSED: DWORD = 5070;
+pub const ERROR_NODE_CANT_HOST_RESOURCE: DWORD = 5071;
+pub const ERROR_CLUSTER_NODE_NOT_READY: DWORD = 5072;
+pub const ERROR_CLUSTER_NODE_SHUTTING_DOWN: DWORD = 5073;
+pub const ERROR_CLUSTER_JOIN_ABORTED: DWORD = 5074;
+pub const ERROR_CLUSTER_INCOMPATIBLE_VERSIONS: DWORD = 5075;
+pub const ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED: DWORD = 5076;
+pub const ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED: DWORD = 5077;
+pub const ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND: DWORD = 5078;
+pub const ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED: DWORD = 5079;
+pub const ERROR_CLUSTER_RESNAME_NOT_FOUND: DWORD = 5080;
+pub const ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED: DWORD = 5081;
+pub const ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST: DWORD = 5082;
+pub const ERROR_CLUSTER_DATABASE_SEQMISMATCH: DWORD = 5083;
+pub const ERROR_RESMON_INVALID_STATE: DWORD = 5084;
+pub const ERROR_CLUSTER_GUM_NOT_LOCKER: DWORD = 5085;
+pub const ERROR_QUORUM_DISK_NOT_FOUND: DWORD = 5086;
+pub const ERROR_DATABASE_BACKUP_CORRUPT: DWORD = 5087;
+pub const ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT: DWORD = 5088;
+pub const ERROR_RESOURCE_PROPERTY_UNCHANGEABLE: DWORD = 5089;
+pub const ERROR_NO_ADMIN_ACCESS_POINT: DWORD = 5090;
+pub const ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE: DWORD = 5890;
+pub const ERROR_CLUSTER_QUORUMLOG_NOT_FOUND: DWORD = 5891;
+pub const ERROR_CLUSTER_MEMBERSHIP_HALT: DWORD = 5892;
+pub const ERROR_CLUSTER_INSTANCE_ID_MISMATCH: DWORD = 5893;
+pub const ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP: DWORD = 5894;
+pub const ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH: DWORD = 5895;
+pub const ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP: DWORD = 5896;
+pub const ERROR_CLUSTER_PARAMETER_MISMATCH: DWORD = 5897;
+pub const ERROR_NODE_CANNOT_BE_CLUSTERED: DWORD = 5898;
+pub const ERROR_CLUSTER_WRONG_OS_VERSION: DWORD = 5899;
+pub const ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME: DWORD = 5900;
+pub const ERROR_CLUSCFG_ALREADY_COMMITTED: DWORD = 5901;
+pub const ERROR_CLUSCFG_ROLLBACK_FAILED: DWORD = 5902;
+pub const ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT: DWORD = 5903;
+pub const ERROR_CLUSTER_OLD_VERSION: DWORD = 5904;
+pub const ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME: DWORD = 5905;
+pub const ERROR_CLUSTER_NO_NET_ADAPTERS: DWORD = 5906;
+pub const ERROR_CLUSTER_POISONED: DWORD = 5907;
+pub const ERROR_CLUSTER_GROUP_MOVING: DWORD = 5908;
+pub const ERROR_CLUSTER_RESOURCE_TYPE_BUSY: DWORD = 5909;
+pub const ERROR_RESOURCE_CALL_TIMED_OUT: DWORD = 5910;
+pub const ERROR_INVALID_CLUSTER_IPV6_ADDRESS: DWORD = 5911;
+pub const ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION: DWORD = 5912;
+pub const ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS: DWORD = 5913;
+pub const ERROR_CLUSTER_PARTIAL_SEND: DWORD = 5914;
+pub const ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION: DWORD = 5915;
+pub const ERROR_CLUSTER_INVALID_STRING_TERMINATION: DWORD = 5916;
+pub const ERROR_CLUSTER_INVALID_STRING_FORMAT: DWORD = 5917;
+pub const ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS: DWORD = 5918;
+pub const ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS: DWORD = 5919;
+pub const ERROR_CLUSTER_NULL_DATA: DWORD = 5920;
+pub const ERROR_CLUSTER_PARTIAL_READ: DWORD = 5921;
+pub const ERROR_CLUSTER_PARTIAL_WRITE: DWORD = 5922;
+pub const ERROR_CLUSTER_CANT_DESERIALIZE_DATA: DWORD = 5923;
+pub const ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT: DWORD = 5924;
+pub const ERROR_CLUSTER_NO_QUORUM: DWORD = 5925;
+pub const ERROR_CLUSTER_INVALID_IPV6_NETWORK: DWORD = 5926;
+pub const ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK: DWORD = 5927;
+pub const ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP: DWORD = 5928;
+pub const ERROR_DEPENDENCY_TREE_TOO_COMPLEX: DWORD = 5929;
+pub const ERROR_EXCEPTION_IN_RESOURCE_CALL: DWORD = 5930;
+pub const ERROR_CLUSTER_RHS_FAILED_INITIALIZATION: DWORD = 5931;
+pub const ERROR_CLUSTER_NOT_INSTALLED: DWORD = 5932;
+pub const ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE: DWORD = 5933;
+pub const ERROR_CLUSTER_MAX_NODES_IN_CLUSTER: DWORD = 5934;
+pub const ERROR_CLUSTER_TOO_MANY_NODES: DWORD = 5935;
+pub const ERROR_CLUSTER_OBJECT_ALREADY_USED: DWORD = 5936;
+pub const ERROR_NONCORE_GROUPS_FOUND: DWORD = 5937;
+pub const ERROR_FILE_SHARE_RESOURCE_CONFLICT: DWORD = 5938;
+pub const ERROR_CLUSTER_EVICT_INVALID_REQUEST: DWORD = 5939;
+pub const ERROR_CLUSTER_SINGLETON_RESOURCE: DWORD = 5940;
+pub const ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE: DWORD = 5941;
+pub const ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED: DWORD = 5942;
+pub const ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR: DWORD = 5943;
+pub const ERROR_CLUSTER_GROUP_BUSY: DWORD = 5944;
+pub const ERROR_CLUSTER_NOT_SHARED_VOLUME: DWORD = 5945;
+pub const ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR: DWORD = 5946;
+pub const ERROR_CLUSTER_SHARED_VOLUMES_IN_USE: DWORD = 5947;
+pub const ERROR_CLUSTER_USE_SHARED_VOLUMES_API: DWORD = 5948;
+pub const ERROR_CLUSTER_BACKUP_IN_PROGRESS: DWORD = 5949;
+pub const ERROR_NON_CSV_PATH: DWORD = 5950;
+pub const ERROR_CSV_VOLUME_NOT_LOCAL: DWORD = 5951;
+pub const ERROR_CLUSTER_WATCHDOG_TERMINATING: DWORD = 5952;
+pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES: DWORD = 5953;
+pub const ERROR_CLUSTER_INVALID_NODE_WEIGHT: DWORD = 5954;
+pub const ERROR_CLUSTER_RESOURCE_VETOED_CALL: DWORD = 5955;
+pub const ERROR_RESMON_SYSTEM_RESOURCES_LACKING: DWORD = 5956;
+pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION: DWORD = 5957;
+pub const ERROR_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE: DWORD = 5958;
+pub const ERROR_CLUSTER_GROUP_QUEUED: DWORD = 5959;
+pub const ERROR_CLUSTER_RESOURCE_LOCKED_STATUS: DWORD = 5960;
+pub const ERROR_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED: DWORD = 5961;
+pub const ERROR_CLUSTER_NODE_DRAIN_IN_PROGRESS: DWORD = 5962;
+pub const ERROR_CLUSTER_DISK_NOT_CONNECTED: DWORD = 5963;
+pub const ERROR_DISK_NOT_CSV_CAPABLE: DWORD = 5964;
+pub const ERROR_RESOURCE_NOT_IN_AVAILABLE_STORAGE: DWORD = 5965;
+pub const ERROR_CLUSTER_SHARED_VOLUME_REDIRECTED: DWORD = 5966;
+pub const ERROR_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED: DWORD = 5967;
+pub const ERROR_CLUSTER_CANNOT_RETURN_PROPERTIES: DWORD = 5968;
+pub const ERROR_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES: DWORD = 5969;
+pub const ERROR_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE: DWORD = 5970;
+pub const ERROR_CLUSTER_AFFINITY_CONFLICT: DWORD = 5971;
+pub const ERROR_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE: DWORD = 5972;
+pub const ERROR_ENCRYPTION_FAILED: DWORD = 6000;
+pub const ERROR_DECRYPTION_FAILED: DWORD = 6001;
+pub const ERROR_FILE_ENCRYPTED: DWORD = 6002;
+pub const ERROR_NO_RECOVERY_POLICY: DWORD = 6003;
+pub const ERROR_NO_EFS: DWORD = 6004;
+pub const ERROR_WRONG_EFS: DWORD = 6005;
+pub const ERROR_NO_USER_KEYS: DWORD = 6006;
+pub const ERROR_FILE_NOT_ENCRYPTED: DWORD = 6007;
+pub const ERROR_NOT_EXPORT_FORMAT: DWORD = 6008;
+pub const ERROR_FILE_READ_ONLY: DWORD = 6009;
+pub const ERROR_DIR_EFS_DISALLOWED: DWORD = 6010;
+pub const ERROR_EFS_SERVER_NOT_TRUSTED: DWORD = 6011;
+pub const ERROR_BAD_RECOVERY_POLICY: DWORD = 6012;
+pub const ERROR_EFS_ALG_BLOB_TOO_BIG: DWORD = 6013;
+pub const ERROR_VOLUME_NOT_SUPPORT_EFS: DWORD = 6014;
+pub const ERROR_EFS_DISABLED: DWORD = 6015;
+pub const ERROR_EFS_VERSION_NOT_SUPPORT: DWORD = 6016;
+pub const ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE: DWORD = 6017;
+pub const ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER: DWORD = 6018;
+pub const ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE: DWORD = 6019;
+pub const ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE: DWORD = 6020;
+pub const ERROR_CS_ENCRYPTION_FILE_NOT_CSE: DWORD = 6021;
+pub const ERROR_ENCRYPTION_POLICY_DENIES_OPERATION: DWORD = 6022;
+pub const ERROR_NO_BROWSER_SERVERS_FOUND: DWORD = 6118;
+pub const SCHED_E_SERVICE_NOT_LOCALSYSTEM: DWORD = 6200;
+pub const ERROR_LOG_SECTOR_INVALID: DWORD = 6600;
+pub const ERROR_LOG_SECTOR_PARITY_INVALID: DWORD = 6601;
+pub const ERROR_LOG_SECTOR_REMAPPED: DWORD = 6602;
+pub const ERROR_LOG_BLOCK_INCOMPLETE: DWORD = 6603;
+pub const ERROR_LOG_INVALID_RANGE: DWORD = 6604;
+pub const ERROR_LOG_BLOCKS_EXHAUSTED: DWORD = 6605;
+pub const ERROR_LOG_READ_CONTEXT_INVALID: DWORD = 6606;
+pub const ERROR_LOG_RESTART_INVALID: DWORD = 6607;
+pub const ERROR_LOG_BLOCK_VERSION: DWORD = 6608;
+pub const ERROR_LOG_BLOCK_INVALID: DWORD = 6609;
+pub const ERROR_LOG_READ_MODE_INVALID: DWORD = 6610;
+pub const ERROR_LOG_NO_RESTART: DWORD = 6611;
+pub const ERROR_LOG_METADATA_CORRUPT: DWORD = 6612;
+pub const ERROR_LOG_METADATA_INVALID: DWORD = 6613;
+pub const ERROR_LOG_METADATA_INCONSISTENT: DWORD = 6614;
+pub const ERROR_LOG_RESERVATION_INVALID: DWORD = 6615;
+pub const ERROR_LOG_CANT_DELETE: DWORD = 6616;
+pub const ERROR_LOG_CONTAINER_LIMIT_EXCEEDED: DWORD = 6617;
+pub const ERROR_LOG_START_OF_LOG: DWORD = 6618;
+pub const ERROR_LOG_POLICY_ALREADY_INSTALLED: DWORD = 6619;
+pub const ERROR_LOG_POLICY_NOT_INSTALLED: DWORD = 6620;
+pub const ERROR_LOG_POLICY_INVALID: DWORD = 6621;
+pub const ERROR_LOG_POLICY_CONFLICT: DWORD = 6622;
+pub const ERROR_LOG_PINNED_ARCHIVE_TAIL: DWORD = 6623;
+pub const ERROR_LOG_RECORD_NONEXISTENT: DWORD = 6624;
+pub const ERROR_LOG_RECORDS_RESERVED_INVALID: DWORD = 6625;
+pub const ERROR_LOG_SPACE_RESERVED_INVALID: DWORD = 6626;
+pub const ERROR_LOG_TAIL_INVALID: DWORD = 6627;
+pub const ERROR_LOG_FULL: DWORD = 6628;
+pub const ERROR_COULD_NOT_RESIZE_LOG: DWORD = 6629;
+pub const ERROR_LOG_MULTIPLEXED: DWORD = 6630;
+pub const ERROR_LOG_DEDICATED: DWORD = 6631;
+pub const ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS: DWORD = 6632;
+pub const ERROR_LOG_ARCHIVE_IN_PROGRESS: DWORD = 6633;
+pub const ERROR_LOG_EPHEMERAL: DWORD = 6634;
+pub const ERROR_LOG_NOT_ENOUGH_CONTAINERS: DWORD = 6635;
+pub const ERROR_LOG_CLIENT_ALREADY_REGISTERED: DWORD = 6636;
+pub const ERROR_LOG_CLIENT_NOT_REGISTERED: DWORD = 6637;
+pub const ERROR_LOG_FULL_HANDLER_IN_PROGRESS: DWORD = 6638;
+pub const ERROR_LOG_CONTAINER_READ_FAILED: DWORD = 6639;
+pub const ERROR_LOG_CONTAINER_WRITE_FAILED: DWORD = 6640;
+pub const ERROR_LOG_CONTAINER_OPEN_FAILED: DWORD = 6641;
+pub const ERROR_LOG_CONTAINER_STATE_INVALID: DWORD = 6642;
+pub const ERROR_LOG_STATE_INVALID: DWORD = 6643;
+pub const ERROR_LOG_PINNED: DWORD = 6644;
+pub const ERROR_LOG_METADATA_FLUSH_FAILED: DWORD = 6645;
+pub const ERROR_LOG_INCONSISTENT_SECURITY: DWORD = 6646;
+pub const ERROR_LOG_APPENDED_FLUSH_FAILED: DWORD = 6647;
+pub const ERROR_LOG_PINNED_RESERVATION: DWORD = 6648;
+pub const ERROR_INVALID_TRANSACTION: DWORD = 6700;
+pub const ERROR_TRANSACTION_NOT_ACTIVE: DWORD = 6701;
+pub const ERROR_TRANSACTION_REQUEST_NOT_VALID: DWORD = 6702;
+pub const ERROR_TRANSACTION_NOT_REQUESTED: DWORD = 6703;
+pub const ERROR_TRANSACTION_ALREADY_ABORTED: DWORD = 6704;
+pub const ERROR_TRANSACTION_ALREADY_COMMITTED: DWORD = 6705;
+pub const ERROR_TM_INITIALIZATION_FAILED: DWORD = 6706;
+pub const ERROR_RESOURCEMANAGER_READ_ONLY: DWORD = 6707;
+pub const ERROR_TRANSACTION_NOT_JOINED: DWORD = 6708;
+pub const ERROR_TRANSACTION_SUPERIOR_EXISTS: DWORD = 6709;
+pub const ERROR_CRM_PROTOCOL_ALREADY_EXISTS: DWORD = 6710;
+pub const ERROR_TRANSACTION_PROPAGATION_FAILED: DWORD = 6711;
+pub const ERROR_CRM_PROTOCOL_NOT_FOUND: DWORD = 6712;
+pub const ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER: DWORD = 6713;
+pub const ERROR_CURRENT_TRANSACTION_NOT_VALID: DWORD = 6714;
+pub const ERROR_TRANSACTION_NOT_FOUND: DWORD = 6715;
+pub const ERROR_RESOURCEMANAGER_NOT_FOUND: DWORD = 6716;
+pub const ERROR_ENLISTMENT_NOT_FOUND: DWORD = 6717;
+pub const ERROR_TRANSACTIONMANAGER_NOT_FOUND: DWORD = 6718;
+pub const ERROR_TRANSACTIONMANAGER_NOT_ONLINE: DWORD = 6719;
+pub const ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION: DWORD = 6720;
+pub const ERROR_TRANSACTION_NOT_ROOT: DWORD = 6721;
+pub const ERROR_TRANSACTION_OBJECT_EXPIRED: DWORD = 6722;
+pub const ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED: DWORD = 6723;
+pub const ERROR_TRANSACTION_RECORD_TOO_LONG: DWORD = 6724;
+pub const ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED: DWORD = 6725;
+pub const ERROR_TRANSACTION_INTEGRITY_VIOLATED: DWORD = 6726;
+pub const ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH: DWORD = 6727;
+pub const ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT: DWORD = 6728;
+pub const ERROR_TRANSACTION_MUST_WRITETHROUGH: DWORD = 6729;
+pub const ERROR_TRANSACTION_NO_SUPERIOR: DWORD = 6730;
+pub const ERROR_HEURISTIC_DAMAGE_POSSIBLE: DWORD = 6731;
+pub const ERROR_TRANSACTIONAL_CONFLICT: DWORD = 6800;
+pub const ERROR_RM_NOT_ACTIVE: DWORD = 6801;
+pub const ERROR_RM_METADATA_CORRUPT: DWORD = 6802;
+pub const ERROR_DIRECTORY_NOT_RM: DWORD = 6803;
+pub const ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE: DWORD = 6805;
+pub const ERROR_LOG_RESIZE_INVALID_SIZE: DWORD = 6806;
+pub const ERROR_OBJECT_NO_LONGER_EXISTS: DWORD = 6807;
+pub const ERROR_STREAM_MINIVERSION_NOT_FOUND: DWORD = 6808;
+pub const ERROR_STREAM_MINIVERSION_NOT_VALID: DWORD = 6809;
+pub const ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION: DWORD = 6810;
+pub const ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT: DWORD = 6811;
+pub const ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS: DWORD = 6812;
+pub const ERROR_REMOTE_FILE_VERSION_MISMATCH: DWORD = 6814;
+pub const ERROR_HANDLE_NO_LONGER_VALID: DWORD = 6815;
+pub const ERROR_NO_TXF_METADATA: DWORD = 6816;
+pub const ERROR_LOG_CORRUPTION_DETECTED: DWORD = 6817;
+pub const ERROR_CANT_RECOVER_WITH_HANDLE_OPEN: DWORD = 6818;
+pub const ERROR_RM_DISCONNECTED: DWORD = 6819;
+pub const ERROR_ENLISTMENT_NOT_SUPERIOR: DWORD = 6820;
+pub const ERROR_RECOVERY_NOT_NEEDED: DWORD = 6821;
+pub const ERROR_RM_ALREADY_STARTED: DWORD = 6822;
+pub const ERROR_FILE_IDENTITY_NOT_PERSISTENT: DWORD = 6823;
+pub const ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY: DWORD = 6824;
+pub const ERROR_CANT_CROSS_RM_BOUNDARY: DWORD = 6825;
+pub const ERROR_TXF_DIR_NOT_EMPTY: DWORD = 6826;
+pub const ERROR_INDOUBT_TRANSACTIONS_EXIST: DWORD = 6827;
+pub const ERROR_TM_VOLATILE: DWORD = 6828;
+pub const ERROR_ROLLBACK_TIMER_EXPIRED: DWORD = 6829;
+pub const ERROR_TXF_ATTRIBUTE_CORRUPT: DWORD = 6830;
+pub const ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION: DWORD = 6831;
+pub const ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED: DWORD = 6832;
+pub const ERROR_LOG_GROWTH_FAILED: DWORD = 6833;
+pub const ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE: DWORD = 6834;
+pub const ERROR_TXF_METADATA_ALREADY_PRESENT: DWORD = 6835;
+pub const ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET: DWORD = 6836;
+pub const ERROR_TRANSACTION_REQUIRED_PROMOTION: DWORD = 6837;
+pub const ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION: DWORD = 6838;
+pub const ERROR_TRANSACTIONS_NOT_FROZEN: DWORD = 6839;
+pub const ERROR_TRANSACTION_FREEZE_IN_PROGRESS: DWORD = 6840;
+pub const ERROR_NOT_SNAPSHOT_VOLUME: DWORD = 6841;
+pub const ERROR_NO_SAVEPOINT_WITH_OPEN_FILES: DWORD = 6842;
+pub const ERROR_DATA_LOST_REPAIR: DWORD = 6843;
+pub const ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION: DWORD = 6844;
+pub const ERROR_TM_IDENTITY_MISMATCH: DWORD = 6845;
+pub const ERROR_FLOATED_SECTION: DWORD = 6846;
+pub const ERROR_CANNOT_ACCEPT_TRANSACTED_WORK: DWORD = 6847;
+pub const ERROR_CANNOT_ABORT_TRANSACTIONS: DWORD = 6848;
+pub const ERROR_BAD_CLUSTERS: DWORD = 6849;
+pub const ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION: DWORD = 6850;
+pub const ERROR_VOLUME_DIRTY: DWORD = 6851;
+pub const ERROR_NO_LINK_TRACKING_IN_TRANSACTION: DWORD = 6852;
+pub const ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION: DWORD = 6853;
+pub const ERROR_EXPIRED_HANDLE: DWORD = 6854;
+pub const ERROR_TRANSACTION_NOT_ENLISTED: DWORD = 6855;
+pub const ERROR_CTX_WINSTATION_NAME_INVALID: DWORD = 7001;
+pub const ERROR_CTX_INVALID_PD: DWORD = 7002;
+pub const ERROR_CTX_PD_NOT_FOUND: DWORD = 7003;
+pub const ERROR_CTX_WD_NOT_FOUND: DWORD = 7004;
+pub const ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY: DWORD = 7005;
+pub const ERROR_CTX_SERVICE_NAME_COLLISION: DWORD = 7006;
+pub const ERROR_CTX_CLOSE_PENDING: DWORD = 7007;
+pub const ERROR_CTX_NO_OUTBUF: DWORD = 7008;
+pub const ERROR_CTX_MODEM_INF_NOT_FOUND: DWORD = 7009;
+pub const ERROR_CTX_INVALID_MODEMNAME: DWORD = 7010;
+pub const ERROR_CTX_MODEM_RESPONSE_ERROR: DWORD = 7011;
+pub const ERROR_CTX_MODEM_RESPONSE_TIMEOUT: DWORD = 7012;
+pub const ERROR_CTX_MODEM_RESPONSE_NO_CARRIER: DWORD = 7013;
+pub const ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE: DWORD = 7014;
+pub const ERROR_CTX_MODEM_RESPONSE_BUSY: DWORD = 7015;
+pub const ERROR_CTX_MODEM_RESPONSE_VOICE: DWORD = 7016;
+pub const ERROR_CTX_TD_ERROR: DWORD = 7017;
+pub const ERROR_CTX_WINSTATION_NOT_FOUND: DWORD = 7022;
+pub const ERROR_CTX_WINSTATION_ALREADY_EXISTS: DWORD = 7023;
+pub const ERROR_CTX_WINSTATION_BUSY: DWORD = 7024;
+pub const ERROR_CTX_BAD_VIDEO_MODE: DWORD = 7025;
+pub const ERROR_CTX_GRAPHICS_INVALID: DWORD = 7035;
+pub const ERROR_CTX_LOGON_DISABLED: DWORD = 7037;
+pub const ERROR_CTX_NOT_CONSOLE: DWORD = 7038;
+pub const ERROR_CTX_CLIENT_QUERY_TIMEOUT: DWORD = 7040;
+pub const ERROR_CTX_CONSOLE_DISCONNECT: DWORD = 7041;
+pub const ERROR_CTX_CONSOLE_CONNECT: DWORD = 7042;
+pub const ERROR_CTX_SHADOW_DENIED: DWORD = 7044;
+pub const ERROR_CTX_WINSTATION_ACCESS_DENIED: DWORD = 7045;
+pub const ERROR_CTX_INVALID_WD: DWORD = 7049;
+pub const ERROR_CTX_SHADOW_INVALID: DWORD = 7050;
+pub const ERROR_CTX_SHADOW_DISABLED: DWORD = 7051;
+pub const ERROR_CTX_CLIENT_LICENSE_IN_USE: DWORD = 7052;
+pub const ERROR_CTX_CLIENT_LICENSE_NOT_SET: DWORD = 7053;
+pub const ERROR_CTX_LICENSE_NOT_AVAILABLE: DWORD = 7054;
+pub const ERROR_CTX_LICENSE_CLIENT_INVALID: DWORD = 7055;
+pub const ERROR_CTX_LICENSE_EXPIRED: DWORD = 7056;
+pub const ERROR_CTX_SHADOW_NOT_RUNNING: DWORD = 7057;
+pub const ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE: DWORD = 7058;
+pub const ERROR_ACTIVATION_COUNT_EXCEEDED: DWORD = 7059;
+pub const ERROR_CTX_WINSTATIONS_DISABLED: DWORD = 7060;
+pub const ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED: DWORD = 7061;
+pub const ERROR_CTX_SESSION_IN_USE: DWORD = 7062;
+pub const ERROR_CTX_NO_FORCE_LOGOFF: DWORD = 7063;
+pub const ERROR_CTX_ACCOUNT_RESTRICTION: DWORD = 7064;
+pub const ERROR_RDP_PROTOCOL_ERROR: DWORD = 7065;
+pub const ERROR_CTX_CDM_CONNECT: DWORD = 7066;
+pub const ERROR_CTX_CDM_DISCONNECT: DWORD = 7067;
+pub const ERROR_CTX_SECURITY_LAYER_ERROR: DWORD = 7068;
+pub const ERROR_TS_INCOMPATIBLE_SESSIONS: DWORD = 7069;
+pub const ERROR_TS_VIDEO_SUBSYSTEM_ERROR: DWORD = 7070;
+pub const FRS_ERR_INVALID_API_SEQUENCE: DWORD = 8001;
+pub const FRS_ERR_STARTING_SERVICE: DWORD = 8002;
+pub const FRS_ERR_STOPPING_SERVICE: DWORD = 8003;
+pub const FRS_ERR_INTERNAL_API: DWORD = 8004;
+pub const FRS_ERR_INTERNAL: DWORD = 8005;
+pub const FRS_ERR_SERVICE_COMM: DWORD = 8006;
+pub const FRS_ERR_INSUFFICIENT_PRIV: DWORD = 8007;
+pub const FRS_ERR_AUTHENTICATION: DWORD = 8008;
+pub const FRS_ERR_PARENT_INSUFFICIENT_PRIV: DWORD = 8009;
+pub const FRS_ERR_PARENT_AUTHENTICATION: DWORD = 8010;
+pub const FRS_ERR_CHILD_TO_PARENT_COMM: DWORD = 8011;
+pub const FRS_ERR_PARENT_TO_CHILD_COMM: DWORD = 8012;
+pub const FRS_ERR_SYSVOL_POPULATE: DWORD = 8013;
+pub const FRS_ERR_SYSVOL_POPULATE_TIMEOUT: DWORD = 8014;
+pub const FRS_ERR_SYSVOL_IS_BUSY: DWORD = 8015;
+pub const FRS_ERR_SYSVOL_DEMOTE: DWORD = 8016;
+pub const FRS_ERR_INVALID_SERVICE_PARAMETER: DWORD = 8017;
+pub const DS_S_SUCCESS: DWORD = NO_ERROR;
+pub const ERROR_DS_NOT_INSTALLED: DWORD = 8200;
+pub const ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY: DWORD = 8201;
+pub const ERROR_DS_NO_ATTRIBUTE_OR_VALUE: DWORD = 8202;
+pub const ERROR_DS_INVALID_ATTRIBUTE_SYNTAX: DWORD = 8203;
+pub const ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED: DWORD = 8204;
+pub const ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS: DWORD = 8205;
+pub const ERROR_DS_BUSY: DWORD = 8206;
+pub const ERROR_DS_UNAVAILABLE: DWORD = 8207;
+pub const ERROR_DS_NO_RIDS_ALLOCATED: DWORD = 8208;
+pub const ERROR_DS_NO_MORE_RIDS: DWORD = 8209;
+pub const ERROR_DS_INCORRECT_ROLE_OWNER: DWORD = 8210;
+pub const ERROR_DS_RIDMGR_INIT_ERROR: DWORD = 8211;
+pub const ERROR_DS_OBJ_CLASS_VIOLATION: DWORD = 8212;
+pub const ERROR_DS_CANT_ON_NON_LEAF: DWORD = 8213;
+pub const ERROR_DS_CANT_ON_RDN: DWORD = 8214;
+pub const ERROR_DS_CANT_MOD_OBJ_CLASS: DWORD = 8215;
+pub const ERROR_DS_CROSS_DOM_MOVE_ERROR: DWORD = 8216;
+pub const ERROR_DS_GC_NOT_AVAILABLE: DWORD = 8217;
+pub const ERROR_SHARED_POLICY: DWORD = 8218;
+pub const ERROR_POLICY_OBJECT_NOT_FOUND: DWORD = 8219;
+pub const ERROR_POLICY_ONLY_IN_DS: DWORD = 8220;
+pub const ERROR_PROMOTION_ACTIVE: DWORD = 8221;
+pub const ERROR_NO_PROMOTION_ACTIVE: DWORD = 8222;
+pub const ERROR_DS_OPERATIONS_ERROR: DWORD = 8224;
+pub const ERROR_DS_PROTOCOL_ERROR: DWORD = 8225;
+pub const ERROR_DS_TIMELIMIT_EXCEEDED: DWORD = 8226;
+pub const ERROR_DS_SIZELIMIT_EXCEEDED: DWORD = 8227;
+pub const ERROR_DS_ADMIN_LIMIT_EXCEEDED: DWORD = 8228;
+pub const ERROR_DS_COMPARE_FALSE: DWORD = 8229;
+pub const ERROR_DS_COMPARE_TRUE: DWORD = 8230;
+pub const ERROR_DS_AUTH_METHOD_NOT_SUPPORTED: DWORD = 8231;
+pub const ERROR_DS_STRONG_AUTH_REQUIRED: DWORD = 8232;
+pub const ERROR_DS_INAPPROPRIATE_AUTH: DWORD = 8233;
+pub const ERROR_DS_AUTH_UNKNOWN: DWORD = 8234;
+pub const ERROR_DS_REFERRAL: DWORD = 8235;
+pub const ERROR_DS_UNAVAILABLE_CRIT_EXTENSION: DWORD = 8236;
+pub const ERROR_DS_CONFIDENTIALITY_REQUIRED: DWORD = 8237;
+pub const ERROR_DS_INAPPROPRIATE_MATCHING: DWORD = 8238;
+pub const ERROR_DS_CONSTRAINT_VIOLATION: DWORD = 8239;
+pub const ERROR_DS_NO_SUCH_OBJECT: DWORD = 8240;
+pub const ERROR_DS_ALIAS_PROBLEM: DWORD = 8241;
+pub const ERROR_DS_INVALID_DN_SYNTAX: DWORD = 8242;
+pub const ERROR_DS_IS_LEAF: DWORD = 8243;
+pub const ERROR_DS_ALIAS_DEREF_PROBLEM: DWORD = 8244;
+pub const ERROR_DS_UNWILLING_TO_PERFORM: DWORD = 8245;
+pub const ERROR_DS_LOOP_DETECT: DWORD = 8246;
+pub const ERROR_DS_NAMING_VIOLATION: DWORD = 8247;
+pub const ERROR_DS_OBJECT_RESULTS_TOO_LARGE: DWORD = 8248;
+pub const ERROR_DS_AFFECTS_MULTIPLE_DSAS: DWORD = 8249;
+pub const ERROR_DS_SERVER_DOWN: DWORD = 8250;
+pub const ERROR_DS_LOCAL_ERROR: DWORD = 8251;
+pub const ERROR_DS_ENCODING_ERROR: DWORD = 8252;
+pub const ERROR_DS_DECODING_ERROR: DWORD = 8253;
+pub const ERROR_DS_FILTER_UNKNOWN: DWORD = 8254;
+pub const ERROR_DS_PARAM_ERROR: DWORD = 8255;
+pub const ERROR_DS_NOT_SUPPORTED: DWORD = 8256;
+pub const ERROR_DS_NO_RESULTS_RETURNED: DWORD = 8257;
+pub const ERROR_DS_CONTROL_NOT_FOUND: DWORD = 8258;
+pub const ERROR_DS_CLIENT_LOOP: DWORD = 8259;
+pub const ERROR_DS_REFERRAL_LIMIT_EXCEEDED: DWORD = 8260;
+pub const ERROR_DS_SORT_CONTROL_MISSING: DWORD = 8261;
+pub const ERROR_DS_OFFSET_RANGE_ERROR: DWORD = 8262;
+pub const ERROR_DS_RIDMGR_DISABLED: DWORD = 8263;
+pub const ERROR_DS_ROOT_MUST_BE_NC: DWORD = 8301;
+pub const ERROR_DS_ADD_REPLICA_INHIBITED: DWORD = 8302;
+pub const ERROR_DS_ATT_NOT_DEF_IN_SCHEMA: DWORD = 8303;
+pub const ERROR_DS_MAX_OBJ_SIZE_EXCEEDED: DWORD = 8304;
+pub const ERROR_DS_OBJ_STRING_NAME_EXISTS: DWORD = 8305;
+pub const ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA: DWORD = 8306;
+pub const ERROR_DS_RDN_DOESNT_MATCH_SCHEMA: DWORD = 8307;
+pub const ERROR_DS_NO_REQUESTED_ATTS_FOUND: DWORD = 8308;
+pub const ERROR_DS_USER_BUFFER_TO_SMALL: DWORD = 8309;
+pub const ERROR_DS_ATT_IS_NOT_ON_OBJ: DWORD = 8310;
+pub const ERROR_DS_ILLEGAL_MOD_OPERATION: DWORD = 8311;
+pub const ERROR_DS_OBJ_TOO_LARGE: DWORD = 8312;
+pub const ERROR_DS_BAD_INSTANCE_TYPE: DWORD = 8313;
+pub const ERROR_DS_MASTERDSA_REQUIRED: DWORD = 8314;
+pub const ERROR_DS_OBJECT_CLASS_REQUIRED: DWORD = 8315;
+pub const ERROR_DS_MISSING_REQUIRED_ATT: DWORD = 8316;
+pub const ERROR_DS_ATT_NOT_DEF_FOR_CLASS: DWORD = 8317;
+pub const ERROR_DS_ATT_ALREADY_EXISTS: DWORD = 8318;
+pub const ERROR_DS_CANT_ADD_ATT_VALUES: DWORD = 8320;
+pub const ERROR_DS_SINGLE_VALUE_CONSTRAINT: DWORD = 8321;
+pub const ERROR_DS_RANGE_CONSTRAINT: DWORD = 8322;
+pub const ERROR_DS_ATT_VAL_ALREADY_EXISTS: DWORD = 8323;
+pub const ERROR_DS_CANT_REM_MISSING_ATT: DWORD = 8324;
+pub const ERROR_DS_CANT_REM_MISSING_ATT_VAL: DWORD = 8325;
+pub const ERROR_DS_ROOT_CANT_BE_SUBREF: DWORD = 8326;
+pub const ERROR_DS_NO_CHAINING: DWORD = 8327;
+pub const ERROR_DS_NO_CHAINED_EVAL: DWORD = 8328;
+pub const ERROR_DS_NO_PARENT_OBJECT: DWORD = 8329;
+pub const ERROR_DS_PARENT_IS_AN_ALIAS: DWORD = 8330;
+pub const ERROR_DS_CANT_MIX_MASTER_AND_REPS: DWORD = 8331;
+pub const ERROR_DS_CHILDREN_EXIST: DWORD = 8332;
+pub const ERROR_DS_OBJ_NOT_FOUND: DWORD = 8333;
+pub const ERROR_DS_ALIASED_OBJ_MISSING: DWORD = 8334;
+pub const ERROR_DS_BAD_NAME_SYNTAX: DWORD = 8335;
+pub const ERROR_DS_ALIAS_POINTS_TO_ALIAS: DWORD = 8336;
+pub const ERROR_DS_CANT_DEREF_ALIAS: DWORD = 8337;
+pub const ERROR_DS_OUT_OF_SCOPE: DWORD = 8338;
+pub const ERROR_DS_OBJECT_BEING_REMOVED: DWORD = 8339;
+pub const ERROR_DS_CANT_DELETE_DSA_OBJ: DWORD = 8340;
+pub const ERROR_DS_GENERIC_ERROR: DWORD = 8341;
+pub const ERROR_DS_DSA_MUST_BE_INT_MASTER: DWORD = 8342;
+pub const ERROR_DS_CLASS_NOT_DSA: DWORD = 8343;
+pub const ERROR_DS_INSUFF_ACCESS_RIGHTS: DWORD = 8344;
+pub const ERROR_DS_ILLEGAL_SUPERIOR: DWORD = 8345;
+pub const ERROR_DS_ATTRIBUTE_OWNED_BY_SAM: DWORD = 8346;
+pub const ERROR_DS_NAME_TOO_MANY_PARTS: DWORD = 8347;
+pub const ERROR_DS_NAME_TOO_LONG: DWORD = 8348;
+pub const ERROR_DS_NAME_VALUE_TOO_LONG: DWORD = 8349;
+pub const ERROR_DS_NAME_UNPARSEABLE: DWORD = 8350;
+pub const ERROR_DS_NAME_TYPE_UNKNOWN: DWORD = 8351;
+pub const ERROR_DS_NOT_AN_OBJECT: DWORD = 8352;
+pub const ERROR_DS_SEC_DESC_TOO_SHORT: DWORD = 8353;
+pub const ERROR_DS_SEC_DESC_INVALID: DWORD = 8354;
+pub const ERROR_DS_NO_DELETED_NAME: DWORD = 8355;
+pub const ERROR_DS_SUBREF_MUST_HAVE_PARENT: DWORD = 8356;
+pub const ERROR_DS_NCNAME_MUST_BE_NC: DWORD = 8357;
+pub const ERROR_DS_CANT_ADD_SYSTEM_ONLY: DWORD = 8358;
+pub const ERROR_DS_CLASS_MUST_BE_CONCRETE: DWORD = 8359;
+pub const ERROR_DS_INVALID_DMD: DWORD = 8360;
+pub const ERROR_DS_OBJ_GUID_EXISTS: DWORD = 8361;
+pub const ERROR_DS_NOT_ON_BACKLINK: DWORD = 8362;
+pub const ERROR_DS_NO_CROSSREF_FOR_NC: DWORD = 8363;
+pub const ERROR_DS_SHUTTING_DOWN: DWORD = 8364;
+pub const ERROR_DS_UNKNOWN_OPERATION: DWORD = 8365;
+pub const ERROR_DS_INVALID_ROLE_OWNER: DWORD = 8366;
+pub const ERROR_DS_COULDNT_CONTACT_FSMO: DWORD = 8367;
+pub const ERROR_DS_CROSS_NC_DN_RENAME: DWORD = 8368;
+pub const ERROR_DS_CANT_MOD_SYSTEM_ONLY: DWORD = 8369;
+pub const ERROR_DS_REPLICATOR_ONLY: DWORD = 8370;
+pub const ERROR_DS_OBJ_CLASS_NOT_DEFINED: DWORD = 8371;
+pub const ERROR_DS_OBJ_CLASS_NOT_SUBCLASS: DWORD = 8372;
+pub const ERROR_DS_NAME_REFERENCE_INVALID: DWORD = 8373;
+pub const ERROR_DS_CROSS_REF_EXISTS: DWORD = 8374;
+pub const ERROR_DS_CANT_DEL_MASTER_CROSSREF: DWORD = 8375;
+pub const ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD: DWORD = 8376;
+pub const ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX: DWORD = 8377;
+pub const ERROR_DS_DUP_RDN: DWORD = 8378;
+pub const ERROR_DS_DUP_OID: DWORD = 8379;
+pub const ERROR_DS_DUP_MAPI_ID: DWORD = 8380;
+pub const ERROR_DS_DUP_SCHEMA_ID_GUID: DWORD = 8381;
+pub const ERROR_DS_DUP_LDAP_DISPLAY_NAME: DWORD = 8382;
+pub const ERROR_DS_SEMANTIC_ATT_TEST: DWORD = 8383;
+pub const ERROR_DS_SYNTAX_MISMATCH: DWORD = 8384;
+pub const ERROR_DS_EXISTS_IN_MUST_HAVE: DWORD = 8385;
+pub const ERROR_DS_EXISTS_IN_MAY_HAVE: DWORD = 8386;
+pub const ERROR_DS_NONEXISTENT_MAY_HAVE: DWORD = 8387;
+pub const ERROR_DS_NONEXISTENT_MUST_HAVE: DWORD = 8388;
+pub const ERROR_DS_AUX_CLS_TEST_FAIL: DWORD = 8389;
+pub const ERROR_DS_NONEXISTENT_POSS_SUP: DWORD = 8390;
+pub const ERROR_DS_SUB_CLS_TEST_FAIL: DWORD = 8391;
+pub const ERROR_DS_BAD_RDN_ATT_ID_SYNTAX: DWORD = 8392;
+pub const ERROR_DS_EXISTS_IN_AUX_CLS: DWORD = 8393;
+pub const ERROR_DS_EXISTS_IN_SUB_CLS: DWORD = 8394;
+pub const ERROR_DS_EXISTS_IN_POSS_SUP: DWORD = 8395;
+pub const ERROR_DS_RECALCSCHEMA_FAILED: DWORD = 8396;
+pub const ERROR_DS_TREE_DELETE_NOT_FINISHED: DWORD = 8397;
+pub const ERROR_DS_CANT_DELETE: DWORD = 8398;
+pub const ERROR_DS_ATT_SCHEMA_REQ_ID: DWORD = 8399;
+pub const ERROR_DS_BAD_ATT_SCHEMA_SYNTAX: DWORD = 8400;
+pub const ERROR_DS_CANT_CACHE_ATT: DWORD = 8401;
+pub const ERROR_DS_CANT_CACHE_CLASS: DWORD = 8402;
+pub const ERROR_DS_CANT_REMOVE_ATT_CACHE: DWORD = 8403;
+pub const ERROR_DS_CANT_REMOVE_CLASS_CACHE: DWORD = 8404;
+pub const ERROR_DS_CANT_RETRIEVE_DN: DWORD = 8405;
+pub const ERROR_DS_MISSING_SUPREF: DWORD = 8406;
+pub const ERROR_DS_CANT_RETRIEVE_INSTANCE: DWORD = 8407;
+pub const ERROR_DS_CODE_INCONSISTENCY: DWORD = 8408;
+pub const ERROR_DS_DATABASE_ERROR: DWORD = 8409;
+pub const ERROR_DS_GOVERNSID_MISSING: DWORD = 8410;
+pub const ERROR_DS_MISSING_EXPECTED_ATT: DWORD = 8411;
+pub const ERROR_DS_NCNAME_MISSING_CR_REF: DWORD = 8412;
+pub const ERROR_DS_SECURITY_CHECKING_ERROR: DWORD = 8413;
+pub const ERROR_DS_SCHEMA_NOT_LOADED: DWORD = 8414;
+pub const ERROR_DS_SCHEMA_ALLOC_FAILED: DWORD = 8415;
+pub const ERROR_DS_ATT_SCHEMA_REQ_SYNTAX: DWORD = 8416;
+pub const ERROR_DS_GCVERIFY_ERROR: DWORD = 8417;
+pub const ERROR_DS_DRA_SCHEMA_MISMATCH: DWORD = 8418;
+pub const ERROR_DS_CANT_FIND_DSA_OBJ: DWORD = 8419;
+pub const ERROR_DS_CANT_FIND_EXPECTED_NC: DWORD = 8420;
+pub const ERROR_DS_CANT_FIND_NC_IN_CACHE: DWORD = 8421;
+pub const ERROR_DS_CANT_RETRIEVE_CHILD: DWORD = 8422;
+pub const ERROR_DS_SECURITY_ILLEGAL_MODIFY: DWORD = 8423;
+pub const ERROR_DS_CANT_REPLACE_HIDDEN_REC: DWORD = 8424;
+pub const ERROR_DS_BAD_HIERARCHY_FILE: DWORD = 8425;
+pub const ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED: DWORD = 8426;
+pub const ERROR_DS_CONFIG_PARAM_MISSING: DWORD = 8427;
+pub const ERROR_DS_COUNTING_AB_INDICES_FAILED: DWORD = 8428;
+pub const ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED: DWORD = 8429;
+pub const ERROR_DS_INTERNAL_FAILURE: DWORD = 8430;
+pub const ERROR_DS_UNKNOWN_ERROR: DWORD = 8431;
+pub const ERROR_DS_ROOT_REQUIRES_CLASS_TOP: DWORD = 8432;
+pub const ERROR_DS_REFUSING_FSMO_ROLES: DWORD = 8433;
+pub const ERROR_DS_MISSING_FSMO_SETTINGS: DWORD = 8434;
+pub const ERROR_DS_UNABLE_TO_SURRENDER_ROLES: DWORD = 8435;
+pub const ERROR_DS_DRA_GENERIC: DWORD = 8436;
+pub const ERROR_DS_DRA_INVALID_PARAMETER: DWORD = 8437;
+pub const ERROR_DS_DRA_BUSY: DWORD = 8438;
+pub const ERROR_DS_DRA_BAD_DN: DWORD = 8439;
+pub const ERROR_DS_DRA_BAD_NC: DWORD = 8440;
+pub const ERROR_DS_DRA_DN_EXISTS: DWORD = 8441;
+pub const ERROR_DS_DRA_INTERNAL_ERROR: DWORD = 8442;
+pub const ERROR_DS_DRA_INCONSISTENT_DIT: DWORD = 8443;
+pub const ERROR_DS_DRA_CONNECTION_FAILED: DWORD = 8444;
+pub const ERROR_DS_DRA_BAD_INSTANCE_TYPE: DWORD = 8445;
+pub const ERROR_DS_DRA_OUT_OF_MEM: DWORD = 8446;
+pub const ERROR_DS_DRA_MAIL_PROBLEM: DWORD = 8447;
+pub const ERROR_DS_DRA_REF_ALREADY_EXISTS: DWORD = 8448;
+pub const ERROR_DS_DRA_REF_NOT_FOUND: DWORD = 8449;
+pub const ERROR_DS_DRA_OBJ_IS_REP_SOURCE: DWORD = 8450;
+pub const ERROR_DS_DRA_DB_ERROR: DWORD = 8451;
+pub const ERROR_DS_DRA_NO_REPLICA: DWORD = 8452;
+pub const ERROR_DS_DRA_ACCESS_DENIED: DWORD = 8453;
+pub const ERROR_DS_DRA_NOT_SUPPORTED: DWORD = 8454;
+pub const ERROR_DS_DRA_RPC_CANCELLED: DWORD = 8455;
+pub const ERROR_DS_DRA_SOURCE_DISABLED: DWORD = 8456;
+pub const ERROR_DS_DRA_SINK_DISABLED: DWORD = 8457;
+pub const ERROR_DS_DRA_NAME_COLLISION: DWORD = 8458;
+pub const ERROR_DS_DRA_SOURCE_REINSTALLED: DWORD = 8459;
+pub const ERROR_DS_DRA_MISSING_PARENT: DWORD = 8460;
+pub const ERROR_DS_DRA_PREEMPTED: DWORD = 8461;
+pub const ERROR_DS_DRA_ABANDON_SYNC: DWORD = 8462;
+pub const ERROR_DS_DRA_SHUTDOWN: DWORD = 8463;
+pub const ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET: DWORD = 8464;
+pub const ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA: DWORD = 8465;
+pub const ERROR_DS_DRA_EXTN_CONNECTION_FAILED: DWORD = 8466;
+pub const ERROR_DS_INSTALL_SCHEMA_MISMATCH: DWORD = 8467;
+pub const ERROR_DS_DUP_LINK_ID: DWORD = 8468;
+pub const ERROR_DS_NAME_ERROR_RESOLVING: DWORD = 8469;
+pub const ERROR_DS_NAME_ERROR_NOT_FOUND: DWORD = 8470;
+pub const ERROR_DS_NAME_ERROR_NOT_UNIQUE: DWORD = 8471;
+pub const ERROR_DS_NAME_ERROR_NO_MAPPING: DWORD = 8472;
+pub const ERROR_DS_NAME_ERROR_DOMAIN_ONLY: DWORD = 8473;
+pub const ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING: DWORD = 8474;
+pub const ERROR_DS_CONSTRUCTED_ATT_MOD: DWORD = 8475;
+pub const ERROR_DS_WRONG_OM_OBJ_CLASS: DWORD = 8476;
+pub const ERROR_DS_DRA_REPL_PENDING: DWORD = 8477;
+pub const ERROR_DS_DS_REQUIRED: DWORD = 8478;
+pub const ERROR_DS_INVALID_LDAP_DISPLAY_NAME: DWORD = 8479;
+pub const ERROR_DS_NON_BASE_SEARCH: DWORD = 8480;
+pub const ERROR_DS_CANT_RETRIEVE_ATTS: DWORD = 8481;
+pub const ERROR_DS_BACKLINK_WITHOUT_LINK: DWORD = 8482;
+pub const ERROR_DS_EPOCH_MISMATCH: DWORD = 8483;
+pub const ERROR_DS_SRC_NAME_MISMATCH: DWORD = 8484;
+pub const ERROR_DS_SRC_AND_DST_NC_IDENTICAL: DWORD = 8485;
+pub const ERROR_DS_DST_NC_MISMATCH: DWORD = 8486;
+pub const ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC: DWORD = 8487;
+pub const ERROR_DS_SRC_GUID_MISMATCH: DWORD = 8488;
+pub const ERROR_DS_CANT_MOVE_DELETED_OBJECT: DWORD = 8489;
+pub const ERROR_DS_PDC_OPERATION_IN_PROGRESS: DWORD = 8490;
+pub const ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD: DWORD = 8491;
+pub const ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION: DWORD = 8492;
+pub const ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS: DWORD = 8493;
+pub const ERROR_DS_NC_MUST_HAVE_NC_PARENT: DWORD = 8494;
+pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE: DWORD = 8495;
+pub const ERROR_DS_DST_DOMAIN_NOT_NATIVE: DWORD = 8496;
+pub const ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER: DWORD = 8497;
+pub const ERROR_DS_CANT_MOVE_ACCOUNT_GROUP: DWORD = 8498;
+pub const ERROR_DS_CANT_MOVE_RESOURCE_GROUP: DWORD = 8499;
+pub const ERROR_DS_INVALID_SEARCH_FLAG: DWORD = 8500;
+pub const ERROR_DS_NO_TREE_DELETE_ABOVE_NC: DWORD = 8501;
+pub const ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE: DWORD = 8502;
+pub const ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE: DWORD = 8503;
+pub const ERROR_DS_SAM_INIT_FAILURE: DWORD = 8504;
+pub const ERROR_DS_SENSITIVE_GROUP_VIOLATION: DWORD = 8505;
+pub const ERROR_DS_CANT_MOD_PRIMARYGROUPID: DWORD = 8506;
+pub const ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD: DWORD = 8507;
+pub const ERROR_DS_NONSAFE_SCHEMA_CHANGE: DWORD = 8508;
+pub const ERROR_DS_SCHEMA_UPDATE_DISALLOWED: DWORD = 8509;
+pub const ERROR_DS_CANT_CREATE_UNDER_SCHEMA: DWORD = 8510;
+pub const ERROR_DS_INSTALL_NO_SRC_SCH_VERSION: DWORD = 8511;
+pub const ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE: DWORD = 8512;
+pub const ERROR_DS_INVALID_GROUP_TYPE: DWORD = 8513;
+pub const ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN: DWORD = 8514;
+pub const ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN: DWORD = 8515;
+pub const ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER: DWORD = 8516;
+pub const ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER: DWORD = 8517;
+pub const ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER: DWORD = 8518;
+pub const ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER: DWORD = 8519;
+pub const ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER: DWORD = 8520;
+pub const ERROR_DS_HAVE_PRIMARY_MEMBERS: DWORD = 8521;
+pub const ERROR_DS_STRING_SD_CONVERSION_FAILED: DWORD = 8522;
+pub const ERROR_DS_NAMING_MASTER_GC: DWORD = 8523;
+pub const ERROR_DS_DNS_LOOKUP_FAILURE: DWORD = 8524;
+pub const ERROR_DS_COULDNT_UPDATE_SPNS: DWORD = 8525;
+pub const ERROR_DS_CANT_RETRIEVE_SD: DWORD = 8526;
+pub const ERROR_DS_KEY_NOT_UNIQUE: DWORD = 8527;
+pub const ERROR_DS_WRONG_LINKED_ATT_SYNTAX: DWORD = 8528;
+pub const ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD: DWORD = 8529;
+pub const ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY: DWORD = 8530;
+pub const ERROR_DS_CANT_START: DWORD = 8531;
+pub const ERROR_DS_INIT_FAILURE: DWORD = 8532;
+pub const ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION: DWORD = 8533;
+pub const ERROR_DS_SOURCE_DOMAIN_IN_FOREST: DWORD = 8534;
+pub const ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST: DWORD = 8535;
+pub const ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED: DWORD = 8536;
+pub const ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN: DWORD = 8537;
+pub const ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER: DWORD = 8538;
+pub const ERROR_DS_SRC_SID_EXISTS_IN_FOREST: DWORD = 8539;
+pub const ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH: DWORD = 8540;
+pub const ERROR_SAM_INIT_FAILURE: DWORD = 8541;
+pub const ERROR_DS_DRA_SCHEMA_INFO_SHIP: DWORD = 8542;
+pub const ERROR_DS_DRA_SCHEMA_CONFLICT: DWORD = 8543;
+pub const ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT: DWORD = 8544;
+pub const ERROR_DS_DRA_OBJ_NC_MISMATCH: DWORD = 8545;
+pub const ERROR_DS_NC_STILL_HAS_DSAS: DWORD = 8546;
+pub const ERROR_DS_GC_REQUIRED: DWORD = 8547;
+pub const ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY: DWORD = 8548;
+pub const ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS: DWORD = 8549;
+pub const ERROR_DS_CANT_ADD_TO_GC: DWORD = 8550;
+pub const ERROR_DS_NO_CHECKPOINT_WITH_PDC: DWORD = 8551;
+pub const ERROR_DS_SOURCE_AUDITING_NOT_ENABLED: DWORD = 8552;
+pub const ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC: DWORD = 8553;
+pub const ERROR_DS_INVALID_NAME_FOR_SPN: DWORD = 8554;
+pub const ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS: DWORD = 8555;
+pub const ERROR_DS_UNICODEPWD_NOT_IN_QUOTES: DWORD = 8556;
+pub const ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED: DWORD = 8557;
+pub const ERROR_DS_MUST_BE_RUN_ON_DST_DC: DWORD = 8558;
+pub const ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER: DWORD = 8559;
+pub const ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ: DWORD = 8560;
+pub const ERROR_DS_INIT_FAILURE_CONSOLE: DWORD = 8561;
+pub const ERROR_DS_SAM_INIT_FAILURE_CONSOLE: DWORD = 8562;
+pub const ERROR_DS_FOREST_VERSION_TOO_HIGH: DWORD = 8563;
+pub const ERROR_DS_DOMAIN_VERSION_TOO_HIGH: DWORD = 8564;
+pub const ERROR_DS_FOREST_VERSION_TOO_LOW: DWORD = 8565;
+pub const ERROR_DS_DOMAIN_VERSION_TOO_LOW: DWORD = 8566;
+pub const ERROR_DS_INCOMPATIBLE_VERSION: DWORD = 8567;
+pub const ERROR_DS_LOW_DSA_VERSION: DWORD = 8568;
+pub const ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN: DWORD = 8569;
+pub const ERROR_DS_NOT_SUPPORTED_SORT_ORDER: DWORD = 8570;
+pub const ERROR_DS_NAME_NOT_UNIQUE: DWORD = 8571;
+pub const ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4: DWORD = 8572;
+pub const ERROR_DS_OUT_OF_VERSION_STORE: DWORD = 8573;
+pub const ERROR_DS_INCOMPATIBLE_CONTROLS_USED: DWORD = 8574;
+pub const ERROR_DS_NO_REF_DOMAIN: DWORD = 8575;
+pub const ERROR_DS_RESERVED_LINK_ID: DWORD = 8576;
+pub const ERROR_DS_LINK_ID_NOT_AVAILABLE: DWORD = 8577;
+pub const ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER: DWORD = 8578;
+pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE: DWORD = 8579;
+pub const ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC: DWORD = 8580;
+pub const ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG: DWORD = 8581;
+pub const ERROR_DS_MODIFYDN_WRONG_GRANDPARENT: DWORD = 8582;
+pub const ERROR_DS_NAME_ERROR_TRUST_REFERRAL: DWORD = 8583;
+pub const ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER: DWORD = 8584;
+pub const ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD: DWORD = 8585;
+pub const ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2: DWORD = 8586;
+pub const ERROR_DS_THREAD_LIMIT_EXCEEDED: DWORD = 8587;
+pub const ERROR_DS_NOT_CLOSEST: DWORD = 8588;
+pub const ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF: DWORD = 8589;
+pub const ERROR_DS_SINGLE_USER_MODE_FAILED: DWORD = 8590;
+pub const ERROR_DS_NTDSCRIPT_SYNTAX_ERROR: DWORD = 8591;
+pub const ERROR_DS_NTDSCRIPT_PROCESS_ERROR: DWORD = 8592;
+pub const ERROR_DS_DIFFERENT_REPL_EPOCHS: DWORD = 8593;
+pub const ERROR_DS_DRS_EXTENSIONS_CHANGED: DWORD = 8594;
+pub const ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR: DWORD = 8595;
+pub const ERROR_DS_NO_MSDS_INTID: DWORD = 8596;
+pub const ERROR_DS_DUP_MSDS_INTID: DWORD = 8597;
+pub const ERROR_DS_EXISTS_IN_RDNATTID: DWORD = 8598;
+pub const ERROR_DS_AUTHORIZATION_FAILED: DWORD = 8599;
+pub const ERROR_DS_INVALID_SCRIPT: DWORD = 8600;
+pub const ERROR_DS_REMOTE_CROSSREF_OP_FAILED: DWORD = 8601;
+pub const ERROR_DS_CROSS_REF_BUSY: DWORD = 8602;
+pub const ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN: DWORD = 8603;
+pub const ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC: DWORD = 8604;
+pub const ERROR_DS_DUPLICATE_ID_FOUND: DWORD = 8605;
+pub const ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT: DWORD = 8606;
+pub const ERROR_DS_GROUP_CONVERSION_ERROR: DWORD = 8607;
+pub const ERROR_DS_CANT_MOVE_APP_BASIC_GROUP: DWORD = 8608;
+pub const ERROR_DS_CANT_MOVE_APP_QUERY_GROUP: DWORD = 8609;
+pub const ERROR_DS_ROLE_NOT_VERIFIED: DWORD = 8610;
+pub const ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL: DWORD = 8611;
+pub const ERROR_DS_DOMAIN_RENAME_IN_PROGRESS: DWORD = 8612;
+pub const ERROR_DS_EXISTING_AD_CHILD_NC: DWORD = 8613;
+pub const ERROR_DS_REPL_LIFETIME_EXCEEDED: DWORD = 8614;
+pub const ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER: DWORD = 8615;
+pub const ERROR_DS_LDAP_SEND_QUEUE_FULL: DWORD = 8616;
+pub const ERROR_DS_DRA_OUT_SCHEDULE_WINDOW: DWORD = 8617;
+pub const ERROR_DS_POLICY_NOT_KNOWN: DWORD = 8618;
+pub const ERROR_NO_SITE_SETTINGS_OBJECT: DWORD = 8619;
+pub const ERROR_NO_SECRETS: DWORD = 8620;
+pub const ERROR_NO_WRITABLE_DC_FOUND: DWORD = 8621;
+pub const ERROR_DS_NO_SERVER_OBJECT: DWORD = 8622;
+pub const ERROR_DS_NO_NTDSA_OBJECT: DWORD = 8623;
+pub const ERROR_DS_NON_ASQ_SEARCH: DWORD = 8624;
+pub const ERROR_DS_AUDIT_FAILURE: DWORD = 8625;
+pub const ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE: DWORD = 8626;
+pub const ERROR_DS_INVALID_SEARCH_FLAG_TUPLE: DWORD = 8627;
+pub const ERROR_DS_HIERARCHY_TABLE_TOO_DEEP: DWORD = 8628;
+pub const ERROR_DS_DRA_CORRUPT_UTD_VECTOR: DWORD = 8629;
+pub const ERROR_DS_DRA_SECRETS_DENIED: DWORD = 8630;
+pub const ERROR_DS_RESERVED_MAPI_ID: DWORD = 8631;
+pub const ERROR_DS_MAPI_ID_NOT_AVAILABLE: DWORD = 8632;
+pub const ERROR_DS_DRA_MISSING_KRBTGT_SECRET: DWORD = 8633;
+pub const ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST: DWORD = 8634;
+pub const ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST: DWORD = 8635;
+pub const ERROR_INVALID_USER_PRINCIPAL_NAME: DWORD = 8636;
+pub const ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS: DWORD = 8637;
+pub const ERROR_DS_OID_NOT_FOUND: DWORD = 8638;
+pub const ERROR_DS_DRA_RECYCLED_TARGET: DWORD = 8639;
+pub const ERROR_DS_DISALLOWED_NC_REDIRECT: DWORD = 8640;
+pub const ERROR_DS_HIGH_ADLDS_FFL: DWORD = 8641;
+pub const ERROR_DS_HIGH_DSA_VERSION: DWORD = 8642;
+pub const ERROR_DS_LOW_ADLDS_FFL: DWORD = 8643;
+pub const ERROR_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION: DWORD = 8644;
+pub const ERROR_DS_UNDELETE_SAM_VALIDATION_FAILED: DWORD = 8645;
+pub const ERROR_INCORRECT_ACCOUNT_TYPE: DWORD = 8646;
+pub const ERROR_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST: DWORD = 8647;
+pub const ERROR_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST: DWORD = 8648;
+pub const DNS_ERROR_RESPONSE_CODES_BASE: DWORD = 9000;
+pub const DNS_ERROR_RCODE_NO_ERROR: DWORD = NO_ERROR;
+pub const DNS_ERROR_MASK: DWORD = 0x00002328;
+pub const DNS_ERROR_RCODE_FORMAT_ERROR: DWORD = 9001;
+pub const DNS_ERROR_RCODE_SERVER_FAILURE: DWORD = 9002;
+pub const DNS_ERROR_RCODE_NAME_ERROR: DWORD = 9003;
+pub const DNS_ERROR_RCODE_NOT_IMPLEMENTED: DWORD = 9004;
+pub const DNS_ERROR_RCODE_REFUSED: DWORD = 9005;
+pub const DNS_ERROR_RCODE_YXDOMAIN: DWORD = 9006;
+pub const DNS_ERROR_RCODE_YXRRSET: DWORD = 9007;
+pub const DNS_ERROR_RCODE_NXRRSET: DWORD = 9008;
+pub const DNS_ERROR_RCODE_NOTAUTH: DWORD = 9009;
+pub const DNS_ERROR_RCODE_NOTZONE: DWORD = 9010;
+pub const DNS_ERROR_RCODE_BADSIG: DWORD = 9016;
+pub const DNS_ERROR_RCODE_BADKEY: DWORD = 9017;
+pub const DNS_ERROR_RCODE_BADTIME: DWORD = 9018;
+pub const DNS_ERROR_RCODE_LAST: DWORD = DNS_ERROR_RCODE_BADTIME;
+pub const DNS_ERROR_DNSSEC_BASE: DWORD = 9100;
+pub const DNS_ERROR_KEYMASTER_REQUIRED: DWORD = 9101;
+pub const DNS_ERROR_NOT_ALLOWED_ON_SIGNED_ZONE: DWORD = 9102;
+pub const DNS_ERROR_NSEC3_INCOMPATIBLE_WITH_RSA_SHA1: DWORD = 9103;
+pub const DNS_ERROR_NOT_ENOUGH_SIGNING_KEY_DESCRIPTORS: DWORD = 9104;
+pub const DNS_ERROR_UNSUPPORTED_ALGORITHM: DWORD = 9105;
+pub const DNS_ERROR_INVALID_KEY_SIZE: DWORD = 9106;
+pub const DNS_ERROR_SIGNING_KEY_NOT_ACCESSIBLE: DWORD = 9107;
+pub const DNS_ERROR_KSP_DOES_NOT_SUPPORT_PROTECTION: DWORD = 9108;
+pub const DNS_ERROR_UNEXPECTED_DATA_PROTECTION_ERROR: DWORD = 9109;
+pub const DNS_ERROR_UNEXPECTED_CNG_ERROR: DWORD = 9110;
+pub const DNS_ERROR_UNKNOWN_SIGNING_PARAMETER_VERSION: DWORD = 9111;
+pub const DNS_ERROR_KSP_NOT_ACCESSIBLE: DWORD = 9112;
+pub const DNS_ERROR_TOO_MANY_SKDS: DWORD = 9113;
+pub const DNS_ERROR_INVALID_ROLLOVER_PERIOD: DWORD = 9114;
+pub const DNS_ERROR_INVALID_INITIAL_ROLLOVER_OFFSET: DWORD = 9115;
+pub const DNS_ERROR_ROLLOVER_IN_PROGRESS: DWORD = 9116;
+pub const DNS_ERROR_STANDBY_KEY_NOT_PRESENT: DWORD = 9117;
+pub const DNS_ERROR_NOT_ALLOWED_ON_ZSK: DWORD = 9118;
+pub const DNS_ERROR_NOT_ALLOWED_ON_ACTIVE_SKD: DWORD = 9119;
+pub const DNS_ERROR_ROLLOVER_ALREADY_QUEUED: DWORD = 9120;
+pub const DNS_ERROR_NOT_ALLOWED_ON_UNSIGNED_ZONE: DWORD = 9121;
+pub const DNS_ERROR_BAD_KEYMASTER: DWORD = 9122;
+pub const DNS_ERROR_INVALID_SIGNATURE_VALIDITY_PERIOD: DWORD = 9123;
+pub const DNS_ERROR_INVALID_NSEC3_ITERATION_COUNT: DWORD = 9124;
+pub const DNS_ERROR_DNSSEC_IS_DISABLED: DWORD = 9125;
+pub const DNS_ERROR_INVALID_XML: DWORD = 9126;
+pub const DNS_ERROR_NO_VALID_TRUST_ANCHORS: DWORD = 9127;
+pub const DNS_ERROR_ROLLOVER_NOT_POKEABLE: DWORD = 9128;
+pub const DNS_ERROR_NSEC3_NAME_COLLISION: DWORD = 9129;
+pub const DNS_ERROR_NSEC_INCOMPATIBLE_WITH_NSEC3_RSA_SHA1: DWORD = 9130;
+pub const DNS_ERROR_PACKET_FMT_BASE: DWORD = 9500;
+pub const DNS_INFO_NO_RECORDS: DWORD = 9501;
+pub const DNS_ERROR_BAD_PACKET: DWORD = 9502;
+pub const DNS_ERROR_NO_PACKET: DWORD = 9503;
+pub const DNS_ERROR_RCODE: DWORD = 9504;
+pub const DNS_ERROR_UNSECURE_PACKET: DWORD = 9505;
+pub const DNS_STATUS_PACKET_UNSECURE: DWORD = DNS_ERROR_UNSECURE_PACKET;
+pub const DNS_REQUEST_PENDING: DWORD = 9506;
+pub const DNS_ERROR_NO_MEMORY: DWORD = ERROR_OUTOFMEMORY;
+pub const DNS_ERROR_INVALID_NAME: DWORD = ERROR_INVALID_NAME;
+pub const DNS_ERROR_INVALID_DATA: DWORD = ERROR_INVALID_DATA;
+pub const DNS_ERROR_GENERAL_API_BASE: DWORD = 9550;
+pub const DNS_ERROR_INVALID_TYPE: DWORD = 9551;
+pub const DNS_ERROR_INVALID_IP_ADDRESS: DWORD = 9552;
+pub const DNS_ERROR_INVALID_PROPERTY: DWORD = 9553;
+pub const DNS_ERROR_TRY_AGAIN_LATER: DWORD = 9554;
+pub const DNS_ERROR_NOT_UNIQUE: DWORD = 9555;
+pub const DNS_ERROR_NON_RFC_NAME: DWORD = 9556;
+pub const DNS_STATUS_FQDN: DWORD = 9557;
+pub const DNS_STATUS_DOTTED_NAME: DWORD = 9558;
+pub const DNS_STATUS_SINGLE_PART_NAME: DWORD = 9559;
+pub const DNS_ERROR_INVALID_NAME_CHAR: DWORD = 9560;
+pub const DNS_ERROR_NUMERIC_NAME: DWORD = 9561;
+pub const DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER: DWORD = 9562;
+pub const DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION: DWORD = 9563;
+pub const DNS_ERROR_CANNOT_FIND_ROOT_HINTS: DWORD = 9564;
+pub const DNS_ERROR_INCONSISTENT_ROOT_HINTS: DWORD = 9565;
+pub const DNS_ERROR_DWORD_VALUE_TOO_SMALL: DWORD = 9566;
+pub const DNS_ERROR_DWORD_VALUE_TOO_LARGE: DWORD = 9567;
+pub const DNS_ERROR_BACKGROUND_LOADING: DWORD = 9568;
+pub const DNS_ERROR_NOT_ALLOWED_ON_RODC: DWORD = 9569;
+pub const DNS_ERROR_NOT_ALLOWED_UNDER_DNAME: DWORD = 9570;
+pub const DNS_ERROR_DELEGATION_REQUIRED: DWORD = 9571;
+pub const DNS_ERROR_INVALID_POLICY_TABLE: DWORD = 9572;
+pub const DNS_ERROR_ZONE_BASE: DWORD = 9600;
+pub const DNS_ERROR_ZONE_DOES_NOT_EXIST: DWORD = 9601;
+pub const DNS_ERROR_NO_ZONE_INFO: DWORD = 9602;
+pub const DNS_ERROR_INVALID_ZONE_OPERATION: DWORD = 9603;
+pub const DNS_ERROR_ZONE_CONFIGURATION_ERROR: DWORD = 9604;
+pub const DNS_ERROR_ZONE_HAS_NO_SOA_RECORD: DWORD = 9605;
+pub const DNS_ERROR_ZONE_HAS_NO_NS_RECORDS: DWORD = 9606;
+pub const DNS_ERROR_ZONE_LOCKED: DWORD = 9607;
+pub const DNS_ERROR_ZONE_CREATION_FAILED: DWORD = 9608;
+pub const DNS_ERROR_ZONE_ALREADY_EXISTS: DWORD = 9609;
+pub const DNS_ERROR_AUTOZONE_ALREADY_EXISTS: DWORD = 9610;
+pub const DNS_ERROR_INVALID_ZONE_TYPE: DWORD = 9611;
+pub const DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP: DWORD = 9612;
+pub const DNS_ERROR_ZONE_NOT_SECONDARY: DWORD = 9613;
+pub const DNS_ERROR_NEED_SECONDARY_ADDRESSES: DWORD = 9614;
+pub const DNS_ERROR_WINS_INIT_FAILED: DWORD = 9615;
+pub const DNS_ERROR_NEED_WINS_SERVERS: DWORD = 9616;
+pub const DNS_ERROR_NBSTAT_INIT_FAILED: DWORD = 9617;
+pub const DNS_ERROR_SOA_DELETE_INVALID: DWORD = 9618;
+pub const DNS_ERROR_FORWARDER_ALREADY_EXISTS: DWORD = 9619;
+pub const DNS_ERROR_ZONE_REQUIRES_MASTER_IP: DWORD = 9620;
+pub const DNS_ERROR_ZONE_IS_SHUTDOWN: DWORD = 9621;
+pub const DNS_ERROR_ZONE_LOCKED_FOR_SIGNING: DWORD = 9622;
+pub const DNS_ERROR_DATAFILE_BASE: DWORD = 9650;
+pub const DNS_ERROR_PRIMARY_REQUIRES_DATAFILE: DWORD = 9651;
+pub const DNS_ERROR_INVALID_DATAFILE_NAME: DWORD = 9652;
+pub const DNS_ERROR_DATAFILE_OPEN_FAILURE: DWORD = 9653;
+pub const DNS_ERROR_FILE_WRITEBACK_FAILED: DWORD = 9654;
+pub const DNS_ERROR_DATAFILE_PARSING: DWORD = 9655;
+pub const DNS_ERROR_DATABASE_BASE: DWORD = 9700;
+pub const DNS_ERROR_RECORD_DOES_NOT_EXIST: DWORD = 9701;
+pub const DNS_ERROR_RECORD_FORMAT: DWORD = 9702;
+pub const DNS_ERROR_NODE_CREATION_FAILED: DWORD = 9703;
+pub const DNS_ERROR_UNKNOWN_RECORD_TYPE: DWORD = 9704;
+pub const DNS_ERROR_RECORD_TIMED_OUT: DWORD = 9705;
+pub const DNS_ERROR_NAME_NOT_IN_ZONE: DWORD = 9706;
+pub const DNS_ERROR_CNAME_LOOP: DWORD = 9707;
+pub const DNS_ERROR_NODE_IS_CNAME: DWORD = 9708;
+pub const DNS_ERROR_CNAME_COLLISION: DWORD = 9709;
+pub const DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT: DWORD = 9710;
+pub const DNS_ERROR_RECORD_ALREADY_EXISTS: DWORD = 9711;
+pub const DNS_ERROR_SECONDARY_DATA: DWORD = 9712;
+pub const DNS_ERROR_NO_CREATE_CACHE_DATA: DWORD = 9713;
+pub const DNS_ERROR_NAME_DOES_NOT_EXIST: DWORD = 9714;
+pub const DNS_WARNING_PTR_CREATE_FAILED: DWORD = 9715;
+pub const DNS_WARNING_DOMAIN_UNDELETED: DWORD = 9716;
+pub const DNS_ERROR_DS_UNAVAILABLE: DWORD = 9717;
+pub const DNS_ERROR_DS_ZONE_ALREADY_EXISTS: DWORD = 9718;
+pub const DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE: DWORD = 9719;
+pub const DNS_ERROR_NODE_IS_DNAME: DWORD = 9720;
+pub const DNS_ERROR_DNAME_COLLISION: DWORD = 9721;
+pub const DNS_ERROR_ALIAS_LOOP: DWORD = 9722;
+pub const DNS_ERROR_OPERATION_BASE: DWORD = 9750;
+pub const DNS_INFO_AXFR_COMPLETE: DWORD = 9751;
+pub const DNS_ERROR_AXFR: DWORD = 9752;
+pub const DNS_INFO_ADDED_LOCAL_WINS: DWORD = 9753;
+pub const DNS_ERROR_SECURE_BASE: DWORD = 9800;
+pub const DNS_STATUS_CONTINUE_NEEDED: DWORD = 9801;
+pub const DNS_ERROR_SETUP_BASE: DWORD = 9850;
+pub const DNS_ERROR_NO_TCPIP: DWORD = 9851;
+pub const DNS_ERROR_NO_DNS_SERVERS: DWORD = 9852;
+pub const DNS_ERROR_DP_BASE: DWORD = 9900;
+pub const DNS_ERROR_DP_DOES_NOT_EXIST: DWORD = 9901;
+pub const DNS_ERROR_DP_ALREADY_EXISTS: DWORD = 9902;
+pub const DNS_ERROR_DP_NOT_ENLISTED: DWORD = 9903;
+pub const DNS_ERROR_DP_ALREADY_ENLISTED: DWORD = 9904;
+pub const DNS_ERROR_DP_NOT_AVAILABLE: DWORD = 9905;
+pub const DNS_ERROR_DP_FSMO_ERROR: DWORD = 9906;
+pub const DNS_ERROR_ZONESCOPE_ALREADY_EXISTS: DWORD = 9951;
+pub const DNS_ERROR_ZONESCOPE_DOES_NOT_EXIST: DWORD = 9952;
+pub const DNS_ERROR_DEFAULT_ZONESCOPE: DWORD = 9953;
+pub const DNS_ERROR_INVALID_ZONESCOPE_NAME: DWORD = 9954;
+pub const DNS_ERROR_NOT_ALLOWED_WITH_ZONESCOPES: DWORD = 9955;
+pub const DNS_ERROR_LOAD_ZONESCOPE_FAILED: DWORD = 9956;
+pub const DNS_ERROR_ZONESCOPE_FILE_WRITEBACK_FAILED: DWORD = 9957;
+pub const DNS_ERROR_INVALID_SCOPE_NAME: DWORD = 9958;
+pub const DNS_ERROR_SCOPE_DOES_NOT_EXIST: DWORD = 9959;
+pub const DNS_ERROR_DEFAULT_SCOPE: DWORD = 9960;
+pub const DNS_ERROR_INVALID_SCOPE_OPERATION: DWORD = 9961;
+pub const DNS_ERROR_SCOPE_LOCKED: DWORD = 9962;
+pub const DNS_ERROR_SCOPE_ALREADY_EXISTS: DWORD = 9963;
+pub const WSABASEERR: DWORD = 10000;
+pub const WSAEINTR: DWORD = 10004;
+pub const WSAEBADF: DWORD = 10009;
+pub const WSAEACCES: DWORD = 10013;
+pub const WSAEFAULT: DWORD = 10014;
+pub const WSAEINVAL: DWORD = 10022;
+pub const WSAEMFILE: DWORD = 10024;
+pub const WSAEWOULDBLOCK: DWORD = 10035;
+pub const WSAEINPROGRESS: DWORD = 10036;
+pub const WSAEALREADY: DWORD = 10037;
+pub const WSAENOTSOCK: DWORD = 10038;
+pub const WSAEDESTADDRREQ: DWORD = 10039;
+pub const WSAEMSGSIZE: DWORD = 10040;
+pub const WSAEPROTOTYPE: DWORD = 10041;
+pub const WSAENOPROTOOPT: DWORD = 10042;
+pub const WSAEPROTONOSUPPORT: DWORD = 10043;
+pub const WSAESOCKTNOSUPPORT: DWORD = 10044;
+pub const WSAEOPNOTSUPP: DWORD = 10045;
+pub const WSAEPFNOSUPPORT: DWORD = 10046;
+pub const WSAEAFNOSUPPORT: DWORD = 10047;
+pub const WSAEADDRINUSE: DWORD = 10048;
+pub const WSAEADDRNOTAVAIL: DWORD = 10049;
+pub const WSAENETDOWN: DWORD = 10050;
+pub const WSAENETUNREACH: DWORD = 10051;
+pub const WSAENETRESET: DWORD = 10052;
+pub const WSAECONNABORTED: DWORD = 10053;
+pub const WSAECONNRESET: DWORD = 10054;
+pub const WSAENOBUFS: DWORD = 10055;
+pub const WSAEISCONN: DWORD = 10056;
+pub const WSAENOTCONN: DWORD = 10057;
+pub const WSAESHUTDOWN: DWORD = 10058;
+pub const WSAETOOMANYREFS: DWORD = 10059;
+pub const WSAETIMEDOUT: DWORD = 10060;
+pub const WSAECONNREFUSED: DWORD = 10061;
+pub const WSAELOOP: DWORD = 10062;
+pub const WSAENAMETOOLONG: DWORD = 10063;
+pub const WSAEHOSTDOWN: DWORD = 10064;
+pub const WSAEHOSTUNREACH: DWORD = 10065;
+pub const WSAENOTEMPTY: DWORD = 10066;
+pub const WSAEPROCLIM: DWORD = 10067;
+pub const WSAEUSERS: DWORD = 10068;
+pub const WSAEDQUOT: DWORD = 10069;
+pub const WSAESTALE: DWORD = 10070;
+pub const WSAEREMOTE: DWORD = 10071;
+pub const WSASYSNOTREADY: DWORD = 10091;
+pub const WSAVERNOTSUPPORTED: DWORD = 10092;
+pub const WSANOTINITIALISED: DWORD = 10093;
+pub const WSAEDISCON: DWORD = 10101;
+pub const WSAENOMORE: DWORD = 10102;
+pub const WSAECANCELLED: DWORD = 10103;
+pub const WSAEINVALIDPROCTABLE: DWORD = 10104;
+pub const WSAEINVALIDPROVIDER: DWORD = 10105;
+pub const WSAEPROVIDERFAILEDINIT: DWORD = 10106;
+pub const WSASYSCALLFAILURE: DWORD = 10107;
+pub const WSASERVICE_NOT_FOUND: DWORD = 10108;
+pub const WSATYPE_NOT_FOUND: DWORD = 10109;
+pub const WSA_E_NO_MORE: DWORD = 10110;
+pub const WSA_E_CANCELLED: DWORD = 10111;
+pub const WSAEREFUSED: DWORD = 10112;
+pub const WSAHOST_NOT_FOUND: DWORD = 11001;
+pub const WSATRY_AGAIN: DWORD = 11002;
+pub const WSANO_RECOVERY: DWORD = 11003;
+pub const WSANO_DATA: DWORD = 11004;
+pub const WSA_QOS_RECEIVERS: DWORD = 11005;
+pub const WSA_QOS_SENDERS: DWORD = 11006;
+pub const WSA_QOS_NO_SENDERS: DWORD = 11007;
+pub const WSA_QOS_NO_RECEIVERS: DWORD = 11008;
+pub const WSA_QOS_REQUEST_CONFIRMED: DWORD = 11009;
+pub const WSA_QOS_ADMISSION_FAILURE: DWORD = 11010;
+pub const WSA_QOS_POLICY_FAILURE: DWORD = 11011;
+pub const WSA_QOS_BAD_STYLE: DWORD = 11012;
+pub const WSA_QOS_BAD_OBJECT: DWORD = 11013;
+pub const WSA_QOS_TRAFFIC_CTRL_ERROR: DWORD = 11014;
+pub const WSA_QOS_GENERIC_ERROR: DWORD = 11015;
+pub const WSA_QOS_ESERVICETYPE: DWORD = 11016;
+pub const WSA_QOS_EFLOWSPEC: DWORD = 11017;
+pub const WSA_QOS_EPROVSPECBUF: DWORD = 11018;
+pub const WSA_QOS_EFILTERSTYLE: DWORD = 11019;
+pub const WSA_QOS_EFILTERTYPE: DWORD = 11020;
+pub const WSA_QOS_EFILTERCOUNT: DWORD = 11021;
+pub const WSA_QOS_EOBJLENGTH: DWORD = 11022;
+pub const WSA_QOS_EFLOWCOUNT: DWORD = 11023;
+pub const WSA_QOS_EUNKOWNPSOBJ: DWORD = 11024;
+pub const WSA_QOS_EPOLICYOBJ: DWORD = 11025;
+pub const WSA_QOS_EFLOWDESC: DWORD = 11026;
+pub const WSA_QOS_EPSFLOWSPEC: DWORD = 11027;
+pub const WSA_QOS_EPSFILTERSPEC: DWORD = 11028;
+pub const WSA_QOS_ESDMODEOBJ: DWORD = 11029;
+pub const WSA_QOS_ESHAPERATEOBJ: DWORD = 11030;
+pub const WSA_QOS_RESERVED_PETYPE: DWORD = 11031;
+pub const WSA_SECURE_HOST_NOT_FOUND: DWORD = 11032;
+pub const WSA_IPSEC_NAME_POLICY_ERROR: DWORD = 11033;
+pub const ERROR_IPSEC_QM_POLICY_EXISTS: DWORD = 13000;
+pub const ERROR_IPSEC_QM_POLICY_NOT_FOUND: DWORD = 13001;
+pub const ERROR_IPSEC_QM_POLICY_IN_USE: DWORD = 13002;
+pub const ERROR_IPSEC_MM_POLICY_EXISTS: DWORD = 13003;
+pub const ERROR_IPSEC_MM_POLICY_NOT_FOUND: DWORD = 13004;
+pub const ERROR_IPSEC_MM_POLICY_IN_USE: DWORD = 13005;
+pub const ERROR_IPSEC_MM_FILTER_EXISTS: DWORD = 13006;
+pub const ERROR_IPSEC_MM_FILTER_NOT_FOUND: DWORD = 13007;
+pub const ERROR_IPSEC_TRANSPORT_FILTER_EXISTS: DWORD = 13008;
+pub const ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND: DWORD = 13009;
+pub const ERROR_IPSEC_MM_AUTH_EXISTS: DWORD = 13010;
+pub const ERROR_IPSEC_MM_AUTH_NOT_FOUND: DWORD = 13011;
+pub const ERROR_IPSEC_MM_AUTH_IN_USE: DWORD = 13012;
+pub const ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND: DWORD = 13013;
+pub const ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND: DWORD = 13014;
+pub const ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND: DWORD = 13015;
+pub const ERROR_IPSEC_TUNNEL_FILTER_EXISTS: DWORD = 13016;
+pub const ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND: DWORD = 13017;
+pub const ERROR_IPSEC_MM_FILTER_PENDING_DELETION: DWORD = 13018;
+pub const ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION: DWORD = 13019;
+pub const ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION: DWORD = 13020;
+pub const ERROR_IPSEC_MM_POLICY_PENDING_DELETION: DWORD = 13021;
+pub const ERROR_IPSEC_MM_AUTH_PENDING_DELETION: DWORD = 13022;
+pub const ERROR_IPSEC_QM_POLICY_PENDING_DELETION: DWORD = 13023;
+pub const WARNING_IPSEC_MM_POLICY_PRUNED: DWORD = 13024;
+pub const WARNING_IPSEC_QM_POLICY_PRUNED: DWORD = 13025;
+pub const ERROR_IPSEC_IKE_NEG_STATUS_BEGIN: DWORD = 13800;
+pub const ERROR_IPSEC_IKE_AUTH_FAIL: DWORD = 13801;
+pub const ERROR_IPSEC_IKE_ATTRIB_FAIL: DWORD = 13802;
+pub const ERROR_IPSEC_IKE_NEGOTIATION_PENDING: DWORD = 13803;
+pub const ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR: DWORD = 13804;
+pub const ERROR_IPSEC_IKE_TIMED_OUT: DWORD = 13805;
+pub const ERROR_IPSEC_IKE_NO_CERT: DWORD = 13806;
+pub const ERROR_IPSEC_IKE_SA_DELETED: DWORD = 13807;
+pub const ERROR_IPSEC_IKE_SA_REAPED: DWORD = 13808;
+pub const ERROR_IPSEC_IKE_MM_ACQUIRE_DROP: DWORD = 13809;
+pub const ERROR_IPSEC_IKE_QM_ACQUIRE_DROP: DWORD = 13810;
+pub const ERROR_IPSEC_IKE_QUEUE_DROP_MM: DWORD = 13811;
+pub const ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM: DWORD = 13812;
+pub const ERROR_IPSEC_IKE_DROP_NO_RESPONSE: DWORD = 13813;
+pub const ERROR_IPSEC_IKE_MM_DELAY_DROP: DWORD = 13814;
+pub const ERROR_IPSEC_IKE_QM_DELAY_DROP: DWORD = 13815;
+pub const ERROR_IPSEC_IKE_ERROR: DWORD = 13816;
+pub const ERROR_IPSEC_IKE_CRL_FAILED: DWORD = 13817;
+pub const ERROR_IPSEC_IKE_INVALID_KEY_USAGE: DWORD = 13818;
+pub const ERROR_IPSEC_IKE_INVALID_CERT_TYPE: DWORD = 13819;
+pub const ERROR_IPSEC_IKE_NO_PRIVATE_KEY: DWORD = 13820;
+pub const ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY: DWORD = 13821;
+pub const ERROR_IPSEC_IKE_DH_FAIL: DWORD = 13822;
+pub const ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED: DWORD = 13823;
+pub const ERROR_IPSEC_IKE_INVALID_HEADER: DWORD = 13824;
+pub const ERROR_IPSEC_IKE_NO_POLICY: DWORD = 13825;
+pub const ERROR_IPSEC_IKE_INVALID_SIGNATURE: DWORD = 13826;
+pub const ERROR_IPSEC_IKE_KERBEROS_ERROR: DWORD = 13827;
+pub const ERROR_IPSEC_IKE_NO_PUBLIC_KEY: DWORD = 13828;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR: DWORD = 13829;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_SA: DWORD = 13830;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_PROP: DWORD = 13831;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_TRANS: DWORD = 13832;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_KE: DWORD = 13833;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_ID: DWORD = 13834;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT: DWORD = 13835;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ: DWORD = 13836;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_HASH: DWORD = 13837;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_SIG: DWORD = 13838;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_NONCE: DWORD = 13839;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY: DWORD = 13840;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_DELETE: DWORD = 13841;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR: DWORD = 13842;
+pub const ERROR_IPSEC_IKE_INVALID_PAYLOAD: DWORD = 13843;
+pub const ERROR_IPSEC_IKE_LOAD_SOFT_SA: DWORD = 13844;
+pub const ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN: DWORD = 13845;
+pub const ERROR_IPSEC_IKE_INVALID_COOKIE: DWORD = 13846;
+pub const ERROR_IPSEC_IKE_NO_PEER_CERT: DWORD = 13847;
+pub const ERROR_IPSEC_IKE_PEER_CRL_FAILED: DWORD = 13848;
+pub const ERROR_IPSEC_IKE_POLICY_CHANGE: DWORD = 13849;
+pub const ERROR_IPSEC_IKE_NO_MM_POLICY: DWORD = 13850;
+pub const ERROR_IPSEC_IKE_NOTCBPRIV: DWORD = 13851;
+pub const ERROR_IPSEC_IKE_SECLOADFAIL: DWORD = 13852;
+pub const ERROR_IPSEC_IKE_FAILSSPINIT: DWORD = 13853;
+pub const ERROR_IPSEC_IKE_FAILQUERYSSP: DWORD = 13854;
+pub const ERROR_IPSEC_IKE_SRVACQFAIL: DWORD = 13855;
+pub const ERROR_IPSEC_IKE_SRVQUERYCRED: DWORD = 13856;
+pub const ERROR_IPSEC_IKE_GETSPIFAIL: DWORD = 13857;
+pub const ERROR_IPSEC_IKE_INVALID_FILTER: DWORD = 13858;
+pub const ERROR_IPSEC_IKE_OUT_OF_MEMORY: DWORD = 13859;
+pub const ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED: DWORD = 13860;
+pub const ERROR_IPSEC_IKE_INVALID_POLICY: DWORD = 13861;
+pub const ERROR_IPSEC_IKE_UNKNOWN_DOI: DWORD = 13862;
+pub const ERROR_IPSEC_IKE_INVALID_SITUATION: DWORD = 13863;
+pub const ERROR_IPSEC_IKE_DH_FAILURE: DWORD = 13864;
+pub const ERROR_IPSEC_IKE_INVALID_GROUP: DWORD = 13865;
+pub const ERROR_IPSEC_IKE_ENCRYPT: DWORD = 13866;
+pub const ERROR_IPSEC_IKE_DECRYPT: DWORD = 13867;
+pub const ERROR_IPSEC_IKE_POLICY_MATCH: DWORD = 13868;
+pub const ERROR_IPSEC_IKE_UNSUPPORTED_ID: DWORD = 13869;
+pub const ERROR_IPSEC_IKE_INVALID_HASH: DWORD = 13870;
+pub const ERROR_IPSEC_IKE_INVALID_HASH_ALG: DWORD = 13871;
+pub const ERROR_IPSEC_IKE_INVALID_HASH_SIZE: DWORD = 13872;
+pub const ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG: DWORD = 13873;
+pub const ERROR_IPSEC_IKE_INVALID_AUTH_ALG: DWORD = 13874;
+pub const ERROR_IPSEC_IKE_INVALID_SIG: DWORD = 13875;
+pub const ERROR_IPSEC_IKE_LOAD_FAILED: DWORD = 13876;
+pub const ERROR_IPSEC_IKE_RPC_DELETE: DWORD = 13877;
+pub const ERROR_IPSEC_IKE_BENIGN_REINIT: DWORD = 13878;
+pub const ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY: DWORD = 13879;
+pub const ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION: DWORD = 13880;
+pub const ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN: DWORD = 13881;
+pub const ERROR_IPSEC_IKE_MM_LIMIT: DWORD = 13882;
+pub const ERROR_IPSEC_IKE_NEGOTIATION_DISABLED: DWORD = 13883;
+pub const ERROR_IPSEC_IKE_QM_LIMIT: DWORD = 13884;
+pub const ERROR_IPSEC_IKE_MM_EXPIRED: DWORD = 13885;
+pub const ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID: DWORD = 13886;
+pub const ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH: DWORD = 13887;
+pub const ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID: DWORD = 13888;
+pub const ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD: DWORD = 13889;
+pub const ERROR_IPSEC_IKE_DOS_COOKIE_SENT: DWORD = 13890;
+pub const ERROR_IPSEC_IKE_SHUTTING_DOWN: DWORD = 13891;
+pub const ERROR_IPSEC_IKE_CGA_AUTH_FAILED: DWORD = 13892;
+pub const ERROR_IPSEC_IKE_PROCESS_ERR_NATOA: DWORD = 13893;
+pub const ERROR_IPSEC_IKE_INVALID_MM_FOR_QM: DWORD = 13894;
+pub const ERROR_IPSEC_IKE_QM_EXPIRED: DWORD = 13895;
+pub const ERROR_IPSEC_IKE_TOO_MANY_FILTERS: DWORD = 13896;
+pub const ERROR_IPSEC_IKE_NEG_STATUS_END: DWORD = 13897;
+pub const ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL: DWORD = 13898;
+pub const ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE: DWORD = 13899;
+pub const ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING: DWORD = 13900;
+pub const ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING: DWORD = 13901;
+pub const ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS: DWORD = 13902;
+pub const ERROR_IPSEC_IKE_RATELIMIT_DROP: DWORD = 13903;
+pub const ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE: DWORD = 13904;
+pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE: DWORD = 13905;
+pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE: DWORD = 13906;
+pub const ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY: DWORD = 13907;
+pub const ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE: DWORD = 13908;
+pub const ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END: DWORD = 13909;
+pub const ERROR_IPSEC_BAD_SPI: DWORD = 13910;
+pub const ERROR_IPSEC_SA_LIFETIME_EXPIRED: DWORD = 13911;
+pub const ERROR_IPSEC_WRONG_SA: DWORD = 13912;
+pub const ERROR_IPSEC_REPLAY_CHECK_FAILED: DWORD = 13913;
+pub const ERROR_IPSEC_INVALID_PACKET: DWORD = 13914;
+pub const ERROR_IPSEC_INTEGRITY_CHECK_FAILED: DWORD = 13915;
+pub const ERROR_IPSEC_CLEAR_TEXT_DROP: DWORD = 13916;
+pub const ERROR_IPSEC_AUTH_FIREWALL_DROP: DWORD = 13917;
+pub const ERROR_IPSEC_THROTTLE_DROP: DWORD = 13918;
+pub const ERROR_IPSEC_DOSP_BLOCK: DWORD = 13925;
+pub const ERROR_IPSEC_DOSP_RECEIVED_MULTICAST: DWORD = 13926;
+pub const ERROR_IPSEC_DOSP_INVALID_PACKET: DWORD = 13927;
+pub const ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED: DWORD = 13928;
+pub const ERROR_IPSEC_DOSP_MAX_ENTRIES: DWORD = 13929;
+pub const ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED: DWORD = 13930;
+pub const ERROR_IPSEC_DOSP_NOT_INSTALLED: DWORD = 13931;
+pub const ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES: DWORD = 13932;
+pub const ERROR_SXS_SECTION_NOT_FOUND: DWORD = 14000;
+pub const ERROR_SXS_CANT_GEN_ACTCTX: DWORD = 14001;
+pub const ERROR_SXS_INVALID_ACTCTXDATA_FORMAT: DWORD = 14002;
+pub const ERROR_SXS_ASSEMBLY_NOT_FOUND: DWORD = 14003;
+pub const ERROR_SXS_MANIFEST_FORMAT_ERROR: DWORD = 14004;
+pub const ERROR_SXS_MANIFEST_PARSE_ERROR: DWORD = 14005;
+pub const ERROR_SXS_ACTIVATION_CONTEXT_DISABLED: DWORD = 14006;
+pub const ERROR_SXS_KEY_NOT_FOUND: DWORD = 14007;
+pub const ERROR_SXS_VERSION_CONFLICT: DWORD = 14008;
+pub const ERROR_SXS_WRONG_SECTION_TYPE: DWORD = 14009;
+pub const ERROR_SXS_THREAD_QUERIES_DISABLED: DWORD = 14010;
+pub const ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET: DWORD = 14011;
+pub const ERROR_SXS_UNKNOWN_ENCODING_GROUP: DWORD = 14012;
+pub const ERROR_SXS_UNKNOWN_ENCODING: DWORD = 14013;
+pub const ERROR_SXS_INVALID_XML_NAMESPACE_URI: DWORD = 14014;
+pub const ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED: DWORD = 14015;
+pub const ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED: DWORD = 14016;
+pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE: DWORD = 14017;
+pub const ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE: DWORD = 14018;
+pub const ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE: DWORD = 14019;
+pub const ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT: DWORD = 14020;
+pub const ERROR_SXS_DUPLICATE_DLL_NAME: DWORD = 14021;
+pub const ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME: DWORD = 14022;
+pub const ERROR_SXS_DUPLICATE_CLSID: DWORD = 14023;
+pub const ERROR_SXS_DUPLICATE_IID: DWORD = 14024;
+pub const ERROR_SXS_DUPLICATE_TLBID: DWORD = 14025;
+pub const ERROR_SXS_DUPLICATE_PROGID: DWORD = 14026;
+pub const ERROR_SXS_DUPLICATE_ASSEMBLY_NAME: DWORD = 14027;
+pub const ERROR_SXS_FILE_HASH_MISMATCH: DWORD = 14028;
+pub const ERROR_SXS_POLICY_PARSE_ERROR: DWORD = 14029;
+pub const ERROR_SXS_XML_E_MISSINGQUOTE: DWORD = 14030;
+pub const ERROR_SXS_XML_E_COMMENTSYNTAX: DWORD = 14031;
+pub const ERROR_SXS_XML_E_BADSTARTNAMECHAR: DWORD = 14032;
+pub const ERROR_SXS_XML_E_BADNAMECHAR: DWORD = 14033;
+pub const ERROR_SXS_XML_E_BADCHARINSTRING: DWORD = 14034;
+pub const ERROR_SXS_XML_E_XMLDECLSYNTAX: DWORD = 14035;
+pub const ERROR_SXS_XML_E_BADCHARDATA: DWORD = 14036;
+pub const ERROR_SXS_XML_E_MISSINGWHITESPACE: DWORD = 14037;
+pub const ERROR_SXS_XML_E_EXPECTINGTAGEND: DWORD = 14038;
+pub const ERROR_SXS_XML_E_MISSINGSEMICOLON: DWORD = 14039;
+pub const ERROR_SXS_XML_E_UNBALANCEDPAREN: DWORD = 14040;
+pub const ERROR_SXS_XML_E_INTERNALERROR: DWORD = 14041;
+pub const ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE: DWORD = 14042;
+pub const ERROR_SXS_XML_E_INCOMPLETE_ENCODING: DWORD = 14043;
+pub const ERROR_SXS_XML_E_MISSING_PAREN: DWORD = 14044;
+pub const ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE: DWORD = 14045;
+pub const ERROR_SXS_XML_E_MULTIPLE_COLONS: DWORD = 14046;
+pub const ERROR_SXS_XML_E_INVALID_DECIMAL: DWORD = 14047;
+pub const ERROR_SXS_XML_E_INVALID_HEXIDECIMAL: DWORD = 14048;
+pub const ERROR_SXS_XML_E_INVALID_UNICODE: DWORD = 14049;
+pub const ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK: DWORD = 14050;
+pub const ERROR_SXS_XML_E_UNEXPECTEDENDTAG: DWORD = 14051;
+pub const ERROR_SXS_XML_E_UNCLOSEDTAG: DWORD = 14052;
+pub const ERROR_SXS_XML_E_DUPLICATEATTRIBUTE: DWORD = 14053;
+pub const ERROR_SXS_XML_E_MULTIPLEROOTS: DWORD = 14054;
+pub const ERROR_SXS_XML_E_INVALIDATROOTLEVEL: DWORD = 14055;
+pub const ERROR_SXS_XML_E_BADXMLDECL: DWORD = 14056;
+pub const ERROR_SXS_XML_E_MISSINGROOT: DWORD = 14057;
+pub const ERROR_SXS_XML_E_UNEXPECTEDEOF: DWORD = 14058;
+pub const ERROR_SXS_XML_E_BADPEREFINSUBSET: DWORD = 14059;
+pub const ERROR_SXS_XML_E_UNCLOSEDSTARTTAG: DWORD = 14060;
+pub const ERROR_SXS_XML_E_UNCLOSEDENDTAG: DWORD = 14061;
+pub const ERROR_SXS_XML_E_UNCLOSEDSTRING: DWORD = 14062;
+pub const ERROR_SXS_XML_E_UNCLOSEDCOMMENT: DWORD = 14063;
+pub const ERROR_SXS_XML_E_UNCLOSEDDECL: DWORD = 14064;
+pub const ERROR_SXS_XML_E_UNCLOSEDCDATA: DWORD = 14065;
+pub const ERROR_SXS_XML_E_RESERVEDNAMESPACE: DWORD = 14066;
+pub const ERROR_SXS_XML_E_INVALIDENCODING: DWORD = 14067;
+pub const ERROR_SXS_XML_E_INVALIDSWITCH: DWORD = 14068;
+pub const ERROR_SXS_XML_E_BADXMLCASE: DWORD = 14069;
+pub const ERROR_SXS_XML_E_INVALID_STANDALONE: DWORD = 14070;
+pub const ERROR_SXS_XML_E_UNEXPECTED_STANDALONE: DWORD = 14071;
+pub const ERROR_SXS_XML_E_INVALID_VERSION: DWORD = 14072;
+pub const ERROR_SXS_XML_E_MISSINGEQUALS: DWORD = 14073;
+pub const ERROR_SXS_PROTECTION_RECOVERY_FAILED: DWORD = 14074;
+pub const ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT: DWORD = 14075;
+pub const ERROR_SXS_PROTECTION_CATALOG_NOT_VALID: DWORD = 14076;
+pub const ERROR_SXS_UNTRANSLATABLE_HRESULT: DWORD = 14077;
+pub const ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING: DWORD = 14078;
+pub const ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE: DWORD = 14079;
+pub const ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME: DWORD = 14080;
+pub const ERROR_SXS_ASSEMBLY_MISSING: DWORD = 14081;
+pub const ERROR_SXS_CORRUPT_ACTIVATION_STACK: DWORD = 14082;
+pub const ERROR_SXS_CORRUPTION: DWORD = 14083;
+pub const ERROR_SXS_EARLY_DEACTIVATION: DWORD = 14084;
+pub const ERROR_SXS_INVALID_DEACTIVATION: DWORD = 14085;
+pub const ERROR_SXS_MULTIPLE_DEACTIVATION: DWORD = 14086;
+pub const ERROR_SXS_PROCESS_TERMINATION_REQUESTED: DWORD = 14087;
+pub const ERROR_SXS_RELEASE_ACTIVATION_CONTEXT: DWORD = 14088;
+pub const ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY: DWORD = 14089;
+pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE: DWORD = 14090;
+pub const ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME: DWORD = 14091;
+pub const ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE: DWORD = 14092;
+pub const ERROR_SXS_IDENTITY_PARSE_ERROR: DWORD = 14093;
+pub const ERROR_MALFORMED_SUBSTITUTION_STRING: DWORD = 14094;
+pub const ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN: DWORD = 14095;
+pub const ERROR_UNMAPPED_SUBSTITUTION_STRING: DWORD = 14096;
+pub const ERROR_SXS_ASSEMBLY_NOT_LOCKED: DWORD = 14097;
+pub const ERROR_SXS_COMPONENT_STORE_CORRUPT: DWORD = 14098;
+pub const ERROR_ADVANCED_INSTALLER_FAILED: DWORD = 14099;
+pub const ERROR_XML_ENCODING_MISMATCH: DWORD = 14100;
+pub const ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT: DWORD = 14101;
+pub const ERROR_SXS_IDENTITIES_DIFFERENT: DWORD = 14102;
+pub const ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT: DWORD = 14103;
+pub const ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY: DWORD = 14104;
+pub const ERROR_SXS_MANIFEST_TOO_BIG: DWORD = 14105;
+pub const ERROR_SXS_SETTING_NOT_REGISTERED: DWORD = 14106;
+pub const ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE: DWORD = 14107;
+pub const ERROR_SMI_PRIMITIVE_INSTALLER_FAILED: DWORD = 14108;
+pub const ERROR_GENERIC_COMMAND_FAILED: DWORD = 14109;
+pub const ERROR_SXS_FILE_HASH_MISSING: DWORD = 14110;
+pub const ERROR_EVT_INVALID_CHANNEL_PATH: DWORD = 15000;
+pub const ERROR_EVT_INVALID_QUERY: DWORD = 15001;
+pub const ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND: DWORD = 15002;
+pub const ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND: DWORD = 15003;
+pub const ERROR_EVT_INVALID_PUBLISHER_NAME: DWORD = 15004;
+pub const ERROR_EVT_INVALID_EVENT_DATA: DWORD = 15005;
+pub const ERROR_EVT_CHANNEL_NOT_FOUND: DWORD = 15007;
+pub const ERROR_EVT_MALFORMED_XML_TEXT: DWORD = 15008;
+pub const ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL: DWORD = 15009;
+pub const ERROR_EVT_CONFIGURATION_ERROR: DWORD = 15010;
+pub const ERROR_EVT_QUERY_RESULT_STALE: DWORD = 15011;
+pub const ERROR_EVT_QUERY_RESULT_INVALID_POSITION: DWORD = 15012;
+pub const ERROR_EVT_NON_VALIDATING_MSXML: DWORD = 15013;
+pub const ERROR_EVT_FILTER_ALREADYSCOPED: DWORD = 15014;
+pub const ERROR_EVT_FILTER_NOTELTSET: DWORD = 15015;
+pub const ERROR_EVT_FILTER_INVARG: DWORD = 15016;
+pub const ERROR_EVT_FILTER_INVTEST: DWORD = 15017;
+pub const ERROR_EVT_FILTER_INVTYPE: DWORD = 15018;
+pub const ERROR_EVT_FILTER_PARSEERR: DWORD = 15019;
+pub const ERROR_EVT_FILTER_UNSUPPORTEDOP: DWORD = 15020;
+pub const ERROR_EVT_FILTER_UNEXPECTEDTOKEN: DWORD = 15021;
+pub const ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL: DWORD = 15022;
+pub const ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE: DWORD = 15023;
+pub const ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE: DWORD = 15024;
+pub const ERROR_EVT_CHANNEL_CANNOT_ACTIVATE: DWORD = 15025;
+pub const ERROR_EVT_FILTER_TOO_COMPLEX: DWORD = 15026;
+pub const ERROR_EVT_MESSAGE_NOT_FOUND: DWORD = 15027;
+pub const ERROR_EVT_MESSAGE_ID_NOT_FOUND: DWORD = 15028;
+pub const ERROR_EVT_UNRESOLVED_VALUE_INSERT: DWORD = 15029;
+pub const ERROR_EVT_UNRESOLVED_PARAMETER_INSERT: DWORD = 15030;
+pub const ERROR_EVT_MAX_INSERTS_REACHED: DWORD = 15031;
+pub const ERROR_EVT_EVENT_DEFINITION_NOT_FOUND: DWORD = 15032;
+pub const ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND: DWORD = 15033;
+pub const ERROR_EVT_VERSION_TOO_OLD: DWORD = 15034;
+pub const ERROR_EVT_VERSION_TOO_NEW: DWORD = 15035;
+pub const ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY: DWORD = 15036;
+pub const ERROR_EVT_PUBLISHER_DISABLED: DWORD = 15037;
+pub const ERROR_EVT_FILTER_OUT_OF_RANGE: DWORD = 15038;
+pub const ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE: DWORD = 15080;
+pub const ERROR_EC_LOG_DISABLED: DWORD = 15081;
+pub const ERROR_EC_CIRCULAR_FORWARDING: DWORD = 15082;
+pub const ERROR_EC_CREDSTORE_FULL: DWORD = 15083;
+pub const ERROR_EC_CRED_NOT_FOUND: DWORD = 15084;
+pub const ERROR_EC_NO_ACTIVE_CHANNEL: DWORD = 15085;
+pub const ERROR_MUI_FILE_NOT_FOUND: DWORD = 15100;
+pub const ERROR_MUI_INVALID_FILE: DWORD = 15101;
+pub const ERROR_MUI_INVALID_RC_CONFIG: DWORD = 15102;
+pub const ERROR_MUI_INVALID_LOCALE_NAME: DWORD = 15103;
+pub const ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME: DWORD = 15104;
+pub const ERROR_MUI_FILE_NOT_LOADED: DWORD = 15105;
+pub const ERROR_RESOURCE_ENUM_USER_STOP: DWORD = 15106;
+pub const ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED: DWORD = 15107;
+pub const ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME: DWORD = 15108;
+pub const ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE: DWORD = 15110;
+pub const ERROR_MRM_INVALID_PRICONFIG: DWORD = 15111;
+pub const ERROR_MRM_INVALID_FILE_TYPE: DWORD = 15112;
+pub const ERROR_MRM_UNKNOWN_QUALIFIER: DWORD = 15113;
+pub const ERROR_MRM_INVALID_QUALIFIER_VALUE: DWORD = 15114;
+pub const ERROR_MRM_NO_CANDIDATE: DWORD = 15115;
+pub const ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE: DWORD = 15116;
+pub const ERROR_MRM_RESOURCE_TYPE_MISMATCH: DWORD = 15117;
+pub const ERROR_MRM_DUPLICATE_MAP_NAME: DWORD = 15118;
+pub const ERROR_MRM_DUPLICATE_ENTRY: DWORD = 15119;
+pub const ERROR_MRM_INVALID_RESOURCE_IDENTIFIER: DWORD = 15120;
+pub const ERROR_MRM_FILEPATH_TOO_LONG: DWORD = 15121;
+pub const ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE: DWORD = 15122;
+pub const ERROR_MRM_INVALID_PRI_FILE: DWORD = 15126;
+pub const ERROR_MRM_NAMED_RESOURCE_NOT_FOUND: DWORD = 15127;
+pub const ERROR_MRM_MAP_NOT_FOUND: DWORD = 15135;
+pub const ERROR_MRM_UNSUPPORTED_PROFILE_TYPE: DWORD = 15136;
+pub const ERROR_MRM_INVALID_QUALIFIER_OPERATOR: DWORD = 15137;
+pub const ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE: DWORD = 15138;
+pub const ERROR_MRM_AUTOMERGE_ENABLED: DWORD = 15139;
+pub const ERROR_MRM_TOO_MANY_RESOURCES: DWORD = 15140;
+pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE: DWORD = 15141;
+pub const ERROR_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE: DWORD = 15142;
+pub const ERROR_MRM_NO_CURRENT_VIEW_ON_THREAD: DWORD = 15143;
+pub const ERROR_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST: DWORD = 15144;
+pub const ERROR_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT: DWORD = 15145;
+pub const ERROR_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE: DWORD = 15146;
+pub const ERROR_MRM_GENERATION_COUNT_MISMATCH: DWORD = 15147;
+pub const ERROR_MCA_INVALID_CAPABILITIES_STRING: DWORD = 15200;
+pub const ERROR_MCA_INVALID_VCP_VERSION: DWORD = 15201;
+pub const ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION: DWORD = 15202;
+pub const ERROR_MCA_MCCS_VERSION_MISMATCH: DWORD = 15203;
+pub const ERROR_MCA_UNSUPPORTED_MCCS_VERSION: DWORD = 15204;
+pub const ERROR_MCA_INTERNAL_ERROR: DWORD = 15205;
+pub const ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED: DWORD = 15206;
+pub const ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE: DWORD = 15207;
+pub const ERROR_AMBIGUOUS_SYSTEM_DEVICE: DWORD = 15250;
+pub const ERROR_SYSTEM_DEVICE_NOT_FOUND: DWORD = 15299;
+pub const ERROR_HASH_NOT_SUPPORTED: DWORD = 15300;
+pub const ERROR_HASH_NOT_PRESENT: DWORD = 15301;
+pub const ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED: DWORD = 15321;
+pub const ERROR_GPIO_CLIENT_INFORMATION_INVALID: DWORD = 15322;
+pub const ERROR_GPIO_VERSION_NOT_SUPPORTED: DWORD = 15323;
+pub const ERROR_GPIO_INVALID_REGISTRATION_PACKET: DWORD = 15324;
+pub const ERROR_GPIO_OPERATION_DENIED: DWORD = 15325;
+pub const ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE: DWORD = 15326;
+pub const ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED: DWORD = 15327;
+pub const ERROR_CANNOT_SWITCH_RUNLEVEL: DWORD = 15400;
+pub const ERROR_INVALID_RUNLEVEL_SETTING: DWORD = 15401;
+pub const ERROR_RUNLEVEL_SWITCH_TIMEOUT: DWORD = 15402;
+pub const ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT: DWORD = 15403;
+pub const ERROR_RUNLEVEL_SWITCH_IN_PROGRESS: DWORD = 15404;
+pub const ERROR_SERVICES_FAILED_AUTOSTART: DWORD = 15405;
+pub const ERROR_COM_TASK_STOP_PENDING: DWORD = 15501;
+pub const ERROR_INSTALL_OPEN_PACKAGE_FAILED: DWORD = 15600;
+pub const ERROR_INSTALL_PACKAGE_NOT_FOUND: DWORD = 15601;
+pub const ERROR_INSTALL_INVALID_PACKAGE: DWORD = 15602;
+pub const ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED: DWORD = 15603;
+pub const ERROR_INSTALL_OUT_OF_DISK_SPACE: DWORD = 15604;
+pub const ERROR_INSTALL_NETWORK_FAILURE: DWORD = 15605;
+pub const ERROR_INSTALL_REGISTRATION_FAILURE: DWORD = 15606;
+pub const ERROR_INSTALL_DEREGISTRATION_FAILURE: DWORD = 15607;
+pub const ERROR_INSTALL_CANCEL: DWORD = 15608;
+pub const ERROR_INSTALL_FAILED: DWORD = 15609;
+pub const ERROR_REMOVE_FAILED: DWORD = 15610;
+pub const ERROR_PACKAGE_ALREADY_EXISTS: DWORD = 15611;
+pub const ERROR_NEEDS_REMEDIATION: DWORD = 15612;
+pub const ERROR_INSTALL_PREREQUISITE_FAILED: DWORD = 15613;
+pub const ERROR_PACKAGE_REPOSITORY_CORRUPTED: DWORD = 15614;
+pub const ERROR_INSTALL_POLICY_FAILURE: DWORD = 15615;
+pub const ERROR_PACKAGE_UPDATING: DWORD = 15616;
+pub const ERROR_DEPLOYMENT_BLOCKED_BY_POLICY: DWORD = 15617;
+pub const ERROR_PACKAGES_IN_USE: DWORD = 15618;
+pub const ERROR_RECOVERY_FILE_CORRUPT: DWORD = 15619;
+pub const ERROR_INVALID_STAGED_SIGNATURE: DWORD = 15620;
+pub const ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED: DWORD = 15621;
+pub const ERROR_INSTALL_PACKAGE_DOWNGRADE: DWORD = 15622;
+pub const ERROR_SYSTEM_NEEDS_REMEDIATION: DWORD = 15623;
+pub const ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN: DWORD = 15624;
+pub const ERROR_RESILIENCY_FILE_CORRUPT: DWORD = 15625;
+pub const ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING: DWORD = 15626;
+pub const APPMODEL_ERROR_NO_PACKAGE: DWORD = 15700;
+pub const APPMODEL_ERROR_PACKAGE_RUNTIME_CORRUPT: DWORD = 15701;
+pub const APPMODEL_ERROR_PACKAGE_IDENTITY_CORRUPT: DWORD = 15702;
+pub const APPMODEL_ERROR_NO_APPLICATION: DWORD = 15703;
+pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_READ_FAILED: DWORD = 15704;
+pub const APPMODEL_ERROR_DYNAMIC_PROPERTY_INVALID: DWORD = 15705;
+pub const ERROR_STATE_LOAD_STORE_FAILED: DWORD = 15800;
+pub const ERROR_STATE_GET_VERSION_FAILED: DWORD = 15801;
+pub const ERROR_STATE_SET_VERSION_FAILED: DWORD = 15802;
+pub const ERROR_STATE_STRUCTURED_RESET_FAILED: DWORD = 15803;
+pub const ERROR_STATE_OPEN_CONTAINER_FAILED: DWORD = 15804;
+pub const ERROR_STATE_CREATE_CONTAINER_FAILED: DWORD = 15805;
+pub const ERROR_STATE_DELETE_CONTAINER_FAILED: DWORD = 15806;
+pub const ERROR_STATE_READ_SETTING_FAILED: DWORD = 15807;
+pub const ERROR_STATE_WRITE_SETTING_FAILED: DWORD = 15808;
+pub const ERROR_STATE_DELETE_SETTING_FAILED: DWORD = 15809;
+pub const ERROR_STATE_QUERY_SETTING_FAILED: DWORD = 15810;
+pub const ERROR_STATE_READ_COMPOSITE_SETTING_FAILED: DWORD = 15811;
+pub const ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED: DWORD = 15812;
+pub const ERROR_STATE_ENUMERATE_CONTAINER_FAILED: DWORD = 15813;
+pub const ERROR_STATE_ENUMERATE_SETTINGS_FAILED: DWORD = 15814;
+pub const ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: DWORD = 15815;
+pub const ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED: DWORD = 15816;
+pub const ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED: DWORD = 15817;
+pub const ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED: DWORD = 15818;
+pub const ERROR_API_UNAVAILABLE: DWORD = 15841;
+pub const STORE_ERROR_UNLICENSED: DWORD = 15861;
+pub const STORE_ERROR_UNLICENSED_USER: DWORD = 15862;
+pub const STORE_ERROR_PENDING_COM_TRANSACTION: DWORD = 15863;
+pub const STORE_ERROR_LICENSE_REVOKED: DWORD = 15864;
+pub const SEVERITY_SUCCESS: HRESULT = 0;
+pub const SEVERITY_ERROR: HRESULT = 1;
+#[inline]
+pub fn SUCCEEDED(hr: HRESULT) -> bool {
+ hr >= 0
+}
+#[inline]
+pub fn FAILED(hr: HRESULT) -> bool {
+ hr < 0
+}
+#[inline]
+pub fn IS_ERROR(hr: HRESULT) -> bool {
+ (hr as u32) >> 31 == (SEVERITY_ERROR as u32)
+}
+#[inline]
+pub fn HRESULT_CODE(hr: HRESULT) -> HRESULT {
+ hr & 0xFFFF
+}
+#[inline]
+pub fn SCODE_CODE(sc: SCODE) -> HRESULT {
+ sc & 0xFFFF
+}
+#[inline]
+pub fn HRESULT_FACILITY(hr: HRESULT) -> HRESULT {
+ (hr >> 16) & 0x1fff
+}
+#[inline]
+pub fn SCODE_FACILITY(sc: SCODE) -> HRESULT {
+ (sc >> 16) & 0x1fff
+}
+#[inline]
+pub fn HRESULT_SEVERITY(hr: HRESULT) -> HRESULT {
+ (hr >> 31) & 0x1
+}
+#[inline]
+pub fn SCODE_SEVERITY(sc: SCODE) -> HRESULT {
+ (sc >> 31) & 0x1
+}
+#[inline]
+pub fn MAKE_HRESULT(sev: HRESULT, fac: HRESULT, code: HRESULT) -> HRESULT {
+ (sev << 31) | (fac << 16) | code
+}
+#[inline]
+pub fn MAKE_SCODE(sev: HRESULT, fac: HRESULT, code: HRESULT) -> SCODE {
+ (sev << 31) | (fac << 16) | code
+}
+pub const FACILITY_NT_BIT: HRESULT = 0x10000000;
+#[inline]
+pub fn HRESULT_FROM_WIN32(x: c_ulong) -> HRESULT {
+ if x as i32 <= 0 {
+ x as i32
+ } else {
+ ((x & 0x0000FFFF) | ((FACILITY_WIN32 as u32) << 16) | 0x80000000) as i32
+ }
+}
+pub type HRESULT = c_long;
+#[inline]
+pub fn HRESULT_FROM_NT(x: c_ulong) -> HRESULT {
+ (x | FACILITY_NT_BIT as u32) as i32
+}
+pub const NOERROR: HRESULT = 0;
+pub const E_UNEXPECTED: HRESULT = 0x8000FFFF;
+pub const E_NOTIMPL: HRESULT = 0x80004001;
+pub const E_OUTOFMEMORY: HRESULT = 0x8007000E;
+pub const E_INVALIDARG: HRESULT = 0x80070057;
+pub const E_NOINTERFACE: HRESULT = 0x80004002;
+pub const E_POINTER: HRESULT = 0x80004003;
+pub const E_HANDLE: HRESULT = 0x80070006;
+pub const E_ABORT: HRESULT = 0x80004004;
+pub const E_FAIL: HRESULT = 0x80004005;
+pub const E_ACCESSDENIED: HRESULT = 0x80070005;
+pub const E_PENDING: HRESULT = 0x8000000A;
+pub const E_BOUNDS: HRESULT = 0x8000000B;
+pub const E_CHANGED_STATE: HRESULT = 0x8000000C;
+pub const E_ILLEGAL_STATE_CHANGE: HRESULT = 0x8000000D;
+pub const E_ILLEGAL_METHOD_CALL: HRESULT = 0x8000000E;
+pub const RO_E_METADATA_NAME_NOT_FOUND: HRESULT = 0x8000000F;
+pub const RO_E_METADATA_NAME_IS_NAMESPACE: HRESULT = 0x80000010;
+pub const RO_E_METADATA_INVALID_TYPE_FORMAT: HRESULT = 0x80000011;
+pub const RO_E_INVALID_METADATA_FILE: HRESULT = 0x80000012;
+pub const RO_E_CLOSED: HRESULT = 0x80000013;
+pub const RO_E_EXCLUSIVE_WRITE: HRESULT = 0x80000014;
+pub const RO_E_CHANGE_NOTIFICATION_IN_PROGRESS: HRESULT = 0x80000015;
+pub const RO_E_ERROR_STRING_NOT_FOUND: HRESULT = 0x80000016;
+pub const E_STRING_NOT_NULL_TERMINATED: HRESULT = 0x80000017;
+pub const E_ILLEGAL_DELEGATE_ASSIGNMENT: HRESULT = 0x80000018;
+pub const E_ASYNC_OPERATION_NOT_STARTED: HRESULT = 0x80000019;
+pub const E_APPLICATION_EXITING: HRESULT = 0x8000001A;
+pub const E_APPLICATION_VIEW_EXITING: HRESULT = 0x8000001B;
+pub const RO_E_MUST_BE_AGILE: HRESULT = 0x8000001C;
+pub const RO_E_UNSUPPORTED_FROM_MTA: HRESULT = 0x8000001D;
+pub const RO_E_COMMITTED: HRESULT = 0x8000001E;
+pub const RO_E_BLOCKED_CROSS_ASTA_CALL: HRESULT = 0x8000001F;
+pub const CO_E_INIT_TLS: HRESULT = 0x80004006;
+pub const CO_E_INIT_SHARED_ALLOCATOR: HRESULT = 0x80004007;
+pub const CO_E_INIT_MEMORY_ALLOCATOR: HRESULT = 0x80004008;
+pub const CO_E_INIT_CLASS_CACHE: HRESULT = 0x80004009;
+pub const CO_E_INIT_RPC_CHANNEL: HRESULT = 0x8000400A;
+pub const CO_E_INIT_TLS_SET_CHANNEL_CONTROL: HRESULT = 0x8000400B;
+pub const CO_E_INIT_TLS_CHANNEL_CONTROL: HRESULT = 0x8000400C;
+pub const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR: HRESULT = 0x8000400D;
+pub const CO_E_INIT_SCM_MUTEX_EXISTS: HRESULT = 0x8000400E;
+pub const CO_E_INIT_SCM_FILE_MAPPING_EXISTS: HRESULT = 0x8000400F;
+pub const CO_E_INIT_SCM_MAP_VIEW_OF_FILE: HRESULT = 0x80004010;
+pub const CO_E_INIT_SCM_EXEC_FAILURE: HRESULT = 0x80004011;
+pub const CO_E_INIT_ONLY_SINGLE_THREADED: HRESULT = 0x80004012;
+pub const CO_E_CANT_REMOTE: HRESULT = 0x80004013;
+pub const CO_E_BAD_SERVER_NAME: HRESULT = 0x80004014;
+pub const CO_E_WRONG_SERVER_IDENTITY: HRESULT = 0x80004015;
+pub const CO_E_OLE1DDE_DISABLED: HRESULT = 0x80004016;
+pub const CO_E_RUNAS_SYNTAX: HRESULT = 0x80004017;
+pub const CO_E_CREATEPROCESS_FAILURE: HRESULT = 0x80004018;
+pub const CO_E_RUNAS_CREATEPROCESS_FAILURE: HRESULT = 0x80004019;
+pub const CO_E_RUNAS_LOGON_FAILURE: HRESULT = 0x8000401A;
+pub const CO_E_LAUNCH_PERMSSION_DENIED: HRESULT = 0x8000401B;
+pub const CO_E_START_SERVICE_FAILURE: HRESULT = 0x8000401C;
+pub const CO_E_REMOTE_COMMUNICATION_FAILURE: HRESULT = 0x8000401D;
+pub const CO_E_SERVER_START_TIMEOUT: HRESULT = 0x8000401E;
+pub const CO_E_CLSREG_INCONSISTENT: HRESULT = 0x8000401F;
+pub const CO_E_IIDREG_INCONSISTENT: HRESULT = 0x80004020;
+pub const CO_E_NOT_SUPPORTED: HRESULT = 0x80004021;
+pub const CO_E_RELOAD_DLL: HRESULT = 0x80004022;
+pub const CO_E_MSI_ERROR: HRESULT = 0x80004023;
+pub const CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT: HRESULT = 0x80004024;
+pub const CO_E_SERVER_PAUSED: HRESULT = 0x80004025;
+pub const CO_E_SERVER_NOT_PAUSED: HRESULT = 0x80004026;
+pub const CO_E_CLASS_DISABLED: HRESULT = 0x80004027;
+pub const CO_E_CLRNOTAVAILABLE: HRESULT = 0x80004028;
+pub const CO_E_ASYNC_WORK_REJECTED: HRESULT = 0x80004029;
+pub const CO_E_SERVER_INIT_TIMEOUT: HRESULT = 0x8000402A;
+pub const CO_E_NO_SECCTX_IN_ACTIVATE: HRESULT = 0x8000402B;
+pub const CO_E_TRACKER_CONFIG: HRESULT = 0x80004030;
+pub const CO_E_THREADPOOL_CONFIG: HRESULT = 0x80004031;
+pub const CO_E_SXS_CONFIG: HRESULT = 0x80004032;
+pub const CO_E_MALFORMED_SPN: HRESULT = 0x80004033;
+pub const CO_E_UNREVOKED_REGISTRATION_ON_APARTMENT_SHUTDOWN: HRESULT = 0x80004034;
+pub const CO_E_PREMATURE_STUB_RUNDOWN: HRESULT = 0x80004035;
+pub const S_OK: HRESULT = 0;
+pub const S_FALSE: HRESULT = 1;
+pub const OLE_E_FIRST: HRESULT = 0x80040000;
+pub const OLE_E_LAST: HRESULT = 0x800400FF;
+pub const OLE_S_FIRST: HRESULT = 0x00040000;
+pub const OLE_S_LAST: HRESULT = 0x000400FF;
+pub const OLE_E_OLEVERB: HRESULT = 0x80040000;
+pub const OLE_E_ADVF: HRESULT = 0x80040001;
+pub const OLE_E_ENUM_NOMORE: HRESULT = 0x80040002;
+pub const OLE_E_ADVISENOTSUPPORTED: HRESULT = 0x80040003;
+pub const OLE_E_NOCONNECTION: HRESULT = 0x80040004;
+pub const OLE_E_NOTRUNNING: HRESULT = 0x80040005;
+pub const OLE_E_NOCACHE: HRESULT = 0x80040006;
+pub const OLE_E_BLANK: HRESULT = 0x80040007;
+pub const OLE_E_CLASSDIFF: HRESULT = 0x80040008;
+pub const OLE_E_CANT_GETMONIKER: HRESULT = 0x80040009;
+pub const OLE_E_CANT_BINDTOSOURCE: HRESULT = 0x8004000A;
+pub const OLE_E_STATIC: HRESULT = 0x8004000B;
+pub const OLE_E_PROMPTSAVECANCELLED: HRESULT = 0x8004000C;
+pub const OLE_E_INVALIDRECT: HRESULT = 0x8004000D;
+pub const OLE_E_WRONGCOMPOBJ: HRESULT = 0x8004000E;
+pub const OLE_E_INVALIDHWND: HRESULT = 0x8004000F;
+pub const OLE_E_NOT_INPLACEACTIVE: HRESULT = 0x80040010;
+pub const OLE_E_CANTCONVERT: HRESULT = 0x80040011;
+pub const OLE_E_NOSTORAGE: HRESULT = 0x80040012;
+pub const DV_E_FORMATETC: HRESULT = 0x80040064;
+pub const DV_E_DVTARGETDEVICE: HRESULT = 0x80040065;
+pub const DV_E_STGMEDIUM: HRESULT = 0x80040066;
+pub const DV_E_STATDATA: HRESULT = 0x80040067;
+pub const DV_E_LINDEX: HRESULT = 0x80040068;
+pub const DV_E_TYMED: HRESULT = 0x80040069;
+pub const DV_E_CLIPFORMAT: HRESULT = 0x8004006A;
+pub const DV_E_DVASPECT: HRESULT = 0x8004006B;
+pub const DV_E_DVTARGETDEVICE_SIZE: HRESULT = 0x8004006C;
+pub const DV_E_NOIVIEWOBJECT: HRESULT = 0x8004006D;
+pub const DRAGDROP_E_FIRST: HRESULT = 0x80040100;
+pub const DRAGDROP_E_LAST: HRESULT = 0x8004010F;
+pub const DRAGDROP_S_FIRST: HRESULT = 0x00040100;
+pub const DRAGDROP_S_LAST: HRESULT = 0x0004010F;
+pub const DRAGDROP_E_NOTREGISTERED: HRESULT = 0x80040100;
+pub const DRAGDROP_E_ALREADYREGISTERED: HRESULT = 0x80040101;
+pub const DRAGDROP_E_INVALIDHWND: HRESULT = 0x80040102;
+pub const DRAGDROP_E_CONCURRENT_DRAG_ATTEMPTED: HRESULT = 0x80040103;
+pub const CLASSFACTORY_E_FIRST: HRESULT = 0x80040110;
+pub const CLASSFACTORY_E_LAST: HRESULT = 0x8004011F;
+pub const CLASSFACTORY_S_FIRST: HRESULT = 0x00040110;
+pub const CLASSFACTORY_S_LAST: HRESULT = 0x0004011F;
+pub const CLASS_E_NOAGGREGATION: HRESULT = 0x80040110;
+pub const CLASS_E_CLASSNOTAVAILABLE: HRESULT = 0x80040111;
+pub const CLASS_E_NOTLICENSED: HRESULT = 0x80040112;
+pub const MARSHAL_E_FIRST: HRESULT = 0x80040120;
+pub const MARSHAL_E_LAST: HRESULT = 0x8004012F;
+pub const MARSHAL_S_FIRST: HRESULT = 0x00040120;
+pub const MARSHAL_S_LAST: HRESULT = 0x0004012F;
+pub const DATA_E_FIRST: HRESULT = 0x80040130;
+pub const DATA_E_LAST: HRESULT = 0x8004013F;
+pub const DATA_S_FIRST: HRESULT = 0x00040130;
+pub const DATA_S_LAST: HRESULT = 0x0004013F;
+pub const VIEW_E_FIRST: HRESULT = 0x80040140;
+pub const VIEW_E_LAST: HRESULT = 0x8004014F;
+pub const VIEW_S_FIRST: HRESULT = 0x00040140;
+pub const VIEW_S_LAST: HRESULT = 0x0004014F;
+pub const VIEW_E_DRAW: HRESULT = 0x80040140;
+pub const REGDB_E_FIRST: HRESULT = 0x80040150;
+pub const REGDB_E_LAST: HRESULT = 0x8004015F;
+pub const REGDB_S_FIRST: HRESULT = 0x00040150;
+pub const REGDB_S_LAST: HRESULT = 0x0004015F;
+pub const REGDB_E_READREGDB: HRESULT = 0x80040150;
+pub const REGDB_E_WRITEREGDB: HRESULT = 0x80040151;
+pub const REGDB_E_KEYMISSING: HRESULT = 0x80040152;
+pub const REGDB_E_INVALIDVALUE: HRESULT = 0x80040153;
+pub const REGDB_E_CLASSNOTREG: HRESULT = 0x80040154;
+pub const REGDB_E_IIDNOTREG: HRESULT = 0x80040155;
+pub const REGDB_E_BADTHREADINGMODEL: HRESULT = 0x80040156;
+pub const CAT_E_FIRST: HRESULT = 0x80040160;
+pub const CAT_E_LAST: HRESULT = 0x80040161;
+pub const CAT_E_CATIDNOEXIST: HRESULT = 0x80040160;
+pub const CAT_E_NODESCRIPTION: HRESULT = 0x80040161;
+pub const CS_E_FIRST: HRESULT = 0x80040164;
+pub const CS_E_LAST: HRESULT = 0x8004016F;
+pub const CS_E_PACKAGE_NOTFOUND: HRESULT = 0x80040164;
+pub const CS_E_NOT_DELETABLE: HRESULT = 0x80040165;
+pub const CS_E_CLASS_NOTFOUND: HRESULT = 0x80040166;
+pub const CS_E_INVALID_VERSION: HRESULT = 0x80040167;
+pub const CS_E_NO_CLASSSTORE: HRESULT = 0x80040168;
+pub const CS_E_OBJECT_NOTFOUND: HRESULT = 0x80040169;
+pub const CS_E_OBJECT_ALREADY_EXISTS: HRESULT = 0x8004016A;
+pub const CS_E_INVALID_PATH: HRESULT = 0x8004016B;
+pub const CS_E_NETWORK_ERROR: HRESULT = 0x8004016C;
+pub const CS_E_ADMIN_LIMIT_EXCEEDED: HRESULT = 0x8004016D;
+pub const CS_E_SCHEMA_MISMATCH: HRESULT = 0x8004016E;
+pub const CS_E_INTERNAL_ERROR: HRESULT = 0x8004016F;
+pub const CACHE_E_FIRST: HRESULT = 0x80040170;
+pub const CACHE_E_LAST: HRESULT = 0x8004017F;
+pub const CACHE_S_FIRST: HRESULT = 0x00040170;
+pub const CACHE_S_LAST: HRESULT = 0x0004017F;
+pub const CACHE_E_NOCACHE_UPDATED: HRESULT = 0x80040170;
+pub const OLEOBJ_E_FIRST: HRESULT = 0x80040180;
+pub const OLEOBJ_E_LAST: HRESULT = 0x8004018F;
+pub const OLEOBJ_S_FIRST: HRESULT = 0x00040180;
+pub const OLEOBJ_S_LAST: HRESULT = 0x0004018F;
+pub const OLEOBJ_E_NOVERBS: HRESULT = 0x80040180;
+pub const OLEOBJ_E_INVALIDVERB: HRESULT = 0x80040181;
+pub const CLIENTSITE_E_FIRST: HRESULT = 0x80040190;
+pub const CLIENTSITE_E_LAST: HRESULT = 0x8004019F;
+pub const CLIENTSITE_S_FIRST: HRESULT = 0x00040190;
+pub const CLIENTSITE_S_LAST: HRESULT = 0x0004019F;
+pub const INPLACE_E_NOTUNDOABLE: HRESULT = 0x800401A0;
+pub const INPLACE_E_NOTOOLSPACE: HRESULT = 0x800401A1;
+pub const INPLACE_E_FIRST: HRESULT = 0x800401A0;
+pub const INPLACE_E_LAST: HRESULT = 0x800401AF;
+pub const INPLACE_S_FIRST: HRESULT = 0x000401A0;
+pub const INPLACE_S_LAST: HRESULT = 0x000401AF;
+pub const ENUM_E_FIRST: HRESULT = 0x800401B0;
+pub const ENUM_E_LAST: HRESULT = 0x800401BF;
+pub const ENUM_S_FIRST: HRESULT = 0x000401B0;
+pub const ENUM_S_LAST: HRESULT = 0x000401BF;
+pub const CONVERT10_E_FIRST: HRESULT = 0x800401C0;
+pub const CONVERT10_E_LAST: HRESULT = 0x800401CF;
+pub const CONVERT10_S_FIRST: HRESULT = 0x000401C0;
+pub const CONVERT10_S_LAST: HRESULT = 0x000401CF;
+pub const CONVERT10_E_OLESTREAM_GET: HRESULT = 0x800401C0;
+pub const CONVERT10_E_OLESTREAM_PUT: HRESULT = 0x800401C1;
+pub const CONVERT10_E_OLESTREAM_FMT: HRESULT = 0x800401C2;
+pub const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB: HRESULT = 0x800401C3;
+pub const CONVERT10_E_STG_FMT: HRESULT = 0x800401C4;
+pub const CONVERT10_E_STG_NO_STD_STREAM: HRESULT = 0x800401C5;
+pub const CONVERT10_E_STG_DIB_TO_BITMAP: HRESULT = 0x800401C6;
+pub const CLIPBRD_E_FIRST: HRESULT = 0x800401D0;
+pub const CLIPBRD_E_LAST: HRESULT = 0x800401DF;
+pub const CLIPBRD_S_FIRST: HRESULT = 0x000401D0;
+pub const CLIPBRD_S_LAST: HRESULT = 0x000401DF;
+pub const CLIPBRD_E_CANT_OPEN: HRESULT = 0x800401D0;
+pub const CLIPBRD_E_CANT_EMPTY: HRESULT = 0x800401D1;
+pub const CLIPBRD_E_CANT_SET: HRESULT = 0x800401D2;
+pub const CLIPBRD_E_BAD_DATA: HRESULT = 0x800401D3;
+pub const CLIPBRD_E_CANT_CLOSE: HRESULT = 0x800401D4;
+pub const MK_E_FIRST: HRESULT = 0x800401E0;
+pub const MK_E_LAST: HRESULT = 0x800401EF;
+pub const MK_S_FIRST: HRESULT = 0x000401E0;
+pub const MK_S_LAST: HRESULT = 0x000401EF;
+pub const MK_E_CONNECTMANUALLY: HRESULT = 0x800401E0;
+pub const MK_E_EXCEEDEDDEADLINE: HRESULT = 0x800401E1;
+pub const MK_E_NEEDGENERIC: HRESULT = 0x800401E2;
+pub const MK_E_UNAVAILABLE: HRESULT = 0x800401E3;
+pub const MK_E_SYNTAX: HRESULT = 0x800401E4;
+pub const MK_E_NOOBJECT: HRESULT = 0x800401E5;
+pub const MK_E_INVALIDEXTENSION: HRESULT = 0x800401E6;
+pub const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED: HRESULT = 0x800401E7;
+pub const MK_E_NOTBINDABLE: HRESULT = 0x800401E8;
+pub const MK_E_NOTBOUND: HRESULT = 0x800401E9;
+pub const MK_E_CANTOPENFILE: HRESULT = 0x800401EA;
+pub const MK_E_MUSTBOTHERUSER: HRESULT = 0x800401EB;
+pub const MK_E_NOINVERSE: HRESULT = 0x800401EC;
+pub const MK_E_NOSTORAGE: HRESULT = 0x800401ED;
+pub const MK_E_NOPREFIX: HRESULT = 0x800401EE;
+pub const MK_E_ENUMERATION_FAILED: HRESULT = 0x800401EF;
+pub const CO_E_FIRST: HRESULT = 0x800401F0;
+pub const CO_E_LAST: HRESULT = 0x800401FF;
+pub const CO_S_FIRST: HRESULT = 0x000401F0;
+pub const CO_S_LAST: HRESULT = 0x000401FF;
+pub const CO_E_NOTINITIALIZED: HRESULT = 0x800401F0;
+pub const CO_E_ALREADYINITIALIZED: HRESULT = 0x800401F1;
+pub const CO_E_CANTDETERMINECLASS: HRESULT = 0x800401F2;
+pub const CO_E_CLASSSTRING: HRESULT = 0x800401F3;
+pub const CO_E_IIDSTRING: HRESULT = 0x800401F4;
+pub const CO_E_APPNOTFOUND: HRESULT = 0x800401F5;
+pub const CO_E_APPSINGLEUSE: HRESULT = 0x800401F6;
+pub const CO_E_ERRORINAPP: HRESULT = 0x800401F7;
+pub const CO_E_DLLNOTFOUND: HRESULT = 0x800401F8;
+pub const CO_E_ERRORINDLL: HRESULT = 0x800401F9;
+pub const CO_E_WRONGOSFORAPP: HRESULT = 0x800401FA;
+pub const CO_E_OBJNOTREG: HRESULT = 0x800401FB;
+pub const CO_E_OBJISREG: HRESULT = 0x800401FC;
+pub const CO_E_OBJNOTCONNECTED: HRESULT = 0x800401FD;
+pub const CO_E_APPDIDNTREG: HRESULT = 0x800401FE;
+pub const CO_E_RELEASED: HRESULT = 0x800401FF;
+pub const EVENT_E_FIRST: HRESULT = 0x80040200;
+pub const EVENT_E_LAST: HRESULT = 0x8004021F;
+pub const EVENT_S_FIRST: HRESULT = 0x00040200;
+pub const EVENT_S_LAST: HRESULT = 0x0004021F;
+pub const EVENT_S_SOME_SUBSCRIBERS_FAILED: HRESULT = 0x00040200;
+pub const EVENT_E_ALL_SUBSCRIBERS_FAILED: HRESULT = 0x80040201;
+pub const EVENT_S_NOSUBSCRIBERS: HRESULT = 0x00040202;
+pub const EVENT_E_QUERYSYNTAX: HRESULT = 0x80040203;
+pub const EVENT_E_QUERYFIELD: HRESULT = 0x80040204;
+pub const EVENT_E_INTERNALEXCEPTION: HRESULT = 0x80040205;
+pub const EVENT_E_INTERNALERROR: HRESULT = 0x80040206;
+pub const EVENT_E_INVALID_PER_USER_SID: HRESULT = 0x80040207;
+pub const EVENT_E_USER_EXCEPTION: HRESULT = 0x80040208;
+pub const EVENT_E_TOO_MANY_METHODS: HRESULT = 0x80040209;
+pub const EVENT_E_MISSING_EVENTCLASS: HRESULT = 0x8004020A;
+pub const EVENT_E_NOT_ALL_REMOVED: HRESULT = 0x8004020B;
+pub const EVENT_E_COMPLUS_NOT_INSTALLED: HRESULT = 0x8004020C;
+pub const EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT: HRESULT = 0x8004020D;
+pub const EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT: HRESULT = 0x8004020E;
+pub const EVENT_E_INVALID_EVENT_CLASS_PARTITION: HRESULT = 0x8004020F;
+pub const EVENT_E_PER_USER_SID_NOT_LOGGED_ON: HRESULT = 0x80040210;
+pub const TPC_E_INVALID_PROPERTY: HRESULT = 0x80040241;
+pub const TPC_E_NO_DEFAULT_TABLET: HRESULT = 0x80040212;
+pub const TPC_E_UNKNOWN_PROPERTY: HRESULT = 0x8004021B;
+pub const TPC_E_INVALID_INPUT_RECT: HRESULT = 0x80040219;
+pub const TPC_E_INVALID_STROKE: HRESULT = 0x80040222;
+pub const TPC_E_INITIALIZE_FAIL: HRESULT = 0x80040223;
+pub const TPC_E_NOT_RELEVANT: HRESULT = 0x80040232;
+pub const TPC_E_INVALID_PACKET_DESCRIPTION: HRESULT = 0x80040233;
+pub const TPC_E_RECOGNIZER_NOT_REGISTERED: HRESULT = 0x80040235;
+pub const TPC_E_INVALID_RIGHTS: HRESULT = 0x80040236;
+pub const TPC_E_OUT_OF_ORDER_CALL: HRESULT = 0x80040237;
+pub const TPC_E_QUEUE_FULL: HRESULT = 0x80040238;
+pub const TPC_E_INVALID_CONFIGURATION: HRESULT = 0x80040239;
+pub const TPC_E_INVALID_DATA_FROM_RECOGNIZER: HRESULT = 0x8004023A;
+pub const TPC_S_TRUNCATED: HRESULT = 0x00040252;
+pub const TPC_S_INTERRUPTED: HRESULT = 0x00040253;
+pub const TPC_S_NO_DATA_TO_PROCESS: HRESULT = 0x00040254;
+pub const XACT_E_FIRST: HRESULT = 0x8004D000;
+pub const XACT_E_LAST: HRESULT = 0x8004D02B;
+pub const XACT_S_FIRST: HRESULT = 0x0004D000;
+pub const XACT_S_LAST: HRESULT = 0x0004D010;
+pub const XACT_E_ALREADYOTHERSINGLEPHASE: HRESULT = 0x8004D000;
+pub const XACT_E_CANTRETAIN: HRESULT = 0x8004D001;
+pub const XACT_E_COMMITFAILED: HRESULT = 0x8004D002;
+pub const XACT_E_COMMITPREVENTED: HRESULT = 0x8004D003;
+pub const XACT_E_HEURISTICABORT: HRESULT = 0x8004D004;
+pub const XACT_E_HEURISTICCOMMIT: HRESULT = 0x8004D005;
+pub const XACT_E_HEURISTICDAMAGE: HRESULT = 0x8004D006;
+pub const XACT_E_HEURISTICDANGER: HRESULT = 0x8004D007;
+pub const XACT_E_ISOLATIONLEVEL: HRESULT = 0x8004D008;
+pub const XACT_E_NOASYNC: HRESULT = 0x8004D009;
+pub const XACT_E_NOENLIST: HRESULT = 0x8004D00A;
+pub const XACT_E_NOISORETAIN: HRESULT = 0x8004D00B;
+pub const XACT_E_NORESOURCE: HRESULT = 0x8004D00C;
+pub const XACT_E_NOTCURRENT: HRESULT = 0x8004D00D;
+pub const XACT_E_NOTRANSACTION: HRESULT = 0x8004D00E;
+pub const XACT_E_NOTSUPPORTED: HRESULT = 0x8004D00F;
+pub const XACT_E_UNKNOWNRMGRID: HRESULT = 0x8004D010;
+pub const XACT_E_WRONGSTATE: HRESULT = 0x8004D011;
+pub const XACT_E_WRONGUOW: HRESULT = 0x8004D012;
+pub const XACT_E_XTIONEXISTS: HRESULT = 0x8004D013;
+pub const XACT_E_NOIMPORTOBJECT: HRESULT = 0x8004D014;
+pub const XACT_E_INVALIDCOOKIE: HRESULT = 0x8004D015;
+pub const XACT_E_INDOUBT: HRESULT = 0x8004D016;
+pub const XACT_E_NOTIMEOUT: HRESULT = 0x8004D017;
+pub const XACT_E_ALREADYINPROGRESS: HRESULT = 0x8004D018;
+pub const XACT_E_ABORTED: HRESULT = 0x8004D019;
+pub const XACT_E_LOGFULL: HRESULT = 0x8004D01A;
+pub const XACT_E_TMNOTAVAILABLE: HRESULT = 0x8004D01B;
+pub const XACT_E_CONNECTION_DOWN: HRESULT = 0x8004D01C;
+pub const XACT_E_CONNECTION_DENIED: HRESULT = 0x8004D01D;
+pub const XACT_E_REENLISTTIMEOUT: HRESULT = 0x8004D01E;
+pub const XACT_E_TIP_CONNECT_FAILED: HRESULT = 0x8004D01F;
+pub const XACT_E_TIP_PROTOCOL_ERROR: HRESULT = 0x8004D020;
+pub const XACT_E_TIP_PULL_FAILED: HRESULT = 0x8004D021;
+pub const XACT_E_DEST_TMNOTAVAILABLE: HRESULT = 0x8004D022;
+pub const XACT_E_TIP_DISABLED: HRESULT = 0x8004D023;
+pub const XACT_E_NETWORK_TX_DISABLED: HRESULT = 0x8004D024;
+pub const XACT_E_PARTNER_NETWORK_TX_DISABLED: HRESULT = 0x8004D025;
+pub const XACT_E_XA_TX_DISABLED: HRESULT = 0x8004D026;
+pub const XACT_E_UNABLE_TO_READ_DTC_CONFIG: HRESULT = 0x8004D027;
+pub const XACT_E_UNABLE_TO_LOAD_DTC_PROXY: HRESULT = 0x8004D028;
+pub const XACT_E_ABORTING: HRESULT = 0x8004D029;
+pub const XACT_E_PUSH_COMM_FAILURE: HRESULT = 0x8004D02A;
+pub const XACT_E_PULL_COMM_FAILURE: HRESULT = 0x8004D02B;
+pub const XACT_E_LU_TX_DISABLED: HRESULT = 0x8004D02C;
+pub const XACT_E_CLERKNOTFOUND: HRESULT = 0x8004D080;
+pub const XACT_E_CLERKEXISTS: HRESULT = 0x8004D081;
+pub const XACT_E_RECOVERYINPROGRESS: HRESULT = 0x8004D082;
+pub const XACT_E_TRANSACTIONCLOSED: HRESULT = 0x8004D083;
+pub const XACT_E_INVALIDLSN: HRESULT = 0x8004D084;
+pub const XACT_E_REPLAYREQUEST: HRESULT = 0x8004D085;
+pub const XACT_S_ASYNC: HRESULT = 0x0004D000;
+pub const XACT_S_DEFECT: HRESULT = 0x0004D001;
+pub const XACT_S_READONLY: HRESULT = 0x0004D002;
+pub const XACT_S_SOMENORETAIN: HRESULT = 0x0004D003;
+pub const XACT_S_OKINFORM: HRESULT = 0x0004D004;
+pub const XACT_S_MADECHANGESCONTENT: HRESULT = 0x0004D005;
+pub const XACT_S_MADECHANGESINFORM: HRESULT = 0x0004D006;
+pub const XACT_S_ALLNORETAIN: HRESULT = 0x0004D007;
+pub const XACT_S_ABORTING: HRESULT = 0x0004D008;
+pub const XACT_S_SINGLEPHASE: HRESULT = 0x0004D009;
+pub const XACT_S_LOCALLY_OK: HRESULT = 0x0004D00A;
+pub const XACT_S_LASTRESOURCEMANAGER: HRESULT = 0x0004D010;
+pub const CONTEXT_E_FIRST: HRESULT = 0x8004E000;
+pub const CONTEXT_E_LAST: HRESULT = 0x8004E02F;
+pub const CONTEXT_S_FIRST: HRESULT = 0x0004E000;
+pub const CONTEXT_S_LAST: HRESULT = 0x0004E02F;
+pub const CONTEXT_E_ABORTED: HRESULT = 0x8004E002;
+pub const CONTEXT_E_ABORTING: HRESULT = 0x8004E003;
+pub const CONTEXT_E_NOCONTEXT: HRESULT = 0x8004E004;
+pub const CONTEXT_E_WOULD_DEADLOCK: HRESULT = 0x8004E005;
+pub const CONTEXT_E_SYNCH_TIMEOUT: HRESULT = 0x8004E006;
+pub const CONTEXT_E_OLDREF: HRESULT = 0x8004E007;
+pub const CONTEXT_E_ROLENOTFOUND: HRESULT = 0x8004E00C;
+pub const CONTEXT_E_TMNOTAVAILABLE: HRESULT = 0x8004E00F;
+pub const CO_E_ACTIVATIONFAILED: HRESULT = 0x8004E021;
+pub const CO_E_ACTIVATIONFAILED_EVENTLOGGED: HRESULT = 0x8004E022;
+pub const CO_E_ACTIVATIONFAILED_CATALOGERROR: HRESULT = 0x8004E023;
+pub const CO_E_ACTIVATIONFAILED_TIMEOUT: HRESULT = 0x8004E024;
+pub const CO_E_INITIALIZATIONFAILED: HRESULT = 0x8004E025;
+pub const CONTEXT_E_NOJIT: HRESULT = 0x8004E026;
+pub const CONTEXT_E_NOTRANSACTION: HRESULT = 0x8004E027;
+pub const CO_E_THREADINGMODEL_CHANGED: HRESULT = 0x8004E028;
+pub const CO_E_NOIISINTRINSICS: HRESULT = 0x8004E029;
+pub const CO_E_NOCOOKIES: HRESULT = 0x8004E02A;
+pub const CO_E_DBERROR: HRESULT = 0x8004E02B;
+pub const CO_E_NOTPOOLED: HRESULT = 0x8004E02C;
+pub const CO_E_NOTCONSTRUCTED: HRESULT = 0x8004E02D;
+pub const CO_E_NOSYNCHRONIZATION: HRESULT = 0x8004E02E;
+pub const CO_E_ISOLEVELMISMATCH: HRESULT = 0x8004E02F;
+pub const CO_E_CALL_OUT_OF_TX_SCOPE_NOT_ALLOWED: HRESULT = 0x8004E030;
+pub const CO_E_EXIT_TRANSACTION_SCOPE_NOT_CALLED: HRESULT = 0x8004E031;
+pub const OLE_S_USEREG: HRESULT = 0x00040000;
+pub const OLE_S_STATIC: HRESULT = 0x00040001;
+pub const OLE_S_MAC_CLIPFORMAT: HRESULT = 0x00040002;
+pub const DRAGDROP_S_DROP: HRESULT = 0x00040100;
+pub const DRAGDROP_S_CANCEL: HRESULT = 0x00040101;
+pub const DRAGDROP_S_USEDEFAULTCURSORS: HRESULT = 0x00040102;
+pub const DATA_S_SAMEFORMATETC: HRESULT = 0x00040130;
+pub const VIEW_S_ALREADY_FROZEN: HRESULT = 0x00040140;
+pub const CACHE_S_FORMATETC_NOTSUPPORTED: HRESULT = 0x00040170;
+pub const CACHE_S_SAMECACHE: HRESULT = 0x00040171;
+pub const CACHE_S_SOMECACHES_NOTUPDATED: HRESULT = 0x00040172;
+pub const OLEOBJ_S_INVALIDVERB: HRESULT = 0x00040180;
+pub const OLEOBJ_S_CANNOT_DOVERB_NOW: HRESULT = 0x00040181;
+pub const OLEOBJ_S_INVALIDHWND: HRESULT = 0x00040182;
+pub const INPLACE_S_TRUNCATED: HRESULT = 0x000401A0;
+pub const CONVERT10_S_NO_PRESENTATION: HRESULT = 0x000401C0;
+pub const MK_S_REDUCED_TO_SELF: HRESULT = 0x000401E2;
+pub const MK_S_ME: HRESULT = 0x000401E4;
+pub const MK_S_HIM: HRESULT = 0x000401E5;
+pub const MK_S_US: HRESULT = 0x000401E6;
+pub const MK_S_MONIKERALREADYREGISTERED: HRESULT = 0x000401E7;
+pub const SCHED_S_TASK_READY: HRESULT = 0x00041300;
+pub const SCHED_S_TASK_RUNNING: HRESULT = 0x00041301;
+pub const SCHED_S_TASK_DISABLED: HRESULT = 0x00041302;
+pub const SCHED_S_TASK_HAS_NOT_RUN: HRESULT = 0x00041303;
+pub const SCHED_S_TASK_NO_MORE_RUNS: HRESULT = 0x00041304;
+pub const SCHED_S_TASK_NOT_SCHEDULED: HRESULT = 0x00041305;
+pub const SCHED_S_TASK_TERMINATED: HRESULT = 0x00041306;
+pub const SCHED_S_TASK_NO_VALID_TRIGGERS: HRESULT = 0x00041307;
+pub const SCHED_S_EVENT_TRIGGER: HRESULT = 0x00041308;
+pub const SCHED_E_TRIGGER_NOT_FOUND: HRESULT = 0x80041309;
+pub const SCHED_E_TASK_NOT_READY: HRESULT = 0x8004130A;
+pub const SCHED_E_TASK_NOT_RUNNING: HRESULT = 0x8004130B;
+pub const SCHED_E_SERVICE_NOT_INSTALLED: HRESULT = 0x8004130C;
+pub const SCHED_E_CANNOT_OPEN_TASK: HRESULT = 0x8004130D;
+pub const SCHED_E_INVALID_TASK: HRESULT = 0x8004130E;
+pub const SCHED_E_ACCOUNT_INFORMATION_NOT_SET: HRESULT = 0x8004130F;
+pub const SCHED_E_ACCOUNT_NAME_NOT_FOUND: HRESULT = 0x80041310;
+pub const SCHED_E_ACCOUNT_DBASE_CORRUPT: HRESULT = 0x80041311;
+pub const SCHED_E_NO_SECURITY_SERVICES: HRESULT = 0x80041312;
+pub const SCHED_E_UNKNOWN_OBJECT_VERSION: HRESULT = 0x80041313;
+pub const SCHED_E_UNSUPPORTED_ACCOUNT_OPTION: HRESULT = 0x80041314;
+pub const SCHED_E_SERVICE_NOT_RUNNING: HRESULT = 0x80041315;
+pub const SCHED_E_UNEXPECTEDNODE: HRESULT = 0x80041316;
+pub const SCHED_E_NAMESPACE: HRESULT = 0x80041317;
+pub const SCHED_E_INVALIDVALUE: HRESULT = 0x80041318;
+pub const SCHED_E_MISSINGNODE: HRESULT = 0x80041319;
+pub const SCHED_E_MALFORMEDXML: HRESULT = 0x8004131A;
+pub const SCHED_S_SOME_TRIGGERS_FAILED: HRESULT = 0x0004131B;
+pub const SCHED_S_BATCH_LOGON_PROBLEM: HRESULT = 0x0004131C;
+pub const SCHED_E_TOO_MANY_NODES: HRESULT = 0x8004131D;
+pub const SCHED_E_PAST_END_BOUNDARY: HRESULT = 0x8004131E;
+pub const SCHED_E_ALREADY_RUNNING: HRESULT = 0x8004131F;
+pub const SCHED_E_USER_NOT_LOGGED_ON: HRESULT = 0x80041320;
+pub const SCHED_E_INVALID_TASK_HASH: HRESULT = 0x80041321;
+pub const SCHED_E_SERVICE_NOT_AVAILABLE: HRESULT = 0x80041322;
+pub const SCHED_E_SERVICE_TOO_BUSY: HRESULT = 0x80041323;
+pub const SCHED_E_TASK_ATTEMPTED: HRESULT = 0x80041324;
+pub const SCHED_S_TASK_QUEUED: HRESULT = 0x00041325;
+pub const SCHED_E_TASK_DISABLED: HRESULT = 0x80041326;
+pub const SCHED_E_TASK_NOT_V1_COMPAT: HRESULT = 0x80041327;
+pub const SCHED_E_START_ON_DEMAND: HRESULT = 0x80041328;
+pub const SCHED_E_TASK_NOT_UBPM_COMPAT: HRESULT = 0x80041329;
+pub const SCHED_E_DEPRECATED_FEATURE_USED: HRESULT = 0x80041330;
+pub const CO_E_CLASS_CREATE_FAILED: HRESULT = 0x80080001;
+pub const CO_E_SCM_ERROR: HRESULT = 0x80080002;
+pub const CO_E_SCM_RPC_FAILURE: HRESULT = 0x80080003;
+pub const CO_E_BAD_PATH: HRESULT = 0x80080004;
+pub const CO_E_SERVER_EXEC_FAILURE: HRESULT = 0x80080005;
+pub const CO_E_OBJSRV_RPC_FAILURE: HRESULT = 0x80080006;
+pub const MK_E_NO_NORMALIZED: HRESULT = 0x80080007;
+pub const CO_E_SERVER_STOPPING: HRESULT = 0x80080008;
+pub const MEM_E_INVALID_ROOT: HRESULT = 0x80080009;
+pub const MEM_E_INVALID_LINK: HRESULT = 0x80080010;
+pub const MEM_E_INVALID_SIZE: HRESULT = 0x80080011;
+pub const CO_S_NOTALLINTERFACES: HRESULT = 0x00080012;
+pub const CO_S_MACHINENAMENOTFOUND: HRESULT = 0x00080013;
+pub const CO_E_MISSING_DISPLAYNAME: HRESULT = 0x80080015;
+pub const CO_E_RUNAS_VALUE_MUST_BE_AAA: HRESULT = 0x80080016;
+pub const CO_E_ELEVATION_DISABLED: HRESULT = 0x80080017;
+pub const APPX_E_PACKAGING_INTERNAL: HRESULT = 0x80080200;
+pub const APPX_E_INTERLEAVING_NOT_ALLOWED: HRESULT = 0x80080201;
+pub const APPX_E_RELATIONSHIPS_NOT_ALLOWED: HRESULT = 0x80080202;
+pub const APPX_E_MISSING_REQUIRED_FILE: HRESULT = 0x80080203;
+pub const APPX_E_INVALID_MANIFEST: HRESULT = 0x80080204;
+pub const APPX_E_INVALID_BLOCKMAP: HRESULT = 0x80080205;
+pub const APPX_E_CORRUPT_CONTENT: HRESULT = 0x80080206;
+pub const APPX_E_BLOCK_HASH_INVALID: HRESULT = 0x80080207;
+pub const APPX_E_REQUESTED_RANGE_TOO_LARGE: HRESULT = 0x80080208;
+pub const APPX_E_INVALID_SIP_CLIENT_DATA: HRESULT = 0x80080209;
+pub const BT_E_SPURIOUS_ACTIVATION: HRESULT = 0x80080300;
+pub const DISP_E_UNKNOWNINTERFACE: HRESULT = 0x80020001;
+pub const DISP_E_MEMBERNOTFOUND: HRESULT = 0x80020003;
+pub const DISP_E_PARAMNOTFOUND: HRESULT = 0x80020004;
+pub const DISP_E_TYPEMISMATCH: HRESULT = 0x80020005;
+pub const DISP_E_UNKNOWNNAME: HRESULT = 0x80020006;
+pub const DISP_E_NONAMEDARGS: HRESULT = 0x80020007;
+pub const DISP_E_BADVARTYPE: HRESULT = 0x80020008;
+pub const DISP_E_EXCEPTION: HRESULT = 0x80020009;
+pub const DISP_E_OVERFLOW: HRESULT = 0x8002000A;
+pub const DISP_E_BADINDEX: HRESULT = 0x8002000B;
+pub const DISP_E_UNKNOWNLCID: HRESULT = 0x8002000C;
+pub const DISP_E_ARRAYISLOCKED: HRESULT = 0x8002000D;
+pub const DISP_E_BADPARAMCOUNT: HRESULT = 0x8002000E;
+pub const DISP_E_PARAMNOTOPTIONAL: HRESULT = 0x8002000F;
+pub const DISP_E_BADCALLEE: HRESULT = 0x80020010;
+pub const DISP_E_NOTACOLLECTION: HRESULT = 0x80020011;
+pub const DISP_E_DIVBYZERO: HRESULT = 0x80020012;
+pub const DISP_E_BUFFERTOOSMALL: HRESULT = 0x80020013;
+pub const TYPE_E_BUFFERTOOSMALL: HRESULT = 0x80028016;
+pub const TYPE_E_FIELDNOTFOUND: HRESULT = 0x80028017;
+pub const TYPE_E_INVDATAREAD: HRESULT = 0x80028018;
+pub const TYPE_E_UNSUPFORMAT: HRESULT = 0x80028019;
+pub const TYPE_E_REGISTRYACCESS: HRESULT = 0x8002801C;
+pub const TYPE_E_LIBNOTREGISTERED: HRESULT = 0x8002801D;
+pub const TYPE_E_UNDEFINEDTYPE: HRESULT = 0x80028027;
+pub const TYPE_E_QUALIFIEDNAMEDISALLOWED: HRESULT = 0x80028028;
+pub const TYPE_E_INVALIDSTATE: HRESULT = 0x80028029;
+pub const TYPE_E_WRONGTYPEKIND: HRESULT = 0x8002802A;
+pub const TYPE_E_ELEMENTNOTFOUND: HRESULT = 0x8002802B;
+pub const TYPE_E_AMBIGUOUSNAME: HRESULT = 0x8002802C;
+pub const TYPE_E_NAMECONFLICT: HRESULT = 0x8002802D;
+pub const TYPE_E_UNKNOWNLCID: HRESULT = 0x8002802E;
+pub const TYPE_E_DLLFUNCTIONNOTFOUND: HRESULT = 0x8002802F;
+pub const TYPE_E_BADMODULEKIND: HRESULT = 0x800288BD;
+pub const TYPE_E_SIZETOOBIG: HRESULT = 0x800288C5;
+pub const TYPE_E_DUPLICATEID: HRESULT = 0x800288C6;
+pub const TYPE_E_INVALIDID: HRESULT = 0x800288CF;
+pub const TYPE_E_TYPEMISMATCH: HRESULT = 0x80028CA0;
+pub const TYPE_E_OUTOFBOUNDS: HRESULT = 0x80028CA1;
+pub const TYPE_E_IOERROR: HRESULT = 0x80028CA2;
+pub const TYPE_E_CANTCREATETMPFILE: HRESULT = 0x80028CA3;
+pub const TYPE_E_CANTLOADLIBRARY: HRESULT = 0x80029C4A;
+pub const TYPE_E_INCONSISTENTPROPFUNCS: HRESULT = 0x80029C83;
+pub const TYPE_E_CIRCULARTYPE: HRESULT = 0x80029C84;
+pub const STG_E_INVALIDFUNCTION: HRESULT = 0x80030001;
+pub const STG_E_FILENOTFOUND: HRESULT = 0x80030002;
+pub const STG_E_PATHNOTFOUND: HRESULT = 0x80030003;
+pub const STG_E_TOOMANYOPENFILES: HRESULT = 0x80030004;
+pub const STG_E_ACCESSDENIED: HRESULT = 0x80030005;
+pub const STG_E_INVALIDHANDLE: HRESULT = 0x80030006;
+pub const STG_E_INSUFFICIENTMEMORY: HRESULT = 0x80030008;
+pub const STG_E_INVALIDPOINTER: HRESULT = 0x80030009;
+pub const STG_E_NOMOREFILES: HRESULT = 0x80030012;
+pub const STG_E_DISKISWRITEPROTECTED: HRESULT = 0x80030013;
+pub const STG_E_SEEKERROR: HRESULT = 0x80030019;
+pub const STG_E_WRITEFAULT: HRESULT = 0x8003001D;
+pub const STG_E_READFAULT: HRESULT = 0x8003001E;
+pub const STG_E_SHAREVIOLATION: HRESULT = 0x80030020;
+pub const STG_E_LOCKVIOLATION: HRESULT = 0x80030021;
+pub const STG_E_FILEALREADYEXISTS: HRESULT = 0x80030050;
+pub const STG_E_INVALIDPARAMETER: HRESULT = 0x80030057;
+pub const STG_E_MEDIUMFULL: HRESULT = 0x80030070;
+pub const STG_E_PROPSETMISMATCHED: HRESULT = 0x800300F0;
+pub const STG_E_ABNORMALAPIEXIT: HRESULT = 0x800300FA;
+pub const STG_E_INVALIDHEADER: HRESULT = 0x800300FB;
+pub const STG_E_INVALIDNAME: HRESULT = 0x800300FC;
+pub const STG_E_UNKNOWN: HRESULT = 0x800300FD;
+pub const STG_E_UNIMPLEMENTEDFUNCTION: HRESULT = 0x800300FE;
+pub const STG_E_INVALIDFLAG: HRESULT = 0x800300FF;
+pub const STG_E_INUSE: HRESULT = 0x80030100;
+pub const STG_E_NOTCURRENT: HRESULT = 0x80030101;
+pub const STG_E_REVERTED: HRESULT = 0x80030102;
+pub const STG_E_CANTSAVE: HRESULT = 0x80030103;
+pub const STG_E_OLDFORMAT: HRESULT = 0x80030104;
+pub const STG_E_OLDDLL: HRESULT = 0x80030105;
+pub const STG_E_SHAREREQUIRED: HRESULT = 0x80030106;
+pub const STG_E_NOTFILEBASEDSTORAGE: HRESULT = 0x80030107;
+pub const STG_E_EXTANTMARSHALLINGS: HRESULT = 0x80030108;
+pub const STG_E_DOCFILECORRUPT: HRESULT = 0x80030109;
+pub const STG_E_BADBASEADDRESS: HRESULT = 0x80030110;
+pub const STG_E_DOCFILETOOLARGE: HRESULT = 0x80030111;
+pub const STG_E_NOTSIMPLEFORMAT: HRESULT = 0x80030112;
+pub const STG_E_INCOMPLETE: HRESULT = 0x80030201;
+pub const STG_E_TERMINATED: HRESULT = 0x80030202;
+pub const STG_S_CONVERTED: HRESULT = 0x00030200;
+pub const STG_S_BLOCK: HRESULT = 0x00030201;
+pub const STG_S_RETRYNOW: HRESULT = 0x00030202;
+pub const STG_S_MONITORING: HRESULT = 0x00030203;
+pub const STG_S_MULTIPLEOPENS: HRESULT = 0x00030204;
+pub const STG_S_CONSOLIDATIONFAILED: HRESULT = 0x00030205;
+pub const STG_S_CANNOTCONSOLIDATE: HRESULT = 0x00030206;
+pub const STG_E_STATUS_COPY_PROTECTION_FAILURE: HRESULT = 0x80030305;
+pub const STG_E_CSS_AUTHENTICATION_FAILURE: HRESULT = 0x80030306;
+pub const STG_E_CSS_KEY_NOT_PRESENT: HRESULT = 0x80030307;
+pub const STG_E_CSS_KEY_NOT_ESTABLISHED: HRESULT = 0x80030308;
+pub const STG_E_CSS_SCRAMBLED_SECTOR: HRESULT = 0x80030309;
+pub const STG_E_CSS_REGION_MISMATCH: HRESULT = 0x8003030A;
+pub const STG_E_RESETS_EXHAUSTED: HRESULT = 0x8003030B;
+pub const RPC_E_CALL_REJECTED: HRESULT = 0x80010001;
+pub const RPC_E_CALL_CANCELED: HRESULT = 0x80010002;
+pub const RPC_E_CANTPOST_INSENDCALL: HRESULT = 0x80010003;
+pub const RPC_E_CANTCALLOUT_INASYNCCALL: HRESULT = 0x80010004;
+pub const RPC_E_CANTCALLOUT_INEXTERNALCALL: HRESULT = 0x80010005;
+pub const RPC_E_CONNECTION_TERMINATED: HRESULT = 0x80010006;
+pub const RPC_E_SERVER_DIED: HRESULT = 0x80010007;
+pub const RPC_E_CLIENT_DIED: HRESULT = 0x80010008;
+pub const RPC_E_INVALID_DATAPACKET: HRESULT = 0x80010009;
+pub const RPC_E_CANTTRANSMIT_CALL: HRESULT = 0x8001000A;
+pub const RPC_E_CLIENT_CANTMARSHAL_DATA: HRESULT = 0x8001000B;
+pub const RPC_E_CLIENT_CANTUNMARSHAL_DATA: HRESULT = 0x8001000C;
+pub const RPC_E_SERVER_CANTMARSHAL_DATA: HRESULT = 0x8001000D;
+pub const RPC_E_SERVER_CANTUNMARSHAL_DATA: HRESULT = 0x8001000E;
+pub const RPC_E_INVALID_DATA: HRESULT = 0x8001000F;
+pub const RPC_E_INVALID_PARAMETER: HRESULT = 0x80010010;
+pub const RPC_E_CANTCALLOUT_AGAIN: HRESULT = 0x80010011;
+pub const RPC_E_SERVER_DIED_DNE: HRESULT = 0x80010012;
+pub const RPC_E_SYS_CALL_FAILED: HRESULT = 0x80010100;
+pub const RPC_E_OUT_OF_RESOURCES: HRESULT = 0x80010101;
+pub const RPC_E_ATTEMPTED_MULTITHREAD: HRESULT = 0x80010102;
+pub const RPC_E_NOT_REGISTERED: HRESULT = 0x80010103;
+pub const RPC_E_FAULT: HRESULT = 0x80010104;
+pub const RPC_E_SERVERFAULT: HRESULT = 0x80010105;
+pub const RPC_E_CHANGED_MODE: HRESULT = 0x80010106;
+pub const RPC_E_INVALIDMETHOD: HRESULT = 0x80010107;
+pub const RPC_E_DISCONNECTED: HRESULT = 0x80010108;
+pub const RPC_E_RETRY: HRESULT = 0x80010109;
+pub const RPC_E_SERVERCALL_RETRYLATER: HRESULT = 0x8001010A;
+pub const RPC_E_SERVERCALL_REJECTED: HRESULT = 0x8001010B;
+pub const RPC_E_INVALID_CALLDATA: HRESULT = 0x8001010C;
+pub const RPC_E_CANTCALLOUT_ININPUTSYNCCALL: HRESULT = 0x8001010D;
+pub const RPC_E_WRONG_THREAD: HRESULT = 0x8001010E;
+pub const RPC_E_THREAD_NOT_INIT: HRESULT = 0x8001010F;
+pub const RPC_E_VERSION_MISMATCH: HRESULT = 0x80010110;
+pub const RPC_E_INVALID_HEADER: HRESULT = 0x80010111;
+pub const RPC_E_INVALID_EXTENSION: HRESULT = 0x80010112;
+pub const RPC_E_INVALID_IPID: HRESULT = 0x80010113;
+pub const RPC_E_INVALID_OBJECT: HRESULT = 0x80010114;
+pub const RPC_S_CALLPENDING: HRESULT = 0x80010115;
+pub const RPC_S_WAITONTIMER: HRESULT = 0x80010116;
+pub const RPC_E_CALL_COMPLETE: HRESULT = 0x80010117;
+pub const RPC_E_UNSECURE_CALL: HRESULT = 0x80010118;
+pub const RPC_E_TOO_LATE: HRESULT = 0x80010119;
+pub const RPC_E_NO_GOOD_SECURITY_PACKAGES: HRESULT = 0x8001011A;
+pub const RPC_E_ACCESS_DENIED: HRESULT = 0x8001011B;
+pub const RPC_E_REMOTE_DISABLED: HRESULT = 0x8001011C;
+pub const RPC_E_INVALID_OBJREF: HRESULT = 0x8001011D;
+pub const RPC_E_NO_CONTEXT: HRESULT = 0x8001011E;
+pub const RPC_E_TIMEOUT: HRESULT = 0x8001011F;
+pub const RPC_E_NO_SYNC: HRESULT = 0x80010120;
+pub const RPC_E_FULLSIC_REQUIRED: HRESULT = 0x80010121;
+pub const RPC_E_INVALID_STD_NAME: HRESULT = 0x80010122;
+pub const CO_E_FAILEDTOIMPERSONATE: HRESULT = 0x80010123;
+pub const CO_E_FAILEDTOGETSECCTX: HRESULT = 0x80010124;
+pub const CO_E_FAILEDTOOPENTHREADTOKEN: HRESULT = 0x80010125;
+pub const CO_E_FAILEDTOGETTOKENINFO: HRESULT = 0x80010126;
+pub const CO_E_TRUSTEEDOESNTMATCHCLIENT: HRESULT = 0x80010127;
+pub const CO_E_FAILEDTOQUERYCLIENTBLANKET: HRESULT = 0x80010128;
+pub const CO_E_FAILEDTOSETDACL: HRESULT = 0x80010129;
+pub const CO_E_ACCESSCHECKFAILED: HRESULT = 0x8001012A;
+pub const CO_E_NETACCESSAPIFAILED: HRESULT = 0x8001012B;
+pub const CO_E_WRONGTRUSTEENAMESYNTAX: HRESULT = 0x8001012C;
+pub const CO_E_INVALIDSID: HRESULT = 0x8001012D;
+pub const CO_E_CONVERSIONFAILED: HRESULT = 0x8001012E;
+pub const CO_E_NOMATCHINGSIDFOUND: HRESULT = 0x8001012F;
+pub const CO_E_LOOKUPACCSIDFAILED: HRESULT = 0x80010130;
+pub const CO_E_NOMATCHINGNAMEFOUND: HRESULT = 0x80010131;
+pub const CO_E_LOOKUPACCNAMEFAILED: HRESULT = 0x80010132;
+pub const CO_E_SETSERLHNDLFAILED: HRESULT = 0x80010133;
+pub const CO_E_FAILEDTOGETWINDIR: HRESULT = 0x80010134;
+pub const CO_E_PATHTOOLONG: HRESULT = 0x80010135;
+pub const CO_E_FAILEDTOGENUUID: HRESULT = 0x80010136;
+pub const CO_E_FAILEDTOCREATEFILE: HRESULT = 0x80010137;
+pub const CO_E_FAILEDTOCLOSEHANDLE: HRESULT = 0x80010138;
+pub const CO_E_EXCEEDSYSACLLIMIT: HRESULT = 0x80010139;
+pub const CO_E_ACESINWRONGORDER: HRESULT = 0x8001013A;
+pub const CO_E_INCOMPATIBLESTREAMVERSION: HRESULT = 0x8001013B;
+pub const CO_E_FAILEDTOOPENPROCESSTOKEN: HRESULT = 0x8001013C;
+pub const CO_E_DECODEFAILED: HRESULT = 0x8001013D;
+pub const CO_E_ACNOTINITIALIZED: HRESULT = 0x8001013F;
+pub const CO_E_CANCEL_DISABLED: HRESULT = 0x80010140;
+pub const RPC_E_UNEXPECTED: HRESULT = 0x8001FFFF;
+pub const ERROR_AUDITING_DISABLED: HRESULT = 0xC0090001;
+pub const ERROR_ALL_SIDS_FILTERED: HRESULT = 0xC0090002;
+pub const ERROR_BIZRULES_NOT_ENABLED: HRESULT = 0xC0090003;
+pub const NTE_BAD_UID: HRESULT = 0x80090001;
+pub const NTE_BAD_HASH: HRESULT = 0x80090002;
+pub const NTE_BAD_KEY: HRESULT = 0x80090003;
+pub const NTE_BAD_LEN: HRESULT = 0x80090004;
+pub const NTE_BAD_DATA: HRESULT = 0x80090005;
+pub const NTE_BAD_SIGNATURE: HRESULT = 0x80090006;
+pub const NTE_BAD_VER: HRESULT = 0x80090007;
+pub const NTE_BAD_ALGID: HRESULT = 0x80090008;
+pub const NTE_BAD_FLAGS: HRESULT = 0x80090009;
+pub const NTE_BAD_TYPE: HRESULT = 0x8009000A;
+pub const NTE_BAD_KEY_STATE: HRESULT = 0x8009000B;
+pub const NTE_BAD_HASH_STATE: HRESULT = 0x8009000C;
+pub const NTE_NO_KEY: HRESULT = 0x8009000D;
+pub const NTE_NO_MEMORY: HRESULT = 0x8009000E;
+pub const NTE_EXISTS: HRESULT = 0x8009000F;
+pub const NTE_PERM: HRESULT = 0x80090010;
+pub const NTE_NOT_FOUND: HRESULT = 0x80090011;
+pub const NTE_DOUBLE_ENCRYPT: HRESULT = 0x80090012;
+pub const NTE_BAD_PROVIDER: HRESULT = 0x80090013;
+pub const NTE_BAD_PROV_TYPE: HRESULT = 0x80090014;
+pub const NTE_BAD_PUBLIC_KEY: HRESULT = 0x80090015;
+pub const NTE_BAD_KEYSET: HRESULT = 0x80090016;
+pub const NTE_PROV_TYPE_NOT_DEF: HRESULT = 0x80090017;
+pub const NTE_PROV_TYPE_ENTRY_BAD: HRESULT = 0x80090018;
+pub const NTE_KEYSET_NOT_DEF: HRESULT = 0x80090019;
+pub const NTE_KEYSET_ENTRY_BAD: HRESULT = 0x8009001A;
+pub const NTE_PROV_TYPE_NO_MATCH: HRESULT = 0x8009001B;
+pub const NTE_SIGNATURE_FILE_BAD: HRESULT = 0x8009001C;
+pub const NTE_PROVIDER_DLL_FAIL: HRESULT = 0x8009001D;
+pub const NTE_PROV_DLL_NOT_FOUND: HRESULT = 0x8009001E;
+pub const NTE_BAD_KEYSET_PARAM: HRESULT = 0x8009001F;
+pub const NTE_FAIL: HRESULT = 0x80090020;
+pub const NTE_SYS_ERR: HRESULT = 0x80090021;
+pub const NTE_SILENT_CONTEXT: HRESULT = 0x80090022;
+pub const NTE_TOKEN_KEYSET_STORAGE_FULL: HRESULT = 0x80090023;
+pub const NTE_TEMPORARY_PROFILE: HRESULT = 0x80090024;
+pub const NTE_FIXEDPARAMETER: HRESULT = 0x80090025;
+pub const NTE_INVALID_HANDLE: HRESULT = 0x80090026;
+pub const NTE_INVALID_PARAMETER: HRESULT = 0x80090027;
+pub const NTE_BUFFER_TOO_SMALL: HRESULT = 0x80090028;
+pub const NTE_NOT_SUPPORTED: HRESULT = 0x80090029;
+pub const NTE_NO_MORE_ITEMS: HRESULT = 0x8009002A;
+pub const NTE_BUFFERS_OVERLAP: HRESULT = 0x8009002B;
+pub const NTE_DECRYPTION_FAILURE: HRESULT = 0x8009002C;
+pub const NTE_INTERNAL_ERROR: HRESULT = 0x8009002D;
+pub const NTE_UI_REQUIRED: HRESULT = 0x8009002E;
+pub const NTE_HMAC_NOT_SUPPORTED: HRESULT = 0x8009002F;
+pub const NTE_DEVICE_NOT_READY: HRESULT = 0x80090030;
+pub const NTE_AUTHENTICATION_IGNORED: HRESULT = 0x80090031;
+pub const NTE_VALIDATION_FAILED: HRESULT = 0x80090032;
+pub const NTE_INCORRECT_PASSWORD: HRESULT = 0x80090033;
+pub const NTE_ENCRYPTION_FAILURE: HRESULT = 0x80090034;
+pub const NTE_DEVICE_NOT_FOUND: HRESULT = 0x80090035;
+pub const SEC_E_INSUFFICIENT_MEMORY: HRESULT = 0x80090300;
+pub const SEC_E_INVALID_HANDLE: HRESULT = 0x80090301;
+pub const SEC_E_UNSUPPORTED_FUNCTION: HRESULT = 0x80090302;
+pub const SEC_E_TARGET_UNKNOWN: HRESULT = 0x80090303;
+pub const SEC_E_INTERNAL_ERROR: HRESULT = 0x80090304;
+pub const SEC_E_SECPKG_NOT_FOUND: HRESULT = 0x80090305;
+pub const SEC_E_NOT_OWNER: HRESULT = 0x80090306;
+pub const SEC_E_CANNOT_INSTALL: HRESULT = 0x80090307;
+pub const SEC_E_INVALID_TOKEN: HRESULT = 0x80090308;
+pub const SEC_E_CANNOT_PACK: HRESULT = 0x80090309;
+pub const SEC_E_QOP_NOT_SUPPORTED: HRESULT = 0x8009030A;
+pub const SEC_E_NO_IMPERSONATION: HRESULT = 0x8009030B;
+pub const SEC_E_LOGON_DENIED: HRESULT = 0x8009030C;
+pub const SEC_E_UNKNOWN_CREDENTIALS: HRESULT = 0x8009030D;
+pub const SEC_E_NO_CREDENTIALS: HRESULT = 0x8009030E;
+pub const SEC_E_MESSAGE_ALTERED: HRESULT = 0x8009030F;
+pub const SEC_E_OUT_OF_SEQUENCE: HRESULT = 0x80090310;
+pub const SEC_E_NO_AUTHENTICATING_AUTHORITY: HRESULT = 0x80090311;
+pub const SEC_I_CONTINUE_NEEDED: HRESULT = 0x00090312;
+pub const SEC_I_COMPLETE_NEEDED: HRESULT = 0x00090313;
+pub const SEC_I_COMPLETE_AND_CONTINUE: HRESULT = 0x00090314;
+pub const SEC_I_LOCAL_LOGON: HRESULT = 0x00090315;
+pub const SEC_E_BAD_PKGID: HRESULT = 0x80090316;
+pub const SEC_E_CONTEXT_EXPIRED: HRESULT = 0x80090317;
+pub const SEC_I_CONTEXT_EXPIRED: HRESULT = 0x00090317;
+pub const SEC_E_INCOMPLETE_MESSAGE: HRESULT = 0x80090318;
+pub const SEC_E_INCOMPLETE_CREDENTIALS: HRESULT = 0x80090320;
+pub const SEC_E_BUFFER_TOO_SMALL: HRESULT = 0x80090321;
+pub const SEC_I_INCOMPLETE_CREDENTIALS: HRESULT = 0x00090320;
+pub const SEC_I_RENEGOTIATE: HRESULT = 0x00090321;
+pub const SEC_E_WRONG_PRINCIPAL: HRESULT = 0x80090322;
+pub const SEC_I_NO_LSA_CONTEXT: HRESULT = 0x00090323;
+pub const SEC_E_TIME_SKEW: HRESULT = 0x80090324;
+pub const SEC_E_UNTRUSTED_ROOT: HRESULT = 0x80090325;
+pub const SEC_E_ILLEGAL_MESSAGE: HRESULT = 0x80090326;
+pub const SEC_E_CERT_UNKNOWN: HRESULT = 0x80090327;
+pub const SEC_E_CERT_EXPIRED: HRESULT = 0x80090328;
+pub const SEC_E_ENCRYPT_FAILURE: HRESULT = 0x80090329;
+pub const SEC_E_DECRYPT_FAILURE: HRESULT = 0x80090330;
+pub const SEC_E_ALGORITHM_MISMATCH: HRESULT = 0x80090331;
+pub const SEC_E_SECURITY_QOS_FAILED: HRESULT = 0x80090332;
+pub const SEC_E_UNFINISHED_CONTEXT_DELETED: HRESULT = 0x80090333;
+pub const SEC_E_NO_TGT_REPLY: HRESULT = 0x80090334;
+pub const SEC_E_NO_IP_ADDRESSES: HRESULT = 0x80090335;
+pub const SEC_E_WRONG_CREDENTIAL_HANDLE: HRESULT = 0x80090336;
+pub const SEC_E_CRYPTO_SYSTEM_INVALID: HRESULT = 0x80090337;
+pub const SEC_E_MAX_REFERRALS_EXCEEDED: HRESULT = 0x80090338;
+pub const SEC_E_MUST_BE_KDC: HRESULT = 0x80090339;
+pub const SEC_E_STRONG_CRYPTO_NOT_SUPPORTED: HRESULT = 0x8009033A;
+pub const SEC_E_TOO_MANY_PRINCIPALS: HRESULT = 0x8009033B;
+pub const SEC_E_NO_PA_DATA: HRESULT = 0x8009033C;
+pub const SEC_E_PKINIT_NAME_MISMATCH: HRESULT = 0x8009033D;
+pub const SEC_E_SMARTCARD_LOGON_REQUIRED: HRESULT = 0x8009033E;
+pub const SEC_E_SHUTDOWN_IN_PROGRESS: HRESULT = 0x8009033F;
+pub const SEC_E_KDC_INVALID_REQUEST: HRESULT = 0x80090340;
+pub const SEC_E_KDC_UNABLE_TO_REFER: HRESULT = 0x80090341;
+pub const SEC_E_KDC_UNKNOWN_ETYPE: HRESULT = 0x80090342;
+pub const SEC_E_UNSUPPORTED_PREAUTH: HRESULT = 0x80090343;
+pub const SEC_E_DELEGATION_REQUIRED: HRESULT = 0x80090345;
+pub const SEC_E_BAD_BINDINGS: HRESULT = 0x80090346;
+pub const SEC_E_MULTIPLE_ACCOUNTS: HRESULT = 0x80090347;
+pub const SEC_E_NO_KERB_KEY: HRESULT = 0x80090348;
+pub const SEC_E_CERT_WRONG_USAGE: HRESULT = 0x80090349;
+pub const SEC_E_DOWNGRADE_DETECTED: HRESULT = 0x80090350;
+pub const SEC_E_SMARTCARD_CERT_REVOKED: HRESULT = 0x80090351;
+pub const SEC_E_ISSUING_CA_UNTRUSTED: HRESULT = 0x80090352;
+pub const SEC_E_REVOCATION_OFFLINE_C: HRESULT = 0x80090353;
+pub const SEC_E_PKINIT_CLIENT_FAILURE: HRESULT = 0x80090354;
+pub const SEC_E_SMARTCARD_CERT_EXPIRED: HRESULT = 0x80090355;
+pub const SEC_E_NO_S4U_PROT_SUPPORT: HRESULT = 0x80090356;
+pub const SEC_E_CROSSREALM_DELEGATION_FAILURE: HRESULT = 0x80090357;
+pub const SEC_E_REVOCATION_OFFLINE_KDC: HRESULT = 0x80090358;
+pub const SEC_E_ISSUING_CA_UNTRUSTED_KDC: HRESULT = 0x80090359;
+pub const SEC_E_KDC_CERT_EXPIRED: HRESULT = 0x8009035A;
+pub const SEC_E_KDC_CERT_REVOKED: HRESULT = 0x8009035B;
+pub const SEC_I_SIGNATURE_NEEDED: HRESULT = 0x0009035C;
+pub const SEC_E_INVALID_PARAMETER: HRESULT = 0x8009035D;
+pub const SEC_E_DELEGATION_POLICY: HRESULT = 0x8009035E;
+pub const SEC_E_POLICY_NLTM_ONLY: HRESULT = 0x8009035F;
+pub const SEC_I_NO_RENEGOTIATION: HRESULT = 0x00090360;
+pub const SEC_E_NO_CONTEXT: HRESULT = 0x80090361;
+pub const SEC_E_PKU2U_CERT_FAILURE: HRESULT = 0x80090362;
+pub const SEC_E_MUTUAL_AUTH_FAILED: HRESULT = 0x80090363;
+pub const SEC_I_MESSAGE_FRAGMENT: HRESULT = 0x00090364;
+pub const SEC_E_ONLY_HTTPS_ALLOWED: HRESULT = 0x80090365;
+pub const SEC_I_CONTINUE_NEEDED_MESSAGE_OK: HRESULT = 0x00090366;
+pub const SEC_E_APPLICATION_PROTOCOL_MISMATCH: HRESULT = 0x80090367;
+pub const SEC_E_NO_SPM: HRESULT = SEC_E_INTERNAL_ERROR;
+pub const SEC_E_NOT_SUPPORTED: HRESULT = SEC_E_UNSUPPORTED_FUNCTION;
+pub const CRYPT_E_MSG_ERROR: HRESULT = 0x80091001;
+pub const CRYPT_E_UNKNOWN_ALGO: HRESULT = 0x80091002;
+pub const CRYPT_E_OID_FORMAT: HRESULT = 0x80091003;
+pub const CRYPT_E_INVALID_MSG_TYPE: HRESULT = 0x80091004;
+pub const CRYPT_E_UNEXPECTED_ENCODING: HRESULT = 0x80091005;
+pub const CRYPT_E_AUTH_ATTR_MISSING: HRESULT = 0x80091006;
+pub const CRYPT_E_HASH_VALUE: HRESULT = 0x80091007;
+pub const CRYPT_E_INVALID_INDEX: HRESULT = 0x80091008;
+pub const CRYPT_E_ALREADY_DECRYPTED: HRESULT = 0x80091009;
+pub const CRYPT_E_NOT_DECRYPTED: HRESULT = 0x8009100A;
+pub const CRYPT_E_RECIPIENT_NOT_FOUND: HRESULT = 0x8009100B;
+pub const CRYPT_E_CONTROL_TYPE: HRESULT = 0x8009100C;
+pub const CRYPT_E_ISSUER_SERIALNUMBER: HRESULT = 0x8009100D;
+pub const CRYPT_E_SIGNER_NOT_FOUND: HRESULT = 0x8009100E;
+pub const CRYPT_E_ATTRIBUTES_MISSING: HRESULT = 0x8009100F;
+pub const CRYPT_E_STREAM_MSG_NOT_READY: HRESULT = 0x80091010;
+pub const CRYPT_E_STREAM_INSUFFICIENT_DATA: HRESULT = 0x80091011;
+pub const CRYPT_I_NEW_PROTECTION_REQUIRED: HRESULT = 0x00091012;
+pub const CRYPT_E_BAD_LEN: HRESULT = 0x80092001;
+pub const CRYPT_E_BAD_ENCODE: HRESULT = 0x80092002;
+pub const CRYPT_E_FILE_ERROR: HRESULT = 0x80092003;
+pub const CRYPT_E_NOT_FOUND: HRESULT = 0x80092004;
+pub const CRYPT_E_EXISTS: HRESULT = 0x80092005;
+pub const CRYPT_E_NO_PROVIDER: HRESULT = 0x80092006;
+pub const CRYPT_E_SELF_SIGNED: HRESULT = 0x80092007;
+pub const CRYPT_E_DELETED_PREV: HRESULT = 0x80092008;
+pub const CRYPT_E_NO_MATCH: HRESULT = 0x80092009;
+pub const CRYPT_E_UNEXPECTED_MSG_TYPE: HRESULT = 0x8009200A;
+pub const CRYPT_E_NO_KEY_PROPERTY: HRESULT = 0x8009200B;
+pub const CRYPT_E_NO_DECRYPT_CERT: HRESULT = 0x8009200C;
+pub const CRYPT_E_BAD_MSG: HRESULT = 0x8009200D;
+pub const CRYPT_E_NO_SIGNER: HRESULT = 0x8009200E;
+pub const CRYPT_E_PENDING_CLOSE: HRESULT = 0x8009200F;
+pub const CRYPT_E_REVOKED: HRESULT = 0x80092010;
+pub const CRYPT_E_NO_REVOCATION_DLL: HRESULT = 0x80092011;
+pub const CRYPT_E_NO_REVOCATION_CHECK: HRESULT = 0x80092012;
+pub const CRYPT_E_REVOCATION_OFFLINE: HRESULT = 0x80092013;
+pub const CRYPT_E_NOT_IN_REVOCATION_DATABASE: HRESULT = 0x80092014;
+pub const CRYPT_E_INVALID_NUMERIC_STRING: HRESULT = 0x80092020;
+pub const CRYPT_E_INVALID_PRINTABLE_STRING: HRESULT = 0x80092021;
+pub const CRYPT_E_INVALID_IA5_STRING: HRESULT = 0x80092022;
+pub const CRYPT_E_INVALID_X500_STRING: HRESULT = 0x80092023;
+pub const CRYPT_E_NOT_CHAR_STRING: HRESULT = 0x80092024;
+pub const CRYPT_E_FILERESIZED: HRESULT = 0x80092025;
+pub const CRYPT_E_SECURITY_SETTINGS: HRESULT = 0x80092026;
+pub const CRYPT_E_NO_VERIFY_USAGE_DLL: HRESULT = 0x80092027;
+pub const CRYPT_E_NO_VERIFY_USAGE_CHECK: HRESULT = 0x80092028;
+pub const CRYPT_E_VERIFY_USAGE_OFFLINE: HRESULT = 0x80092029;
+pub const CRYPT_E_NOT_IN_CTL: HRESULT = 0x8009202A;
+pub const CRYPT_E_NO_TRUSTED_SIGNER: HRESULT = 0x8009202B;
+pub const CRYPT_E_MISSING_PUBKEY_PARA: HRESULT = 0x8009202C;
+pub const CRYPT_E_OBJECT_LOCATOR_OBJECT_NOT_FOUND: HRESULT = 0x8009202D;
+pub const CRYPT_E_OSS_ERROR: HRESULT = 0x80093000;
+pub const OSS_MORE_BUF: HRESULT = 0x80093001;
+pub const OSS_NEGATIVE_UINTEGER: HRESULT = 0x80093002;
+pub const OSS_PDU_RANGE: HRESULT = 0x80093003;
+pub const OSS_MORE_INPUT: HRESULT = 0x80093004;
+pub const OSS_DATA_ERROR: HRESULT = 0x80093005;
+pub const OSS_BAD_ARG: HRESULT = 0x80093006;
+pub const OSS_BAD_VERSION: HRESULT = 0x80093007;
+pub const OSS_OUT_MEMORY: HRESULT = 0x80093008;
+pub const OSS_PDU_MISMATCH: HRESULT = 0x80093009;
+pub const OSS_LIMITED: HRESULT = 0x8009300A;
+pub const OSS_BAD_PTR: HRESULT = 0x8009300B;
+pub const OSS_BAD_TIME: HRESULT = 0x8009300C;
+pub const OSS_INDEFINITE_NOT_SUPPORTED: HRESULT = 0x8009300D;
+pub const OSS_MEM_ERROR: HRESULT = 0x8009300E;
+pub const OSS_BAD_TABLE: HRESULT = 0x8009300F;
+pub const OSS_TOO_LONG: HRESULT = 0x80093010;
+pub const OSS_CONSTRAINT_VIOLATED: HRESULT = 0x80093011;
+pub const OSS_FATAL_ERROR: HRESULT = 0x80093012;
+pub const OSS_ACCESS_SERIALIZATION_ERROR: HRESULT = 0x80093013;
+pub const OSS_NULL_TBL: HRESULT = 0x80093014;
+pub const OSS_NULL_FCN: HRESULT = 0x80093015;
+pub const OSS_BAD_ENCRULES: HRESULT = 0x80093016;
+pub const OSS_UNAVAIL_ENCRULES: HRESULT = 0x80093017;
+pub const OSS_CANT_OPEN_TRACE_WINDOW: HRESULT = 0x80093018;
+pub const OSS_UNIMPLEMENTED: HRESULT = 0x80093019;
+pub const OSS_OID_DLL_NOT_LINKED: HRESULT = 0x8009301A;
+pub const OSS_CANT_OPEN_TRACE_FILE: HRESULT = 0x8009301B;
+pub const OSS_TRACE_FILE_ALREADY_OPEN: HRESULT = 0x8009301C;
+pub const OSS_TABLE_MISMATCH: HRESULT = 0x8009301D;
+pub const OSS_TYPE_NOT_SUPPORTED: HRESULT = 0x8009301E;
+pub const OSS_REAL_DLL_NOT_LINKED: HRESULT = 0x8009301F;
+pub const OSS_REAL_CODE_NOT_LINKED: HRESULT = 0x80093020;
+pub const OSS_OUT_OF_RANGE: HRESULT = 0x80093021;
+pub const OSS_COPIER_DLL_NOT_LINKED: HRESULT = 0x80093022;
+pub const OSS_CONSTRAINT_DLL_NOT_LINKED: HRESULT = 0x80093023;
+pub const OSS_COMPARATOR_DLL_NOT_LINKED: HRESULT = 0x80093024;
+pub const OSS_COMPARATOR_CODE_NOT_LINKED: HRESULT = 0x80093025;
+pub const OSS_MEM_MGR_DLL_NOT_LINKED: HRESULT = 0x80093026;
+pub const OSS_PDV_DLL_NOT_LINKED: HRESULT = 0x80093027;
+pub const OSS_PDV_CODE_NOT_LINKED: HRESULT = 0x80093028;
+pub const OSS_API_DLL_NOT_LINKED: HRESULT = 0x80093029;
+pub const OSS_BERDER_DLL_NOT_LINKED: HRESULT = 0x8009302A;
+pub const OSS_PER_DLL_NOT_LINKED: HRESULT = 0x8009302B;
+pub const OSS_OPEN_TYPE_ERROR: HRESULT = 0x8009302C;
+pub const OSS_MUTEX_NOT_CREATED: HRESULT = 0x8009302D;
+pub const OSS_CANT_CLOSE_TRACE_FILE: HRESULT = 0x8009302E;
+pub const CRYPT_E_ASN1_ERROR: HRESULT = 0x80093100;
+pub const CRYPT_E_ASN1_INTERNAL: HRESULT = 0x80093101;
+pub const CRYPT_E_ASN1_EOD: HRESULT = 0x80093102;
+pub const CRYPT_E_ASN1_CORRUPT: HRESULT = 0x80093103;
+pub const CRYPT_E_ASN1_LARGE: HRESULT = 0x80093104;
+pub const CRYPT_E_ASN1_CONSTRAINT: HRESULT = 0x80093105;
+pub const CRYPT_E_ASN1_MEMORY: HRESULT = 0x80093106;
+pub const CRYPT_E_ASN1_OVERFLOW: HRESULT = 0x80093107;
+pub const CRYPT_E_ASN1_BADPDU: HRESULT = 0x80093108;
+pub const CRYPT_E_ASN1_BADARGS: HRESULT = 0x80093109;
+pub const CRYPT_E_ASN1_BADREAL: HRESULT = 0x8009310A;
+pub const CRYPT_E_ASN1_BADTAG: HRESULT = 0x8009310B;
+pub const CRYPT_E_ASN1_CHOICE: HRESULT = 0x8009310C;
+pub const CRYPT_E_ASN1_RULE: HRESULT = 0x8009310D;
+pub const CRYPT_E_ASN1_UTF8: HRESULT = 0x8009310E;
+pub const CRYPT_E_ASN1_PDU_TYPE: HRESULT = 0x80093133;
+pub const CRYPT_E_ASN1_NYI: HRESULT = 0x80093134;
+pub const CRYPT_E_ASN1_EXTENDED: HRESULT = 0x80093201;
+pub const CRYPT_E_ASN1_NOEOD: HRESULT = 0x80093202;
+pub const CERTSRV_E_BAD_REQUESTSUBJECT: HRESULT = 0x80094001;
+pub const CERTSRV_E_NO_REQUEST: HRESULT = 0x80094002;
+pub const CERTSRV_E_BAD_REQUESTSTATUS: HRESULT = 0x80094003;
+pub const CERTSRV_E_PROPERTY_EMPTY: HRESULT = 0x80094004;
+pub const CERTSRV_E_INVALID_CA_CERTIFICATE: HRESULT = 0x80094005;
+pub const CERTSRV_E_SERVER_SUSPENDED: HRESULT = 0x80094006;
+pub const CERTSRV_E_ENCODING_LENGTH: HRESULT = 0x80094007;
+pub const CERTSRV_E_ROLECONFLICT: HRESULT = 0x80094008;
+pub const CERTSRV_E_RESTRICTEDOFFICER: HRESULT = 0x80094009;
+pub const CERTSRV_E_KEY_ARCHIVAL_NOT_CONFIGURED: HRESULT = 0x8009400A;
+pub const CERTSRV_E_NO_VALID_KRA: HRESULT = 0x8009400B;
+pub const CERTSRV_E_BAD_REQUEST_KEY_ARCHIVAL: HRESULT = 0x8009400C;
+pub const CERTSRV_E_NO_CAADMIN_DEFINED: HRESULT = 0x8009400D;
+pub const CERTSRV_E_BAD_RENEWAL_CERT_ATTRIBUTE: HRESULT = 0x8009400E;
+pub const CERTSRV_E_NO_DB_SESSIONS: HRESULT = 0x8009400F;
+pub const CERTSRV_E_ALIGNMENT_FAULT: HRESULT = 0x80094010;
+pub const CERTSRV_E_ENROLL_DENIED: HRESULT = 0x80094011;
+pub const CERTSRV_E_TEMPLATE_DENIED: HRESULT = 0x80094012;
+pub const CERTSRV_E_DOWNLEVEL_DC_SSL_OR_UPGRADE: HRESULT = 0x80094013;
+pub const CERTSRV_E_ADMIN_DENIED_REQUEST: HRESULT = 0x80094014;
+pub const CERTSRV_E_NO_POLICY_SERVER: HRESULT = 0x80094015;
+pub const CERTSRV_E_WEAK_SIGNATURE_OR_KEY: HRESULT = 0x80094016;
+pub const CERTSRV_E_KEY_ATTESTATION_NOT_SUPPORTED: HRESULT = 0x80094017;
+pub const CERTSRV_E_ENCRYPTION_CERT_REQUIRED: HRESULT = 0x80094018;
+pub const CERTSRV_E_UNSUPPORTED_CERT_TYPE: HRESULT = 0x80094800;
+pub const CERTSRV_E_NO_CERT_TYPE: HRESULT = 0x80094801;
+pub const CERTSRV_E_TEMPLATE_CONFLICT: HRESULT = 0x80094802;
+pub const CERTSRV_E_SUBJECT_ALT_NAME_REQUIRED: HRESULT = 0x80094803;
+pub const CERTSRV_E_ARCHIVED_KEY_REQUIRED: HRESULT = 0x80094804;
+pub const CERTSRV_E_SMIME_REQUIRED: HRESULT = 0x80094805;
+pub const CERTSRV_E_BAD_RENEWAL_SUBJECT: HRESULT = 0x80094806;
+pub const CERTSRV_E_BAD_TEMPLATE_VERSION: HRESULT = 0x80094807;
+pub const CERTSRV_E_TEMPLATE_POLICY_REQUIRED: HRESULT = 0x80094808;
+pub const CERTSRV_E_SIGNATURE_POLICY_REQUIRED: HRESULT = 0x80094809;
+pub const CERTSRV_E_SIGNATURE_COUNT: HRESULT = 0x8009480A;
+pub const CERTSRV_E_SIGNATURE_REJECTED: HRESULT = 0x8009480B;
+pub const CERTSRV_E_ISSUANCE_POLICY_REQUIRED: HRESULT = 0x8009480C;
+pub const CERTSRV_E_SUBJECT_UPN_REQUIRED: HRESULT = 0x8009480D;
+pub const CERTSRV_E_SUBJECT_DIRECTORY_GUID_REQUIRED: HRESULT = 0x8009480E;
+pub const CERTSRV_E_SUBJECT_DNS_REQUIRED: HRESULT = 0x8009480F;
+pub const CERTSRV_E_ARCHIVED_KEY_UNEXPECTED: HRESULT = 0x80094810;
+pub const CERTSRV_E_KEY_LENGTH: HRESULT = 0x80094811;
+pub const CERTSRV_E_SUBJECT_EMAIL_REQUIRED: HRESULT = 0x80094812;
+pub const CERTSRV_E_UNKNOWN_CERT_TYPE: HRESULT = 0x80094813;
+pub const CERTSRV_E_CERT_TYPE_OVERLAP: HRESULT = 0x80094814;
+pub const CERTSRV_E_TOO_MANY_SIGNATURES: HRESULT = 0x80094815;
+pub const CERTSRV_E_RENEWAL_BAD_PUBLIC_KEY: HRESULT = 0x80094816;
+pub const CERTSRV_E_INVALID_EK: HRESULT = 0x80094817;
+pub const CERTSRV_E_INVALID_IDBINDING: HRESULT = 0x80094818;
+pub const CERTSRV_E_INVALID_ATTESTATION: HRESULT = 0x80094819;
+pub const CERTSRV_E_KEY_ATTESTATION: HRESULT = 0x8009481A;
+pub const CERTSRV_E_CORRUPT_KEY_ATTESTATION: HRESULT = 0x8009481B;
+pub const CERTSRV_E_EXPIRED_CHALLENGE: HRESULT = 0x8009481C;
+pub const CERTSRV_E_INVALID_RESPONSE: HRESULT = 0x8009481D;
+pub const CERTSRV_E_INVALID_REQUESTID: HRESULT = 0x8009481E;
+pub const XENROLL_E_KEY_NOT_EXPORTABLE: HRESULT = 0x80095000;
+pub const XENROLL_E_CANNOT_ADD_ROOT_CERT: HRESULT = 0x80095001;
+pub const XENROLL_E_RESPONSE_KA_HASH_NOT_FOUND: HRESULT = 0x80095002;
+pub const XENROLL_E_RESPONSE_UNEXPECTED_KA_HASH: HRESULT = 0x80095003;
+pub const XENROLL_E_RESPONSE_KA_HASH_MISMATCH: HRESULT = 0x80095004;
+pub const XENROLL_E_KEYSPEC_SMIME_MISMATCH: HRESULT = 0x80095005;
+pub const TRUST_E_SYSTEM_ERROR: HRESULT = 0x80096001;
+pub const TRUST_E_NO_SIGNER_CERT: HRESULT = 0x80096002;
+pub const TRUST_E_COUNTER_SIGNER: HRESULT = 0x80096003;
+pub const TRUST_E_CERT_SIGNATURE: HRESULT = 0x80096004;
+pub const TRUST_E_TIME_STAMP: HRESULT = 0x80096005;
+pub const TRUST_E_BAD_DIGEST: HRESULT = 0x80096010;
+pub const TRUST_E_BASIC_CONSTRAINTS: HRESULT = 0x80096019;
+pub const TRUST_E_FINANCIAL_CRITERIA: HRESULT = 0x8009601E;
+pub const MSSIPOTF_E_OUTOFMEMRANGE: HRESULT = 0x80097001;
+pub const MSSIPOTF_E_CANTGETOBJECT: HRESULT = 0x80097002;
+pub const MSSIPOTF_E_NOHEADTABLE: HRESULT = 0x80097003;
+pub const MSSIPOTF_E_BAD_MAGICNUMBER: HRESULT = 0x80097004;
+pub const MSSIPOTF_E_BAD_OFFSET_TABLE: HRESULT = 0x80097005;
+pub const MSSIPOTF_E_TABLE_TAGORDER: HRESULT = 0x80097006;
+pub const MSSIPOTF_E_TABLE_LONGWORD: HRESULT = 0x80097007;
+pub const MSSIPOTF_E_BAD_FIRST_TABLE_PLACEMENT: HRESULT = 0x80097008;
+pub const MSSIPOTF_E_TABLES_OVERLAP: HRESULT = 0x80097009;
+pub const MSSIPOTF_E_TABLE_PADBYTES: HRESULT = 0x8009700A;
+pub const MSSIPOTF_E_FILETOOSMALL: HRESULT = 0x8009700B;
+pub const MSSIPOTF_E_TABLE_CHECKSUM: HRESULT = 0x8009700C;
+pub const MSSIPOTF_E_FILE_CHECKSUM: HRESULT = 0x8009700D;
+pub const MSSIPOTF_E_FAILED_POLICY: HRESULT = 0x80097010;
+pub const MSSIPOTF_E_FAILED_HINTS_CHECK: HRESULT = 0x80097011;
+pub const MSSIPOTF_E_NOT_OPENTYPE: HRESULT = 0x80097012;
+pub const MSSIPOTF_E_FILE: HRESULT = 0x80097013;
+pub const MSSIPOTF_E_CRYPT: HRESULT = 0x80097014;
+pub const MSSIPOTF_E_BADVERSION: HRESULT = 0x80097015;
+pub const MSSIPOTF_E_DSIG_STRUCTURE: HRESULT = 0x80097016;
+pub const MSSIPOTF_E_PCONST_CHECK: HRESULT = 0x80097017;
+pub const MSSIPOTF_E_STRUCTURE: HRESULT = 0x80097018;
+pub const ERROR_CRED_REQUIRES_CONFIRMATION: HRESULT = 0x80097019;
+pub const NTE_OP_OK: HRESULT = 0;
+pub const TRUST_E_PROVIDER_UNKNOWN: HRESULT = 0x800B0001;
+pub const TRUST_E_ACTION_UNKNOWN: HRESULT = 0x800B0002;
+pub const TRUST_E_SUBJECT_FORM_UNKNOWN: HRESULT = 0x800B0003;
+pub const TRUST_E_SUBJECT_NOT_TRUSTED: HRESULT = 0x800B0004;
+pub const DIGSIG_E_ENCODE: HRESULT = 0x800B0005;
+pub const DIGSIG_E_DECODE: HRESULT = 0x800B0006;
+pub const DIGSIG_E_EXTENSIBILITY: HRESULT = 0x800B0007;
+pub const DIGSIG_E_CRYPTO: HRESULT = 0x800B0008;
+pub const PERSIST_E_SIZEDEFINITE: HRESULT = 0x800B0009;
+pub const PERSIST_E_SIZEINDEFINITE: HRESULT = 0x800B000A;
+pub const PERSIST_E_NOTSELFSIZING: HRESULT = 0x800B000B;
+pub const TRUST_E_NOSIGNATURE: HRESULT = 0x800B0100;
+pub const CERT_E_EXPIRED: HRESULT = 0x800B0101;
+pub const CERT_E_VALIDITYPERIODNESTING: HRESULT = 0x800B0102;
+pub const CERT_E_ROLE: HRESULT = 0x800B0103;
+pub const CERT_E_PATHLENCONST: HRESULT = 0x800B0104;
+pub const CERT_E_CRITICAL: HRESULT = 0x800B0105;
+pub const CERT_E_PURPOSE: HRESULT = 0x800B0106;
+pub const CERT_E_ISSUERCHAINING: HRESULT = 0x800B0107;
+pub const CERT_E_MALFORMED: HRESULT = 0x800B0108;
+pub const CERT_E_UNTRUSTEDROOT: HRESULT = 0x800B0109;
+pub const CERT_E_CHAINING: HRESULT = 0x800B010A;
+pub const TRUST_E_FAIL: HRESULT = 0x800B010B;
+pub const CERT_E_REVOKED: HRESULT = 0x800B010C;
+pub const CERT_E_UNTRUSTEDTESTROOT: HRESULT = 0x800B010D;
+pub const CERT_E_REVOCATION_FAILURE: HRESULT = 0x800B010E;
+pub const CERT_E_CN_NO_MATCH: HRESULT = 0x800B010F;
+pub const CERT_E_WRONG_USAGE: HRESULT = 0x800B0110;
+pub const TRUST_E_EXPLICIT_DISTRUST: HRESULT = 0x800B0111;
+pub const CERT_E_UNTRUSTEDCA: HRESULT = 0x800B0112;
+pub const CERT_E_INVALID_POLICY: HRESULT = 0x800B0113;
+pub const CERT_E_INVALID_NAME: HRESULT = 0x800B0114;
+pub const SPAPI_E_EXPECTED_SECTION_NAME: HRESULT = 0x800F0000;
+pub const SPAPI_E_BAD_SECTION_NAME_LINE: HRESULT = 0x800F0001;
+pub const SPAPI_E_SECTION_NAME_TOO_LONG: HRESULT = 0x800F0002;
+pub const SPAPI_E_GENERAL_SYNTAX: HRESULT = 0x800F0003;
+pub const SPAPI_E_WRONG_INF_STYLE: HRESULT = 0x800F0100;
+pub const SPAPI_E_SECTION_NOT_FOUND: HRESULT = 0x800F0101;
+pub const SPAPI_E_LINE_NOT_FOUND: HRESULT = 0x800F0102;
+pub const SPAPI_E_NO_BACKUP: HRESULT = 0x800F0103;
+pub const SPAPI_E_NO_ASSOCIATED_CLASS: HRESULT = 0x800F0200;
+pub const SPAPI_E_CLASS_MISMATCH: HRESULT = 0x800F0201;
+pub const SPAPI_E_DUPLICATE_FOUND: HRESULT = 0x800F0202;
+pub const SPAPI_E_NO_DRIVER_SELECTED: HRESULT = 0x800F0203;
+pub const SPAPI_E_KEY_DOES_NOT_EXIST: HRESULT = 0x800F0204;
+pub const SPAPI_E_INVALID_DEVINST_NAME: HRESULT = 0x800F0205;
+pub const SPAPI_E_INVALID_CLASS: HRESULT = 0x800F0206;
+pub const SPAPI_E_DEVINST_ALREADY_EXISTS: HRESULT = 0x800F0207;
+pub const SPAPI_E_DEVINFO_NOT_REGISTERED: HRESULT = 0x800F0208;
+pub const SPAPI_E_INVALID_REG_PROPERTY: HRESULT = 0x800F0209;
+pub const SPAPI_E_NO_INF: HRESULT = 0x800F020A;
+pub const SPAPI_E_NO_SUCH_DEVINST: HRESULT = 0x800F020B;
+pub const SPAPI_E_CANT_LOAD_CLASS_ICON: HRESULT = 0x800F020C;
+pub const SPAPI_E_INVALID_CLASS_INSTALLER: HRESULT = 0x800F020D;
+pub const SPAPI_E_DI_DO_DEFAULT: HRESULT = 0x800F020E;
+pub const SPAPI_E_DI_NOFILECOPY: HRESULT = 0x800F020F;
+pub const SPAPI_E_INVALID_HWPROFILE: HRESULT = 0x800F0210;
+pub const SPAPI_E_NO_DEVICE_SELECTED: HRESULT = 0x800F0211;
+pub const SPAPI_E_DEVINFO_LIST_LOCKED: HRESULT = 0x800F0212;
+pub const SPAPI_E_DEVINFO_DATA_LOCKED: HRESULT = 0x800F0213;
+pub const SPAPI_E_DI_BAD_PATH: HRESULT = 0x800F0214;
+pub const SPAPI_E_NO_CLASSINSTALL_PARAMS: HRESULT = 0x800F0215;
+pub const SPAPI_E_FILEQUEUE_LOCKED: HRESULT = 0x800F0216;
+pub const SPAPI_E_BAD_SERVICE_INSTALLSECT: HRESULT = 0x800F0217;
+pub const SPAPI_E_NO_CLASS_DRIVER_LIST: HRESULT = 0x800F0218;
+pub const SPAPI_E_NO_ASSOCIATED_SERVICE: HRESULT = 0x800F0219;
+pub const SPAPI_E_NO_DEFAULT_DEVICE_INTERFACE: HRESULT = 0x800F021A;
+pub const SPAPI_E_DEVICE_INTERFACE_ACTIVE: HRESULT = 0x800F021B;
+pub const SPAPI_E_DEVICE_INTERFACE_REMOVED: HRESULT = 0x800F021C;
+pub const SPAPI_E_BAD_INTERFACE_INSTALLSECT: HRESULT = 0x800F021D;
+pub const SPAPI_E_NO_SUCH_INTERFACE_CLASS: HRESULT = 0x800F021E;
+pub const SPAPI_E_INVALID_REFERENCE_STRING: HRESULT = 0x800F021F;
+pub const SPAPI_E_INVALID_MACHINENAME: HRESULT = 0x800F0220;
+pub const SPAPI_E_REMOTE_COMM_FAILURE: HRESULT = 0x800F0221;
+pub const SPAPI_E_MACHINE_UNAVAILABLE: HRESULT = 0x800F0222;
+pub const SPAPI_E_NO_CONFIGMGR_SERVICES: HRESULT = 0x800F0223;
+pub const SPAPI_E_INVALID_PROPPAGE_PROVIDER: HRESULT = 0x800F0224;
+pub const SPAPI_E_NO_SUCH_DEVICE_INTERFACE: HRESULT = 0x800F0225;
+pub const SPAPI_E_DI_POSTPROCESSING_REQUIRED: HRESULT = 0x800F0226;
+pub const SPAPI_E_INVALID_COINSTALLER: HRESULT = 0x800F0227;
+pub const SPAPI_E_NO_COMPAT_DRIVERS: HRESULT = 0x800F0228;
+pub const SPAPI_E_NO_DEVICE_ICON: HRESULT = 0x800F0229;
+pub const SPAPI_E_INVALID_INF_LOGCONFIG: HRESULT = 0x800F022A;
+pub const SPAPI_E_DI_DONT_INSTALL: HRESULT = 0x800F022B;
+pub const SPAPI_E_INVALID_FILTER_DRIVER: HRESULT = 0x800F022C;
+pub const SPAPI_E_NON_WINDOWS_NT_DRIVER: HRESULT = 0x800F022D;
+pub const SPAPI_E_NON_WINDOWS_DRIVER: HRESULT = 0x800F022E;
+pub const SPAPI_E_NO_CATALOG_FOR_OEM_INF: HRESULT = 0x800F022F;
+pub const SPAPI_E_DEVINSTALL_QUEUE_NONNATIVE: HRESULT = 0x800F0230;
+pub const SPAPI_E_NOT_DISABLEABLE: HRESULT = 0x800F0231;
+pub const SPAPI_E_CANT_REMOVE_DEVINST: HRESULT = 0x800F0232;
+pub const SPAPI_E_INVALID_TARGET: HRESULT = 0x800F0233;
+pub const SPAPI_E_DRIVER_NONNATIVE: HRESULT = 0x800F0234;
+pub const SPAPI_E_IN_WOW64: HRESULT = 0x800F0235;
+pub const SPAPI_E_SET_SYSTEM_RESTORE_POINT: HRESULT = 0x800F0236;
+pub const SPAPI_E_INCORRECTLY_COPIED_INF: HRESULT = 0x800F0237;
+pub const SPAPI_E_SCE_DISABLED: HRESULT = 0x800F0238;
+pub const SPAPI_E_UNKNOWN_EXCEPTION: HRESULT = 0x800F0239;
+pub const SPAPI_E_PNP_REGISTRY_ERROR: HRESULT = 0x800F023A;
+pub const SPAPI_E_REMOTE_REQUEST_UNSUPPORTED: HRESULT = 0x800F023B;
+pub const SPAPI_E_NOT_AN_INSTALLED_OEM_INF: HRESULT = 0x800F023C;
+pub const SPAPI_E_INF_IN_USE_BY_DEVICES: HRESULT = 0x800F023D;
+pub const SPAPI_E_DI_FUNCTION_OBSOLETE: HRESULT = 0x800F023E;
+pub const SPAPI_E_NO_AUTHENTICODE_CATALOG: HRESULT = 0x800F023F;
+pub const SPAPI_E_AUTHENTICODE_DISALLOWED: HRESULT = 0x800F0240;
+pub const SPAPI_E_AUTHENTICODE_TRUSTED_PUBLISHER: HRESULT = 0x800F0241;
+pub const SPAPI_E_AUTHENTICODE_TRUST_NOT_ESTABLISHED: HRESULT = 0x800F0242;
+pub const SPAPI_E_AUTHENTICODE_PUBLISHER_NOT_TRUSTED: HRESULT = 0x800F0243;
+pub const SPAPI_E_SIGNATURE_OSATTRIBUTE_MISMATCH: HRESULT = 0x800F0244;
+pub const SPAPI_E_ONLY_VALIDATE_VIA_AUTHENTICODE: HRESULT = 0x800F0245;
+pub const SPAPI_E_DEVICE_INSTALLER_NOT_READY: HRESULT = 0x800F0246;
+pub const SPAPI_E_DRIVER_STORE_ADD_FAILED: HRESULT = 0x800F0247;
+pub const SPAPI_E_DEVICE_INSTALL_BLOCKED: HRESULT = 0x800F0248;
+pub const SPAPI_E_DRIVER_INSTALL_BLOCKED: HRESULT = 0x800F0249;
+pub const SPAPI_E_WRONG_INF_TYPE: HRESULT = 0x800F024A;
+pub const SPAPI_E_FILE_HASH_NOT_IN_CATALOG: HRESULT = 0x800F024B;
+pub const SPAPI_E_DRIVER_STORE_DELETE_FAILED: HRESULT = 0x800F024C;
+pub const SPAPI_E_UNRECOVERABLE_STACK_OVERFLOW: HRESULT = 0x800F0300;
+pub const SPAPI_E_ERROR_NOT_INSTALLED: HRESULT = 0x800F1000;
+pub const SCARD_S_SUCCESS: HRESULT = NO_ERROR as i32;
+pub const SCARD_F_INTERNAL_ERROR: HRESULT = 0x80100001;
+pub const SCARD_E_CANCELLED: HRESULT = 0x80100002;
+pub const SCARD_E_INVALID_HANDLE: HRESULT = 0x80100003;
+pub const SCARD_E_INVALID_PARAMETER: HRESULT = 0x80100004;
+pub const SCARD_E_INVALID_TARGET: HRESULT = 0x80100005;
+pub const SCARD_E_NO_MEMORY: HRESULT = 0x80100006;
+pub const SCARD_F_WAITED_TOO_LONG: HRESULT = 0x80100007;
+pub const SCARD_E_INSUFFICIENT_BUFFER: HRESULT = 0x80100008;
+pub const SCARD_E_UNKNOWN_READER: HRESULT = 0x80100009;
+pub const SCARD_E_TIMEOUT: HRESULT = 0x8010000A;
+pub const SCARD_E_SHARING_VIOLATION: HRESULT = 0x8010000B;
+pub const SCARD_E_NO_SMARTCARD: HRESULT = 0x8010000C;
+pub const SCARD_E_UNKNOWN_CARD: HRESULT = 0x8010000D;
+pub const SCARD_E_CANT_DISPOSE: HRESULT = 0x8010000E;
+pub const SCARD_E_PROTO_MISMATCH: HRESULT = 0x8010000F;
+pub const SCARD_E_NOT_READY: HRESULT = 0x80100010;
+pub const SCARD_E_INVALID_VALUE: HRESULT = 0x80100011;
+pub const SCARD_E_SYSTEM_CANCELLED: HRESULT = 0x80100012;
+pub const SCARD_F_COMM_ERROR: HRESULT = 0x80100013;
+pub const SCARD_F_UNKNOWN_ERROR: HRESULT = 0x80100014;
+pub const SCARD_E_INVALID_ATR: HRESULT = 0x80100015;
+pub const SCARD_E_NOT_TRANSACTED: HRESULT = 0x80100016;
+pub const SCARD_E_READER_UNAVAILABLE: HRESULT = 0x80100017;
+pub const SCARD_P_SHUTDOWN: HRESULT = 0x80100018;
+pub const SCARD_E_PCI_TOO_SMALL: HRESULT = 0x80100019;
+pub const SCARD_E_READER_UNSUPPORTED: HRESULT = 0x8010001A;
+pub const SCARD_E_DUPLICATE_READER: HRESULT = 0x8010001B;
+pub const SCARD_E_CARD_UNSUPPORTED: HRESULT = 0x8010001C;
+pub const SCARD_E_NO_SERVICE: HRESULT = 0x8010001D;
+pub const SCARD_E_SERVICE_STOPPED: HRESULT = 0x8010001E;
+pub const SCARD_E_UNEXPECTED: HRESULT = 0x8010001F;
+pub const SCARD_E_ICC_INSTALLATION: HRESULT = 0x80100020;
+pub const SCARD_E_ICC_CREATEORDER: HRESULT = 0x80100021;
+pub const SCARD_E_UNSUPPORTED_FEATURE: HRESULT = 0x80100022;
+pub const SCARD_E_DIR_NOT_FOUND: HRESULT = 0x80100023;
+pub const SCARD_E_FILE_NOT_FOUND: HRESULT = 0x80100024;
+pub const SCARD_E_NO_DIR: HRESULT = 0x80100025;
+pub const SCARD_E_NO_FILE: HRESULT = 0x80100026;
+pub const SCARD_E_NO_ACCESS: HRESULT = 0x80100027;
+pub const SCARD_E_WRITE_TOO_MANY: HRESULT = 0x80100028;
+pub const SCARD_E_BAD_SEEK: HRESULT = 0x80100029;
+pub const SCARD_E_INVALID_CHV: HRESULT = 0x8010002A;
+pub const SCARD_E_UNKNOWN_RES_MNG: HRESULT = 0x8010002B;
+pub const SCARD_E_NO_SUCH_CERTIFICATE: HRESULT = 0x8010002C;
+pub const SCARD_E_CERTIFICATE_UNAVAILABLE: HRESULT = 0x8010002D;
+pub const SCARD_E_NO_READERS_AVAILABLE: HRESULT = 0x8010002E;
+pub const SCARD_E_COMM_DATA_LOST: HRESULT = 0x8010002F;
+pub const SCARD_E_NO_KEY_CONTAINER: HRESULT = 0x80100030;
+pub const SCARD_E_SERVER_TOO_BUSY: HRESULT = 0x80100031;
+pub const SCARD_E_PIN_CACHE_EXPIRED: HRESULT = 0x80100032;
+pub const SCARD_E_NO_PIN_CACHE: HRESULT = 0x80100033;
+pub const SCARD_E_READ_ONLY_CARD: HRESULT = 0x80100034;
+pub const SCARD_W_UNSUPPORTED_CARD: HRESULT = 0x80100065;
+pub const SCARD_W_UNRESPONSIVE_CARD: HRESULT = 0x80100066;
+pub const SCARD_W_UNPOWERED_CARD: HRESULT = 0x80100067;
+pub const SCARD_W_RESET_CARD: HRESULT = 0x80100068;
+pub const SCARD_W_REMOVED_CARD: HRESULT = 0x80100069;
+pub const SCARD_W_SECURITY_VIOLATION: HRESULT = 0x8010006A;
+pub const SCARD_W_WRONG_CHV: HRESULT = 0x8010006B;
+pub const SCARD_W_CHV_BLOCKED: HRESULT = 0x8010006C;
+pub const SCARD_W_EOF: HRESULT = 0x8010006D;
+pub const SCARD_W_CANCELLED_BY_USER: HRESULT = 0x8010006E;
+pub const SCARD_W_CARD_NOT_AUTHENTICATED: HRESULT = 0x8010006F;
+pub const SCARD_W_CACHE_ITEM_NOT_FOUND: HRESULT = 0x80100070;
+pub const SCARD_W_CACHE_ITEM_STALE: HRESULT = 0x80100071;
+pub const SCARD_W_CACHE_ITEM_TOO_BIG: HRESULT = 0x80100072;
+pub const COMADMIN_E_OBJECTERRORS: HRESULT = 0x80110401;
+pub const COMADMIN_E_OBJECTINVALID: HRESULT = 0x80110402;
+pub const COMADMIN_E_KEYMISSING: HRESULT = 0x80110403;
+pub const COMADMIN_E_ALREADYINSTALLED: HRESULT = 0x80110404;
+pub const COMADMIN_E_APP_FILE_WRITEFAIL: HRESULT = 0x80110407;
+pub const COMADMIN_E_APP_FILE_READFAIL: HRESULT = 0x80110408;
+pub const COMADMIN_E_APP_FILE_VERSION: HRESULT = 0x80110409;
+pub const COMADMIN_E_BADPATH: HRESULT = 0x8011040A;
+pub const COMADMIN_E_APPLICATIONEXISTS: HRESULT = 0x8011040B;
+pub const COMADMIN_E_ROLEEXISTS: HRESULT = 0x8011040C;
+pub const COMADMIN_E_CANTCOPYFILE: HRESULT = 0x8011040D;
+pub const COMADMIN_E_NOUSER: HRESULT = 0x8011040F;
+pub const COMADMIN_E_INVALIDUSERIDS: HRESULT = 0x80110410;
+pub const COMADMIN_E_NOREGISTRYCLSID: HRESULT = 0x80110411;
+pub const COMADMIN_E_BADREGISTRYPROGID: HRESULT = 0x80110412;
+pub const COMADMIN_E_AUTHENTICATIONLEVEL: HRESULT = 0x80110413;
+pub const COMADMIN_E_USERPASSWDNOTVALID: HRESULT = 0x80110414;
+pub const COMADMIN_E_CLSIDORIIDMISMATCH: HRESULT = 0x80110418;
+pub const COMADMIN_E_REMOTEINTERFACE: HRESULT = 0x80110419;
+pub const COMADMIN_E_DLLREGISTERSERVER: HRESULT = 0x8011041A;
+pub const COMADMIN_E_NOSERVERSHARE: HRESULT = 0x8011041B;
+pub const COMADMIN_E_DLLLOADFAILED: HRESULT = 0x8011041D;
+pub const COMADMIN_E_BADREGISTRYLIBID: HRESULT = 0x8011041E;
+pub const COMADMIN_E_APPDIRNOTFOUND: HRESULT = 0x8011041F;
+pub const COMADMIN_E_REGISTRARFAILED: HRESULT = 0x80110423;
+pub const COMADMIN_E_COMPFILE_DOESNOTEXIST: HRESULT = 0x80110424;
+pub const COMADMIN_E_COMPFILE_LOADDLLFAIL: HRESULT = 0x80110425;
+pub const COMADMIN_E_COMPFILE_GETCLASSOBJ: HRESULT = 0x80110426;
+pub const COMADMIN_E_COMPFILE_CLASSNOTAVAIL: HRESULT = 0x80110427;
+pub const COMADMIN_E_COMPFILE_BADTLB: HRESULT = 0x80110428;
+pub const COMADMIN_E_COMPFILE_NOTINSTALLABLE: HRESULT = 0x80110429;
+pub const COMADMIN_E_NOTCHANGEABLE: HRESULT = 0x8011042A;
+pub const COMADMIN_E_NOTDELETEABLE: HRESULT = 0x8011042B;
+pub const COMADMIN_E_SESSION: HRESULT = 0x8011042C;
+pub const COMADMIN_E_COMP_MOVE_LOCKED: HRESULT = 0x8011042D;
+pub const COMADMIN_E_COMP_MOVE_BAD_DEST: HRESULT = 0x8011042E;
+pub const COMADMIN_E_REGISTERTLB: HRESULT = 0x80110430;
+pub const COMADMIN_E_SYSTEMAPP: HRESULT = 0x80110433;
+pub const COMADMIN_E_COMPFILE_NOREGISTRAR: HRESULT = 0x80110434;
+pub const COMADMIN_E_COREQCOMPINSTALLED: HRESULT = 0x80110435;
+pub const COMADMIN_E_SERVICENOTINSTALLED: HRESULT = 0x80110436;
+pub const COMADMIN_E_PROPERTYSAVEFAILED: HRESULT = 0x80110437;
+pub const COMADMIN_E_OBJECTEXISTS: HRESULT = 0x80110438;
+pub const COMADMIN_E_COMPONENTEXISTS: HRESULT = 0x80110439;
+pub const COMADMIN_E_REGFILE_CORRUPT: HRESULT = 0x8011043B;
+pub const COMADMIN_E_PROPERTY_OVERFLOW: HRESULT = 0x8011043C;
+pub const COMADMIN_E_NOTINREGISTRY: HRESULT = 0x8011043E;
+pub const COMADMIN_E_OBJECTNOTPOOLABLE: HRESULT = 0x8011043F;
+pub const COMADMIN_E_APPLID_MATCHES_CLSID: HRESULT = 0x80110446;
+pub const COMADMIN_E_ROLE_DOES_NOT_EXIST: HRESULT = 0x80110447;
+pub const COMADMIN_E_START_APP_NEEDS_COMPONENTS: HRESULT = 0x80110448;
+pub const COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM: HRESULT = 0x80110449;
+pub const COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY: HRESULT = 0x8011044A;
+pub const COMADMIN_E_CAN_NOT_START_APP: HRESULT = 0x8011044B;
+pub const COMADMIN_E_CAN_NOT_EXPORT_SYS_APP: HRESULT = 0x8011044C;
+pub const COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT: HRESULT = 0x8011044D;
+pub const COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER: HRESULT = 0x8011044E;
+pub const COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE: HRESULT = 0x8011044F;
+pub const COMADMIN_E_BASE_PARTITION_ONLY: HRESULT = 0x80110450;
+pub const COMADMIN_E_START_APP_DISABLED: HRESULT = 0x80110451;
+pub const COMADMIN_E_CAT_DUPLICATE_PARTITION_NAME: HRESULT = 0x80110457;
+pub const COMADMIN_E_CAT_INVALID_PARTITION_NAME: HRESULT = 0x80110458;
+pub const COMADMIN_E_CAT_PARTITION_IN_USE: HRESULT = 0x80110459;
+pub const COMADMIN_E_FILE_PARTITION_DUPLICATE_FILES: HRESULT = 0x8011045A;
+pub const COMADMIN_E_CAT_IMPORTED_COMPONENTS_NOT_ALLOWED: HRESULT = 0x8011045B;
+pub const COMADMIN_E_AMBIGUOUS_APPLICATION_NAME: HRESULT = 0x8011045C;
+pub const COMADMIN_E_AMBIGUOUS_PARTITION_NAME: HRESULT = 0x8011045D;
+pub const COMADMIN_E_REGDB_NOTINITIALIZED: HRESULT = 0x80110472;
+pub const COMADMIN_E_REGDB_NOTOPEN: HRESULT = 0x80110473;
+pub const COMADMIN_E_REGDB_SYSTEMERR: HRESULT = 0x80110474;
+pub const COMADMIN_E_REGDB_ALREADYRUNNING: HRESULT = 0x80110475;
+pub const COMADMIN_E_MIG_VERSIONNOTSUPPORTED: HRESULT = 0x80110480;
+pub const COMADMIN_E_MIG_SCHEMANOTFOUND: HRESULT = 0x80110481;
+pub const COMADMIN_E_CAT_BITNESSMISMATCH: HRESULT = 0x80110482;
+pub const COMADMIN_E_CAT_UNACCEPTABLEBITNESS: HRESULT = 0x80110483;
+pub const COMADMIN_E_CAT_WRONGAPPBITNESS: HRESULT = 0x80110484;
+pub const COMADMIN_E_CAT_PAUSE_RESUME_NOT_SUPPORTED: HRESULT = 0x80110485;
+pub const COMADMIN_E_CAT_SERVERFAULT: HRESULT = 0x80110486;
+pub const COMQC_E_APPLICATION_NOT_QUEUED: HRESULT = 0x80110600;
+pub const COMQC_E_NO_QUEUEABLE_INTERFACES: HRESULT = 0x80110601;
+pub const COMQC_E_QUEUING_SERVICE_NOT_AVAILABLE: HRESULT = 0x80110602;
+pub const COMQC_E_NO_IPERSISTSTREAM: HRESULT = 0x80110603;
+pub const COMQC_E_BAD_MESSAGE: HRESULT = 0x80110604;
+pub const COMQC_E_UNAUTHENTICATED: HRESULT = 0x80110605;
+pub const COMQC_E_UNTRUSTED_ENQUEUER: HRESULT = 0x80110606;
+pub const MSDTC_E_DUPLICATE_RESOURCE: HRESULT = 0x80110701;
+pub const COMADMIN_E_OBJECT_PARENT_MISSING: HRESULT = 0x80110808;
+pub const COMADMIN_E_OBJECT_DOES_NOT_EXIST: HRESULT = 0x80110809;
+pub const COMADMIN_E_APP_NOT_RUNNING: HRESULT = 0x8011080A;
+pub const COMADMIN_E_INVALID_PARTITION: HRESULT = 0x8011080B;
+pub const COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE: HRESULT = 0x8011080D;
+pub const COMADMIN_E_USER_IN_SET: HRESULT = 0x8011080E;
+pub const COMADMIN_E_CANTRECYCLELIBRARYAPPS: HRESULT = 0x8011080F;
+pub const COMADMIN_E_CANTRECYCLESERVICEAPPS: HRESULT = 0x80110811;
+pub const COMADMIN_E_PROCESSALREADYRECYCLED: HRESULT = 0x80110812;
+pub const COMADMIN_E_PAUSEDPROCESSMAYNOTBERECYCLED: HRESULT = 0x80110813;
+pub const COMADMIN_E_CANTMAKEINPROCSERVICE: HRESULT = 0x80110814;
+pub const COMADMIN_E_PROGIDINUSEBYCLSID: HRESULT = 0x80110815;
+pub const COMADMIN_E_DEFAULT_PARTITION_NOT_IN_SET: HRESULT = 0x80110816;
+pub const COMADMIN_E_RECYCLEDPROCESSMAYNOTBEPAUSED: HRESULT = 0x80110817;
+pub const COMADMIN_E_PARTITION_ACCESSDENIED: HRESULT = 0x80110818;
+pub const COMADMIN_E_PARTITION_MSI_ONLY: HRESULT = 0x80110819;
+pub const COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_1_0_FORMAT: HRESULT = 0x8011081A;
+pub const COMADMIN_E_LEGACYCOMPS_NOT_ALLOWED_IN_NONBASE_PARTITIONS: HRESULT
+ = 0x8011081B;
+pub const COMADMIN_E_COMP_MOVE_SOURCE: HRESULT = 0x8011081C;
+pub const COMADMIN_E_COMP_MOVE_DEST: HRESULT = 0x8011081D;
+pub const COMADMIN_E_COMP_MOVE_PRIVATE: HRESULT = 0x8011081E;
+pub const COMADMIN_E_BASEPARTITION_REQUIRED_IN_SET: HRESULT = 0x8011081F;
+pub const COMADMIN_E_CANNOT_ALIAS_EVENTCLASS: HRESULT = 0x80110820;
+pub const COMADMIN_E_PRIVATE_ACCESSDENIED: HRESULT = 0x80110821;
+pub const COMADMIN_E_SAFERINVALID: HRESULT = 0x80110822;
+pub const COMADMIN_E_REGISTRY_ACCESSDENIED: HRESULT = 0x80110823;
+pub const COMADMIN_E_PARTITIONS_DISABLED: HRESULT = 0x80110824;
+pub const WER_S_REPORT_DEBUG: HRESULT = 0x001B0000;
+pub const WER_S_REPORT_UPLOADED: HRESULT = 0x001B0001;
+pub const WER_S_REPORT_QUEUED: HRESULT = 0x001B0002;
+pub const WER_S_DISABLED: HRESULT = 0x001B0003;
+pub const WER_S_SUSPENDED_UPLOAD: HRESULT = 0x001B0004;
+pub const WER_S_DISABLED_QUEUE: HRESULT = 0x001B0005;
+pub const WER_S_DISABLED_ARCHIVE: HRESULT = 0x001B0006;
+pub const WER_S_REPORT_ASYNC: HRESULT = 0x001B0007;
+pub const WER_S_IGNORE_ASSERT_INSTANCE: HRESULT = 0x001B0008;
+pub const WER_S_IGNORE_ALL_ASSERTS: HRESULT = 0x001B0009;
+pub const WER_S_ASSERT_CONTINUE: HRESULT = 0x001B000A;
+pub const WER_S_THROTTLED: HRESULT = 0x001B000B;
+pub const WER_E_CRASH_FAILURE: HRESULT = 0x801B8000;
+pub const WER_E_CANCELED: HRESULT = 0x801B8001;
+pub const WER_E_NETWORK_FAILURE: HRESULT = 0x801B8002;
+pub const WER_E_NOT_INITIALIZED: HRESULT = 0x801B8003;
+pub const WER_E_ALREADY_REPORTING: HRESULT = 0x801B8004;
+pub const WER_E_DUMP_THROTTLED: HRESULT = 0x801B8005;
+pub const ERROR_FLT_IO_COMPLETE: HRESULT = 0x001F0001;
+pub const ERROR_FLT_NO_HANDLER_DEFINED: HRESULT = 0x801F0001;
+pub const ERROR_FLT_CONTEXT_ALREADY_DEFINED: HRESULT = 0x801F0002;
+pub const ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST: HRESULT = 0x801F0003;
+pub const ERROR_FLT_DISALLOW_FAST_IO: HRESULT = 0x801F0004;
+pub const ERROR_FLT_INVALID_NAME_REQUEST: HRESULT = 0x801F0005;
+pub const ERROR_FLT_NOT_SAFE_TO_POST_OPERATION: HRESULT = 0x801F0006;
+pub const ERROR_FLT_NOT_INITIALIZED: HRESULT = 0x801F0007;
+pub const ERROR_FLT_FILTER_NOT_READY: HRESULT = 0x801F0008;
+pub const ERROR_FLT_POST_OPERATION_CLEANUP: HRESULT = 0x801F0009;
+pub const ERROR_FLT_INTERNAL_ERROR: HRESULT = 0x801F000A;
+pub const ERROR_FLT_DELETING_OBJECT: HRESULT = 0x801F000B;
+pub const ERROR_FLT_MUST_BE_NONPAGED_POOL: HRESULT = 0x801F000C;
+pub const ERROR_FLT_DUPLICATE_ENTRY: HRESULT = 0x801F000D;
+pub const ERROR_FLT_CBDQ_DISABLED: HRESULT = 0x801F000E;
+pub const ERROR_FLT_DO_NOT_ATTACH: HRESULT = 0x801F000F;
+pub const ERROR_FLT_DO_NOT_DETACH: HRESULT = 0x801F0010;
+pub const ERROR_FLT_INSTANCE_ALTITUDE_COLLISION: HRESULT = 0x801F0011;
+pub const ERROR_FLT_INSTANCE_NAME_COLLISION: HRESULT = 0x801F0012;
+pub const ERROR_FLT_FILTER_NOT_FOUND: HRESULT = 0x801F0013;
+pub const ERROR_FLT_VOLUME_NOT_FOUND: HRESULT = 0x801F0014;
+pub const ERROR_FLT_INSTANCE_NOT_FOUND: HRESULT = 0x801F0015;
+pub const ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND: HRESULT = 0x801F0016;
+pub const ERROR_FLT_INVALID_CONTEXT_REGISTRATION: HRESULT = 0x801F0017;
+pub const ERROR_FLT_NAME_CACHE_MISS: HRESULT = 0x801F0018;
+pub const ERROR_FLT_NO_DEVICE_OBJECT: HRESULT = 0x801F0019;
+pub const ERROR_FLT_VOLUME_ALREADY_MOUNTED: HRESULT = 0x801F001A;
+pub const ERROR_FLT_ALREADY_ENLISTED: HRESULT = 0x801F001B;
+pub const ERROR_FLT_CONTEXT_ALREADY_LINKED: HRESULT = 0x801F001C;
+pub const ERROR_FLT_NO_WAITER_FOR_REPLY: HRESULT = 0x801F0020;
+pub const ERROR_FLT_REGISTRATION_BUSY: HRESULT = 0x801F0023;
+pub const ERROR_HUNG_DISPLAY_DRIVER_THREAD: HRESULT = 0x80260001;
+pub const DWM_E_COMPOSITIONDISABLED: HRESULT = 0x80263001;
+pub const DWM_E_REMOTING_NOT_SUPPORTED: HRESULT = 0x80263002;
+pub const DWM_E_NO_REDIRECTION_SURFACE_AVAILABLE: HRESULT = 0x80263003;
+pub const DWM_E_NOT_QUEUING_PRESENTS: HRESULT = 0x80263004;
+pub const DWM_E_ADAPTER_NOT_FOUND: HRESULT = 0x80263005;
+pub const DWM_S_GDI_REDIRECTION_SURFACE: HRESULT = 0x00263005;
+pub const DWM_E_TEXTURE_TOO_LARGE: HRESULT = 0x80263007;
+pub const ERROR_MONITOR_NO_DESCRIPTOR: HRESULT = 0x80261001;
+pub const ERROR_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT: HRESULT = 0x80261002;
+pub const ERROR_MONITOR_INVALID_DESCRIPTOR_CHECKSUM: HRESULT = 0xC0261003;
+pub const ERROR_MONITOR_INVALID_STANDARD_TIMING_BLOCK: HRESULT = 0xC0261004;
+pub const ERROR_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED: HRESULT = 0xC0261005;
+pub const ERROR_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK: HRESULT = 0xC0261006;
+pub const ERROR_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK: HRESULT = 0xC0261007;
+pub const ERROR_MONITOR_NO_MORE_DESCRIPTOR_DATA: HRESULT = 0xC0261008;
+pub const ERROR_MONITOR_INVALID_DETAILED_TIMING_BLOCK: HRESULT = 0xC0261009;
+pub const ERROR_MONITOR_INVALID_MANUFACTURE_DATE: HRESULT = 0xC026100A;
+pub const ERROR_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER: HRESULT = 0xC0262000;
+pub const ERROR_GRAPHICS_INSUFFICIENT_DMA_BUFFER: HRESULT = 0xC0262001;
+pub const ERROR_GRAPHICS_INVALID_DISPLAY_ADAPTER: HRESULT = 0xC0262002;
+pub const ERROR_GRAPHICS_ADAPTER_WAS_RESET: HRESULT = 0xC0262003;
+pub const ERROR_GRAPHICS_INVALID_DRIVER_MODEL: HRESULT = 0xC0262004;
+pub const ERROR_GRAPHICS_PRESENT_MODE_CHANGED: HRESULT = 0xC0262005;
+pub const ERROR_GRAPHICS_PRESENT_OCCLUDED: HRESULT = 0xC0262006;
+pub const ERROR_GRAPHICS_PRESENT_DENIED: HRESULT = 0xC0262007;
+pub const ERROR_GRAPHICS_CANNOTCOLORCONVERT: HRESULT = 0xC0262008;
+pub const ERROR_GRAPHICS_DRIVER_MISMATCH: HRESULT = 0xC0262009;
+pub const ERROR_GRAPHICS_PARTIAL_DATA_POPULATED: HRESULT = 0x4026200A;
+pub const ERROR_GRAPHICS_PRESENT_REDIRECTION_DISABLED: HRESULT = 0xC026200B;
+pub const ERROR_GRAPHICS_PRESENT_UNOCCLUDED: HRESULT = 0xC026200C;
+pub const ERROR_GRAPHICS_WINDOWDC_NOT_AVAILABLE: HRESULT = 0xC026200D;
+pub const ERROR_GRAPHICS_WINDOWLESS_PRESENT_DISABLED: HRESULT = 0xC026200E;
+pub const ERROR_GRAPHICS_NO_VIDEO_MEMORY: HRESULT = 0xC0262100;
+pub const ERROR_GRAPHICS_CANT_LOCK_MEMORY: HRESULT = 0xC0262101;
+pub const ERROR_GRAPHICS_ALLOCATION_BUSY: HRESULT = 0xC0262102;
+pub const ERROR_GRAPHICS_TOO_MANY_REFERENCES: HRESULT = 0xC0262103;
+pub const ERROR_GRAPHICS_TRY_AGAIN_LATER: HRESULT = 0xC0262104;
+pub const ERROR_GRAPHICS_TRY_AGAIN_NOW: HRESULT = 0xC0262105;
+pub const ERROR_GRAPHICS_ALLOCATION_INVALID: HRESULT = 0xC0262106;
+pub const ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE: HRESULT = 0xC0262107;
+pub const ERROR_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED: HRESULT = 0xC0262108;
+pub const ERROR_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION: HRESULT = 0xC0262109;
+pub const ERROR_GRAPHICS_INVALID_ALLOCATION_USAGE: HRESULT = 0xC0262110;
+pub const ERROR_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION: HRESULT = 0xC0262111;
+pub const ERROR_GRAPHICS_ALLOCATION_CLOSED: HRESULT = 0xC0262112;
+pub const ERROR_GRAPHICS_INVALID_ALLOCATION_INSTANCE: HRESULT = 0xC0262113;
+pub const ERROR_GRAPHICS_INVALID_ALLOCATION_HANDLE: HRESULT = 0xC0262114;
+pub const ERROR_GRAPHICS_WRONG_ALLOCATION_DEVICE: HRESULT = 0xC0262115;
+pub const ERROR_GRAPHICS_ALLOCATION_CONTENT_LOST: HRESULT = 0xC0262116;
+pub const ERROR_GRAPHICS_GPU_EXCEPTION_ON_DEVICE: HRESULT = 0xC0262200;
+pub const ERROR_GRAPHICS_SKIP_ALLOCATION_PREPARATION: HRESULT = 0x40262201;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY: HRESULT = 0xC0262300;
+pub const ERROR_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED: HRESULT = 0xC0262301;
+pub const ERROR_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED: HRESULT
+ = 0xC0262302;
+pub const ERROR_GRAPHICS_INVALID_VIDPN: HRESULT = 0xC0262303;
+pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE: HRESULT = 0xC0262304;
+pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET: HRESULT = 0xC0262305;
+pub const ERROR_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED: HRESULT = 0xC0262306;
+pub const ERROR_GRAPHICS_MODE_NOT_PINNED: HRESULT = 0x00262307;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_SOURCEMODESET: HRESULT = 0xC0262308;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_TARGETMODESET: HRESULT = 0xC0262309;
+pub const ERROR_GRAPHICS_INVALID_FREQUENCY: HRESULT = 0xC026230A;
+pub const ERROR_GRAPHICS_INVALID_ACTIVE_REGION: HRESULT = 0xC026230B;
+pub const ERROR_GRAPHICS_INVALID_TOTAL_REGION: HRESULT = 0xC026230C;
+pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE: HRESULT = 0xC0262310;
+pub const ERROR_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE: HRESULT = 0xC0262311;
+pub const ERROR_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET: HRESULT = 0xC0262312;
+pub const ERROR_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY: HRESULT = 0xC0262313;
+pub const ERROR_GRAPHICS_MODE_ALREADY_IN_MODESET: HRESULT = 0xC0262314;
+pub const ERROR_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET: HRESULT = 0xC0262315;
+pub const ERROR_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET: HRESULT = 0xC0262316;
+pub const ERROR_GRAPHICS_SOURCE_ALREADY_IN_SET: HRESULT = 0xC0262317;
+pub const ERROR_GRAPHICS_TARGET_ALREADY_IN_SET: HRESULT = 0xC0262318;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_PRESENT_PATH: HRESULT = 0xC0262319;
+pub const ERROR_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY: HRESULT = 0xC026231A;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET: HRESULT = 0xC026231B;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE: HRESULT = 0xC026231C;
+pub const ERROR_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET: HRESULT = 0xC026231D;
+pub const ERROR_GRAPHICS_NO_PREFERRED_MODE: HRESULT = 0x0026231E;
+pub const ERROR_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET: HRESULT = 0xC026231F;
+pub const ERROR_GRAPHICS_STALE_MODESET: HRESULT = 0xC0262320;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_SOURCEMODESET: HRESULT = 0xC0262321;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_SOURCE_MODE: HRESULT = 0xC0262322;
+pub const ERROR_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN: HRESULT = 0xC0262323;
+pub const ERROR_GRAPHICS_MODE_ID_MUST_BE_UNIQUE: HRESULT = 0xC0262324;
+pub const ERROR_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION: HRESULT
+ = 0xC0262325;
+pub const ERROR_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES: HRESULT
+ = 0xC0262326;
+pub const ERROR_GRAPHICS_PATH_NOT_IN_TOPOLOGY: HRESULT = 0xC0262327;
+pub const ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE: HRESULT = 0xC0262328;
+pub const ERROR_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET: HRESULT = 0xC0262329;
+pub const ERROR_GRAPHICS_INVALID_MONITORDESCRIPTORSET: HRESULT = 0xC026232A;
+pub const ERROR_GRAPHICS_INVALID_MONITORDESCRIPTOR: HRESULT = 0xC026232B;
+pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET: HRESULT = 0xC026232C;
+pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET: HRESULT = 0xC026232D;
+pub const ERROR_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE: HRESULT = 0xC026232E;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE: HRESULT = 0xC026232F;
+pub const ERROR_GRAPHICS_RESOURCES_NOT_RELATED: HRESULT = 0xC0262330;
+pub const ERROR_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE: HRESULT = 0xC0262331;
+pub const ERROR_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE: HRESULT = 0xC0262332;
+pub const ERROR_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET: HRESULT = 0xC0262333;
+pub const ERROR_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER: HRESULT
+ = 0xC0262334;
+pub const ERROR_GRAPHICS_NO_VIDPNMGR: HRESULT = 0xC0262335;
+pub const ERROR_GRAPHICS_NO_ACTIVE_VIDPN: HRESULT = 0xC0262336;
+pub const ERROR_GRAPHICS_STALE_VIDPN_TOPOLOGY: HRESULT = 0xC0262337;
+pub const ERROR_GRAPHICS_MONITOR_NOT_CONNECTED: HRESULT = 0xC0262338;
+pub const ERROR_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY: HRESULT = 0xC0262339;
+pub const ERROR_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE: HRESULT = 0xC026233A;
+pub const ERROR_GRAPHICS_INVALID_VISIBLEREGION_SIZE: HRESULT = 0xC026233B;
+pub const ERROR_GRAPHICS_INVALID_STRIDE: HRESULT = 0xC026233C;
+pub const ERROR_GRAPHICS_INVALID_PIXELFORMAT: HRESULT = 0xC026233D;
+pub const ERROR_GRAPHICS_INVALID_COLORBASIS: HRESULT = 0xC026233E;
+pub const ERROR_GRAPHICS_INVALID_PIXELVALUEACCESSMODE: HRESULT = 0xC026233F;
+pub const ERROR_GRAPHICS_TARGET_NOT_IN_TOPOLOGY: HRESULT = 0xC0262340;
+pub const ERROR_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT: HRESULT = 0xC0262341;
+pub const ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE: HRESULT = 0xC0262342;
+pub const ERROR_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN: HRESULT = 0xC0262343;
+pub const ERROR_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL: HRESULT = 0xC0262344;
+pub const ERROR_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION: HRESULT
+ = 0xC0262345;
+pub const ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED: HRESULT
+ = 0xC0262346;
+pub const ERROR_GRAPHICS_INVALID_GAMMA_RAMP: HRESULT = 0xC0262347;
+pub const ERROR_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED: HRESULT = 0xC0262348;
+pub const ERROR_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED: HRESULT = 0xC0262349;
+pub const ERROR_GRAPHICS_MODE_NOT_IN_MODESET: HRESULT = 0xC026234A;
+pub const ERROR_GRAPHICS_DATASET_IS_EMPTY: HRESULT = 0x0026234B;
+pub const ERROR_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET: HRESULT = 0x0026234C;
+pub const ERROR_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON: HRESULT
+ = 0xC026234D;
+pub const ERROR_GRAPHICS_INVALID_PATH_CONTENT_TYPE: HRESULT = 0xC026234E;
+pub const ERROR_GRAPHICS_INVALID_COPYPROTECTION_TYPE: HRESULT = 0xC026234F;
+pub const ERROR_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS: HRESULT = 0xC0262350;
+pub const ERROR_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED: HRESULT = 0x00262351;
+pub const ERROR_GRAPHICS_INVALID_SCANLINE_ORDERING: HRESULT = 0xC0262352;
+pub const ERROR_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED: HRESULT = 0xC0262353;
+pub const ERROR_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS: HRESULT = 0xC0262354;
+pub const ERROR_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT: HRESULT = 0xC0262355;
+pub const ERROR_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM: HRESULT = 0xC0262356;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN: HRESULT = 0xC0262357;
+pub const ERROR_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT: HRESULT
+ = 0xC0262358;
+pub const ERROR_GRAPHICS_MAX_NUM_PATHS_REACHED: HRESULT = 0xC0262359;
+pub const ERROR_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION: HRESULT = 0xC026235A;
+pub const ERROR_GRAPHICS_INVALID_CLIENT_TYPE: HRESULT = 0xC026235B;
+pub const ERROR_GRAPHICS_CLIENTVIDPN_NOT_SET: HRESULT = 0xC026235C;
+pub const ERROR_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED: HRESULT = 0xC0262400;
+pub const ERROR_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED: HRESULT = 0xC0262401;
+pub const ERROR_GRAPHICS_UNKNOWN_CHILD_STATUS: HRESULT = 0x4026242F;
+pub const ERROR_GRAPHICS_NOT_A_LINKED_ADAPTER: HRESULT = 0xC0262430;
+pub const ERROR_GRAPHICS_LEADLINK_NOT_ENUMERATED: HRESULT = 0xC0262431;
+pub const ERROR_GRAPHICS_CHAINLINKS_NOT_ENUMERATED: HRESULT = 0xC0262432;
+pub const ERROR_GRAPHICS_ADAPTER_CHAIN_NOT_READY: HRESULT = 0xC0262433;
+pub const ERROR_GRAPHICS_CHAINLINKS_NOT_STARTED: HRESULT = 0xC0262434;
+pub const ERROR_GRAPHICS_CHAINLINKS_NOT_POWERED_ON: HRESULT = 0xC0262435;
+pub const ERROR_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE: HRESULT = 0xC0262436;
+pub const ERROR_GRAPHICS_LEADLINK_START_DEFERRED: HRESULT = 0x40262437;
+pub const ERROR_GRAPHICS_NOT_POST_DEVICE_DRIVER: HRESULT = 0xC0262438;
+pub const ERROR_GRAPHICS_POLLING_TOO_FREQUENTLY: HRESULT = 0x40262439;
+pub const ERROR_GRAPHICS_START_DEFERRED: HRESULT = 0x4026243A;
+pub const ERROR_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED: HRESULT = 0xC026243B;
+pub const ERROR_GRAPHICS_OPM_NOT_SUPPORTED: HRESULT = 0xC0262500;
+pub const ERROR_GRAPHICS_COPP_NOT_SUPPORTED: HRESULT = 0xC0262501;
+pub const ERROR_GRAPHICS_UAB_NOT_SUPPORTED: HRESULT = 0xC0262502;
+pub const ERROR_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS: HRESULT = 0xC0262503;
+pub const ERROR_GRAPHICS_OPM_NO_VIDEO_OUTPUTS_EXIST: HRESULT = 0xC0262505;
+pub const ERROR_GRAPHICS_OPM_INTERNAL_ERROR: HRESULT = 0xC026250B;
+pub const ERROR_GRAPHICS_OPM_INVALID_HANDLE: HRESULT = 0xC026250C;
+pub const ERROR_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH: HRESULT = 0xC026250E;
+pub const ERROR_GRAPHICS_OPM_SPANNING_MODE_ENABLED: HRESULT = 0xC026250F;
+pub const ERROR_GRAPHICS_OPM_THEATER_MODE_ENABLED: HRESULT = 0xC0262510;
+pub const ERROR_GRAPHICS_PVP_HFS_FAILED: HRESULT = 0xC0262511;
+pub const ERROR_GRAPHICS_OPM_INVALID_SRM: HRESULT = 0xC0262512;
+pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP: HRESULT = 0xC0262513;
+pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP: HRESULT = 0xC0262514;
+pub const ERROR_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA: HRESULT = 0xC0262515;
+pub const ERROR_GRAPHICS_OPM_HDCP_SRM_NEVER_SET: HRESULT = 0xC0262516;
+pub const ERROR_GRAPHICS_OPM_RESOLUTION_TOO_HIGH: HRESULT = 0xC0262517;
+pub const ERROR_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE: HRESULT = 0xC0262518;
+pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_NO_LONGER_EXISTS: HRESULT = 0xC026251A;
+pub const ERROR_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS: HRESULT = 0xC026251B;
+pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS: HRESULT
+ = 0xC026251C;
+pub const ERROR_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST: HRESULT = 0xC026251D;
+pub const ERROR_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR: HRESULT = 0xC026251E;
+pub const ERROR_GRAPHICS_OPM_VIDEO_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS: HRESULT
+ = 0xC026251F;
+pub const ERROR_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED: HRESULT = 0xC0262520;
+pub const ERROR_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST: HRESULT = 0xC0262521;
+pub const ERROR_GRAPHICS_I2C_NOT_SUPPORTED: HRESULT = 0xC0262580;
+pub const ERROR_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST: HRESULT = 0xC0262581;
+pub const ERROR_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA: HRESULT = 0xC0262582;
+pub const ERROR_GRAPHICS_I2C_ERROR_RECEIVING_DATA: HRESULT = 0xC0262583;
+pub const ERROR_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED: HRESULT = 0xC0262584;
+pub const ERROR_GRAPHICS_DDCCI_INVALID_DATA: HRESULT = 0xC0262585;
+pub const ERROR_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE: HRESULT
+ = 0xC0262586;
+pub const ERROR_GRAPHICS_MCA_INVALID_CAPABILITIES_STRING: HRESULT = 0xC0262587;
+pub const ERROR_GRAPHICS_MCA_INTERNAL_ERROR: HRESULT = 0xC0262588;
+pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND: HRESULT = 0xC0262589;
+pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH: HRESULT = 0xC026258A;
+pub const ERROR_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM: HRESULT = 0xC026258B;
+pub const ERROR_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE: HRESULT = 0xC026258C;
+pub const ERROR_GRAPHICS_MONITOR_NO_LONGER_EXISTS: HRESULT = 0xC026258D;
+pub const ERROR_GRAPHICS_DDCCI_CURRENT_CURRENT_VALUE_GREATER_THAN_MAXIMUM_VALUE: HRESULT
+ = 0xC02625D8;
+pub const ERROR_GRAPHICS_MCA_INVALID_VCP_VERSION: HRESULT = 0xC02625D9;
+pub const ERROR_GRAPHICS_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION: HRESULT
+ = 0xC02625DA;
+pub const ERROR_GRAPHICS_MCA_MCCS_VERSION_MISMATCH: HRESULT = 0xC02625DB;
+pub const ERROR_GRAPHICS_MCA_UNSUPPORTED_MCCS_VERSION: HRESULT = 0xC02625DC;
+pub const ERROR_GRAPHICS_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED: HRESULT = 0xC02625DE;
+pub const ERROR_GRAPHICS_MCA_UNSUPPORTED_COLOR_TEMPERATURE: HRESULT = 0xC02625DF;
+pub const ERROR_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED: HRESULT = 0xC02625E0;
+pub const ERROR_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME: HRESULT = 0xC02625E1;
+pub const ERROR_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP: HRESULT
+ = 0xC02625E2;
+pub const ERROR_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED: HRESULT = 0xC02625E3;
+pub const ERROR_GRAPHICS_INVALID_POINTER: HRESULT = 0xC02625E4;
+pub const ERROR_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE: HRESULT
+ = 0xC02625E5;
+pub const ERROR_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL: HRESULT = 0xC02625E6;
+pub const ERROR_GRAPHICS_INTERNAL_ERROR: HRESULT = 0xC02625E7;
+pub const ERROR_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS: HRESULT = 0xC02605E8;
+pub const NAP_E_INVALID_PACKET: HRESULT = 0x80270001;
+pub const NAP_E_MISSING_SOH: HRESULT = 0x80270002;
+pub const NAP_E_CONFLICTING_ID: HRESULT = 0x80270003;
+pub const NAP_E_NO_CACHED_SOH: HRESULT = 0x80270004;
+pub const NAP_E_STILL_BOUND: HRESULT = 0x80270005;
+pub const NAP_E_NOT_REGISTERED: HRESULT = 0x80270006;
+pub const NAP_E_NOT_INITIALIZED: HRESULT = 0x80270007;
+pub const NAP_E_MISMATCHED_ID: HRESULT = 0x80270008;
+pub const NAP_E_NOT_PENDING: HRESULT = 0x80270009;
+pub const NAP_E_ID_NOT_FOUND: HRESULT = 0x8027000A;
+pub const NAP_E_MAXSIZE_TOO_SMALL: HRESULT = 0x8027000B;
+pub const NAP_E_SERVICE_NOT_RUNNING: HRESULT = 0x8027000C;
+pub const NAP_S_CERT_ALREADY_PRESENT: HRESULT = 0x0027000D;
+pub const NAP_E_ENTITY_DISABLED: HRESULT = 0x8027000E;
+pub const NAP_E_NETSH_GROUPPOLICY_ERROR: HRESULT = 0x8027000F;
+pub const NAP_E_TOO_MANY_CALLS: HRESULT = 0x80270010;
+pub const NAP_E_SHV_CONFIG_EXISTED: HRESULT = 0x80270011;
+pub const NAP_E_SHV_CONFIG_NOT_FOUND: HRESULT = 0x80270012;
+pub const NAP_E_SHV_TIMEOUT: HRESULT = 0x80270013;
+pub const TPM_E_ERROR_MASK: HRESULT = 0x80280000;
+pub const TPM_E_AUTHFAIL: HRESULT = 0x80280001;
+pub const TPM_E_BADINDEX: HRESULT = 0x80280002;
+pub const TPM_E_BAD_PARAMETER: HRESULT = 0x80280003;
+pub const TPM_E_AUDITFAILURE: HRESULT = 0x80280004;
+pub const TPM_E_CLEAR_DISABLED: HRESULT = 0x80280005;
+pub const TPM_E_DEACTIVATED: HRESULT = 0x80280006;
+pub const TPM_E_DISABLED: HRESULT = 0x80280007;
+pub const TPM_E_DISABLED_CMD: HRESULT = 0x80280008;
+pub const TPM_E_FAIL: HRESULT = 0x80280009;
+pub const TPM_E_BAD_ORDINAL: HRESULT = 0x8028000A;
+pub const TPM_E_INSTALL_DISABLED: HRESULT = 0x8028000B;
+pub const TPM_E_INVALID_KEYHANDLE: HRESULT = 0x8028000C;
+pub const TPM_E_KEYNOTFOUND: HRESULT = 0x8028000D;
+pub const TPM_E_INAPPROPRIATE_ENC: HRESULT = 0x8028000E;
+pub const TPM_E_MIGRATEFAIL: HRESULT = 0x8028000F;
+pub const TPM_E_INVALID_PCR_INFO: HRESULT = 0x80280010;
+pub const TPM_E_NOSPACE: HRESULT = 0x80280011;
+pub const TPM_E_NOSRK: HRESULT = 0x80280012;
+pub const TPM_E_NOTSEALED_BLOB: HRESULT = 0x80280013;
+pub const TPM_E_OWNER_SET: HRESULT = 0x80280014;
+pub const TPM_E_RESOURCES: HRESULT = 0x80280015;
+pub const TPM_E_SHORTRANDOM: HRESULT = 0x80280016;
+pub const TPM_E_SIZE: HRESULT = 0x80280017;
+pub const TPM_E_WRONGPCRVAL: HRESULT = 0x80280018;
+pub const TPM_E_BAD_PARAM_SIZE: HRESULT = 0x80280019;
+pub const TPM_E_SHA_THREAD: HRESULT = 0x8028001A;
+pub const TPM_E_SHA_ERROR: HRESULT = 0x8028001B;
+pub const TPM_E_FAILEDSELFTEST: HRESULT = 0x8028001C;
+pub const TPM_E_AUTH2FAIL: HRESULT = 0x8028001D;
+pub const TPM_E_BADTAG: HRESULT = 0x8028001E;
+pub const TPM_E_IOERROR: HRESULT = 0x8028001F;
+pub const TPM_E_ENCRYPT_ERROR: HRESULT = 0x80280020;
+pub const TPM_E_DECRYPT_ERROR: HRESULT = 0x80280021;
+pub const TPM_E_INVALID_AUTHHANDLE: HRESULT = 0x80280022;
+pub const TPM_E_NO_ENDORSEMENT: HRESULT = 0x80280023;
+pub const TPM_E_INVALID_KEYUSAGE: HRESULT = 0x80280024;
+pub const TPM_E_WRONG_ENTITYTYPE: HRESULT = 0x80280025;
+pub const TPM_E_INVALID_POSTINIT: HRESULT = 0x80280026;
+pub const TPM_E_INAPPROPRIATE_SIG: HRESULT = 0x80280027;
+pub const TPM_E_BAD_KEY_PROPERTY: HRESULT = 0x80280028;
+pub const TPM_E_BAD_MIGRATION: HRESULT = 0x80280029;
+pub const TPM_E_BAD_SCHEME: HRESULT = 0x8028002A;
+pub const TPM_E_BAD_DATASIZE: HRESULT = 0x8028002B;
+pub const TPM_E_BAD_MODE: HRESULT = 0x8028002C;
+pub const TPM_E_BAD_PRESENCE: HRESULT = 0x8028002D;
+pub const TPM_E_BAD_VERSION: HRESULT = 0x8028002E;
+pub const TPM_E_NO_WRAP_TRANSPORT: HRESULT = 0x8028002F;
+pub const TPM_E_AUDITFAIL_UNSUCCESSFUL: HRESULT = 0x80280030;
+pub const TPM_E_AUDITFAIL_SUCCESSFUL: HRESULT = 0x80280031;
+pub const TPM_E_NOTRESETABLE: HRESULT = 0x80280032;
+pub const TPM_E_NOTLOCAL: HRESULT = 0x80280033;
+pub const TPM_E_BAD_TYPE: HRESULT = 0x80280034;
+pub const TPM_E_INVALID_RESOURCE: HRESULT = 0x80280035;
+pub const TPM_E_NOTFIPS: HRESULT = 0x80280036;
+pub const TPM_E_INVALID_FAMILY: HRESULT = 0x80280037;
+pub const TPM_E_NO_NV_PERMISSION: HRESULT = 0x80280038;
+pub const TPM_E_REQUIRES_SIGN: HRESULT = 0x80280039;
+pub const TPM_E_KEY_NOTSUPPORTED: HRESULT = 0x8028003A;
+pub const TPM_E_AUTH_CONFLICT: HRESULT = 0x8028003B;
+pub const TPM_E_AREA_LOCKED: HRESULT = 0x8028003C;
+pub const TPM_E_BAD_LOCALITY: HRESULT = 0x8028003D;
+pub const TPM_E_READ_ONLY: HRESULT = 0x8028003E;
+pub const TPM_E_PER_NOWRITE: HRESULT = 0x8028003F;
+pub const TPM_E_FAMILYCOUNT: HRESULT = 0x80280040;
+pub const TPM_E_WRITE_LOCKED: HRESULT = 0x80280041;
+pub const TPM_E_BAD_ATTRIBUTES: HRESULT = 0x80280042;
+pub const TPM_E_INVALID_STRUCTURE: HRESULT = 0x80280043;
+pub const TPM_E_KEY_OWNER_CONTROL: HRESULT = 0x80280044;
+pub const TPM_E_BAD_COUNTER: HRESULT = 0x80280045;
+pub const TPM_E_NOT_FULLWRITE: HRESULT = 0x80280046;
+pub const TPM_E_CONTEXT_GAP: HRESULT = 0x80280047;
+pub const TPM_E_MAXNVWRITES: HRESULT = 0x80280048;
+pub const TPM_E_NOOPERATOR: HRESULT = 0x80280049;
+pub const TPM_E_RESOURCEMISSING: HRESULT = 0x8028004A;
+pub const TPM_E_DELEGATE_LOCK: HRESULT = 0x8028004B;
+pub const TPM_E_DELEGATE_FAMILY: HRESULT = 0x8028004C;
+pub const TPM_E_DELEGATE_ADMIN: HRESULT = 0x8028004D;
+pub const TPM_E_TRANSPORT_NOTEXCLUSIVE: HRESULT = 0x8028004E;
+pub const TPM_E_OWNER_CONTROL: HRESULT = 0x8028004F;
+pub const TPM_E_DAA_RESOURCES: HRESULT = 0x80280050;
+pub const TPM_E_DAA_INPUT_DATA0: HRESULT = 0x80280051;
+pub const TPM_E_DAA_INPUT_DATA1: HRESULT = 0x80280052;
+pub const TPM_E_DAA_ISSUER_SETTINGS: HRESULT = 0x80280053;
+pub const TPM_E_DAA_TPM_SETTINGS: HRESULT = 0x80280054;
+pub const TPM_E_DAA_STAGE: HRESULT = 0x80280055;
+pub const TPM_E_DAA_ISSUER_VALIDITY: HRESULT = 0x80280056;
+pub const TPM_E_DAA_WRONG_W: HRESULT = 0x80280057;
+pub const TPM_E_BAD_HANDLE: HRESULT = 0x80280058;
+pub const TPM_E_BAD_DELEGATE: HRESULT = 0x80280059;
+pub const TPM_E_BADCONTEXT: HRESULT = 0x8028005A;
+pub const TPM_E_TOOMANYCONTEXTS: HRESULT = 0x8028005B;
+pub const TPM_E_MA_TICKET_SIGNATURE: HRESULT = 0x8028005C;
+pub const TPM_E_MA_DESTINATION: HRESULT = 0x8028005D;
+pub const TPM_E_MA_SOURCE: HRESULT = 0x8028005E;
+pub const TPM_E_MA_AUTHORITY: HRESULT = 0x8028005F;
+pub const TPM_E_PERMANENTEK: HRESULT = 0x80280061;
+pub const TPM_E_BAD_SIGNATURE: HRESULT = 0x80280062;
+pub const TPM_E_NOCONTEXTSPACE: HRESULT = 0x80280063;
+pub const TPM_E_COMMAND_BLOCKED: HRESULT = 0x80280400;
+pub const TPM_E_INVALID_HANDLE: HRESULT = 0x80280401;
+pub const TPM_E_DUPLICATE_VHANDLE: HRESULT = 0x80280402;
+pub const TPM_E_EMBEDDED_COMMAND_BLOCKED: HRESULT = 0x80280403;
+pub const TPM_E_EMBEDDED_COMMAND_UNSUPPORTED: HRESULT = 0x80280404;
+pub const TPM_E_RETRY: HRESULT = 0x80280800;
+pub const TPM_E_NEEDS_SELFTEST: HRESULT = 0x80280801;
+pub const TPM_E_DOING_SELFTEST: HRESULT = 0x80280802;
+pub const TPM_E_DEFEND_LOCK_RUNNING: HRESULT = 0x80280803;
+pub const TBS_E_INTERNAL_ERROR: HRESULT = 0x80284001;
+pub const TBS_E_BAD_PARAMETER: HRESULT = 0x80284002;
+pub const TBS_E_INVALID_OUTPUT_POINTER: HRESULT = 0x80284003;
+pub const TBS_E_INVALID_CONTEXT: HRESULT = 0x80284004;
+pub const TBS_E_INSUFFICIENT_BUFFER: HRESULT = 0x80284005;
+pub const TBS_E_IOERROR: HRESULT = 0x80284006;
+pub const TBS_E_INVALID_CONTEXT_PARAM: HRESULT = 0x80284007;
+pub const TBS_E_SERVICE_NOT_RUNNING: HRESULT = 0x80284008;
+pub const TBS_E_TOO_MANY_TBS_CONTEXTS: HRESULT = 0x80284009;
+pub const TBS_E_TOO_MANY_RESOURCES: HRESULT = 0x8028400A;
+pub const TBS_E_SERVICE_START_PENDING: HRESULT = 0x8028400B;
+pub const TBS_E_PPI_NOT_SUPPORTED: HRESULT = 0x8028400C;
+pub const TBS_E_COMMAND_CANCELED: HRESULT = 0x8028400D;
+pub const TBS_E_BUFFER_TOO_LARGE: HRESULT = 0x8028400E;
+pub const TBS_E_TPM_NOT_FOUND: HRESULT = 0x8028400F;
+pub const TBS_E_SERVICE_DISABLED: HRESULT = 0x80284010;
+pub const TBS_E_NO_EVENT_LOG: HRESULT = 0x80284011;
+pub const TBS_E_ACCESS_DENIED: HRESULT = 0x80284012;
+pub const TBS_E_PROVISIONING_NOT_ALLOWED: HRESULT = 0x80284013;
+pub const TBS_E_PPI_FUNCTION_UNSUPPORTED: HRESULT = 0x80284014;
+pub const TBS_E_OWNERAUTH_NOT_FOUND: HRESULT = 0x80284015;
+pub const TBS_E_PROVISIONING_INCOMPLETE: HRESULT = 0x80284016;
+pub const TPMAPI_E_INVALID_STATE: HRESULT = 0x80290100;
+pub const TPMAPI_E_NOT_ENOUGH_DATA: HRESULT = 0x80290101;
+pub const TPMAPI_E_TOO_MUCH_DATA: HRESULT = 0x80290102;
+pub const TPMAPI_E_INVALID_OUTPUT_POINTER: HRESULT = 0x80290103;
+pub const TPMAPI_E_INVALID_PARAMETER: HRESULT = 0x80290104;
+pub const TPMAPI_E_OUT_OF_MEMORY: HRESULT = 0x80290105;
+pub const TPMAPI_E_BUFFER_TOO_SMALL: HRESULT = 0x80290106;
+pub const TPMAPI_E_INTERNAL_ERROR: HRESULT = 0x80290107;
+pub const TPMAPI_E_ACCESS_DENIED: HRESULT = 0x80290108;
+pub const TPMAPI_E_AUTHORIZATION_FAILED: HRESULT = 0x80290109;
+pub const TPMAPI_E_INVALID_CONTEXT_HANDLE: HRESULT = 0x8029010A;
+pub const TPMAPI_E_TBS_COMMUNICATION_ERROR: HRESULT = 0x8029010B;
+pub const TPMAPI_E_TPM_COMMAND_ERROR: HRESULT = 0x8029010C;
+pub const TPMAPI_E_MESSAGE_TOO_LARGE: HRESULT = 0x8029010D;
+pub const TPMAPI_E_INVALID_ENCODING: HRESULT = 0x8029010E;
+pub const TPMAPI_E_INVALID_KEY_SIZE: HRESULT = 0x8029010F;
+pub const TPMAPI_E_ENCRYPTION_FAILED: HRESULT = 0x80290110;
+pub const TPMAPI_E_INVALID_KEY_PARAMS: HRESULT = 0x80290111;
+pub const TPMAPI_E_INVALID_MIGRATION_AUTHORIZATION_BLOB: HRESULT = 0x80290112;
+pub const TPMAPI_E_INVALID_PCR_INDEX: HRESULT = 0x80290113;
+pub const TPMAPI_E_INVALID_DELEGATE_BLOB: HRESULT = 0x80290114;
+pub const TPMAPI_E_INVALID_CONTEXT_PARAMS: HRESULT = 0x80290115;
+pub const TPMAPI_E_INVALID_KEY_BLOB: HRESULT = 0x80290116;
+pub const TPMAPI_E_INVALID_PCR_DATA: HRESULT = 0x80290117;
+pub const TPMAPI_E_INVALID_OWNER_AUTH: HRESULT = 0x80290118;
+pub const TPMAPI_E_FIPS_RNG_CHECK_FAILED: HRESULT = 0x80290119;
+pub const TPMAPI_E_EMPTY_TCG_LOG: HRESULT = 0x8029011A;
+pub const TPMAPI_E_INVALID_TCG_LOG_ENTRY: HRESULT = 0x8029011B;
+pub const TPMAPI_E_TCG_SEPARATOR_ABSENT: HRESULT = 0x8029011C;
+pub const TPMAPI_E_TCG_INVALID_DIGEST_ENTRY: HRESULT = 0x8029011D;
+pub const TPMAPI_E_POLICY_DENIES_OPERATION: HRESULT = 0x8029011E;
+pub const TBSIMP_E_BUFFER_TOO_SMALL: HRESULT = 0x80290200;
+pub const TBSIMP_E_CLEANUP_FAILED: HRESULT = 0x80290201;
+pub const TBSIMP_E_INVALID_CONTEXT_HANDLE: HRESULT = 0x80290202;
+pub const TBSIMP_E_INVALID_CONTEXT_PARAM: HRESULT = 0x80290203;
+pub const TBSIMP_E_TPM_ERROR: HRESULT = 0x80290204;
+pub const TBSIMP_E_HASH_BAD_KEY: HRESULT = 0x80290205;
+pub const TBSIMP_E_DUPLICATE_VHANDLE: HRESULT = 0x80290206;
+pub const TBSIMP_E_INVALID_OUTPUT_POINTER: HRESULT = 0x80290207;
+pub const TBSIMP_E_INVALID_PARAMETER: HRESULT = 0x80290208;
+pub const TBSIMP_E_RPC_INIT_FAILED: HRESULT = 0x80290209;
+pub const TBSIMP_E_SCHEDULER_NOT_RUNNING: HRESULT = 0x8029020A;
+pub const TBSIMP_E_COMMAND_CANCELED: HRESULT = 0x8029020B;
+pub const TBSIMP_E_OUT_OF_MEMORY: HRESULT = 0x8029020C;
+pub const TBSIMP_E_LIST_NO_MORE_ITEMS: HRESULT = 0x8029020D;
+pub const TBSIMP_E_LIST_NOT_FOUND: HRESULT = 0x8029020E;
+pub const TBSIMP_E_NOT_ENOUGH_SPACE: HRESULT = 0x8029020F;
+pub const TBSIMP_E_NOT_ENOUGH_TPM_CONTEXTS: HRESULT = 0x80290210;
+pub const TBSIMP_E_COMMAND_FAILED: HRESULT = 0x80290211;
+pub const TBSIMP_E_UNKNOWN_ORDINAL: HRESULT = 0x80290212;
+pub const TBSIMP_E_RESOURCE_EXPIRED: HRESULT = 0x80290213;
+pub const TBSIMP_E_INVALID_RESOURCE: HRESULT = 0x80290214;
+pub const TBSIMP_E_NOTHING_TO_UNLOAD: HRESULT = 0x80290215;
+pub const TBSIMP_E_HASH_TABLE_FULL: HRESULT = 0x80290216;
+pub const TBSIMP_E_TOO_MANY_TBS_CONTEXTS: HRESULT = 0x80290217;
+pub const TBSIMP_E_TOO_MANY_RESOURCES: HRESULT = 0x80290218;
+pub const TBSIMP_E_PPI_NOT_SUPPORTED: HRESULT = 0x80290219;
+pub const TBSIMP_E_TPM_INCOMPATIBLE: HRESULT = 0x8029021A;
+pub const TBSIMP_E_NO_EVENT_LOG: HRESULT = 0x8029021B;
+pub const TPM_E_PPI_ACPI_FAILURE: HRESULT = 0x80290300;
+pub const TPM_E_PPI_USER_ABORT: HRESULT = 0x80290301;
+pub const TPM_E_PPI_BIOS_FAILURE: HRESULT = 0x80290302;
+pub const TPM_E_PPI_NOT_SUPPORTED: HRESULT = 0x80290303;
+pub const TPM_E_PPI_BLOCKED_IN_BIOS: HRESULT = 0x80290304;
+pub const TPM_E_PCP_ERROR_MASK: HRESULT = 0x80290400;
+pub const TPM_E_PCP_DEVICE_NOT_READY: HRESULT = 0x80290401;
+pub const TPM_E_PCP_INVALID_HANDLE: HRESULT = 0x80290402;
+pub const TPM_E_PCP_INVALID_PARAMETER: HRESULT = 0x80290403;
+pub const TPM_E_PCP_FLAG_NOT_SUPPORTED: HRESULT = 0x80290404;
+pub const TPM_E_PCP_NOT_SUPPORTED: HRESULT = 0x80290405;
+pub const TPM_E_PCP_BUFFER_TOO_SMALL: HRESULT = 0x80290406;
+pub const TPM_E_PCP_INTERNAL_ERROR: HRESULT = 0x80290407;
+pub const TPM_E_PCP_AUTHENTICATION_FAILED: HRESULT = 0x80290408;
+pub const TPM_E_PCP_AUTHENTICATION_IGNORED: HRESULT = 0x80290409;
+pub const TPM_E_PCP_POLICY_NOT_FOUND: HRESULT = 0x8029040A;
+pub const TPM_E_PCP_PROFILE_NOT_FOUND: HRESULT = 0x8029040B;
+pub const TPM_E_PCP_VALIDATION_FAILED: HRESULT = 0x8029040C;
+pub const PLA_E_DCS_NOT_FOUND: HRESULT = 0x80300002;
+pub const PLA_E_DCS_IN_USE: HRESULT = 0x803000AA;
+pub const PLA_E_TOO_MANY_FOLDERS: HRESULT = 0x80300045;
+pub const PLA_E_NO_MIN_DISK: HRESULT = 0x80300070;
+pub const PLA_E_DCS_ALREADY_EXISTS: HRESULT = 0x803000B7;
+pub const PLA_S_PROPERTY_IGNORED: HRESULT = 0x00300100;
+pub const PLA_E_PROPERTY_CONFLICT: HRESULT = 0x80300101;
+pub const PLA_E_DCS_SINGLETON_REQUIRED: HRESULT = 0x80300102;
+pub const PLA_E_CREDENTIALS_REQUIRED: HRESULT = 0x80300103;
+pub const PLA_E_DCS_NOT_RUNNING: HRESULT = 0x80300104;
+pub const PLA_E_CONFLICT_INCL_EXCL_API: HRESULT = 0x80300105;
+pub const PLA_E_NETWORK_EXE_NOT_VALID: HRESULT = 0x80300106;
+pub const PLA_E_EXE_ALREADY_CONFIGURED: HRESULT = 0x80300107;
+pub const PLA_E_EXE_PATH_NOT_VALID: HRESULT = 0x80300108;
+pub const PLA_E_DC_ALREADY_EXISTS: HRESULT = 0x80300109;
+pub const PLA_E_DCS_START_WAIT_TIMEOUT: HRESULT = 0x8030010A;
+pub const PLA_E_DC_START_WAIT_TIMEOUT: HRESULT = 0x8030010B;
+pub const PLA_E_REPORT_WAIT_TIMEOUT: HRESULT = 0x8030010C;
+pub const PLA_E_NO_DUPLICATES: HRESULT = 0x8030010D;
+pub const PLA_E_EXE_FULL_PATH_REQUIRED: HRESULT = 0x8030010E;
+pub const PLA_E_INVALID_SESSION_NAME: HRESULT = 0x8030010F;
+pub const PLA_E_PLA_CHANNEL_NOT_ENABLED: HRESULT = 0x80300110;
+pub const PLA_E_TASKSCHED_CHANNEL_NOT_ENABLED: HRESULT = 0x80300111;
+pub const PLA_E_RULES_MANAGER_FAILED: HRESULT = 0x80300112;
+pub const PLA_E_CABAPI_FAILURE: HRESULT = 0x80300113;
+pub const FVE_E_LOCKED_VOLUME: HRESULT = 0x80310000;
+pub const FVE_E_NOT_ENCRYPTED: HRESULT = 0x80310001;
+pub const FVE_E_NO_TPM_BIOS: HRESULT = 0x80310002;
+pub const FVE_E_NO_MBR_METRIC: HRESULT = 0x80310003;
+pub const FVE_E_NO_BOOTSECTOR_METRIC: HRESULT = 0x80310004;
+pub const FVE_E_NO_BOOTMGR_METRIC: HRESULT = 0x80310005;
+pub const FVE_E_WRONG_BOOTMGR: HRESULT = 0x80310006;
+pub const FVE_E_SECURE_KEY_REQUIRED: HRESULT = 0x80310007;
+pub const FVE_E_NOT_ACTIVATED: HRESULT = 0x80310008;
+pub const FVE_E_ACTION_NOT_ALLOWED: HRESULT = 0x80310009;
+pub const FVE_E_AD_SCHEMA_NOT_INSTALLED: HRESULT = 0x8031000A;
+pub const FVE_E_AD_INVALID_DATATYPE: HRESULT = 0x8031000B;
+pub const FVE_E_AD_INVALID_DATASIZE: HRESULT = 0x8031000C;
+pub const FVE_E_AD_NO_VALUES: HRESULT = 0x8031000D;
+pub const FVE_E_AD_ATTR_NOT_SET: HRESULT = 0x8031000E;
+pub const FVE_E_AD_GUID_NOT_FOUND: HRESULT = 0x8031000F;
+pub const FVE_E_BAD_INFORMATION: HRESULT = 0x80310010;
+pub const FVE_E_TOO_SMALL: HRESULT = 0x80310011;
+pub const FVE_E_SYSTEM_VOLUME: HRESULT = 0x80310012;
+pub const FVE_E_FAILED_WRONG_FS: HRESULT = 0x80310013;
+pub const FVE_E_BAD_PARTITION_SIZE: HRESULT = 0x80310014;
+pub const FVE_E_NOT_SUPPORTED: HRESULT = 0x80310015;
+pub const FVE_E_BAD_DATA: HRESULT = 0x80310016;
+pub const FVE_E_VOLUME_NOT_BOUND: HRESULT = 0x80310017;
+pub const FVE_E_TPM_NOT_OWNED: HRESULT = 0x80310018;
+pub const FVE_E_NOT_DATA_VOLUME: HRESULT = 0x80310019;
+pub const FVE_E_AD_INSUFFICIENT_BUFFER: HRESULT = 0x8031001A;
+pub const FVE_E_CONV_READ: HRESULT = 0x8031001B;
+pub const FVE_E_CONV_WRITE: HRESULT = 0x8031001C;
+pub const FVE_E_KEY_REQUIRED: HRESULT = 0x8031001D;
+pub const FVE_E_CLUSTERING_NOT_SUPPORTED: HRESULT = 0x8031001E;
+pub const FVE_E_VOLUME_BOUND_ALREADY: HRESULT = 0x8031001F;
+pub const FVE_E_OS_NOT_PROTECTED: HRESULT = 0x80310020;
+pub const FVE_E_PROTECTION_DISABLED: HRESULT = 0x80310021;
+pub const FVE_E_RECOVERY_KEY_REQUIRED: HRESULT = 0x80310022;
+pub const FVE_E_FOREIGN_VOLUME: HRESULT = 0x80310023;
+pub const FVE_E_OVERLAPPED_UPDATE: HRESULT = 0x80310024;
+pub const FVE_E_TPM_SRK_AUTH_NOT_ZERO: HRESULT = 0x80310025;
+pub const FVE_E_FAILED_SECTOR_SIZE: HRESULT = 0x80310026;
+pub const FVE_E_FAILED_AUTHENTICATION: HRESULT = 0x80310027;
+pub const FVE_E_NOT_OS_VOLUME: HRESULT = 0x80310028;
+pub const FVE_E_AUTOUNLOCK_ENABLED: HRESULT = 0x80310029;
+pub const FVE_E_WRONG_BOOTSECTOR: HRESULT = 0x8031002A;
+pub const FVE_E_WRONG_SYSTEM_FS: HRESULT = 0x8031002B;
+pub const FVE_E_POLICY_PASSWORD_REQUIRED: HRESULT = 0x8031002C;
+pub const FVE_E_CANNOT_SET_FVEK_ENCRYPTED: HRESULT = 0x8031002D;
+pub const FVE_E_CANNOT_ENCRYPT_NO_KEY: HRESULT = 0x8031002E;
+pub const FVE_E_BOOTABLE_CDDVD: HRESULT = 0x80310030;
+pub const FVE_E_PROTECTOR_EXISTS: HRESULT = 0x80310031;
+pub const FVE_E_RELATIVE_PATH: HRESULT = 0x80310032;
+pub const FVE_E_PROTECTOR_NOT_FOUND: HRESULT = 0x80310033;
+pub const FVE_E_INVALID_KEY_FORMAT: HRESULT = 0x80310034;
+pub const FVE_E_INVALID_PASSWORD_FORMAT: HRESULT = 0x80310035;
+pub const FVE_E_FIPS_RNG_CHECK_FAILED: HRESULT = 0x80310036;
+pub const FVE_E_FIPS_PREVENTS_RECOVERY_PASSWORD: HRESULT = 0x80310037;
+pub const FVE_E_FIPS_PREVENTS_EXTERNAL_KEY_EXPORT: HRESULT = 0x80310038;
+pub const FVE_E_NOT_DECRYPTED: HRESULT = 0x80310039;
+pub const FVE_E_INVALID_PROTECTOR_TYPE: HRESULT = 0x8031003A;
+pub const FVE_E_NO_PROTECTORS_TO_TEST: HRESULT = 0x8031003B;
+pub const FVE_E_KEYFILE_NOT_FOUND: HRESULT = 0x8031003C;
+pub const FVE_E_KEYFILE_INVALID: HRESULT = 0x8031003D;
+pub const FVE_E_KEYFILE_NO_VMK: HRESULT = 0x8031003E;
+pub const FVE_E_TPM_DISABLED: HRESULT = 0x8031003F;
+pub const FVE_E_NOT_ALLOWED_IN_SAFE_MODE: HRESULT = 0x80310040;
+pub const FVE_E_TPM_INVALID_PCR: HRESULT = 0x80310041;
+pub const FVE_E_TPM_NO_VMK: HRESULT = 0x80310042;
+pub const FVE_E_PIN_INVALID: HRESULT = 0x80310043;
+pub const FVE_E_AUTH_INVALID_APPLICATION: HRESULT = 0x80310044;
+pub const FVE_E_AUTH_INVALID_CONFIG: HRESULT = 0x80310045;
+pub const FVE_E_FIPS_DISABLE_PROTECTION_NOT_ALLOWED: HRESULT = 0x80310046;
+pub const FVE_E_FS_NOT_EXTENDED: HRESULT = 0x80310047;
+pub const FVE_E_FIRMWARE_TYPE_NOT_SUPPORTED: HRESULT = 0x80310048;
+pub const FVE_E_NO_LICENSE: HRESULT = 0x80310049;
+pub const FVE_E_NOT_ON_STACK: HRESULT = 0x8031004A;
+pub const FVE_E_FS_MOUNTED: HRESULT = 0x8031004B;
+pub const FVE_E_TOKEN_NOT_IMPERSONATED: HRESULT = 0x8031004C;
+pub const FVE_E_DRY_RUN_FAILED: HRESULT = 0x8031004D;
+pub const FVE_E_REBOOT_REQUIRED: HRESULT = 0x8031004E;
+pub const FVE_E_DEBUGGER_ENABLED: HRESULT = 0x8031004F;
+pub const FVE_E_RAW_ACCESS: HRESULT = 0x80310050;
+pub const FVE_E_RAW_BLOCKED: HRESULT = 0x80310051;
+pub const FVE_E_BCD_APPLICATIONS_PATH_INCORRECT: HRESULT = 0x80310052;
+pub const FVE_E_NOT_ALLOWED_IN_VERSION: HRESULT = 0x80310053;
+pub const FVE_E_NO_AUTOUNLOCK_MASTER_KEY: HRESULT = 0x80310054;
+pub const FVE_E_MOR_FAILED: HRESULT = 0x80310055;
+pub const FVE_E_HIDDEN_VOLUME: HRESULT = 0x80310056;
+pub const FVE_E_TRANSIENT_STATE: HRESULT = 0x80310057;
+pub const FVE_E_PUBKEY_NOT_ALLOWED: HRESULT = 0x80310058;
+pub const FVE_E_VOLUME_HANDLE_OPEN: HRESULT = 0x80310059;
+pub const FVE_E_NO_FEATURE_LICENSE: HRESULT = 0x8031005A;
+pub const FVE_E_INVALID_STARTUP_OPTIONS: HRESULT = 0x8031005B;
+pub const FVE_E_POLICY_RECOVERY_PASSWORD_NOT_ALLOWED: HRESULT = 0x8031005C;
+pub const FVE_E_POLICY_RECOVERY_PASSWORD_REQUIRED: HRESULT = 0x8031005D;
+pub const FVE_E_POLICY_RECOVERY_KEY_NOT_ALLOWED: HRESULT = 0x8031005E;
+pub const FVE_E_POLICY_RECOVERY_KEY_REQUIRED: HRESULT = 0x8031005F;
+pub const FVE_E_POLICY_STARTUP_PIN_NOT_ALLOWED: HRESULT = 0x80310060;
+pub const FVE_E_POLICY_STARTUP_PIN_REQUIRED: HRESULT = 0x80310061;
+pub const FVE_E_POLICY_STARTUP_KEY_NOT_ALLOWED: HRESULT = 0x80310062;
+pub const FVE_E_POLICY_STARTUP_KEY_REQUIRED: HRESULT = 0x80310063;
+pub const FVE_E_POLICY_STARTUP_PIN_KEY_NOT_ALLOWED: HRESULT = 0x80310064;
+pub const FVE_E_POLICY_STARTUP_PIN_KEY_REQUIRED: HRESULT = 0x80310065;
+pub const FVE_E_POLICY_STARTUP_TPM_NOT_ALLOWED: HRESULT = 0x80310066;
+pub const FVE_E_POLICY_STARTUP_TPM_REQUIRED: HRESULT = 0x80310067;
+pub const FVE_E_POLICY_INVALID_PIN_LENGTH: HRESULT = 0x80310068;
+pub const FVE_E_KEY_PROTECTOR_NOT_SUPPORTED: HRESULT = 0x80310069;
+pub const FVE_E_POLICY_PASSPHRASE_NOT_ALLOWED: HRESULT = 0x8031006A;
+pub const FVE_E_POLICY_PASSPHRASE_REQUIRED: HRESULT = 0x8031006B;
+pub const FVE_E_FIPS_PREVENTS_PASSPHRASE: HRESULT = 0x8031006C;
+pub const FVE_E_OS_VOLUME_PASSPHRASE_NOT_ALLOWED: HRESULT = 0x8031006D;
+pub const FVE_E_INVALID_BITLOCKER_OID: HRESULT = 0x8031006E;
+pub const FVE_E_VOLUME_TOO_SMALL: HRESULT = 0x8031006F;
+pub const FVE_E_DV_NOT_SUPPORTED_ON_FS: HRESULT = 0x80310070;
+pub const FVE_E_DV_NOT_ALLOWED_BY_GP: HRESULT = 0x80310071;
+pub const FVE_E_POLICY_USER_CERTIFICATE_NOT_ALLOWED: HRESULT = 0x80310072;
+pub const FVE_E_POLICY_USER_CERTIFICATE_REQUIRED: HRESULT = 0x80310073;
+pub const FVE_E_POLICY_USER_CERT_MUST_BE_HW: HRESULT = 0x80310074;
+pub const FVE_E_POLICY_USER_CONFIGURE_FDV_AUTOUNLOCK_NOT_ALLOWED: HRESULT
+ = 0x80310075;
+pub const FVE_E_POLICY_USER_CONFIGURE_RDV_AUTOUNLOCK_NOT_ALLOWED: HRESULT
+ = 0x80310076;
+pub const FVE_E_POLICY_USER_CONFIGURE_RDV_NOT_ALLOWED: HRESULT = 0x80310077;
+pub const FVE_E_POLICY_USER_ENABLE_RDV_NOT_ALLOWED: HRESULT = 0x80310078;
+pub const FVE_E_POLICY_USER_DISABLE_RDV_NOT_ALLOWED: HRESULT = 0x80310079;
+pub const FVE_E_POLICY_INVALID_PASSPHRASE_LENGTH: HRESULT = 0x80310080;
+pub const FVE_E_POLICY_PASSPHRASE_TOO_SIMPLE: HRESULT = 0x80310081;
+pub const FVE_E_RECOVERY_PARTITION: HRESULT = 0x80310082;
+pub const FVE_E_POLICY_CONFLICT_FDV_RK_OFF_AUK_ON: HRESULT = 0x80310083;
+pub const FVE_E_POLICY_CONFLICT_RDV_RK_OFF_AUK_ON: HRESULT = 0x80310084;
+pub const FVE_E_NON_BITLOCKER_OID: HRESULT = 0x80310085;
+pub const FVE_E_POLICY_PROHIBITS_SELFSIGNED: HRESULT = 0x80310086;
+pub const FVE_E_POLICY_CONFLICT_RO_AND_STARTUP_KEY_REQUIRED: HRESULT = 0x80310087;
+pub const FVE_E_CONV_RECOVERY_FAILED: HRESULT = 0x80310088;
+pub const FVE_E_VIRTUALIZED_SPACE_TOO_BIG: HRESULT = 0x80310089;
+pub const FVE_E_POLICY_CONFLICT_OSV_RP_OFF_ADB_ON: HRESULT = 0x80310090;
+pub const FVE_E_POLICY_CONFLICT_FDV_RP_OFF_ADB_ON: HRESULT = 0x80310091;
+pub const FVE_E_POLICY_CONFLICT_RDV_RP_OFF_ADB_ON: HRESULT = 0x80310092;
+pub const FVE_E_NON_BITLOCKER_KU: HRESULT = 0x80310093;
+pub const FVE_E_PRIVATEKEY_AUTH_FAILED: HRESULT = 0x80310094;
+pub const FVE_E_REMOVAL_OF_DRA_FAILED: HRESULT = 0x80310095;
+pub const FVE_E_OPERATION_NOT_SUPPORTED_ON_VISTA_VOLUME: HRESULT = 0x80310096;
+pub const FVE_E_CANT_LOCK_AUTOUNLOCK_ENABLED_VOLUME: HRESULT = 0x80310097;
+pub const FVE_E_FIPS_HASH_KDF_NOT_ALLOWED: HRESULT = 0x80310098;
+pub const FVE_E_ENH_PIN_INVALID: HRESULT = 0x80310099;
+pub const FVE_E_INVALID_PIN_CHARS: HRESULT = 0x8031009A;
+pub const FVE_E_INVALID_DATUM_TYPE: HRESULT = 0x8031009B;
+pub const FVE_E_EFI_ONLY: HRESULT = 0x8031009C;
+pub const FVE_E_MULTIPLE_NKP_CERTS: HRESULT = 0x8031009D;
+pub const FVE_E_REMOVAL_OF_NKP_FAILED: HRESULT = 0x8031009E;
+pub const FVE_E_INVALID_NKP_CERT: HRESULT = 0x8031009F;
+pub const FVE_E_NO_EXISTING_PIN: HRESULT = 0x803100A0;
+pub const FVE_E_PROTECTOR_CHANGE_PIN_MISMATCH: HRESULT = 0x803100A1;
+pub const FVE_E_PIN_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED: HRESULT = 0x803100A2;
+pub const FVE_E_PROTECTOR_CHANGE_MAX_PIN_CHANGE_ATTEMPTS_REACHED: HRESULT
+ = 0x803100A3;
+pub const FVE_E_POLICY_PASSPHRASE_REQUIRES_ASCII: HRESULT = 0x803100A4;
+pub const FVE_E_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE: HRESULT = 0x803100A5;
+pub const FVE_E_WIPE_NOT_ALLOWED_ON_TP_STORAGE: HRESULT = 0x803100A6;
+pub const FVE_E_KEY_LENGTH_NOT_SUPPORTED_BY_EDRIVE: HRESULT = 0x803100A7;
+pub const FVE_E_NO_EXISTING_PASSPHRASE: HRESULT = 0x803100A8;
+pub const FVE_E_PROTECTOR_CHANGE_PASSPHRASE_MISMATCH: HRESULT = 0x803100A9;
+pub const FVE_E_PASSPHRASE_TOO_LONG: HRESULT = 0x803100AA;
+pub const FVE_E_NO_PASSPHRASE_WITH_TPM: HRESULT = 0x803100AB;
+pub const FVE_E_NO_TPM_WITH_PASSPHRASE: HRESULT = 0x803100AC;
+pub const FVE_E_NOT_ALLOWED_ON_CSV_STACK: HRESULT = 0x803100AD;
+pub const FVE_E_NOT_ALLOWED_ON_CLUSTER: HRESULT = 0x803100AE;
+pub const FVE_E_EDRIVE_NO_FAILOVER_TO_SW: HRESULT = 0x803100AF;
+pub const FVE_E_EDRIVE_BAND_IN_USE: HRESULT = 0x803100B0;
+pub const FVE_E_EDRIVE_DISALLOWED_BY_GP: HRESULT = 0x803100B1;
+pub const FVE_E_EDRIVE_INCOMPATIBLE_VOLUME: HRESULT = 0x803100B2;
+pub const FVE_E_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING: HRESULT = 0x803100B3;
+pub const FVE_E_EDRIVE_DV_NOT_SUPPORTED: HRESULT = 0x803100B4;
+pub const FVE_E_NO_PREBOOT_KEYBOARD_DETECTED: HRESULT = 0x803100B5;
+pub const FVE_E_NO_PREBOOT_KEYBOARD_OR_WINRE_DETECTED: HRESULT = 0x803100B6;
+pub const FVE_E_POLICY_REQUIRES_STARTUP_PIN_ON_TOUCH_DEVICE: HRESULT = 0x803100B7;
+pub const FVE_E_POLICY_REQUIRES_RECOVERY_PASSWORD_ON_TOUCH_DEVICE: HRESULT
+ = 0x803100B8;
+pub const FVE_E_WIPE_CANCEL_NOT_APPLICABLE: HRESULT = 0x803100B9;
+pub const FVE_E_SECUREBOOT_DISABLED: HRESULT = 0x803100BA;
+pub const FVE_E_SECUREBOOT_CONFIGURATION_INVALID: HRESULT = 0x803100BB;
+pub const FVE_E_EDRIVE_DRY_RUN_FAILED: HRESULT = 0x803100BC;
+pub const FVE_E_SHADOW_COPY_PRESENT: HRESULT = 0x803100BD;
+pub const FVE_E_POLICY_INVALID_ENHANCED_BCD_SETTINGS: HRESULT = 0x803100BE;
+pub const FVE_E_EDRIVE_INCOMPATIBLE_FIRMWARE: HRESULT = 0x803100BF;
+pub const FVE_E_PROTECTOR_CHANGE_MAX_PASSPHRASE_CHANGE_ATTEMPTS_REACHED: HRESULT
+ = 0x803100C0;
+pub const FVE_E_PASSPHRASE_PROTECTOR_CHANGE_BY_STD_USER_DISALLOWED: HRESULT
+ = 0x803100C1;
+pub const FVE_E_LIVEID_ACCOUNT_SUSPENDED: HRESULT = 0x803100C2;
+pub const FVE_E_LIVEID_ACCOUNT_BLOCKED: HRESULT = 0x803100C3;
+pub const FVE_E_NOT_PROVISIONED_ON_ALL_VOLUMES: HRESULT = 0x803100C4;
+pub const FVE_E_DE_FIXED_DATA_NOT_SUPPORTED: HRESULT = 0x803100C5;
+pub const FVE_E_DE_HARDWARE_NOT_COMPLIANT: HRESULT = 0x803100C6;
+pub const FVE_E_DE_WINRE_NOT_CONFIGURED: HRESULT = 0x803100C7;
+pub const FVE_E_DE_PROTECTION_SUSPENDED: HRESULT = 0x803100C8;
+pub const FVE_E_DE_OS_VOLUME_NOT_PROTECTED: HRESULT = 0x803100C9;
+pub const FVE_E_DE_DEVICE_LOCKEDOUT: HRESULT = 0x803100CA;
+pub const FVE_E_DE_PROTECTION_NOT_YET_ENABLED: HRESULT = 0x803100CB;
+pub const FVE_E_INVALID_PIN_CHARS_DETAILED: HRESULT = 0x803100CC;
+pub const FVE_E_DEVICE_LOCKOUT_COUNTER_UNAVAILABLE: HRESULT = 0x803100CD;
+pub const FVE_E_DEVICELOCKOUT_COUNTER_MISMATCH: HRESULT = 0x803100CE;
+pub const FVE_E_BUFFER_TOO_LARGE: HRESULT = 0x803100CF;
+pub const FVE_E_NO_SUCH_CAPABILITY_ON_TARGET: HRESULT = 0x803100D0;
+pub const FVE_E_DE_PREVENTED_FOR_OS: HRESULT = 0x803100D1;
+pub const FVE_E_DE_VOLUME_OPTED_OUT: HRESULT = 0x803100D2;
+pub const FVE_E_DE_VOLUME_NOT_SUPPORTED: HRESULT = 0x803100D3;
+pub const FVE_E_EOW_NOT_SUPPORTED_IN_VERSION: HRESULT = 0x803100D4;
+pub const FVE_E_ADBACKUP_NOT_ENABLED: HRESULT = 0x803100D5;
+pub const FVE_E_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT: HRESULT = 0x803100D6;
+pub const FVE_E_NOT_DE_VOLUME: HRESULT = 0x803100D7;
+pub const FVE_E_PROTECTION_CANNOT_BE_DISABLED: HRESULT = 0x803100D8;
+pub const FWP_E_CALLOUT_NOT_FOUND: HRESULT = 0x80320001;
+pub const FWP_E_CONDITION_NOT_FOUND: HRESULT = 0x80320002;
+pub const FWP_E_FILTER_NOT_FOUND: HRESULT = 0x80320003;
+pub const FWP_E_LAYER_NOT_FOUND: HRESULT = 0x80320004;
+pub const FWP_E_PROVIDER_NOT_FOUND: HRESULT = 0x80320005;
+pub const FWP_E_PROVIDER_CONTEXT_NOT_FOUND: HRESULT = 0x80320006;
+pub const FWP_E_SUBLAYER_NOT_FOUND: HRESULT = 0x80320007;
+pub const FWP_E_NOT_FOUND: HRESULT = 0x80320008;
+pub const FWP_E_ALREADY_EXISTS: HRESULT = 0x80320009;
+pub const FWP_E_IN_USE: HRESULT = 0x8032000A;
+pub const FWP_E_DYNAMIC_SESSION_IN_PROGRESS: HRESULT = 0x8032000B;
+pub const FWP_E_WRONG_SESSION: HRESULT = 0x8032000C;
+pub const FWP_E_NO_TXN_IN_PROGRESS: HRESULT = 0x8032000D;
+pub const FWP_E_TXN_IN_PROGRESS: HRESULT = 0x8032000E;
+pub const FWP_E_TXN_ABORTED: HRESULT = 0x8032000F;
+pub const FWP_E_SESSION_ABORTED: HRESULT = 0x80320010;
+pub const FWP_E_INCOMPATIBLE_TXN: HRESULT = 0x80320011;
+pub const FWP_E_TIMEOUT: HRESULT = 0x80320012;
+pub const FWP_E_NET_EVENTS_DISABLED: HRESULT = 0x80320013;
+pub const FWP_E_INCOMPATIBLE_LAYER: HRESULT = 0x80320014;
+pub const FWP_E_KM_CLIENTS_ONLY: HRESULT = 0x80320015;
+pub const FWP_E_LIFETIME_MISMATCH: HRESULT = 0x80320016;
+pub const FWP_E_BUILTIN_OBJECT: HRESULT = 0x80320017;
+pub const FWP_E_TOO_MANY_CALLOUTS: HRESULT = 0x80320018;
+pub const FWP_E_NOTIFICATION_DROPPED: HRESULT = 0x80320019;
+pub const FWP_E_TRAFFIC_MISMATCH: HRESULT = 0x8032001A;
+pub const FWP_E_INCOMPATIBLE_SA_STATE: HRESULT = 0x8032001B;
+pub const FWP_E_NULL_POINTER: HRESULT = 0x8032001C;
+pub const FWP_E_INVALID_ENUMERATOR: HRESULT = 0x8032001D;
+pub const FWP_E_INVALID_FLAGS: HRESULT = 0x8032001E;
+pub const FWP_E_INVALID_NET_MASK: HRESULT = 0x8032001F;
+pub const FWP_E_INVALID_RANGE: HRESULT = 0x80320020;
+pub const FWP_E_INVALID_INTERVAL: HRESULT = 0x80320021;
+pub const FWP_E_ZERO_LENGTH_ARRAY: HRESULT = 0x80320022;
+pub const FWP_E_NULL_DISPLAY_NAME: HRESULT = 0x80320023;
+pub const FWP_E_INVALID_ACTION_TYPE: HRESULT = 0x80320024;
+pub const FWP_E_INVALID_WEIGHT: HRESULT = 0x80320025;
+pub const FWP_E_MATCH_TYPE_MISMATCH: HRESULT = 0x80320026;
+pub const FWP_E_TYPE_MISMATCH: HRESULT = 0x80320027;
+pub const FWP_E_OUT_OF_BOUNDS: HRESULT = 0x80320028;
+pub const FWP_E_RESERVED: HRESULT = 0x80320029;
+pub const FWP_E_DUPLICATE_CONDITION: HRESULT = 0x8032002A;
+pub const FWP_E_DUPLICATE_KEYMOD: HRESULT = 0x8032002B;
+pub const FWP_E_ACTION_INCOMPATIBLE_WITH_LAYER: HRESULT = 0x8032002C;
+pub const FWP_E_ACTION_INCOMPATIBLE_WITH_SUBLAYER: HRESULT = 0x8032002D;
+pub const FWP_E_CONTEXT_INCOMPATIBLE_WITH_LAYER: HRESULT = 0x8032002E;
+pub const FWP_E_CONTEXT_INCOMPATIBLE_WITH_CALLOUT: HRESULT = 0x8032002F;
+pub const FWP_E_INCOMPATIBLE_AUTH_METHOD: HRESULT = 0x80320030;
+pub const FWP_E_INCOMPATIBLE_DH_GROUP: HRESULT = 0x80320031;
+pub const FWP_E_EM_NOT_SUPPORTED: HRESULT = 0x80320032;
+pub const FWP_E_NEVER_MATCH: HRESULT = 0x80320033;
+pub const FWP_E_PROVIDER_CONTEXT_MISMATCH: HRESULT = 0x80320034;
+pub const FWP_E_INVALID_PARAMETER: HRESULT = 0x80320035;
+pub const FWP_E_TOO_MANY_SUBLAYERS: HRESULT = 0x80320036;
+pub const FWP_E_CALLOUT_NOTIFICATION_FAILED: HRESULT = 0x80320037;
+pub const FWP_E_INVALID_AUTH_TRANSFORM: HRESULT = 0x80320038;
+pub const FWP_E_INVALID_CIPHER_TRANSFORM: HRESULT = 0x80320039;
+pub const FWP_E_INCOMPATIBLE_CIPHER_TRANSFORM: HRESULT = 0x8032003A;
+pub const FWP_E_INVALID_TRANSFORM_COMBINATION: HRESULT = 0x8032003B;
+pub const FWP_E_DUPLICATE_AUTH_METHOD: HRESULT = 0x8032003C;
+pub const FWP_E_INVALID_TUNNEL_ENDPOINT: HRESULT = 0x8032003D;
+pub const FWP_E_L2_DRIVER_NOT_READY: HRESULT = 0x8032003E;
+pub const FWP_E_KEY_DICTATOR_ALREADY_REGISTERED: HRESULT = 0x8032003F;
+pub const FWP_E_KEY_DICTATION_INVALID_KEYING_MATERIAL: HRESULT = 0x80320040;
+pub const FWP_E_CONNECTIONS_DISABLED: HRESULT = 0x80320041;
+pub const FWP_E_INVALID_DNS_NAME: HRESULT = 0x80320042;
+pub const FWP_E_STILL_ON: HRESULT = 0x80320043;
+pub const FWP_E_IKEEXT_NOT_RUNNING: HRESULT = 0x80320044;
+pub const FWP_E_DROP_NOICMP: HRESULT = 0x80320104;
+pub const WS_S_ASYNC: HRESULT = 0x003D0000;
+pub const WS_S_END: HRESULT = 0x003D0001;
+pub const WS_E_INVALID_FORMAT: HRESULT = 0x803D0000;
+pub const WS_E_OBJECT_FAULTED: HRESULT = 0x803D0001;
+pub const WS_E_NUMERIC_OVERFLOW: HRESULT = 0x803D0002;
+pub const WS_E_INVALID_OPERATION: HRESULT = 0x803D0003;
+pub const WS_E_OPERATION_ABORTED: HRESULT = 0x803D0004;
+pub const WS_E_ENDPOINT_ACCESS_DENIED: HRESULT = 0x803D0005;
+pub const WS_E_OPERATION_TIMED_OUT: HRESULT = 0x803D0006;
+pub const WS_E_OPERATION_ABANDONED: HRESULT = 0x803D0007;
+pub const WS_E_QUOTA_EXCEEDED: HRESULT = 0x803D0008;
+pub const WS_E_NO_TRANSLATION_AVAILABLE: HRESULT = 0x803D0009;
+pub const WS_E_SECURITY_VERIFICATION_FAILURE: HRESULT = 0x803D000A;
+pub const WS_E_ADDRESS_IN_USE: HRESULT = 0x803D000B;
+pub const WS_E_ADDRESS_NOT_AVAILABLE: HRESULT = 0x803D000C;
+pub const WS_E_ENDPOINT_NOT_FOUND: HRESULT = 0x803D000D;
+pub const WS_E_ENDPOINT_NOT_AVAILABLE: HRESULT = 0x803D000E;
+pub const WS_E_ENDPOINT_FAILURE: HRESULT = 0x803D000F;
+pub const WS_E_ENDPOINT_UNREACHABLE: HRESULT = 0x803D0010;
+pub const WS_E_ENDPOINT_ACTION_NOT_SUPPORTED: HRESULT = 0x803D0011;
+pub const WS_E_ENDPOINT_TOO_BUSY: HRESULT = 0x803D0012;
+pub const WS_E_ENDPOINT_FAULT_RECEIVED: HRESULT = 0x803D0013;
+pub const WS_E_ENDPOINT_DISCONNECTED: HRESULT = 0x803D0014;
+pub const WS_E_PROXY_FAILURE: HRESULT = 0x803D0015;
+pub const WS_E_PROXY_ACCESS_DENIED: HRESULT = 0x803D0016;
+pub const WS_E_NOT_SUPPORTED: HRESULT = 0x803D0017;
+pub const WS_E_PROXY_REQUIRES_BASIC_AUTH: HRESULT = 0x803D0018;
+pub const WS_E_PROXY_REQUIRES_DIGEST_AUTH: HRESULT = 0x803D0019;
+pub const WS_E_PROXY_REQUIRES_NTLM_AUTH: HRESULT = 0x803D001A;
+pub const WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH: HRESULT = 0x803D001B;
+pub const WS_E_SERVER_REQUIRES_BASIC_AUTH: HRESULT = 0x803D001C;
+pub const WS_E_SERVER_REQUIRES_DIGEST_AUTH: HRESULT = 0x803D001D;
+pub const WS_E_SERVER_REQUIRES_NTLM_AUTH: HRESULT = 0x803D001E;
+pub const WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH: HRESULT = 0x803D001F;
+pub const WS_E_INVALID_ENDPOINT_URL: HRESULT = 0x803D0020;
+pub const WS_E_OTHER: HRESULT = 0x803D0021;
+pub const WS_E_SECURITY_TOKEN_EXPIRED: HRESULT = 0x803D0022;
+pub const WS_E_SECURITY_SYSTEM_FAILURE: HRESULT = 0x803D0023;
+pub const ERROR_NDIS_INTERFACE_CLOSING: HRESULT = 0x80340002;
+pub const ERROR_NDIS_BAD_VERSION: HRESULT = 0x80340004;
+pub const ERROR_NDIS_BAD_CHARACTERISTICS: HRESULT = 0x80340005;
+pub const ERROR_NDIS_ADAPTER_NOT_FOUND: HRESULT = 0x80340006;
+pub const ERROR_NDIS_OPEN_FAILED: HRESULT = 0x80340007;
+pub const ERROR_NDIS_DEVICE_FAILED: HRESULT = 0x80340008;
+pub const ERROR_NDIS_MULTICAST_FULL: HRESULT = 0x80340009;
+pub const ERROR_NDIS_MULTICAST_EXISTS: HRESULT = 0x8034000A;
+pub const ERROR_NDIS_MULTICAST_NOT_FOUND: HRESULT = 0x8034000B;
+pub const ERROR_NDIS_REQUEST_ABORTED: HRESULT = 0x8034000C;
+pub const ERROR_NDIS_RESET_IN_PROGRESS: HRESULT = 0x8034000D;
+pub const ERROR_NDIS_NOT_SUPPORTED: HRESULT = 0x803400BB;
+pub const ERROR_NDIS_INVALID_PACKET: HRESULT = 0x8034000F;
+pub const ERROR_NDIS_ADAPTER_NOT_READY: HRESULT = 0x80340011;
+pub const ERROR_NDIS_INVALID_LENGTH: HRESULT = 0x80340014;
+pub const ERROR_NDIS_INVALID_DATA: HRESULT = 0x80340015;
+pub const ERROR_NDIS_BUFFER_TOO_SHORT: HRESULT = 0x80340016;
+pub const ERROR_NDIS_INVALID_OID: HRESULT = 0x80340017;
+pub const ERROR_NDIS_ADAPTER_REMOVED: HRESULT = 0x80340018;
+pub const ERROR_NDIS_UNSUPPORTED_MEDIA: HRESULT = 0x80340019;
+pub const ERROR_NDIS_GROUP_ADDRESS_IN_USE: HRESULT = 0x8034001A;
+pub const ERROR_NDIS_FILE_NOT_FOUND: HRESULT = 0x8034001B;
+pub const ERROR_NDIS_ERROR_READING_FILE: HRESULT = 0x8034001C;
+pub const ERROR_NDIS_ALREADY_MAPPED: HRESULT = 0x8034001D;
+pub const ERROR_NDIS_RESOURCE_CONFLICT: HRESULT = 0x8034001E;
+pub const ERROR_NDIS_MEDIA_DISCONNECTED: HRESULT = 0x8034001F;
+pub const ERROR_NDIS_INVALID_ADDRESS: HRESULT = 0x80340022;
+pub const ERROR_NDIS_INVALID_DEVICE_REQUEST: HRESULT = 0x80340010;
+pub const ERROR_NDIS_PAUSED: HRESULT = 0x8034002A;
+pub const ERROR_NDIS_INTERFACE_NOT_FOUND: HRESULT = 0x8034002B;
+pub const ERROR_NDIS_UNSUPPORTED_REVISION: HRESULT = 0x8034002C;
+pub const ERROR_NDIS_INVALID_PORT: HRESULT = 0x8034002D;
+pub const ERROR_NDIS_INVALID_PORT_STATE: HRESULT = 0x8034002E;
+pub const ERROR_NDIS_LOW_POWER_STATE: HRESULT = 0x8034002F;
+pub const ERROR_NDIS_REINIT_REQUIRED: HRESULT = 0x80340030;
+pub const ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED: HRESULT = 0x80342000;
+pub const ERROR_NDIS_DOT11_MEDIA_IN_USE: HRESULT = 0x80342001;
+pub const ERROR_NDIS_DOT11_POWER_STATE_INVALID: HRESULT = 0x80342002;
+pub const ERROR_NDIS_PM_WOL_PATTERN_LIST_FULL: HRESULT = 0x80342003;
+pub const ERROR_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL: HRESULT = 0x80342004;
+pub const ERROR_NDIS_INDICATION_REQUIRED: HRESULT = 0x00340001;
+pub const ERROR_NDIS_OFFLOAD_POLICY: HRESULT = 0xC034100F;
+pub const ERROR_NDIS_OFFLOAD_CONNECTION_REJECTED: HRESULT = 0xC0341012;
+pub const ERROR_NDIS_OFFLOAD_PATH_REJECTED: HRESULT = 0xC0341013;
+pub const ERROR_HV_INVALID_HYPERCALL_CODE: HRESULT = 0xC0350002;
+pub const ERROR_HV_INVALID_HYPERCALL_INPUT: HRESULT = 0xC0350003;
+pub const ERROR_HV_INVALID_ALIGNMENT: HRESULT = 0xC0350004;
+pub const ERROR_HV_INVALID_PARAMETER: HRESULT = 0xC0350005;
+pub const ERROR_HV_ACCESS_DENIED: HRESULT = 0xC0350006;
+pub const ERROR_HV_INVALID_PARTITION_STATE: HRESULT = 0xC0350007;
+pub const ERROR_HV_OPERATION_DENIED: HRESULT = 0xC0350008;
+pub const ERROR_HV_UNKNOWN_PROPERTY: HRESULT = 0xC0350009;
+pub const ERROR_HV_PROPERTY_VALUE_OUT_OF_RANGE: HRESULT = 0xC035000A;
+pub const ERROR_HV_INSUFFICIENT_MEMORY: HRESULT = 0xC035000B;
+pub const ERROR_HV_PARTITION_TOO_DEEP: HRESULT = 0xC035000C;
+pub const ERROR_HV_INVALID_PARTITION_ID: HRESULT = 0xC035000D;
+pub const ERROR_HV_INVALID_VP_INDEX: HRESULT = 0xC035000E;
+pub const ERROR_HV_INVALID_PORT_ID: HRESULT = 0xC0350011;
+pub const ERROR_HV_INVALID_CONNECTION_ID: HRESULT = 0xC0350012;
+pub const ERROR_HV_INSUFFICIENT_BUFFERS: HRESULT = 0xC0350013;
+pub const ERROR_HV_NOT_ACKNOWLEDGED: HRESULT = 0xC0350014;
+pub const ERROR_HV_ACKNOWLEDGED: HRESULT = 0xC0350016;
+pub const ERROR_HV_INVALID_SAVE_RESTORE_STATE: HRESULT = 0xC0350017;
+pub const ERROR_HV_INVALID_SYNIC_STATE: HRESULT = 0xC0350018;
+pub const ERROR_HV_OBJECT_IN_USE: HRESULT = 0xC0350019;
+pub const ERROR_HV_INVALID_PROXIMITY_DOMAIN_INFO: HRESULT = 0xC035001A;
+pub const ERROR_HV_NO_DATA: HRESULT = 0xC035001B;
+pub const ERROR_HV_INACTIVE: HRESULT = 0xC035001C;
+pub const ERROR_HV_NO_RESOURCES: HRESULT = 0xC035001D;
+pub const ERROR_HV_FEATURE_UNAVAILABLE: HRESULT = 0xC035001E;
+pub const ERROR_HV_INSUFFICIENT_BUFFER: HRESULT = 0xC0350033;
+pub const ERROR_HV_INSUFFICIENT_DEVICE_DOMAINS: HRESULT = 0xC0350038;
+pub const ERROR_HV_INVALID_LP_INDEX: HRESULT = 0xC0350041;
+pub const ERROR_HV_NOT_PRESENT: HRESULT = 0xC0351000;
+pub const ERROR_VID_DUPLICATE_HANDLER: HRESULT = 0xC0370001;
+pub const ERROR_VID_TOO_MANY_HANDLERS: HRESULT = 0xC0370002;
+pub const ERROR_VID_QUEUE_FULL: HRESULT = 0xC0370003;
+pub const ERROR_VID_HANDLER_NOT_PRESENT: HRESULT = 0xC0370004;
+pub const ERROR_VID_INVALID_OBJECT_NAME: HRESULT = 0xC0370005;
+pub const ERROR_VID_PARTITION_NAME_TOO_LONG: HRESULT = 0xC0370006;
+pub const ERROR_VID_MESSAGE_QUEUE_NAME_TOO_LONG: HRESULT = 0xC0370007;
+pub const ERROR_VID_PARTITION_ALREADY_EXISTS: HRESULT = 0xC0370008;
+pub const ERROR_VID_PARTITION_DOES_NOT_EXIST: HRESULT = 0xC0370009;
+pub const ERROR_VID_PARTITION_NAME_NOT_FOUND: HRESULT = 0xC037000A;
+pub const ERROR_VID_MESSAGE_QUEUE_ALREADY_EXISTS: HRESULT = 0xC037000B;
+pub const ERROR_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT: HRESULT = 0xC037000C;
+pub const ERROR_VID_MB_STILL_REFERENCED: HRESULT = 0xC037000D;
+pub const ERROR_VID_CHILD_GPA_PAGE_SET_CORRUPTED: HRESULT = 0xC037000E;
+pub const ERROR_VID_INVALID_NUMA_SETTINGS: HRESULT = 0xC037000F;
+pub const ERROR_VID_INVALID_NUMA_NODE_INDEX: HRESULT = 0xC0370010;
+pub const ERROR_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED: HRESULT = 0xC0370011;
+pub const ERROR_VID_INVALID_MEMORY_BLOCK_HANDLE: HRESULT = 0xC0370012;
+pub const ERROR_VID_PAGE_RANGE_OVERFLOW: HRESULT = 0xC0370013;
+pub const ERROR_VID_INVALID_MESSAGE_QUEUE_HANDLE: HRESULT = 0xC0370014;
+pub const ERROR_VID_INVALID_GPA_RANGE_HANDLE: HRESULT = 0xC0370015;
+pub const ERROR_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE: HRESULT = 0xC0370016;
+pub const ERROR_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED: HRESULT = 0xC0370017;
+pub const ERROR_VID_INVALID_PPM_HANDLE: HRESULT = 0xC0370018;
+pub const ERROR_VID_MBPS_ARE_LOCKED: HRESULT = 0xC0370019;
+pub const ERROR_VID_MESSAGE_QUEUE_CLOSED: HRESULT = 0xC037001A;
+pub const ERROR_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED: HRESULT = 0xC037001B;
+pub const ERROR_VID_STOP_PENDING: HRESULT = 0xC037001C;
+pub const ERROR_VID_INVALID_PROCESSOR_STATE: HRESULT = 0xC037001D;
+pub const ERROR_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT: HRESULT = 0xC037001E;
+pub const ERROR_VID_KM_INTERFACE_ALREADY_INITIALIZED: HRESULT = 0xC037001F;
+pub const ERROR_VID_MB_PROPERTY_ALREADY_SET_RESET: HRESULT = 0xC0370020;
+pub const ERROR_VID_MMIO_RANGE_DESTROYED: HRESULT = 0xC0370021;
+pub const ERROR_VID_INVALID_CHILD_GPA_PAGE_SET: HRESULT = 0xC0370022;
+pub const ERROR_VID_RESERVE_PAGE_SET_IS_BEING_USED: HRESULT = 0xC0370023;
+pub const ERROR_VID_RESERVE_PAGE_SET_TOO_SMALL: HRESULT = 0xC0370024;
+pub const ERROR_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE: HRESULT = 0xC0370025;
+pub const ERROR_VID_MBP_COUNT_EXCEEDED_LIMIT: HRESULT = 0xC0370026;
+pub const ERROR_VID_SAVED_STATE_CORRUPT: HRESULT = 0xC0370027;
+pub const ERROR_VID_SAVED_STATE_UNRECOGNIZED_ITEM: HRESULT = 0xC0370028;
+pub const ERROR_VID_SAVED_STATE_INCOMPATIBLE: HRESULT = 0xC0370029;
+pub const ERROR_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED: HRESULT = 0x80370001;
+pub const ERROR_VOLMGR_INCOMPLETE_REGENERATION: HRESULT = 0x80380001;
+pub const ERROR_VOLMGR_INCOMPLETE_DISK_MIGRATION: HRESULT = 0x80380002;
+pub const ERROR_VOLMGR_DATABASE_FULL: HRESULT = 0xC0380001;
+pub const ERROR_VOLMGR_DISK_CONFIGURATION_CORRUPTED: HRESULT = 0xC0380002;
+pub const ERROR_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC: HRESULT = 0xC0380003;
+pub const ERROR_VOLMGR_PACK_CONFIG_UPDATE_FAILED: HRESULT = 0xC0380004;
+pub const ERROR_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME: HRESULT = 0xC0380005;
+pub const ERROR_VOLMGR_DISK_DUPLICATE: HRESULT = 0xC0380006;
+pub const ERROR_VOLMGR_DISK_DYNAMIC: HRESULT = 0xC0380007;
+pub const ERROR_VOLMGR_DISK_ID_INVALID: HRESULT = 0xC0380008;
+pub const ERROR_VOLMGR_DISK_INVALID: HRESULT = 0xC0380009;
+pub const ERROR_VOLMGR_DISK_LAST_VOTER: HRESULT = 0xC038000A;
+pub const ERROR_VOLMGR_DISK_LAYOUT_INVALID: HRESULT = 0xC038000B;
+pub const ERROR_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS: HRESULT
+ = 0xC038000C;
+pub const ERROR_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED: HRESULT = 0xC038000D;
+pub const ERROR_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL: HRESULT = 0xC038000E;
+pub const ERROR_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS: HRESULT
+ = 0xC038000F;
+pub const ERROR_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS: HRESULT = 0xC0380010;
+pub const ERROR_VOLMGR_DISK_MISSING: HRESULT = 0xC0380011;
+pub const ERROR_VOLMGR_DISK_NOT_EMPTY: HRESULT = 0xC0380012;
+pub const ERROR_VOLMGR_DISK_NOT_ENOUGH_SPACE: HRESULT = 0xC0380013;
+pub const ERROR_VOLMGR_DISK_REVECTORING_FAILED: HRESULT = 0xC0380014;
+pub const ERROR_VOLMGR_DISK_SECTOR_SIZE_INVALID: HRESULT = 0xC0380015;
+pub const ERROR_VOLMGR_DISK_SET_NOT_CONTAINED: HRESULT = 0xC0380016;
+pub const ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS: HRESULT = 0xC0380017;
+pub const ERROR_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES: HRESULT = 0xC0380018;
+pub const ERROR_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED: HRESULT = 0xC0380019;
+pub const ERROR_VOLMGR_EXTENT_ALREADY_USED: HRESULT = 0xC038001A;
+pub const ERROR_VOLMGR_EXTENT_NOT_CONTIGUOUS: HRESULT = 0xC038001B;
+pub const ERROR_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION: HRESULT = 0xC038001C;
+pub const ERROR_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED: HRESULT = 0xC038001D;
+pub const ERROR_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION: HRESULT = 0xC038001E;
+pub const ERROR_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH: HRESULT = 0xC038001F;
+pub const ERROR_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED: HRESULT = 0xC0380020;
+pub const ERROR_VOLMGR_INTERLEAVE_LENGTH_INVALID: HRESULT = 0xC0380021;
+pub const ERROR_VOLMGR_MAXIMUM_REGISTERED_USERS: HRESULT = 0xC0380022;
+pub const ERROR_VOLMGR_MEMBER_IN_SYNC: HRESULT = 0xC0380023;
+pub const ERROR_VOLMGR_MEMBER_INDEX_DUPLICATE: HRESULT = 0xC0380024;
+pub const ERROR_VOLMGR_MEMBER_INDEX_INVALID: HRESULT = 0xC0380025;
+pub const ERROR_VOLMGR_MEMBER_MISSING: HRESULT = 0xC0380026;
+pub const ERROR_VOLMGR_MEMBER_NOT_DETACHED: HRESULT = 0xC0380027;
+pub const ERROR_VOLMGR_MEMBER_REGENERATING: HRESULT = 0xC0380028;
+pub const ERROR_VOLMGR_ALL_DISKS_FAILED: HRESULT = 0xC0380029;
+pub const ERROR_VOLMGR_NO_REGISTERED_USERS: HRESULT = 0xC038002A;
+pub const ERROR_VOLMGR_NO_SUCH_USER: HRESULT = 0xC038002B;
+pub const ERROR_VOLMGR_NOTIFICATION_RESET: HRESULT = 0xC038002C;
+pub const ERROR_VOLMGR_NUMBER_OF_MEMBERS_INVALID: HRESULT = 0xC038002D;
+pub const ERROR_VOLMGR_NUMBER_OF_PLEXES_INVALID: HRESULT = 0xC038002E;
+pub const ERROR_VOLMGR_PACK_DUPLICATE: HRESULT = 0xC038002F;
+pub const ERROR_VOLMGR_PACK_ID_INVALID: HRESULT = 0xC0380030;
+pub const ERROR_VOLMGR_PACK_INVALID: HRESULT = 0xC0380031;
+pub const ERROR_VOLMGR_PACK_NAME_INVALID: HRESULT = 0xC0380032;
+pub const ERROR_VOLMGR_PACK_OFFLINE: HRESULT = 0xC0380033;
+pub const ERROR_VOLMGR_PACK_HAS_QUORUM: HRESULT = 0xC0380034;
+pub const ERROR_VOLMGR_PACK_WITHOUT_QUORUM: HRESULT = 0xC0380035;
+pub const ERROR_VOLMGR_PARTITION_STYLE_INVALID: HRESULT = 0xC0380036;
+pub const ERROR_VOLMGR_PARTITION_UPDATE_FAILED: HRESULT = 0xC0380037;
+pub const ERROR_VOLMGR_PLEX_IN_SYNC: HRESULT = 0xC0380038;
+pub const ERROR_VOLMGR_PLEX_INDEX_DUPLICATE: HRESULT = 0xC0380039;
+pub const ERROR_VOLMGR_PLEX_INDEX_INVALID: HRESULT = 0xC038003A;
+pub const ERROR_VOLMGR_PLEX_LAST_ACTIVE: HRESULT = 0xC038003B;
+pub const ERROR_VOLMGR_PLEX_MISSING: HRESULT = 0xC038003C;
+pub const ERROR_VOLMGR_PLEX_REGENERATING: HRESULT = 0xC038003D;
+pub const ERROR_VOLMGR_PLEX_TYPE_INVALID: HRESULT = 0xC038003E;
+pub const ERROR_VOLMGR_PLEX_NOT_RAID5: HRESULT = 0xC038003F;
+pub const ERROR_VOLMGR_PLEX_NOT_SIMPLE: HRESULT = 0xC0380040;
+pub const ERROR_VOLMGR_STRUCTURE_SIZE_INVALID: HRESULT = 0xC0380041;
+pub const ERROR_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS: HRESULT = 0xC0380042;
+pub const ERROR_VOLMGR_TRANSACTION_IN_PROGRESS: HRESULT = 0xC0380043;
+pub const ERROR_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE: HRESULT = 0xC0380044;
+pub const ERROR_VOLMGR_VOLUME_CONTAINS_MISSING_DISK: HRESULT = 0xC0380045;
+pub const ERROR_VOLMGR_VOLUME_ID_INVALID: HRESULT = 0xC0380046;
+pub const ERROR_VOLMGR_VOLUME_LENGTH_INVALID: HRESULT = 0xC0380047;
+pub const ERROR_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE: HRESULT = 0xC0380048;
+pub const ERROR_VOLMGR_VOLUME_NOT_MIRRORED: HRESULT = 0xC0380049;
+pub const ERROR_VOLMGR_VOLUME_NOT_RETAINED: HRESULT = 0xC038004A;
+pub const ERROR_VOLMGR_VOLUME_OFFLINE: HRESULT = 0xC038004B;
+pub const ERROR_VOLMGR_VOLUME_RETAINED: HRESULT = 0xC038004C;
+pub const ERROR_VOLMGR_NUMBER_OF_EXTENTS_INVALID: HRESULT = 0xC038004D;
+pub const ERROR_VOLMGR_DIFFERENT_SECTOR_SIZE: HRESULT = 0xC038004E;
+pub const ERROR_VOLMGR_BAD_BOOT_DISK: HRESULT = 0xC038004F;
+pub const ERROR_VOLMGR_PACK_CONFIG_OFFLINE: HRESULT = 0xC0380050;
+pub const ERROR_VOLMGR_PACK_CONFIG_ONLINE: HRESULT = 0xC0380051;
+pub const ERROR_VOLMGR_NOT_PRIMARY_PACK: HRESULT = 0xC0380052;
+pub const ERROR_VOLMGR_PACK_LOG_UPDATE_FAILED: HRESULT = 0xC0380053;
+pub const ERROR_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID: HRESULT = 0xC0380054;
+pub const ERROR_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID: HRESULT = 0xC0380055;
+pub const ERROR_VOLMGR_VOLUME_MIRRORED: HRESULT = 0xC0380056;
+pub const ERROR_VOLMGR_PLEX_NOT_SIMPLE_SPANNED: HRESULT = 0xC0380057;
+pub const ERROR_VOLMGR_NO_VALID_LOG_COPIES: HRESULT = 0xC0380058;
+pub const ERROR_VOLMGR_PRIMARY_PACK_PRESENT: HRESULT = 0xC0380059;
+pub const ERROR_VOLMGR_NUMBER_OF_DISKS_INVALID: HRESULT = 0xC038005A;
+pub const ERROR_VOLMGR_MIRROR_NOT_SUPPORTED: HRESULT = 0xC038005B;
+pub const ERROR_VOLMGR_RAID5_NOT_SUPPORTED: HRESULT = 0xC038005C;
+pub const ERROR_BCD_NOT_ALL_ENTRIES_IMPORTED: HRESULT = 0x80390001;
+pub const ERROR_BCD_TOO_MANY_ELEMENTS: HRESULT = 0xC0390002;
+pub const ERROR_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED: HRESULT = 0x80390003;
+pub const ERROR_VHD_DRIVE_FOOTER_MISSING: HRESULT = 0xC03A0001;
+pub const ERROR_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH: HRESULT = 0xC03A0002;
+pub const ERROR_VHD_DRIVE_FOOTER_CORRUPT: HRESULT = 0xC03A0003;
+pub const ERROR_VHD_FORMAT_UNKNOWN: HRESULT = 0xC03A0004;
+pub const ERROR_VHD_FORMAT_UNSUPPORTED_VERSION: HRESULT = 0xC03A0005;
+pub const ERROR_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH: HRESULT = 0xC03A0006;
+pub const ERROR_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION: HRESULT = 0xC03A0007;
+pub const ERROR_VHD_SPARSE_HEADER_CORRUPT: HRESULT = 0xC03A0008;
+pub const ERROR_VHD_BLOCK_ALLOCATION_FAILURE: HRESULT = 0xC03A0009;
+pub const ERROR_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT: HRESULT = 0xC03A000A;
+pub const ERROR_VHD_INVALID_BLOCK_SIZE: HRESULT = 0xC03A000B;
+pub const ERROR_VHD_BITMAP_MISMATCH: HRESULT = 0xC03A000C;
+pub const ERROR_VHD_PARENT_VHD_NOT_FOUND: HRESULT = 0xC03A000D;
+pub const ERROR_VHD_CHILD_PARENT_ID_MISMATCH: HRESULT = 0xC03A000E;
+pub const ERROR_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH: HRESULT = 0xC03A000F;
+pub const ERROR_VHD_METADATA_READ_FAILURE: HRESULT = 0xC03A0010;
+pub const ERROR_VHD_METADATA_WRITE_FAILURE: HRESULT = 0xC03A0011;
+pub const ERROR_VHD_INVALID_SIZE: HRESULT = 0xC03A0012;
+pub const ERROR_VHD_INVALID_FILE_SIZE: HRESULT = 0xC03A0013;
+pub const ERROR_VIRTDISK_PROVIDER_NOT_FOUND: HRESULT = 0xC03A0014;
+pub const ERROR_VIRTDISK_NOT_VIRTUAL_DISK: HRESULT = 0xC03A0015;
+pub const ERROR_VHD_PARENT_VHD_ACCESS_DENIED: HRESULT = 0xC03A0016;
+pub const ERROR_VHD_CHILD_PARENT_SIZE_MISMATCH: HRESULT = 0xC03A0017;
+pub const ERROR_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED: HRESULT = 0xC03A0018;
+pub const ERROR_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT: HRESULT = 0xC03A0019;
+pub const ERROR_VIRTUAL_DISK_LIMITATION: HRESULT = 0xC03A001A;
+pub const ERROR_VHD_INVALID_TYPE: HRESULT = 0xC03A001B;
+pub const ERROR_VHD_INVALID_STATE: HRESULT = 0xC03A001C;
+pub const ERROR_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE: HRESULT = 0xC03A001D;
+pub const ERROR_VIRTDISK_DISK_ALREADY_OWNED: HRESULT = 0xC03A001E;
+pub const ERROR_VIRTDISK_DISK_ONLINE_AND_WRITABLE: HRESULT = 0xC03A001F;
+pub const ERROR_CTLOG_TRACKING_NOT_INITIALIZED: HRESULT = 0xC03A0020;
+pub const ERROR_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE: HRESULT = 0xC03A0021;
+pub const ERROR_CTLOG_VHD_CHANGED_OFFLINE: HRESULT = 0xC03A0022;
+pub const ERROR_CTLOG_INVALID_TRACKING_STATE: HRESULT = 0xC03A0023;
+pub const ERROR_CTLOG_INCONSISTENT_TRACKING_FILE: HRESULT = 0xC03A0024;
+pub const ERROR_VHD_RESIZE_WOULD_TRUNCATE_DATA: HRESULT = 0xC03A0025;
+pub const ERROR_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE: HRESULT = 0xC03A0026;
+pub const ERROR_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE: HRESULT = 0xC03A0027;
+pub const ERROR_VHD_METADATA_FULL: HRESULT = 0xC03A0028;
+pub const ERROR_QUERY_STORAGE_ERROR: HRESULT = 0x803A0001;
+pub const SDIAG_E_CANCELLED: HRESULT = 0x803C0100;
+pub const SDIAG_E_SCRIPT: HRESULT = 0x803C0101;
+pub const SDIAG_E_POWERSHELL: HRESULT = 0x803C0102;
+pub const SDIAG_E_MANAGEDHOST: HRESULT = 0x803C0103;
+pub const SDIAG_E_NOVERIFIER: HRESULT = 0x803C0104;
+pub const SDIAG_S_CANNOTRUN: HRESULT = 0x003C0105;
+pub const SDIAG_E_DISABLED: HRESULT = 0x803C0106;
+pub const SDIAG_E_TRUST: HRESULT = 0x803C0107;
+pub const SDIAG_E_CANNOTRUN: HRESULT = 0x803C0108;
+pub const SDIAG_E_VERSION: HRESULT = 0x803C0109;
+pub const SDIAG_E_RESOURCE: HRESULT = 0x803C010A;
+pub const SDIAG_E_ROOTCAUSE: HRESULT = 0x803C010B;
+pub const WPN_E_CHANNEL_CLOSED: HRESULT = 0x803E0100;
+pub const WPN_E_CHANNEL_REQUEST_NOT_COMPLETE: HRESULT = 0x803E0101;
+pub const WPN_E_INVALID_APP: HRESULT = 0x803E0102;
+pub const WPN_E_OUTSTANDING_CHANNEL_REQUEST: HRESULT = 0x803E0103;
+pub const WPN_E_DUPLICATE_CHANNEL: HRESULT = 0x803E0104;
+pub const WPN_E_PLATFORM_UNAVAILABLE: HRESULT = 0x803E0105;
+pub const WPN_E_NOTIFICATION_POSTED: HRESULT = 0x803E0106;
+pub const WPN_E_NOTIFICATION_HIDDEN: HRESULT = 0x803E0107;
+pub const WPN_E_NOTIFICATION_NOT_POSTED: HRESULT = 0x803E0108;
+pub const WPN_E_CLOUD_DISABLED: HRESULT = 0x803E0109;
+pub const WPN_E_CLOUD_INCAPABLE: HRESULT = 0x803E0110;
+pub const WPN_E_CLOUD_AUTH_UNAVAILABLE: HRESULT = 0x803E011A;
+pub const WPN_E_CLOUD_SERVICE_UNAVAILABLE: HRESULT = 0x803E011B;
+pub const WPN_E_FAILED_LOCK_SCREEN_UPDATE_INTIALIZATION: HRESULT = 0x803E011C;
+pub const WPN_E_NOTIFICATION_DISABLED: HRESULT = 0x803E0111;
+pub const WPN_E_NOTIFICATION_INCAPABLE: HRESULT = 0x803E0112;
+pub const WPN_E_INTERNET_INCAPABLE: HRESULT = 0x803E0113;
+pub const WPN_E_NOTIFICATION_TYPE_DISABLED: HRESULT = 0x803E0114;
+pub const WPN_E_NOTIFICATION_SIZE: HRESULT = 0x803E0115;
+pub const WPN_E_TAG_SIZE: HRESULT = 0x803E0116;
+pub const WPN_E_ACCESS_DENIED: HRESULT = 0x803E0117;
+pub const WPN_E_DUPLICATE_REGISTRATION: HRESULT = 0x803E0118;
+pub const WPN_E_PUSH_NOTIFICATION_INCAPABLE: HRESULT = 0x803E0119;
+pub const WPN_E_DEV_ID_SIZE: HRESULT = 0x803E0120;
+pub const WPN_E_TAG_ALPHANUMERIC: HRESULT = 0x803E012A;
+pub const WPN_E_INVALID_HTTP_STATUS_CODE: HRESULT = 0x803E012B;
+pub const WPN_E_OUT_OF_SESSION: HRESULT = 0x803E0200;
+pub const WPN_E_POWER_SAVE: HRESULT = 0x803E0201;
+pub const WPN_E_IMAGE_NOT_FOUND_IN_CACHE: HRESULT = 0x803E0202;
+pub const WPN_E_ALL_URL_NOT_COMPLETED: HRESULT = 0x803E0203;
+pub const WPN_E_INVALID_CLOUD_IMAGE: HRESULT = 0x803E0204;
+pub const WPN_E_NOTIFICATION_ID_MATCHED: HRESULT = 0x803E0205;
+pub const WPN_E_CALLBACK_ALREADY_REGISTERED: HRESULT = 0x803E0206;
+pub const WPN_E_TOAST_NOTIFICATION_DROPPED: HRESULT = 0x803E0207;
+pub const WPN_E_STORAGE_LOCKED: HRESULT = 0x803E0208;
+pub const E_MBN_CONTEXT_NOT_ACTIVATED: HRESULT = 0x80548201;
+pub const E_MBN_BAD_SIM: HRESULT = 0x80548202;
+pub const E_MBN_DATA_CLASS_NOT_AVAILABLE: HRESULT = 0x80548203;
+pub const E_MBN_INVALID_ACCESS_STRING: HRESULT = 0x80548204;
+pub const E_MBN_MAX_ACTIVATED_CONTEXTS: HRESULT = 0x80548205;
+pub const E_MBN_PACKET_SVC_DETACHED: HRESULT = 0x80548206;
+pub const E_MBN_PROVIDER_NOT_VISIBLE: HRESULT = 0x80548207;
+pub const E_MBN_RADIO_POWER_OFF: HRESULT = 0x80548208;
+pub const E_MBN_SERVICE_NOT_ACTIVATED: HRESULT = 0x80548209;
+pub const E_MBN_SIM_NOT_INSERTED: HRESULT = 0x8054820A;
+pub const E_MBN_VOICE_CALL_IN_PROGRESS: HRESULT = 0x8054820B;
+pub const E_MBN_INVALID_CACHE: HRESULT = 0x8054820C;
+pub const E_MBN_NOT_REGISTERED: HRESULT = 0x8054820D;
+pub const E_MBN_PROVIDERS_NOT_FOUND: HRESULT = 0x8054820E;
+pub const E_MBN_PIN_NOT_SUPPORTED: HRESULT = 0x8054820F;
+pub const E_MBN_PIN_REQUIRED: HRESULT = 0x80548210;
+pub const E_MBN_PIN_DISABLED: HRESULT = 0x80548211;
+pub const E_MBN_FAILURE: HRESULT = 0x80548212;
+pub const E_MBN_INVALID_PROFILE: HRESULT = 0x80548218;
+pub const E_MBN_DEFAULT_PROFILE_EXIST: HRESULT = 0x80548219;
+pub const E_MBN_SMS_ENCODING_NOT_SUPPORTED: HRESULT = 0x80548220;
+pub const E_MBN_SMS_FILTER_NOT_SUPPORTED: HRESULT = 0x80548221;
+pub const E_MBN_SMS_INVALID_MEMORY_INDEX: HRESULT = 0x80548222;
+pub const E_MBN_SMS_LANG_NOT_SUPPORTED: HRESULT = 0x80548223;
+pub const E_MBN_SMS_MEMORY_FAILURE: HRESULT = 0x80548224;
+pub const E_MBN_SMS_NETWORK_TIMEOUT: HRESULT = 0x80548225;
+pub const E_MBN_SMS_UNKNOWN_SMSC_ADDRESS: HRESULT = 0x80548226;
+pub const E_MBN_SMS_FORMAT_NOT_SUPPORTED: HRESULT = 0x80548227;
+pub const E_MBN_SMS_OPERATION_NOT_ALLOWED: HRESULT = 0x80548228;
+pub const E_MBN_SMS_MEMORY_FULL: HRESULT = 0x80548229;
+pub const PEER_E_IPV6_NOT_INSTALLED: HRESULT = 0x80630001;
+pub const PEER_E_NOT_INITIALIZED: HRESULT = 0x80630002;
+pub const PEER_E_CANNOT_START_SERVICE: HRESULT = 0x80630003;
+pub const PEER_E_NOT_LICENSED: HRESULT = 0x80630004;
+pub const PEER_E_INVALID_GRAPH: HRESULT = 0x80630010;
+pub const PEER_E_DBNAME_CHANGED: HRESULT = 0x80630011;
+pub const PEER_E_DUPLICATE_GRAPH: HRESULT = 0x80630012;
+pub const PEER_E_GRAPH_NOT_READY: HRESULT = 0x80630013;
+pub const PEER_E_GRAPH_SHUTTING_DOWN: HRESULT = 0x80630014;
+pub const PEER_E_GRAPH_IN_USE: HRESULT = 0x80630015;
+pub const PEER_E_INVALID_DATABASE: HRESULT = 0x80630016;
+pub const PEER_E_TOO_MANY_ATTRIBUTES: HRESULT = 0x80630017;
+pub const PEER_E_CONNECTION_NOT_FOUND: HRESULT = 0x80630103;
+pub const PEER_E_CONNECT_SELF: HRESULT = 0x80630106;
+pub const PEER_E_ALREADY_LISTENING: HRESULT = 0x80630107;
+pub const PEER_E_NODE_NOT_FOUND: HRESULT = 0x80630108;
+pub const PEER_E_CONNECTION_FAILED: HRESULT = 0x80630109;
+pub const PEER_E_CONNECTION_NOT_AUTHENTICATED: HRESULT = 0x8063010A;
+pub const PEER_E_CONNECTION_REFUSED: HRESULT = 0x8063010B;
+pub const PEER_E_CLASSIFIER_TOO_LONG: HRESULT = 0x80630201;
+pub const PEER_E_TOO_MANY_IDENTITIES: HRESULT = 0x80630202;
+pub const PEER_E_NO_KEY_ACCESS: HRESULT = 0x80630203;
+pub const PEER_E_GROUPS_EXIST: HRESULT = 0x80630204;
+pub const PEER_E_RECORD_NOT_FOUND: HRESULT = 0x80630301;
+pub const PEER_E_DATABASE_ACCESSDENIED: HRESULT = 0x80630302;
+pub const PEER_E_DBINITIALIZATION_FAILED: HRESULT = 0x80630303;
+pub const PEER_E_MAX_RECORD_SIZE_EXCEEDED: HRESULT = 0x80630304;
+pub const PEER_E_DATABASE_ALREADY_PRESENT: HRESULT = 0x80630305;
+pub const PEER_E_DATABASE_NOT_PRESENT: HRESULT = 0x80630306;
+pub const PEER_E_IDENTITY_NOT_FOUND: HRESULT = 0x80630401;
+pub const PEER_E_EVENT_HANDLE_NOT_FOUND: HRESULT = 0x80630501;
+pub const PEER_E_INVALID_SEARCH: HRESULT = 0x80630601;
+pub const PEER_E_INVALID_ATTRIBUTES: HRESULT = 0x80630602;
+pub const PEER_E_INVITATION_NOT_TRUSTED: HRESULT = 0x80630701;
+pub const PEER_E_CHAIN_TOO_LONG: HRESULT = 0x80630703;
+pub const PEER_E_INVALID_TIME_PERIOD: HRESULT = 0x80630705;
+pub const PEER_E_CIRCULAR_CHAIN_DETECTED: HRESULT = 0x80630706;
+pub const PEER_E_CERT_STORE_CORRUPTED: HRESULT = 0x80630801;
+pub const PEER_E_NO_CLOUD: HRESULT = 0x80631001;
+pub const PEER_E_CLOUD_NAME_AMBIGUOUS: HRESULT = 0x80631005;
+pub const PEER_E_INVALID_RECORD: HRESULT = 0x80632010;
+pub const PEER_E_NOT_AUTHORIZED: HRESULT = 0x80632020;
+pub const PEER_E_PASSWORD_DOES_NOT_MEET_POLICY: HRESULT = 0x80632021;
+pub const PEER_E_DEFERRED_VALIDATION: HRESULT = 0x80632030;
+pub const PEER_E_INVALID_GROUP_PROPERTIES: HRESULT = 0x80632040;
+pub const PEER_E_INVALID_PEER_NAME: HRESULT = 0x80632050;
+pub const PEER_E_INVALID_CLASSIFIER: HRESULT = 0x80632060;
+pub const PEER_E_INVALID_FRIENDLY_NAME: HRESULT = 0x80632070;
+pub const PEER_E_INVALID_ROLE_PROPERTY: HRESULT = 0x80632071;
+pub const PEER_E_INVALID_CLASSIFIER_PROPERTY: HRESULT = 0x80632072;
+pub const PEER_E_INVALID_RECORD_EXPIRATION: HRESULT = 0x80632080;
+pub const PEER_E_INVALID_CREDENTIAL_INFO: HRESULT = 0x80632081;
+pub const PEER_E_INVALID_CREDENTIAL: HRESULT = 0x80632082;
+pub const PEER_E_INVALID_RECORD_SIZE: HRESULT = 0x80632083;
+pub const PEER_E_UNSUPPORTED_VERSION: HRESULT = 0x80632090;
+pub const PEER_E_GROUP_NOT_READY: HRESULT = 0x80632091;
+pub const PEER_E_GROUP_IN_USE: HRESULT = 0x80632092;
+pub const PEER_E_INVALID_GROUP: HRESULT = 0x80632093;
+pub const PEER_E_NO_MEMBERS_FOUND: HRESULT = 0x80632094;
+pub const PEER_E_NO_MEMBER_CONNECTIONS: HRESULT = 0x80632095;
+pub const PEER_E_UNABLE_TO_LISTEN: HRESULT = 0x80632096;
+pub const PEER_E_IDENTITY_DELETED: HRESULT = 0x806320A0;
+pub const PEER_E_SERVICE_NOT_AVAILABLE: HRESULT = 0x806320A1;
+pub const PEER_E_CONTACT_NOT_FOUND: HRESULT = 0x80636001;
+pub const PEER_S_GRAPH_DATA_CREATED: HRESULT = 0x00630001;
+pub const PEER_S_NO_EVENT_DATA: HRESULT = 0x00630002;
+pub const PEER_S_ALREADY_CONNECTED: HRESULT = 0x00632000;
+pub const PEER_S_SUBSCRIPTION_EXISTS: HRESULT = 0x00636000;
+pub const PEER_S_NO_CONNECTIVITY: HRESULT = 0x00630005;
+pub const PEER_S_ALREADY_A_MEMBER: HRESULT = 0x00630006;
+pub const PEER_E_CANNOT_CONVERT_PEER_NAME: HRESULT = 0x80634001;
+pub const PEER_E_INVALID_PEER_HOST_NAME: HRESULT = 0x80634002;
+pub const PEER_E_NO_MORE: HRESULT = 0x80634003;
+pub const PEER_E_PNRP_DUPLICATE_PEER_NAME: HRESULT = 0x80634005;
+pub const PEER_E_INVITE_CANCELLED: HRESULT = 0x80637000;
+pub const PEER_E_INVITE_RESPONSE_NOT_AVAILABLE: HRESULT = 0x80637001;
+pub const PEER_E_NOT_SIGNED_IN: HRESULT = 0x80637003;
+pub const PEER_E_PRIVACY_DECLINED: HRESULT = 0x80637004;
+pub const PEER_E_TIMEOUT: HRESULT = 0x80637005;
+pub const PEER_E_INVALID_ADDRESS: HRESULT = 0x80637007;
+pub const PEER_E_FW_EXCEPTION_DISABLED: HRESULT = 0x80637008;
+pub const PEER_E_FW_BLOCKED_BY_POLICY: HRESULT = 0x80637009;
+pub const PEER_E_FW_BLOCKED_BY_SHIELDS_UP: HRESULT = 0x8063700A;
+pub const PEER_E_FW_DECLINED: HRESULT = 0x8063700B;
+pub const UI_E_CREATE_FAILED: HRESULT = 0x802A0001;
+pub const UI_E_SHUTDOWN_CALLED: HRESULT = 0x802A0002;
+pub const UI_E_ILLEGAL_REENTRANCY: HRESULT = 0x802A0003;
+pub const UI_E_OBJECT_SEALED: HRESULT = 0x802A0004;
+pub const UI_E_VALUE_NOT_SET: HRESULT = 0x802A0005;
+pub const UI_E_VALUE_NOT_DETERMINED: HRESULT = 0x802A0006;
+pub const UI_E_INVALID_OUTPUT: HRESULT = 0x802A0007;
+pub const UI_E_BOOLEAN_EXPECTED: HRESULT = 0x802A0008;
+pub const UI_E_DIFFERENT_OWNER: HRESULT = 0x802A0009;
+pub const UI_E_AMBIGUOUS_MATCH: HRESULT = 0x802A000A;
+pub const UI_E_FP_OVERFLOW: HRESULT = 0x802A000B;
+pub const UI_E_WRONG_THREAD: HRESULT = 0x802A000C;
+pub const UI_E_STORYBOARD_ACTIVE: HRESULT = 0x802A0101;
+pub const UI_E_STORYBOARD_NOT_PLAYING: HRESULT = 0x802A0102;
+pub const UI_E_START_KEYFRAME_AFTER_END: HRESULT = 0x802A0103;
+pub const UI_E_END_KEYFRAME_NOT_DETERMINED: HRESULT = 0x802A0104;
+pub const UI_E_LOOPS_OVERLAP: HRESULT = 0x802A0105;
+pub const UI_E_TRANSITION_ALREADY_USED: HRESULT = 0x802A0106;
+pub const UI_E_TRANSITION_NOT_IN_STORYBOARD: HRESULT = 0x802A0107;
+pub const UI_E_TRANSITION_ECLIPSED: HRESULT = 0x802A0108;
+pub const UI_E_TIME_BEFORE_LAST_UPDATE: HRESULT = 0x802A0109;
+pub const UI_E_TIMER_CLIENT_ALREADY_CONNECTED: HRESULT = 0x802A010A;
+pub const UI_E_INVALID_DIMENSION: HRESULT = 0x802A010B;
+pub const UI_E_PRIMITIVE_OUT_OF_BOUNDS: HRESULT = 0x802A010C;
+pub const UI_E_WINDOW_CLOSED: HRESULT = 0x802A0201;
+pub const E_BLUETOOTH_ATT_INVALID_HANDLE: HRESULT = 0x80650001;
+pub const E_BLUETOOTH_ATT_READ_NOT_PERMITTED: HRESULT = 0x80650002;
+pub const E_BLUETOOTH_ATT_WRITE_NOT_PERMITTED: HRESULT = 0x80650003;
+pub const E_BLUETOOTH_ATT_INVALID_PDU: HRESULT = 0x80650004;
+pub const E_BLUETOOTH_ATT_INSUFFICIENT_AUTHENTICATION: HRESULT = 0x80650005;
+pub const E_BLUETOOTH_ATT_REQUEST_NOT_SUPPORTED: HRESULT = 0x80650006;
+pub const E_BLUETOOTH_ATT_INVALID_OFFSET: HRESULT = 0x80650007;
+pub const E_BLUETOOTH_ATT_INSUFFICIENT_AUTHORIZATION: HRESULT = 0x80650008;
+pub const E_BLUETOOTH_ATT_PREPARE_QUEUE_FULL: HRESULT = 0x80650009;
+pub const E_BLUETOOTH_ATT_ATTRIBUTE_NOT_FOUND: HRESULT = 0x8065000A;
+pub const E_BLUETOOTH_ATT_ATTRIBUTE_NOT_LONG: HRESULT = 0x8065000B;
+pub const E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE: HRESULT = 0x8065000C;
+pub const E_BLUETOOTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH: HRESULT = 0x8065000D;
+pub const E_BLUETOOTH_ATT_UNLIKELY: HRESULT = 0x8065000E;
+pub const E_BLUETOOTH_ATT_INSUFFICIENT_ENCRYPTION: HRESULT = 0x8065000F;
+pub const E_BLUETOOTH_ATT_UNSUPPORTED_GROUP_TYPE: HRESULT = 0x80650010;
+pub const E_BLUETOOTH_ATT_INSUFFICIENT_RESOURCES: HRESULT = 0x80650011;
+pub const E_BLUETOOTH_ATT_UNKNOWN_ERROR: HRESULT = 0x80651000;
+pub const E_AUDIO_ENGINE_NODE_NOT_FOUND: HRESULT = 0x80660001;
+pub const E_HDAUDIO_EMPTY_CONNECTION_LIST: HRESULT = 0x80660002;
+pub const E_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED: HRESULT = 0x80660003;
+pub const E_HDAUDIO_NO_LOGICAL_DEVICES_CREATED: HRESULT = 0x80660004;
+pub const E_HDAUDIO_NULL_LINKED_LIST_ENTRY: HRESULT = 0x80660005;
+pub const ERROR_SPACES_POOL_WAS_DELETED: HRESULT = 0x00E70001;
+pub const ERROR_SPACES_RESILIENCY_TYPE_INVALID: HRESULT = 0x80E70003;
+pub const ERROR_SPACES_DRIVE_SECTOR_SIZE_INVALID: HRESULT = 0x80E70004;
+pub const ERROR_SPACES_DRIVE_REDUNDANCY_INVALID: HRESULT = 0x80E70006;
+pub const ERROR_SPACES_NUMBER_OF_DATA_COPIES_INVALID: HRESULT = 0x80E70007;
+pub const ERROR_SPACES_PARITY_LAYOUT_INVALID: HRESULT = 0x80E70008;
+pub const ERROR_SPACES_INTERLEAVE_LENGTH_INVALID: HRESULT = 0x80E70009;
+pub const ERROR_SPACES_NUMBER_OF_COLUMNS_INVALID: HRESULT = 0x80E7000A;
+pub const ERROR_SPACES_NOT_ENOUGH_DRIVES: HRESULT = 0x80E7000B;
+pub const ERROR_VOLSNAP_BOOTFILE_NOT_VALID: HRESULT = 0x80820001;
+pub const ERROR_TIERING_NOT_SUPPORTED_ON_VOLUME: HRESULT = 0x80830001;
+pub const ERROR_TIERING_VOLUME_DISMOUNT_IN_PROGRESS: HRESULT = 0x80830002;
+pub const ERROR_TIERING_STORAGE_TIER_NOT_FOUND: HRESULT = 0x80830003;
+pub const ERROR_TIERING_INVALID_FILE_ID: HRESULT = 0x80830004;
+pub const ERROR_TIERING_WRONG_CLUSTER_NODE: HRESULT = 0x80830005;
+pub const ERROR_TIERING_ALREADY_PROCESSING: HRESULT = 0x80830006;
+pub const ERROR_TIERING_CANNOT_PIN_OBJECT: HRESULT = 0x80830007;
+pub const DXGI_STATUS_OCCLUDED: HRESULT = 0x087A0001;
+pub const DXGI_STATUS_CLIPPED: HRESULT = 0x087A0002;
+pub const DXGI_STATUS_NO_REDIRECTION: HRESULT = 0x087A0004;
+pub const DXGI_STATUS_NO_DESKTOP_ACCESS: HRESULT = 0x087A0005;
+pub const DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE: HRESULT = 0x087A0006;
+pub const DXGI_STATUS_MODE_CHANGED: HRESULT = 0x087A0007;
+pub const DXGI_STATUS_MODE_CHANGE_IN_PROGRESS: HRESULT = 0x087A0008;
+pub const DXGI_ERROR_INVALID_CALL: HRESULT = 0x887A0001;
+pub const DXGI_ERROR_NOT_FOUND: HRESULT = 0x887A0002;
+pub const DXGI_ERROR_MORE_DATA: HRESULT = 0x887A0003;
+pub const DXGI_ERROR_UNSUPPORTED: HRESULT = 0x887A0004;
+pub const DXGI_ERROR_DEVICE_REMOVED: HRESULT = 0x887A0005;
+pub const DXGI_ERROR_DEVICE_HUNG: HRESULT = 0x887A0006;
+pub const DXGI_ERROR_DEVICE_RESET: HRESULT = 0x887A0007;
+pub const DXGI_ERROR_WAS_STILL_DRAWING: HRESULT = 0x887A000A;
+pub const DXGI_ERROR_FRAME_STATISTICS_DISJOINT: HRESULT = 0x887A000B;
+pub const DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE: HRESULT = 0x887A000C;
+pub const DXGI_ERROR_DRIVER_INTERNAL_ERROR: HRESULT = 0x887A0020;
+pub const DXGI_ERROR_NONEXCLUSIVE: HRESULT = 0x887A0021;
+pub const DXGI_ERROR_NOT_CURRENTLY_AVAILABLE: HRESULT = 0x887A0022;
+pub const DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED: HRESULT = 0x887A0023;
+pub const DXGI_ERROR_REMOTE_OUTOFMEMORY: HRESULT = 0x887A0024;
+pub const DXGI_ERROR_ACCESS_LOST: HRESULT = 0x887A0026;
+pub const DXGI_ERROR_WAIT_TIMEOUT: HRESULT = 0x887A0027;
+pub const DXGI_ERROR_SESSION_DISCONNECTED: HRESULT = 0x887A0028;
+pub const DXGI_ERROR_RESTRICT_TO_OUTPUT_STALE: HRESULT = 0x887A0029;
+pub const DXGI_ERROR_CANNOT_PROTECT_CONTENT: HRESULT = 0x887A002A;
+pub const DXGI_ERROR_ACCESS_DENIED: HRESULT = 0x887A002B;
+pub const DXGI_ERROR_NAME_ALREADY_EXISTS: HRESULT = 0x887A002C;
+pub const DXGI_ERROR_SDK_COMPONENT_MISSING: HRESULT = 0x887A002D;
+pub const DXGI_STATUS_UNOCCLUDED: HRESULT = 0x087A0009;
+pub const DXGI_STATUS_DDA_WAS_STILL_DRAWING: HRESULT = 0x087A000A;
+pub const DXGI_ERROR_MODE_CHANGE_IN_PROGRESS: HRESULT = 0x887A0025;
+pub const DXGI_DDI_ERR_WASSTILLDRAWING: HRESULT = 0x887B0001;
+pub const DXGI_DDI_ERR_UNSUPPORTED: HRESULT = 0x887B0002;
+pub const DXGI_DDI_ERR_NONEXCLUSIVE: HRESULT = 0x887B0003;
+pub const D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS: HRESULT = 0x88790001;
+pub const D3D10_ERROR_FILE_NOT_FOUND: HRESULT = 0x88790002;
+pub const D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS: HRESULT = 0x887C0001;
+pub const D3D11_ERROR_FILE_NOT_FOUND: HRESULT = 0x887C0002;
+pub const D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS: HRESULT = 0x887C0003;
+pub const D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD: HRESULT
+ = 0x887C0004;
+pub const D2DERR_WRONG_STATE: HRESULT = 0x88990001;
+pub const D2DERR_NOT_INITIALIZED: HRESULT = 0x88990002;
+pub const D2DERR_UNSUPPORTED_OPERATION: HRESULT = 0x88990003;
+pub const D2DERR_SCANNER_FAILED: HRESULT = 0x88990004;
+pub const D2DERR_SCREEN_ACCESS_DENIED: HRESULT = 0x88990005;
+pub const D2DERR_DISPLAY_STATE_INVALID: HRESULT = 0x88990006;
+pub const D2DERR_ZERO_VECTOR: HRESULT = 0x88990007;
+pub const D2DERR_INTERNAL_ERROR: HRESULT = 0x88990008;
+pub const D2DERR_DISPLAY_FORMAT_NOT_SUPPORTED: HRESULT = 0x88990009;
+pub const D2DERR_INVALID_CALL: HRESULT = 0x8899000A;
+pub const D2DERR_NO_HARDWARE_DEVICE: HRESULT = 0x8899000B;
+pub const D2DERR_RECREATE_TARGET: HRESULT = 0x8899000C;
+pub const D2DERR_TOO_MANY_SHADER_ELEMENTS: HRESULT = 0x8899000D;
+pub const D2DERR_SHADER_COMPILE_FAILED: HRESULT = 0x8899000E;
+pub const D2DERR_MAX_TEXTURE_SIZE_EXCEEDED: HRESULT = 0x8899000F;
+pub const D2DERR_UNSUPPORTED_VERSION: HRESULT = 0x88990010;
+pub const D2DERR_BAD_NUMBER: HRESULT = 0x88990011;
+pub const D2DERR_WRONG_FACTORY: HRESULT = 0x88990012;
+pub const D2DERR_LAYER_ALREADY_IN_USE: HRESULT = 0x88990013;
+pub const D2DERR_POP_CALL_DID_NOT_MATCH_PUSH: HRESULT = 0x88990014;
+pub const D2DERR_WRONG_RESOURCE_DOMAIN: HRESULT = 0x88990015;
+pub const D2DERR_PUSH_POP_UNBALANCED: HRESULT = 0x88990016;
+pub const D2DERR_RENDER_TARGET_HAS_LAYER_OR_CLIPRECT: HRESULT = 0x88990017;
+pub const D2DERR_INCOMPATIBLE_BRUSH_TYPES: HRESULT = 0x88990018;
+pub const D2DERR_WIN32_ERROR: HRESULT = 0x88990019;
+pub const D2DERR_TARGET_NOT_GDI_COMPATIBLE: HRESULT = 0x8899001A;
+pub const D2DERR_TEXT_EFFECT_IS_WRONG_TYPE: HRESULT = 0x8899001B;
+pub const D2DERR_TEXT_RENDERER_NOT_RELEASED: HRESULT = 0x8899001C;
+pub const D2DERR_EXCEEDS_MAX_BITMAP_SIZE: HRESULT = 0x8899001D;
+pub const D2DERR_INVALID_GRAPH_CONFIGURATION: HRESULT = 0x8899001E;
+pub const D2DERR_INVALID_INTERNAL_GRAPH_CONFIGURATION: HRESULT = 0x8899001F;
+pub const D2DERR_CYCLIC_GRAPH: HRESULT = 0x88990020;
+pub const D2DERR_BITMAP_CANNOT_DRAW: HRESULT = 0x88990021;
+pub const D2DERR_OUTSTANDING_BITMAP_REFERENCES: HRESULT = 0x88990022;
+pub const D2DERR_ORIGINAL_TARGET_NOT_BOUND: HRESULT = 0x88990023;
+pub const D2DERR_INVALID_TARGET: HRESULT = 0x88990024;
+pub const D2DERR_BITMAP_BOUND_AS_TARGET: HRESULT = 0x88990025;
+pub const D2DERR_INSUFFICIENT_DEVICE_CAPABILITIES: HRESULT = 0x88990026;
+pub const D2DERR_INTERMEDIATE_TOO_LARGE: HRESULT = 0x88990027;
+pub const D2DERR_EFFECT_IS_NOT_REGISTERED: HRESULT = 0x88990028;
+pub const D2DERR_INVALID_PROPERTY: HRESULT = 0x88990029;
+pub const D2DERR_NO_SUBPROPERTIES: HRESULT = 0x8899002A;
+pub const D2DERR_PRINT_JOB_CLOSED: HRESULT = 0x8899002B;
+pub const D2DERR_PRINT_FORMAT_NOT_SUPPORTED: HRESULT = 0x8899002C;
+pub const D2DERR_TOO_MANY_TRANSFORM_INPUTS: HRESULT = 0x8899002D;
+pub const DWRITE_E_FILEFORMAT: HRESULT = 0x88985000;
+pub const DWRITE_E_UNEXPECTED: HRESULT = 0x88985001;
+pub const DWRITE_E_NOFONT: HRESULT = 0x88985002;
+pub const DWRITE_E_FILENOTFOUND: HRESULT = 0x88985003;
+pub const DWRITE_E_FILEACCESS: HRESULT = 0x88985004;
+pub const DWRITE_E_FONTCOLLECTIONOBSOLETE: HRESULT = 0x88985005;
+pub const DWRITE_E_ALREADYREGISTERED: HRESULT = 0x88985006;
+pub const DWRITE_E_CACHEFORMAT: HRESULT = 0x88985007;
+pub const DWRITE_E_CACHEVERSION: HRESULT = 0x88985008;
+pub const DWRITE_E_UNSUPPORTEDOPERATION: HRESULT = 0x88985009;
+pub const DWRITE_E_TEXTRENDERERINCOMPATIBLE: HRESULT = 0x8898500A;
+pub const DWRITE_E_FLOWDIRECTIONCONFLICTS: HRESULT = 0x8898500B;
+pub const DWRITE_E_NOCOLOR: HRESULT = 0x8898500C;
+pub const WINCODEC_ERR_WRONGSTATE: HRESULT = 0x88982F04;
+pub const WINCODEC_ERR_VALUEOUTOFRANGE: HRESULT = 0x88982F05;
+pub const WINCODEC_ERR_UNKNOWNIMAGEFORMAT: HRESULT = 0x88982F07;
+pub const WINCODEC_ERR_UNSUPPORTEDVERSION: HRESULT = 0x88982F0B;
+pub const WINCODEC_ERR_NOTINITIALIZED: HRESULT = 0x88982F0C;
+pub const WINCODEC_ERR_ALREADYLOCKED: HRESULT = 0x88982F0D;
+pub const WINCODEC_ERR_PROPERTYNOTFOUND: HRESULT = 0x88982F40;
+pub const WINCODEC_ERR_PROPERTYNOTSUPPORTED: HRESULT = 0x88982F41;
+pub const WINCODEC_ERR_PROPERTYSIZE: HRESULT = 0x88982F42;
+pub const WINCODEC_ERR_CODECPRESENT: HRESULT = 0x88982F43;
+pub const WINCODEC_ERR_CODECNOTHUMBNAIL: HRESULT = 0x88982F44;
+pub const WINCODEC_ERR_PALETTEUNAVAILABLE: HRESULT = 0x88982F45;
+pub const WINCODEC_ERR_CODECTOOMANYSCANLINES: HRESULT = 0x88982F46;
+pub const WINCODEC_ERR_INTERNALERROR: HRESULT = 0x88982F48;
+pub const WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS: HRESULT = 0x88982F49;
+pub const WINCODEC_ERR_COMPONENTNOTFOUND: HRESULT = 0x88982F50;
+pub const WINCODEC_ERR_IMAGESIZEOUTOFRANGE: HRESULT = 0x88982F51;
+pub const WINCODEC_ERR_TOOMUCHMETADATA: HRESULT = 0x88982F52;
+pub const WINCODEC_ERR_BADIMAGE: HRESULT = 0x88982F60;
+pub const WINCODEC_ERR_BADHEADER: HRESULT = 0x88982F61;
+pub const WINCODEC_ERR_FRAMEMISSING: HRESULT = 0x88982F62;
+pub const WINCODEC_ERR_BADMETADATAHEADER: HRESULT = 0x88982F63;
+pub const WINCODEC_ERR_BADSTREAMDATA: HRESULT = 0x88982F70;
+pub const WINCODEC_ERR_STREAMWRITE: HRESULT = 0x88982F71;
+pub const WINCODEC_ERR_STREAMREAD: HRESULT = 0x88982F72;
+pub const WINCODEC_ERR_STREAMNOTAVAILABLE: HRESULT = 0x88982F73;
+pub const WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT: HRESULT = 0x88982F80;
+pub const WINCODEC_ERR_UNSUPPORTEDOPERATION: HRESULT = 0x88982F81;
+pub const WINCODEC_ERR_INVALIDREGISTRATION: HRESULT = 0x88982F8A;
+pub const WINCODEC_ERR_COMPONENTINITIALIZEFAILURE: HRESULT = 0x88982F8B;
+pub const WINCODEC_ERR_INSUFFICIENTBUFFER: HRESULT = 0x88982F8C;
+pub const WINCODEC_ERR_DUPLICATEMETADATAPRESENT: HRESULT = 0x88982F8D;
+pub const WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE: HRESULT = 0x88982F8E;
+pub const WINCODEC_ERR_UNEXPECTEDSIZE: HRESULT = 0x88982F8F;
+pub const WINCODEC_ERR_INVALIDQUERYREQUEST: HRESULT = 0x88982F90;
+pub const WINCODEC_ERR_UNEXPECTEDMETADATATYPE: HRESULT = 0x88982F91;
+pub const WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT: HRESULT = 0x88982F92;
+pub const WINCODEC_ERR_INVALIDQUERYCHARACTER: HRESULT = 0x88982F93;
+pub const WINCODEC_ERR_WIN32ERROR: HRESULT = 0x88982F94;
+pub const WINCODEC_ERR_INVALIDPROGRESSIVELEVEL: HRESULT = 0x88982F95;
+pub const MILERR_OBJECTBUSY: HRESULT = 0x88980001;
+pub const MILERR_INSUFFICIENTBUFFER: HRESULT = 0x88980002;
+pub const MILERR_WIN32ERROR: HRESULT = 0x88980003;
+pub const MILERR_SCANNER_FAILED: HRESULT = 0x88980004;
+pub const MILERR_SCREENACCESSDENIED: HRESULT = 0x88980005;
+pub const MILERR_DISPLAYSTATEINVALID: HRESULT = 0x88980006;
+pub const MILERR_NONINVERTIBLEMATRIX: HRESULT = 0x88980007;
+pub const MILERR_ZEROVECTOR: HRESULT = 0x88980008;
+pub const MILERR_TERMINATED: HRESULT = 0x88980009;
+pub const MILERR_BADNUMBER: HRESULT = 0x8898000A;
+pub const MILERR_INTERNALERROR: HRESULT = 0x88980080;
+pub const MILERR_DISPLAYFORMATNOTSUPPORTED: HRESULT = 0x88980084;
+pub const MILERR_INVALIDCALL: HRESULT = 0x88980085;
+pub const MILERR_ALREADYLOCKED: HRESULT = 0x88980086;
+pub const MILERR_NOTLOCKED: HRESULT = 0x88980087;
+pub const MILERR_DEVICECANNOTRENDERTEXT: HRESULT = 0x88980088;
+pub const MILERR_GLYPHBITMAPMISSED: HRESULT = 0x88980089;
+pub const MILERR_MALFORMEDGLYPHCACHE: HRESULT = 0x8898008A;
+pub const MILERR_GENERIC_IGNORE: HRESULT = 0x8898008B;
+pub const MILERR_MALFORMED_GUIDELINE_DATA: HRESULT = 0x8898008C;
+pub const MILERR_NO_HARDWARE_DEVICE: HRESULT = 0x8898008D;
+pub const MILERR_NEED_RECREATE_AND_PRESENT: HRESULT = 0x8898008E;
+pub const MILERR_ALREADY_INITIALIZED: HRESULT = 0x8898008F;
+pub const MILERR_MISMATCHED_SIZE: HRESULT = 0x88980090;
+pub const MILERR_NO_REDIRECTION_SURFACE_AVAILABLE: HRESULT = 0x88980091;
+pub const MILERR_REMOTING_NOT_SUPPORTED: HRESULT = 0x88980092;
+pub const MILERR_QUEUED_PRESENT_NOT_SUPPORTED: HRESULT = 0x88980093;
+pub const MILERR_NOT_QUEUING_PRESENTS: HRESULT = 0x88980094;
+pub const MILERR_NO_REDIRECTION_SURFACE_RETRY_LATER: HRESULT = 0x88980095;
+pub const MILERR_TOOMANYSHADERELEMNTS: HRESULT = 0x88980096;
+pub const MILERR_MROW_READLOCK_FAILED: HRESULT = 0x88980097;
+pub const MILERR_MROW_UPDATE_FAILED: HRESULT = 0x88980098;
+pub const MILERR_SHADER_COMPILE_FAILED: HRESULT = 0x88980099;
+pub const MILERR_MAX_TEXTURE_SIZE_EXCEEDED: HRESULT = 0x8898009A;
+pub const MILERR_QPC_TIME_WENT_BACKWARD: HRESULT = 0x8898009B;
+pub const MILERR_DXGI_ENUMERATION_OUT_OF_SYNC: HRESULT = 0x8898009D;
+pub const MILERR_ADAPTER_NOT_FOUND: HRESULT = 0x8898009E;
+pub const MILERR_COLORSPACE_NOT_SUPPORTED: HRESULT = 0x8898009F;
+pub const MILERR_PREFILTER_NOT_SUPPORTED: HRESULT = 0x889800A0;
+pub const MILERR_DISPLAYID_ACCESS_DENIED: HRESULT = 0x889800A1;
+pub const UCEERR_INVALIDPACKETHEADER: HRESULT = 0x88980400;
+pub const UCEERR_UNKNOWNPACKET: HRESULT = 0x88980401;
+pub const UCEERR_ILLEGALPACKET: HRESULT = 0x88980402;
+pub const UCEERR_MALFORMEDPACKET: HRESULT = 0x88980403;
+pub const UCEERR_ILLEGALHANDLE: HRESULT = 0x88980404;
+pub const UCEERR_HANDLELOOKUPFAILED: HRESULT = 0x88980405;
+pub const UCEERR_RENDERTHREADFAILURE: HRESULT = 0x88980406;
+pub const UCEERR_CTXSTACKFRSTTARGETNULL: HRESULT = 0x88980407;
+pub const UCEERR_CONNECTIONIDLOOKUPFAILED: HRESULT = 0x88980408;
+pub const UCEERR_BLOCKSFULL: HRESULT = 0x88980409;
+pub const UCEERR_MEMORYFAILURE: HRESULT = 0x8898040A;
+pub const UCEERR_PACKETRECORDOUTOFRANGE: HRESULT = 0x8898040B;
+pub const UCEERR_ILLEGALRECORDTYPE: HRESULT = 0x8898040C;
+pub const UCEERR_OUTOFHANDLES: HRESULT = 0x8898040D;
+pub const UCEERR_UNCHANGABLE_UPDATE_ATTEMPTED: HRESULT = 0x8898040E;
+pub const UCEERR_NO_MULTIPLE_WORKER_THREADS: HRESULT = 0x8898040F;
+pub const UCEERR_REMOTINGNOTSUPPORTED: HRESULT = 0x88980410;
+pub const UCEERR_MISSINGENDCOMMAND: HRESULT = 0x88980411;
+pub const UCEERR_MISSINGBEGINCOMMAND: HRESULT = 0x88980412;
+pub const UCEERR_CHANNELSYNCTIMEDOUT: HRESULT = 0x88980413;
+pub const UCEERR_CHANNELSYNCABANDONED: HRESULT = 0x88980414;
+pub const UCEERR_UNSUPPORTEDTRANSPORTVERSION: HRESULT = 0x88980415;
+pub const UCEERR_TRANSPORTUNAVAILABLE: HRESULT = 0x88980416;
+pub const UCEERR_FEEDBACK_UNSUPPORTED: HRESULT = 0x88980417;
+pub const UCEERR_COMMANDTRANSPORTDENIED: HRESULT = 0x88980418;
+pub const UCEERR_GRAPHICSSTREAMUNAVAILABLE: HRESULT = 0x88980419;
+pub const UCEERR_GRAPHICSSTREAMALREADYOPEN: HRESULT = 0x88980420;
+pub const UCEERR_TRANSPORTDISCONNECTED: HRESULT = 0x88980421;
+pub const UCEERR_TRANSPORTOVERLOADED: HRESULT = 0x88980422;
+pub const UCEERR_PARTITION_ZOMBIED: HRESULT = 0x88980423;
+pub const MILAVERR_NOCLOCK: HRESULT = 0x88980500;
+pub const MILAVERR_NOMEDIATYPE: HRESULT = 0x88980501;
+pub const MILAVERR_NOVIDEOMIXER: HRESULT = 0x88980502;
+pub const MILAVERR_NOVIDEOPRESENTER: HRESULT = 0x88980503;
+pub const MILAVERR_NOREADYFRAMES: HRESULT = 0x88980504;
+pub const MILAVERR_MODULENOTLOADED: HRESULT = 0x88980505;
+pub const MILAVERR_WMPFACTORYNOTREGISTERED: HRESULT = 0x88980506;
+pub const MILAVERR_INVALIDWMPVERSION: HRESULT = 0x88980507;
+pub const MILAVERR_INSUFFICIENTVIDEORESOURCES: HRESULT = 0x88980508;
+pub const MILAVERR_VIDEOACCELERATIONNOTAVAILABLE: HRESULT = 0x88980509;
+pub const MILAVERR_REQUESTEDTEXTURETOOBIG: HRESULT = 0x8898050A;
+pub const MILAVERR_SEEKFAILED: HRESULT = 0x8898050B;
+pub const MILAVERR_UNEXPECTEDWMPFAILURE: HRESULT = 0x8898050C;
+pub const MILAVERR_MEDIAPLAYERCLOSED: HRESULT = 0x8898050D;
+pub const MILAVERR_UNKNOWNHARDWAREERROR: HRESULT = 0x8898050E;
+pub const MILEFFECTSERR_UNKNOWNPROPERTY: HRESULT = 0x8898060E;
+pub const MILEFFECTSERR_EFFECTNOTPARTOFGROUP: HRESULT = 0x8898060F;
+pub const MILEFFECTSERR_NOINPUTSOURCEATTACHED: HRESULT = 0x88980610;
+pub const MILEFFECTSERR_CONNECTORNOTCONNECTED: HRESULT = 0x88980611;
+pub const MILEFFECTSERR_CONNECTORNOTASSOCIATEDWITHEFFECT: HRESULT = 0x88980612;
+pub const MILEFFECTSERR_RESERVED: HRESULT = 0x88980613;
+pub const MILEFFECTSERR_CYCLEDETECTED: HRESULT = 0x88980614;
+pub const MILEFFECTSERR_EFFECTINMORETHANONEGRAPH: HRESULT = 0x88980615;
+pub const MILEFFECTSERR_EFFECTALREADYINAGRAPH: HRESULT = 0x88980616;
+pub const MILEFFECTSERR_EFFECTHASNOCHILDREN: HRESULT = 0x88980617;
+pub const MILEFFECTSERR_ALREADYATTACHEDTOLISTENER: HRESULT = 0x88980618;
+pub const MILEFFECTSERR_NOTAFFINETRANSFORM: HRESULT = 0x88980619;
+pub const MILEFFECTSERR_EMPTYBOUNDS: HRESULT = 0x8898061A;
+pub const MILEFFECTSERR_OUTPUTSIZETOOLARGE: HRESULT = 0x8898061B;
+pub const DWMERR_STATE_TRANSITION_FAILED: HRESULT = 0x88980700;
+pub const DWMERR_THEME_FAILED: HRESULT = 0x88980701;
+pub const DWMERR_CATASTROPHIC_FAILURE: HRESULT = 0x88980702;
+pub const DCOMPOSITION_ERROR_WINDOW_ALREADY_COMPOSED: HRESULT = 0x88980800;
+pub const DCOMPOSITION_ERROR_SURFACE_BEING_RENDERED: HRESULT = 0x88980801;
+pub const DCOMPOSITION_ERROR_SURFACE_NOT_BEING_RENDERED: HRESULT = 0x88980802;
+pub const ONL_E_INVALID_AUTHENTICATION_TARGET: HRESULT = 0x80860001;
+pub const ONL_E_ACCESS_DENIED_BY_TOU: HRESULT = 0x80860002;
+pub const ONL_E_INVALID_APPLICATION: HRESULT = 0x80860003;
+pub const ONL_E_PASSWORD_UPDATE_REQUIRED: HRESULT = 0x80860004;
+pub const ONL_E_ACCOUNT_UPDATE_REQUIRED: HRESULT = 0x80860005;
+pub const ONL_E_FORCESIGNIN: HRESULT = 0x80860006;
+pub const ONL_E_ACCOUNT_LOCKED: HRESULT = 0x80860007;
+pub const ONL_E_PARENTAL_CONSENT_REQUIRED: HRESULT = 0x80860008;
+pub const ONL_E_EMAIL_VERIFICATION_REQUIRED: HRESULT = 0x80860009;
+pub const ONL_E_ACCOUNT_SUSPENDED_COMPROIMISE: HRESULT = 0x8086000A;
+pub const ONL_E_ACCOUNT_SUSPENDED_ABUSE: HRESULT = 0x8086000B;
+pub const ONL_E_ACTION_REQUIRED: HRESULT = 0x8086000C;
+pub const ONL_CONNECTION_COUNT_LIMIT: HRESULT = 0x8086000D;
+pub const ONL_E_CONNECTED_ACCOUNT_CAN_NOT_SIGNOUT: HRESULT = 0x8086000E;
+pub const ONL_E_USER_AUTHENTICATION_REQUIRED: HRESULT = 0x8086000F;
+pub const ONL_E_REQUEST_THROTTLED: HRESULT = 0x80860010;
+pub const FA_E_MAX_PERSISTED_ITEMS_REACHED: HRESULT = 0x80270220;
+pub const FA_E_HOMEGROUP_NOT_AVAILABLE: HRESULT = 0x80270222;
+pub const E_MONITOR_RESOLUTION_TOO_LOW: HRESULT = 0x80270250;
+pub const E_ELEVATED_ACTIVATION_NOT_SUPPORTED: HRESULT = 0x80270251;
+pub const E_UAC_DISABLED: HRESULT = 0x80270252;
+pub const E_FULL_ADMIN_NOT_SUPPORTED: HRESULT = 0x80270253;
+pub const E_APPLICATION_NOT_REGISTERED: HRESULT = 0x80270254;
+pub const E_MULTIPLE_EXTENSIONS_FOR_APPLICATION: HRESULT = 0x80270255;
+pub const E_MULTIPLE_PACKAGES_FOR_FAMILY: HRESULT = 0x80270256;
+pub const E_APPLICATION_MANAGER_NOT_RUNNING: HRESULT = 0x80270257;
+pub const S_STORE_LAUNCHED_FOR_REMEDIATION: HRESULT = 0x00270258;
+pub const S_APPLICATION_ACTIVATION_ERROR_HANDLED_BY_DIALOG: HRESULT = 0x00270259;
+pub const E_APPLICATION_ACTIVATION_TIMED_OUT: HRESULT = 0x8027025A;
+pub const E_APPLICATION_ACTIVATION_EXEC_FAILURE: HRESULT = 0x8027025B;
+pub const E_APPLICATION_TEMPORARY_LICENSE_ERROR: HRESULT = 0x8027025C;
+pub const E_APPLICATION_TRIAL_LICENSE_EXPIRED: HRESULT = 0x8027025D;
+pub const E_SKYDRIVE_ROOT_TARGET_FILE_SYSTEM_NOT_SUPPORTED: HRESULT = 0x80270260;
+pub const E_SKYDRIVE_ROOT_TARGET_OVERLAP: HRESULT = 0x80270261;
+pub const E_SKYDRIVE_ROOT_TARGET_CANNOT_INDEX: HRESULT = 0x80270262;
+pub const E_SKYDRIVE_FILE_NOT_UPLOADED: HRESULT = 0x80270263;
+pub const E_SKYDRIVE_UPDATE_AVAILABILITY_FAIL: HRESULT = 0x80270264;
+pub const E_SKYDRIVE_ROOT_TARGET_VOLUME_ROOT_NOT_SUPPORTED: HRESULT = 0x80270265;
+pub const E_SYNCENGINE_FILE_SIZE_OVER_LIMIT: HRESULT = 0x8802B001;
+pub const E_SYNCENGINE_FILE_SIZE_EXCEEDS_REMAINING_QUOTA: HRESULT = 0x8802B002;
+pub const E_SYNCENGINE_UNSUPPORTED_FILE_NAME: HRESULT = 0x8802B003;
+pub const E_SYNCENGINE_FOLDER_ITEM_COUNT_LIMIT_EXCEEDED: HRESULT = 0x8802B004;
+pub const E_SYNCENGINE_FILE_SYNC_PARTNER_ERROR: HRESULT = 0x8802B005;
+pub const E_SYNCENGINE_SYNC_PAUSED_BY_SERVICE: HRESULT = 0x8802B006;
+pub const E_SYNCENGINE_FILE_IDENTIFIER_UNKNOWN: HRESULT = 0x8802C002;
+pub const E_SYNCENGINE_SERVICE_AUTHENTICATION_FAILED: HRESULT = 0x8802C003;
+pub const E_SYNCENGINE_UNKNOWN_SERVICE_ERROR: HRESULT = 0x8802C004;
+pub const E_SYNCENGINE_SERVICE_RETURNED_UNEXPECTED_SIZE: HRESULT = 0x8802C005;
+pub const E_SYNCENGINE_REQUEST_BLOCKED_BY_SERVICE: HRESULT = 0x8802C006;
+pub const E_SYNCENGINE_REQUEST_BLOCKED_DUE_TO_CLIENT_ERROR: HRESULT = 0x8802C007;
+pub const E_SYNCENGINE_FOLDER_INACCESSIBLE: HRESULT = 0x8802D001;
+pub const E_SYNCENGINE_UNSUPPORTED_FOLDER_NAME: HRESULT = 0x8802D002;
+pub const E_SYNCENGINE_UNSUPPORTED_MARKET: HRESULT = 0x8802D003;
+pub const E_SYNCENGINE_PATH_LENGTH_LIMIT_EXCEEDED: HRESULT = 0x8802D004;
+pub const E_SYNCENGINE_REMOTE_PATH_LENGTH_LIMIT_EXCEEDED: HRESULT = 0x8802D005;
+pub const E_SYNCENGINE_CLIENT_UPDATE_NEEDED: HRESULT = 0x8802D006;
+pub const E_SYNCENGINE_PROXY_AUTHENTICATION_REQUIRED: HRESULT = 0x8802D007;
+pub const E_SYNCENGINE_STORAGE_SERVICE_PROVISIONING_FAILED: HRESULT = 0x8802D008;
+pub const E_SYNCENGINE_UNSUPPORTED_REPARSE_POINT: HRESULT = 0x8802D009;
+pub const E_SYNCENGINE_STORAGE_SERVICE_BLOCKED: HRESULT = 0x8802D00A;
+pub const E_SYNCENGINE_FOLDER_IN_REDIRECTION: HRESULT = 0x8802D00B;
+pub const EAS_E_POLICY_NOT_MANAGED_BY_OS: HRESULT = 0x80550001;
+pub const EAS_E_POLICY_COMPLIANT_WITH_ACTIONS: HRESULT = 0x80550002;
+pub const EAS_E_REQUESTED_POLICY_NOT_ENFORCEABLE: HRESULT = 0x80550003;
+pub const EAS_E_CURRENT_USER_HAS_BLANK_PASSWORD: HRESULT = 0x80550004;
+pub const EAS_E_REQUESTED_POLICY_PASSWORD_EXPIRATION_INCOMPATIBLE: HRESULT
+ = 0x80550005;
+pub const EAS_E_USER_CANNOT_CHANGE_PASSWORD: HRESULT = 0x80550006;
+pub const EAS_E_ADMINS_HAVE_BLANK_PASSWORD: HRESULT = 0x80550007;
+pub const EAS_E_ADMINS_CANNOT_CHANGE_PASSWORD: HRESULT = 0x80550008;
+pub const EAS_E_LOCAL_CONTROLLED_USERS_CANNOT_CHANGE_PASSWORD: HRESULT = 0x80550009;
+pub const EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CONNECTED_ADMINS: HRESULT
+ = 0x8055000A;
+pub const EAS_E_CONNECTED_ADMINS_NEED_TO_CHANGE_PASSWORD: HRESULT = 0x8055000B;
+pub const EAS_E_PASSWORD_POLICY_NOT_ENFORCEABLE_FOR_CURRENT_CONNECTED_USER: HRESULT
+ = 0x8055000C;
+pub const EAS_E_CURRENT_CONNECTED_USER_NEED_TO_CHANGE_PASSWORD: HRESULT = 0x8055000D;
+pub const WEB_E_UNSUPPORTED_FORMAT: HRESULT = 0x83750001;
+pub const WEB_E_INVALID_XML: HRESULT = 0x83750002;
+pub const WEB_E_MISSING_REQUIRED_ELEMENT: HRESULT = 0x83750003;
+pub const WEB_E_MISSING_REQUIRED_ATTRIBUTE: HRESULT = 0x83750004;
+pub const WEB_E_UNEXPECTED_CONTENT: HRESULT = 0x83750005;
+pub const WEB_E_RESOURCE_TOO_LARGE: HRESULT = 0x83750006;
+pub const WEB_E_INVALID_JSON_STRING: HRESULT = 0x83750007;
+pub const WEB_E_INVALID_JSON_NUMBER: HRESULT = 0x83750008;
+pub const WEB_E_JSON_VALUE_NOT_FOUND: HRESULT = 0x83750009;
+pub const HTTP_E_STATUS_UNEXPECTED: HRESULT = 0x80190001;
+pub const HTTP_E_STATUS_UNEXPECTED_REDIRECTION: HRESULT = 0x80190003;
+pub const HTTP_E_STATUS_UNEXPECTED_CLIENT_ERROR: HRESULT = 0x80190004;
+pub const HTTP_E_STATUS_UNEXPECTED_SERVER_ERROR: HRESULT = 0x80190005;
+pub const HTTP_E_STATUS_AMBIGUOUS: HRESULT = 0x8019012C;
+pub const HTTP_E_STATUS_MOVED: HRESULT = 0x8019012D;
+pub const HTTP_E_STATUS_REDIRECT: HRESULT = 0x8019012E;
+pub const HTTP_E_STATUS_REDIRECT_METHOD: HRESULT = 0x8019012F;
+pub const HTTP_E_STATUS_NOT_MODIFIED: HRESULT = 0x80190130;
+pub const HTTP_E_STATUS_USE_PROXY: HRESULT = 0x80190131;
+pub const HTTP_E_STATUS_REDIRECT_KEEP_VERB: HRESULT = 0x80190133;
+pub const HTTP_E_STATUS_BAD_REQUEST: HRESULT = 0x80190190;
+pub const HTTP_E_STATUS_DENIED: HRESULT = 0x80190191;
+pub const HTTP_E_STATUS_PAYMENT_REQ: HRESULT = 0x80190192;
+pub const HTTP_E_STATUS_FORBIDDEN: HRESULT = 0x80190193;
+pub const HTTP_E_STATUS_NOT_FOUND: HRESULT = 0x80190194;
+pub const HTTP_E_STATUS_BAD_METHOD: HRESULT = 0x80190195;
+pub const HTTP_E_STATUS_NONE_ACCEPTABLE: HRESULT = 0x80190196;
+pub const HTTP_E_STATUS_PROXY_AUTH_REQ: HRESULT = 0x80190197;
+pub const HTTP_E_STATUS_REQUEST_TIMEOUT: HRESULT = 0x80190198;
+pub const HTTP_E_STATUS_CONFLICT: HRESULT = 0x80190199;
+pub const HTTP_E_STATUS_GONE: HRESULT = 0x8019019A;
+pub const HTTP_E_STATUS_LENGTH_REQUIRED: HRESULT = 0x8019019B;
+pub const HTTP_E_STATUS_PRECOND_FAILED: HRESULT = 0x8019019C;
+pub const HTTP_E_STATUS_REQUEST_TOO_LARGE: HRESULT = 0x8019019D;
+pub const HTTP_E_STATUS_URI_TOO_LONG: HRESULT = 0x8019019E;
+pub const HTTP_E_STATUS_UNSUPPORTED_MEDIA: HRESULT = 0x8019019F;
+pub const HTTP_E_STATUS_RANGE_NOT_SATISFIABLE: HRESULT = 0x801901A0;
+pub const HTTP_E_STATUS_EXPECTATION_FAILED: HRESULT = 0x801901A1;
+pub const HTTP_E_STATUS_SERVER_ERROR: HRESULT = 0x801901F4;
+pub const HTTP_E_STATUS_NOT_SUPPORTED: HRESULT = 0x801901F5;
+pub const HTTP_E_STATUS_BAD_GATEWAY: HRESULT = 0x801901F6;
+pub const HTTP_E_STATUS_SERVICE_UNAVAIL: HRESULT = 0x801901F7;
+pub const HTTP_E_STATUS_GATEWAY_TIMEOUT: HRESULT = 0x801901F8;
+pub const HTTP_E_STATUS_VERSION_NOT_SUP: HRESULT = 0x801901F9;
+pub const E_INVALID_PROTOCOL_OPERATION: HRESULT = 0x83760001;
+pub const E_INVALID_PROTOCOL_FORMAT: HRESULT = 0x83760002;
+pub const E_PROTOCOL_EXTENSIONS_NOT_SUPPORTED: HRESULT = 0x83760003;
+pub const E_SUBPROTOCOL_NOT_SUPPORTED: HRESULT = 0x83760004;
+pub const E_PROTOCOL_VERSION_NOT_SUPPORTED: HRESULT = 0x83760005;
+pub const INPUT_E_OUT_OF_ORDER: HRESULT = 0x80400000;
+pub const INPUT_E_REENTRANCY: HRESULT = 0x80400001;
+pub const INPUT_E_MULTIMODAL: HRESULT = 0x80400002;
+pub const INPUT_E_PACKET: HRESULT = 0x80400003;
+pub const INPUT_E_FRAME: HRESULT = 0x80400004;
+pub const INPUT_E_HISTORY: HRESULT = 0x80400005;
+pub const INPUT_E_DEVICE_INFO: HRESULT = 0x80400006;
+pub const INPUT_E_TRANSFORM: HRESULT = 0x80400007;
+pub const INPUT_E_DEVICE_PROPERTY: HRESULT = 0x80400008;
+pub const INET_E_INVALID_URL: HRESULT = 0x800C0002;
+pub const INET_E_NO_SESSION: HRESULT = 0x800C0003;
+pub const INET_E_CANNOT_CONNECT: HRESULT = 0x800C0004;
+pub const INET_E_RESOURCE_NOT_FOUND: HRESULT = 0x800C0005;
+pub const INET_E_OBJECT_NOT_FOUND: HRESULT = 0x800C0006;
+pub const INET_E_DATA_NOT_AVAILABLE: HRESULT = 0x800C0007;
+pub const INET_E_DOWNLOAD_FAILURE: HRESULT = 0x800C0008;
+pub const INET_E_AUTHENTICATION_REQUIRED: HRESULT = 0x800C0009;
+pub const INET_E_NO_VALID_MEDIA: HRESULT = 0x800C000A;
+pub const INET_E_CONNECTION_TIMEOUT: HRESULT = 0x800C000B;
+pub const INET_E_INVALID_REQUEST: HRESULT = 0x800C000C;
+pub const INET_E_UNKNOWN_PROTOCOL: HRESULT = 0x800C000D;
+pub const INET_E_SECURITY_PROBLEM: HRESULT = 0x800C000E;
+pub const INET_E_CANNOT_LOAD_DATA: HRESULT = 0x800C000F;
+pub const INET_E_CANNOT_INSTANTIATE_OBJECT: HRESULT = 0x800C0010;
+pub const INET_E_INVALID_CERTIFICATE: HRESULT = 0x800C0019;
+pub const INET_E_REDIRECT_FAILED: HRESULT = 0x800C0014;
+pub const INET_E_REDIRECT_TO_DIR: HRESULT = 0x800C0015;
+pub const ERROR_DBG_CREATE_PROCESS_FAILURE_LOCKDOWN: HRESULT = 0x80B00001;
+pub const ERROR_DBG_ATTACH_PROCESS_FAILURE_LOCKDOWN: HRESULT = 0x80B00002;
+pub const ERROR_DBG_CONNECT_SERVER_FAILURE_LOCKDOWN: HRESULT = 0x80B00003;
+pub const ERROR_DBG_START_SERVER_FAILURE_LOCKDOWN: HRESULT = 0x80B00004;
+pub const ERROR_IO_PREEMPTED: HRESULT = 0x89010001;
+pub const JSCRIPT_E_CANTEXECUTE: HRESULT = 0x89020001;
+pub const WEP_E_NOT_PROVISIONED_ON_ALL_VOLUMES: HRESULT = 0x88010001;
+pub const WEP_E_FIXED_DATA_NOT_SUPPORTED: HRESULT = 0x88010002;
+pub const WEP_E_HARDWARE_NOT_COMPLIANT: HRESULT = 0x88010003;
+pub const WEP_E_LOCK_NOT_CONFIGURED: HRESULT = 0x88010004;
+pub const WEP_E_PROTECTION_SUSPENDED: HRESULT = 0x88010005;
+pub const WEP_E_NO_LICENSE: HRESULT = 0x88010006;
+pub const WEP_E_OS_NOT_PROTECTED: HRESULT = 0x88010007;
+pub const WEP_E_UNEXPECTED_FAIL: HRESULT = 0x88010008;
+pub const WEP_E_BUFFER_TOO_LARGE: HRESULT = 0x88010009;
+pub const ERROR_SVHDX_ERROR_STORED: HRESULT = 0xC05C0000;
+pub const ERROR_SVHDX_ERROR_NOT_AVAILABLE: HRESULT = 0xC05CFF00;
+pub const ERROR_SVHDX_UNIT_ATTENTION_AVAILABLE: HRESULT = 0xC05CFF01;
+pub const ERROR_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED: HRESULT = 0xC05CFF02;
+pub const ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED: HRESULT = 0xC05CFF03;
+pub const ERROR_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED: HRESULT = 0xC05CFF04;
+pub const ERROR_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED: HRESULT = 0xC05CFF05;
+pub const ERROR_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED: HRESULT
+ = 0xC05CFF06;
+pub const ERROR_SVHDX_RESERVATION_CONFLICT: HRESULT = 0xC05CFF07;
+pub const ERROR_SVHDX_WRONG_FILE_TYPE: HRESULT = 0xC05CFF08;
+pub const ERROR_SVHDX_VERSION_MISMATCH: HRESULT = 0xC05CFF09;
+pub const ERROR_VHD_SHARED: HRESULT = 0xC05CFF0A;
+pub const WININET_E_OUT_OF_HANDLES: HRESULT = 0x80072EE1;
+pub const WININET_E_TIMEOUT: HRESULT = 0x80072EE2;
+pub const WININET_E_EXTENDED_ERROR: HRESULT = 0x80072EE3;
+pub const WININET_E_INTERNAL_ERROR: HRESULT = 0x80072EE4;
+pub const WININET_E_INVALID_URL: HRESULT = 0x80072EE5;
+pub const WININET_E_UNRECOGNIZED_SCHEME: HRESULT = 0x80072EE6;
+pub const WININET_E_NAME_NOT_RESOLVED: HRESULT = 0x80072EE7;
+pub const WININET_E_PROTOCOL_NOT_FOUND: HRESULT = 0x80072EE8;
+pub const WININET_E_INVALID_OPTION: HRESULT = 0x80072EE9;
+pub const WININET_E_BAD_OPTION_LENGTH: HRESULT = 0x80072EEA;
+pub const WININET_E_OPTION_NOT_SETTABLE: HRESULT = 0x80072EEB;
+pub const WININET_E_SHUTDOWN: HRESULT = 0x80072EEC;
+pub const WININET_E_INCORRECT_USER_NAME: HRESULT = 0x80072EED;
+pub const WININET_E_INCORRECT_PASSWORD: HRESULT = 0x80072EEE;
+pub const WININET_E_LOGIN_FAILURE: HRESULT = 0x80072EEF;
+pub const WININET_E_INVALID_OPERATION: HRESULT = 0x80072EF0;
+pub const WININET_E_OPERATION_CANCELLED: HRESULT = 0x80072EF1;
+pub const WININET_E_INCORRECT_HANDLE_TYPE: HRESULT = 0x80072EF2;
+pub const WININET_E_INCORRECT_HANDLE_STATE: HRESULT = 0x80072EF3;
+pub const WININET_E_NOT_PROXY_REQUEST: HRESULT = 0x80072EF4;
+pub const WININET_E_REGISTRY_VALUE_NOT_FOUND: HRESULT = 0x80072EF5;
+pub const WININET_E_BAD_REGISTRY_PARAMETER: HRESULT = 0x80072EF6;
+pub const WININET_E_NO_DIRECT_ACCESS: HRESULT = 0x80072EF7;
+pub const WININET_E_NO_CONTEXT: HRESULT = 0x80072EF8;
+pub const WININET_E_NO_CALLBACK: HRESULT = 0x80072EF9;
+pub const WININET_E_REQUEST_PENDING: HRESULT = 0x80072EFA;
+pub const WININET_E_INCORRECT_FORMAT: HRESULT = 0x80072EFB;
+pub const WININET_E_ITEM_NOT_FOUND: HRESULT = 0x80072EFC;
+pub const WININET_E_CANNOT_CONNECT: HRESULT = 0x80072EFD;
+pub const WININET_E_CONNECTION_ABORTED: HRESULT = 0x80072EFE;
+pub const WININET_E_CONNECTION_RESET: HRESULT = 0x80072EFF;
+pub const WININET_E_FORCE_RETRY: HRESULT = 0x80072F00;
+pub const WININET_E_INVALID_PROXY_REQUEST: HRESULT = 0x80072F01;
+pub const WININET_E_NEED_UI: HRESULT = 0x80072F02;
+pub const WININET_E_HANDLE_EXISTS: HRESULT = 0x80072F04;
+pub const WININET_E_SEC_CERT_DATE_INVALID: HRESULT = 0x80072F05;
+pub const WININET_E_SEC_CERT_CN_INVALID: HRESULT = 0x80072F06;
+pub const WININET_E_HTTP_TO_HTTPS_ON_REDIR: HRESULT = 0x80072F07;
+pub const WININET_E_HTTPS_TO_HTTP_ON_REDIR: HRESULT = 0x80072F08;
+pub const WININET_E_MIXED_SECURITY: HRESULT = 0x80072F09;
+pub const WININET_E_CHG_POST_IS_NON_SECURE: HRESULT = 0x80072F0A;
+pub const WININET_E_POST_IS_NON_SECURE: HRESULT = 0x80072F0B;
+pub const WININET_E_CLIENT_AUTH_CERT_NEEDED: HRESULT = 0x80072F0C;
+pub const WININET_E_INVALID_CA: HRESULT = 0x80072F0D;
+pub const WININET_E_CLIENT_AUTH_NOT_SETUP: HRESULT = 0x80072F0E;
+pub const WININET_E_ASYNC_THREAD_FAILED: HRESULT = 0x80072F0F;
+pub const WININET_E_REDIRECT_SCHEME_CHANGE: HRESULT = 0x80072F10;
+pub const WININET_E_DIALOG_PENDING: HRESULT = 0x80072F11;
+pub const WININET_E_RETRY_DIALOG: HRESULT = 0x80072F12;
+pub const WININET_E_NO_NEW_CONTAINERS: HRESULT = 0x80072F13;
+pub const WININET_E_HTTPS_HTTP_SUBMIT_REDIR: HRESULT = 0x80072F14;
+pub const WININET_E_SEC_CERT_ERRORS: HRESULT = 0x80072F17;
+pub const WININET_E_SEC_CERT_REV_FAILED: HRESULT = 0x80072F19;
+pub const WININET_E_HEADER_NOT_FOUND: HRESULT = 0x80072F76;
+pub const WININET_E_DOWNLEVEL_SERVER: HRESULT = 0x80072F77;
+pub const WININET_E_INVALID_SERVER_RESPONSE: HRESULT = 0x80072F78;
+pub const WININET_E_INVALID_HEADER: HRESULT = 0x80072F79;
+pub const WININET_E_INVALID_QUERY_REQUEST: HRESULT = 0x80072F7A;
+pub const WININET_E_HEADER_ALREADY_EXISTS: HRESULT = 0x80072F7B;
+pub const WININET_E_REDIRECT_FAILED: HRESULT = 0x80072F7C;
+pub const WININET_E_SECURITY_CHANNEL_ERROR: HRESULT = 0x80072F7D;
+pub const WININET_E_UNABLE_TO_CACHE_FILE: HRESULT = 0x80072F7E;
+pub const WININET_E_TCPIP_NOT_INSTALLED: HRESULT = 0x80072F7F;
+pub const WININET_E_DISCONNECTED: HRESULT = 0x80072F83;
+pub const WININET_E_SERVER_UNREACHABLE: HRESULT = 0x80072F84;
+pub const WININET_E_PROXY_SERVER_UNREACHABLE: HRESULT = 0x80072F85;
+pub const WININET_E_BAD_AUTO_PROXY_SCRIPT: HRESULT = 0x80072F86;
+pub const WININET_E_UNABLE_TO_DOWNLOAD_SCRIPT: HRESULT = 0x80072F87;
+pub const WININET_E_SEC_INVALID_CERT: HRESULT = 0x80072F89;
+pub const WININET_E_SEC_CERT_REVOKED: HRESULT = 0x80072F8A;
+pub const WININET_E_FAILED_DUETOSECURITYCHECK: HRESULT = 0x80072F8B;
+pub const WININET_E_NOT_INITIALIZED: HRESULT = 0x80072F8C;
+pub const WININET_E_LOGIN_FAILURE_DISPLAY_ENTITY_BODY: HRESULT = 0x80072F8E;
+pub const WININET_E_DECODING_FAILED: HRESULT = 0x80072F8F;
+pub const WININET_E_NOT_REDIRECTED: HRESULT = 0x80072F80;
+pub const WININET_E_COOKIE_NEEDS_CONFIRMATION: HRESULT = 0x80072F81;
+pub const WININET_E_COOKIE_DECLINED: HRESULT = 0x80072F82;
+pub const WININET_E_REDIRECT_NEEDS_CONFIRMATION: HRESULT = 0x80072F88;
diff --git a/third_party/rust/winapi/src/shared/winusbio.rs b/third_party/rust/winapi/src/shared/winusbio.rs
new file mode 100644
index 0000000000..8006943336
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/winusbio.rs
@@ -0,0 +1,38 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Public header for WINUSB
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+use shared::usb::USBD_PIPE_TYPE;
+pub const SHORT_PACKET_TERMINATE: ULONG = 0x01;
+pub const AUTO_CLEAR_STALL: ULONG = 0x02;
+pub const PIPE_TRANSFER_TIMEOUT: ULONG = 0x03;
+pub const IGNORE_SHORT_PACKETS: ULONG = 0x04;
+pub const ALLOW_PARTIAL_READS: ULONG = 0x05;
+pub const AUTO_FLUSH: ULONG = 0x06;
+pub const RAW_IO: ULONG = 0x07;
+pub const MAXIMUM_TRANSFER_SIZE: ULONG = 0x08;
+pub const RESET_PIPE_ON_RESUME: ULONG = 0x09;
+pub const DEVICE_SPEED: ULONG = 0x01;
+pub const LowSpeed: ULONG = 0x01;
+pub const FullSpeed: ULONG = 0x02;
+pub const HighSpeed: ULONG = 0x03;
+DEFINE_GUID!{WinUSB_TestGuid,
+ 0xda812bff, 0x12c3, 0x46a2, 0x8e, 0x2b, 0xdb, 0xd3, 0xb7, 0x83, 0x4c, 0x43}
+STRUCT!{struct WINUSB_PIPE_INFORMATION {
+ PipeType: USBD_PIPE_TYPE,
+ PipeId: UCHAR,
+ MaximumPacketSize: USHORT,
+ Interval: UCHAR,
+}}
+pub type PWINUSB_PIPE_INFORMATION = *mut WINUSB_PIPE_INFORMATION;
+STRUCT!{struct WINUSB_PIPE_INFORMATION_EX {
+ PipeType: USBD_PIPE_TYPE,
+ PipeId: UCHAR,
+ MaximumPacketSize: USHORT,
+ Interval: UCHAR,
+ MaximumBytesPerInterval: ULONG,
+}}
+pub type PWINUSB_PIPE_INFORMATION_EX = *mut WINUSB_PIPE_INFORMATION_EX;
diff --git a/third_party/rust/winapi/src/shared/wlantypes.rs b/third_party/rust/winapi/src/shared/wlantypes.rs
new file mode 100644
index 0000000000..a9e9c665aa
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/wlantypes.rs
@@ -0,0 +1,78 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Structures used to hold wlan information.
+use shared::basetsd::UINT8;
+use shared::minwindef::{UCHAR, ULONG, USHORT};
+ENUM!{enum DOT11_BSS_TYPE {
+ dot11_BSS_type_infrastructure = 1,
+ dot11_BSS_type_independent = 2,
+ dot11_BSS_type_any = 3,
+}}
+pub type PDOT11_BSS_TYPE = *mut DOT11_BSS_TYPE;
+pub const DOT11_SSID_MAX_LENGTH: usize = 32;
+STRUCT!{struct DOT11_SSID {
+ uSSIDLength: ULONG,
+ ucSSID: [UCHAR; DOT11_SSID_MAX_LENGTH],
+}}
+pub type PDOT11_SSID = *mut DOT11_SSID;
+ENUM!{enum DOT11_AUTH_ALGORITHM {
+ DOT11_AUTH_ALGO_80211_OPEN = 1,
+ DOT11_AUTH_ALGO_80211_SHARED_KEY = 2,
+ DOT11_AUTH_ALGO_WPA = 3,
+ DOT11_AUTH_ALGO_WPA_PSK = 4,
+ DOT11_AUTH_ALGO_WPA_NONE = 5,
+ DOT11_AUTH_ALGO_RSNA = 6,
+ DOT11_AUTH_ALGO_RSNA_PSK = 7,
+ DOT11_AUTH_ALGO_IHV_START = 0x80000000,
+ DOT11_AUTH_ALGO_IHV_END = 0xffffffff,
+}}
+pub type PDOT11_AUTH_ALGORITHM = *mut DOT11_AUTH_ALGORITHM;
+pub const DOT11_AUTH_ALGORITHM_OPEN_SYSTEM: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_80211_OPEN;
+pub const DOT11_AUTH_ALGORITHM_SHARED_KEY: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_80211_SHARED_KEY;
+pub const DOT11_AUTH_ALGORITHM_WPA: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA;
+pub const DOT11_AUTH_ALGORITHM_WPA_PSK: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA_PSK;
+pub const DOT11_AUTH_ALGORITHM_WPA_NONE: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_WPA_NONE;
+pub const DOT11_AUTH_ALGORITHM_RSNA: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_RSNA;
+pub const DOT11_AUTH_ALGORITHM_RSNA_PSK: DOT11_AUTH_ALGORITHM = DOT11_AUTH_ALGO_RSNA_PSK;
+ENUM!{enum DOT11_CIPHER_ALGORITHM {
+ DOT11_CIPHER_ALGO_NONE = 0x00,
+ DOT11_CIPHER_ALGO_WEP40 = 0x01,
+ DOT11_CIPHER_ALGO_TKIP = 0x02,
+ DOT11_CIPHER_ALGO_CCMP = 0x04,
+ DOT11_CIPHER_ALGO_WEP104 = 0x05,
+ DOT11_CIPHER_ALGO_BIP = 0x06,
+ DOT11_CIPHER_ALGO_GCMP = 0x08,
+ DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
+ DOT11_CIPHER_ALGO_WEP = 0x101,
+ DOT11_CIPHER_ALGO_IHV_START = 0x80000000,
+ DOT11_CIPHER_ALGO_IHV_END = 0xffffffff,
+}}
+pub type PDOT11_CIPHER_ALGORITHM = *mut DOT11_CIPHER_ALGORITHM;
+STRUCT!{struct DOT11_AUTH_CIPHER_PAIR {
+ AuthAlgoId: DOT11_AUTH_ALGORITHM,
+ CipherAlgoId: DOT11_CIPHER_ALGORITHM,
+}}
+pub type PDOT11_AUTH_CIPHER_PAIR = *mut DOT11_AUTH_CIPHER_PAIR;
+pub const DOT11_OI_MAX_LENGTH: usize = 5;
+pub const DOT11_OI_MIN_LENGTH: usize = 3;
+STRUCT!{struct DOT11_OI {
+ OILength: USHORT,
+ OI: [UCHAR; DOT11_OI_MAX_LENGTH],
+}}
+pub type PDOT11_OI = *mut DOT11_OI;
+STRUCT!{struct DOT11_ACCESSNETWORKOPTIONS {
+ AccessNetworkType: UINT8,
+ Internet: UINT8,
+ ASRA: UINT8,
+ ESR: UINT8,
+ UESA: UINT8,
+}}
+pub type PDOT11_ACCESSNETWORKOPTIONS = *mut DOT11_ACCESSNETWORKOPTIONS;
+STRUCT!{struct DOT11_VENUEINFO {
+ VenueGroup: UINT8,
+ VenueType: UINT8,
+}}
+pub type PDOT11_VENUEINFO = *mut DOT11_VENUEINFO;
diff --git a/third_party/rust/winapi/src/shared/wmistr.rs b/third_party/rust/winapi/src/shared/wmistr.rs
new file mode 100644
index 0000000000..35374e92bd
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/wmistr.rs
@@ -0,0 +1,199 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use shared::basetsd::{ULONG64, ULONG_PTR};
+use shared::guiddef::GUID;
+use shared::minwindef::{UCHAR, ULONG};
+use um::winnt::{HANDLE, LARGE_INTEGER, STANDARD_RIGHTS_READ, SYNCHRONIZE, WCHAR};
+STRUCT!{struct WNODE_HEADER_u1_s {
+ Version: ULONG,
+ Linkage: ULONG,
+}}
+UNION!{union WNODE_HEADER_u1 {
+ [u64; 1],
+ HistoricalContext HistoricalContext_mut: ULONG64,
+ s s_mut: WNODE_HEADER_u1_s,
+}}
+UNION!{union WNODE_HEADER_u2 {
+ [u64; 1],
+ CountLost CountLost_mut: ULONG,
+ KernelHandle KernelHandle_mut: HANDLE,
+ TimeStamp TimeStamp_mut: LARGE_INTEGER,
+}}
+STRUCT!{struct WNODE_HEADER {
+ BufferSize: ULONG,
+ ProviderId: ULONG,
+ u1: WNODE_HEADER_u1,
+ u2: WNODE_HEADER_u2,
+ Guid: GUID,
+ ClientContext: ULONG,
+ Flags: ULONG,
+}}
+pub type PWNODE_HEADER = *mut WNODE_HEADER;
+pub const WNODE_FLAG_ALL_DATA: ULONG = 0x00000001;
+pub const WNODE_FLAG_SINGLE_INSTANCE: ULONG = 0x00000002;
+pub const WNODE_FLAG_SINGLE_ITEM: ULONG = 0x00000004;
+pub const WNODE_FLAG_EVENT_ITEM: ULONG = 0x00000008;
+pub const WNODE_FLAG_FIXED_INSTANCE_SIZE: ULONG = 0x00000010;
+pub const WNODE_FLAG_TOO_SMALL: ULONG = 0x00000020;
+pub const WNODE_FLAG_INSTANCES_SAME: ULONG = 0x00000040;
+pub const WNODE_FLAG_STATIC_INSTANCE_NAMES: ULONG = 0x00000080;
+pub const WNODE_FLAG_INTERNAL: ULONG = 0x00000100;
+pub const WNODE_FLAG_USE_TIMESTAMP: ULONG = 0x00000200;
+pub const WNODE_FLAG_PERSIST_EVENT: ULONG = 0x00000400;
+pub const WNODE_FLAG_EVENT_REFERENCE: ULONG = 0x00002000;
+pub const WNODE_FLAG_ANSI_INSTANCENAMES: ULONG = 0x00004000;
+pub const WNODE_FLAG_METHOD_ITEM: ULONG = 0x00008000;
+pub const WNODE_FLAG_PDO_INSTANCE_NAMES: ULONG = 0x00010000;
+pub const WNODE_FLAG_TRACED_GUID: ULONG = 0x00020000;
+pub const WNODE_FLAG_LOG_WNODE: ULONG = 0x00040000;
+pub const WNODE_FLAG_USE_GUID_PTR: ULONG = 0x00080000;
+pub const WNODE_FLAG_USE_MOF_PTR: ULONG = 0x00100000;
+pub const WNODE_FLAG_NO_HEADER: ULONG = 0x00200000;
+pub const WNODE_FLAG_SEND_DATA_BLOCK: ULONG = 0x00400000;
+pub const WNODE_FLAG_VERSIONED_PROPERTIES: ULONG = 0x00800000;
+pub const WNODE_FLAG_SEVERITY_MASK: ULONG = 0xff000000;
+STRUCT!{struct OFFSETINSTANCEDATAANDLENGTH {
+ OffsetInstanceData: ULONG,
+ LengthInstanceData: ULONG,
+}}
+pub type POFFSETINSTANCEDATAANDLENGTH = *mut OFFSETINSTANCEDATAANDLENGTH;
+UNION!{union WNODE_ALL_DATA_u {
+ [u32; 2],
+ FixedInstanceSize FixedInstanceSize_mut: ULONG,
+ OffsetInstanceDataAndLength OffsetInstanceDataAndLength_mut:
+ [OFFSETINSTANCEDATAANDLENGTH; 0],
+}}
+STRUCT!{struct WNODE_ALL_DATA {
+ WnodeHeader: WNODE_HEADER,
+ DataBlockOffset: ULONG,
+ InstanceCount: ULONG,
+ OffsetInstanceNameOffsets: ULONG,
+ u: WNODE_ALL_DATA_u,
+}}
+pub type PWNODE_ALL_DATA = *mut WNODE_ALL_DATA;
+STRUCT!{struct WNODE_SINGLE_INSTANCE {
+ WnodeHeader: WNODE_HEADER,
+ OffsetInstanceName: ULONG,
+ InstanceIndex: ULONG,
+ DataBlockOffset: ULONG,
+ SizeDataBlock: ULONG,
+ VariableData: [UCHAR; 0],
+}}
+pub type PWNODE_SINGLE_INSTANCE = *mut WNODE_SINGLE_INSTANCE;
+STRUCT!{struct WNODE_SINGLE_ITEM {
+ WnodeHeader: WNODE_HEADER,
+ OffsetInstanceName: ULONG,
+ InstanceIndex: ULONG,
+ ItemId: ULONG,
+ DataBlockOffset: ULONG,
+ SizeDataItem: ULONG,
+ VariableData: [UCHAR; 0],
+}}
+pub type PWNODE_SINGLE_ITEM = *mut WNODE_SINGLE_ITEM;
+STRUCT!{struct WNODE_METHOD_ITEM {
+ WnodeHeader: WNODE_HEADER,
+ OffsetInstanceName: ULONG,
+ InstanceIndex: ULONG,
+ MethodId: ULONG,
+ DataBlockOffset: ULONG,
+ SizeDataBlock: ULONG,
+ VariableData: [UCHAR; 0],
+}}
+pub type PWNODE_METHOD_ITEM = *mut WNODE_METHOD_ITEM;
+STRUCT!{struct WNODE_EVENT_ITEM {
+ WnodeHeader: WNODE_HEADER,
+}}
+pub type PWNODE_EVENT_ITEM = *mut WNODE_EVENT_ITEM;
+UNION!{union WNODE_EVENT_REFERENCE_u {
+ [u32; 1],
+ TargetInstanceIndex TargetInstanceIndex_mut: ULONG,
+ TargetInstanceName TargetInstanceName_mut: [WCHAR; 0],
+}}
+STRUCT!{struct WNODE_EVENT_REFERENCE {
+ WnodeHeader: WNODE_HEADER,
+ TargetGuid: GUID,
+ TargetDataBlockSize: ULONG,
+ u: WNODE_EVENT_REFERENCE_u,
+}}
+pub type PWNODE_EVENT_REFERENCE = *mut WNODE_EVENT_REFERENCE;
+STRUCT!{struct WNODE_TOO_SMALL {
+ WnodeHeader: WNODE_HEADER,
+ SizeNeeded: ULONG,
+}}
+pub type PWNODE_TOO_SMALL = *mut WNODE_TOO_SMALL;
+UNION!{union WMIREGGUIDW_u {
+ [usize; 1],
+ InstanceNameList InstanceNameList_mut: ULONG,
+ BaseNameOffset BaseNameOffset_mut: ULONG,
+ Pdo Pdo_mut: ULONG_PTR,
+ InstanceInfo InstanceInfo_mut: ULONG_PTR,
+}}
+STRUCT!{struct WMIREGGUIDW {
+ Guid: GUID,
+ Flags: ULONG,
+ InstanceCount: ULONG,
+ u: WMIREGGUIDW_u,
+}}
+pub type PWMIREGGUIDW = *mut WMIREGGUIDW;
+pub const WMIREG_FLAG_EXPENSIVE: ULONG = 0x00000001;
+pub const WMIREG_FLAG_INSTANCE_LIST: ULONG = 0x00000004;
+pub const WMIREG_FLAG_INSTANCE_BASENAME: ULONG = 0x00000008;
+pub const WMIREG_FLAG_INSTANCE_PDO: ULONG = 0x00000020;
+pub const WMIREG_FLAG_REMOVE_GUID: ULONG = 0x00010000;
+pub const WMIREG_FLAG_RESERVED1: ULONG = 0x00020000;
+pub const WMIREG_FLAG_RESERVED2: ULONG = 0x00040000;
+pub const WMIREG_FLAG_TRACED_GUID: ULONG = 0x00080000;
+pub const WMIREG_FLAG_TRACE_CONTROL_GUID: ULONG = 0x00001000;
+pub const WMIREG_FLAG_EVENT_ONLY_GUID: ULONG = 0x00000040;
+STRUCT!{struct WMIREGINFOW {
+ BufferSize: ULONG,
+ NextWmiRegInfo: ULONG,
+ RegistryPath: ULONG,
+ MofResourceName: ULONG,
+ GuidGount: ULONG,
+ WmiRegGuid: [WMIREGGUIDW; 0],
+}}
+pub type PWMIREGINFOW = *mut WMIREGINFOW;
+ENUM!{enum WMIDPREQUESTCODE {
+ WMI_GET_ALL_DATA = 0,
+ WMI_GET_SINGLE_INSTANCE = 1,
+ WMI_SET_SINGLE_INSTANCE = 2,
+ WMI_SET_SINGLE_ITEM = 3,
+ WMI_ENABLE_EVENTS = 4,
+ WMI_DISABLE_EVENTS = 5,
+ WMI_ENABLE_COLLECTION = 6,
+ WMI_DISABLE_COLLECTION = 7,
+ WMI_REGINFO = 8,
+ WMI_EXECUTE_METHOD = 9,
+ WMI_CAPTURE_STATE = 10,
+}}
+pub const WMI_GUIDTYPE_TRACECONTROL: ULONG = 0;
+pub const WMI_GUIDTYPE_TRACE: ULONG = 1;
+pub const WMI_GUIDTYPE_DATA: ULONG = 2;
+pub const WMI_GUIDTYPE_EVENT: ULONG = 3;
+pub const WMIGUID_QUERY: ULONG = 0x0001;
+pub const WMIGUID_SET: ULONG = 0x0002;
+pub const WMIGUID_NOTIFICATION: ULONG = 0x0004;
+pub const WMIGUID_READ_DESCRIPTION: ULONG = 0x0008;
+pub const WMIGUID_EXECUTE: ULONG = 0x0010;
+pub const TRACELOG_CREATE_REALTIME: ULONG = 0x0020;
+pub const TRACELOG_CREATE_ONDISK: ULONG = 0x0040;
+pub const TRACELOG_GUID_ENABLE: ULONG = 0x0080;
+pub const TRACELOG_ACCESS_KERNEL_LOGGER: ULONG = 0x0100;
+pub const TRACELOG_LOG_EVENT: ULONG = 0x0200;
+pub const TRACELOG_CREATE_INPROC: ULONG = 0x0200;
+pub const TRACELOG_ACCESS_REALTIME: ULONG = 0x0400;
+pub const TRACELOG_REGISTER_GUIDS: ULONG = 0x0800;
+pub const TRACELOG_JOIN_GROUP: ULONG = 0x1000;
+pub const WMIGUID_ALL_ACCESS_WIN2K: ULONG = STANDARD_RIGHTS_READ | WMIGUID_QUERY | WMIGUID_SET
+ | WMIGUID_NOTIFICATION | WMIGUID_READ_DESCRIPTION | WMIGUID_EXECUTE | TRACELOG_CREATE_REALTIME
+ | TRACELOG_CREATE_ONDISK | TRACELOG_GUID_ENABLE | TRACELOG_ACCESS_KERNEL_LOGGER
+ | TRACELOG_CREATE_INPROC | TRACELOG_ACCESS_REALTIME;
+pub const WMIGUID_ALL_ACCESS_WINXP: ULONG = WMIGUID_ALL_ACCESS_WIN2K | SYNCHRONIZE
+ | TRACELOG_REGISTER_GUIDS;
+pub const WMIGUID_ALL_ACCESS_RS1: ULONG = WMIGUID_ALL_ACCESS_WINXP | TRACELOG_JOIN_GROUP;
+pub const WMIGUID_ALL_ACCESS: ULONG = WMIGUID_ALL_ACCESS_RS1;
+pub const WMI_GLOBAL_LOGGER_ID: ULONG = 0x0001;
diff --git a/third_party/rust/winapi/src/shared/wnnc.rs b/third_party/rust/winapi/src/shared/wnnc.rs
new file mode 100644
index 0000000000..305137c582
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/wnnc.rs
@@ -0,0 +1,77 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Provides the Windows Networking WNNC_NET definitions to winnetwk.h and the IFS Kit.
+use shared::minwindef::DWORD;
+pub const WNNC_NET_MSNET: DWORD = 0x00010000;
+pub const WNNC_NET_SMB: DWORD = 0x00020000;
+pub const WNNC_NET_NETWARE: DWORD = 0x00030000;
+pub const WNNC_NET_VINES: DWORD = 0x00040000;
+pub const WNNC_NET_10NET: DWORD = 0x00050000;
+pub const WNNC_NET_LOCUS: DWORD = 0x00060000;
+pub const WNNC_NET_SUN_PC_NFS: DWORD = 0x00070000;
+pub const WNNC_NET_LANSTEP: DWORD = 0x00080000;
+pub const WNNC_NET_9TILES: DWORD = 0x00090000;
+pub const WNNC_NET_LANTASTIC: DWORD = 0x000A0000;
+pub const WNNC_NET_AS400: DWORD = 0x000B0000;
+pub const WNNC_NET_FTP_NFS: DWORD = 0x000C0000;
+pub const WNNC_NET_PATHWORKS: DWORD = 0x000D0000;
+pub const WNNC_NET_LIFENET: DWORD = 0x000E0000;
+pub const WNNC_NET_POWERLAN: DWORD = 0x000F0000;
+pub const WNNC_NET_BWNFS: DWORD = 0x00100000;
+pub const WNNC_NET_COGENT: DWORD = 0x00110000;
+pub const WNNC_NET_FARALLON: DWORD = 0x00120000;
+pub const WNNC_NET_APPLETALK: DWORD = 0x00130000;
+pub const WNNC_NET_INTERGRAPH: DWORD = 0x00140000;
+pub const WNNC_NET_SYMFONET: DWORD = 0x00150000;
+pub const WNNC_NET_CLEARCASE: DWORD = 0x00160000;
+pub const WNNC_NET_FRONTIER: DWORD = 0x00170000;
+pub const WNNC_NET_BMC: DWORD = 0x00180000;
+pub const WNNC_NET_DCE: DWORD = 0x00190000;
+pub const WNNC_NET_AVID: DWORD = 0x001A0000;
+pub const WNNC_NET_DOCUSPACE: DWORD = 0x001B0000;
+pub const WNNC_NET_MANGOSOFT: DWORD = 0x001C0000;
+pub const WNNC_NET_SERNET: DWORD = 0x001D0000;
+pub const WNNC_NET_RIVERFRONT1: DWORD = 0x001E0000;
+pub const WNNC_NET_RIVERFRONT2: DWORD = 0x001F0000;
+pub const WNNC_NET_DECORB: DWORD = 0x00200000;
+pub const WNNC_NET_PROTSTOR: DWORD = 0x00210000;
+pub const WNNC_NET_FJ_REDIR: DWORD = 0x00220000;
+pub const WNNC_NET_DISTINCT: DWORD = 0x00230000;
+pub const WNNC_NET_TWINS: DWORD = 0x00240000;
+pub const WNNC_NET_RDR2SAMPLE: DWORD = 0x00250000;
+pub const WNNC_NET_CSC: DWORD = 0x00260000;
+pub const WNNC_NET_3IN1: DWORD = 0x00270000;
+pub const WNNC_NET_EXTENDNET: DWORD = 0x00290000;
+pub const WNNC_NET_STAC: DWORD = 0x002A0000;
+pub const WNNC_NET_FOXBAT: DWORD = 0x002B0000;
+pub const WNNC_NET_YAHOO: DWORD = 0x002C0000;
+pub const WNNC_NET_EXIFS: DWORD = 0x002D0000;
+pub const WNNC_NET_DAV: DWORD = 0x002E0000;
+pub const WNNC_NET_KNOWARE: DWORD = 0x002F0000;
+pub const WNNC_NET_OBJECT_DIRE: DWORD = 0x00300000;
+pub const WNNC_NET_MASFAX: DWORD = 0x00310000;
+pub const WNNC_NET_HOB_NFS: DWORD = 0x00320000;
+pub const WNNC_NET_SHIVA: DWORD = 0x00330000;
+pub const WNNC_NET_IBMAL: DWORD = 0x00340000;
+pub const WNNC_NET_LOCK: DWORD = 0x00350000;
+pub const WNNC_NET_TERMSRV: DWORD = 0x00360000;
+pub const WNNC_NET_SRT: DWORD = 0x00370000;
+pub const WNNC_NET_QUINCY: DWORD = 0x00380000;
+pub const WNNC_NET_OPENAFS: DWORD = 0x00390000;
+pub const WNNC_NET_AVID1: DWORD = 0x003A0000;
+pub const WNNC_NET_DFS: DWORD = 0x003B0000;
+pub const WNNC_NET_KWNP: DWORD = 0x003C0000;
+pub const WNNC_NET_ZENWORKS: DWORD = 0x003D0000;
+pub const WNNC_NET_DRIVEONWEB: DWORD = 0x003E0000;
+pub const WNNC_NET_VMWARE: DWORD = 0x003F0000;
+pub const WNNC_NET_RSFX: DWORD = 0x00400000;
+pub const WNNC_NET_MFILES: DWORD = 0x00410000;
+pub const WNNC_NET_MS_NFS: DWORD = 0x00420000;
+pub const WNNC_NET_GOOGLE: DWORD = 0x00430000;
+pub const WNNC_NET_NDFS: DWORD = 0x00440000;
+pub const WNNC_NET_DOCUSHARE: DWORD = 0x00450000;
+pub const WNNC_CRED_MANAGER: DWORD = 0xFFFF0000;
+pub const WNNC_NET_LANMAN: DWORD = WNNC_NET_SMB;
diff --git a/third_party/rust/winapi/src/shared/ws2def.rs b/third_party/rust/winapi/src/shared/ws2def.rs
new file mode 100644
index 0000000000..484f6d4a6c
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ws2def.rs
@@ -0,0 +1,556 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Core definitions for the Winsock2 specification
+use ctypes::{__int64, c_char, c_int, c_long, c_short, c_void};
+use shared::basetsd::SIZE_T;
+use shared::guiddef::LPGUID;
+use shared::inaddr::IN_ADDR;
+use shared::minwindef::{DWORD, INT, UCHAR, ULONG, USHORT};
+use um::winnt::{CHAR, HANDLE, LONG, PROCESSOR_NUMBER, PWSTR};
+use vc::vcruntime::size_t;
+pub type ADDRESS_FAMILY = USHORT;
+pub const AF_UNSPEC: c_int = 0;
+pub const AF_UNIX: c_int = 1;
+pub const AF_INET: c_int = 2;
+pub const AF_IMPLINK: c_int = 3;
+pub const AF_PUP: c_int = 4;
+pub const AF_CHAOS: c_int = 5;
+pub const AF_NS: c_int = 6;
+pub const AF_IPX: c_int = AF_NS;
+pub const AF_ISO: c_int = 7;
+pub const AF_OSI: c_int = AF_ISO;
+pub const AF_ECMA: c_int = 8;
+pub const AF_DATAKIT: c_int = 9;
+pub const AF_CCITT: c_int = 10;
+pub const AF_SNA: c_int = 11;
+pub const AF_DECnet: c_int = 12;
+pub const AF_DLI: c_int = 13;
+pub const AF_LAT: c_int = 14;
+pub const AF_HYLINK: c_int = 15;
+pub const AF_APPLETALK: c_int = 16;
+pub const AF_NETBIOS: c_int = 17;
+pub const AF_VOICEVIEW: c_int = 18;
+pub const AF_FIREFOX: c_int = 19;
+pub const AF_UNKNOWN1: c_int = 20;
+pub const AF_BAN: c_int = 21;
+pub const AF_ATM: c_int = 22;
+pub const AF_INET6: c_int = 23;
+pub const AF_CLUSTER: c_int = 24;
+pub const AF_12844: c_int = 25;
+pub const AF_IRDA: c_int = 26;
+pub const AF_NETDES: c_int = 28;
+pub const AF_TCNPROCESS: c_int = 29;
+pub const AF_TCNMESSAGE: c_int = 30;
+pub const AF_ICLFXBM: c_int = 31;
+pub const AF_BTH: c_int = 32;
+pub const AF_LINK: c_int = 33;
+pub const AF_HYPERV: c_int = 34;
+pub const AF_MAX: c_int = 35;
+pub const SOCK_STREAM: c_int = 1;
+pub const SOCK_DGRAM: c_int = 2;
+pub const SOCK_RAW: c_int = 3;
+pub const SOCK_RDM: c_int = 4;
+pub const SOCK_SEQPACKET: c_int = 5;
+pub const SOL_SOCKET: c_int = 0xffff;
+pub const SO_DEBUG: c_int = 0x0001;
+pub const SO_ACCEPTCONN: c_int = 0x0002;
+pub const SO_REUSEADDR: c_int = 0x0004;
+pub const SO_KEEPALIVE: c_int = 0x0008;
+pub const SO_DONTROUTE: c_int = 0x0010;
+pub const SO_BROADCAST: c_int = 0x0020;
+pub const SO_USELOOPBACK: c_int = 0x0040;
+pub const SO_LINGER: c_int = 0x0080;
+pub const SO_OOBINLINE: c_int = 0x0100;
+pub const SO_DONTLINGER: c_int = !SO_LINGER;
+pub const SO_EXCLUSIVEADDRUSE: c_int = !SO_REUSEADDR;
+pub const SO_SNDBUF: c_int = 0x1001;
+pub const SO_RCVBUF: c_int = 0x1002;
+pub const SO_SNDLOWAT: c_int = 0x1003;
+pub const SO_RCVLOWAT: c_int = 0x1004;
+pub const SO_SNDTIMEO: c_int = 0x1005;
+pub const SO_RCVTIMEO: c_int = 0x1006;
+pub const SO_ERROR: c_int = 0x1007;
+pub const SO_TYPE: c_int = 0x1008;
+pub const SO_BSP_STATE: c_int = 0x1009;
+pub const SO_GROUP_ID: c_int = 0x2001;
+pub const SO_GROUP_PRIORITY: c_int = 0x2002;
+pub const SO_MAX_MSG_SIZE: c_int = 0x2003;
+pub const SO_CONDITIONAL_ACCEPT: c_int = 0x3002;
+pub const SO_PAUSE_ACCEPT: c_int = 0x3003;
+pub const SO_COMPARTMENT_ID: c_int = 0x3004;
+pub const SO_RANDOMIZE_PORT: c_int = 0x3005;
+pub const SO_PORT_SCALABILITY: c_int = 0x3006;
+pub const SO_REUSE_UNICASTPORT: c_int = 0x3007;
+pub const SO_REUSE_MULTICASTPORT: c_int = 0x3008;
+pub const WSK_SO_BASE: c_int = 0x4000;
+pub const TCP_NODELAY: c_int = 0x0001;
+STRUCT!{struct SOCKADDR {
+ sa_family: ADDRESS_FAMILY,
+ sa_data: [CHAR; 14],
+}}
+pub type PSOCKADDR = *mut SOCKADDR;
+pub type LPSOCKADDR = *mut SOCKADDR;
+STRUCT!{struct SOCKET_ADDRESS {
+ lpSockaddr: LPSOCKADDR,
+ iSockaddrLength: INT,
+}}
+pub type PSOCKET_ADDRESS = *mut SOCKET_ADDRESS;
+pub type LPSOCKET_ADDRESS = *mut SOCKET_ADDRESS;
+STRUCT!{struct SOCKET_ADDRESS_LIST {
+ iAddressCount: INT,
+ Address: [SOCKET_ADDRESS; 1],
+}}
+pub type PSOCKET_ADDRESS_LIST = *mut SOCKET_ADDRESS_LIST;
+pub type LPSOCKET_ADDRESS_LIST = *mut SOCKET_ADDRESS_LIST;
+STRUCT!{struct CSADDR_INFO {
+ LocalAddr: SOCKET_ADDRESS,
+ RemoteAddr: SOCKET_ADDRESS,
+ iSocketType: INT,
+ iProtocol: INT,
+}}
+pub type PCSADDR_INFO = *mut CSADDR_INFO;
+pub type LPCSADDR_INFO = *mut CSADDR_INFO;
+STRUCT!{struct SOCKADDR_STORAGE_LH {
+ ss_family: ADDRESS_FAMILY,
+ __ss_pad1: [CHAR; 6],
+ __ss_align: __int64,
+ __ss_pad2: [CHAR; 112],
+}}
+pub type PSOCKADDR_STORAGE_LH = *mut SOCKADDR_STORAGE_LH;
+pub type LPSOCKADDR_STORAGE_LH = *mut SOCKADDR_STORAGE_LH;
+STRUCT!{struct SOCKADDR_STORAGE_XP {
+ ss_family: c_short,
+ __ss_pad1: [CHAR; 6],
+ __ss_align: __int64,
+ __ss_pad2: [CHAR; 112],
+}}
+pub type PSOCKADDR_STORAGE_XP = *mut SOCKADDR_STORAGE_XP;
+pub type LPSOCKADDR_STORAGE_XP = *mut SOCKADDR_STORAGE_XP;
+pub type SOCKADDR_STORAGE = SOCKADDR_STORAGE_LH;
+pub type PSOCKADDR_STORAGE = *mut SOCKADDR_STORAGE;
+pub type LPSOCKADDR_STORAGE = *mut SOCKADDR_STORAGE;
+STRUCT!{struct SOCKET_PROCESSOR_AFFINITY {
+ Processor: PROCESSOR_NUMBER,
+ NumaNodeId: USHORT,
+ Reserved: USHORT,
+}}
+pub type PSOCKET_PROCESSOR_AFFINITY = *mut SOCKET_PROCESSOR_AFFINITY;
+pub const IOC_UNIX: DWORD = 0x00000000;
+pub const IOC_WS2: DWORD = 0x08000000;
+pub const IOC_PROTOCOL: DWORD = 0x10000000;
+pub const IOC_VENDOR: DWORD = 0x18000000;
+pub const IOC_WSK: DWORD = IOC_WS2 | 0x07000000;
+pub const SIO_ASSOCIATE_HANDLE: DWORD = _WSAIOW!(IOC_WS2, 1);
+pub const SIO_ENABLE_CIRCULAR_QUEUEING: DWORD = _WSAIO!(IOC_WS2, 2);
+pub const SIO_FIND_ROUTE: DWORD = _WSAIOR!(IOC_WS2, 3);
+pub const SIO_FLUSH: DWORD = _WSAIO!(IOC_WS2, 4);
+pub const SIO_GET_BROADCAST_ADDRESS: DWORD = _WSAIOR!(IOC_WS2, 5);
+pub const SIO_GET_EXTENSION_FUNCTION_POINTER: DWORD = _WSAIORW!(IOC_WS2, 6);
+pub const SIO_GET_QOS: DWORD = _WSAIORW!(IOC_WS2, 7);
+pub const SIO_GET_GROUP_QOS: DWORD = _WSAIORW!(IOC_WS2, 8);
+pub const SIO_MULTIPOINT_LOOPBACK: DWORD = _WSAIOW!(IOC_WS2, 9);
+pub const SIO_MULTICAST_SCOPE: DWORD = _WSAIOW!(IOC_WS2, 10);
+pub const SIO_SET_QOS: DWORD = _WSAIOW!(IOC_WS2, 11);
+pub const SIO_SET_GROUP_QOS: DWORD = _WSAIOW!(IOC_WS2, 12);
+pub const SIO_TRANSLATE_HANDLE: DWORD = _WSAIORW!(IOC_WS2, 13);
+pub const SIO_ROUTING_INTERFACE_QUERY: DWORD = _WSAIORW!(IOC_WS2, 20);
+pub const SIO_ROUTING_INTERFACE_CHANGE: DWORD = _WSAIOW!(IOC_WS2, 21);
+pub const SIO_ADDRESS_LIST_QUERY: DWORD = _WSAIOR!(IOC_WS2, 22);
+pub const SIO_ADDRESS_LIST_CHANGE: DWORD = _WSAIO!(IOC_WS2, 23);
+pub const SIO_QUERY_TARGET_PNP_HANDLE: DWORD = _WSAIOR!(IOC_WS2, 24);
+pub const SIO_QUERY_RSS_PROCESSOR_INFO: DWORD = _WSAIOR!(IOC_WS2, 37);
+pub const SIO_ADDRESS_LIST_SORT: DWORD = _WSAIORW!(IOC_WS2, 25);
+pub const SIO_RESERVED_1: DWORD = _WSAIOW!(IOC_WS2, 26);
+pub const SIO_RESERVED_2: DWORD = _WSAIOW!(IOC_WS2, 33);
+pub const SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER: DWORD = _WSAIORW!(IOC_WS2, 36);
+pub const IPPROTO_IP: c_int = 0;
+ENUM!{enum IPPROTO {
+ IPPROTO_HOPOPTS = 0, // IPv6 Hop-by-Hop options
+ IPPROTO_ICMP = 1,
+ IPPROTO_IGMP = 2,
+ IPPROTO_GGP = 3,
+ IPPROTO_IPV4 = 4,
+ IPPROTO_ST = 5,
+ IPPROTO_TCP = 6,
+ IPPROTO_CBT = 7,
+ IPPROTO_EGP = 8,
+ IPPROTO_IGP = 9,
+ IPPROTO_PUP = 12,
+ IPPROTO_UDP = 17,
+ IPPROTO_IDP = 22,
+ IPPROTO_RDP = 27,
+ IPPROTO_IPV6 = 41, // IPv6 header
+ IPPROTO_ROUTING = 43, // IPv6 Routing header
+ IPPROTO_FRAGMENT = 44, // IPv6 fragmentation header
+ IPPROTO_ESP = 50, // encapsulating security payload
+ IPPROTO_AH = 51, // authentication header
+ IPPROTO_ICMPV6 = 58, // ICMPv6
+ IPPROTO_NONE = 59, // IPv6 no next header
+ IPPROTO_DSTOPTS = 60, // IPv6 Destination options
+ IPPROTO_ND = 77,
+ IPPROTO_ICLFXBM = 78,
+ IPPROTO_PIM = 103,
+ IPPROTO_PGM = 113,
+ IPPROTO_L2TP = 115,
+ IPPROTO_SCTP = 132,
+ IPPROTO_RAW = 255,
+ IPPROTO_MAX = 256,
+ IPPROTO_RESERVED_RAW = 257,
+ IPPROTO_RESERVED_IPSEC = 258,
+ IPPROTO_RESERVED_IPSECOFFLOAD = 259,
+ IPPROTO_RESERVED_WNV = 260,
+ IPPROTO_RESERVED_MAX = 261,
+}}
+pub type PIPPROTO = *mut IPPROTO;
+pub const IPPORT_TCPMUX: USHORT = 1;
+pub const IPPORT_ECHO: USHORT = 7;
+pub const IPPORT_DISCARD: USHORT = 9;
+pub const IPPORT_SYSTAT: USHORT = 11;
+pub const IPPORT_DAYTIME: USHORT = 13;
+pub const IPPORT_NETSTAT: USHORT = 15;
+pub const IPPORT_QOTD: USHORT = 17;
+pub const IPPORT_MSP: USHORT = 18;
+pub const IPPORT_CHARGEN: USHORT = 19;
+pub const IPPORT_FTP_DATA: USHORT = 20;
+pub const IPPORT_FTP: USHORT = 21;
+pub const IPPORT_TELNET: USHORT = 23;
+pub const IPPORT_SMTP: USHORT = 25;
+pub const IPPORT_TIMESERVER: USHORT = 37;
+pub const IPPORT_NAMESERVER: USHORT = 42;
+pub const IPPORT_WHOIS: USHORT = 43;
+pub const IPPORT_MTP: USHORT = 57;
+pub const IPPORT_TFTP: USHORT = 69;
+pub const IPPORT_RJE: USHORT = 77;
+pub const IPPORT_FINGER: USHORT = 79;
+pub const IPPORT_TTYLINK: USHORT = 87;
+pub const IPPORT_SUPDUP: USHORT = 95;
+pub const IPPORT_POP3: USHORT = 110;
+pub const IPPORT_NTP: USHORT = 123;
+pub const IPPORT_EPMAP: USHORT = 135;
+pub const IPPORT_NETBIOS_NS: USHORT = 137;
+pub const IPPORT_NETBIOS_DGM: USHORT = 138;
+pub const IPPORT_NETBIOS_SSN: USHORT = 139;
+pub const IPPORT_IMAP: USHORT = 143;
+pub const IPPORT_SNMP: USHORT = 161;
+pub const IPPORT_SNMP_TRAP: USHORT = 162;
+pub const IPPORT_IMAP3: USHORT = 220;
+pub const IPPORT_LDAP: USHORT = 389;
+pub const IPPORT_HTTPS: USHORT = 443;
+pub const IPPORT_MICROSOFT_DS: USHORT = 445;
+pub const IPPORT_EXECSERVER: USHORT = 512;
+pub const IPPORT_LOGINSERVER: USHORT = 513;
+pub const IPPORT_CMDSERVER: USHORT = 514;
+pub const IPPORT_EFSSERVER: USHORT = 520;
+pub const IPPORT_BIFFUDP: USHORT = 512;
+pub const IPPORT_WHOSERVER: USHORT = 513;
+pub const IPPORT_ROUTESERVER: USHORT = 520;
+pub const IPPORT_RESERVED: USHORT = 1024;
+pub const IPPORT_REGISTERED_MIN: USHORT = IPPORT_RESERVED;
+pub const IPPORT_REGISTERED_MAX: USHORT = 0xbfff;
+pub const IPPORT_DYNAMIC_MIN: USHORT = 0xc000;
+pub const IPPORT_DYNAMIC_MAX: USHORT = 0xffff;
+#[inline]
+pub fn IN_CLASSA(i: LONG) -> bool {
+ (i & 0x80000000) == 0
+}
+pub const IN_CLASSA_NET: LONG = 0xff000000;
+pub const IN_CLASSA_NSHIFT: LONG = 24;
+pub const IN_CLASSA_HOST: LONG = 0x00ffffff;
+pub const IN_CLASSA_MAX: LONG = 128;
+#[inline]
+pub fn IN_CLASSB(i: LONG) -> bool {
+ (i as u32 & 0xc0000000) == 0x80000000
+}
+pub const IN_CLASSB_NET: LONG = 0xffff0000;
+pub const IN_CLASSB_NSHIFT: LONG = 16;
+pub const IN_CLASSB_HOST: LONG = 0x0000ffff;
+pub const IN_CLASSB_MAX: LONG = 65536;
+#[inline]
+pub fn IN_CLASSC(i: LONG) -> bool {
+ (i as u32 & 0xe0000000) == 0xc0000000
+}
+pub const IN_CLASSC_NET: LONG = 0xffffff00;
+pub const IN_CLASSC_NSHIFT: LONG = 8;
+pub const IN_CLASSC_HOST: LONG = 0x000000ff;
+#[inline]
+pub fn IN_CLASSD(i: c_long) -> bool {
+ (i as u32 & 0xf0000000) == 0xe0000000
+}
+pub const IN_CLASSD_NET: LONG = 0xf0000000;
+pub const IN_CLASSD_NSHIFT: LONG = 28;
+pub const IN_CLASSD_HOST: LONG = 0x0fffffff;
+#[inline]
+pub fn IN_MULTICAST(i: c_long) -> bool {
+ IN_CLASSD(i)
+}
+pub const INADDR_ANY: ULONG = 0x00000000;
+pub const INADDR_LOOPBACK: ULONG = 0x7f000001;
+pub const INADDR_BROADCAST: ULONG = 0xffffffff;
+pub const INADDR_NONE: ULONG = 0xffffffff;
+ENUM!{enum SCOPE_LEVEL {
+ ScopeLevelInterface = 1,
+ ScopeLevelLink = 2,
+ ScopeLevelSubnet = 3,
+ ScopeLevelAdmin = 4,
+ ScopeLevelSite = 5,
+ ScopeLevelOrganization = 8,
+ ScopeLevelGlobal = 14,
+ ScopeLevelCount = 16,
+}}
+STRUCT!{struct SCOPE_ID_u_s {
+ bitfield: ULONG,
+}}
+BITFIELD!{SCOPE_ID_u_s bitfield: ULONG [
+ Zone set_Zone[0..28],
+ Level set_Level[28..32],
+]}
+UNION!{union SCOPE_ID_u {
+ [u32; 1],
+ s s_mut: SCOPE_ID_u_s,
+ Value Value_mut: ULONG,
+}}
+STRUCT!{struct SCOPE_ID {
+ u: SCOPE_ID_u,
+}}
+pub type PSCOPE_ID = *mut SCOPE_ID;
+STRUCT!{struct SOCKADDR_IN {
+ sin_family: ADDRESS_FAMILY,
+ sin_port: USHORT,
+ sin_addr: IN_ADDR,
+ sin_zero: [CHAR; 8],
+}}
+pub type PSOCKADDR_IN = *mut SOCKADDR_IN;
+STRUCT!{struct SOCKADDR_DL {
+ sdl_family: ADDRESS_FAMILY,
+ sdl_data: [UCHAR; 8],
+ sdl_zero: [UCHAR; 4],
+}}
+pub type PSOCKADDR_DL = *mut SOCKADDR_DL;
+pub const IOCPARM_MASK: DWORD = 0x7f;
+pub const IOC_VOID: DWORD = 0x20000000;
+pub const IOC_OUT: DWORD = 0x40000000;
+pub const IOC_IN: DWORD = 0x80000000;
+pub const IOC_INOUT: DWORD = IOC_IN | IOC_OUT;
+STRUCT!{struct WSABUF {
+ len: ULONG,
+ buf: *mut CHAR,
+}}
+pub type LPWSABUF = *mut WSABUF;
+STRUCT!{struct WSAMSG {
+ name: LPSOCKADDR,
+ namelen: INT,
+ lpBuffers: LPWSABUF,
+ dwBufferCount: ULONG,
+ Control: WSABUF,
+ dwFlags: ULONG,
+}}
+pub type PWSAMSG = *mut WSAMSG;
+pub type LPWSAMSG = *mut WSAMSG;
+STRUCT!{struct WSACMSGHDR {
+ cmsg_len: SIZE_T,
+ cmsg_level: INT,
+ cmsg_type: INT,
+}}
+pub type PWSACMSGHDR = *mut WSACMSGHDR;
+pub type LPWSACMSGHDR = *mut WSACMSGHDR;
+pub type CMSGHDR = WSACMSGHDR;
+pub type PCMSGHDR = *mut WSACMSGHDR;
+pub const MSG_TRUNC: ULONG = 0x0100;
+pub const MSG_CTRUNC: ULONG = 0x0200;
+pub const MSG_BCAST: ULONG = 0x0400;
+pub const MSG_MCAST: ULONG = 0x0800;
+pub const AI_PASSIVE: c_int = 0x00000001;
+pub const AI_CANONNAME: c_int = 0x00000002;
+pub const AI_NUMERICHOST: c_int = 0x00000004;
+pub const AI_NUMERICSERV: c_int = 0x00000008;
+pub const AI_DNS_ONLY: c_int = 0x00000010;
+pub const AI_ALL: c_int = 0x00000100;
+pub const AI_ADDRCONFIG: c_int = 0x00000400;
+pub const AI_V4MAPPED: c_int = 0x00000800;
+pub const AI_NON_AUTHORITATIVE: c_int = 0x00004000;
+pub const AI_SECURE: c_int = 0x00008000;
+pub const AI_RETURN_PREFERRED_NAMES: c_int = 0x00010000;
+pub const AI_FQDN: c_int = 0x00020000;
+pub const AI_FILESERVER: c_int = 0x00040000;
+pub const AI_DISABLE_IDN_ENCODING: c_int = 0x00080000;
+pub const AI_EXTENDED: c_int = 0x80000000;
+pub const AI_RESOLUTION_HANDLE: c_int = 0x40000000;
+STRUCT!{struct ADDRINFOA {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: *mut c_char,
+ ai_addr: *mut SOCKADDR,
+ ai_next: *mut ADDRINFOA,
+}}
+pub type PADDRINFOA = *mut ADDRINFOA;
+STRUCT!{struct ADDRINFOW {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: PWSTR,
+ ai_addr: *mut SOCKADDR,
+ ai_next: *mut ADDRINFOW,
+}}
+pub type PADDRINFOW = *mut ADDRINFOW;
+STRUCT!{struct ADDRINFOEXA {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: *mut c_char,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEXA,
+}}
+pub type PADDRINFOEXA = *mut ADDRINFOEXA;
+pub type LPADDRINFOEXA = *mut ADDRINFOEXA;
+STRUCT!{struct ADDRINFOEXW {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: PWSTR,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEXW,
+}}
+pub type PADDRINFOEXW = *mut ADDRINFOEXW;
+pub type LPADDRINFOEXW = *mut ADDRINFOEXW;
+pub const ADDRINFOEX_VERSION_2: c_int = 2;
+pub const ADDRINFOEX_VERSION_3: c_int = 3;
+pub const ADDRINFOEX_VERSION_4: c_int = 4;
+STRUCT!{struct ADDRINFOEX2A {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: *mut c_char,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEX2W,
+ ai_version: c_int,
+ ai_fqdn: *mut c_char,
+}}
+pub type PADDRINFOEX2A = *mut ADDRINFOEX2A;
+pub type LPADDRINFOEX2A = *mut ADDRINFOEX2A;
+STRUCT!{struct ADDRINFOEX2W {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: PWSTR,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEX2W,
+ ai_version: c_int,
+ ai_fqdn: PWSTR,
+}}
+pub type PADDRINFOEX2W = *mut ADDRINFOEX2W;
+pub type LPADDRINFOEX2W = *mut ADDRINFOEX2W;
+STRUCT!{struct ADDRINFOEX3A {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: *mut c_char,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEX3W,
+ ai_version: c_int,
+ ai_fqdn: *mut c_char,
+ ai_interfaceindex: c_int,
+}}
+pub type PADDRINFOEX3A = *mut ADDRINFOEX3A;
+pub type LPADDRINFOEX3A = *mut ADDRINFOEX3A;
+STRUCT!{struct ADDRINFOEX3W {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: PWSTR,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEX3W,
+ ai_version: c_int,
+ ai_fqdn: PWSTR,
+ ai_interfaceindex: c_int,
+}}
+pub type PADDRINFOEX3W = *mut ADDRINFOEX3W;
+pub type LPADDRINFOEX3W = *mut ADDRINFOEX3W;
+STRUCT!{struct ADDRINFOEX4 {
+ ai_flags: c_int,
+ ai_family: c_int,
+ ai_socktype: c_int,
+ ai_protocol: c_int,
+ ai_addrlen: size_t,
+ ai_canonname: PWSTR,
+ ai_addr: *mut SOCKADDR,
+ ai_blob: *mut c_void,
+ ai_bloblen: size_t,
+ ai_provider: LPGUID,
+ ai_next: *mut ADDRINFOEX4,
+ ai_version: c_int,
+ ai_fqdn: PWSTR,
+ ai_interfaceindex: c_int,
+ ai_resolutionhandle: HANDLE,
+}}
+pub type PADDRINFOEX4 = *mut ADDRINFOEX4;
+pub type LPADDRINFOEX4 = *mut ADDRINFOEX4;
+pub const NS_ALL: DWORD = 0;
+pub const NS_SAP: DWORD = 1;
+pub const NS_NDS: DWORD = 2;
+pub const NS_PEER_BROWSE: DWORD = 3;
+pub const NS_SLP: DWORD = 5;
+pub const NS_DHCP: DWORD = 6;
+pub const NS_TCPIP_LOCAL: DWORD = 10;
+pub const NS_TCPIP_HOSTS: DWORD = 11;
+pub const NS_DNS: DWORD = 12;
+pub const NS_NETBT: DWORD = 13;
+pub const NS_WINS: DWORD = 14;
+pub const NS_NLA: DWORD = 15;
+pub const NS_BTH: DWORD = 16;
+pub const NS_NBP: DWORD = 20;
+pub const NS_MS: DWORD = 30;
+pub const NS_STDA: DWORD = 31;
+pub const NS_NTDS: DWORD = 32;
+pub const NS_EMAIL: DWORD = 37;
+pub const NS_PNRPNAME: DWORD = 38;
+pub const NS_PNRPCLOUD: DWORD = 39;
+pub const NS_X500: DWORD = 40;
+pub const NS_NIS: DWORD = 41;
+pub const NS_NISPLUS: DWORD = 42;
+pub const NS_WRQ: DWORD = 50;
+pub const NS_NETDES: DWORD = 60;
+pub const NI_NOFQDN: c_int = 0x01;
+pub const NI_NUMERICHOST: c_int = 0x02;
+pub const NI_NAMEREQD: c_int = 0x04;
+pub const NI_NUMERICSERV: c_int = 0x08;
+pub const NI_DGRAM: c_int = 0x10;
+pub const NI_MAXHOST: c_int = 1025;
+pub const NI_MAXSERV: c_int = 32;
diff --git a/third_party/rust/winapi/src/shared/ws2ipdef.rs b/third_party/rust/winapi/src/shared/ws2ipdef.rs
new file mode 100644
index 0000000000..caf7dbda3f
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/ws2ipdef.rs
@@ -0,0 +1,112 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! TCP/IP specific information for use by WinSock2 compatible applications.
+use ctypes::c_int;
+use shared::in6addr::IN6_ADDR;
+use shared::inaddr::IN_ADDR;
+use shared::minwindef::{ULONG, USHORT};
+use shared::ws2def::{ADDRESS_FAMILY, SCOPE_ID, SOCKADDR_IN};
+pub const IFF_UP: ULONG = 0x00000001;
+pub const IFF_BROADCAST: ULONG = 0x00000002;
+pub const IFF_LOOPBACK: ULONG = 0x00000004;
+pub const IFF_POINTTOPOINT: ULONG = 0x00000008;
+pub const IFF_MULTICAST: ULONG = 0x00000010;
+pub const IP_OPTIONS: c_int = 1;
+pub const IP_HDRINCL: c_int = 2;
+pub const IP_TOS: c_int = 3;
+pub const IP_TTL: c_int = 4;
+pub const IP_MULTICAST_IF: c_int = 9;
+pub const IP_MULTICAST_TTL: c_int = 10;
+pub const IP_MULTICAST_LOOP: c_int = 11;
+pub const IP_ADD_MEMBERSHIP: c_int = 12;
+pub const IP_DROP_MEMBERSHIP: c_int = 13;
+pub const IP_DONTFRAGMENT: c_int = 14;
+pub const IP_ADD_SOURCE_MEMBERSHIP: c_int = 15;
+pub const IP_DROP_SOURCE_MEMBERSHIP: c_int = 16;
+pub const IP_BLOCK_SOURCE: c_int = 17;
+pub const IP_UNBLOCK_SOURCE: c_int = 18;
+pub const IP_PKTINFO: c_int = 19;
+pub const IP_RECEIVE_BROADCAST: c_int = 22;
+pub const IP_RECVDSTADDR: c_int = 25;
+UNION!{union SOCKADDR_IN6_LH_u {
+ [u32; 1],
+ sin6_scope_id sin6_scope_id_mut: ULONG,
+ sin6_scope_struct sin6_scope_struct_mut: SCOPE_ID,
+}}
+STRUCT!{struct SOCKADDR_IN6_LH {
+ sin6_family: ADDRESS_FAMILY,
+ sin6_port: USHORT,
+ sin6_flowinfo: ULONG,
+ sin6_addr: IN6_ADDR,
+ u: SOCKADDR_IN6_LH_u,
+}}
+pub type PSOCKADDR_IN6_LH = *mut SOCKADDR_IN6_LH;
+pub type SOCKADDR_IN6 = SOCKADDR_IN6_LH;
+pub type PSOCKADDR_IN6 = *mut SOCKADDR_IN6;
+STRUCT!{struct SOCKADDR_IN6_PAIR {
+ SourceAddress: PSOCKADDR_IN6,
+ DestinationAddress: PSOCKADDR_IN6,
+}}
+pub type PSOCKADDR_IN6_PAIR = *mut SOCKADDR_IN6_PAIR;
+UNION!{union SOCKADDR_INET {
+ [u32; 7],
+ Ipv4 Ipv4_mut: SOCKADDR_IN,
+ Ipv6 Ipv6_mut: SOCKADDR_IN6,
+ si_family si_family_mut: ADDRESS_FAMILY,
+}}
+pub type PSOCKADDR_INET = *mut SOCKADDR_INET;
+STRUCT!{struct IP_MREQ {
+ imr_multiaddr: IN_ADDR,
+ imr_interface: IN_ADDR,
+}}
+pub type PIP_MREQ = *mut IP_MREQ;
+STRUCT!{struct IP_MREQ_SOURCE {
+ imr_multiaddr: IN_ADDR,
+ imr_sourceaddr: IN_ADDR,
+ imr_interface: IN_ADDR,
+}}
+pub type PIP_MREQ_SOURCE = *mut IP_MREQ_SOURCE;
+pub const IPV6_HOPOPTS: c_int = 1;
+pub const IPV6_HDRINCL: c_int = 2;
+pub const IPV6_UNICAST_HOPS: c_int = 4;
+pub const IPV6_MULTICAST_IF: c_int = 9;
+pub const IPV6_MULTICAST_HOPS: c_int = 10;
+pub const IPV6_MULTICAST_LOOP: c_int = 11;
+pub const IPV6_ADD_MEMBERSHIP: c_int = 12;
+pub const IPV6_JOIN_GROUP: c_int = IPV6_ADD_MEMBERSHIP;
+pub const IPV6_DROP_MEMBERSHIP: c_int = 13;
+pub const IPV6_LEAVE_GROUP: c_int = IPV6_DROP_MEMBERSHIP;
+pub const IPV6_DONTFRAG: c_int = 14;
+pub const IPV6_PKTINFO: c_int = 19;
+pub const IPV6_HOPLIMIT: c_int = 21;
+pub const IPV6_PROTECTION_LEVEL: c_int = 23;
+pub const IPV6_RECVIF: c_int = 24;
+pub const IPV6_RECVDSTADDR: c_int = 25;
+pub const IPV6_CHECKSUM: c_int = 26;
+pub const IPV6_V6ONLY: c_int = 27;
+pub const IPV6_IFLIST: c_int = 28;
+pub const IPV6_ADD_IFLIST: c_int = 29;
+pub const IPV6_DEL_IFLIST: c_int = 30;
+pub const IPV6_UNICAST_IF: c_int = 31;
+pub const IPV6_RTHDR: c_int = 32;
+pub const IPV6_RECVRTHDR: c_int = 38;
+pub const IPV6_TCLASS: c_int = 39;
+pub const IPV6_RECVTCLASS: c_int = 40;
+STRUCT!{struct IPV6_MREQ {
+ ipv6mr_multiaddr: IN6_ADDR,
+ ipv6mr_interface: ULONG,
+}}
+pub type PIPV6_MREQ = *mut IPV6_MREQ;
+STRUCT!{struct IN_PKTINFO {
+ ipi_addr: IN_ADDR,
+ ipi_ifindex: ULONG,
+}}
+pub type PIN_PKTINFO = *mut IN_PKTINFO;
+STRUCT!{struct IN6_PKTINFO {
+ ipi6_addr: IN6_ADDR,
+ ipi6_ifindex: ULONG,
+}}
+pub type PIN6_PKTINFO = *mut IN6_PKTINFO;
diff --git a/third_party/rust/winapi/src/shared/wtypes.rs b/third_party/rust/winapi/src/shared/wtypes.rs
new file mode 100644
index 0000000000..8b5c888110
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/wtypes.rs
@@ -0,0 +1,344 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::{__int64, c_double, c_short, c_ushort, c_void, wchar_t};
+use shared::guiddef::{CLSID, GUID};
+use shared::minwindef::{BYTE, DWORD, ULONG, USHORT, WORD};
+use shared::ntdef::{LCID, LONG, LONGLONG, ULONGLONG};
+use shared::rpcndr::byte;
+use shared::wtypesbase::{
+ BYTE_BLOB, DWORD_BLOB, FLAGGED_BYTE_BLOB, FLAGGED_WORD_BLOB, LPOLESTR, OLECHAR
+};
+use um::wingdi::LOGPALETTE;
+// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_c_ifspec;
+// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0000_v0_0_s_ifspec;
+STRUCT!{struct RemHGLOBAL {
+ fNullHGlobal: LONG,
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+STRUCT!{struct RemHMETAFILEPICT {
+ mm: LONG,
+ xExt: LONG,
+ yExt: LONG,
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+STRUCT!{struct RemHENHMETAFILE {
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+STRUCT!{struct RemHBITMAP {
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+STRUCT!{struct RemHPALETTE {
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+STRUCT!{struct RemHBRUSH {
+ cbData: ULONG,
+ data: [byte; 1],
+}}
+pub const ROTFLAGS_REGISTRATIONKEEPSALIVE: DWORD = 0x1;
+pub const ROTFLAGS_ALLOWANYCLIENT: DWORD = 0x2;
+pub const ROT_COMPARE_MAX: DWORD = 2048;
+ENUM!{enum DVASPECT {
+ DVASPECT_CONTENT = 1,
+ DVASPECT_THUMBNAIL = 2,
+ DVASPECT_ICON = 4,
+ DVASPECT_DOCPRINT = 8,
+}}
+ENUM!{enum STGC {
+ STGC_DEFAULT = 0,
+ STGC_OVERWRITE = 1,
+ STGC_ONLYIFCURRENT = 2,
+ STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
+ STGC_CONSOLIDATE = 8,
+}}
+ENUM!{enum STGMOVE {
+ STGMOVE_MOVE = 0,
+ STGMOVE_COPY = 1,
+ STGMOVE_SHALLOWCOPY = 2,
+}}
+ENUM!{enum STATFLAG {
+ STATFLAG_DEFAULT = 0,
+ STATFLAG_NONAME = 1,
+ STATFLAG_NOOPEN = 2,
+}}
+pub type HCONTEXT = *mut c_void;
+pub const WDT_INPROC_CALL: ULONG = 0x48746457;
+pub const WDT_REMOTE_CALL: ULONG = 0x52746457;
+pub const WDT_INPROC64_CALL: ULONG = 0x50746457;
+UNION!{union userCLIPFORMAT_u {
+ [usize; 1],
+ dwValue dwValue_mut: DWORD,
+ pwszName pwszName_mut: *mut wchar_t,
+}}
+STRUCT!{struct userCLIPFORMAT {
+ fContext: LONG,
+ u: userCLIPFORMAT_u,
+}}
+pub type wireCLIPFORMAT = *mut userCLIPFORMAT;
+pub type CLIPFORMAT = WORD;
+UNION!{union GDI_NONREMOTE_u {
+ [usize; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut DWORD_BLOB,
+}}
+STRUCT!{struct GDI_NONREMOTE {
+ fContext: LONG,
+ u: GDI_NONREMOTE_u,
+}}
+UNION!{union userHGLOBAL_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut FLAGGED_BYTE_BLOB,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHGLOBAL {
+ fContext: LONG,
+ u: userHGLOBAL_u,
+}}
+pub type wireHGLOBAL = *mut userHGLOBAL;
+UNION!{union userHMETAFILE_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut BYTE_BLOB,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHMETAFILE {
+ fContext: LONG,
+ u: userHMETAFILE_u,
+}}
+STRUCT!{struct remoteMETAFILEPICT {
+ mm: LONG,
+ xExt: LONG,
+ yExt: LONG,
+ hMF: *mut userHMETAFILE,
+}}
+UNION!{union userHMETAFILEPICT_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut remoteMETAFILEPICT,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHMETAFILEPICT {
+ fContext: LONG,
+ u: userHMETAFILEPICT_u,
+}}
+UNION!{union userHENHMETAFILE_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut BYTE_BLOB,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHENHMETAFILE {
+ fContext: LONG,
+ u: userHENHMETAFILE_u,
+}}
+STRUCT!{struct userBITMAP {
+ bmType: LONG,
+ bmWidth: LONG,
+ bmHeight: LONG,
+ bmWidthBytes: LONG,
+ bmPlanes: WORD,
+ bmBitsPixel: WORD,
+ cbSize: ULONG,
+ pBuffer: [byte; 1],
+}}
+UNION!{union userHBITMAP_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut userBITMAP,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHBITMAP {
+ fContext: LONG,
+ u: userHBITMAP_u,
+}}
+UNION!{union userHPALETTE_u {
+ [u64; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: *mut LOGPALETTE,
+ hInproc64 hInproc64_mut: __int64,
+}}
+STRUCT!{struct userHPALETTE {
+ fContext: LONG,
+ u: userHPALETTE_u,
+}}
+UNION!{union RemotableHandle_u {
+ [u32; 1],
+ hInproc hInproc_mut: LONG,
+ hRemote hRemote_mut: LONG,
+}}
+STRUCT!{struct RemotableHandle {
+ fContext: LONG,
+ u: RemotableHandle_u,
+}}
+pub type wireHWND = *mut RemotableHandle;
+pub type wireHMENU = *mut RemotableHandle;
+pub type wireHACCEL = *mut RemotableHandle;
+pub type wireHBRUSH = *mut RemotableHandle;
+pub type wireHFONT = *mut RemotableHandle;
+pub type wireHDC = *mut RemotableHandle;
+pub type wireHICON = *mut RemotableHandle;
+pub type wireHRGN = *mut RemotableHandle;
+pub type wireHMONITOR = *mut RemotableHandle;
+pub type wireHBITMAP = *mut userHBITMAP;
+pub type wireHPALETTE = *mut userHPALETTE;
+pub type wireHENHMETAFILE = *mut userHENHMETAFILE;
+pub type wireHMETAFILE = *mut userHMETAFILE;
+pub type wireHMETAFILEPICT = *mut userHMETAFILEPICT;
+pub type HMETAFILEPICT = *mut c_void;
+// extern RPC_IF_HANDLE IWinTypes_v0_1_c_ifspec;
+// extern RPC_IF_HANDLE IWinTypes_v0_1_s_ifspec;
+pub type DATE = c_double;
+STRUCT!{struct CY {
+ int64: LONGLONG,
+}}
+pub type LPCY = *mut CY;
+STRUCT!{struct DECIMAL {
+ wReserved: USHORT,
+ scale: BYTE,
+ sign: BYTE,
+ Hi32: ULONG,
+ Lo64: ULONGLONG,
+}}
+pub const DECIMAL_NEG: BYTE = 0x80;
+#[inline]
+pub fn DECIMAL_SETZERO(dec: &mut DECIMAL) {
+ dec.Lo64 = 0;
+ dec.Hi32 = 0;
+ dec.scale = 0;
+ dec.sign = 0;
+}
+pub type LPDECIMAL = *mut DECIMAL;
+pub type wireBSTR = *mut FLAGGED_WORD_BLOB;
+pub type BSTR = *mut OLECHAR;
+pub type LPBSTR = *mut BSTR;
+pub type VARIANT_BOOL = c_short;
+STRUCT!{struct BSTRBLOB {
+ cbSize: ULONG,
+ pData: *mut BYTE,
+}}
+pub type LPBSTRBLOB = *mut BSTRBLOB;
+pub const VARIANT_TRUE: VARIANT_BOOL = -1;
+pub const VARIANT_FALSE: VARIANT_BOOL = 0;
+STRUCT!{struct CLIPDATA {
+ cbSize: ULONG,
+ ulClipFmt: LONG,
+ pClipData: *mut BYTE,
+}}
+#[inline]
+pub fn CBPCLIPDATA(clipdata: CLIPDATA) -> ULONG {
+ clipdata.cbSize - 4
+}
+pub type VARTYPE = c_ushort;
+ENUM!{enum VARENUM {
+ VT_EMPTY = 0,
+ VT_NULL = 1,
+ VT_I2 = 2,
+ VT_I4 = 3,
+ VT_R4 = 4,
+ VT_R8 = 5,
+ VT_CY = 6,
+ VT_DATE = 7,
+ VT_BSTR = 8,
+ VT_DISPATCH = 9,
+ VT_ERROR = 10,
+ VT_BOOL = 11,
+ VT_VARIANT = 12,
+ VT_UNKNOWN = 13,
+ VT_DECIMAL = 14,
+ VT_I1 = 16,
+ VT_UI1 = 17,
+ VT_UI2 = 18,
+ VT_UI4 = 19,
+ VT_I8 = 20,
+ VT_UI8 = 21,
+ VT_INT = 22,
+ VT_UINT = 23,
+ VT_VOID = 24,
+ VT_HRESULT = 25,
+ VT_PTR = 26,
+ VT_SAFEARRAY = 27,
+ VT_CARRAY = 28,
+ VT_USERDEFINED = 29,
+ VT_LPSTR = 30,
+ VT_LPWSTR = 31,
+ VT_RECORD = 36,
+ VT_INT_PTR = 37,
+ VT_UINT_PTR = 38,
+ VT_FILETIME = 64,
+ VT_BLOB = 65,
+ VT_STREAM = 66,
+ VT_STORAGE = 67,
+ VT_STREAMED_OBJECT = 68,
+ VT_STORED_OBJECT = 69,
+ VT_BLOB_OBJECT = 70,
+ VT_CF = 71,
+ VT_CLSID = 72,
+ VT_VERSIONED_STREAM = 73,
+ VT_BSTR_BLOB = 0xfff,
+ VT_VECTOR = 0x1000,
+ VT_ARRAY = 0x2000,
+ VT_BYREF = 0x4000,
+ VT_RESERVED = 0x8000,
+ VT_ILLEGAL = 0xffff,
+ VT_ILLEGALMASKED = 0xfff,
+ VT_TYPEMASK = 0xfff,
+}}
+pub type PROPID = ULONG;
+STRUCT!{struct PROPERTYKEY {
+ fmtid: GUID,
+ pid: DWORD,
+}}
+STRUCT!{struct CSPLATFORM {
+ dwPlatformId: DWORD,
+ dwVersionHi: DWORD,
+ dwVersionLo: DWORD,
+ dwProcessorArch: DWORD,
+}}
+STRUCT!{struct QUERYCONTEXT {
+ dwContext: DWORD,
+ Platform: CSPLATFORM,
+ Locale: LCID,
+ dwVersionHi: DWORD,
+ dwVersionLo: DWORD,
+}}
+ENUM!{enum TYSPEC {
+ TYSPEC_CLSID,
+ TYSPEC_FILEEXT,
+ TYSPEC_MIMETYPE,
+ TYSPEC_FILENAME,
+ TYSPEC_PROGID,
+ TYSPEC_PACKAGENAME,
+ TYSPEC_OBJECTID,
+}}
+STRUCT!{struct uCLSSPEC_ByName {
+ pPackageName: LPOLESTR,
+ PolicyId: GUID,
+}}
+STRUCT!{struct uCLSSPEC_ByObjectId {
+ ObjectId: GUID,
+ PolicyId: GUID,
+}}
+UNION!{union uCLSSPEC_u {
+ [u32; 8] [u64; 4],
+ clsid clsid_mut: CLSID,
+ pFileExt pFileExt_mut: LPOLESTR,
+ pMimeType pMimeType_mut: LPOLESTR,
+ pProgId pProgId_mut: LPOLESTR,
+ pFileName pFileName_mut: LPOLESTR,
+ ByName ByName_mut: uCLSSPEC_ByName,
+ ByObjectId ByObjectId_mut: uCLSSPEC_ByObjectId,
+}}
+STRUCT!{struct uCLSSPEC {
+ tyspec: DWORD,
+ u: uCLSSPEC_u,
+}}
+// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_c_ifspec;
+// extern RPC_IF_HANDLE __MIDL_itf_wtypes_0000_0001_v0_0_s_ifspec;
diff --git a/third_party/rust/winapi/src/shared/wtypesbase.rs b/third_party/rust/winapi/src/shared/wtypesbase.rs
new file mode 100644
index 0000000000..e8ca7ee081
--- /dev/null
+++ b/third_party/rust/winapi/src/shared/wtypesbase.rs
@@ -0,0 +1,161 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+use ctypes::{c_double, c_short, c_uchar, c_ushort};
+use shared::minwindef::{BYTE, DWORD};
+use shared::rpcndr::{boolean, byte, hyper};
+use um::winnt::{LONG, LPWSTR, WCHAR};
+pub type OLECHAR = WCHAR;
+pub type LPOLESTR = *mut OLECHAR;
+pub type LPCOLESTR = *const OLECHAR;
+pub type UCHAR = c_uchar;
+pub type SHORT = c_short;
+pub type USHORT = c_ushort;
+pub type ULONG = DWORD;
+pub type DOUBLE = c_double;
+STRUCT!{struct COAUTHIDENTITY {
+ User: *mut USHORT,
+ UserLength: ULONG,
+ Domain: *mut USHORT,
+ DomainLength: ULONG,
+ Password: *mut USHORT,
+ PasswordLength: ULONG,
+ Flags: ULONG,
+}}
+STRUCT!{struct COAUTHINFO {
+ dwAuthnSvc: DWORD,
+ dwAuthzSvc: DWORD,
+ pwszServerPrincName: LPWSTR,
+ dwAuthnLevel: DWORD,
+ dwImpersonationLevel: DWORD,
+ pAuthIdentityData: *mut COAUTHIDENTITY,
+ dwCapabilities: DWORD,
+}}
+pub type SCODE = LONG;
+pub type PSCODE = *mut SCODE;
+ENUM!{enum MEMCTX {
+ MEMCTX_TASK = 1,
+ MEMCTX_SHARED = 2,
+ MEMCTX_MACSYSTEM = 3,
+ MEMCTX_UNKNOWN = -1i32 as u32,
+ MEMCTX_SAME = -2i32 as u32,
+}}
+pub const ROTREGFLAGS_ALLOWANYCLIENT: DWORD = 0x1;
+pub const APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP: DWORD = 0x1;
+pub const APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND: DWORD = 0x2;
+pub const APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY: DWORD = 0x4;
+pub const APPIDREGFLAGS_IUSERVER_UNMODIFIED_LOGON_TOKEN: DWORD = 0x8;
+pub const APPIDREGFLAGS_IUSERVER_SELF_SID_IN_LAUNCH_PERMISSION: DWORD = 0x10;
+pub const APPIDREGFLAGS_IUSERVER_ACTIVATE_IN_CLIENT_SESSION_ONLY: DWORD = 0x20;
+pub const APPIDREGFLAGS_RESERVED1: DWORD = 0x40;
+pub const APPIDREGFLAGS_RESERVED2: DWORD = 0x80;
+pub const APPIDREGFLAGS_RESERVED3: DWORD = 0x100;
+pub const APPIDREGFLAGS_RESERVED4: DWORD = 0x200;
+pub const APPIDREGFLAGS_RESERVED5: DWORD = 0x400;
+pub const APPIDREGFLAGS_RESERVED6: DWORD = 0x800;
+pub const DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES: DWORD = 0x1;
+pub const DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL: DWORD = 0x2;
+pub const DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES: DWORD = 0x4;
+pub const DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL: DWORD = 0x8;
+pub const DCOMSCM_PING_USE_MID_AUTHNSERVICE: DWORD = 0x10;
+pub const DCOMSCM_PING_DISALLOW_UNSECURE_CALL: DWORD = 0x20;
+ENUM!{enum CLSCTX {
+ CLSCTX_INPROC_SERVER = 0x1,
+ CLSCTX_INPROC_HANDLER = 0x2,
+ CLSCTX_LOCAL_SERVER = 0x4,
+ CLSCTX_INPROC_SERVER16 = 0x8,
+ CLSCTX_REMOTE_SERVER = 0x10,
+ CLSCTX_INPROC_HANDLER16 = 0x20,
+ CLSCTX_RESERVED1 = 0x40,
+ CLSCTX_RESERVED2 = 0x80,
+ CLSCTX_RESERVED3 = 0x100,
+ CLSCTX_RESERVED4 = 0x200,
+ CLSCTX_NO_CODE_DOWNLOAD = 0x400,
+ CLSCTX_RESERVED5 = 0x800,
+ CLSCTX_NO_CUSTOM_MARSHAL = 0x1000,
+ CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000,
+ CLSCTX_NO_FAILURE_LOG = 0x4000,
+ CLSCTX_DISABLE_AAA = 0x8000,
+ CLSCTX_ENABLE_AAA = 0x10000,
+ CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000,
+ CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000,
+ CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000,
+ CLSCTX_ENABLE_CLOAKING = 0x100000,
+ CLSCTX_APPCONTAINER = 0x400000,
+ CLSCTX_ACTIVATE_AAA_AS_IU = 0x800000,
+ CLSCTX_PS_DLL = 0x80000000,
+}}
+pub const CLSCTX_VALID_MASK: CLSCTX = CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER
+ | CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER16 | CLSCTX_REMOTE_SERVER
+ | CLSCTX_NO_CODE_DOWNLOAD | CLSCTX_NO_CUSTOM_MARSHAL | CLSCTX_ENABLE_CODE_DOWNLOAD
+ | CLSCTX_NO_FAILURE_LOG | CLSCTX_DISABLE_AAA | CLSCTX_ENABLE_AAA | CLSCTX_FROM_DEFAULT_CONTEXT
+ | CLSCTX_ACTIVATE_32_BIT_SERVER | CLSCTX_ACTIVATE_64_BIT_SERVER | CLSCTX_ENABLE_CLOAKING
+ | CLSCTX_APPCONTAINER | CLSCTX_ACTIVATE_AAA_AS_IU | CLSCTX_PS_DLL;
+ENUM!{enum MSHLFLAGS {
+ MSHLFLAGS_NORMAL = 0,
+ MSHLFLAGS_TABLESTRONG = 1,
+ MSHLFLAGS_TABLEWEAK = 2,
+ MSHLFLAGS_NOPING = 4,
+ MSHLFLAGS_RESERVED1 = 8,
+ MSHLFLAGS_RESERVED2 = 16,
+ MSHLFLAGS_RESERVED3 = 32,
+ MSHLFLAGS_RESERVED4 = 64,
+}}
+ENUM!{enum MSHCTX {
+ MSHCTX_LOCAL = 0,
+ MSHCTX_NOSHAREDMEM = 1,
+ MSHCTX_DIFFERENTMACHINE = 2,
+ MSHCTX_INPROC = 3,
+ MSHCTX_CROSSCTX = 4,
+}}
+STRUCT!{struct BYTE_BLOB {
+ clSize: ULONG,
+ abData: [byte; 1],
+}}
+pub type UP_BYTE_BLOB = *mut BYTE_BLOB;
+STRUCT!{struct WORD_BLOB {
+ clSize: ULONG,
+ asData: [c_ushort; 1],
+}}
+pub type UP_WORD_BLOB = *mut WORD_BLOB;
+STRUCT!{struct DWORD_BLOB {
+ clSize: ULONG,
+ alData: [ULONG; 1],
+}}
+pub type UP_DWORD_BLOB = *mut DWORD_BLOB;
+STRUCT!{struct FLAGGED_BYTE_BLOB {
+ fFlags: ULONG,
+ clSize: ULONG,
+ abData: [byte; 1],
+}}
+pub type UP_FLAGGED_BYTE_BLOB = *mut FLAGGED_BYTE_BLOB;
+STRUCT!{struct FLAGGED_WORD_BLOB {
+ fFlags: ULONG,
+ clSize: ULONG,
+ alData: [ULONG; 1],
+}}
+pub type UP_FLAGGED_WORD_BLOB = *mut FLAGGED_WORD_BLOB;
+STRUCT!{struct BYTE_SIZEDARR {
+ clSize: ULONG,
+ pData: *mut byte,
+}}
+STRUCT!{struct WORD_SIZEDARR {
+ clSize: ULONG,
+ pData: *mut c_ushort,
+}}
+STRUCT!{struct DWORD_SIZEDARR {
+ clSize: ULONG,
+ pData: *mut ULONG,
+}}
+STRUCT!{struct HYPER_SIZEDARR {
+ clSize: ULONG,
+ pData: *mut hyper,
+}}
+pub type BOOLEAN = boolean;
+STRUCT!{struct BLOB {
+ cbSize: ULONG,
+ pBlobData: *mut BYTE,
+}}
+pub type LPBLOB = *mut BLOB;