Reactos
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 DICUSTOMDEVPROP_MERGE_MULTISZ 0x00000001
121#define DIF_SELECTDEVICE 1
122#define DIF_INSTALLDEVICE 2
123#define DIF_ASSIGNRESOURCES 3
124#define DIF_PROPERTIES 4
125#define DIF_REMOVE 5
126#define DIF_FIRSTTIMESETUP 6
127#define DIF_FOUNDDEVICE 7
128#define DIF_SELECTCLASSDRIVERS 8
129#define DIF_VALIDATECLASSDRIVERS 9
130#define DIF_INSTALLCLASSDRIVERS 10
131#define DIF_CALCDISKSPACE 11
132#define DIF_DESTROYPRIVATEDATA 12
133#define DIF_VALIDATEDRIVER 13
134#define DIF_MOVEDEVICE 14
135#define DIF_DETECT 15
136#define DIF_INSTALLWIZARD 16
137#define DIF_DESTROYWIZARDDATA 17
138#define DIF_PROPERTYCHANGE 18
139#define DIF_ENABLECLASS 19
140#define DIF_DETECTVERIFY 20
141#define DIF_INSTALLDEVICEFILES 21
142#define DIF_UNREMOVE 22
143#define DIF_SELECTBESTCOMPATDRV 23
144#define DIF_ALLOW_INSTALL 24
145#define DIF_REGISTERDEVICE 25
146#define DIF_NEWDEVICEWIZARD_PRESELECT 26
147#define DIF_NEWDEVICEWIZARD_SELECT 27
148#define DIF_NEWDEVICEWIZARD_PREANALYZE 28
149#define DIF_NEWDEVICEWIZARD_POSTANALYZE 29
150#define DIF_NEWDEVICEWIZARD_FINISHINSTALL 30
151#define DIF_UNUSED1 31
152#define DIF_INSTALLINTERFACES 32
153#define DIF_DETECTCANCEL 33
154#define DIF_REGISTER_COINSTALLERS 34
155#define DIF_ADDPROPERTYPAGE_ADVANCED 35
156#define DIF_ADDPROPERTYPAGE_BASIC 36
157#define DIF_RESERVED1 37
158#define DIF_TROUBLESHOOTER 38
159#define DIF_POWERMESSAGEWAKE 39
160#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 40
161#define DIF_UPDATEDRIVER_UI 41
162#define DIF_FINISHINSTALL_ACTION 42
163#define DIF_RESERVED2 48
164
165#define DIGCDP_FLAG_BASIC 0x00000001
166#define DIGCDP_FLAG_ADVANCED 0x00000002
167#if (_SETUPAPI_VER >= 0x0501)
168#define DIGCDP_FLAG_REMOTE_BASIC 0x00000003
169#define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
170#endif
171#define DIGCF_DEFAULT 0x00000001
172#define DIGCF_PRESENT 0x00000002
173#define DIGCF_ALLCLASSES 0x00000004
174#define DIGCF_PROFILE 0x00000008
175#define DIGCF_DEVICEINTERFACE 0x00000010
176#define DIGCF_INTERFACEDEVICE 0x00000010
177#define DIOCR_INSTALLER 0x00000001
178#define DIOCR_INTERFACE 0x00000002
179#define DIODI_NO_ADD 0x00000001
180#define DIOD_INHERIT_CLASSDRVS 0x00000002
181#define DIOD_CANCEL_REMOVE 0x00000004
182#define DIREG_DEV 0x00000001
183#define DIREG_DRV 0x00000002
184#define DIREG_BOTH 0x00000004
185#define DIRID_ABSOLUTE -1
186#define DIRID_NULL 0
187#define DIRID_SRCPATH 1
188#define DIRID_WINDOWS 10
189#define DIRID_SYSTEM 11
190#define DIRID_DRIVERS 12
191#define DIRID_INF 17
192#define DIRID_HELP 18
193#define DIRID_FONTS 20
194#define DIRID_VIEWERS 21
195#define DIRID_COLOR 23
196#define DIRID_APPS 24
197#define DIRID_SHARED 25
198#define DIRID_BOOT 30
199#define DIRID_SYSTEM16 50
200#define DIRID_SPOOL 51
201#define DIRID_SPOOLDRIVERS 52
202#define DIRID_USERPROFILE 53
203#define DIRID_LOADER 54
204#define DIRID_PRINTPROCESSOR 55
205#define DIRID_COMMON_STARTMENU 16406
206#define DIRID_COMMON_PROGRAMS 16407
207#define DIRID_COMMON_STARTUP 16408
208#define DIRID_COMMON_DESKTOPDIRECTORY 16409
209#define DIRID_COMMON_FAVORITES 16415
210#define DIRID_COMMON_APPDATA 16419
211#define DIRID_PROGRAM_FILES 16422
212#define DIRID_SYSTEM_X86 16425
213#define DIRID_PROGRAM_FILES_X86 16426
214#define DIRID_PROGRAM_FILES_COMMON 16427
215#define DIRID_PROGRAM_FILES_COMMONX86 16428
216#define DIRID_COMMON_TEMPLATES 16429
217#define DIRID_COMMON_DOCUMENTS 16430
218#define DIRID_USER 0x8000
219#define DIRID_ABSOLUTE_16BIT 0xffff
220#define DIRID_IOSUBSYS DIRID_DRIVERS
221#define DIRID_DEFAULT DIRID_SYSTEM
222#define DMI_MASK 0x00000001
223#define DMI_BKCOLOR 0x00000002
224#define DMI_USERECT 0x00000004
225#define DN_ROOT_ENUMERATED 0x00000001
226#define DN_DRIVER_LOADED 0x00000002
227#define DN_ENUM_LOADED 0x00000004
228#define DN_STARTED 0x00000008
229#define DN_MANUAL 0x00000010
230#define DN_NEED_TO_ENUM 0x00000020
231#define DN_NOT_FIRST_TIME 0x00000040
232#define DN_HARDWARE_ENUM 0x00000080
233#define DN_LIAR 0x00000100
234#define DN_HAS_MARK 0x00000200
235#define DN_HAS_PROBLEM 0x00000400
236#define DN_FILTERED 0x00000800
237#define DN_MOVED 0x00001000
238#define DN_DISABLEABLE 0x00002000
239#define DN_REMOVABLE 0x00004000
240#define DN_PRIVATE_PROBLEM 0x00008000
241#define DN_MF_PARENT 0x00010000
242#define DN_MF_CHILD 0x00020000
243#define DN_WILL_BE_REMOVED 0x00040000
244#define DN_NOT_FIRST_TIMEE 0x00080000
245#define DN_STOP_FREE_RES 0x00100000
246#define DN_REBAL_CANDIDATE 0x00200000
247#define DN_BAD_PARTIAL 0x00400000
248#define DN_NT_ENUMERATOR 0x00800000
249#define DN_NT_DRIVER 0x01000000
250#define DN_NEEDS_LOCKING 0x02000000
251#define DN_ARM_WAKEUP 0x04000000
252#define DN_APM_ENUMERATOR 0x08000000
253#define DN_APM_DRIVER 0x10000000
254#define DN_SILENT_INSTALL 0x20000000
255#define DN_NO_SHOW_IN_DM 0x40000000
256#define DN_BOOT_LOG_PROB 0x80000000
257#define DNF_DUPDESC 0x00000001
258#define DNF_OLDDRIVER 0x00000002
259#define DNF_EXCLUDEFROMLIST 0x00000004
260#define DNF_NODRIVER 0x00000008
261#define DNF_LEGACYINF 0x00000010
262#define DNF_CLASS_DRIVER 0x00000020
263#define DNF_COMPATIBLE_DRIVER 0x00000040
264#define DNF_INET_DRIVER 0x00000080
265#define DNF_UNUSED1 0x00000100
266#define DNF_INDEXED_DRIVER 0x00000200
267#define DNF_OLD_INET_DRIVER 0x00000400
268#define DNF_BAD_DRIVER 0x00000800
269#define DNF_DUPPROVIDER 0x00001000
270#define DPROMPT_SUCCESS 0
271#define DPROMPT_CANCEL 1
272#define DPROMPT_SKIPFILE 2
273#define DPROMPT_BUFFERTOOSMALL 3
274#define DPROMPT_OUTOFMEMORY 4
275#define DRIVER_HARDWAREID_RANK 0x00000FFF
276#if (_SETUPAPI_VER >= 0x0600)
277#define DRIVER_UNTRUSTED_RANK 0x80000000
278#else
279#define DRIVER_UNTRUSTED_RANK 0x00008000
280#endif
281#define DYNAWIZ_FLAG_PAGESADDED 0x00000001
282#define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
283#define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
284#define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
285#define ENABLECLASS_QUERY 0
286#define ENABLECLASS_SUCCESS 1
287#define ENABLECLASS_FAILURE 2
288#define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
289#define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
290#define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
291#define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
292#define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
293#define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
294#define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
295#define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
296#define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
297#define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
298#define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
299#define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
300#define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
301#define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
302#define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
303#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
304#define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
305#define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
306#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
307#define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
308#define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
309#define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
310#define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
311#define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
312#define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
313#define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
314#define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
315#define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
316#define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
317#define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
318#define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
319#define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
320#define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
321#define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
322#define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
323#define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
324#define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
325#define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
326#define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
327#define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
328#define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
329#define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
330#define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
331#define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
332#define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
333#define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
334#define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
335#define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
336#define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
337#define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
338#define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
339#define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
340#define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
341#define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
342#define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
343#define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
344#define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
345#define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
346#define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
347#define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
348#define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235)
349#define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
350#define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
351#define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
352#define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
353#define ERROR_WRONG_INF_TYPE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24A)
354
355#define FILEOP_COPY 0
356#define FILEOP_ABORT 0
357#define FILE_COMPRESSION_NONE 0
358#define FILEOP_RENAME 1
359#define FILEOP_DOIT 1
360#define FILE_COMPRESSION_WINLZA 1
361#define FILEOP_DELETE 2
362#define FILEOP_SKIP 2
363#define FILE_COMPRESSION_MSZIP 2
364#define FILEOP_BACKUP 3
365#define FILE_COMPRESSION_NTCAB 3
366#define FILEOP_NEWPATH 4
367#define FILEOP_RETRY FILEOP_DOIT
368#define FLG_ADDREG_TYPE_SZ 0x00000000
369#define FLG_ADDREG_BINVALUETYPE 0x00000001
370#define FLG_ADDREG_NOCLOBBER 0x00000002
371#define FLG_ADDREG_DELVAL 0x00000004
372#define FLG_ADDREG_APPEND 0x00000008
373#define FLG_ADDREG_KEYONLY 0x00000010
374#define FLG_ADDREG_OVERWRITEONLY 0x00000020
375#if (_SETUPAPI_VER >= 0x0501)
376#define FLG_ADDREG_64BITKEY 0x00001000
377#define FLG_ADDREG_KEYONLY_COMMON 0x00002000
378#define FLG_ADDREG_32BITKEY 0x00004000
379#define FLG_ADDREG_DELREG_BIT 0x00008000
380#endif
381#define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000
382#define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000
383#define FLG_ADDREG_TYPE_BINARY (0x00000000|FLG_ADDREG_BINVALUETYPE)
384#define FLG_ADDREG_TYPE_DWORD (0x00010000|FLG_ADDREG_BINVALUETYPE)
385#define FLG_ADDREG_TYPE_NONE (0x00020000|FLG_ADDREG_BINVALUETYPE)
386#define FLG_ADDREG_TYPE_MASK (0xFFFF0000|FLG_ADDREG_BINVALUETYPE)
387#define FLG_DELREG_VALUE 0x00000000
388#if (_SETUPAPI_VER >= 0x0501)
389#define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK
390#define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ
391#define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ
392#define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ
393#define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY
394#define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD
395#define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE
396#define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY
397#define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON
398#define FLG_DELREG_32BITKEY FLG_ADDREG_32BITKEY
399#define FLG_DELREG_OPERATION_MASK 0x000000FE
400#define FLG_DELREG_MULTI_SZ_DELSTRING (0x00000002|FLG_DELREG_TYPE_MULTI_SZ|FLG_ADDREG_DELREG_BIT)
401#endif
402#define FLG_BITREG_CLEARBITS 0x00000000
403#define FLG_BITREG_SETBITS 0x00000001
404#define FLG_PROFITEM_CURRENTUSER 0x00000001
405#define FLG_PROFITEM_DELETE 0x00000002
406#define FLG_PROFITEM_GROUP 0x00000004
407#define FLG_PROFITEM_CSIDL 0x00000008
408#define FLG_REGSVR_DLLREGISTER 0x00000001
409#define FLG_REGSVR_DLLINSTALL 0x00000002
410#define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
411#define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
412#define IDD_DYNAWIZ_FIRSTPAGE 10000
413#define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
414#define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
415#define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
416#define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
417#define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
418#define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
419#define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
420#define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
421#define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
422#define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
423#define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
424#define IDF_NOBROWSE 0x00000001
425#define IDF_NOSKIP 0x00000002
426#define IDF_NODETAILS 0x00000004
427#define IDF_NOCOMPRESSED 0x00000008
428#define IDF_CHECKFIRST 0x00000100
429#define IDF_NOBEEP 0x00000200
430#define IDF_NOFOREGROUND 0x00000400
431#define IDF_WARNIFSKIP 0x00000800
432#define IDF_OEMDISK 0x80000000
433#define IDI_RESOURCEFIRST 159
434#define IDI_RESOURCE 159
435#define IDI_RESOURCELAST 161
436#define IDI_RESOURCEOVERLAYFIRST 161
437#define IDI_RESOURCEOVERLAYLAST 161
438#define IDI_CONFLICT 161
439#define IDI_PROBLEM_OVL 500
440#define IDI_DISABLED_OVL 501
441#define IDI_FORCED_OVL 502
442#define IDI_CLASSICON_OVERLAYFIRST 500
443#define IDI_CLASSICON_OVERLAYLAST 502
444#define INF_STYLE_NONE 0x00000000
445#define INF_STYLE_OLDNT 0x00000001
446#define INF_STYLE_WIN4 0x00000002
447#define INF_STYLE_CACHE_ENABLE 0x00000010
448#define INF_STYLE_CACHE_DISABLE 0x00000020
449#define INFINFO_INF_SPEC_IS_HINF 1
450#define INFINFO_INF_NAME_IS_ABSOLUTE 2
451#define INFINFO_DEFAULT_SEARCH 3
452#define INFINFO_REVERSE_DEFAULT_SEARCH 4
453#define INFINFO_INF_PATH_LIST_SEARCH 5
454#define LogSevInformation 0
455#define LogSevWarning 1
456#define LogSevError 2
457#define LogSevFatalError 3
458#define LogSevMaximum 4
459#define LogSeverity DWORD
460#define MAX_INSTALLWIZARD_DYNAPAGES 20
461#define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
462#define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
463#define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
464#define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
465#define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
466#define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
467#define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
468#define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
469#define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
470#define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
471#define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
472#define NDW_INSTALLFLAG_USERCANCEL 0x00040000
473#define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
474#define NDW_INSTALLFLAG_NEEDRESTART 0x00000080
475#define NDW_INSTALLFLAG_NEEDREBOOT 0x00000100
476#define SETDIRID_NOT_FULL_PATH 0x00000001
477#define SP_COPY_DELETESOURCE 0x0000001
478#define SP_COPY_REPLACEONLY 0x0000002
479#define SP_COPY_NEWER 0x0000004
480#define SP_COPY_NEWER_OR_SAME 0x0000004
481#define SP_COPY_NOOVERWRITE 0x0000008
482#define SP_COPY_NODECOMP 0x0000010
483#define SP_COPY_LANGUAGEAWARE 0x0000020
484#define SP_COPY_SOURCE_ABSOLUTE 0x0000040
485#define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080
486#define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100
487#define SP_COPY_FORCE_IN_USE 0x0000200
488#define SP_COPY_NOSKIP 0x0000400
489#define SP_COPY_FORCE_NOOVERWRITE 0x0001000
490#define SP_COPY_FORCE_NEWER 0x0002000
491#define SP_COPY_WARNIFSKIP 0x0004000
492#define SP_COPY_NOBROWSE 0x0008000
493#define SP_COPY_NEWER_ONLY 0x0010000
494#define SP_COPY_SOURCE_SIS_MASTER 0x0020000
495#define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000
496#define SP_COPY_REPLACE_BOOT_FILE 0x0080000
497#define SP_COPY_NOPRUNE 0x0100000
498#define SP_FLAG_CABINETCONTINUATION 0x0000800
499#define SPCRP_SECURITY 23
500#define SPCRP_SECURITY_SDS 24
501#define SPCRP_DEVTYPE 25
502#define SPCRP_EXCLUSIVE 26
503#define SPCRP_CHARACTERISTICS 27
504#define SPCRP_MAXIMUM_PROPERTY 28
505#define SPDIT_NODRIVER 0
506#define SPDIT_CLASSDRIVER 1
507#define SPDIT_COMPATDRIVER 2
508#define SPDRP_DEVICEDESC 0
509#define SPDRP_HARDWAREID 1
510#define SPDRP_COMPATIBLEIDS 2
511#define SPDRP_UNUSED0 3
512#define SPDRP_SERVICE 4
513#define SPDRP_UNUSED1 5
514#define SPDRP_UNUSED2 6
515#define SPDRP_CLASS 7
516#define SPDRP_CLASSGUID 8
517#define SPDRP_DRIVER 9
518#define SPDRP_CONFIGFLAGS 10
519#define SPDRP_MFG 11
520#define SPDRP_FRIENDLYNAME 12
521#define SPDRP_LOCATION_INFORMATION 13
522#define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME 14
523#define SPDRP_CAPABILITIES 15
524#define SPDRP_UI_NUMBER 16
525#define SPDRP_UPPERFILTERS 17
526#define SPDRP_LOWERFILTERS 18
527#define SPDRP_BUSTYPEGUID 19
528#define SPDRP_LEGACYBUSTYPE 20
529#define SPDRP_BUSNUMBER 21
530#define SPDRP_ENUMERATOR_NAME 22
531#define SPDRP_SECURITY 23
532#define SPDRP_SECURITY_SDS 24
533#define SPDRP_DEVTYPE 25
534#define SPDRP_EXCLUSIVE 26
535#define SPDRP_CHARACTERISTICS 27
536#define SPDRP_ADDRESS 28
537#define SPDRP_UI_NUMBER_DESC_FORMAT 29
538#define SPDRP_DEVICE_POWER_DATA 30
539#define SPDRP_REMOVAL_POLICY 31
540#define SPDRP_REMOVAL_POLICY_HW_DEFAULT 32
541#define SPDRP_REMOVAL_POLICY_OVERRIDE 33
542#define SPDRP_INSTALL_STATE 34
543#define SPDRP_MAXIMUM_PROPERTY 35
544#define SPDSL_IGNORE_DISK 1
545#define SPDSL_DISALLOW_NEGATIVE_ADJUST 2
546
547#define SPFILENOTIFY_STARTQUEUE 1
548#define SPFILENOTIFY_ENDQUEUE 2
549#define SPFILENOTIFY_STARTSUBQUEUE 3
550#define SPFILENOTIFY_ENDSUBQUEUE 4
551#define SPFILENOTIFY_STARTDELETE 5
552#define SPFILENOTIFY_ENDDELETE 6
553#define SPFILENOTIFY_DELETEERROR 7
554#define SPFILENOTIFY_STARTRENAME 8
555#define SPFILENOTIFY_ENDRENAME 9
556#define SPFILENOTIFY_RENAMEERROR 10
557#define SPFILENOTIFY_STARTCOPY 11
558#define SPFILENOTIFY_ENDCOPY 12
559#define SPFILENOTIFY_COPYERROR 13
560#define SPFILENOTIFY_NEEDMEDIA 14
561#define SPFILENOTIFY_QUEUESCAN 15
562#define SPFILENOTIFY_CABINETINFO 16
563#define SPFILENOTIFY_FILEINCABINET 17
564#define SPFILENOTIFY_NEEDNEWCABINET 18
565#define SPFILENOTIFY_FILEEXTRACTED 19
566#define SPFILENOTIFY_FILEOPDELAYED 20
567#define SPFILENOTIFY_STARTBACKUP 21
568#define SPFILENOTIFY_BACKUPERROR 22
569#define SPFILENOTIFY_ENDBACKUP 23
570#define SPFILENOTIFY_QUEUESCAN_EX 24
571#define SPFILENOTIFY_STARTREGISTRATION 25
572#define SPFILENOTIFY_ENDREGISTRATION 26
573#define SPFILENOTIFY_LANGMISMATCH 0x00010000
574#define SPFILENOTIFY_TARGETEXISTS 0x00020000
575#define SPFILENOTIFY_TARGETNEWER 0x00040000
576#define SPFILELOG_SYSTEMLOG 0x00000001
577#define SPFILELOG_OEMFILE 0x00000001
578#define SPFILELOG_FORCENEW 0x00000002
579#define SPFILELOG_QUERYONLY 0x00000004
580#define SPFILEQ_FILE_IN_USE 0x00000001
581#define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
582#define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
583#define SPINT_ACTIVE 0x00000001
584#define SPINT_DEFAULT 0x00000002
585#define SPINT_REMOVED 0x00000004
586#define SPID_ACTIVE 0x00000001
587#define SPID_DEFAULT 0x00000002
588#define SPID_REMOVED 0x00000004
589#define SPINST_LOGCONFIG 0x00000001
590#define SPINST_INIFILES 0x00000002
591#define SPINST_REGISTRY 0x00000004
592#define SPINST_INI2REG 0x00000008
593#define SPINST_FILES 0x00000010
594#define SPINST_BITREG 0x00000020
595#define SPINST_REGSVR 0x00000040
596#define SPINST_UNREGSVR 0x00000080
597#define SPINST_PROFILEITEMS 0x00000100
598#if (_SETUPAPI_VER >= 0x0501)
599#define SPINST_COPYINF 0x00000200
600#define SPINST_ALL 0x000003ff
601#else
602#define SPINST_ALL 0x000001ff
603#endif
604#define SPINST_SINGLESECTION 0x00010000
605#define SPINST_LOGCONFIG_IS_FORCED 0x00020000
606#define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
607#if (_SETUPAPI_VER >= 0x0501)
608#define SPINST_REGISTERCALLBACKAWARE 0x00080000
609#endif
610#define SPOST_NONE 0
611#define SPOST_PATH 1
612#define SPOST_URL 2
613#define SPOST_MAX 3
614#define SPPSR_SELECT_DEVICE_RESOURCES 1
615#define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
616#define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
617#define SPQ_SCAN_FILE_PRESENCE 0x00000001
618#define SPQ_DELAYED_COPY 0x00000001
619#define SPQ_SCAN_FILE_VALIDITY 0x00000002
620#define SPQ_SCAN_USE_CALLBACK 0x00000004
621#define SPQ_SCAN_USE_CALLBACKEX 0x00000008
622#define SPQ_SCAN_INFORM_USER 0x00000010
623#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
624#define SPRDI_FIND_DUPS 0x00000001
625
626#define SPSVCINST_TAGTOFRONT 0x00000001
627#define SPSVCINST_ASSOCSERVICE 0x00000002
628#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
629#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
630#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
631#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
632#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
633#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
634#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
635#define SPSVCINST_STOPSERVICE 0x00000200
636#define SPSVCINST_CLOBBER_SECURITY 0x00000400
637#define SPSVCINST_STARTSERVICE 0x00000800
638
639#define SPWPT_SELECTDEVICE 0x00000001
640#define SPWP_USE_DEVINFO_DATA 0x00000001
641#define SRCINFO_PATH 1
642#define SRCINFO_TAGFILE 2
643#define SRCINFO_DESCRIPTION 3
644#define SRCINFO_FLAGS 4
645#define SRCLIST_TEMPORARY 0x00000001
646#define SRCLIST_NOBROWSE 0x00000002
647#define SRCLIST_SYSTEM 0x00000010
648#define SRCLIST_USER 0x00000020
649#define SRCLIST_SYSIFADMIN 0x00000040
650#define SRCLIST_SUBDIRS 0x00000100
651#define SRCLIST_APPEND 0x00000200
652#define SRCLIST_NOSTRIPPLATFORM 0x00000400
653#define SPREG_SUCCESS 0x00000000
654#define SPREG_LOADLIBRARY 0x00000001
655#define SPREG_GETPROCADDR 0x00000002
656#define SPREG_REGSVR 0x00000003
657#define SPREG_DLLINSTALL 0x00000004
658#define SPREG_TIMEOUT 0x00000005
659#define SPREG_UNKNOWN 0xFFFFFFFF
660
661/* Flags for StringTableAddString and StringTableLookUpString */
662#define ST_CASE_SENSITIVE_COMPARE 0x00000001
663
664/* SetupUninstallOEMInf Flags values */
665#define SUOI_FORCEDELETE 0x00000001
666
667#ifndef RC_INVOKED
668typedef PVOID HINF;
669typedef PVOID HDSKSPC;
670typedef PVOID HDEVINFO;
671typedef PVOID HSPFILEQ;
672typedef PVOID HSPFILELOG;
673typedef UINT DI_FUNCTION;
674
675typedef PVOID HSTRING_TABLE;
676
677typedef enum {
678 SetupFileLogSourceFilename,
679 SetupFileLogChecksum,
680 SetupFileLogDiskTagfile,
681 SetupFileLogDiskDescription,
682 SetupFileLogOtherInfo,
683 SetupFileLogMax
684} SetupFileLogInfo;
685typedef struct _INFCONTEXT {
686 PVOID Inf;
687 PVOID CurrentInf;
688 UINT Section;
689 UINT Line;
690} INFCONTEXT, *PINFCONTEXT;
691typedef struct _SP_INF_INFORMATION {
692 DWORD InfStyle;
693 DWORD InfCount;
694 BYTE VersionData[ANYSIZE_ARRAY];
695} SP_INF_INFORMATION, *PSP_INF_INFORMATION;
696typedef struct _SP_INF_SIGNER_INFO_A {
697 DWORD cbSize;
698 CHAR CatalogFile;
699 CHAR DigitalSigner;
700 CHAR DigitalSignerVersion;
701} SP_INF_SIGNER_INFO_A, *PSP_INF_SIGNER_INFO_A;
702typedef struct _SP_INF_SIGNER_INFO_W {
703 DWORD cbSize;
704 WCHAR CatalogFile;
705 WCHAR DigitalSigner;
706 WCHAR DigitalSignerVersion;
707} SP_INF_SIGNER_INFO_W, *PSP_INF_SIGNER_INFO_W;
708typedef struct _SP_ALTPLATFORM_INFO_V1 {
709 DWORD cbSize;
710 DWORD Platform;
711 DWORD MajorVersion;
712 DWORD MinorVersion;
713 WORD ProcessorArchitecture;
714 WORD Reserved;
715} SP_ALTPLATFORM_INFO_V1, *PSP_ALTPLATFORM_INFO_V1;
716typedef struct _SP_ALTPLATFORM_INFO_V2 {
717 DWORD cbSize;
718 DWORD Platform;
719 DWORD MajorVersion;
720 DWORD MinorVersion;
721 WORD ProcessorArchitecture;
722 union
723 {
724 WORD Reserved;
725 WORD Flags;
726 } DUMMYUNIONNAME;
727 DWORD FirstValidatedMajorVersion;
728 DWORD FirstValidatedMinorVersion;
729} SP_ALTPLATFORM_INFO_V2, *PSP_ALTPLATFORM_INFO_V2;
730#if _WIN32_WINNT <= 0x0500
731typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO;
732typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO;
733#else
734typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO;
735typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO;
736#endif
737typedef struct _SP_ORIGINAL_FILE_INFO_A {
738 DWORD cbSize;
739 CHAR OriginalInfName[MAX_PATH];
740 CHAR OriginalCatalogName[MAX_PATH];
741} SP_ORIGINAL_FILE_INFO_A, *PSP_ORIGINAL_FILE_INFO_A;
742typedef struct _SP_ORIGINAL_FILE_INFO_W {
743 DWORD cbSize;
744 WCHAR OriginalInfName[MAX_PATH];
745 WCHAR OriginalCatalogName[MAX_PATH];
746} SP_ORIGINAL_FILE_INFO_W, *PSP_ORIGINAL_FILE_INFO_W;
747typedef struct _FILEPATHS_A {
748 PCSTR Target;
749 PCSTR Source;
750 UINT Win32Error;
751 DWORD Flags;
752} FILEPATHS_A, *PFILEPATHS_A;
753typedef struct _FILEPATHS_W {
754 PCWSTR Target;
755 PCWSTR Source;
756 UINT Win32Error;
757 DWORD Flags;
758} FILEPATHS_W, *PFILEPATHS_W;
759typedef struct _SOURCE_MEDIA_A {
760 PCSTR Reserved;
761 PCSTR Tagfile;
762 PCSTR Description;
763 PCSTR SourcePath;
764 PCSTR SourceFile;
765 DWORD Flags;
766} SOURCE_MEDIA_A, *PSOURCE_MEDIA_A;
767typedef struct _SOURCE_MEDIA_W {
768 PCWSTR Reserved;
769 PCWSTR Tagfile;
770 PCWSTR Description;
771 PCWSTR SourcePath;
772 PCWSTR SourceFile;
773 DWORD Flags;
774} SOURCE_MEDIA_W, *PSOURCE_MEDIA_W;
775typedef struct _CABINET_INFO_A {
776 PCSTR CabinetPath;
777 PCSTR CabinetFile;
778 PCSTR DiskName;
779 USHORT SetId;
780 USHORT CabinetNumber;
781} CABINET_INFO_A, *PCABINET_INFO_A;
782typedef struct _CABINET_INFO_W {
783 PCWSTR CabinetPath;
784 PCWSTR CabinetFile;
785 PCWSTR DiskName;
786 USHORT SetId;
787 USHORT CabinetNumber;
788} CABINET_INFO_W, *PCABINET_INFO_W;
789typedef struct _FILE_IN_CABINET_INFO_A {
790 PCSTR NameInCabinet;
791 DWORD FileSize;
792 DWORD Win32Error;
793 WORD DosDate;
794 WORD DosTime;
795 WORD DosAttribs;
796 CHAR FullTargetName[MAX_PATH];
797} FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A;
798typedef struct _FILE_IN_CABINET_INFO_W {
799 PCWSTR NameInCabinet;
800 DWORD FileSize;
801 DWORD Win32Error;
802 WORD DosDate;
803 WORD DosTime;
804 WORD DosAttribs;
805 WCHAR FullTargetName[MAX_PATH];
806} FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W;
807typedef struct _SP_FILE_COPY_PARAMS_A {
808 DWORD cbSize;
809 HSPFILEQ QueueHandle;
810 PCSTR SourceRootPath;
811 PCSTR SourcePath;
812 PCSTR SourceFilename;
813 PCSTR SourceDescription;
814 PCSTR SourceTagfile;
815 PCSTR TargetDirectory;
816 PCSTR TargetFilename;
817 DWORD CopyStyle;
818 HINF LayoutInf;
819 PCSTR SecurityDescriptor;
820} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
821typedef struct _SP_FILE_COPY_PARAMS_W {
822 DWORD cbSize;
823 HSPFILEQ QueueHandle;
824 PCWSTR SourceRootPath;
825 PCWSTR SourcePath;
826 PCWSTR SourceFilename;
827 PCWSTR SourceDescription;
828 PCWSTR SourceTagfile;
829 PCWSTR TargetDirectory;
830 PCWSTR TargetFilename;
831 DWORD CopyStyle;
832 HINF LayoutInf;
833 PCWSTR SecurityDescriptor;
834} SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W;
835typedef struct _SP_DEVINFO_DATA {
836 DWORD cbSize;
837 GUID ClassGuid;
838 DWORD DevInst;
839 ULONG_PTR Reserved;
840} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
841typedef struct _SP_DEVICE_INTERFACE_DATA {
842 DWORD cbSize;
843 GUID InterfaceClassGuid;
844 DWORD Flags;
845 ULONG_PTR Reserved;
846} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;
847/* For backward compatability */
848typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA, *PSP_INTERFACE_DEVICE_DATA;
849
850typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
851 DWORD cbSize;
852 CHAR DevicePath[ANYSIZE_ARRAY];
853} SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
854typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
855 DWORD cbSize;
856 WCHAR DevicePath[ANYSIZE_ARRAY];
857} SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
858/* For backward compatability */
859typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A,
860 *PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
861typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W,
862 *PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
863
864typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
865 DWORD cbSize;
866 GUID ClassGuid;
867 HANDLE RemoteMachineHandle;
868 CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
869} SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A;
870typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
871 DWORD cbSize;
872 GUID ClassGuid;
873 HANDLE RemoteMachineHandle;
874 WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
875} SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W;
876
877typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)(PVOID,UINT,UINT_PTR,UINT_PTR);
878typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID,UINT,UINT_PTR,UINT_PTR);
879typedef struct _SP_DEVINSTALL_PARAMS_A {
880 DWORD cbSize;
881 DWORD Flags;
882 DWORD FlagsEx;
883 HWND hwndParent;
884 PSP_FILE_CALLBACK_A InstallMsgHandler;
885 PVOID InstallMsgHandlerContext;
886 HSPFILEQ FileQueue;
887 ULONG_PTR ClassInstallReserved;
888 DWORD Reserved;
889 CHAR DriverPath[MAX_PATH];
890} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;
891typedef struct _SP_DEVINSTALL_PARAMS_W {
892 DWORD cbSize;
893 DWORD Flags;
894 DWORD FlagsEx;
895 HWND hwndParent;
896 PSP_FILE_CALLBACK_W InstallMsgHandler;
897 PVOID InstallMsgHandlerContext;
898 HSPFILEQ FileQueue;
899 ULONG_PTR ClassInstallReserved;
900 DWORD Reserved;
901 WCHAR DriverPath[MAX_PATH];
902} SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W;
903typedef struct _SP_CLASSINSTALL_HEADER {
904 DWORD cbSize;
905 DI_FUNCTION InstallFunction;
906} SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER;
907typedef struct _SP_ENABLECLASS_PARAMS {
908 SP_CLASSINSTALL_HEADER ClassInstallHeader;
909 GUID ClassGuid;
910 DWORD EnableMessage;
911} SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS;
912typedef struct _SP_MOVEDEV_PARAMS {
913 SP_CLASSINSTALL_HEADER ClassInstallHeader;
914 SP_DEVINFO_DATA SourceDeviceInfoData;
915} SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS;
916typedef struct _SP_PROPCHANGE_PARAMS {
917 SP_CLASSINSTALL_HEADER ClassInstallHeader;
918 DWORD StateChange;
919 DWORD Scope;
920 DWORD HwProfile;
921} SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS;
922typedef struct _SP_REMOVEDEVICE_PARAMS {
923 SP_CLASSINSTALL_HEADER ClassInstallHeader;
924 DWORD Scope;
925 DWORD HwProfile;
926} SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS;
927typedef struct _SP_UNREMOVEDEVICE_PARAMS {
928 SP_CLASSINSTALL_HEADER ClassInstallHeader;
929 DWORD Scope;
930 DWORD HwProfile;
931} SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS;
932typedef struct _SP_SELECTDEVICE_PARAMS_A {
933 SP_CLASSINSTALL_HEADER ClassInstallHeader;
934 CHAR Title[MAX_TITLE_LEN];
935 CHAR Instructions[MAX_INSTRUCTION_LEN];
936 CHAR ListLabel[MAX_LABEL_LEN];
937 CHAR SubTitle[MAX_SUBTITLE_LEN];
938 BYTE Reserved[2];
939} SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A;
940typedef struct _SP_SELECTDEVICE_PARAMS_W {
941 SP_CLASSINSTALL_HEADER ClassInstallHeader;
942 WCHAR Title[MAX_TITLE_LEN];
943 WCHAR Instructions[MAX_INSTRUCTION_LEN];
944 WCHAR ListLabel[MAX_LABEL_LEN];
945 WCHAR SubTitle[MAX_SUBTITLE_LEN];
946} SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W;
947typedef struct _SP_REGISTER_CONTROL_STATUSA {
948 DWORD cbSize;
949 PCSTR FileName;
950 DWORD Win32Error;
951 DWORD FailureCode;
952} SP_REGISTER_CONTROL_STATUSA, *PSP_REGISTER_CONTROL_STATUSA;
953typedef struct _SP_REGISTER_CONTROL_STATUSW {
954 DWORD cbSize;
955 PCWSTR FileName;
956 DWORD Win32Error;
957 DWORD FailureCode;
958} SP_REGISTER_CONTROL_STATUSW, *PSP_REGISTER_CONTROL_STATUSW;
959
960typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)(PVOID,DWORD);
961typedef struct _SP_DETECTDEVICE_PARAMS {
962 SP_CLASSINSTALL_HEADER ClassInstallHeader;
963 PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
964 PVOID ProgressNotifyParam;
965} SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS;
966typedef struct _SP_INSTALLWIZARD_DATA {
967 SP_CLASSINSTALL_HEADER ClassInstallHeader;
968 DWORD Flags;
969 HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
970 DWORD NumDynamicPages;
971 DWORD DynamicPageFlags;
972 DWORD PrivateFlags;
973 LPARAM PrivateData;
974 HWND hwndWizardDlg;
975} SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA;
976typedef struct _SP_NEWDEVICEWIZARD_DATA {
977 SP_CLASSINSTALL_HEADER ClassInstallHeader;
978 DWORD Flags;
979 HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
980 DWORD NumDynamicPages;
981 HWND hwndWizardDlg;
982} SP_NEWDEVICEWIZARD_DATA, *PSP_NEWDEVICEWIZARD_DATA;
983typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA,
984 *PSP_ADDPROPERTYPAGE_DATA;
985typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
986 SP_CLASSINSTALL_HEADER ClassInstallHeader;
987 CHAR ChmFile[MAX_PATH];
988 CHAR HtmlTroubleShooter[MAX_PATH];
989} SP_TROUBLESHOOTER_PARAMS_A, *PSP_TROUBLESHOOTER_PARAMS_A;
990typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
991 SP_CLASSINSTALL_HEADER ClassInstallHeader;
992 WCHAR ChmFile[MAX_PATH];
993 WCHAR HtmlTroubleShooter[MAX_PATH];
994} SP_TROUBLESHOOTER_PARAMS_W, *PSP_TROUBLESHOOTER_PARAMS_W;
995typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
996 SP_CLASSINSTALL_HEADER ClassInstallHeader;
997 CHAR PowerMessageWake[LINE_LEN*2];
998} SP_POWERMESSAGEWAKE_PARAMS_A, *PSP_POWERMESSAGEWAKE_PARAMS_A;
999typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
1000 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1001 WCHAR PowerMessageWake[LINE_LEN*2];
1002} SP_POWERMESSAGEWAKE_PARAMS_W, *PSP_POWERMESSAGEWAKE_PARAMS_W;
1003typedef struct _SP_DRVINFO_DATA_V2_A {
1004 DWORD cbSize;
1005 DWORD DriverType;
1006 ULONG_PTR Reserved;
1007 CHAR Description[LINE_LEN];
1008 CHAR MfgName[LINE_LEN];
1009 CHAR ProviderName[LINE_LEN];
1010 FILETIME DriverDate;
1011 DWORDLONG DriverVersion;
1012} SP_DRVINFO_DATA_V2_A, *PSP_DRVINFO_DATA_V2_A;
1013typedef struct _SP_DRVINFO_DATA_V2_W {
1014 DWORD cbSize;
1015 DWORD DriverType;
1016 ULONG_PTR Reserved;
1017 WCHAR Description[LINE_LEN];
1018 WCHAR MfgName[LINE_LEN];
1019 WCHAR ProviderName[LINE_LEN];
1020 FILETIME DriverDate;
1021 DWORDLONG DriverVersion;
1022} SP_DRVINFO_DATA_V2_W, *PSP_DRVINFO_DATA_V2_W;
1023typedef struct _SP_DRVINFO_DATA_V1_A {
1024 DWORD cbSize;
1025 DWORD DriverType;
1026 ULONG_PTR Reserved;
1027 CHAR Description[LINE_LEN];
1028 CHAR MfgName[LINE_LEN];
1029 CHAR ProviderName[LINE_LEN];
1030} SP_DRVINFO_DATA_V1_A, *PSP_DRVINFO_DATA_V1_A;
1031typedef struct _SP_DRVINFO_DATA_V1_W {
1032 DWORD cbSize;
1033 DWORD DriverType;
1034 ULONG_PTR Reserved;
1035 WCHAR Description[LINE_LEN];
1036 WCHAR MfgName[LINE_LEN];
1037 WCHAR ProviderName[LINE_LEN];
1038} SP_DRVINFO_DATA_V1_W, *PSP_DRVINFO_DATA_V1_W;
1039
1040#ifdef UNICODE
1041typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
1042typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
1043#else
1044typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
1045typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
1046#endif
1047
1048#if USE_SP_DRVINFO_DATA_V1
1049typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
1050typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
1051typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
1052#else
1053typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
1054typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
1055typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
1056#endif
1057
1058typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID);
1059
1060typedef struct _SP_DRVINFO_DETAIL_DATA_A {
1061 DWORD cbSize;
1062 FILETIME InfDate;
1063 DWORD CompatIDsOffset;
1064 DWORD CompatIDsLength;
1065 ULONG_PTR Reserved;
1066 CHAR SectionName[LINE_LEN];
1067 CHAR InfFileName[MAX_PATH];
1068 CHAR DrvDescription[LINE_LEN];
1069 CHAR HardwareID[ANYSIZE_ARRAY];
1070} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
1071typedef struct _SP_DRVINFO_DETAIL_DATA_W {
1072 DWORD cbSize;
1073 FILETIME InfDate;
1074 DWORD CompatIDsOffset;
1075 DWORD CompatIDsLength;
1076 ULONG_PTR Reserved;
1077 WCHAR SectionName[LINE_LEN];
1078 WCHAR InfFileName[MAX_PATH];
1079 WCHAR DrvDescription[LINE_LEN];
1080 WCHAR HardwareID[ANYSIZE_ARRAY];
1081} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;
1082typedef struct _SP_DRVINSTALL_PARAMS {
1083 DWORD cbSize;
1084 DWORD Rank;
1085 DWORD Flags;
1086 DWORD_PTR PrivateData;
1087 DWORD Reserved;
1088} SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS;
1089
1090
1091typedef struct _COINSTALLER_CONTEXT_DATA {
1092 BOOL PostProcessing;
1093 DWORD InstallResult;
1094 PVOID PrivateData;
1095} COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA;
1096typedef struct _SP_CLASSIMAGELIST_DATA {
1097 DWORD cbSize;
1098 HIMAGELIST ImageList;
1099 ULONG_PTR Reserved;
1100} SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA;
1101typedef struct _SP_PROPSHEETPAGE_REQUEST {
1102 DWORD cbSize;
1103 DWORD PageRequested;
1104 HDEVINFO DeviceInfoSet;
1105 PSP_DEVINFO_DATA DeviceInfoData;
1106} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;
1107typedef struct _SP_BACKUP_QUEUE_PARAMS_A {
1108 DWORD cbSize;
1109 CHAR FullInfPath[MAX_PATH];
1110 INT FilenameOffset;
1111} SP_BACKUP_QUEUE_PARAMS_A, *PSP_BACKUP_QUEUE_PARAMS_A;
1112typedef struct _SP_BACKUP_QUEUE_PARAMS_W {
1113 DWORD cbSize;
1114 WCHAR FullInfPath[MAX_PATH];
1115 INT FilenameOffset;
1116} SP_BACKUP_QUEUE_PARAMS_W, *PSP_BACKUP_QUEUE_PARAMS_W;
1117
1118
1119#ifdef UNICODE
1120typedef SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
1121typedef FILEPATHS_W FILEPATHS, *PFILEPATHS;
1122typedef SOURCE_MEDIA_W SOURCE_MEDIA, *PSOURCE_MEDIA;
1123typedef CABINET_INFO_W CABINET_INFO, *PCABINET_INFO;
1124typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
1125typedef SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS, PSP_FILE_COPY_PARAMS;
1126typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA,
1127 *PSP_DEVICE_INTERFACE_DETAIL_DATA;
1128typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA,
1129 *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
1130typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA,
1131 *PSP_DEVINFO_LIST_DETAIL_DATA;
1132typedef SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
1133typedef SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS, *PSP_SELECTDEVICE_PARAMS;
1134typedef SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS,
1135 *PSP_TROUBLESHOOTER_PARAMS;
1136typedef SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS,
1137 *PSP_POWERMESSAGEWAKE_PARAMS;
1138typedef SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA,
1139 *PSP_DRVINFO_DETAIL_DATA;
1140typedef SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS,
1141 *PSP_BACKUP_QUEUE_PARAMS;
1142typedef SP_REGISTER_CONTROL_STATUSW SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
1143#else
1144typedef SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
1145typedef FILEPATHS_A FILEPATHS, *PFILEPATHS;
1146typedef SOURCE_MEDIA_A SOURCE_MEDIA, *PSOURCE_MEDIA;
1147typedef CABINET_INFO_A CABINET_INFO, *PCABINET_INFO;
1148typedef FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
1149typedef SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS, *PSP_FILE_COPY_PARAMS;
1150typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA,
1151 *PSP_DEVICE_INTERFACE_DETAIL_DATA;
1152typedef SP_INTERFACE_DEVICE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA,
1153 *PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
1154typedef SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA,
1155 *PSP_DEVINFO_LIST_DETAIL_DATA;
1156typedef SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
1157typedef SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS,
1158 *PSP_SELECTDEVICE_PARAMS;
1159typedef SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS,
1160 *PSP_TROUBLESHOOTER_PARAMS;
1161typedef SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS,
1162 *PSP_POWERMESSAGEWAKE_PARAMS;
1163typedef SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA,
1164 *PSP_DRVINFO_DETAIL_DATA;
1165typedef SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS,
1166 *PSP_BACKUP_QUEUE_PARAMS;
1167typedef SP_REGISTER_CONTROL_STATUSA SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
1168#endif /* UNICODE */
1169
1170
1171WINSETUPAPI LONG WINAPI AddTagToGroupOrderList(PCWSTR, DWORD, DWORD);
1172WINSETUPAPI VOID WINAPI AssertFail(LPSTR, UINT, LPSTR);
1173WINSETUPAPI DWORD WINAPI CaptureStringArg(PCWSTR, PWSTR*);
1174WINSETUPAPI BOOL WINAPI DelayedMove(PCWSTR, PCWSTR);
1175WINSETUPAPI BOOL WINAPI DoesUserHavePrivilege(PCWSTR);
1176WINSETUPAPI BOOL WINAPI FileExists(PCWSTR, PWIN32_FIND_DATAW);
1177WINSETUPAPI DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
1178WINSETUPAPI VOID WINAPI InstallHinfSectionA(_In_ HWND, _In_ HINSTANCE, _In_ PCSTR, _In_ INT);
1179WINSETUPAPI VOID WINAPI InstallHinfSectionW(_In_ HWND, _In_ HINSTANCE, _In_ PCWSTR, _In_ INT);
1180WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
1181WINSETUPAPI VOID WINAPI MyFree(PVOID);
1182WINSETUPAPI PVOID WINAPI MyMalloc(DWORD);
1183WINSETUPAPI PVOID WINAPI MyRealloc(PVOID, DWORD);
1184WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE*, PDWORD, PDWORD);
1185WINSETUPAPI DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR*);
1186
1187WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _Reserved_ PVOID, _Reserved_ UINT);
1188WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _Reserved_ PVOID, _Reserved_ UINT);
1189WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
1190WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
1191WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListA(_In_ HDSKSPC, _In_ PCSTR, _In_ LONGLONG, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
1192WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListW(_In_ HDSKSPC, _In_ PCWSTR, _In_ LONGLONG, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
1193WINSETUPAPI BOOL WINAPI SetupAddToSourceListA(_In_ DWORD, _In_ PCSTR);
1194WINSETUPAPI BOOL WINAPI SetupAddToSourceListW(_In_ DWORD, _In_ PCWSTR);
1195WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListA(_In_ HDSKSPC, _In_ LPCSTR, _In_ LONGLONG, _Reserved_ PVOID, _Reserved_ UINT);
1196WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListW(_In_ HDSKSPC, _In_ LPCWSTR, _In_ LONGLONG, _Reserved_ PVOID, _Reserved_ UINT);
1197WINSETUPAPI UINT WINAPI SetupBackupErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ UINT, _In_ DWORD);
1198WINSETUPAPI UINT WINAPI SetupBackupErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ UINT, _In_ DWORD);
1199WINSETUPAPI BOOL WINAPI SetupCancelTemporary(VOID);
1200WINSETUPAPI BOOL WINAPI SetupCloseFileQueue(_In_ HSPFILEQ);
1201WINSETUPAPI VOID WINAPI SetupCloseInfFile(_In_ HINF);
1202WINSETUPAPI VOID WINAPI SetupCloseLog(VOID);
1203WINSETUPAPI BOOL WINAPI SetupCommitFileQueueA(_In_opt_ HWND, _In_ HSPFILEQ, _In_ PSP_FILE_CALLBACK_A, _In_ PVOID);
1204WINSETUPAPI BOOL WINAPI SetupCommitFileQueueW(_In_opt_ HWND, _In_ HSPFILEQ, _In_ PSP_FILE_CALLBACK_W, _In_ PVOID);
1205
1206WINSETUPAPI
1207UINT
1208WINAPI
1209SetupCopyErrorA(
1210 _In_ HWND hwndParent,
1211 _In_opt_ PCSTR DialogTitle,
1212 _In_opt_ PCSTR DiskName,
1213 _In_ PCSTR PathToSource,
1214 _In_ PCSTR SourceFile,
1215 _In_opt_ PCSTR TargetPathFile,
1216 _In_ UINT Win32ErrorCode,
1217 _In_ DWORD Style,
1218 _Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
1219 _In_ DWORD PathBufferSize,
1220 _Out_opt_ PDWORD PathRequiredSize);
1221
1222WINSETUPAPI
1223UINT
1224WINAPI
1225SetupCopyErrorW(
1226 _In_ HWND hwndParent,
1227 _In_opt_ PCWSTR DialogTitle,
1228 _In_opt_ PCWSTR DiskName,
1229 _In_ PCWSTR PathToSource,
1230 _In_ PCWSTR SourceFile,
1231 _In_opt_ PCWSTR TargetPathFile,
1232 _In_ UINT Win32ErrorCode,
1233 _In_ DWORD Style,
1234 _Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
1235 _In_ DWORD PathBufferSize,
1236 _Out_opt_ PDWORD PathRequiredSize);
1237
1238WINSETUPAPI
1239BOOL
1240WINAPI
1241SetupCopyOEMInfA(
1242 _In_ PCSTR SourceInfFileName,
1243 _In_opt_ PCSTR OEMSourceMediaLocation,
1244 _In_ DWORD OEMSourceMediaType,
1245 _In_ DWORD CopyStyle,
1246 _Out_writes_opt_(DestinationInfFileNameSize) PSTR DestinationInfFileName,
1247 _In_ DWORD DestinationInfFileNameSize,
1248 _Out_opt_ PDWORD RequiredSize,
1249 _Out_opt_ PSTR *DestinationInfFileNameComponent);
1250
1251WINSETUPAPI
1252BOOL
1253WINAPI
1254SetupCopyOEMInfW(
1255 _In_ PCWSTR SourceInfFileName,
1256 _In_opt_ PCWSTR OEMSourceMediaLocation,
1257 _In_ DWORD OEMSourceMediaType,
1258 _In_ DWORD CopyStyle,
1259 _Out_writes_opt_(DestinationInfFileNameSize) PWSTR DestinationInfFileName,
1260 _In_ DWORD DestinationInfFileNameSize,
1261 _Out_opt_ PDWORD RequiredSize,
1262 _Out_opt_ PWSTR *DestinationInfFileNameComponent);
1263
1264WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListA(_Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
1265WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListW(_Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
1266WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(_In_ PCSTR, _In_ PCSTR, _In_opt_ PUINT);
1267WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(_In_ PCWSTR, _In_ PCWSTR, _In_opt_ PUINT);
1268WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackA(_In_ PVOID, _In_ UINT, _In_ UINT_PTR, _In_ UINT_PTR);
1269WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackW(_In_ PVOID, _In_ UINT, _In_ UINT_PTR, _In_ UINT_PTR);
1270WINSETUPAPI UINT WINAPI SetupDeleteErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_ UINT, _In_ DWORD);
1271WINSETUPAPI UINT WINAPI SetupDeleteErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ UINT, _In_ DWORD);
1272WINSETUPAPI BOOL WINAPI SetupDestroyDiskSpaceList(_Inout_ HDSKSPC);
1273WINSETUPAPI BOOL WINAPI SetupDiAskForOEMDisk(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
1274
1275_Success_(return != FALSE)
1276WINSETUPAPI
1277BOOL
1278WINAPI
1279SetupDiBuildClassInfoList(
1280 _In_ DWORD Flags,
1281 _Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1282 _In_ DWORD ClassGuidListSize,
1283 _Out_ PDWORD RequiredSize);
1284
1285_Success_(return != FALSE)
1286WINSETUPAPI
1287BOOL
1288WINAPI
1289SetupDiBuildClassInfoListExA(
1290 _In_ DWORD Flags,
1291 _Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1292 _In_ DWORD ClassGuidListSize,
1293 _Out_ PDWORD RequiredSize,
1294 _In_opt_ PCSTR MachineName,
1295 _Reserved_ PVOID Reserved);
1296
1297_Success_(return != FALSE)
1298WINSETUPAPI
1299BOOL
1300WINAPI
1301SetupDiBuildClassInfoListExW(
1302 _In_ DWORD Flags,
1303 _Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1304 _In_ DWORD ClassGuidListSize,
1305 _Out_ PDWORD RequiredSize,
1306 _In_opt_ PCWSTR MachineName,
1307 _Reserved_ PVOID Reserved);
1308
1309WINSETUPAPI BOOL WINAPI SetupDiBuildDriverInfoList(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _In_ DWORD);
1310WINSETUPAPI BOOL WINAPI SetupDiCallClassInstaller(_In_ DI_FUNCTION, _In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
1311WINSETUPAPI BOOL WINAPI SetupDiCancelDriverInfoSearch(_In_ HDEVINFO);
1312WINSETUPAPI BOOL WINAPI SetupDiChangeState(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
1313
1314_Success_(return != FALSE)
1315WINSETUPAPI
1316BOOL
1317WINAPI
1318SetupDiClassGuidsFromNameA(
1319 _In_ PCSTR ClassName,
1320 _Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1321 _In_ DWORD ClassGuidListSize,
1322 _Out_ PDWORD RequiredSize);
1323
1324_Success_(return != FALSE)
1325WINSETUPAPI
1326BOOL
1327WINAPI
1328SetupDiClassGuidsFromNameW(
1329 _In_ PCWSTR ClassName,
1330 _Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1331 _In_ DWORD ClassGuidListSize,
1332 _Out_ PDWORD RequiredSize);
1333
1334_Success_(return != FALSE)
1335WINSETUPAPI
1336BOOL
1337WINAPI
1338SetupDiClassGuidsFromNameExA(
1339 _In_ PCSTR ClassName,
1340 _Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1341 _In_ DWORD ClassGuidListSize,
1342 _Out_ PDWORD RequiredSize,
1343 _In_opt_ PCSTR MachineName,
1344 _Reserved_ PVOID Reserved);
1345
1346_Success_(return != FALSE)
1347WINSETUPAPI
1348BOOL
1349WINAPI
1350SetupDiClassGuidsFromNameExW(
1351 _In_ PCWSTR ClassName,
1352 _Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
1353 _In_ DWORD ClassGuidListSize,
1354 _Out_ PDWORD RequiredSize,
1355 _In_opt_ PCWSTR MachineName,
1356 _Reserved_ PVOID Reserved);
1357
1358WINSETUPAPI
1359BOOL
1360WINAPI
1361SetupDiClassNameFromGuidA(
1362 _In_ CONST GUID *ClassGuid,
1363 _Out_writes_(ClassNameSize) PSTR ClassName,
1364 _In_ DWORD ClassNameSize,
1365 _Out_opt_ PDWORD RequiredSize);
1366
1367WINSETUPAPI
1368BOOL
1369WINAPI
1370SetupDiClassNameFromGuidW(
1371 _In_ CONST GUID *ClassGuid,
1372 _Out_writes_(ClassNameSize) PWSTR ClassName,
1373 _In_ DWORD ClassNameSize,
1374 _Out_opt_ PDWORD RequiredSize);
1375
1376WINSETUPAPI
1377BOOL
1378WINAPI
1379SetupDiClassNameFromGuidExA(
1380 _In_ CONST GUID *ClassGuid,
1381 _Out_writes_(ClassNameSize) PSTR ClassName,
1382 _In_ DWORD ClassNameSize,
1383 _Out_opt_ PDWORD RequiredSize,
1384 _In_opt_ PCSTR MachineName,
1385 _Reserved_ PVOID Reserved);
1386
1387WINSETUPAPI
1388BOOL
1389WINAPI
1390SetupDiClassNameFromGuidExW(
1391 _In_ CONST GUID *ClassGuid,
1392 _Out_writes_(ClassNameSize) PWSTR ClassName,
1393 _In_ DWORD ClassNameSize,
1394 _Out_opt_ PDWORD RequiredSize,
1395 _In_opt_ PCWSTR MachineName,
1396 _Reserved_ PVOID Reserved);
1397
1398WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoA(_In_ HDEVINFO, _In_ PCSTR, _In_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
1399WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoW(_In_ HDEVINFO, _In_ PCWSTR, _In_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
1400_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoList(_In_opt_ CONST GUID*, _In_opt_ HWND);
1401_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(_In_opt_ CONST GUID*, _In_opt_ HWND, _In_opt_ PCSTR, _Reserved_ PVOID);
1402_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(_In_opt_ CONST GUID*, _In_opt_ HWND, _In_opt_ PCWSTR, _Reserved_ PVOID);
1403WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceA(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_opt_ PCSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
1404WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceW(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_opt_ PCWSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
1405_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyA(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM, _In_opt_ HINF, _In_opt_ PCSTR);
1406_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyW(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM, _In_opt_ HINF, _In_opt_ PCWSTR);
1407_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyA(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ HINF, _In_opt_ PCSTR);
1408_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyW(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ HINF, _In_opt_ PCWSTR);
1409WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInfo(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
1410WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceData(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA);
1411WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceRegKey(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD);
1412WINSETUPAPI BOOL WINAPI SetupDiDeleteDevRegKey(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD);
1413WINSETUPAPI BOOL WINAPI SetupDiDestroyClassImageList(_In_ PSP_CLASSIMAGELIST_DATA);
1414WINSETUPAPI BOOL WINAPI SetupDiDestroyDeviceInfoList(_In_ HDEVINFO);
1415WINSETUPAPI BOOL WINAPI SetupDiDestroyDriverInfoList(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD);
1416WINSETUPAPI INT WINAPI SetupDiDrawMiniIcon(_In_ HDC, _In_ RECT, _In_ INT, _In_ DWORD);
1417WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInfo(_In_ HDEVINFO, _In_ DWORD, _Out_ PSP_DEVINFO_DATA);
1418WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInterfaces(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_ DWORD, _Out_ PSP_DEVICE_INTERFACE_DATA);
1419WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _Out_ PSP_DRVINFO_DATA_A);
1420WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _Out_ PSP_DRVINFO_DATA_W);
1421
1422WINSETUPAPI
1423BOOL
1424WINAPI
1425SetupDiGetActualSectionToInstallA(
1426 _In_ HINF InfHandle,
1427 _In_ PCSTR InfSectionName,
1428 _Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
1429 _In_ DWORD InfSectionWithExtSize,
1430 _Out_opt_ PDWORD RequiredSize,
1431 _Out_opt_ PSTR *Extension);
1432
1433WINSETUPAPI
1434BOOL
1435WINAPI
1436SetupDiGetActualSectionToInstallW(
1437 _In_ HINF InfHandle,
1438 _In_ PCWSTR InfSectionName,
1439 _Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
1440 _In_ DWORD InfSectionWithExtSize,
1441 _Out_opt_ PDWORD RequiredSize,
1442 _Out_opt_ PWSTR *Extension);
1443
1444WINSETUPAPI
1445BOOL
1446WINAPI
1447SetupDiGetActualSectionToInstallExA(
1448 _In_ HINF InfHandle,
1449 _In_ PCSTR InfSectionName,
1450 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
1451 _Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
1452 _In_ DWORD InfSectionWithExtSize,
1453 _Out_opt_ PDWORD RequiredSize,
1454 _Out_opt_ PSTR *Extension,
1455 _Reserved_ PVOID Reserved);
1456
1457WINSETUPAPI
1458BOOL
1459WINAPI
1460SetupDiGetActualSectionToInstallExW(
1461 _In_ HINF InfHandle,
1462 _In_ PCWSTR InfSectionName,
1463 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
1464 _Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
1465 _In_ DWORD InfSectionWithExtSize,
1466 _Out_opt_ PDWORD RequiredSize,
1467 _Out_opt_ PWSTR *Extension,
1468 _Reserved_ PVOID Reserved);
1469
1470WINSETUPAPI BOOL WINAPI SetupDiGetClassBitmapIndex(_In_opt_ CONST GUID*, _Out_ PINT);
1471
1472WINSETUPAPI
1473BOOL
1474WINAPI
1475SetupDiGetClassDescriptionA(
1476 _In_ CONST GUID *ClassGuid,
1477 _Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
1478 _In_ DWORD ClassDescriptionSize,
1479 _Out_opt_ PDWORD RequiredSize);
1480
1481WINSETUPAPI
1482BOOL
1483WINAPI
1484SetupDiGetClassDescriptionW(
1485 _In_ CONST GUID *ClassGuid,
1486 _Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
1487 _In_ DWORD ClassDescriptionSize,
1488 _Out_opt_ PDWORD RequiredSize);
1489
1490WINSETUPAPI
1491BOOL
1492WINAPI
1493SetupDiGetClassDescriptionExA(
1494 _In_ CONST GUID *ClassGuid,
1495 _Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
1496 _In_ DWORD ClassDescriptionSize,
1497 _Out_opt_ PDWORD RequiredSize,
1498 _In_opt_ PCSTR MachineName,
1499 _Reserved_ PVOID Reserved);
1500
1501WINSETUPAPI
1502BOOL
1503WINAPI
1504SetupDiGetClassDescriptionExW(
1505 _In_ CONST GUID *ClassGuid,
1506 _Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
1507 _In_ DWORD ClassDescriptionSize,
1508 _Out_opt_ PDWORD RequiredSize,
1509 _In_opt_ PCWSTR MachineName,
1510 _Reserved_ PVOID Reserved);
1511
1512WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ LPPROPSHEETHEADERA, _In_ DWORD, _Out_opt_ PDWORD, _In_ DWORD);
1513WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ LPPROPSHEETHEADERW, _In_ DWORD, _Out_opt_ PDWORD, _In_ DWORD);
1514_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsA(_In_opt_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD);
1515_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsW(_In_opt_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD);
1516_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExA(_In_opt_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PCSTR, _Reserved_ PVOID);
1517_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExW(_In_opt_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PCWSTR, _Reserved_ PVOID);
1518WINSETUPAPI BOOL WINAPI SetupDiGetClassImageIndex(_In_ PSP_CLASSIMAGELIST_DATA, _In_ CONST GUID*, _Out_ PINT);
1519WINSETUPAPI BOOL WINAPI SetupDiGetClassImageList(_Out_ PSP_CLASSIMAGELIST_DATA);
1520WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExA(_Out_ PSP_CLASSIMAGELIST_DATA, _In_opt_ PCSTR, _Reserved_ PVOID);
1521WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExW(_Out_ PSP_CLASSIMAGELIST_DATA, _In_opt_ PCWSTR, _Reserved_ PVOID);
1522
1523_Success_(return != FALSE)
1524WINSETUPAPI
1525BOOL
1526WINAPI
1527SetupDiGetClassInstallParamsA(
1528 _In_ HDEVINFO DeviceInfoSet,
1529 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1530 _Out_writes_bytes_to_opt_(ClassInstallParamsSize, *RequiredSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
1531 _In_ DWORD ClassInstallParamsSize,
1532 _Out_opt_ PDWORD RequiredSize);
1533
1534_Success_(return != FALSE)
1535WINSETUPAPI
1536BOOL
1537WINAPI
1538SetupDiGetClassInstallParamsW(
1539 _In_ HDEVINFO DeviceInfoSet,
1540 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1541 _Out_writes_bytes_to_opt_(ClassInstallParamsSize, *RequiredSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
1542 _In_ DWORD ClassInstallParamsSize,
1543 _Out_opt_ PDWORD RequiredSize);
1544
1545_Success_(return != FALSE)
1546WINSETUPAPI
1547BOOL
1548WINAPI
1549SetupDiGetClassRegistryPropertyA(
1550 _In_ CONST GUID *ClassGuid,
1551 _In_ DWORD Property,
1552 _Out_opt_ PDWORD PropertyRegDataType,
1553 _Out_writes_bytes_to_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
1554 _In_ DWORD PropertyBufferSize,
1555 _Out_opt_ PDWORD RequiredSize,
1556 _In_opt_ PCSTR MachineName,
1557 _Reserved_ PVOID Reserved);
1558
1559_Success_(return != FALSE)
1560WINSETUPAPI
1561BOOL
1562WINAPI
1563SetupDiGetClassRegistryPropertyW(
1564 _In_ CONST GUID *ClassGuid,
1565 _In_ DWORD Property,
1566 _Out_opt_ PDWORD PropertyRegDataType,
1567 _Out_writes_bytes_to_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
1568 _In_ DWORD PropertyBufferSize,
1569 _Out_opt_ PDWORD RequiredSize,
1570 _In_opt_ PCWSTR MachineName,
1571 _Reserved_ PVOID Reserved);
1572
1573WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListClass(_In_ HDEVINFO, _Out_ LPGUID);
1574WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailA(_In_ HDEVINFO, _Out_ PSP_DEVINFO_LIST_DETAIL_DATA_A);
1575WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailW(_In_ HDEVINFO, _Out_ PSP_DEVINFO_LIST_DETAIL_DATA_W);
1576WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DEVINSTALL_PARAMS_A);
1577WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DEVINSTALL_PARAMS_W);
1578
1579WINSETUPAPI
1580BOOL
1581WINAPI
1582SetupDiGetDeviceInstanceIdA(
1583 _In_ HDEVINFO DeviceInfoSet,
1584 _In_ PSP_DEVINFO_DATA DeviceInfoData,
1585 _Out_writes_opt_(DeviceInstanceIdSize) PSTR DeviceInstanceId,
1586 _In_ DWORD DeviceInstanceIdSize,
1587 _Out_opt_ PDWORD RequiredSize);
1588
1589WINSETUPAPI
1590BOOL
1591WINAPI
1592SetupDiGetDeviceInstanceIdW(
1593 _In_ HDEVINFO DeviceInfoSet,
1594 _In_ PSP_DEVINFO_DATA DeviceInfoData,
1595 _Out_writes_opt_(DeviceInstanceIdSize) PWSTR DeviceInstanceId,
1596 _In_ DWORD DeviceInstanceIdSize,
1597 _Out_opt_ PDWORD RequiredSize);
1598
1599WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceAlias(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _In_ CONST GUID*, _Out_ PSP_DEVICE_INTERFACE_DATA);
1600
1601_Success_(return != FALSE)
1602_At_((LPSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
1603WINSETUPAPI
1604BOOL
1605WINAPI
1606SetupDiGetDeviceInterfaceDetailA(
1607 _In_ HDEVINFO DeviceInfoSet,
1608 _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
1609 _Inout_updates_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
1610 _In_ DWORD DeviceInterfaceDetailDataSize,
1611 _Out_opt_ _Out_range_(>=, sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A)) PDWORD RequiredSize,
1612 _Out_opt_ PSP_DEVINFO_DATA DeviceInfoData);
1613
1614_Success_(return != FALSE)
1615_At_((LPWSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
1616WINSETUPAPI
1617BOOL
1618WINAPI
1619SetupDiGetDeviceInterfaceDetailW(
1620 _In_ HDEVINFO DeviceInfoSet,
1621 _In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
1622 _Out_writes_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
1623 _In_ DWORD DeviceInterfaceDetailDataSize,
1624 _Out_opt_ _Out_range_(>=, sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W)) PDWORD RequiredSize,
1625 _Out_opt_ PSP_DEVINFO_DATA DeviceInfoData);
1626
1627_Success_(return != FALSE)
1628_When_((*PropertyRegDataType == REG_SZ), _At_((PSTR) PropertyBuffer, _Post_valid_))
1629_When_((*PropertyRegDataType == REG_MULTI_SZ), _At_((PZZSTR) PropertyBuffer, _Post_valid_))
1630WINSETUPAPI
1631BOOL
1632WINAPI
1633SetupDiGetDeviceRegistryPropertyA(
1634 _In_ HDEVINFO DeviceInfoSet,
1635 _In_ PSP_DEVINFO_DATA DeviceInfoData,
1636 _In_ DWORD Property,
1637 _Out_opt_ PDWORD PropertyRegDataType,
1638 _Out_writes_bytes_to_opt_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
1639 _In_ DWORD PropertyBufferSize,
1640 _Out_opt_ PDWORD RequiredSize);
1641
1642_Success_(return != FALSE)
1643_When_((*PropertyRegDataType == REG_SZ), _At_((PWSTR) PropertyBuffer, _Post_valid_))
1644_When_((*PropertyRegDataType == REG_MULTI_SZ), _At_((PZZWSTR) PropertyBuffer, _Post_valid_))
1645WINSETUPAPI
1646BOOL
1647WINAPI
1648SetupDiGetDeviceRegistryPropertyW(
1649 _In_ HDEVINFO DeviceInfoSet,
1650 _In_ PSP_DEVINFO_DATA DeviceInfoData,
1651 _In_ DWORD Property,
1652 _Out_opt_ PDWORD PropertyRegDataType,
1653 _Out_writes_bytes_to_opt_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
1654 _In_ DWORD PropertyBufferSize,
1655 _Out_opt_ PDWORD RequiredSize);
1656
1657WINSETUPAPI
1658BOOL
1659WINAPI
1660SetupDiGetDriverInfoDetailA(
1661 _In_ HDEVINFO DeviceInfoSet,
1662 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1663 _In_ PSP_DRVINFO_DATA_A DriverInfoData,
1664 _Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_A DriverInfoDetailData,
1665 _In_ DWORD DriverInfoDetailDataSize,
1666 _Out_opt_ PDWORD RequiredSize);
1667
1668WINSETUPAPI
1669BOOL
1670WINAPI
1671SetupDiGetDriverInfoDetailW(
1672 _In_ HDEVINFO DeviceInfoSet,
1673 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1674 _In_ PSP_DRVINFO_DATA_W DriverInfoData,
1675 _Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData,
1676 _In_ DWORD DriverInfoDetailDataSize,
1677 _Out_opt_ PDWORD RequiredSize);
1678
1679WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_A, _Out_ PSP_DRVINSTALL_PARAMS);
1680WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_W, _Out_ PSP_DRVINSTALL_PARAMS);
1681
1682WINSETUPAPI
1683BOOL
1684WINAPI
1685SetupDiGetHwProfileFriendlyNameA(
1686 _In_ DWORD HwProfile,
1687 _Out_writes_(FriendlyNameSize) PSTR FriendlyName,
1688 _In_ DWORD FriendlyNameSize,
1689 _Out_opt_ PDWORD RequiredSize);
1690
1691WINSETUPAPI
1692BOOL
1693WINAPI
1694SetupDiGetHwProfileFriendlyNameW(
1695 _In_ DWORD HwProfile,
1696 _Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
1697 _In_ DWORD FriendlyNameSize,
1698 _Out_opt_ PDWORD RequiredSize);
1699
1700WINSETUPAPI
1701BOOL
1702WINAPI
1703SetupDiGetHwProfileFriendlyNameExA(
1704 _In_ DWORD HwProfile,
1705 _Out_writes_(FriendlyNameSize) PSTR FriendlyName,
1706 _In_ DWORD FriendlyNameSize,
1707 _Out_opt_ PDWORD RequiredSize,
1708 _In_opt_ PCSTR MachineName,
1709 _Reserved_ PVOID Reserved);
1710
1711WINSETUPAPI
1712BOOL
1713WINAPI
1714SetupDiGetHwProfileFriendlyNameExW(
1715 _In_ DWORD HwProfile,
1716 _Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
1717 _In_ DWORD FriendlyNameSize,
1718 _Out_opt_ PDWORD RequiredSize,
1719 _In_opt_ PCWSTR MachineName,
1720 _Reserved_ PVOID Reserved);
1721
1722WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD);
1723
1724_Success_(return != FALSE)
1725WINSETUPAPI
1726BOOL
1727WINAPI
1728SetupDiGetHwProfileList(
1729 _Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
1730 _In_ DWORD HwProfileListSize,
1731 _Out_ PDWORD RequiredSize,
1732 _Out_opt_ PDWORD CurrentlyActiveIndex);
1733
1734_Success_(return != FALSE)
1735WINSETUPAPI
1736BOOL
1737WINAPI
1738SetupDiGetHwProfileListExA(
1739 _Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
1740 _In_ DWORD HwProfileListSize,
1741 _Out_ PDWORD RequiredSize,
1742 _Out_opt_ PDWORD CurrentlyActiveIndex,
1743 _In_opt_ PCSTR MachineName,
1744 _Reserved_ PVOID Reserved);
1745
1746_Success_(return != FALSE)
1747WINSETUPAPI
1748BOOL
1749WINAPI
1750SetupDiGetHwProfileListExW(
1751 _Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
1752 _In_ DWORD HwProfileListSize,
1753 _Out_ PDWORD RequiredSize,
1754 _Out_opt_ PDWORD CurrentlyActiveIndex,
1755 _In_opt_ PCWSTR MachineName,
1756 _Reserved_ PVOID Reserved);
1757
1758WINSETUPAPI
1759BOOL
1760WINAPI
1761SetupDiGetINFClassA(
1762 _In_ PCSTR InfName,
1763 _Out_ LPGUID ClassGuid,
1764 _Out_writes_(ClassNameSize) PSTR ClassName,
1765 _In_ DWORD ClassNameSize,
1766 _Out_opt_ PDWORD RequiredSize);
1767
1768WINSETUPAPI
1769BOOL
1770WINAPI
1771SetupDiGetINFClassW(
1772 _In_ PCWSTR InfName,
1773 _Out_ LPGUID ClassGuid,
1774 _Out_writes_(ClassNameSize) PWSTR ClassName,
1775 _In_ DWORD ClassNameSize,
1776 _Out_opt_ PDWORD RequiredSize);
1777
1778WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDevice(_In_ HDEVINFO, _Out_ PSP_DEVINFO_DATA);
1779WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DRVINFO_DATA_A);
1780WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DRVINFO_DATA_W);
1781WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardPage(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_INSTALLWIZARD_DATA, _In_ DWORD, _In_ DWORD);
1782WINSETUPAPI BOOL WINAPI SetupDiInstallClassA(_In_opt_ HWND, _In_ PCSTR, _In_ DWORD, _In_opt_ HSPFILEQ);
1783WINSETUPAPI BOOL WINAPI SetupDiInstallClassW(_In_opt_ HWND, _In_ PCWSTR, _In_ DWORD, _In_opt_ HSPFILEQ);
1784WINSETUPAPI BOOL WINAPI SetupDiInstallClassExA(_In_opt_ HWND, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ HSPFILEQ, _In_opt_ CONST GUID*, _Reserved_ PVOID, _Reserved_ PVOID);
1785WINSETUPAPI BOOL WINAPI SetupDiInstallClassExW(_In_opt_ HWND, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ HSPFILEQ, _In_opt_ CONST GUID*, _Reserved_ PVOID, _Reserved_ PVOID);
1786WINSETUPAPI BOOL WINAPI SetupDiInstallDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
1787WINSETUPAPI BOOL WINAPI SetupDiInstallDeviceInterfaces(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
1788WINSETUPAPI BOOL WINAPI SetupDiInstallDriverFiles(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
1789WINSETUPAPI BOOL WINAPI SetupDiLoadClassIcon(_In_ CONST GUID*, _Out_opt_ HICON*, _Out_opt_ PINT);
1790WINSETUPAPI BOOL WINAPI SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA);
1791_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKey(_In_opt_ CONST GUID*, _In_ REGSAM);
1792_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExA(_In_opt_ CONST GUID*, _In_ REGSAM, _In_ DWORD, _In_opt_ PCSTR, _Reserved_ PVOID);
1793_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExW(_In_opt_ CONST GUID*, _In_ REGSAM, _In_ DWORD, _In_opt_ PCWSTR, _Reserved_ PVOID);
1794WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoA(_In_ HDEVINFO, _In_ PCSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
1795WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoW(_In_ HDEVINFO, _In_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
1796WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceA(_In_ HDEVINFO, _In_ PCSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
1797WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceW(_In_ HDEVINFO, _In_ PCWSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
1798_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenDeviceInterfaceRegKey(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM);
1799_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenDevRegKey(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ REGSAM);
1800WINSETUPAPI BOOL WINAPI SetupDiRegisterCoDeviceInstallers(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
1801WINSETUPAPI BOOL WINAPI SetupDiRegisterDeviceInfo(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA, _In_ DWORD, _In_opt_ PSP_DETSIG_CMPPROC, _In_opt_ PVOID, _Out_opt_ PSP_DEVINFO_DATA);
1802WINSETUPAPI BOOL WINAPI SetupDiRemoveDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
1803WINSETUPAPI BOOL WINAPI SetupDiRemoveDeviceInterface(_In_ HDEVINFO, _Inout_ PSP_DEVICE_INTERFACE_DATA);
1804WINSETUPAPI BOOL WINAPI SetupDiRestartDevices(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
1805WINSETUPAPI BOOL WINAPI SetupDiSelectBestCompatDrv(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA);
1806WINSETUPAPI BOOL WINAPI SetupDiSelectDevice(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA);
1807WINSETUPAPI BOOL WINAPI SetupDiSelectOEMDrv(_In_opt_ HWND, _In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
1808
1809WINSETUPAPI
1810BOOL
1811WINAPI
1812SetupDiSetClassInstallParamsA(
1813 _In_ HDEVINFO DeviceInfoSet,
1814 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1815 _In_reads_bytes_opt_(ClassInstallParamsSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
1816 _In_ DWORD ClassInstallParamsSize);
1817
1818WINSETUPAPI
1819BOOL
1820WINAPI
1821SetupDiSetClassInstallParamsW(
1822 _In_ HDEVINFO DeviceInfoSet,
1823 _In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
1824 _In_reads_bytes_opt_(ClassInstallParamsSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
1825 _In_ DWORD ClassInstallParamsSize);
1826
1827WINSETUPAPI
1828BOOL
1829WINAPI
1830SetupDiSetClassRegistryPropertyA(
1831 _In_ CONST GUID *ClassGuid,
1832 _In_ DWORD Property,
1833 _In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
1834 _In_ DWORD PropertyBufferSize,
1835 _In_opt_ PCSTR MachineName,
1836 _Reserved_ PVOID Reserved);
1837
1838WINSETUPAPI
1839BOOL
1840WINAPI
1841SetupDiSetClassRegistryPropertyW(
1842 _In_ CONST GUID *ClassGuid,
1843 _In_ DWORD Property,
1844 _In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
1845 _In_ DWORD PropertyBufferSize,
1846 _In_opt_ PCWSTR MachineName,
1847 _Reserved_ PVOID Reserved);
1848
1849WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DEVINSTALL_PARAMS_A);
1850WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DEVINSTALL_PARAMS_W);
1851
1852WINSETUPAPI
1853BOOL
1854WINAPI
1855SetupDiSetDeviceRegistryPropertyA(
1856 _In_ HDEVINFO DeviceInfoSet,
1857 _Inout_ PSP_DEVINFO_DATA DeviceInfoData,
1858 _In_ DWORD Property,
1859 _In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
1860 _In_ DWORD PropertyBufferSize);
1861
1862WINSETUPAPI
1863BOOL
1864WINAPI
1865SetupDiSetDeviceRegistryPropertyW(
1866 _In_ HDEVINFO DeviceInfoSet,
1867 _Inout_ PSP_DEVINFO_DATA DeviceInfoData,
1868 _In_ DWORD Property,
1869 _In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
1870 _In_ DWORD PropertyBufferSize);
1871
1872WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_A, _In_ PSP_DRVINSTALL_PARAMS);
1873WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_W, _In_ PSP_DRVINSTALL_PARAMS);
1874WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDevice(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
1875WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverA(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _Inout_opt_ PSP_DRVINFO_DATA_A);
1876WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverW(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _Inout_opt_ PSP_DRVINFO_DATA_W);
1877WINSETUPAPI BOOL WINAPI SetupDiUnremoveDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
1878WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListA(_In_ HDSKSPC, _Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
1879WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListW(_In_ HDSKSPC, _Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
1880WINSETUPAPI BOOL WINAPI SetupFindFirstLineA(_In_ HINF, _In_ PCSTR, _In_opt_ PCSTR, _Out_ PINFCONTEXT);
1881WINSETUPAPI BOOL WINAPI SetupFindFirstLineW(_In_ HINF, _In_ PCWSTR, _In_opt_ PCWSTR, _Out_ PINFCONTEXT);
1882WINSETUPAPI BOOL WINAPI SetupFindNextLine(_In_ PINFCONTEXT, _Out_ PINFCONTEXT);
1883WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineA(_In_ PINFCONTEXT, _In_opt_ PCSTR, _Out_ PINFCONTEXT);
1884WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineW(_In_ PINFCONTEXT, _In_opt_ PCWSTR, _Out_ PINFCONTEXT);
1885WINSETUPAPI BOOL WINAPI SetupFreeA(PCSTR**,UINT);
1886WINSETUPAPI BOOL WINAPI SetupFreeW(PCWSTR**,UINT);
1887WINSETUPAPI BOOL WINAPI SetupGetBackupInformationA(_In_ HSPFILEQ, _Inout_ PSP_BACKUP_QUEUE_PARAMS_A);
1888WINSETUPAPI BOOL WINAPI SetupGetBackupInformationW(_In_ HSPFILEQ, _Inout_ PSP_BACKUP_QUEUE_PARAMS_W);
1889
1890_Success_(return != FALSE)
1891WINSETUPAPI
1892BOOL
1893WINAPI
1894SetupGetBinaryField(
1895 _In_ PINFCONTEXT Context,
1896 _In_ DWORD FieldIndex,
1897 _Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PBYTE ReturnBuffer,
1898 _In_ DWORD ReturnBufferSize,
1899 _Out_opt_ LPDWORD RequiredSize);
1900
1901WINSETUPAPI DWORD WINAPI SetupGetFieldCount(_In_ PINFCONTEXT);
1902WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(_In_ PCSTR, _Out_ PSTR*, _Out_ PDWORD, _Out_ PDWORD, _Out_ PUINT);
1903WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(_In_ PCWSTR, _Out_ PWSTR*, _Out_ PDWORD, _Out_ PDWORD, _Out_ PUINT);
1904
1905WINSETUPAPI
1906BOOL
1907WINAPI
1908SetupGetFileCompressionInfoExA(
1909 _In_ PCSTR SourceFileName,
1910 _In_reads_opt_(ActualSourceFileNameBufferLen) PSTR ActualSourceFileNameBuffer,
1911 _In_ DWORD ActualSourceFileNameBufferLen,
1912 _Out_opt_ PDWORD RequiredBufferLen,
1913 _Out_ PDWORD SourceFileSize,
1914 _Out_ PDWORD TargetFileSize,
1915 _Out_ PUINT CompressionType);
1916
1917WINSETUPAPI
1918BOOL
1919WINAPI
1920SetupGetFileCompressionInfoExW(
1921 _In_ PCWSTR SourceFileName,
1922 _In_reads_opt_(ActualSourceFileNameBufferLen) PWSTR ActualSourceFileNameBuffer,
1923 _In_ DWORD ActualSourceFileNameBufferLen,
1924 _Out_opt_ PDWORD RequiredBufferLen,
1925 _Out_ PDWORD SourceFileSize,
1926 _Out_ PDWORD TargetFileSize,
1927 _Out_ PUINT CompressionType);
1928
1929WINSETUPAPI
1930BOOL
1931WINAPI
1932SetupGetInfFileListA(
1933 _In_opt_ PCSTR DirectoryPath,
1934 _In_ DWORD InfStyle,
1935 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
1936 _In_ DWORD ReturnBufferSize,
1937 _Out_opt_ PDWORD RequiredSize);
1938
1939WINSETUPAPI
1940BOOL
1941WINAPI
1942SetupGetInfFileListW(
1943 _In_opt_ PCWSTR DirectoryPath,
1944 _In_ DWORD InfStyle,
1945 _Out_writes_(ReturnBufferSize) PWSTR ReturnBuffer,
1946 _In_ DWORD ReturnBufferSize,
1947 _Out_opt_ PDWORD RequiredSize);
1948
1949_Success_(return != FALSE)
1950WINSETUPAPI
1951BOOL
1952WINAPI
1953SetupGetInfInformationA(
1954 _In_ LPCVOID InfSpec,
1955 _In_ DWORD SearchControl,
1956 _Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PSP_INF_INFORMATION ReturnBuffer,
1957 _In_ DWORD ReturnBufferSize,
1958 _Out_opt_ PDWORD RequiredSize);
1959
1960_Success_(return != FALSE)
1961WINSETUPAPI
1962BOOL
1963WINAPI
1964SetupGetInfInformationW(
1965 _In_ LPCVOID InfSpec,
1966 _In_ DWORD SearchControl,
1967 _Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PSP_INF_INFORMATION ReturnBuffer,
1968 _In_ DWORD ReturnBufferSize,
1969 _Out_opt_ PDWORD RequiredSize);
1970
1971WINSETUPAPI BOOL WINAPI SetupGetIntField(_In_ PINFCONTEXT, _In_ DWORD, _Out_ PINT);
1972WINSETUPAPI BOOL WINAPI SetupGetLineByIndexA(_In_ HINF, _In_ PCSTR, _In_ DWORD, _Out_ PINFCONTEXT);
1973WINSETUPAPI BOOL WINAPI SetupGetLineByIndexW(_In_ HINF, _In_ PCWSTR, _In_ DWORD, _Out_ PINFCONTEXT);
1974WINSETUPAPI LONG WINAPI SetupGetLineCountA(_In_ HINF, _In_ PCSTR);
1975WINSETUPAPI LONG WINAPI SetupGetLineCountW(_In_ HINF, _In_ PCWSTR);
1976
1977WINSETUPAPI
1978BOOL
1979WINAPI
1980SetupGetLineTextA(
1981 _In_opt_ PINFCONTEXT Context,
1982 _In_opt_ HINF InfHandle,
1983 _In_opt_ PCSTR Section,
1984 _In_opt_ PCSTR Key,
1985 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
1986 _In_ DWORD ReturnBufferSize,
1987 _Out_opt_ PDWORD RequiredSize);
1988
1989WINSETUPAPI
1990BOOL
1991WINAPI
1992SetupGetLineTextW(
1993 _In_opt_ PINFCONTEXT Context,
1994 _In_opt_ HINF InfHandle,
1995 _In_opt_ PCWSTR Section,
1996 _In_opt_ PCWSTR Key,
1997 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
1998 _In_ DWORD ReturnBufferSize,
1999 _Out_opt_ PDWORD RequiredSize);
2000
2001WINSETUPAPI
2002BOOL
2003WINAPI
2004SetupGetMultiSzFieldA(
2005 _In_ PINFCONTEXT Context,
2006 _In_ DWORD FieldIndex,
2007 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2008 _In_ DWORD ReturnBufferSize,
2009 _Out_opt_ LPDWORD RequiredSize);
2010
2011WINSETUPAPI
2012BOOL
2013WINAPI
2014SetupGetMultiSzFieldW(
2015 _In_ PINFCONTEXT Context,
2016 _In_ DWORD FieldIndex,
2017 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2018 _In_ DWORD ReturnBufferSize,
2019 _Out_opt_ LPDWORD RequiredSize);
2020
2021WINSETUPAPI
2022BOOL
2023WINAPI
2024SetupGetSourceFileLocationA(
2025 _In_ HINF InfHandle,
2026 _In_opt_ PINFCONTEXT InfContext,
2027 _In_opt_ PCSTR FileName,
2028 _Out_ PUINT SourceId,
2029 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2030 _In_ DWORD ReturnBufferSize,
2031 _Out_opt_ PDWORD RequiredSize);
2032
2033WINSETUPAPI
2034BOOL
2035WINAPI
2036SetupGetSourceFileLocationW(
2037 _In_ HINF InfHandle,
2038 _In_opt_ PINFCONTEXT InfContext,
2039 _In_opt_ PCWSTR FileName,
2040 _Out_ PUINT SourceId,
2041 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2042 _In_ DWORD ReturnBufferSize,
2043 _Out_opt_ PDWORD RequiredSize);
2044
2045WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeA(_In_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _Out_ PDWORD, _In_ UINT);
2046WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeW(_In_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _Out_ PDWORD, _In_ UINT);
2047
2048WINSETUPAPI
2049BOOL
2050WINAPI
2051SetupGetSourceInfoA(
2052 _In_ HINF InfHandle,
2053 _In_ UINT SourceId,
2054 _In_ UINT InfoDesired,
2055 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2056 _In_ DWORD ReturnBufferSize,
2057 _Out_opt_ PDWORD RequiredSize);
2058
2059WINSETUPAPI
2060BOOL
2061WINAPI
2062SetupGetSourceInfoW(
2063 _In_ HINF InfHandle,
2064 _In_ UINT SourceId,
2065 _In_ UINT InfoDesired,
2066 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2067 _In_ DWORD ReturnBufferSize,
2068 _Out_opt_ PDWORD RequiredSize);
2069
2070WINSETUPAPI
2071BOOL
2072WINAPI
2073SetupGetStringFieldA(
2074 _In_ PINFCONTEXT Context,
2075 _In_ DWORD FieldIndex,
2076 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2077 _In_ DWORD ReturnBufferSize,
2078 _Out_opt_ PDWORD RequiredSize);
2079
2080WINSETUPAPI
2081BOOL
2082WINAPI
2083SetupGetStringFieldW(
2084 _In_ PINFCONTEXT Context,
2085 _In_ DWORD FieldIndex,
2086 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2087 _In_ DWORD ReturnBufferSize,
2088 _Out_opt_ PDWORD RequiredSize);
2089
2090WINSETUPAPI
2091BOOL
2092WINAPI
2093SetupGetTargetPathA(
2094 _In_ HINF InfHandle,
2095 _In_opt_ PINFCONTEXT InfContext,
2096 _In_opt_ PCSTR Section,
2097 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2098 _In_ DWORD ReturnBufferSize,
2099 _Out_opt_ PDWORD RequiredSize);
2100
2101WINSETUPAPI
2102BOOL
2103WINAPI
2104SetupGetTargetPathW(
2105 _In_ HINF InfHandle,
2106 _In_opt_ PINFCONTEXT InfContext,
2107 _In_opt_ PCWSTR Section,
2108 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2109 _In_ DWORD ReturnBufferSize,
2110 _Out_opt_ PDWORD RequiredSize);
2111
2112WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallback(_In_opt_ HWND);
2113WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallbackEx(_In_opt_ HWND, _In_opt_ HWND, _In_ UINT, _Reserved_ DWORD, _Reserved_ PVOID);
2114WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogA(_In_opt_ PCSTR, _In_ DWORD);
2115WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogW(_In_opt_ PCWSTR, _In_ DWORD);
2116WINSETUPAPI BOOL WINAPI SetupInstallFileA(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID);
2117WINSETUPAPI BOOL WINAPI SetupInstallFileW(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID);
2118WINSETUPAPI BOOL WINAPI SetupInstallFileExA(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _Out_ PBOOL);
2119WINSETUPAPI BOOL WINAPI SetupInstallFileExW(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _Out_ PBOOL);
2120WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionA(_In_ HINF, _In_opt_ HINF, _In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR, _In_ UINT);
2121WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionW(_In_ HINF, _In_opt_ HINF, _In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ UINT);
2122WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionA(_In_opt_ HWND, _In_ HINF, _In_ PCSTR, _In_ UINT, _In_opt_ HKEY, _In_opt_ PCSTR, _In_ UINT, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
2123WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionW(_In_opt_ HWND, _In_ HINF, _In_ PCWSTR, _In_ UINT, _In_opt_ HKEY, _In_opt_ PCWSTR, _In_ UINT, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
2124WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionA(_In_ HINF, _In_ PCSTR, _In_ DWORD);
2125WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionW(_In_ HINF, _In_ PCWSTR, _In_ DWORD);
2126WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExA(_In_ HINF, _In_ PCSTR, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Reserved_ PVOID, _Reserved_ PVOID);
2127WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExW(_In_ HINF, _In_ PCWSTR, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Reserved_ PVOID, _Reserved_ PVOID);
2128WINSETUPAPI BOOL WINAPI SetupIterateCabinetA(_In_ PCSTR, _Reserved_ DWORD, _In_ PSP_FILE_CALLBACK_A, _In_ PVOID);
2129WINSETUPAPI BOOL WINAPI SetupIterateCabinetW(_In_ PCWSTR, _Reserved_ DWORD, _In_ PSP_FILE_CALLBACK_W, _In_ PVOID);
2130WINSETUPAPI BOOL WINAPI SetupLogErrorA(_In_ LPCSTR, _In_ LogSeverity);
2131WINSETUPAPI BOOL WINAPI SetupLogErrorW(_In_ LPCWSTR, _In_ LogSeverity);
2132WINSETUPAPI BOOL WINAPI SetupLogFileA(_In_ HSPFILELOG, _In_opt_ PCSTR, _In_ PCSTR, _In_ PCSTR, _In_ DWORD, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
2133WINSETUPAPI BOOL WINAPI SetupLogFileW(_In_ HSPFILELOG, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ PCWSTR, _In_ DWORD, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
2134
2135WINSETUPAPI
2136BOOL
2137WINAPI
2138SetupOpenAppendInfFileA(
2139 _In_opt_ PCSTR FileName,
2140 _In_ HINF InfHandle,
2141 _Out_opt_ PUINT ErrorLine);
2142
2143WINSETUPAPI
2144BOOL
2145WINAPI
2146SetupOpenAppendInfFileW(
2147 _In_opt_ PCWSTR FileName,
2148 _In_ HINF InfHandle,
2149 _Out_opt_ PUINT ErrorLine);
2150
2151WINSETUPAPI HSPFILEQ WINAPI SetupOpenFileQueue(VOID);
2152
2153WINSETUPAPI
2154HINF
2155WINAPI
2156SetupOpenInfFileA(
2157 _In_ PCSTR FileName,
2158 _In_opt_ PCSTR InfClass,
2159 _In_ DWORD InfStyle,
2160 _Out_opt_ PUINT ErrorLine);
2161
2162WINSETUPAPI
2163HINF
2164WINAPI
2165SetupOpenInfFileW(
2166 _In_ PCWSTR FileName,
2167 _In_opt_ PCWSTR InfClass,
2168 _In_ DWORD InfStyle,
2169 _Out_opt_ PUINT ErrorLine);
2170
2171WINSETUPAPI BOOL WINAPI SetupOpenLog(_In_ BOOL);
2172WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
2173
2174WINSETUPAPI
2175UINT
2176WINAPI
2177SetupPromptForDiskA(
2178 _In_ HWND hwndParent,
2179 _In_opt_ PCSTR DialogTitle,
2180 _In_opt_ PCSTR DiskName,
2181 _In_opt_ PCSTR PathToSource,
2182 _In_ PCSTR FileSought,
2183 _In_opt_ PCSTR TagFile,
2184 _In_ DWORD DiskPromptStyle,
2185 _Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
2186 _In_ DWORD PathBufferSize,
2187 _Out_opt_ PDWORD PathRequiredSize);
2188
2189WINSETUPAPI
2190UINT
2191WINAPI
2192SetupPromptForDiskW(
2193 _In_ HWND hwndParent,
2194 _In_opt_ PCWSTR DialogTitle,
2195 _In_opt_ PCWSTR DiskName,
2196 _In_opt_ PCWSTR PathToSource,
2197 _In_ PCWSTR FileSought,
2198 _In_opt_ PCWSTR TagFile,
2199 _In_ DWORD DiskPromptStyle,
2200 _Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
2201 _In_ DWORD PathBufferSize,
2202 _Out_opt_ PDWORD PathRequiredSize);
2203
2204WINSETUPAPI INT WINAPI SetupPromptReboot(_In_opt_ HSPFILEQ, _In_opt_ HWND, _In_ BOOL);
2205WINSETUPAPI BOOL WINAPI SetupQueryA(DWORD,PCSTR**,PUINT);
2206WINSETUPAPI BOOL WINAPI SetupQueryW(DWORD,PCWSTR**,PUINT);
2207
2208WINSETUPAPI
2209BOOL
2210WINAPI
2211SetupQueryDrivesInDiskSpaceListA(
2212 _In_ HDSKSPC DiskSpace,
2213 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2214 _In_ DWORD ReturnBufferSize,
2215 _Out_opt_ PDWORD RequiredSize);
2216
2217WINSETUPAPI
2218BOOL
2219WINAPI
2220SetupQueryDrivesInDiskSpaceListW(
2221 _In_ HDSKSPC DiskSpace,
2222 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2223 _In_ DWORD ReturnBufferSize,
2224 _Out_opt_ PDWORD RequiredSize);
2225
2226WINSETUPAPI
2227BOOL
2228WINAPI
2229SetupQueryFileLogA(
2230 _In_ HSPFILELOG FileLogHandle,
2231 _In_opt_ PCSTR LogSectionName,
2232 _In_ PCSTR TargetFilename,
2233 _In_ SetupFileLogInfo DesiredInfo,
2234 _Out_writes_opt_(ReturnBufferSize) PSTR DataOut,
2235 _In_ DWORD ReturnBufferSize,
2236 _Out_opt_ PDWORD RequiredSize);
2237
2238WINSETUPAPI
2239BOOL
2240WINAPI
2241SetupQueryFileLogW(
2242 _In_ HSPFILELOG FileLogHandle,
2243 _In_opt_ PCWSTR LogSectionName,
2244 _In_ PCWSTR TargetFilename,
2245 _In_ SetupFileLogInfo DesiredInfo,
2246 _Out_writes_opt_(ReturnBufferSize) PWSTR DataOut,
2247 _In_ DWORD ReturnBufferSize,
2248 _Out_opt_ PDWORD RequiredSize);
2249
2250WINSETUPAPI
2251BOOL
2252WINAPI
2253SetupQueryInfFileInformationA(
2254 _In_ PSP_INF_INFORMATION InfInformation,
2255 _In_ UINT InfIndex,
2256 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2257 _In_ DWORD ReturnBufferSize,
2258 _Out_opt_ PDWORD RequiredSize);
2259
2260WINSETUPAPI
2261BOOL
2262WINAPI
2263SetupQueryInfFileInformationW(
2264 _In_ PSP_INF_INFORMATION InfInformation,
2265 _In_ UINT InfIndex,
2266 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2267 _In_ DWORD ReturnBufferSize,
2268 _Out_opt_ PDWORD RequiredSize);
2269
2270WINSETUPAPI
2271BOOL
2272WINAPI
2273SetupQueryInfOriginalFileInformationA(
2274 _In_ PSP_INF_INFORMATION InfInformation,
2275 _In_ UINT InfIndex,
2276 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
2277 _Out_ PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo);
2278
2279WINSETUPAPI
2280BOOL
2281WINAPI
2282SetupQueryInfOriginalFileInformationW(
2283 _In_ PSP_INF_INFORMATION InfInformation,
2284 _In_ UINT InfIndex,
2285 _In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
2286 _Out_ PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo);
2287
2288WINSETUPAPI
2289BOOL
2290WINAPI
2291SetupQueryInfVersionInformationA(
2292 _In_ PSP_INF_INFORMATION InfInformation,
2293 _In_ UINT InfIndex,
2294 _In_opt_ PCSTR Key,
2295 _Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
2296 _In_ DWORD ReturnBufferSize,
2297 _Out_opt_ PDWORD RequiredSize);
2298
2299WINSETUPAPI
2300BOOL
2301WINAPI
2302SetupQueryInfVersionInformationW(
2303 _In_ PSP_INF_INFORMATION InfInformation,
2304 _In_ UINT InfIndex,
2305 _In_opt_ PCWSTR Key,
2306 _Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
2307 _In_ DWORD ReturnBufferSize,
2308 _Out_opt_ PDWORD RequiredSize);
2309
2310WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(_In_ HDSKSPC, _In_ PCSTR, _Out_ LONGLONG*, _Reserved_ PVOID, _Reserved_ UINT);
2311WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveW(_In_ HDSKSPC, _In_ PCWSTR, _Out_ LONGLONG*, _Reserved_ PVOID, _Reserved_ UINT);
2312WINSETUPAPI BOOL WINAPI SetupQueueCopyA(_In_ HSPFILEQ, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
2313WINSETUPAPI BOOL WINAPI SetupQueueCopyW(_In_ HSPFILEQ, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
2314WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectA(_In_ PSP_FILE_COPY_PARAMS_A);
2315WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectW(_In_ PSP_FILE_COPY_PARAMS_W);
2316WINSETUPAPI BOOL WINAPI SetupQueueCopySectionA(_In_ HSPFILEQ, _In_opt_ PCSTR, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ DWORD);
2317WINSETUPAPI BOOL WINAPI SetupQueueCopySectionW(_In_ HSPFILEQ, _In_opt_ PCWSTR, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ DWORD);
2318WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
2319WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
2320WINSETUPAPI BOOL WINAPI SetupQueueDeleteA(_In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR);
2321WINSETUPAPI BOOL WINAPI SetupQueueDeleteW(_In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR);
2322WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCSTR);
2323WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR);
2324WINSETUPAPI BOOL WINAPI SetupQueueRenameA(_In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR);
2325WINSETUPAPI BOOL WINAPI SetupQueueRenameW(_In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR);
2326WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCSTR);
2327WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR);
2328WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryA(_In_ HSPFILELOG, _In_opt_ PCSTR, _In_opt_ PCSTR);
2329WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryW(_In_ HSPFILELOG, _In_opt_ PCWSTR, _In_opt_ PCWSTR);
2330WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListA(_In_ HDSKSPC, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
2331WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListW(_In_ HDSKSPC, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
2332WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListA(_In_ DWORD, _In_ PCSTR);
2333WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListW(_In_ DWORD, _In_ PCWSTR);
2334WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _Reserved_ PVOID, _Reserved_ UINT);
2335WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _Reserved_ PVOID, _Reserved_ UINT);
2336WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
2337WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
2338WINSETUPAPI UINT WINAPI SetupRenameErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_ PCSTR, _In_ UINT, _In_ DWORD);
2339WINSETUPAPI UINT WINAPI SetupRenameErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ PCWSTR, _In_ UINT, _In_ DWORD);
2340WINSETUPAPI BOOL WINAPI SetupScanFileQueueA(_In_ HSPFILEQ, _In_ DWORD, _In_opt_ HWND, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _Out_ PDWORD);
2341WINSETUPAPI BOOL WINAPI SetupScanFileQueueW(_In_ HSPFILEQ, _In_ DWORD, _In_opt_ HWND, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _Out_ PDWORD);
2342WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdA(_In_ HINF, _In_ DWORD, _In_opt_ PCSTR);
2343WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdW(_In_ HINF, _In_ DWORD, _In_opt_ PCWSTR);
2344WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExA(_In_ HINF, _In_ DWORD, _In_opt_ PCSTR, _In_ DWORD, _Reserved_ DWORD, _Reserved_ PVOID);
2345WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExW(_In_ HINF, _In_ DWORD, _In_opt_ PCWSTR, _In_ DWORD, _Reserved_ DWORD, _Reserved_ PVOID);
2346WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformA(_In_ HSPFILEQ, _In_opt_ PSP_ALTPLATFORM_INFO, _In_opt_ PCSTR);
2347WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformW(_In_ HSPFILEQ, _In_opt_ PSP_ALTPLATFORM_INFO, _In_opt_ PCWSTR);
2348WINSETUPAPI BOOL WINAPI SetupSetNonInteractiveMode(_In_ BOOL);
2349WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideA(_In_opt_ PCSTR);
2350WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideW(_In_opt_ PCWSTR);
2351
2352WINSETUPAPI
2353BOOL
2354WINAPI
2355SetupSetSourceListA(
2356 _In_ DWORD Flags,
2357 _In_reads_(SourceCount) PCSTR *SourceList,
2358 _In_ UINT SourceCount);
2359
2360WINSETUPAPI
2361BOOL
2362WINAPI
2363SetupSetSourceListW(
2364 _In_ DWORD Flags,
2365 _In_reads_(SourceCount) PCWSTR *SourceList,
2366 _In_ UINT SourceCount);
2367
2368WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(_In_ PVOID);
2369WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(_In_ HSPFILELOG);
2370
2371WINSETUPAPI
2372BOOL
2373WINAPI
2374SetupUninstallOEMInfA(
2375 _In_ PCSTR InfFileName,
2376 _In_ DWORD Flags,
2377 _In_ PVOID Reserved);
2378
2379WINSETUPAPI
2380BOOL
2381WINAPI
2382SetupUninstallOEMInfW(
2383 _In_ PCWSTR InfFileName,
2384 _In_ DWORD Flags,
2385 _In_ PVOID Reserved);
2386
2387WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
2388
2389
2390WINSETUPAPI DWORD WINAPI pSetupCaptureAndConvertAnsiArg(PCSTR, PWSTR*);
2391WINSETUPAPI VOID WINAPI pSetupCenterWindowRelativeToParent(HWND);
2392WINSETUPAPI BOOL WINAPI pSetupConcatenatePaths(LPWSTR, LPCWSTR, DWORD, LPDWORD);
2393WINSETUPAPI PWSTR WINAPI pSetupDuplicateString(PCWSTR);
2394WINSETUPAPI BOOL WINAPI pSetupEnablePrivilege(PCWSTR, BOOL);
2395WINSETUPAPI PWSTR WINAPI pSetupGetFileTitle(PCWSTR);
2396WINSETUPAPI BOOL WINAPI pSetupGetVersionInfoFromImage(LPWSTR, PULARGE_INTEGER, LPWORD);
2397WINSETUPAPI DWORD WINAPI pSetupGuidFromString(PCWSTR, LPGUID);
2398WINSETUPAPI BOOL WINAPI pSetupIsGuidNull(LPGUID);
2399WINSETUPAPI BOOL WINAPI pSetupIsUserAdmin(VOID);
2400WINSETUPAPI PWSTR WINAPI pSetupMultiByteToUnicode(PCSTR, UINT);
2401WINSETUPAPI DWORD WINAPI pSetupOpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID*);
2402WINSETUPAPI DWORD WINAPI pSetupStringFromGuid(LPGUID, PWSTR, DWORD);
2403
2404
2405WINSETUPAPI DWORD WINAPI pSetupStringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
2406WINSETUPAPI DWORD WINAPI pSetupStringTableAddStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD);
2407WINSETUPAPI VOID WINAPI pSetupStringTableDestroy(HSTRING_TABLE);
2408WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableDuplicate(HSTRING_TABLE);
2409WINSETUPAPI BOOL WINAPI pSetupStringTableGetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
2410WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableInitialize(VOID);
2411WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableInitializeEx(DWORD, DWORD);
2412WINSETUPAPI DWORD WINAPI pSetupStringTableLookUpString(HSTRING_TABLE, LPWSTR, DWORD);
2413WINSETUPAPI DWORD WINAPI pSetupStringTableLookUpStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD);
2414WINSETUPAPI BOOL WINAPI pSetupStringTableSetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
2415WINSETUPAPI LPWSTR WINAPI pSetupStringTableStringFromId(HSTRING_TABLE, DWORD);
2416WINSETUPAPI BOOL WINAPI pSetupStringTableStringFromIdEx(HSTRING_TABLE, DWORD, LPWSTR, LPDWORD);
2417
2418WINSETUPAPI PSTR WINAPI pSetupUnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
2419WINSETUPAPI BOOL WINAPI pSetupUnmapAndCloseFile(HANDLE, HANDLE, PVOID);
2420
2421
2422WINSETUPAPI DWORD WINAPI TakeOwnershipOfFile(PCWSTR);
2423WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
2424
2425
2426/* for backward compatability */
2427#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
2428#define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
2429#define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW
2430#define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW
2431#define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA
2432#define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
2433#define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA
2434#define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA
2435
2436#ifdef UNICODE
2437#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W
2438#define InstallHinfSection InstallHinfSectionW
2439#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW
2440#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW
2441#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW
2442#define SetupAddToSourceList SetupAddToSourceListW
2443#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW
2444#define SetupBackupError SetupBackupErrorW
2445#define SetupCommitFileQueue SetupCommitFileQueueW
2446#define SetupCopyError SetupCopyErrorW
2447#define SetupCopyOEMInf SetupCopyOEMInfW
2448#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW
2449#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW
2450#define SetupDefaultQueueCallback SetupDefaultQueueCallbackW
2451#define SetupDeleteError SetupDeleteErrorW
2452#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW
2453#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW
2454#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW
2455#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW
2456#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW
2457#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW
2458#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW
2459#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW
2460#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW
2461#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceW
2462#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceW
2463#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW
2464#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoW
2465#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW
2466#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExW
2467#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExW
2468#define SetupDiGetClassDescription SetupDiGetClassDescriptionW
2469#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsW
2470#define SetupDiGetClassDevsEx SetupDiGetClassDevsExW
2471#define SetupDiGetClassDevs SetupDiGetClassDevsW
2472#define SetupDiGetClassImageListEx SetupDiGetClassImageListExW
2473#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsW
2474#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyW
2475#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailW
2476#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsW
2477#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW
2478#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailW
2479#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailW
2480#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyW
2481#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailW
2482#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsW
2483#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExW
2484#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameW
2485#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW
2486#define SetupDiGetINFClass SetupDiGetINFClassW
2487#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverW
2488#define SetupDiInstallClassEx SetupDiInstallClassExW
2489#define SetupDiInstallClass SetupDiInstallClassW
2490#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW
2491#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoW
2492#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceW
2493#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceW
2494#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsW
2495#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyW
2496#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsW
2497#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyW
2498#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsW
2499#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverW
2500#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListW
2501#define SetupFindFirstLine SetupFindFirstLineW
2502#define SetupFindNextMatchLine SetupFindNextMatchLineW
2503#define SetupFreeSourceList SetupFreeSourceListW
2504#define SetupGetBackupInformation SetupGetBackupInformationW
2505#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW
2506#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExW
2507#define SetupGetInfFileList SetupGetInfFileListW
2508#define SetupGetInfInformation SetupGetInfInformationW
2509#define SetupGetLineByIndex SetupGetLineByIndexW
2510#define SetupGetLineCount SetupGetLineCountW
2511#define SetupGetLineText SetupGetLineTextW
2512#define SetupGetMultiSzField SetupGetMultiSzFieldW
2513#define SetupGetSourceFileLocation SetupGetSourceFileLocationW
2514#define SetupGetSourceFileSize SetupGetSourceFileSizeW
2515#define SetupGetSourceInfo SetupGetSourceInfoW
2516#define SetupGetStringField SetupGetStringFieldW
2517#define SetupGetTargetPath SetupGetTargetPathW
2518#define SetupInitializeFileLog SetupInitializeFileLogW
2519#define SetupInstallFileEx SetupInstallFileExW
2520#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionW
2521#define SetupInstallFile SetupInstallFileW
2522#define SetupInstallFromInfSection SetupInstallFromInfSectionW
2523#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExW
2524#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionW
2525#define SetupIterateCabinet SetupIterateCabinetW
2526#define SetupLogError SetupLogErrorW
2527#define SetupLogFile SetupLogFileW
2528#define SetupOpenAppendInfFile SetupOpenAppendInfFileW
2529#define SetupOpenInfFile SetupOpenInfFileW
2530#define SetupPromptForDisk SetupPromptForDiskW
2531#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListW
2532#define SetupQueryFileLog SetupQueryFileLogW
2533#define SetupQueryInfFileInformation SetupQueryInfFileInformationW
2534#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationW
2535#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW
2536#define SetupQuerySourceList SetupQuerySourceListW
2537#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveW
2538#define SetupQueueCopyIndirect SetupQueueCopyIndirectW
2539#define SetupQueueCopySection SetupQueueCopySectionW
2540#define SetupQueueCopy SetupQueueCopyW
2541#define SetupQueueDefaultCopy SetupQueueDefaultCopyW
2542#define SetupQueueDeleteSection SetupQueueDeleteSectionW
2543#define SetupQueueDelete SetupQueueDeleteW
2544#define SetupQueueRenameSection SetupQueueRenameSectionW
2545#define SetupQueueRename SetupQueueRenameW
2546#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryW
2547#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListW
2548#define SetupRemoveFromSourceList SetupRemoveFromSourceListW
2549#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListW
2550#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListW
2551#define SetupRenameError SetupRenameErrorW
2552#define SetupScanFileQueue SetupScanFileQueueW
2553#define SetupSetDirectoryIdEx SetupSetDirectoryIdExW
2554#define SetupSetDirectoryId SetupSetDirectoryIdW
2555#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW
2556#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW
2557#define SetupSetSourceList SetupSetSourceListW
2558#define SetupUninstallOEMInf SetupUninstallOEMInfW
2559#else
2560#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A
2561#define InstallHinfSection InstallHinfSectionA
2562#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA
2563#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListA
2564#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListA
2565#define SetupAddToSourceList SetupAddToSourceListA
2566#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListA
2567#define SetupBackupError SetupBackupErrorA
2568#define SetupCommitFileQueue SetupCommitFileQueueA
2569#define SetupCopyError SetupCopyErrorA
2570#define SetupCopyOEMInf SetupCopyOEMInfA
2571#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListA
2572#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileA
2573#define SetupDefaultQueueCallback SetupDefaultQueueCallbackA
2574#define SetupDeleteError SetupDeleteErrorA
2575#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExA
2576#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameA
2577#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExA
2578#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidA
2579#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExA
2580#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoA
2581#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExA
2582#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceA
2583#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceA
2584#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyA
2585#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA
2586#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA
2587#define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData
2588#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoA
2589#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA
2590#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExA
2591#define SetupDiGetClassDescription SetupDiGetClassDescriptionA
2592#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExA
2593#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsA
2594#define SetupDiGetClassDevs SetupDiGetClassDevsA
2595#define SetupDiGetClassDevsEx SetupDiGetClassDevsExA
2596#define SetupDiGetClassImageListEx SetupDiGetClassImageListExA
2597#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsA
2598#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyA
2599#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailA
2600#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsA
2601#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA
2602#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailA
2603#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailA
2604#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyA
2605#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailA
2606#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsA
2607#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameA
2608#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExA
2609#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA
2610#define SetupDiGetINFClass SetupDiGetINFClassA
2611#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverA
2612#define SetupDiInstallClass SetupDiInstallClassA
2613#define SetupDiInstallClassEx SetupDiInstallClassExA
2614#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA
2615#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoA
2616#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceA
2617#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceA
2618#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsA
2619#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyA
2620#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsA
2621#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyA
2622#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsA
2623#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverA
2624#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListA
2625#define SetupFindFirstLine SetupFindFirstLineA
2626#define SetupFindNextMatchLine SetupFindNextMatchLineA
2627#define SetupFreeSourceList SetupFreeSourceListA
2628#define SetupGetBackupInformation SetupGetBackupInformationA
2629#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA
2630#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExA
2631#define SetupGetInfFileList SetupGetInfFileListA
2632#define SetupGetInfInformation SetupGetInfInformationA
2633#define SetupGetLineByIndex SetupGetLineByIndexA
2634#define SetupGetLineCount SetupGetLineCountA
2635#define SetupGetLineText SetupGetLineTextA
2636#define SetupGetMultiSzField SetupGetMultiSzFieldA
2637#define SetupGetSourceFileLocation SetupGetSourceFileLocationA
2638#define SetupGetSourceFileSize SetupGetSourceFileSizeA
2639#define SetupGetSourceInfo SetupGetSourceInfoA
2640#define SetupGetStringField SetupGetStringFieldA
2641#define SetupGetTargetPath SetupGetTargetPathA
2642#define SetupInitializeFileLog SetupInitializeFileLogA
2643#define SetupInstallFile SetupInstallFileA
2644#define SetupInstallFileEx SetupInstallFileExA
2645#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionA
2646#define SetupInstallFromInfSection SetupInstallFromInfSectionA
2647#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionA
2648#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExA
2649#define SetupIterateCabinet SetupIterateCabinetA
2650#define SetupLogError SetupLogErrorA
2651#define SetupLogFile SetupLogFileA
2652#define SetupOpenAppendInfFile SetupOpenAppendInfFileA
2653#define SetupOpenInfFile SetupOpenInfFileA
2654#define SetupPromptForDisk SetupPromptForDiskA
2655#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListA
2656#define SetupQueryFileLog SetupQueryFileLogA
2657#define SetupQueryInfFileInformation SetupQueryInfFileInformationA
2658#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationA
2659#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA
2660#define SetupQuerySourceList SetupQuerySourceListA
2661#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveA
2662#define SetupQueueCopy SetupQueueCopyA
2663#define SetupQueueCopyIndirect SetupQueueCopyIndirectA
2664#define SetupQueueCopySection SetupQueueCopySectionA
2665#define SetupQueueDefaultCopy SetupQueueDefaultCopyA
2666#define SetupQueueDelete SetupQueueDeleteA
2667#define SetupQueueDeleteSection SetupQueueDeleteSectionA
2668#define SetupQueueRename SetupQueueRenameA
2669#define SetupQueueRenameSection SetupQueueRenameSectionA
2670#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryA
2671#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListA
2672#define SetupRemoveFromSourceList SetupRemoveFromSourceListA
2673#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListA
2674#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListA
2675#define SetupRenameError SetupRenameErrorA
2676#define SetupScanFileQueue SetupScanFileQueueA
2677#define SetupSetDirectoryId SetupSetDirectoryIdA
2678#define SetupSetDirectoryIdEx SetupSetDirectoryIdExA
2679#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA
2680#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA
2681#define SetupSetSourceList SetupSetSourceListA
2682#define SetupUninstallOEMInf SetupUninstallOEMInfA
2683#endif /* UNICODE */
2684
2685#endif /* RC_INVOKED */
2686
2687#ifdef __cplusplus
2688}
2689#endif
2690
2691#include <poppack.h>
2692#endif /* _SETUPAPI_H_ */
2693