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