1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! common Configuration Manager definitions for both user mode and kernel mode code
7 use shared::minwindef::{DWORD, ULONG};
8 ENUM!{enum PNP_VETO_TYPE {
9     PNP_VetoTypeUnknown,
10     PNP_VetoLegacyDevice,
11     PNP_VetoPendingClose,
12     PNP_VetoWindowsApp,
13     PNP_VetoWindowsService,
14     PNP_VetoOutstandingOpen,
15     PNP_VetoDevice,
16     PNP_VetoDriver,
17     PNP_VetoIllegalDeviceRequest,
18     PNP_VetoInsufficientPower,
19     PNP_VetoNonDisableable,
20     PNP_VetoLegacyDriver,
21     PNP_VetoInsufficientRights,
22 }}
23 pub type PPNP_VETO_TYPE = *mut PNP_VETO_TYPE;
24 pub const CM_PROB_NOT_CONFIGURED: DWORD = 0x00000001;
25 pub const CM_PROB_DEVLOADER_FAILED: DWORD = 0x00000002;
26 pub const CM_PROB_OUT_OF_MEMORY: DWORD = 0x00000003;
27 pub const CM_PROB_ENTRY_IS_WRONG_TYPE: DWORD = 0x00000004;
28 pub const CM_PROB_LACKED_ARBITRATOR: DWORD = 0x00000005;
29 pub const CM_PROB_BOOT_CONFIG_CONFLICT: DWORD = 0x00000006;
30 pub const CM_PROB_FAILED_FILTER: DWORD = 0x00000007;
31 pub const CM_PROB_DEVLOADER_NOT_FOUND: DWORD = 0x00000008;
32 pub const CM_PROB_INVALID_DATA: DWORD = 0x00000009;
33 pub const CM_PROB_FAILED_START: DWORD = 0x0000000A;
34 pub const CM_PROB_LIAR: DWORD = 0x0000000B;
35 pub const CM_PROB_NORMAL_CONFLICT: DWORD = 0x0000000C;
36 pub const CM_PROB_NOT_VERIFIED: DWORD = 0x0000000D;
37 pub const CM_PROB_NEED_RESTART: DWORD = 0x0000000E;
38 pub const CM_PROB_REENUMERATION: DWORD = 0x0000000F;
39 pub const CM_PROB_PARTIAL_LOG_CONF: DWORD = 0x00000010;
40 pub const CM_PROB_UNKNOWN_RESOURCE: DWORD = 0x00000011;
41 pub const CM_PROB_REINSTALL: DWORD = 0x00000012;
42 pub const CM_PROB_REGISTRY: DWORD = 0x00000013;
43 pub const CM_PROB_VXDLDR: DWORD = 0x00000014;
44 pub const CM_PROB_WILL_BE_REMOVED: DWORD = 0x00000015;
45 pub const CM_PROB_DISABLED: DWORD = 0x00000016;
46 pub const CM_PROB_DEVLOADER_NOT_READY: DWORD = 0x00000017;
47 pub const CM_PROB_DEVICE_NOT_THERE: DWORD = 0x00000018;
48 pub const CM_PROB_MOVED: DWORD = 0x00000019;
49 pub const CM_PROB_TOO_EARLY: DWORD = 0x0000001A;
50 pub const CM_PROB_NO_VALID_LOG_CONF: DWORD = 0x0000001B;
51 pub const CM_PROB_FAILED_INSTALL: DWORD = 0x0000001C;
52 pub const CM_PROB_HARDWARE_DISABLED: DWORD = 0x0000001D;
53 pub const CM_PROB_CANT_SHARE_IRQ: DWORD = 0x0000001E;
54 pub const CM_PROB_FAILED_ADD: DWORD = 0x0000001F;
55 pub const CM_PROB_DISABLED_SERVICE: DWORD = 0x00000020;
56 pub const CM_PROB_TRANSLATION_FAILED: DWORD = 0x00000021;
57 pub const CM_PROB_NO_SOFTCONFIG: DWORD = 0x00000022;
58 pub const CM_PROB_BIOS_TABLE: DWORD = 0x00000023;
59 pub const CM_PROB_IRQ_TRANSLATION_FAILED: DWORD = 0x00000024;
60 pub const CM_PROB_FAILED_DRIVER_ENTRY: DWORD = 0x00000025;
61 pub const CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD: DWORD = 0x00000026;
62 pub const CM_PROB_DRIVER_FAILED_LOAD: DWORD = 0x00000027;
63 pub const CM_PROB_DRIVER_SERVICE_KEY_INVALID: DWORD = 0x00000028;
64 pub const CM_PROB_LEGACY_SERVICE_NO_DEVICES: DWORD = 0x00000029;
65 pub const CM_PROB_DUPLICATE_DEVICE: DWORD = 0x0000002A;
66 pub const CM_PROB_FAILED_POST_START: DWORD = 0x0000002B;
67 pub const CM_PROB_HALTED: DWORD = 0x0000002C;
68 pub const CM_PROB_PHANTOM: DWORD = 0x0000002D;
69 pub const CM_PROB_SYSTEM_SHUTDOWN: DWORD = 0x0000002E;
70 pub const CM_PROB_HELD_FOR_EJECT: DWORD = 0x0000002F;
71 pub const CM_PROB_DRIVER_BLOCKED: DWORD = 0x00000030;
72 pub const CM_PROB_REGISTRY_TOO_LARGE: DWORD = 0x00000031;
73 pub const CM_PROB_SETPROPERTIES_FAILED: DWORD = 0x00000032;
74 pub const CM_PROB_WAITING_ON_DEPENDENCY: DWORD = 0x00000033;
75 pub const CM_PROB_UNSIGNED_DRIVER: DWORD = 0x00000034;
76 pub const CM_PROB_USED_BY_DEBUGGER: DWORD = 0x00000035;
77 pub const NUM_CM_PROB_V1: DWORD = 0x00000025;
78 pub const NUM_CM_PROB_V2: DWORD = 0x00000032;
79 pub const NUM_CM_PROB_V3: DWORD = 0x00000033;
80 pub const NUM_CM_PROB_V4: DWORD = 0x00000034;
81 pub const NUM_CM_PROB_V5: DWORD = 0x00000035;
82 pub const NUM_CM_PROB_V6: DWORD = 0x00000036;
83 pub const DN_ROOT_ENUMERATED: DWORD = 0x00000001;
84 pub const DN_DRIVER_LOADED: DWORD = 0x00000002;
85 pub const DN_ENUM_LOADED: DWORD = 0x00000004;
86 pub const DN_STARTED: DWORD = 0x00000008;
87 pub const DN_MANUAL: DWORD = 0x00000010;
88 pub const DN_NEED_TO_ENUM: DWORD = 0x00000020;
89 pub const DN_NOT_FIRST_TIME: DWORD = 0x00000040;
90 pub const DN_HARDWARE_ENUM: DWORD = 0x00000080;
91 pub const DN_LIAR: DWORD = 0x00000100;
92 pub const DN_HAS_MARK: DWORD = 0x00000200;
93 pub const DN_HAS_PROBLEM: DWORD = 0x00000400;
94 pub const DN_FILTERED: DWORD = 0x00000800;
95 pub const DN_MOVED: DWORD = 0x00001000;
96 pub const DN_DISABLEABLE: DWORD = 0x00002000;
97 pub const DN_REMOVABLE: DWORD = 0x00004000;
98 pub const DN_PRIVATE_PROBLEM: DWORD = 0x00008000;
99 pub const DN_MF_PARENT: DWORD = 0x00010000;
100 pub const DN_MF_CHILD: DWORD = 0x00020000;
101 pub const DN_WILL_BE_REMOVED: DWORD = 0x00040000;
102 pub const DN_NOT_FIRST_TIMEE: DWORD = 0x00080000;
103 pub const DN_STOP_FREE_RES: DWORD = 0x00100000;
104 pub const DN_REBAL_CANDIDATE: DWORD = 0x00200000;
105 pub const DN_BAD_PARTIAL: DWORD = 0x00400000;
106 pub const DN_NT_ENUMERATOR: DWORD = 0x00800000;
107 pub const DN_NT_DRIVER: DWORD = 0x01000000;
108 pub const DN_NEEDS_LOCKING: DWORD = 0x02000000;
109 pub const DN_ARM_WAKEUP: DWORD = 0x04000000;
110 pub const DN_APM_ENUMERATOR: DWORD = 0x08000000;
111 pub const DN_APM_DRIVER: DWORD = 0x10000000;
112 pub const DN_SILENT_INSTALL: DWORD = 0x20000000;
113 pub const DN_NO_SHOW_IN_DM: DWORD = 0x40000000;
114 pub const DN_BOOT_LOG_PROB: DWORD = 0x80000000;
115 pub const DN_NEED_RESTART: DWORD = DN_LIAR;
116 pub const DN_DRIVER_BLOCKED: DWORD = DN_NOT_FIRST_TIME;
117 pub const DN_LEGACY_DRIVER: DWORD = DN_MOVED;
118 pub const DN_CHILD_WITH_INVALID_ID: DWORD = DN_HAS_MARK;
119 pub const DN_DEVICE_DISCONNECTED: DWORD = DN_NEEDS_LOCKING;
120 pub const DN_CHANGEABLE_FLAGS: DWORD = DN_NOT_FIRST_TIME + DN_HARDWARE_ENUM + DN_HAS_MARK
121     + DN_DISABLEABLE + DN_REMOVABLE + DN_MF_CHILD + DN_MF_PARENT + DN_NOT_FIRST_TIMEE
122     + DN_STOP_FREE_RES + DN_REBAL_CANDIDATE + DN_NT_ENUMERATOR + DN_NT_DRIVER + DN_SILENT_INSTALL
123     + DN_NO_SHOW_IN_DM;
124 pub const LCPRI_FORCECONFIG: ULONG = 0x00000000;
125 pub const LCPRI_BOOTCONFIG: ULONG = 0x00000001;
126 pub const LCPRI_DESIRED: ULONG = 0x00002000;
127 pub const LCPRI_NORMAL: ULONG = 0x00003000;
128 pub const LCPRI_LASTBESTCONFIG: ULONG = 0x00003FFF;
129 pub const LCPRI_SUBOPTIMAL: ULONG = 0x00005000;
130 pub const LCPRI_LASTSOFTCONFIG: ULONG = 0x00007FFF;
131 pub const LCPRI_RESTART: ULONG = 0x00008000;
132 pub const LCPRI_REBOOT: ULONG = 0x00009000;
133 pub const LCPRI_POWEROFF: ULONG = 0x0000A000;
134 pub const LCPRI_HARDRECONFIG: ULONG = 0x0000C000;
135 pub const LCPRI_HARDWIRED: ULONG = 0x0000E000;
136 pub const LCPRI_IMPOSSIBLE: ULONG = 0x0000F000;
137 pub const LCPRI_DISABLED: ULONG = 0x0000FFFF;
138 pub const MAX_LCPRI: ULONG = 0x0000FFFF;
139