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