1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
/*
* Copyright 2020 Gijs Vermeulen
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _CFG_INCLUDED_
#define _CFG_INCLUDED_
typedef 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,
PNP_VetoAlreadyRemoved
} PNP_VETO_TYPE, *PPNP_VETO_TYPE;
#define CM_PROB_NOT_CONFIGURED (0x00000001)
#define CM_PROB_DEVLOADER_FAILED (0x00000002)
#define CM_PROB_OUT_OF_MEMORY (0x00000003)
#define CM_PROB_ENTRY_IS_WRONG_TYPE (0x00000004)
#define CM_PROB_LACKED_ARBITRATOR (0x00000005)
#define CM_PROB_BOOT_CONFIG_CONFLICT (0x00000006)
#define CM_PROB_FAILED_FILTER (0x00000007)
#define CM_PROB_DEVLOADER_NOT_FOUND (0x00000008)
#define CM_PROB_INVALID_DATA (0x00000009)
#define CM_PROB_FAILED_START (0x0000000A)
#define CM_PROB_LIAR (0x0000000B)
#define CM_PROB_NORMAL_CONFLICT (0x0000000C)
#define CM_PROB_NOT_VERIFIED (0x0000000D)
#define CM_PROB_NEED_RESTART (0x0000000E)
#define CM_PROB_REENUMERATION (0x0000000F)
#define CM_PROB_PARTIAL_LOG_CONF (0x00000010)
#define CM_PROB_UNKNOWN_RESOURCE (0x00000011)
#define CM_PROB_REINSTALL (0x00000012)
#define CM_PROB_REGISTRY (0x00000013)
#define CM_PROB_VXDLDR (0x00000014)
#define CM_PROB_WILL_BE_REMOVED (0x00000015)
#define CM_PROB_DISABLED (0x00000016)
#define CM_PROB_DEVLOADER_NOT_READY (0x00000017)
#define CM_PROB_DEVICE_NOT_THERE (0x00000018)
#define CM_PROB_MOVED (0x00000019)
#define CM_PROB_TOO_EARLY (0x0000001A)
#define CM_PROB_NO_VALID_LOG_CONF (0x0000001B)
#define CM_PROB_FAILED_INSTALL (0x0000001C)
#define CM_PROB_HARDWARE_DISABLED (0x0000001D)
#define CM_PROB_CANT_SHARE_IRQ (0x0000001E)
#define CM_PROB_FAILED_ADD (0x0000001F)
#define CM_PROB_DISABLED_SERVICE (0x00000020)
#define CM_PROB_TRANSLATION_FAILED (0x00000021)
#define CM_PROB_NO_SOFTCONFIG (0x00000022)
#define CM_PROB_BIOS_TABLE (0x00000023)
#define CM_PROB_IRQ_TRANSLATION_FAILED (0x00000024)
#define CM_PROB_FAILED_DRIVER_ENTRY (0x00000025)
#define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD (0x00000026)
#define CM_PROB_DRIVER_FAILED_LOAD (0x00000027)
#define CM_PROB_DRIVER_SERVICE_KEY_INVALID (0x00000028)
#define CM_PROB_LEGACY_SERVICE_NO_DEVICES (0x00000029)
#define CM_PROB_DUPLICATE_DEVICE (0x0000002A)
#define CM_PROB_FAILED_POST_START (0x0000002B)
#define CM_PROB_HALTED (0x0000002C)
#define CM_PROB_PHANTOM (0x0000002D)
#define CM_PROB_SYSTEM_SHUTDOWN (0x0000002E)
#define CM_PROB_HELD_FOR_EJECT (0x0000002F)
#define CM_PROB_DRIVER_BLOCKED (0x00000030)
#define CM_PROB_REGISTRY_TOO_LARGE (0x00000031)
#define CM_PROB_SETPROPERTIES_FAILED (0x00000032)
#define CM_PROB_WAITING_ON_DEPENDENCY (0x00000033)
#define CM_PROB_UNSIGNED_DRIVER (0x00000034)
#define CM_PROB_USED_BY_DEBUGGER (0x00000035)
#define CM_PROB_DEVICE_RESET (0x00000036)
#define CM_PROB_CONSOLE_LOCKED (0x00000037)
#define CM_PROB_NEED_CLASS_CONFIG (0x00000038)
#define CM_PROB_GUEST_ASSIGNMENT_FAILED (0x00000039)
#define NUM_CM_PROB_V1 (0x00000025)
#define NUM_CM_PROB_V2 (0x00000032)
#define NUM_CM_PROB_V3 (0x00000033)
#define NUM_CM_PROB_V4 (0x00000034)
#define NUM_CM_PROB_V5 (0x00000035)
#define NUM_CM_PROB_V6 (0x00000036)
#define NUM_CM_PROB_V7 (0x00000037)
#define NUM_CM_PROB_V8 (0x00000039)
#define NUM_CM_PROB_V9 (0x0000003A)
#define NUM_CM_PROB NUM_CM_PROB_V9
#define DN_ROOT_ENUMERATED (0x00000001)
#define DN_DRIVER_LOADED (0x00000002)
#define DN_ENUM_LOADED (0x00000004)
#define DN_STARTED (0x00000008)
#define DN_MANUAL (0x00000010)
#define DN_NEED_TO_ENUM (0x00000020)
#define DN_NOT_FIRST_TIME (0x00000040)
#define DN_HARDWARE_ENUM (0x00000080)
#define DN_LIAR (0x00000100)
#define DN_HAS_MARK (0x00000200)
#define DN_HAS_PROBLEM (0x00000400)
#define DN_FILTERED (0x00000800)
#define DN_MOVED (0x00001000)
#define DN_DISABLEABLE (0x00002000)
#define DN_REMOVABLE (0x00004000)
#define DN_PRIVATE_PROBLEM (0x00008000)
#define DN_MF_PARENT (0x00010000)
#define DN_MF_CHILD (0x00020000)
#define DN_WILL_BE_REMOVED (0x00040000)
#define DN_NOT_FIRST_TIMEE 0x00080000
#define DN_STOP_FREE_RES 0x00100000
#define DN_REBAL_CANDIDATE 0x00200000
#define DN_BAD_PARTIAL 0x00400000
#define DN_NT_ENUMERATOR 0x00800000
#define DN_NT_DRIVER 0x01000000
#define DN_NEEDS_LOCKING 0x02000000
#define DN_ARM_WAKEUP 0x04000000
#define DN_APM_ENUMERATOR 0x08000000
#define DN_APM_DRIVER 0x10000000
#define DN_SILENT_INSTALL 0x20000000
#define DN_NO_SHOW_IN_DM 0x40000000
#define DN_BOOT_LOG_PROB 0x80000000
#define DN_NEED_RESTART DN_LIAR
#define DN_DRIVER_BLOCKED DN_NOT_FIRST_TIME
#define DN_LEGACY_DRIVER DN_MOVED
#define DN_CHILD_WITH_INVALID_ID DN_HAS_MARK
#define DN_DEVICE_DISCONNECTED DN_NEEDS_LOCKING
#define DN_QUERY_REMOVE_PENDING DN_MF_PARENT
#define DN_QUERY_REMOVE_ACTIVE DN_MF_CHILD
#define DN_CHANGEABLE_FLAGS (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)
#define LCPRI_FORCECONFIG (0x00000000)
#define LCPRI_BOOTCONFIG (0x00000001)
#define LCPRI_DESIRED (0x00002000)
#define LCPRI_NORMAL (0x00003000)
#define LCPRI_LASTBESTCONFIG (0x00003FFF)
#define LCPRI_SUBOPTIMAL (0x00005000)
#define LCPRI_LASTSOFTCONFIG (0x00007FFF)
#define LCPRI_RESTART (0x00008000)
#define LCPRI_REBOOT (0x00009000)
#define LCPRI_POWEROFF (0x0000A000)
#define LCPRI_HARDRECONFIG (0x0000C000)
#define LCPRI_HARDWIRED (0x0000E000)
#define LCPRI_IMPOSSIBLE (0x0000F000)
#define LCPRI_DISABLED (0x0000FFFF)
#define MAX_LCPRI (0x0000FFFF)
#define CM_DEVICE_PANEL_SIDE_UNKNOWN (0x00000000)
#define CM_DEVICE_PANEL_SIDE_TOP (0x00000001)
#define CM_DEVICE_PANEL_SIDE_BOTTOM (0x00000002)
#define CM_DEVICE_PANEL_SIDE_LEFT (0x00000003)
#define CM_DEVICE_PANEL_SIDE_RIGHT (0x00000004)
#define CM_DEVICE_PANEL_SIDE_FRONT (0x00000005)
#define CM_DEVICE_PANEL_SIDE_BACK (0x00000006)
#define CM_DEVICE_PANEL_EDGE_UNKNOWN (0x00000000)
#define CM_DEVICE_PANEL_EDGE_TOP (0x00000001)
#define CM_DEVICE_PANEL_EDGE_BOTTOM (0x00000002)
#define CM_DEVICE_PANEL_EDGE_LEFT (0x00000003)
#define CM_DEVICE_PANEL_EDGE_RIGHT (0x00000004)
#define CM_DEVICE_PANEL_SHAPE_UNKNOWN (0x00000000)
#define CM_DEVICE_PANEL_SHAPE_RECTANGLE (0x00000001)
#define CM_DEVICE_PANEL_SHAPE_OVAL (0x00000002)
#define CM_DEVICE_PANEL_ORIENTATION_HORIZONTAL (0x00000000)
#define CM_DEVICE_PANEL_ORIENTATION_VERTICAL (0x00000001)
#define CM_DEVICE_PANEL_JOINT_TYPE_UNKNOWN (0x00000000)
#define CM_DEVICE_PANEL_JOINT_TYPE_PLANAR (0x00000001)
#define CM_DEVICE_PANEL_JOINT_TYPE_HINGE (0x00000002)
#define CM_DEVICE_PANEL_JOINT_TYPE_PIVOT (0x00000003)
#define CM_DEVICE_PANEL_JOINT_TYPE_SWIVEL (0x00000004)
#endif /* _CFG_INCLUDED_ */