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