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