ReactOS 0.4.15-dev-8109-gd7be748
setupapi.h
Go to the documentation of this file.
1#ifndef _SETUPAPI_H_
2#define _SETUPAPI_H_
3
4#include <commctrl.h>
5#if defined(_WIN64)
6#include <pshpack8.h>
7#else
8#include <pshpack1.h>
9#endif
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#ifndef _SETUPAPI_
15#define WINSETUPAPI DECLSPEC_IMPORT
16#else
17#define WINSETUPAPI
18#endif
19
20#define LINE_LEN 256
21#define MAX_INF_STRING_LENGTH 4096
22#define MAX_TITLE_LEN 60
23#define MAX_INSTRUCTION_LEN 256
24#define MAX_LABEL_LEN 30
25#define MAX_SERVICE_NAME_LEN 256
26#define MAX_SUBTITLE_LEN 256
27#define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3)
28
29#define COPYFLG_WARN_IF_SKIP 0x00000001
30#define COPYFLG_NOSKIP 0x00000002
31#define COPYFLG_NOVERSIONCHECK 0x00000004
32#define COPYFLG_FORCE_FILE_IN_USE 0x00000008
33#define COPYFLG_NO_OVERWRITE 0x00000010
34#define COPYFLG_NO_VERSION_DIALOG 0x00000020
35#define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040
36#define COPYFLG_REPLACEONLY 0x00000400
37#define COPYFLG_NODECOMP 0x00000800
38#define COPYFLG_REPLACE_BOOT_FILE 0x00001000
39#define COPYFLG_NOPRUNE 0x00002000
40#define DELFLG_IN_USE 0x00000001
41#define DELFLG_IN_USE1 0x00010000
42#define DI_REMOVEDEVICE_GLOBAL 0x00000001
43#define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002
44#define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002
45#define DI_SHOWOEM 0x00000001
46#define DI_SHOWCOMPAT 0x00000002
47#define DI_SHOWCLASS 0x00000004
48#define DI_SHOWALL 0x00000007
49#define DI_NOVCP 0x00000008
50#define DI_DIDCOMPAT 0x00000010
51#define DI_DIDCLASS 0x00000020
52#define DI_AUTOASSIGNRES 0x00000040
53#define DI_NEEDRESTART 0x00000080
54#define DI_NEEDREBOOT 0x00000100
55#define DI_NOBROWSE 0x00000200
56#define DI_MULTMFGS 0x00000400
57#define DI_DISABLED 0x00000800
58#define DI_GENERALPAGE_ADDED 0x00001000
59#define DI_RESOURCEPAGE_ADDED 0x00002000
60#define DI_PROPERTIES_CHANGE 0x00004000
61#define DI_INF_IS_SORTED 0x00008000
62#define DI_ENUMSINGLEINF 0x00010000
63#define DI_DONOTCALLCONFIGMG 0x00020000
64#define DI_INSTALLDISABLED 0x00040000
65#define DI_COMPAT_FROM_CLASS 0x00080000
66#define DI_CLASSINSTALLPARAMS 0x00100000
67#define DI_NODI_DEFAULTACTION 0x00200000
68#define DI_QUIETINSTALL 0x00800000
69#define DI_NOFILECOPY 0x01000000
70#define DI_FORCECOPY 0x02000000
71#define DI_DRIVERPAGE_ADDED 0x04000000
72#define DI_USECI_SELECTSTRINGS 0x08000000
73#define DI_OVERRIDE_INFFLAGS 0x10000000
74#define DI_PROPS_NOCHANGEUSAGE 0x20000000
75#define DI_NOSELECTICONS 0x40000000
76#define DI_NOWRITE_IDS 0x80000000
77#define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001
78#define DI_FLAGSEX_AUTOSELECTRANK0 0x00000002
79#define DI_FLAGSEX_CI_FAILED 0x00000004
80#define DI_FLAGSEX_DIDINFOLIST 0x00000010
81#define DI_FLAGSEX_DIDCOMPATINFO 0x00000020
82#define DI_FLAGSEX_FILTERCLASSES 0x00000040
83#define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080
84#define DI_FLAGSEX_DEVICECHANGE 0x00000100
85#define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200
86#define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400
87#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800
88#define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000
89#define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000
90#define DI_FLAGSEX_OLDINF_IN_CLASSLIST 0x00004000
91#define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000
92#define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000
93#define DI_FLAGSEX_INET_DRIVER 0x00020000
94#define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000
95#define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000
96#define DI_FLAGSEX_BACKUPONREPLACE 0x00100000
97#define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000
98#define DI_FLAGSEX_RESERVED1 0x00400000
99#define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000
100#define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000
101#if (_SETUPAPI_VER >= 0x0501)
102#define DI_FLAGSEX_FILTERSIMILARDRIVERS 0x02000000
103#define DI_FLAGSEX_INSTALLEDDRIVER 0x04000000
104#define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE 0x08000000
105#define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH 0x10000000
106#define DI_FLAGSEX_RESTART_DEVICE_ONLY 0x20000000
107#endif
108#define DIBCI_NOINSTALLCLASS 0x00000001
109#define DIBCI_NODISPLAYCLASS 0x00000002
110#define DICD_GENERATE_ID 0x00000001
111#define DICD_INHERIT_CLASSDRVS 0x00000002
112#define DICS_ENABLE 1
113#define DICS_FLAG_GLOBAL 1
114#define DICS_DISABLE 2
115#define DICS_FLAG_CONFIGSPECIFIC 2
116#define DICS_PROPCHANGE 3
117#define DICS_START 4
118#define DICS_FLAG_CONFIGGENERAL 4
119#define DICS_STOP 5
120#define DIF_SELECTDEVICE 1
121#define DIF_INSTALLDEVICE 2
122#define DIF_ASSIGNRESOURCES 3
123#define DIF_PROPERTIES 4
124#define DIF_REMOVE 5
125#define DIF_FIRSTTIMESETUP 6
126#define DIF_FOUNDDEVICE 7
127#define DIF_SELECTCLASSDRIVERS 8
128#define DIF_VALIDATECLASSDRIVERS 9
129#define DIF_INSTALLCLASSDRIVERS 10
130#define DIF_CALCDISKSPACE 11
131#define DIF_DESTROYPRIVATEDATA 12
132#define DIF_VALIDATEDRIVER 13
133#define DIF_MOVEDEVICE 14
134#define DIF_DETECT 15
135#define DIF_INSTALLWIZARD 16
136#define DIF_DESTROYWIZARDDATA 17
137#define DIF_PROPERTYCHANGE 18
138#define DIF_ENABLECLASS 19
139#define DIF_DETECTVERIFY 20
140#define DIF_INSTALLDEVICEFILES 21
141#define DIF_UNREMOVE 22
142#define DIF_SELECTBESTCOMPATDRV 23
143#define DIF_ALLOW_INSTALL 24
144#define DIF_REGISTERDEVICE 25
145#define DIF_NEWDEVICEWIZARD_PRESELECT 26
146#define DIF_NEWDEVICEWIZARD_SELECT 27
147#define DIF_NEWDEVICEWIZARD_PREANALYZE 28
148#define DIF_NEWDEVICEWIZARD_POSTANALYZE 29
149#define DIF_NEWDEVICEWIZARD_FINISHINSTALL 30
150#define DIF_UNUSED1 31
151#define DIF_INSTALLINTERFACES 32
152#define DIF_DETECTCANCEL 33
153#define DIF_REGISTER_COINSTALLERS 34
154#define DIF_ADDPROPERTYPAGE_ADVANCED 35
155#define DIF_ADDPROPERTYPAGE_BASIC 36
156#define DIF_RESERVED1 37
157#define DIF_TROUBLESHOOTER 38
158#define DIF_POWERMESSAGEWAKE 39
159#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 40
160#define DIF_UPDATEDRIVER_UI 41
161#define DIF_FINISHINSTALL_ACTION 42
162#define DIF_RESERVED2 48
163
164#define DIGCDP_FLAG_BASIC 0x00000001
165#define DIGCDP_FLAG_ADVANCED 0x00000002
166#if (_SETUPAPI_VER >= 0x0501)
167#define DIGCDP_FLAG_REMOTE_BASIC 0x00000003
168#define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
169#endif
170#define DIGCF_DEFAULT 0x00000001
171#define DIGCF_PRESENT 0x00000002
172#define DIGCF_ALLCLASSES 0x00000004
173#define DIGCF_PROFILE 0x00000008
174#define DIGCF_DEVICEINTERFACE 0x00000010
175#define DIGCF_INTERFACEDEVICE 0x00000010
176#define DIOCR_INSTALLER 0x00000001
177#define DIOCR_INTERFACE 0x00000002
178#define DIODI_NO_ADD 0x00000001
179#define DIOD_INHERIT_CLASSDRVS 0x00000002
180#define DIOD_CANCEL_REMOVE 0x00000004
181#define DIREG_DEV 0x00000001
182#define DIREG_DRV 0x00000002
183#define DIREG_BOTH 0x00000004
184#define DIRID_ABSOLUTE -1
185#define DIRID_NULL 0
186#define DIRID_SRCPATH 1
187#define DIRID_WINDOWS 10
188#define DIRID_SYSTEM 11
189#define DIRID_DRIVERS 12
190#define DIRID_INF 17
191#define DIRID_HELP 18
192#define DIRID_FONTS 20
193#define DIRID_VIEWERS 21
194#define DIRID_COLOR 23
195#define DIRID_APPS 24
196#define DIRID_SHARED 25
197#define DIRID_BOOT 30
198#define DIRID_SYSTEM16 50
199#define DIRID_SPOOL 51
200#define DIRID_SPOOLDRIVERS 52
201#define DIRID_USERPROFILE 53
202#define DIRID_LOADER 54
203#define DIRID_PRINTPROCESSOR 55
204#define DIRID_COMMON_STARTMENU 16406
205#define DIRID_COMMON_PROGRAMS 16407
206#define DIRID_COMMON_STARTUP 16408
207#define DIRID_COMMON_DESKTOPDIRECTORY 16409
208#define DIRID_COMMON_FAVORITES 16415
209#define DIRID_COMMON_APPDATA 16419
210#define DIRID_PROGRAM_FILES 16422
211#define DIRID_SYSTEM_X86 16425
212#define DIRID_PROGRAM_FILES_X86 16426
213#define DIRID_PROGRAM_FILES_COMMON 16427
214#define DIRID_PROGRAM_FILES_COMMONX86 16428
215#define DIRID_COMMON_TEMPLATES 16429
216#define DIRID_COMMON_DOCUMENTS 16430
217#define DIRID_USER 0x8000
218#define DIRID_ABSOLUTE_16BIT 0xffff
219#define DIRID_IOSUBSYS DIRID_DRIVERS
220#define DIRID_DEFAULT DIRID_SYSTEM
221#define DMI_MASK 0x00000001
222#define DMI_BKCOLOR 0x00000002
223#define DMI_USERECT 0x00000004
224#define DN_ROOT_ENUMERATED 0x00000001
225#define DN_DRIVER_LOADED 0x00000002
226#define DN_ENUM_LOADED 0x00000004
227#define DN_STARTED 0x00000008
228#define DN_MANUAL 0x00000010
229#define DN_NEED_TO_ENUM 0x00000020
230#define DN_NOT_FIRST_TIME 0x00000040
231#define DN_HARDWARE_ENUM 0x00000080
232#define DN_LIAR 0x00000100
233#define DN_HAS_MARK 0x00000200
234#define DN_HAS_PROBLEM 0x00000400
235#define DN_FILTERED 0x00000800
236#define DN_MOVED 0x00001000
237#define DN_DISABLEABLE 0x00002000
238#define DN_REMOVABLE 0x00004000
239#define DN_PRIVATE_PROBLEM 0x00008000
240#define DN_MF_PARENT 0x00010000
241#define DN_MF_CHILD 0x00020000
242#define DN_WILL_BE_REMOVED 0x00040000
243#define DN_NOT_FIRST_TIMEE 0x00080000
244#define DN_STOP_FREE_RES 0x00100000
245#define DN_REBAL_CANDIDATE 0x00200000
246#define DN_BAD_PARTIAL 0x00400000
247#define DN_NT_ENUMERATOR 0x00800000
248#define DN_NT_DRIVER 0x01000000
249#define DN_NEEDS_LOCKING 0x02000000
250#define DN_ARM_WAKEUP 0x04000000
251#define DN_APM_ENUMERATOR 0x08000000
252#define DN_APM_DRIVER 0x10000000
253#define DN_SILENT_INSTALL 0x20000000
254#define DN_NO_SHOW_IN_DM 0x40000000
255#define DN_BOOT_LOG_PROB 0x80000000
256#define DNF_DUPDESC 0x00000001
257#define DNF_OLDDRIVER 0x00000002
258#define DNF_EXCLUDEFROMLIST 0x00000004
259#define DNF_NODRIVER 0x00000008
260#define DNF_LEGACYINF 0x00000010
261#define DNF_CLASS_DRIVER 0x00000020
262#define DNF_COMPATIBLE_DRIVER 0x00000040
263#define DNF_INET_DRIVER 0x00000080
264#define DNF_UNUSED1 0x00000100
265#define DNF_INDEXED_DRIVER 0x00000200
266#define DNF_OLD_INET_DRIVER 0x00000400
267#define DNF_BAD_DRIVER 0x00000800
268#define DNF_DUPPROVIDER 0x00001000
269#define DPROMPT_SUCCESS 0
270#define DPROMPT_CANCEL 1
271#define DPROMPT_SKIPFILE 2
272#define DPROMPT_BUFFERTOOSMALL 3
273#define DPROMPT_OUTOFMEMORY 4
274#define DRIVER_HARDWAREID_RANK 0x00000FFF
275#if (_SETUPAPI_VER >= 0x0600)
276#define DRIVER_UNTRUSTED_RANK 0x80000000
277#else
278#define DRIVER_UNTRUSTED_RANK 0x00008000
279#endif
280#define DYNAWIZ_FLAG_PAGESADDED 0x00000001
281#define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
282#define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
283#define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
284#define ENABLECLASS_QUERY 0
285#define ENABLECLASS_SUCCESS 1
286#define ENABLECLASS_FAILURE 2
287#define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
288#define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
289#define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
290#define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
291#define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
292#define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
293#define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
294#define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
295#define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
296#define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
297#define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
298#define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
299#define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
300#define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
301#define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
302#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
303#define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
304#define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
305#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
306#define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
307#define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
308#define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
309#define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
310#define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
311#define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
312#define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
313#define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
314#define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
315#define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
316#define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
317#define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
318#define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
319#define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
320#define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
321#define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
322#define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
323#define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
324#define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
325#define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
326#define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
327#define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
328#define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
329#define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
330#define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
331#define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
332#define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
333#define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
334#define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
335#define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
336#define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
337#define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
338#define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
339#define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
340#define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
341#define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
342#define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
343#define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
344#define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
345#define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
346#define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
347#define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235)
348#define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
349#define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
350#define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
351#define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
352#define ERROR_WRONG_INF_TYPE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24A)
353
354#define FILEOP_COPY 0
355#define FILEOP_ABORT 0
356#define FILE_COMPRESSION_NONE 0
357#define FILEOP_RENAME 1
358#define FILEOP_DOIT 1
359#define FILE_COMPRESSION_WINLZA 1
360#define FILEOP_DELETE 2
361#define FILEOP_SKIP 2
362#define FILE_COMPRESSION_MSZIP 2
363#define FILEOP_BACKUP 3
364#define FILE_COMPRESSION_NTCAB 3
365#define FILEOP_NEWPATH 4
366#define FILEOP_RETRY FILEOP_DOIT
367#define FLG_ADDREG_TYPE_SZ 0x00000000
368#define FLG_ADDREG_BINVALUETYPE 0x00000001
369#define FLG_ADDREG_NOCLOBBER 0x00000002
370#define FLG_ADDREG_DELVAL 0x00000004
371#define FLG_ADDREG_APPEND 0x00000008
372#define FLG_ADDREG_KEYONLY 0x00000010
373#define FLG_ADDREG_OVERWRITEONLY 0x00000020
374#if (_SETUPAPI_VER >= 0x0501)
375#define FLG_ADDREG_64BITKEY 0x00001000
376#define FLG_ADDREG_KEYONLY_COMMON 0x00002000
377#define FLG_ADDREG_32BITKEY 0x00004000
378#define FLG_ADDREG_DELREG_BIT 0x00008000
379#endif
380#define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000
381#define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000
382#define FLG_ADDREG_TYPE_BINARY (0x00000000|FLG_ADDREG_BINVALUETYPE)
383#define FLG_ADDREG_TYPE_DWORD (0x00010000|FLG_ADDREG_BINVALUETYPE)
384#define FLG_ADDREG_TYPE_NONE (0x00020000|FLG_ADDREG_BINVALUETYPE)
385#define FLG_ADDREG_TYPE_MASK (0xFFFF0000|FLG_ADDREG_BINVALUETYPE)
386#define FLG_DELREG_VALUE 0x00000000
387#if (_SETUPAPI_VER >= 0x0501)
388#define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK
389#define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ
390#define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ
391#define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ
392#define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY
393#define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD
394#define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE
395#define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY
396#define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON
397#define FLG_DELREG_32BITKEY FLG_ADDREG_32BITKEY
398#define FLG_DELREG_OPERATION_MASK 0x000000FE
399#define FLG_DELREG_MULTI_SZ_DELSTRING (0x00000002|FLG_DELREG_TYPE_MULTI_SZ|FLG_ADDREG_DELREG_BIT)
400#endif
401#define FLG_BITREG_CLEARBITS 0x00000000
402#define FLG_BITREG_SETBITS 0x00000001
403#define FLG_PROFITEM_CURRENTUSER 0x00000001
404#define FLG_PROFITEM_DELETE 0x00000002
405#define FLG_PROFITEM_GROUP 0x00000004
406#define FLG_PROFITEM_CSIDL 0x00000008
407#define FLG_REGSVR_DLLREGISTER 0x00000001
408#define FLG_REGSVR_DLLINSTALL 0x00000002
409#define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
410#define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
411#define IDD_DYNAWIZ_FIRSTPAGE 10000
412#define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
413#define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
414#define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
415#define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
416#define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
417#define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
418#define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
419#define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
420#define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
421#define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
422#define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
423#define IDF_NOBROWSE 0x00000001
424#define IDF_NOSKIP 0x00000002
425#define IDF_NODETAILS 0x00000004
426#define IDF_NOCOMPRESSED 0x00000008
427#define IDF_CHECKFIRST 0x00000100
428#define IDF_NOBEEP 0x00000200
429#define IDF_NOFOREGROUND 0x00000400
430#define IDF_WARNIFSKIP 0x00000800
431#define IDF_OEMDISK 0x80000000
432#define IDI_RESOURCEFIRST 159
433#define IDI_RESOURCE 159
434#define IDI_RESOURCELAST 161
435#define IDI_RESOURCEOVERLAYFIRST 161
436#define IDI_RESOURCEOVERLAYLAST 161
437#define IDI_CONFLICT 161
438#define IDI_PROBLEM_OVL 500
439#define IDI_DISABLED_OVL 501
440#define IDI_FORCED_OVL 502
441#define IDI_CLASSICON_OVERLAYFIRST 500
442#define IDI_CLASSICON_OVERLAYLAST 502
443#define INF_STYLE_NONE 0x00000000
444#define INF_STYLE_OLDNT 0x00000001
445#define INF_STYLE_WIN4 0x00000002
446#define INF_STYLE_CACHE_ENABLE 0x00000010
447#define INF_STYLE_CACHE_DISABLE 0x00000020
448#define INFINFO_INF_SPEC_IS_HINF 1
449#define INFINFO_INF_NAME_IS_ABSOLUTE 2
450#define INFINFO_DEFAULT_SEARCH 3
451#define INFINFO_REVERSE_DEFAULT_SEARCH 4
452#define INFINFO_INF_PATH_LIST_SEARCH 5
453#define LogSevInformation 0
454#define LogSevWarning 1
455#define LogSevError 2
456#define LogSevFatalError 3
457#define LogSevMaximum 4
458#define LogSeverity DWORD
459#define MAX_INSTALLWIZARD_DYNAPAGES 20
460#define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
461#define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
462#define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
463#define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
464#define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
465#define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
466#define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
467#define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
468#define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
469#define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
470#define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
471#define NDW_INSTALLFLAG_USERCANCEL 0x00040000
472#define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
473#define NDW_INSTALLFLAG_NEEDRESTART 0x00000080
474#define NDW_INSTALLFLAG_NEEDREBOOT 0x00000100
475#define SETDIRID_NOT_FULL_PATH 0x00000001
476#define SP_COPY_DELETESOURCE 0x0000001
477#define SP_COPY_REPLACEONLY 0x0000002
478#define SP_COPY_NEWER 0x0000004
479#define SP_COPY_NEWER_OR_SAME 0x0000004
480#define SP_COPY_NOOVERWRITE 0x0000008
481#define SP_COPY_NODECOMP 0x0000010
482#define SP_COPY_LANGUAGEAWARE 0x0000020
483#define SP_COPY_SOURCE_ABSOLUTE 0x0000040
484#define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080
485#define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100
486#define SP_COPY_FORCE_IN_USE 0x0000200
487#define SP_COPY_NOSKIP 0x0000400
488#define SP_COPY_FORCE_NOOVERWRITE 0x0001000
489#define SP_COPY_FORCE_NEWER 0x0002000
490#define SP_COPY_WARNIFSKIP 0x0004000
491#define SP_COPY_NOBROWSE 0x0008000
492#define SP_COPY_NEWER_ONLY 0x0010000
493#define SP_COPY_SOURCE_SIS_MASTER 0x0020000
494#define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000
495#define SP_COPY_REPLACE_BOOT_FILE 0x0080000
496#define SP_COPY_NOPRUNE 0x0100000
497#define SP_FLAG_CABINETCONTINUATION 0x0000800
498#define SPCRP_SECURITY 23
499#define SPCRP_SECURITY_SDS 24
500#define SPCRP_DEVTYPE 25
501#define SPCRP_EXCLUSIVE 26
502#define SPCRP_CHARACTERISTICS 27
503#define SPCRP_MAXIMUM_PROPERTY 28
504#define SPDIT_NODRIVER 0
505#define SPDIT_CLASSDRIVER 1
506#define SPDIT_COMPATDRIVER 2
507#define SPDRP_DEVICEDESC 0
508#define SPDRP_HARDWAREID 1
509#define SPDRP_COMPATIBLEIDS 2
510#define SPDRP_UNUSED0 3
511#define SPDRP_SERVICE 4
512#define SPDRP_UNUSED1 5
513#define SPDRP_UNUSED2 6
514#define SPDRP_CLASS 7
515#define SPDRP_CLASSGUID 8
516#define SPDRP_DRIVER 9
517#define SPDRP_CONFIGFLAGS 10
518#define SPDRP_MFG 11
519#define SPDRP_FRIENDLYNAME 12
520#define SPDRP_LOCATION_INFORMATION 13
521#define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME 14
522#define SPDRP_CAPABILITIES 15
523#define SPDRP_UI_NUMBER 16
524#define SPDRP_UPPERFILTERS 17
525#define SPDRP_LOWERFILTERS 18
526#define SPDRP_BUSTYPEGUID 19
527#define SPDRP_LEGACYBUSTYPE 20
528#define SPDRP_BUSNUMBER 21
529#define SPDRP_ENUMERATOR_NAME 22
530#define SPDRP_SECURITY 23
531#define SPDRP_SECURITY_SDS 24
532#define SPDRP_DEVTYPE 25
533#define SPDRP_EXCLUSIVE 26
534#define SPDRP_CHARACTERISTICS 27
535#define SPDRP_ADDRESS 28
536#define SPDRP_UI_NUMBER_DESC_FORMAT 29
537#define SPDRP_DEVICE_POWER_DATA 30
538#define SPDRP_REMOVAL_POLICY 31
539#define SPDRP_REMOVAL_POLICY_HW_DEFAULT 32
540#define SPDRP_REMOVAL_POLICY_OVERRIDE 33
541#define SPDRP_INSTALL_STATE 34
542#define SPDRP_MAXIMUM_PROPERTY 35
543#define SPDSL_IGNORE_DISK 1
544#define SPDSL_DISALLOW_NEGATIVE_ADJUST 2
545
546#define SPFILENOTIFY_STARTQUEUE 1
547#define SPFILENOTIFY_ENDQUEUE 2
548#define SPFILENOTIFY_STARTSUBQUEUE 3
549#define SPFILENOTIFY_ENDSUBQUEUE 4
550#define SPFILENOTIFY_STARTDELETE 5
551#define SPFILENOTIFY_ENDDELETE 6
552#define SPFILENOTIFY_DELETEERROR 7
553#define SPFILENOTIFY_STARTRENAME 8
554#define SPFILENOTIFY_ENDRENAME 9
555#define SPFILENOTIFY_RENAMEERROR 10
556#define SPFILENOTIFY_STARTCOPY 11
557#define SPFILENOTIFY_ENDCOPY 12
558#define SPFILENOTIFY_COPYERROR 13
559#define SPFILENOTIFY_NEEDMEDIA 14
560#define SPFILENOTIFY_QUEUESCAN 15
561#define SPFILENOTIFY_CABINETINFO 16
562#define SPFILENOTIFY_FILEINCABINET 17
563#define SPFILENOTIFY_NEEDNEWCABINET 18
564#define SPFILENOTIFY_FILEEXTRACTED 19
565#define SPFILENOTIFY_FILEOPDELAYED 20
566#define SPFILENOTIFY_STARTBACKUP 21
567#define SPFILENOTIFY_BACKUPERROR 22
568#define SPFILENOTIFY_ENDBACKUP 23
569#define SPFILENOTIFY_QUEUESCAN_EX 24
570#define SPFILENOTIFY_STARTREGISTRATION 25
571#define SPFILENOTIFY_ENDREGISTRATION 26
572#define SPFILENOTIFY_LANGMISMATCH 0x00010000
573#define SPFILENOTIFY_TARGETEXISTS 0x00020000
574#define SPFILENOTIFY_TARGETNEWER 0x00040000
575#define SPFILELOG_SYSTEMLOG 0x00000001
576#define SPFILELOG_OEMFILE 0x00000001
577#define SPFILELOG_FORCENEW 0x00000002
578#define SPFILELOG_QUERYONLY 0x00000004
579#define SPFILEQ_FILE_IN_USE 0x00000001
580#define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
581#define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
582#define SPINT_ACTIVE 0x00000001
583#define SPINT_DEFAULT 0x00000002
584#define SPINT_REMOVED 0x00000004
585#define SPID_ACTIVE 0x00000001
586#define SPID_DEFAULT 0x00000002
587#define SPID_REMOVED 0x00000004
588#define SPINST_LOGCONFIG 0x00000001
589#define SPINST_INIFILES 0x00000002
590#define SPINST_REGISTRY 0x00000004
591#define SPINST_INI2REG 0x00000008
592#define SPINST_FILES 0x00000010
593#define SPINST_BITREG 0x00000020
594#define SPINST_REGSVR 0x00000040
595#define SPINST_UNREGSVR 0x00000080
596#define SPINST_PROFILEITEMS 0x00000100
597#if (_SETUPAPI_VER >= 0x0501)
598#define SPINST_COPYINF 0x00000200
599#define SPINST_ALL 0x000003ff
600#else
601#define SPINST_ALL 0x000001ff
602#endif
603#define SPINST_SINGLESECTION 0x00010000
604#define SPINST_LOGCONFIG_IS_FORCED 0x00020000
605#define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
606#if (_SETUPAPI_VER >= 0x0501)
607#define SPINST_REGISTERCALLBACKAWARE 0x00080000
608#endif
609#define SPOST_NONE 0
610#define SPOST_PATH 1
611#define SPOST_URL 2
612#define SPOST_MAX 3
613#define SPPSR_SELECT_DEVICE_RESOURCES 1
614#define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
615#define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
616#define SPQ_SCAN_FILE_PRESENCE 0x00000001
617#define SPQ_DELAYED_COPY 0x00000001
618#define SPQ_SCAN_FILE_VALIDITY 0x00000002
619#define SPQ_SCAN_USE_CALLBACK 0x00000004
620#define SPQ_SCAN_USE_CALLBACKEX 0x00000008
621#define SPQ_SCAN_INFORM_USER 0x00000010
622#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
623#define SPRDI_FIND_DUPS 0x00000001
624
625#define SPSVCINST_TAGTOFRONT 0x00000001
626#define SPSVCINST_ASSOCSERVICE 0x00000002
627#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
628#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
629#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
630#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
631#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
632#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
633#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
634#define SPSVCINST_STOPSERVICE 0x00000200
635#define SPSVCINST_CLOBBER_SECURITY 0x00000400
636#define SPSVCINST_STARTSERVICE 0x00000800
637
638#define SPWPT_SELECTDEVICE 0x00000001
639#define SPWP_USE_DEVINFO_DATA 0x00000001
640#define SRCINFO_PATH 1
641#define SRCINFO_TAGFILE 2
642#define SRCINFO_DESCRIPTION 3
643#define SRCINFO_FLAGS 4
644#define SRCLIST_TEMPORARY 0x00000001
645#define SRCLIST_NOBROWSE 0x00000002
646#define SRCLIST_SYSTEM 0x00000010
647#define SRCLIST_USER 0x00000020
648#define SRCLIST_SYSIFADMIN 0x00000040
649#define SRCLIST_SUBDIRS 0x00000100
650#define SRCLIST_APPEND 0x00000200
651#define SRCLIST_NOSTRIPPLATFORM 0x00000400
652#define SPREG_SUCCESS 0x00000000
653#define SPREG_LOADLIBRARY 0x00000001
654#define SPREG_GETPROCADDR 0x00000002
655#define SPREG_REGSVR 0x00000003
656#define SPREG_DLLINSTALL 0x00000004
657#define SPREG_TIMEOUT 0x00000005
658#define SPREG_UNKNOWN 0xFFFFFFFF
659
660/* Flags for StringTableAddString and StringTableLookUpString */
661#define ST_CASE_SENSITIVE_COMPARE 0x00000001
662
663/* SetupUninstallOEMInf Flags values */
664#define SUOI_FORCEDELETE 0x00000001
665
666#ifndef RC_INVOKED
667typedef PVOID HINF;
673
675
676typedef enum {
684typedef struct _INFCONTEXT {
685 PVOID Inf;
688 UINT Line;
690typedef struct _SP_INF_INFORMATION {
695typedef struct _SP_INF_SIGNER_INFO_A {
701typedef struct _SP_INF_SIGNER_INFO_W {
721 union
722 {
729#if _WIN32_WINNT <= 0x0500
732#else
735#endif
746typedef struct _FILEPATHS_A {
752typedef struct _FILEPATHS_W {
758typedef struct _SOURCE_MEDIA_A {
766typedef struct _SOURCE_MEDIA_W {
774typedef struct _CABINET_INFO_A {
781typedef struct _CABINET_INFO_W {
834typedef struct _SP_DEVINFO_DATA {
846/* For backward compatability */
848
857/* For backward compatability */
862
875
911typedef struct _SP_MOVEDEV_PARAMS {
915typedef struct _SP_PROPCHANGE_PARAMS {
958
1038
1039#ifdef UNICODE
1042#else
1045#endif
1046
1047#if USE_SP_DRVINFO_DATA_V1
1051#else
1055#endif
1056
1058
1088
1089
1116
1117
1118#ifdef UNICODE
1128 *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
1142#else
1167#endif /* UNICODE */
1168
1169
1185
1204
1206UINT
1207WINAPI
1210 _In_opt_ PCSTR DialogTitle,
1211 _In_opt_ PCSTR DiskName,
1212 _In_ PCSTR PathToSource,
1213 _In_ PCSTR SourceFile,
1214 _In_opt_ PCSTR TargetPathFile,
1215 _In_ UINT Win32ErrorCode,
1217 _Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
1218 _In_ DWORD PathBufferSize,
1219 _Out_opt_ PDWORD PathRequiredSize);
1220
1222UINT
1223WINAPI
1226 _In_opt_ PCWSTR DialogTitle,
1227 _In_opt_ PCWSTR DiskName,
1228 _In_ PCWSTR PathToSource,
1229 _In_ PCWSTR SourceFile,
1230 _In_opt_ PCWSTR TargetPathFile,
1231 _In_ UINT Win32ErrorCode,
1233 _Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
1234 _In_ DWORD PathBufferSize,
1235 _Out_opt_ PDWORD PathRequiredSize);
1236
1238BOOL
1239WINAPI
1241 _In_ PCSTR SourceInfFileName,
1242 _In_opt_ PCSTR OEMSourceMediaLocation,
1243 _In_ DWORD OEMSourceMediaType,
1244 _In_ DWORD CopyStyle,
1245 _Out_writes_opt_(DestinationInfFileNameSize) PSTR DestinationInfFileName,
1246 _In_ DWORD DestinationInfFileNameSize,
1248 _Out_opt_ PSTR *DestinationInfFileNameComponent);
1249
1251BOOL
1252WINAPI
1254 _In_ PCWSTR SourceInfFileName,
1255 _In_opt_ PCWSTR OEMSourceMediaLocation,
1256 _In_ DWORD OEMSourceMediaType,
1257 _In_ DWORD CopyStyle,
1258 _Out_writes_opt_(DestinationInfFileNameSize) PWSTR DestinationInfFileName,
1259 _In_ DWORD DestinationInfFileNameSize,
1261 _Out_opt_ PWSTR *DestinationInfFileNameComponent);
1262
1273
1274_Success_(return != FALSE)
1276BOOL
1277WINAPI
1283
1284_Success_(return != FALSE)
1286BOOL
1287WINAPI
1295
1296_Success_(return != FALSE)
1298BOOL
1299WINAPI
1307
1312
1313_Success_(return != FALSE)
1315BOOL
1316WINAPI
1318 _In_ PCSTR ClassName,
1322
1323_Success_(return != FALSE)
1325BOOL
1326WINAPI
1328 _In_ PCWSTR ClassName,
1332
1333_Success_(return != FALSE)
1335BOOL
1336WINAPI
1338 _In_ PCSTR ClassName,
1344
1345_Success_(return != FALSE)
1347BOOL
1348WINAPI
1350 _In_ PCWSTR ClassName,
1356
1358BOOL
1359WINAPI
1361 _In_ CONST GUID *ClassGuid,
1362 _Out_writes_(ClassNameSize) PSTR ClassName,
1363 _In_ DWORD ClassNameSize,
1365
1367BOOL
1368WINAPI
1370 _In_ CONST GUID *ClassGuid,
1371 _Out_writes_(ClassNameSize) PWSTR ClassName,
1372 _In_ DWORD ClassNameSize,
1374
1376BOOL
1377WINAPI
1379 _In_ CONST GUID *ClassGuid,
1380 _Out_writes_(ClassNameSize) PSTR ClassName,
1381 _In_ DWORD ClassNameSize,
1385
1387BOOL
1388WINAPI
1390 _In_ CONST GUID *ClassGuid,
1391 _Out_writes_(ClassNameSize) PWSTR ClassName,
1392 _In_ DWORD ClassNameSize,
1396
1420
1422BOOL
1423WINAPI
1425 _In_ HINF InfHandle,
1426 _In_ PCSTR InfSectionName,
1427 _Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
1428 _In_ DWORD InfSectionWithExtSize,
1431
1433BOOL
1434WINAPI
1436 _In_ HINF InfHandle,
1437 _In_ PCWSTR InfSectionName,
1438 _Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
1439 _In_ DWORD InfSectionWithExtSize,
1442
1444BOOL
1445WINAPI
1447 _In_ HINF InfHandle,
1448 _In_ PCSTR InfSectionName,
1449 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
1450 _Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
1451 _In_ DWORD InfSectionWithExtSize,
1455
1457BOOL
1458WINAPI
1460 _In_ HINF InfHandle,
1461 _In_ PCWSTR InfSectionName,
1462 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
1463 _Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
1464 _In_ DWORD InfSectionWithExtSize,
1468
1470
1472BOOL
1473WINAPI
1475 _In_ CONST GUID *ClassGuid,
1476 _Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
1477 _In_ DWORD ClassDescriptionSize,
1479
1481BOOL
1482WINAPI
1484 _In_ CONST GUID *ClassGuid,
1485 _Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
1486 _In_ DWORD ClassDescriptionSize,
1488
1490BOOL
1491WINAPI
1493 _In_ CONST GUID *ClassGuid,
1494 _Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
1495 _In_ DWORD ClassDescriptionSize,
1499
1501BOOL
1502WINAPI
1504 _In_ CONST GUID *ClassGuid,
1505 _Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
1506 _In_ DWORD ClassDescriptionSize,
1510
1521
1522_Success_(return != FALSE)
1524BOOL
1525WINAPI
1532
1533_Success_(return != FALSE)
1535BOOL
1536WINAPI
1543
1544_Success_(return != FALSE)
1546BOOL
1547WINAPI
1548SetupDiGetClassRegistryPropertyA(
1549 _In_ CONST GUID *ClassGuid,
1557
1558_Success_(return != FALSE)
1560BOOL
1561WINAPI
1562SetupDiGetClassRegistryPropertyW(
1563 _In_ CONST GUID *ClassGuid,
1571
1577
1579BOOL
1580WINAPI
1584 _Out_writes_opt_(DeviceInstanceIdSize) PSTR DeviceInstanceId,
1585 _In_ DWORD DeviceInstanceIdSize,
1587
1589BOOL
1590WINAPI
1594 _Out_writes_opt_(DeviceInstanceIdSize) PWSTR DeviceInstanceId,
1595 _In_ DWORD DeviceInstanceIdSize,
1597
1599
1600_Success_(return != FALSE)
1601_At_((LPSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
1603BOOL
1604WINAPI
1607 _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
1608 _Inout_updates_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
1609 _In_ DWORD DeviceInterfaceDetailDataSize,
1612
1613_Success_(return != FALSE)
1614_At_((LPWSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
1616BOOL
1617WINAPI
1620 _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
1621 _Out_writes_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
1622 _In_ DWORD DeviceInterfaceDetailDataSize,
1625
1626_Success_(return != FALSE)
1630BOOL
1631WINAPI
1640
1641_Success_(return != FALSE)
1645BOOL
1646WINAPI
1655
1657BOOL
1658WINAPI
1662 _In_ PSP_DRVINFO_DATA_A DriverInfoData,
1663 _Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_A DriverInfoDetailData,
1664 _In_ DWORD DriverInfoDetailDataSize,
1666
1668BOOL
1669WINAPI
1673 _In_ PSP_DRVINFO_DATA_W DriverInfoData,
1674 _Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData,
1675 _In_ DWORD DriverInfoDetailDataSize,
1677
1680
1682BOOL
1683WINAPI
1685 _In_ DWORD HwProfile,
1686 _Out_writes_(FriendlyNameSize) PSTR FriendlyName,
1687 _In_ DWORD FriendlyNameSize,
1689
1691BOOL
1692WINAPI
1694 _In_ DWORD HwProfile,
1695 _Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
1696 _In_ DWORD FriendlyNameSize,
1698
1700BOOL
1701WINAPI
1703 _In_ DWORD HwProfile,
1704 _Out_writes_(FriendlyNameSize) PSTR FriendlyName,
1705 _In_ DWORD FriendlyNameSize,
1709
1711BOOL
1712WINAPI
1714 _In_ DWORD HwProfile,
1715 _Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
1716 _In_ DWORD FriendlyNameSize,
1720
1722
1723_Success_(return != FALSE)
1725BOOL
1726WINAPI
1727SetupDiGetHwProfileList(
1732
1733_Success_(return != FALSE)
1735BOOL
1736WINAPI
1737SetupDiGetHwProfileListExA(
1744
1745_Success_(return != FALSE)
1747BOOL
1748WINAPI
1749SetupDiGetHwProfileListExW(
1756
1758BOOL
1759WINAPI
1761 _In_ PCSTR InfName,
1762 _Out_ LPGUID ClassGuid,
1763 _Out_writes_(ClassNameSize) PSTR ClassName,
1764 _In_ DWORD ClassNameSize,
1766
1768BOOL
1769WINAPI
1771 _In_ PCWSTR InfName,
1772 _Out_ LPGUID ClassGuid,
1773 _Out_writes_(ClassNameSize) PWSTR ClassName,
1774 _In_ DWORD ClassNameSize,
1776
1807
1809BOOL
1810WINAPI
1816
1818BOOL
1819WINAPI
1825
1827BOOL
1828WINAPI
1830 _In_ CONST GUID *ClassGuid,
1836
1838BOOL
1839WINAPI
1841 _In_ CONST GUID *ClassGuid,
1847
1850
1852BOOL
1853WINAPI
1860
1862BOOL
1863WINAPI
1870
1888
1889_Success_(return != FALSE)
1891BOOL
1892WINAPI
1899
1903
1905BOOL
1906WINAPI
1908 _In_ PCSTR SourceFileName,
1909 _In_reads_opt_(ActualSourceFileNameBufferLen) PSTR ActualSourceFileNameBuffer,
1910 _In_ DWORD ActualSourceFileNameBufferLen,
1911 _Out_opt_ PDWORD RequiredBufferLen,
1912 _Out_ PDWORD SourceFileSize,
1913 _Out_ PDWORD TargetFileSize,
1914 _Out_ PUINT CompressionType);
1915
1917BOOL
1918WINAPI
1920 _In_ PCWSTR SourceFileName,
1921 _In_reads_opt_(ActualSourceFileNameBufferLen) PWSTR ActualSourceFileNameBuffer,
1922 _In_ DWORD ActualSourceFileNameBufferLen,
1923 _Out_opt_ PDWORD RequiredBufferLen,
1924 _Out_ PDWORD SourceFileSize,
1925 _Out_ PDWORD TargetFileSize,
1926 _Out_ PUINT CompressionType);
1927
1929BOOL
1930WINAPI
1932 _In_opt_ PCSTR DirectoryPath,
1933 _In_ DWORD InfStyle,
1937
1939BOOL
1940WINAPI
1942 _In_opt_ PCWSTR DirectoryPath,
1943 _In_ DWORD InfStyle,
1944 _Out_writes_(ReturnBufferSize) PWSTR ReturnBuffer,
1947
1948_Success_(return != FALSE)
1950BOOL
1951WINAPI
1953 _In_ LPCVOID InfSpec,
1958
1959_Success_(return != FALSE)
1961BOOL
1962WINAPI
1964 _In_ LPCVOID InfSpec,
1969
1975
1977BOOL
1978WINAPI
1981 _In_opt_ HINF InfHandle,
1982 _In_opt_ PCSTR Section,
1987
1989BOOL
1990WINAPI
1993 _In_opt_ HINF InfHandle,
1994 _In_opt_ PCWSTR Section,
1999
2001BOOL
2002WINAPI
2009
2011BOOL
2012WINAPI
2019
2021BOOL
2022WINAPI
2024 _In_ HINF InfHandle,
2025 _In_opt_ PINFCONTEXT InfContext,
2027 _Out_ PUINT SourceId,
2031
2033BOOL
2034WINAPI
2036 _In_ HINF InfHandle,
2037 _In_opt_ PINFCONTEXT InfContext,
2039 _Out_ PUINT SourceId,
2043
2046
2048BOOL
2049WINAPI
2051 _In_ HINF InfHandle,
2052 _In_ UINT SourceId,
2053 _In_ UINT InfoDesired,
2057
2059BOOL
2060WINAPI
2062 _In_ HINF InfHandle,
2063 _In_ UINT SourceId,
2064 _In_ UINT InfoDesired,
2068
2070BOOL
2071WINAPI
2078
2080BOOL
2081WINAPI
2088
2090BOOL
2091WINAPI
2093 _In_ HINF InfHandle,
2094 _In_opt_ PINFCONTEXT InfContext,
2095 _In_opt_ PCSTR Section,
2099
2101BOOL
2102WINAPI
2104 _In_ HINF InfHandle,
2105 _In_opt_ PINFCONTEXT InfContext,
2106 _In_opt_ PCWSTR Section,
2110
2133
2135BOOL
2136WINAPI
2139 _In_ HINF InfHandle,
2140 _Out_opt_ PUINT ErrorLine);
2141
2143BOOL
2144WINAPI
2147 _In_ HINF InfHandle,
2148 _Out_opt_ PUINT ErrorLine);
2149
2151
2153HINF
2154WINAPI
2157 _In_opt_ PCSTR InfClass,
2158 _In_ DWORD InfStyle,
2159 _Out_opt_ PUINT ErrorLine);
2160
2162HINF
2163WINAPI
2166 _In_opt_ PCWSTR InfClass,
2167 _In_ DWORD InfStyle,
2168 _Out_opt_ PUINT ErrorLine);
2169
2172
2174UINT
2175WINAPI
2178 _In_opt_ PCSTR DialogTitle,
2179 _In_opt_ PCSTR DiskName,
2180 _In_opt_ PCSTR PathToSource,
2181 _In_ PCSTR FileSought,
2182 _In_opt_ PCSTR TagFile,
2183 _In_ DWORD DiskPromptStyle,
2184 _Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
2185 _In_ DWORD PathBufferSize,
2186 _Out_opt_ PDWORD PathRequiredSize);
2187
2189UINT
2190WINAPI
2193 _In_opt_ PCWSTR DialogTitle,
2194 _In_opt_ PCWSTR DiskName,
2195 _In_opt_ PCWSTR PathToSource,
2196 _In_ PCWSTR FileSought,
2197 _In_opt_ PCWSTR TagFile,
2198 _In_ DWORD DiskPromptStyle,
2199 _Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
2200 _In_ DWORD PathBufferSize,
2201 _Out_opt_ PDWORD PathRequiredSize);
2202
2206
2208BOOL
2209WINAPI
2211 _In_ HDSKSPC DiskSpace,
2215
2217BOOL
2218WINAPI
2220 _In_ HDSKSPC DiskSpace,
2224
2226BOOL
2227WINAPI
2229 _In_ HSPFILELOG FileLogHandle,
2230 _In_opt_ PCSTR LogSectionName,
2231 _In_ PCSTR TargetFilename,
2232 _In_ SetupFileLogInfo DesiredInfo,
2236
2238BOOL
2239WINAPI
2241 _In_ HSPFILELOG FileLogHandle,
2242 _In_opt_ PCWSTR LogSectionName,
2243 _In_ PCWSTR TargetFilename,
2244 _In_ SetupFileLogInfo DesiredInfo,
2248
2250BOOL
2251WINAPI
2253 _In_ PSP_INF_INFORMATION InfInformation,
2254 _In_ UINT InfIndex,
2258
2260BOOL
2261WINAPI
2263 _In_ PSP_INF_INFORMATION InfInformation,
2264 _In_ UINT InfIndex,
2268
2270BOOL
2271WINAPI
2273 _In_ PSP_INF_INFORMATION InfInformation,
2274 _In_ UINT InfIndex,
2275 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
2276 _Out_ PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo);
2277
2279BOOL
2280WINAPI
2282 _In_ PSP_INF_INFORMATION InfInformation,
2283 _In_ UINT InfIndex,
2284 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
2285 _Out_ PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo);
2286
2288BOOL
2289WINAPI
2291 _In_ PSP_INF_INFORMATION InfInformation,
2292 _In_ UINT InfIndex,
2297
2299BOOL
2300WINAPI
2302 _In_ PSP_INF_INFORMATION InfInformation,
2303 _In_ UINT InfIndex,
2308
2350
2352BOOL
2353WINAPI
2358
2360BOOL
2361WINAPI
2366
2369
2371BOOL
2372WINAPI
2374 _In_ PCSTR InfFileName,
2377
2379BOOL
2380WINAPI
2382 _In_ PCWSTR InfFileName,
2385
2387
2388
2402
2403
2416
2419
2420
2423
2424
2425/* for backward compatability */
2426#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
2427#define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
2428#define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW
2429#define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW
2430#define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA
2431#define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
2432#define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA
2433#define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA
2434
2435#ifdef UNICODE
2436#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W
2437#define InstallHinfSection InstallHinfSectionW
2438#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW
2439#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW
2440#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW
2441#define SetupAddToSourceList SetupAddToSourceListW
2442#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW
2443#define SetupBackupError SetupBackupErrorW
2444#define SetupCommitFileQueue SetupCommitFileQueueW
2445#define SetupCopyError SetupCopyErrorW
2446#define SetupCopyOEMInf SetupCopyOEMInfW
2447#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW
2448#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW
2449#define SetupDefaultQueueCallback SetupDefaultQueueCallbackW
2450#define SetupDeleteError SetupDeleteErrorW
2451#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW
2452#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW
2453#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW
2454#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW
2455#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW
2456#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW
2457#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW
2458#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW