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