1 // Copyright © 2015, skdltmxn 2 // Licensed under the MIT License <LICENSE.md> 3 //! Defines property types and keys for the Plug and Play Device Property API 4 pub type DEVPROPTYPE = ::ULONG; 5 pub type PDEVPROPTYPE = *mut ::ULONG; 6 pub const DEVPROP_TYPEMOD_ARRAY: DEVPROPTYPE = 0x00001000; 7 pub const DEVPROP_TYPEMOD_LIST: DEVPROPTYPE = 0x00002000; 8 pub const DEVPROP_TYPE_EMPTY: DEVPROPTYPE = 0x00000000; 9 pub const DEVPROP_TYPE_NULL: DEVPROPTYPE = 0x00000001; 10 pub const DEVPROP_TYPE_SBYTE: DEVPROPTYPE = 0x00000002; 11 pub const DEVPROP_TYPE_BYTE: DEVPROPTYPE = 0x00000003; 12 pub const DEVPROP_TYPE_INT16: DEVPROPTYPE = 0x00000004; 13 pub const DEVPROP_TYPE_UINT16: DEVPROPTYPE = 0x00000005; 14 pub const DEVPROP_TYPE_INT32: DEVPROPTYPE = 0x00000006; 15 pub const DEVPROP_TYPE_UINT32: DEVPROPTYPE = 0x00000007; 16 pub const DEVPROP_TYPE_INT64: DEVPROPTYPE = 0x00000008; 17 pub const DEVPROP_TYPE_UINT64: DEVPROPTYPE = 0x00000009; 18 pub const DEVPROP_TYPE_FLOAT: DEVPROPTYPE = 0x0000000A; 19 pub const DEVPROP_TYPE_DOUBLE: DEVPROPTYPE = 0x0000000B; 20 pub const DEVPROP_TYPE_DECIMAL: DEVPROPTYPE = 0x0000000C; 21 pub const DEVPROP_TYPE_GUID: DEVPROPTYPE = 0x0000000D; 22 pub const DEVPROP_TYPE_CURRENCY: DEVPROPTYPE = 0x0000000E; 23 pub const DEVPROP_TYPE_DATE: DEVPROPTYPE = 0x0000000F; 24 pub const DEVPROP_TYPE_FILETIME: DEVPROPTYPE = 0x00000010; 25 pub const DEVPROP_TYPE_BOOLEAN: DEVPROPTYPE = 0x00000011; 26 pub const DEVPROP_TYPE_STRING: DEVPROPTYPE = 0x00000012; 27 pub const DEVPROP_TYPE_STRING_LIST: DEVPROPTYPE = DEVPROP_TYPE_STRING | DEVPROP_TYPEMOD_LIST; 28 pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR: DEVPROPTYPE = 0x00000013; 29 pub const DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING: DEVPROPTYPE = 0x00000014; 30 pub const DEVPROP_TYPE_DEVPROPKEY: DEVPROPTYPE = 0x00000015; 31 pub const DEVPROP_TYPE_DEVPROPTYPE: DEVPROPTYPE = 0x00000016; 32 pub const DEVPROP_TYPE_BINARY: DEVPROPTYPE = DEVPROP_TYPE_BYTE | DEVPROP_TYPEMOD_ARRAY; 33 pub const DEVPROP_TYPE_ERROR: DEVPROPTYPE = 0x00000017; 34 pub const DEVPROP_TYPE_NTSTATUS: DEVPROPTYPE = 0x00000018; 35 pub const DEVPROP_TYPE_STRING_INDIRECT: DEVPROPTYPE = 0x00000019; 36 pub const MAX_DEVPROP_TYPE: DEVPROPTYPE = 0x00000019; 37 pub const MAX_DEVPROP_TYPEMOD: DEVPROPTYPE = 0x00002000; 38 pub const DEVPROP_MASK_TYPE: DEVPROPTYPE = 0x00000FFF; 39 pub const DEVPROP_MASK_TYPEMOD: DEVPROPTYPE = 0x0000F000; 40 pub type DEVPROP_BOOLEAN = ::CHAR; 41 pub type PDEVPROP_BOOLEAN = *mut ::CHAR; 42 pub const DEVPROP_TRUE: DEVPROP_BOOLEAN = -1; 43 pub const DEVPROP_FALSE: DEVPROP_BOOLEAN = 0; 44 pub type DEVPROPGUID = ::GUID; 45 pub type PDEVPROPGUID = *mut ::GUID; 46 pub type DEVPROPID = ::ULONG; 47 pub type PDEVPROPID = *mut ::ULONG; 48 STRUCT!{struct DEVPROPKEY { 49 fmtid: DEVPROPGUID, 50 pid: DEVPROPID, 51 }} 52 pub type PDEVPROPKEY = *mut DEVPROPKEY; 53 ENUM!{enum DEVPROPSTORE { 54 DEVPROP_STORE_SYSTEM, 55 DEVPROP_STORE_USER, 56 }} 57 pub type PDEVPROPSTORE = *mut DEVPROPSTORE; 58 STRUCT!{struct DEVPROPCOMPKEY { 59 Key: DEVPROPKEY, 60 Store: DEVPROPSTORE, 61 LocaleName: ::PCWSTR, 62 }} 63 pub type PDEVPROPCOMPKEY = *mut DEVPROPCOMPKEY; 64 STRUCT!{struct DEVPROPERTY { 65 CompKey: DEVPROPCOMPKEY, 66 Type: DEVPROPTYPE, 67 BufferSize: ::ULONG, 68 Buffer: ::PVOID, 69 }} 70 pub type PDEVPROPERTY = *mut DEVPROPERTY; 71 pub const DEVPROPID_FIRST_USABLE: DEVPROPID = 2; 72