1 /**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * Authors: Vladimir Vlasov
7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
8 * Source: $(DRUNTIMESRC src/core/sys/windows/_setupapi.d)
9 */
10 module core.sys.windows.setupapi;
version(Windows)11 version (Windows):
12 @system:
13
14 version (ANSI) {} else version = Unicode;
15 pragma(lib, "setupapi");
16
17 import core.sys.windows.basetyps, core.sys.windows.commctrl, core.sys.windows.prsht, core.sys.windows.w32api,
18 core.sys.windows.winreg, core.sys.windows.windef;
19 import core.sys.windows.winbase; // for SYSTEMTIME
20
21 /*static if (_WIN32_WINNT < _WIN32_WINDOWS) {
22 enum UINT _SETUPAPI_VER = _WIN32_WINNT; // SetupAPI version follows Windows NT version
23 } else static if (_WIN32_WINDOWS) {
24 static if (_WIN32_WINDOWS >= 0x0490) {
25 enum UINT _SETUPAPI_VER = 0x0500; // WinME uses same version of SetupAPI as Win2k
26 } else static if (_WIN32_WINDOWS >= 0x0410) {
27 enum UINT _SETUPAPI_VER = 0x0410; // Indicates version of SetupAPI shipped with Win98
28 } else {
29 enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version
30 }
31 } else {
32 enum UINT _SETUPAPI_VER = 0x0501;
33 }
34
35 version (WindowsNTonly) {
36 static if (_WIN32_WINNT >= 0x500) {
37 enum UINT USE_SP_DRVINFO_DATA_V1 = 0;
38 } else {
39 enum UINT USE_SP_DRVINFO_DATA_V1 = 1;
40 }
41 } else {
42 enum UINT USE_SP_DRVINFO_DATA_V1 = 1;
43 }*/
44 /+
45 enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version
46 enum UINT USE_SP_DRVINFO_DATA_V1 = 1;
47 +/
48 enum UINT _SETUPAPI_VER = _WIN32_WINNT;
49 enum bool USE_SP_DRVINFO_DATA_V1 = _WIN32_WINNT < 0x500;
50
51 enum : uint {
52 LINE_LEN = 256,
53 MAX_INF_STRING_LENGTH = 4096,
54 MAX_TITLE_LEN = 60,
55 MAX_INSTRUCTION_LEN = 256,
56 MAX_LABEL_LEN = 30,
57 MAX_SERVICE_NAME_LEN = 256,
58 MAX_SUBTITLE_LEN = 256,
59 SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3
60 }
61
62 enum : DWORD {
63 COPYFLG_WARN_IF_SKIP = 0x00000001,
64 COPYFLG_NOSKIP = 0x00000002,
65 COPYFLG_NOVERSIONCHECK = 0x00000004,
66 COPYFLG_FORCE_FILE_IN_USE = 0x00000008,
67 COPYFLG_NO_OVERWRITE = 0x00000010,
68 COPYFLG_NO_VERSION_DIALOG = 0x00000020,
69 COPYFLG_OVERWRITE_OLDER_ONLY = 0x00000040,
70 COPYFLG_REPLACEONLY = 0x00000400,
71 COPYFLG_NODECOMP = 0x00000800,
72 COPYFLG_REPLACE_BOOT_FILE = 0x00001000,
73 COPYFLG_NOPRUNE = 0x00002000
74 }
75
76 enum : DWORD {
77 DELFLG_IN_USE = 0x00000001,
78 DELFLG_IN_USE1 = 0x00010000
79 }
80
81 enum : DWORD {
82 DI_REMOVEDEVICE_GLOBAL = 0x00000001,
83 DI_REMOVEDEVICE_CONFIGSPECIFIC = 0x00000002,
84 DI_UNREMOVEDEVICE_CONFIGSPECIFIC = 0x00000002,
85 DI_SHOWOEM = 0x00000001,
86 DI_SHOWCOMPAT = 0x00000002,
87 DI_SHOWCLASS = 0x00000004,
88 DI_SHOWALL = 0x00000007,
89 DI_NOVCP = 0x00000008,
90 DI_DIDCOMPAT = 0x00000010,
91 DI_DIDCLASS = 0x00000020,
92 DI_AUTOASSIGNRES = 0x00000040,
93 DI_NEEDRESTART = 0x00000080,
94 DI_NEEDREBOOT = 0x00000100,
95 DI_NOBROWSE = 0x00000200,
96 DI_MULTMFGS = 0x00000400,
97 DI_DISABLED = 0x00000800,
98 DI_GENERALPAGE_ADDED = 0x00001000,
99 DI_RESOURCEPAGE_ADDED = 0x00002000,
100 DI_PROPERTIES_CHANGE = 0x00004000,
101 DI_INF_IS_SORTED = 0x00008000,
102 DI_ENUMSINGLEINF = 0x00010000,
103 DI_DONOTCALLCONFIGMG = 0x00020000,
104 DI_INSTALLDISABLED = 0x00040000,
105 DI_COMPAT_FROM_CLASS = 0x00080000,
106 DI_CLASSINSTALLPARAMS = 0x00100000,
107 DI_NODI_DEFAULTACTION = 0x00200000,
108 DI_QUIETINSTALL = 0x00800000,
109 DI_NOFILECOPY = 0x01000000,
110 DI_FORCECOPY = 0x02000000,
111 DI_DRIVERPAGE_ADDED = 0x04000000,
112 DI_USECI_SELECTSTRINGS = 0x08000000,
113 DI_OVERRIDE_INFFLAGS = 0x10000000,
114 DI_PROPS_NOCHANGEUSAGE = 0x20000000,
115 DI_NOSELECTICONS = 0x40000000,
116 DI_NOWRITE_IDS = 0x80000000,
117 DI_FLAGSEX_USEOLDINFSEARCH = 0x00000001,
118 DI_FLAGSEX_AUTOSELECTRANK0 = 0x00000002,
119 DI_FLAGSEX_CI_FAILED = 0x00000004,
120 DI_FLAGSEX_DIDINFOLIST = 0x00000010,
121 DI_FLAGSEX_DIDCOMPATINFO = 0x00000020,
122 DI_FLAGSEX_FILTERCLASSES = 0x00000040,
123 DI_FLAGSEX_SETFAILEDINSTALL = 0x00000080,
124 DI_FLAGSEX_DEVICECHANGE = 0x00000100,
125 DI_FLAGSEX_ALWAYSWRITEIDS = 0x00000200,
126 DI_FLAGSEX_PROPCHANGE_PENDING = 0x00000400,
127 DI_FLAGSEX_ALLOWEXCLUDEDDRVS = 0x00000800,
128 DI_FLAGSEX_NOUIONQUERYREMOVE = 0x00001000,
129 DI_FLAGSEX_USECLASSFORCOMPAT = 0x00002000,
130 DI_FLAGSEX_OLDINF_IN_CLASSLIST = 0x00004000,
131 DI_FLAGSEX_NO_DRVREG_MODIFY = 0x00008000,
132 DI_FLAGSEX_IN_SYSTEM_SETUP = 0x00010000,
133 DI_FLAGSEX_INET_DRIVER = 0x00020000,
134 DI_FLAGSEX_APPENDDRIVERLIST = 0x00040000,
135 DI_FLAGSEX_PREINSTALLBACKUP = 0x00080000,
136 DI_FLAGSEX_BACKUPONREPLACE = 0x00100000,
137 DI_FLAGSEX_DRIVERLIST_FROM_URL = 0x00200000,
138 DI_FLAGSEX_RESERVED1 = 0x00400000,
139 DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS = 0x00800000,
140 DI_FLAGSEX_POWERPAGE_ADDED = 0x01000000
141 }
142
143 enum : DWORD {
144 DIBCI_NOINSTALLCLASS = 0x00000001,
145 DIBCI_NODISPLAYCLASS = 0x00000002
146 }
147
148 enum : DWORD {
149 DICD_GENERATE_ID = 0x00000001,
150 DICD_INHERIT_CLASSDRVS = 0x00000002
151 }
152
153 enum : DWORD {
154 DICS_ENABLE = 1,
155 DICS_DISABLE,
156 DICS_PROPCHANGE,
157 DICS_START,
158 DICS_STOP // = 5
159 }
160
161 enum : DWORD {
162 DICS_FLAG_GLOBAL = 1,
163 DICS_FLAG_CONFIGSPECIFIC = 2,
164 DICS_FLAG_CONFIGGENERAL = 4
165 }
166
167 alias UINT DI_FUNCTION;
168
169 enum : DI_FUNCTION {
170 DIF_SELECTDEVICE = 1,
171 DIF_INSTALLDEVICE,
172 DIF_ASSIGNRESOURCES,
173 DIF_PROPERTIES,
174 DIF_REMOVE,
175 DIF_FIRSTTIMESETUP,
176 DIF_FOUNDDEVICE,
177 DIF_SELECTCLASSDRIVERS,
178 DIF_VALIDATECLASSDRIVERS,
179 DIF_INSTALLCLASSDRIVERS,
180 DIF_CALCDISKSPACE,
181 DIF_DESTROYPRIVATEDATA,
182 DIF_VALIDATEDRIVER,
183 DIF_MOVEDEVICE,
184 DIF_DETECT,
185 DIF_INSTALLWIZARD,
186 DIF_DESTROYWIZARDDATA,
187 DIF_PROPERTYCHANGE,
188 DIF_ENABLECLASS,
189 DIF_DETECTVERIFY,
190 DIF_INSTALLDEVICEFILES,
191 DIF_UNREMOVE,
192 DIF_SELECTBESTCOMPATDRV,
193 DIF_ALLOW_INSTALL,
194 DIF_REGISTERDEVICE,
195 DIF_NEWDEVICEWIZARD_PRESELECT,
196 DIF_NEWDEVICEWIZARD_SELECT,
197 DIF_NEWDEVICEWIZARD_PREANALYZE,
198 DIF_NEWDEVICEWIZARD_POSTANALYZE,
199 DIF_NEWDEVICEWIZARD_FINISHINSTALL,
200 DIF_UNUSED1,
201 DIF_INSTALLINTERFACES,
202 DIF_DETECTCANCEL,
203 DIF_REGISTER_COINSTALLERS,
204 DIF_ADDPROPERTYPAGE_ADVANCED,
205 DIF_ADDPROPERTYPAGE_BASIC,
206 DIF_RESERVED1,
207 DIF_TROUBLESHOOTER,
208 DIF_POWERMESSAGEWAKE // = 39
209 }
210
211 enum : DWORD {
212 DIGCF_DEFAULT = 0x00000001,
213 DIGCF_PRESENT = 0x00000002,
214 DIGCF_ALLCLASSES = 0x00000004,
215 DIGCF_PROFILE = 0x00000008,
216 DIGCF_DEVICEINTERFACE = 0x00000010
217 }
218
219 deprecated enum : DWORD {
220 DIGCF_INTERFACEDEVICE = DIGCF_DEVICEINTERFACE
221 }
222
223 enum : DWORD {
224 DIGCDP_FLAG_BASIC = 0x00000001,
225 DIGCDP_FLAG_ADVANCED = 0x00000002
226 }
227
228 enum : DWORD {
229 DIOCR_INSTALLER = 0x00000001,
230 DIOCR_INTERFACE = 0x00000002
231 }
232
233 enum : DWORD {
234 DIODI_NO_ADD = 0x00000001
235 }
236
237 enum : DWORD {
238 DIOD_INHERIT_CLASSDRVS = 0x00000002,
239 DIOD_CANCEL_REMOVE = 0x00000004
240 }
241
242 enum : DWORD {
243 DIREG_DEV = 0x00000001,
244 DIREG_DRV = 0x00000002,
245 DIREG_BOTH = 0x00000004
246 }
247
248 enum : int {
249 DIRID_ABSOLUTE = -1,
250 DIRID_NULL = 0,
251 DIRID_SRCPATH = 1,
252 DIRID_WINDOWS = 10,
253 DIRID_SYSTEM = 11,
254 DIRID_DRIVERS = 12,
255 DIRID_IOSUBSYS = DIRID_DRIVERS,
256 DIRID_INF = 17,
257 DIRID_HELP = 18,
258 DIRID_FONTS = 20,
259 DIRID_VIEWERS = 21,
260 DIRID_COLOR = 23,
261 DIRID_APPS = 24,
262 DIRID_SHARED = 25,
263 DIRID_BOOT = 30,
264 DIRID_SYSTEM16 = 50,
265 DIRID_SPOOL = 51,
266 DIRID_SPOOLDRIVERS = 52,
267 DIRID_USERPROFILE = 53,
268 DIRID_LOADER = 54,
269 DIRID_PRINTPROCESSOR = 55,
270 DIRID_DEFAULT = DIRID_SYSTEM
271 }
272
273 enum : int {
274 DIRID_COMMON_STARTMENU = 16406,
275 DIRID_COMMON_PROGRAMS = 16407,
276 DIRID_COMMON_STARTUP = 16408,
277 DIRID_COMMON_DESKTOPDIRECTORY = 16409,
278 DIRID_COMMON_FAVORITES = 16415,
279 DIRID_COMMON_APPDATA = 16419,
280 DIRID_PROGRAM_FILES = 16422,
281 DIRID_SYSTEM_X86 = 16425,
282 DIRID_PROGRAM_FILES_X86 = 16426,
283 DIRID_PROGRAM_FILES_COMMON = 16427,
284 DIRID_PROGRAM_FILES_COMMONX86 = 16428,
285 DIRID_COMMON_TEMPLATES = 16429,
286 DIRID_COMMON_DOCUMENTS = 16430,
287 DIRID_USER = 0x8000,
288 DIRID_ABSOLUTE_16BIT = 0xffff
289 }
290
291 enum : DWORD {
292 DMI_MASK = 0x00000001,
293 DMI_BKCOLOR = 0x00000002,
294 DMI_USERECT = 0x00000004
295 }
296
297 enum : DWORD {
298 DNF_DUPDESC = 0x00000001,
299 DNF_OLDDRIVER = 0x00000002,
300 DNF_EXCLUDEFROMLIST = 0x00000004,
301 DNF_NODRIVER = 0x00000008,
302 DNF_LEGACYINF = 0x00000010,
303 DNF_CLASS_DRIVER = 0x00000020,
304 DNF_COMPATIBLE_DRIVER = 0x00000040,
305 DNF_INET_DRIVER = 0x00000080,
306 DNF_UNUSED1 = 0x00000100,
307 DNF_INDEXED_DRIVER = 0x00000200,
308 DNF_OLD_INET_DRIVER = 0x00000400,
309 DNF_BAD_DRIVER = 0x00000800,
310 DNF_DUPPROVIDER = 0x00001000
311 }
312
313 enum : UINT {
314 DPROMPT_SUCCESS,
315 DPROMPT_CANCEL,
316 DPROMPT_SKIPFILE,
317 DPROMPT_BUFFERTOOSMALL,
318 DPROMPT_OUTOFMEMORY // = 4
319 }
320
321 enum : DWORD {
322 DRIVER_HARDWAREID_RANK = 0x00000FFF,
323 DRIVER_COMPATID_RANK = 0x00003FFF,
324 DRIVER_UNTRUSTED_RANK = 0x00008000,
325 DRIVER_UNTRUSTED_HARDWAREID_RANK = 0x00008FFF,
326 DRIVER_UNTRUSTED_COMPATID_RANK = 0x0000BFFF,
327 DRIVER_W9X_SUSPECT_RANK = 0x0000C000,
328 DRIVER_W9X_SUSPECT_HARDWAREID_RANK = 0x0000CFFF,
329 DRIVER_W9X_SUSPECT_COMPATID_RANK = 0x0000FFFF
330 }
331
332 enum : DWORD {
333 DYNAWIZ_FLAG_PAGESADDED = 0x00000001,
334 DYNAWIZ_FLAG_INSTALLDET_NEXT = 0x00000002,
335 DYNAWIZ_FLAG_INSTALLDET_PREV = 0x00000004,
336 DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = 0x00000008
337 }
338
339 enum : WORD {
340 ENABLECLASS_QUERY,
341 ENABLECLASS_SUCCESS,
342 ENABLECLASS_FAILURE // = 2
343 }
344
345 enum : DWORD {
346 ERROR_EXPECTED_SECTION_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0,
347 ERROR_BAD_SECTION_NAME_LINE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 1,
348 ERROR_SECTION_NAME_TOO_LONG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 2,
349 ERROR_GENERAL_SYNTAX = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 3,
350 ERROR_WRONG_INF_STYLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x100,
351 ERROR_NOT_INSTALLED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x1000,
352 ERROR_SECTION_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x101,
353 ERROR_LINE_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x102,
354 ERROR_NO_BACKUP = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x103,
355 ERROR_NO_ASSOCIATED_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x200,
356 ERROR_CLASS_MISMATCH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x201,
357 ERROR_DUPLICATE_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x202,
358 ERROR_NO_DRIVER_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x203,
359 ERROR_KEY_DOES_NOT_EXIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x204,
360 ERROR_INVALID_DEVINST_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x205,
361 ERROR_INVALID_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x206,
362 ERROR_DEVINST_ALREADY_EXISTS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x207,
363 ERROR_DEVINFO_NOT_REGISTERED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x208,
364 ERROR_INVALID_REG_PROPERTY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x209,
365 ERROR_NO_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20A,
366 ERROR_NO_SUCH_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20B,
367 ERROR_CANT_LOAD_CLASS_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20C,
368 ERROR_INVALID_CLASS_INSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20D,
369 ERROR_DI_DO_DEFAULT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20E,
370 ERROR_DI_NOFILECOPY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20F,
371 ERROR_INVALID_HWPROFILE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x210,
372 ERROR_NO_DEVICE_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x211,
373 ERROR_DEVINFO_LIST_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x212,
374 ERROR_DEVINFO_DATA_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x213,
375 ERROR_DI_BAD_PATH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x214,
376 ERROR_NO_CLASSINSTALL_PARAMS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x215,
377 ERROR_FILEQUEUE_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x216,
378 ERROR_BAD_SERVICE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x217,
379 ERROR_NO_CLASS_DRIVER_LIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x218,
380 ERROR_NO_ASSOCIATED_SERVICE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x219,
381 ERROR_NO_DEFAULT_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21A,
382 ERROR_DEVICE_INTERFACE_ACTIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21B,
383 ERROR_DEVICE_INTERFACE_REMOVED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21C,
384 ERROR_BAD_INTERFACE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21D,
385 ERROR_NO_SUCH_INTERFACE_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21E,
386 ERROR_INVALID_REFERENCE_STRING = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21F,
387 ERROR_INVALID_MACHINENAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x220,
388 ERROR_REMOTE_COMM_FAILURE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x221,
389 ERROR_MACHINE_UNAVAILABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x222,
390 ERROR_NO_CONFIGMGR_SERVICES = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x223,
391 ERROR_INVALID_PROPPAGE_PROVIDER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x224,
392 ERROR_NO_SUCH_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x225,
393 ERROR_DI_POSTPROCESSING_REQUIRED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x226,
394 ERROR_INVALID_COINSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x227,
395 ERROR_NO_COMPAT_DRIVERS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x228,
396 ERROR_NO_DEVICE_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x229,
397 ERROR_INVALID_INF_LOGCONFIG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22A,
398 ERROR_DI_DONT_INSTALL = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22B,
399 ERROR_INVALID_FILTER_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22C,
400 ERROR_NON_WINDOWS_NT_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22D,
401 ERROR_NON_WINDOWS_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22E,
402 ERROR_NO_CATALOG_FOR_OEM_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22F,
403 ERROR_DEVINSTALL_QUEUE_NONNATIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x230,
404 ERROR_NOT_DISABLEABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x231,
405 ERROR_CANT_REMOVE_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x232
406 }
407
408 deprecated enum : DWORD {
409 ERROR_NO_DEFAULT_INTERFACE_DEVICE = ERROR_NO_DEFAULT_DEVICE_INTERFACE,
410 ERROR_INTERFACE_DEVICE_ACTIVE = ERROR_DEVICE_INTERFACE_ACTIVE,
411 ERROR_INTERFACE_DEVICE_REMOVED = ERROR_DEVICE_INTERFACE_REMOVED,
412 ERROR_NO_SUCH_INTERFACE_DEVICE = ERROR_NO_SUCH_DEVICE_INTERFACE,
413 }
414
415 enum : UINT {
416 FILEOP_COPY,
417 FILEOP_RENAME,
418 FILEOP_DELETE,
419 FILEOP_BACKUP,
420 FILEOP_NEWPATH, // = 4
421 FILEOP_ABORT = 0,
422 FILEOP_DOIT,
423 FILEOP_SKIP, // = 2
424 FILEOP_RETRY = FILEOP_DOIT
425 }
426
427 enum : UINT {
428 FILE_COMPRESSION_NONE,
429 FILE_COMPRESSION_WINLZA,
430 FILE_COMPRESSION_MSZIP,
431 FILE_COMPRESSION_NTCAB // = 3
432 }
433
434 enum : DWORD {
435 FLG_ADDREG_TYPE_SZ = 0x00000000,
436 FLG_ADDREG_BINVALUETYPE = 0x00000001,
437 FLG_ADDREG_NOCLOBBER = 0x00000002,
438 FLG_ADDREG_DELVAL = 0x00000004,
439 FLG_ADDREG_APPEND = 0x00000008,
440 FLG_ADDREG_KEYONLY = 0x00000010,
441 FLG_ADDREG_OVERWRITEONLY = 0x00000020,
442 FLG_ADDREG_TYPE_MULTI_SZ = 0x00010000,
443 FLG_ADDREG_TYPE_EXPAND_SZ = 0x00020000,
444 FLG_ADDREG_TYPE_BINARY = 0x00000000 | FLG_ADDREG_BINVALUETYPE,
445 FLG_ADDREG_TYPE_DWORD = 0x00010000 | FLG_ADDREG_BINVALUETYPE,
446 FLG_ADDREG_TYPE_NONE = 0x00020000 | FLG_ADDREG_BINVALUETYPE,
447 FLG_ADDREG_TYPE_MASK = 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE
448 }
449
450 static if (_SETUPAPI_VER >= 0x0501) {
451 enum : DWORD {
452 FLG_ADDREG_64BITKEY = 0x00001000,
453 FLG_ADDREG_KEYONLY_COMMON = 0x00002000,
454 FLG_ADDREG_32BITKEY = 0x00004000,
455 FLG_ADDREG_DELREG_BIT = 0x00008000
456 }
457 }
458
459 enum : DWORD {
460 FLG_DELREG_VALUE = 0x00000000
461 }
462
463 static if (_SETUPAPI_VER >= 0x0501) {
464 enum : DWORD {
465 FLG_DELREG_TYPE_MASK = FLG_ADDREG_TYPE_MASK,
466 FLG_DELREG_TYPE_SZ = FLG_ADDREG_TYPE_SZ,
467 FLG_DELREG_TYPE_MULTI_SZ = FLG_ADDREG_TYPE_MULTI_SZ,
468 FLG_DELREG_TYPE_EXPAND_SZ = FLG_ADDREG_TYPE_EXPAND_SZ,
469 FLG_DELREG_TYPE_BINARY = FLG_ADDREG_TYPE_BINARY,
470 FLG_DELREG_TYPE_DWORD = FLG_ADDREG_TYPE_DWORD,
471 FLG_DELREG_TYPE_NONE = FLG_ADDREG_TYPE_NONE,
472 FLG_DELREG_64BITKEY = FLG_ADDREG_64BITKEY,
473 FLG_DELREG_KEYONLY_COMMON = FLG_ADDREG_KEYONLY_COMMON,
474 FLG_DELREG_32BITKEY = FLG_ADDREG_32BITKEY,
475 FLG_DELREG_OPERATION_MASK = 0x000000FE,
476 FLG_DELREG_MULTI_SZ_DELSTRING = 0x00000002 | FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT
477 }
478 }
479
480 enum : DWORD {
481 FLG_BITREG_CLEARBITS = 0x00000000,
482 FLG_BITREG_SETBITS = 0x00000001
483 }
484
485 static if (_SETUPAPI_VER >= 0x0501) {
486 enum : DWORD {
487 FLG_BITREG_64BITKEY = 0x00001000,
488 FLG_BITREG_32BITKEY = 0x00004000
489 }
490 }
491
492 enum : DWORD {
493 FLG_PROFITEM_CURRENTUSER = 0x00000001,
494 FLG_PROFITEM_DELETE = 0x00000002,
495 FLG_PROFITEM_GROUP = 0x00000004,
496 FLG_PROFITEM_CSIDL = 0x00000008
497 }
498
499 enum : DWORD {
500 FLG_REGSVR_DLLREGISTER = 0x00000001,
501 FLG_REGSVR_DLLINSTALL = 0x00000002
502 }
503
504 enum {
505 IDD_DYNAWIZ_FIRSTPAGE = 10000,
506 IDD_DYNAWIZ_SELECT_PREVPAGE,
507 IDD_DYNAWIZ_SELECT_NEXTPAGE,
508 IDD_DYNAWIZ_ANALYZE_PREVPAGE,
509 IDD_DYNAWIZ_ANALYZE_NEXTPAGE, // = 1004
510 IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE = 10006,
511 IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE,
512 IDD_DYNAWIZ_INSTALLDETECTED_NODEVS,
513 IDD_DYNAWIZ_SELECTDEV_PAGE,
514 IDD_DYNAWIZ_ANALYZEDEV_PAGE,
515 IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE,
516 IDD_DYNAWIZ_SELECTCLASS_PAGE, // = 10012
517 MIN_IDD_DYNAWIZ_RESOURCE_ID = 10000,
518 MAX_IDD_DYNAWIZ_RESOURCE_ID = 11000
519 }
520
521 enum : DWORD {
522 IDF_NOBROWSE = 0x00000001,
523 IDF_NOSKIP = 0x00000002,
524 IDF_NODETAILS = 0x00000004,
525 IDF_NOCOMPRESSED = 0x00000008,
526 IDF_CHECKFIRST = 0x00000100,
527 IDF_NOBEEP = 0x00000200,
528 IDF_NOFOREGROUND = 0x00000400,
529 IDF_WARNIFSKIP = 0x00000800
530 }
531
532 static if (_SETUPAPI_VER >= 0x0501) {
533 enum : DWORD {
534 IDF_NOREMOVABLEMEDIAPROMPT = 0x00001000,
535 IDF_USEDISKNAMEASPROMPT = 0x00002000,
536 IDF_OEMDISK = 0x80000000
537 }
538 }
539
540 enum {
541 IDI_RESOURCEFIRST = 159,
542 IDI_RESOURCE = 159,
543 IDI_RESOURCELAST = 161,
544 IDI_RESOURCEOVERLAYFIRST = 161,
545 IDI_RESOURCEOVERLAYLAST = 161,
546 IDI_CONFLICT = 161,
547 IDI_PROBLEM_OVL = 500,
548 IDI_DISABLED_OVL = 501,
549 IDI_FORCED_OVL = 502,
550 IDI_CLASSICON_OVERLAYFIRST = 500,
551 IDI_CLASSICON_OVERLAYLAST = 502
552 }
553
554 enum : DWORD {
555 INF_STYLE_NONE = 0x00000000,
556 INF_STYLE_OLDNT = 0x00000001,
557 INF_STYLE_WIN4 = 0x00000002,
558 INF_STYLE_CACHE_ENABLE = 0x00000010,
559 INF_STYLE_CACHE_DISABLE = 0x00000020
560 }
561
562 enum : DWORD {
563 INFINFO_INF_SPEC_IS_HINF = 1,
564 INFINFO_INF_NAME_IS_ABSOLUTE,
565 INFINFO_DEFAULT_SEARCH,
566 INFINFO_REVERSE_DEFAULT_SEARCH,
567 INFINFO_INF_PATH_LIST_SEARCH // = 5
568 }
569
570 alias DWORD LogSeverity;
571 enum : LogSeverity {
572 LogSevInformation,
573 LogSevWarning,
574 LogSevError,
575 LogSevFatalError,
576 LogSevMaximum // = 4
577 }
578
579 enum MAX_INSTALLWIZARD_DYNAPAGES = 20;
580
581 enum : DWORD {
582 NDW_INSTALLFLAG_DIDFACTDEFS = 0x00000001,
583 NDW_INSTALLFLAG_HARDWAREALLREADYIN = 0x00000002,
584 NDW_INSTALLFLAG_NEEDSHUTDOWN = 0x00000200,
585 NDW_INSTALLFLAG_EXPRESSINTRO = 0x00000400,
586 NDW_INSTALLFLAG_SKIPISDEVINSTALLED = 0x00000800,
587 NDW_INSTALLFLAG_NODETECTEDDEVS = 0x00001000,
588 NDW_INSTALLFLAG_INSTALLSPECIFIC = 0x00002000,
589 NDW_INSTALLFLAG_SKIPCLASSLIST = 0x00004000,
590 NDW_INSTALLFLAG_CI_PICKED_OEM = 0x00008000,
591 NDW_INSTALLFLAG_PCMCIAMODE = 0x00010000,
592 NDW_INSTALLFLAG_PCMCIADEVICE = 0x00020000,
593 NDW_INSTALLFLAG_USERCANCEL = 0x00040000,
594 NDW_INSTALLFLAG_KNOWNCLASS = 0x00080000,
595 NDW_INSTALLFLAG_NEEDRESTART = 0x00000080,
596 NDW_INSTALLFLAG_NEEDREBOOT = 0x00000100
597 }
598
599 enum : DWORD {
600 SETDIRID_NOT_FULL_PATH = 0x00000001
601 }
602
603 enum : DWORD {
604 SP_COPY_DELETESOURCE = 0x0000001,
605 SP_COPY_REPLACEONLY = 0x0000002,
606 SP_COPY_NEWER = 0x0000004,
607 SP_COPY_NEWER_OR_SAME = 0x0000004,
608 SP_COPY_NOOVERWRITE = 0x0000008,
609 SP_COPY_NODECOMP = 0x0000010,
610 SP_COPY_LANGUAGEAWARE = 0x0000020,
611 SP_COPY_SOURCE_ABSOLUTE = 0x0000040,
612 SP_COPY_SOURCEPATH_ABSOLUTE = 0x0000080,
613 SP_COPY_IN_USE_NEEDS_REBOOT = 0x0000100,
614 SP_COPY_FORCE_IN_USE = 0x0000200,
615 SP_COPY_NOSKIP = 0x0000400,
616 SP_FLAG_CABINETCONTINUATION = 0x0000800,
617 SP_COPY_FORCE_NOOVERWRITE = 0x0001000,
618 SP_COPY_FORCE_NEWER = 0x0002000,
619 SP_COPY_WARNIFSKIP = 0x0004000,
620 SP_COPY_NOBROWSE = 0x0008000,
621 SP_COPY_NEWER_ONLY = 0x0010000,
622 SP_COPY_SOURCE_SIS_MASTER = 0x0020000,
623 SP_COPY_OEMINF_CATALOG_ONLY = 0x0040000,
624 SP_COPY_REPLACE_BOOT_FILE = 0x0080000,
625 SP_COPY_NOPRUNE = 0x0100000
626 }
627
628 static if (_SETUPAPI_VER >= 0x0501) {
629 enum : DWORD {
630 SP_COPY_OEM_F6_INF = 0x0200000
631 }
632 }
633
634 enum : DWORD {
635 SPCRP_SECURITY = 23,
636 SPCRP_SECURITY_SDS,
637 SPCRP_DEVTYPE,
638 SPCRP_EXCLUSIVE,
639 SPCRP_CHARACTERISTICS,
640 SPCRP_MAXIMUM_PROPERTY // = 28
641 }
642
643 enum : DWORD {
644 SPDIT_NODRIVER,
645 SPDIT_CLASSDRIVER,
646 SPDIT_COMPATDRIVER // = 2
647 }
648
649 enum : DWORD {
650 SPDRP_DEVICEDESC,
651 SPDRP_HARDWAREID,
652 SPDRP_COMPATIBLEIDS,
653 SPDRP_UNUSED0,
654 SPDRP_SERVICE,
655 SPDRP_UNUSED1,
656 SPDRP_UNUSED2,
657 SPDRP_CLASS,
658 SPDRP_CLASSGUID,
659 SPDRP_DRIVER,
660 SPDRP_CONFIGFLAGS,
661 SPDRP_MFG,
662 SPDRP_FRIENDLYNAME,
663 SPDRP_LOCATION_INFORMATION,
664 SPDRP_PHYSICAL_DEVICE_OBJECT_NAME,
665 SPDRP_CAPABILITIES,
666 SPDRP_UI_NUMBER,
667 SPDRP_UPPERFILTERS,
668 SPDRP_LOWERFILTERS,
669 SPDRP_BUSTYPEGUID,
670 SPDRP_LEGACYBUSTYPE,
671 SPDRP_BUSNUMBER,
672 SPDRP_ENUMERATOR_NAME,
673 SPDRP_SECURITY,
674 SPDRP_SECURITY_SDS,
675 SPDRP_DEVTYPE,
676 SPDRP_EXCLUSIVE,
677 SPDRP_CHARACTERISTICS,
678 SPDRP_ADDRESS, // = 28
679 SPDRP_UI_NUMBER_DESC_FORMAT = 30,
680 SPDRP_MAXIMUM_PROPERTY = 31
681 }
682
683 enum : UINT {
684 SPDSL_IGNORE_DISK = 1,
685 SPDSL_DISALLOW_NEGATIVE_ADJUST
686 }
687
688 enum : UINT {
689 SPFILENOTIFY_STARTQUEUE = 1,
690 SPFILENOTIFY_ENDQUEUE,
691 SPFILENOTIFY_STARTSUBQUEUE,
692 SPFILENOTIFY_ENDSUBQUEUE,
693 SPFILENOTIFY_STARTDELETE,
694 SPFILENOTIFY_ENDDELETE,
695 SPFILENOTIFY_DELETEERROR,
696 SPFILENOTIFY_STARTRENAME,
697 SPFILENOTIFY_ENDRENAME,
698 SPFILENOTIFY_RENAMEERROR,
699 SPFILENOTIFY_STARTCOPY,
700 SPFILENOTIFY_ENDCOPY,
701 SPFILENOTIFY_COPYERROR,
702 SPFILENOTIFY_NEEDMEDIA,
703 SPFILENOTIFY_QUEUESCAN,
704 SPFILENOTIFY_CABINETINFO,
705 SPFILENOTIFY_FILEINCABINET,
706 SPFILENOTIFY_NEEDNEWCABINET,
707 SPFILENOTIFY_FILEEXTRACTED,
708 SPFILENOTIFY_FILEOPDELAYED,
709 SPFILENOTIFY_STARTBACKUP,
710 SPFILENOTIFY_BACKUPERROR,
711 SPFILENOTIFY_ENDBACKUP,
712 SPFILENOTIFY_QUEUESCAN_EX,
713 SPFILENOTIFY_STARTREGISTRATION, // = 25
714 SPFILENOTIFY_ENDREGISTRATION = 32,
715 SPFILENOTIFY_LANGMISMATCH = 0x00010000,
716 SPFILENOTIFY_TARGETEXISTS = 0x00020000,
717 SPFILENOTIFY_TARGETNEWER = 0x00040000
718 }
719
720 static if (_SETUPAPI_VER >= 0x0501) {
721 enum : UINT {
722 SPFILENOTIFY_QUEUESCAN_SIGNERINFO = 0x00000040
723 }
724 }
725
726 enum : DWORD {
727 SPFILELOG_SYSTEMLOG = 0x00000001,
728 SPFILELOG_OEMFILE = 0x00000001,
729 SPFILELOG_FORCENEW = 0x00000002,
730 SPFILELOG_QUERYONLY = 0x00000004
731 }
732
733 enum : INT {
734 SPFILEQ_FILE_IN_USE = 0x00000001,
735 SPFILEQ_REBOOT_RECOMMENDED = 0x00000002,
736 SPFILEQ_REBOOT_IN_PROGRESS = 0x00000004
737 }
738
739 enum : DWORD {
740 SPINT_ACTIVE = 0x00000001,
741 SPINT_DEFAULT = 0x00000002,
742 SPINT_REMOVED = 0x00000004
743 }
744
745 deprecated enum : DWORD {
746 SPID_ACTIVE = SPINT_ACTIVE,
747 SPID_DEFAULT = SPINT_DEFAULT,
748 SPID_REMOVED = SPINT_REMOVED
749 }
750
751 enum : UINT {
752 SPINST_LOGCONFIG = 0x00000001,
753 SPINST_INIFILES = 0x00000002,
754 SPINST_REGISTRY = 0x00000004,
755 SPINST_INI2REG = 0x00000008,
756 SPINST_FILES = 0x00000010,
757 SPINST_BITREG = 0x00000020,
758 SPINST_REGSVR = 0x00000040,
759 SPINST_UNREGSVR = 0x00000080,
760 SPINST_PROFILEITEMS = 0x00000100,
761 SPINST_SINGLESECTION = 0x00010000,
762 SPINST_LOGCONFIG_IS_FORCED = 0x00020000,
763 SPINST_LOGCONFIGS_ARE_OVERRIDES = 0x00040000
764 }
765
766 static if (_SETUPAPI_VER >= 0x0501) {
767 enum : UINT {
768 SPINST_COPYINF = 0x00000200,
769 SPINST_ALL = 0x000003ff,
770 SPINST_REGISTERCALLBACKAWARE = 0x00080000
771 }
772 } else {
773 enum : UINT {
774 SPINST_ALL = 0x000001ff
775 }
776 }
777
778 enum : DWORD {
779 SPOST_NONE,
780 SPOST_PATH,
781 SPOST_URL,
782 SPOST_MAX // = 3
783 }
784
785 enum : DWORD {
786 SPPSR_SELECT_DEVICE_RESOURCES = 1,
787 SPPSR_ENUM_BASIC_DEVICE_PROPERTIES,
788 SPPSR_ENUM_ADV_DEVICE_PROPERTIES
789 }
790
791 enum : DWORD {
792 SPQ_SCAN_FILE_PRESENCE = 0x00000001,
793 SPQ_SCAN_FILE_VALIDITY = 0x00000002,
794 SPQ_SCAN_USE_CALLBACK = 0x00000004,
795 SPQ_SCAN_USE_CALLBACKEX = 0x00000008,
796 SPQ_SCAN_INFORM_USER = 0x00000010,
797 SPQ_SCAN_PRUNE_COPY_QUEUE = 0x00000020
798 }
799
800 static if (_SETUPAPI_VER >= 0x0501) {
801 enum : DWORD {
802 SPQ_SCAN_USE_CALLBACK_SIGNERINFO = 0x00000040,
803 SPQ_SCAN_PRUNE_DELREN = 0x00000080
804 }
805 }
806
807 enum : UINT_PTR {
808 SPQ_DELAYED_COPY = 0x00000001
809 }
810
811 enum : DWORD {
812 SPRDI_FIND_DUPS = 0x00000001,
813 }
814
815 enum : DWORD {
816 SPSVCINST_TAGTOFRONT = 0x00000001,
817 SPSVCINST_ASSOCSERVICE = 0x00000002,
818 SPSVCINST_DELETEEVENTLOGENTRY = 0x00000004,
819 SPSVCINST_NOCLOBBER_DISPLAYNAME = 0x00000008,
820 SPSVCINST_NOCLOBBER_STARTTYPE = 0x00000010,
821 SPSVCINST_NOCLOBBER_ERRORCONTROL = 0x00000020,
822 SPSVCINST_NOCLOBBER_LOADORDERGROUP = 0x00000040,
823 SPSVCINST_NOCLOBBER_DEPENDENCIES = 0x00000080,
824 SPSVCINST_NOCLOBBER_DESCRIPTION = 0x00000100,
825 SPSVCINST_STOPSERVICE = 0x00000200
826 }
827
828 static if (_SETUPAPI_VER >= 0x0501) {
829 enum : DWORD {
830 SPSVCINST_CLOBBER_SECURITY = 0x00000400
831 }
832 }
833
834 enum : DWORD {
835 SPWPT_SELECTDEVICE = 0x00000001
836 }
837
838 enum : DWORD {
839 SPWP_USE_DEVINFO_DATA = 0x00000001
840 }
841
842 enum : UINT {
843 SRCINFO_PATH = 1,
844 SRCINFO_TAGFILE,
845 SRCINFO_DESCRIPTION,
846 SRCINFO_FLAGS // = 4
847 }
848
849 enum : DWORD {
850 SRCLIST_TEMPORARY = 0x00000001,
851 SRCLIST_NOBROWSE = 0x00000002,
852 SRCLIST_SYSTEM = 0x00000010,
853 SRCLIST_USER = 0x00000020,
854 SRCLIST_SYSIFADMIN = 0x00000040,
855 SRCLIST_SUBDIRS = 0x00000100,
856 SRCLIST_APPEND = 0x00000200,
857 SRCLIST_NOSTRIPPLATFORM = 0x00000400
858 }
859
860 alias PVOID HINF;
861 alias PVOID HDSKSPC;
862 mixin DECLARE_HANDLE!("HDEVINFO");
863 alias PVOID HSPFILEQ;
864 alias PVOID HSPFILELOG;
865
866 enum SetupFileLogInfo {
867 SetupFileLogSourceFilename,
868 SetupFileLogChecksum,
869 SetupFileLogDiskTagfile,
870 SetupFileLogDiskDescription,
871 SetupFileLogOtherInfo,
872 SetupFileLogMax
873 }
874
875 version (Win64)
876 private enum _alignVal = 0;
877 else
878 private enum _alignVal = 1;
879
880 struct INFCONTEXT {
881 PVOID Inf;
882 PVOID CurrentInf;
883 UINT Section;
884 UINT Line;
885 }
886 alias INFCONTEXT* PINFCONTEXT;
887
888 mixin AlignedStr!(_alignVal, "SP_INF_INFORMATION", q{
889 DWORD InfStyle;
890 DWORD InfCount;
891 BYTE[1] _VersionData;
892 BYTE* VersionData() return { return _VersionData.ptr; }
893 });
894 alias SP_INF_INFORMATION* PSP_INF_INFORMATION;
895
896 struct SP_ALTPLATFORM_INFO {
897 DWORD cbSize = SP_ALTPLATFORM_INFO.sizeof;
898 DWORD Platform;
899 DWORD MajorVersion;
900 DWORD MinorVersion;
901 WORD ProcessorArchitecture;
902 WORD Reserved;
903 }
904 alias SP_ALTPLATFORM_INFO* PSP_ALTPLATFORM_INFO;
905
906 struct SP_ORIGINAL_FILE_INFO_A {
907 DWORD cbSize = SP_ORIGINAL_FILE_INFO_A.sizeof;
908 CHAR[MAX_PATH] OriginalInfName = 0;
909 CHAR[MAX_PATH] OriginalCatalogName = 0;
910 }
911 alias SP_ORIGINAL_FILE_INFO_A* PSP_ORIGINAL_FILE_INFO_A;
912
913 struct SP_ORIGINAL_FILE_INFO_W {
914 DWORD cbSize = SP_ORIGINAL_FILE_INFO_W.sizeof;
915 WCHAR[MAX_PATH] OriginalInfName = 0;
916 WCHAR[MAX_PATH] OriginalCatalogName = 0;
917 }
918 alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO_W;
919
920 struct FILEPATHS_A {
921 PCSTR Target;
922 PCSTR Source;
923 UINT Win32Error;
924 DWORD Flags;
925 }
926 alias FILEPATHS_A* PFILEPATHS_A;
927
928 struct FILEPATHS_W {
929 PCWSTR Target;
930 PCWSTR Source;
931 UINT Win32Error;
932 DWORD Flags;
933 }
934 alias FILEPATHS_W* PFILEPATHS_W;
935
936 struct SOURCE_MEDIA_A {
937 PCSTR Reserved;
938 PCSTR Tagfile;
939 PCSTR Description;
940 PCSTR SourcePath;
941 PCSTR SourceFile;
942 DWORD Flags;
943 }
944 alias SOURCE_MEDIA_A* PSOURCE_MEDIA_A;
945
946 struct SOURCE_MEDIA_W {
947 PCWSTR Reserved;
948 PCWSTR Tagfile;
949 PCWSTR Description;
950 PCWSTR SourcePath;
951 PCWSTR SourceFile;
952 DWORD Flags;
953 }
954 alias SOURCE_MEDIA_W* PSOURCE_MEDIA_W;
955
956 struct CABINET_INFO_A {
957 PCSTR CabinetPath;
958 PCSTR CabinetFile;
959 PCSTR DiskName;
960 USHORT SetId;
961 USHORT CabinetNumber;
962 }
963 alias CABINET_INFO_A* PCABINET_INFO_A;
964
965 struct CABINET_INFO_W {
966 PCWSTR CabinetPath;
967 PCWSTR CabinetFile;
968 PCWSTR DiskName;
969 USHORT SetId;
970 USHORT CabinetNumber;
971 }
972 alias CABINET_INFO_W* PCABINET_INFO_W;
973
974 mixin AlignedStr!(_alignVal, "FILE_IN_CABINET_INFO_A", q{
975 PCSTR NameInCabinet;
976 DWORD FileSize;
977 DWORD Win32Error;
978 WORD DosDate;
979 WORD DosTime;
980 WORD DosAttribs;
981 CHAR[MAX_PATH] FullTargetName = 0;
982 });
983 alias FILE_IN_CABINET_INFO_A* PFILE_IN_CABINET_INFO_A;
984
985 mixin AlignedStr!(_alignVal, "FILE_IN_CABINET_INFO_W", q{
986 PCWSTR NameInCabinet;
987 DWORD FileSize;
988 DWORD Win32Error;
989 WORD DosDate;
990 WORD DosTime;
991 WORD DosAttribs;
992 WCHAR[MAX_PATH] FullTargetName = 0;
993 });
994 alias FILE_IN_CABINET_INFO_W* PFILE_IN_CABINET_INFO_W;
995
996 struct SP_FILE_COPY_PARAMS_A {
997 DWORD cbSize = SP_FILE_COPY_PARAMS_A.sizeof;
998 HSPFILEQ QueueHandle;
999 PCSTR SourceRootPath;
1000 PCSTR SourcePath;
1001 PCSTR SourceFilename;
1002 PCSTR SourceDescription;
1003 PCSTR SourceTagfile;
1004 PCSTR TargetDirectory;
1005 PCSTR TargetFilename;
1006 DWORD CopyStyle;
1007 HINF LayoutInf;
1008 PCSTR SecurityDescriptor;
1009 }
1010 alias SP_FILE_COPY_PARAMS_A* PSP_FILE_COPY_PARAMS_A;
1011
1012 struct SP_FILE_COPY_PARAMS_W {
1013 DWORD cbSize = SP_FILE_COPY_PARAMS_W.sizeof;
1014 HSPFILEQ QueueHandle;
1015 PCWSTR SourceRootPath;
1016 PCWSTR SourcePath;
1017 PCWSTR SourceFilename;
1018 PCWSTR SourceDescription;
1019 PCWSTR SourceTagfile;
1020 PCWSTR TargetDirectory;
1021 PCWSTR TargetFilename;
1022 DWORD CopyStyle;
1023 HINF LayoutInf;
1024 PCWSTR SecurityDescriptor;
1025 }
1026 alias SP_FILE_COPY_PARAMS_W* PSP_FILE_COPY_PARAMS_W;
1027
1028 struct SP_DEVINFO_DATA {
1029 DWORD cbSize = SP_DEVINFO_DATA.sizeof;
1030 GUID ClassGuid;
1031 DWORD DevInst;
1032 ULONG_PTR Reserved;
1033 }
1034 alias SP_DEVINFO_DATA* PSP_DEVINFO_DATA;
1035
1036 mixin AlignedStr!(_alignVal, "SP_DEVICE_INTERFACE_DATA", q{
1037 DWORD cbSize = SP_DEVICE_INTERFACE_DATA.sizeof;
1038 GUID InterfaceClassGuid;
1039 DWORD Flags;
1040 ULONG_PTR Reserved;
1041 });
1042 alias SP_DEVICE_INTERFACE_DATA* PSP_DEVICE_INTERFACE_DATA;
1043 deprecated alias SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA;
1044 deprecated alias SP_DEVICE_INTERFACE_DATA* PSP_INTERFACE_DEVICE_DATA;
1045
1046 mixin AlignedStr!(_alignVal, "SP_DEVICE_INTERFACE_DETAIL_DATA_A", q{
1047 DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_A.sizeof;
1048 CHAR[1] _DevicePath = 0;
1049 CHAR* DevicePath() return { return _DevicePath.ptr; }
1050 });
1051 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
1052
1053 mixin AlignedStr!(_alignVal, "SP_DEVICE_INTERFACE_DETAIL_DATA_W", q{
1054 DWORD cbSize = SP_DEVICE_INTERFACE_DETAIL_DATA_W.sizeof;
1055 WCHAR[1] _DevicePath = 0;
1056 WCHAR* DevicePath() return { return _DevicePath.ptr; }
1057 });
1058 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
1059
1060 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A;
1061 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
1062 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W;
1063 deprecated alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
1064
1065 mixin AlignedStr!(_alignVal, "SP_DEVINFO_LIST_DETAIL_DATA_A", q{
1066 DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_A.sizeof;
1067 GUID ClassGuid;
1068 HANDLE RemoteMachineHandle;
1069 CHAR[SP_MAX_MACHINENAME_LENGTH] RemoteMachineName = 0;
1070 });
1071 alias SP_DEVINFO_LIST_DETAIL_DATA_A* PSP_DEVINFO_LIST_DETAIL_DATA_A;
1072
1073 mixin AlignedStr!(_alignVal, "SP_DEVINFO_LIST_DETAIL_DATA_W", q{
1074 DWORD cbSize = SP_DEVINFO_LIST_DETAIL_DATA_W.sizeof;
1075 GUID ClassGuid;
1076 HANDLE RemoteMachineHandle;
1077 WCHAR[SP_MAX_MACHINENAME_LENGTH] RemoteMachineName = 0;
1078 });
1079 alias SP_DEVINFO_LIST_DETAIL_DATA_W* PSP_DEVINFO_LIST_DETAIL_DATA_W;
1080
1081 extern(Windows) alias UINT function(PVOID, UINT, UINT_PTR, UINT_PTR) PSP_FILE_CALLBACK_A;
1082 extern(Windows) alias UINT function(PVOID, UINT, UINT_PTR, UINT_PTR) PSP_FILE_CALLBACK_W;
1083
1084 struct SP_DEVINSTALL_PARAMS_A {
1085 DWORD cbSize = SP_DEVINSTALL_PARAMS_A.sizeof;
1086 DWORD Flags;
1087 DWORD FlagsEx;
1088 HWND hwndParent;
1089 PSP_FILE_CALLBACK_A InstallMsgHandler;
1090 PVOID InstallMsgHandlerContext;
1091 HSPFILEQ FileQueue;
1092 ULONG_PTR ClassInstallReserved;
1093 DWORD Reserved;
1094 CHAR[MAX_PATH] DriverPath = 0;
1095 }
1096 alias SP_DEVINSTALL_PARAMS_A* PSP_DEVINSTALL_PARAMS_A;
1097
1098 struct SP_DEVINSTALL_PARAMS_W {
1099 DWORD cbSize = SP_DEVINSTALL_PARAMS_W.sizeof;
1100 DWORD Flags;
1101 DWORD FlagsEx;
1102 HWND hwndParent;
1103 PSP_FILE_CALLBACK_W InstallMsgHandler;
1104 PVOID InstallMsgHandlerContext;
1105 HSPFILEQ FileQueue;
1106 ULONG_PTR ClassInstallReserved;
1107 DWORD Reserved;
1108 WCHAR[MAX_PATH] DriverPath = 0;
1109 }
1110 alias SP_DEVINSTALL_PARAMS_W* PSP_DEVINSTALL_PARAMS_W;
1111
1112 struct SP_CLASSINSTALL_HEADER {
1113 DWORD cbSize = SP_CLASSINSTALL_HEADER.sizeof;
1114 DI_FUNCTION InstallFunction;
1115 }
1116 alias SP_CLASSINSTALL_HEADER* PSP_CLASSINSTALL_HEADER;
1117
1118 struct SP_ENABLECLASS_PARAMS {
1119 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1120 GUID ClassGuid;
1121 DWORD EnableMessage;
1122 }
1123 alias SP_ENABLECLASS_PARAMS* PSP_ENABLECLASS_PARAMS;
1124
1125 struct SP_MOVEDEV_PARAMS {
1126 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1127 SP_DEVINFO_DATA SourceDeviceInfoData;
1128 }
1129 alias SP_MOVEDEV_PARAMS* PSP_MOVEDEV_PARAMS;
1130
1131 struct SP_PROPCHANGE_PARAMS {
1132 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1133 DWORD StateChange;
1134 DWORD Scope;
1135 DWORD HwProfile;
1136 }
1137 alias SP_PROPCHANGE_PARAMS* PSP_PROPCHANGE_PARAMS;
1138
1139 struct SP_REMOVEDEVICE_PARAMS {
1140 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1141 DWORD Scope;
1142 DWORD HwProfile;
1143 }
1144 alias SP_REMOVEDEVICE_PARAMS* PSP_REMOVEDEVICE_PARAMS;
1145
1146 struct SP_UNREMOVEDEVICE_PARAMS {
1147 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1148 DWORD Scope;
1149 DWORD HwProfile;
1150 }
1151 alias SP_UNREMOVEDEVICE_PARAMS* PSP_UNREMOVEDEVICE_PARAMS;
1152
1153 struct SP_SELECTDEVICE_PARAMS_A {
1154 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1155 CHAR[MAX_TITLE_LEN] Title = 0;
1156 CHAR[MAX_INSTRUCTION_LEN] Instructions = 0;
1157 CHAR[MAX_LABEL_LEN] ListLabel = 0;
1158 CHAR[MAX_SUBTITLE_LEN] SubTitle = 0;
1159 BYTE[2] Reserved;
1160 }
1161 alias SP_SELECTDEVICE_PARAMS_A* PSP_SELECTDEVICE_PARAMS_A;
1162
1163 struct SP_SELECTDEVICE_PARAMS_W {
1164 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1165 WCHAR[MAX_TITLE_LEN] Title = 0;
1166 WCHAR[MAX_INSTRUCTION_LEN] Instructions = 0;
1167 WCHAR[MAX_LABEL_LEN] ListLabel = 0;
1168 WCHAR[MAX_SUBTITLE_LEN] SubTitle = 0;
1169 }
1170 alias SP_SELECTDEVICE_PARAMS_W* PSP_SELECTDEVICE_PARAMS_W;
1171
1172 extern(Windows) alias BOOL function(PVOID, DWORD) PDETECT_PROGRESS_NOTIFY;
1173
1174 struct SP_DETECTDEVICE_PARAMS {
1175 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1176 PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
1177 PVOID ProgressNotifyParam;
1178 }
1179 alias SP_DETECTDEVICE_PARAMS* PSP_DETECTDEVICE_PARAMS;
1180
1181 struct SP_INSTALLWIZARD_DATA {
1182 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1183 DWORD Flags;
1184 HPROPSHEETPAGE[MAX_INSTALLWIZARD_DYNAPAGES] DynamicPages;
1185 DWORD NumDynamicPages;
1186 DWORD DynamicPageFlags;
1187 DWORD PrivateFlags;
1188 LPARAM PrivateData;
1189 HWND hwndWizardDlg;
1190 }
1191 alias SP_INSTALLWIZARD_DATA* PSP_INSTALLWIZARD_DATA;
1192
1193 struct SP_NEWDEVICEWIZARD_DATA {
1194 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1195 DWORD Flags;
1196 HPROPSHEETPAGE[MAX_INSTALLWIZARD_DYNAPAGES] DynamicPages;
1197 DWORD NumDynamicPages;
1198 HWND hwndWizardDlg;
1199 }
1200 alias SP_NEWDEVICEWIZARD_DATA* PSP_NEWDEVICEWIZARD_DATA;
1201 alias SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA;
1202 alias SP_NEWDEVICEWIZARD_DATA* PSP_ADDPROPERTYPAGE_DATA;
1203
1204 struct SP_TROUBLESHOOTER_PARAMS_A {
1205 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1206 CHAR[MAX_PATH] ChmFile = 0;
1207 CHAR[MAX_PATH] HtmlTroubleShooter = 0;
1208 }
1209 alias SP_TROUBLESHOOTER_PARAMS_A* PSP_TROUBLESHOOTER_PARAMS_A;
1210
1211 struct SP_TROUBLESHOOTER_PARAMS_W {
1212 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1213 WCHAR[MAX_PATH] ChmFile = 0;
1214 WCHAR[MAX_PATH] HtmlTroubleShooter = 0;
1215 }
1216 alias SP_TROUBLESHOOTER_PARAMS_W* PSP_TROUBLESHOOTER_PARAMS_W;
1217
1218 struct SP_POWERMESSAGEWAKE_PARAMS_A {
1219 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1220 CHAR[LINE_LEN*2] PowerMessageWake = 0;
1221 }
1222 alias SP_POWERMESSAGEWAKE_PARAMS_A* PSP_POWERMESSAGEWAKE_PARAMS_A;
1223
1224 struct SP_POWERMESSAGEWAKE_PARAMS_W {
1225 SP_CLASSINSTALL_HEADER ClassInstallHeader;
1226 WCHAR[LINE_LEN*2] PowerMessageWake = 0;
1227 }
1228 alias SP_POWERMESSAGEWAKE_PARAMS_W* PSP_POWERMESSAGEWAKE_PARAMS_W;
1229
1230 mixin AlignedStr!(_alignVal, "SP_DRVINFO_DATA_V2_A", q{
1231 DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof;
1232 DWORD DriverType;
1233 ULONG_PTR Reserved;
1234 CHAR[LINE_LEN] Description = 0;
1235 CHAR[LINE_LEN] MfgName = 0;
1236 CHAR[LINE_LEN] ProviderName = 0;
1237 FILETIME DriverDate;
1238 DWORDLONG DriverVersion;
1239 });
1240 alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_V2_A;
1241
1242 mixin AlignedStr!(_alignVal, "SP_DRVINFO_DATA_V2_W", q{
1243 DWORD cbSize = SP_DRVINFO_DATA_V2_A.sizeof;
1244 DWORD DriverType;
1245 ULONG_PTR Reserved;
1246 WCHAR[LINE_LEN] Description = 0;
1247 WCHAR[LINE_LEN] MfgName = 0;
1248 WCHAR[LINE_LEN] ProviderName = 0;
1249 FILETIME DriverDate;
1250 DWORDLONG DriverVersion;
1251 });
1252 alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_V2_W;
1253
1254 struct SP_DRVINFO_DATA_V1_A {
1255 DWORD cbSize = SP_DRVINFO_DATA_V1_A.sizeof;
1256 DWORD DriverType;
1257 ULONG_PTR Reserved;
1258 CHAR[LINE_LEN] Description = 0;
1259 CHAR[LINE_LEN] MfgName = 0;
1260 CHAR[LINE_LEN] ProviderName = 0;
1261 }
1262 alias SP_DRVINFO_DATA_V1_A* PSP_DRVINFO_DATA_V1_A;
1263
1264 struct SP_DRVINFO_DATA_V1_W {
1265 DWORD cbSize = SP_DRVINFO_DATA_V1_W.sizeof;
1266 DWORD DriverType;
1267 ULONG_PTR Reserved;
1268 WCHAR[LINE_LEN] Description = 0;
1269 WCHAR[LINE_LEN] MfgName = 0;
1270 WCHAR[LINE_LEN] ProviderName = 0;
1271 }
1272 alias SP_DRVINFO_DATA_V1_W* PSP_DRVINFO_DATA_V1_W;
1273
1274 version (Unicode) {
1275 alias SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1;
1276 alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2;
1277 } else {
1278 alias SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1;
1279 alias SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2;
1280 }
1281 alias SP_DRVINFO_DATA_V1* PSP_DRVINFO_DATA_V1;
1282 alias SP_DRVINFO_DATA_V2* PSP_DRVINFO_DATA_V2;
1283
1284 static if (USE_SP_DRVINFO_DATA_V1) {
1285 alias SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A;
1286 alias SP_DRVINFO_DATA_V1_A* PSP_DRVINFO_DATA_A;
1287 alias SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W;
1288 alias SP_DRVINFO_DATA_V1_W* PSP_DRVINFO_DATA_W;
1289 alias SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA;
1290 alias SP_DRVINFO_DATA_V1* PSP_DRVINFO_DATA;
1291 } else {
1292 alias SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A;
1293 alias SP_DRVINFO_DATA_V2_A* PSP_DRVINFO_DATA_A;
1294 alias SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W;
1295 alias SP_DRVINFO_DATA_V2_W* PSP_DRVINFO_DATA_W;
1296 alias SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA;
1297 alias SP_DRVINFO_DATA_V2* PSP_DRVINFO_DATA;
1298 }
1299
1300 extern(Windows) alias DWORD function(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINFO_DATA, PVOID) PSP_DETSIG_CMPPROC;
1301
1302 mixin AlignedStr!(_alignVal, "SP_DRVINFO_DETAIL_DATA_A", q{
1303 DWORD cbSize = SP_DRVINFO_DETAIL_DATA_A.sizeof;
1304 FILETIME InfDate;
1305 DWORD CompatIDsOffset;
1306 DWORD CompatIDsLength;
1307 ULONG_PTR Reserved;
1308 CHAR[LINE_LEN] SectionName = 0;
1309 CHAR[MAX_PATH] InfFileName = 0;
1310 CHAR[LINE_LEN] DrvDescription = 0;
1311 CHAR[1] _HardwareID = 0;
1312 CHAR* HardwareID() return { return _HardwareID.ptr; }
1313 });
1314 alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA_A;
1315
1316 mixin AlignedStr!(_alignVal, "SP_DRVINFO_DETAIL_DATA_W", q{
1317 DWORD cbSize = SP_DRVINFO_DETAIL_DATA_W.sizeof;
1318 FILETIME InfDate;
1319 DWORD CompatIDsOffset;
1320 DWORD CompatIDsLength;
1321 ULONG_PTR Reserved;
1322 WCHAR[LINE_LEN] SectionName = 0;
1323 WCHAR[MAX_PATH] InfFileName = 0;
1324 WCHAR[LINE_LEN] DrvDescription = 0;
1325 WCHAR[1] _HardwareID = 0;
1326 WCHAR* HardwareID() return { return _HardwareID.ptr; }
1327 });
1328 alias SP_DRVINFO_DETAIL_DATA_W* PSP_DRVINFO_DETAIL_DATA_W;
1329
1330 struct SP_DRVINSTALL_PARAMS {
1331 DWORD cbSize = SP_DRVINSTALL_PARAMS.sizeof;
1332 DWORD Rank;
1333 DWORD Flags;
1334 DWORD_PTR PrivateData;
1335 DWORD Reserved;
1336 }
1337 alias SP_DRVINSTALL_PARAMS* PSP_DRVINSTALL_PARAMS;
1338
1339 struct COINSTALLER_CONTEXT_DATA {
1340 BOOL PostProcessing;
1341 DWORD InstallResult;
1342 PVOID PrivateData;
1343 }
1344 alias COINSTALLER_CONTEXT_DATA* PCOINSTALLER_CONTEXT_DATA;
1345
1346 struct SP_CLASSIMAGELIST_DATA {
1347 DWORD cbSize = SP_CLASSIMAGELIST_DATA.sizeof;
1348 HIMAGELIST ImageList;
1349 ULONG_PTR Reserved;
1350 }
1351 alias SP_CLASSIMAGELIST_DATA* PSP_CLASSIMAGELIST_DATA;
1352
1353 struct SP_PROPSHEETPAGE_REQUEST {
1354 DWORD cbSize = SP_PROPSHEETPAGE_REQUEST.sizeof;
1355 DWORD PageRequested;
1356 HDEVINFO DeviceInfoSet;
1357 PSP_DEVINFO_DATA DeviceInfoData;
1358 }
1359 alias SP_PROPSHEETPAGE_REQUEST* PSP_PROPSHEETPAGE_REQUEST;
1360
1361 struct SP_BACKUP_QUEUE_PARAMS_A {
1362 DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_A.sizeof;
1363 CHAR[MAX_PATH] FullInfPath = 0;
1364 INT FilenameOffset;
1365 }
1366 alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS_A;
1367
1368 struct SP_BACKUP_QUEUE_PARAMS_W {
1369 DWORD cbSize = SP_BACKUP_QUEUE_PARAMS_W.sizeof;
1370 WCHAR[MAX_PATH] FullInfPath = 0;
1371 INT FilenameOffset;
1372 }
1373 alias SP_BACKUP_QUEUE_PARAMS_W* PSP_BACKUP_QUEUE_PARAMS_W;
1374
1375 version (Unicode) {
1376 alias SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO;
1377 alias SP_ORIGINAL_FILE_INFO_W* PSP_ORIGINAL_FILE_INFO;
1378 alias FILEPATHS_W FILEPATHS;
1379 alias FILEPATHS_W* PFILEPATHS;
1380 alias SOURCE_MEDIA_W SOURCE_MEDIA;
1381 alias SOURCE_MEDIA_W* PSOURCE_MEDIA;
1382 alias CABINET_INFO_W CABINET_INFO;
1383 alias CABINET_INFO_W* PCABINET_INFO;
1384 alias FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO;
1385 alias FILE_IN_CABINET_INFO_W* PFILE_IN_CABINET_INFO;
1386 alias SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS;
1387 alias SP_FILE_COPY_PARAMS_W* PSP_FILE_COPY_PARAMS;
1388 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA;
1389 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_DEVICE_INTERFACE_DETAIL_DATA;
1390 deprecated {
1391 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA;
1392 alias SP_DEVICE_INTERFACE_DETAIL_DATA_W* PSP_INTERFACE_DEVICE_DETAIL_DATA;
1393 }
1394 alias SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA;
1395 alias SP_DEVINFO_LIST_DETAIL_DATA_W *PSP_DEVINFO_LIST_DETAIL_DATA;
1396 alias SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS;
1397 alias SP_DEVINSTALL_PARAMS_W* PSP_DEVINSTALL_PARAMS;
1398 alias SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS;
1399 alias SP_SELECTDEVICE_PARAMS_W* PSP_SELECTDEVICE_PARAMS;
1400 alias SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS;
1401 alias SP_TROUBLESHOOTER_PARAMS_W* PSP_TROUBLESHOOTER_PARAMS;
1402 alias SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS;
1403 alias SP_POWERMESSAGEWAKE_PARAMS_W* PSP_POWERMESSAGEWAKE_PARAMS;
1404 alias SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA;
1405 alias SP_DRVINFO_DETAIL_DATA_W* PSP_DRVINFO_DETAIL_DATA;
1406 alias SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS;
1407 alias SP_BACKUP_QUEUE_PARAMS_W* PSP_BACKUP_QUEUE_PARAMS;
1408 } else {
1409 alias SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO;
1410 alias SP_ORIGINAL_FILE_INFO_A* PSP_ORIGINAL_FILE_INFO;
1411 alias FILEPATHS_A FILEPATHS;
1412 alias FILEPATHS_A* PFILEPATHS;
1413 alias SOURCE_MEDIA_A SOURCE_MEDIA;
1414 alias SOURCE_MEDIA_A* PSOURCE_MEDIA;
1415 alias CABINET_INFO_A CABINET_INFO;
1416 alias CABINET_INFO_A* PCABINET_INFO;
1417 alias FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO;
1418 alias FILE_IN_CABINET_INFO_A* PFILE_IN_CABINET_INFO;
1419 alias SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS;
1420 alias SP_FILE_COPY_PARAMS_A* PSP_FILE_COPY_PARAMS;
1421 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA;
1422 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_DEVICE_INTERFACE_DETAIL_DATA;
1423 deprecated {
1424 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA;
1425 alias SP_DEVICE_INTERFACE_DETAIL_DATA_A* PSP_INTERFACE_DEVICE_DETAIL_DATA;
1426 }
1427 alias SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA;
1428 alias SP_DEVINFO_LIST_DETAIL_DATA_A* PSP_DEVINFO_LIST_DETAIL_DATA;
1429 alias SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS;
1430 alias SP_DEVINSTALL_PARAMS_A* PSP_DEVINSTALL_PARAMS;
1431 alias SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS;
1432 alias SP_SELECTDEVICE_PARAMS_A* PSP_SELECTDEVICE_PARAMS;
1433 alias SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS;
1434 alias SP_TROUBLESHOOTER_PARAMS_A* PSP_TROUBLESHOOTER_PARAMS;
1435 alias SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS;
1436 alias SP_POWERMESSAGEWAKE_PARAMS_A* PSP_POWERMESSAGEWAKE_PARAMS;
1437 alias SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA;
1438 alias SP_DRVINFO_DETAIL_DATA_A* PSP_DRVINFO_DETAIL_DATA;
1439 alias SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS;
1440 alias SP_BACKUP_QUEUE_PARAMS_A* PSP_BACKUP_QUEUE_PARAMS;
1441 }
1442
1443 extern (Windows) {
1444 BOOL SetupAddInstallSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT);
1445 BOOL SetupAddInstallSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT);
1446 BOOL SetupAddSectionToDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT);
1447 BOOL SetupAddSectionToDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT);
1448 BOOL SetupAddToDiskSpaceListA(HDSKSPC, PCSTR, LONGLONG, UINT, PVOID, UINT);
1449 BOOL SetupAddToDiskSpaceListW(HDSKSPC, PCWSTR, LONGLONG, UINT, PVOID, UINT);
1450 BOOL SetupAddToSourceListA(DWORD, PCSTR);
1451 BOOL SetupAddToSourceListW(DWORD, PCWSTR);
1452 BOOL SetupQuerySourceListA(DWORD, PCSTR**List, PUINT);
1453 BOOL SetupQuerySourceListW(DWORD, PCWSTR**List, PUINT);
1454 BOOL SetupFreeSourceListA(PCSTR**List, UINT);
1455 BOOL SetupFreeSourceListW(PCWSTR**List, UINT);
1456 BOOL SetupAdjustDiskSpaceListA(HDSKSPC, LPCSTR, LONGLONG, PVOID, UINT);
1457 BOOL SetupAdjustDiskSpaceListW(HDSKSPC, LPCWSTR, LONGLONG, PVOID, UINT);
1458 UINT SetupBackupErrorA(HWND, PCSTR, PCSTR, PCSTR, UINT, DWORD);
1459 UINT SetupBackupErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD);
1460 BOOL SetupCancelTemporary();
1461 BOOL SetupCloseFileQueue(HSPFILEQ);
1462 VOID SetupCloseInfFile(HINF);
1463 VOID SetupCloseLog();
1464 BOOL SetupCommitFileQueueA(HWND, HSPFILEQ, PSP_FILE_CALLBACK_A, PVOID);
1465 BOOL SetupCommitFileQueueW(HWND, HSPFILEQ, PSP_FILE_CALLBACK_W, PVOID);
1466 UINT SetupCopyErrorA(HWND, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, UINT, DWORD, PSTR, DWORD, PDWORD);
1467 UINT SetupCopyErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD, PWSTR, DWORD, PDWORD);
1468 BOOL SetupCopyOEMInfA(PCSTR, PCSTR, DWORD, DWORD, PSTR, DWORD, PDWORD, PSTR*);
1469 BOOL SetupCopyOEMInfW(PCWSTR, PCWSTR, DWORD, DWORD, PWSTR, DWORD, PDWORD, PWSTR*);
1470 HDSKSPC SetupCreateDiskSpaceListA(PVOID, DWORD, UINT);
1471 HDSKSPC SetupCreateDiskSpaceListW(PVOID, DWORD, UINT);
1472 DWORD SetupDecompressOrCopyFileA(PCSTR, PCSTR, PUINT);
1473 DWORD SetupDecompressOrCopyFileW(PCWSTR, PCWSTR, PUINT);
1474 UINT SetupDefaultQueueCallbackA(PVOID, UINT, UINT_PTR, UINT_PTR);
1475 UINT SetupDefaultQueueCallbackW(PVOID, UINT, UINT_PTR, UINT_PTR);
1476 UINT SetupDeleteErrorA(HWND, PCSTR, PCSTR, UINT, DWORD);
1477 UINT SetupDeleteErrorW(HWND, PCWSTR, PCWSTR, UINT, DWORD);
1478 BOOL SetupDestroyDiskSpaceList(HDSKSPC);
1479 BOOL SetupDiAskForOEMDisk(HDEVINFO, PSP_DEVINFO_DATA);
1480 BOOL SetupDiBuildClassInfoList(DWORD, LPGUID, DWORD, PDWORD);
1481 BOOL SetupDiBuildClassInfoListExA(DWORD, LPGUID, DWORD, PDWORD, PCSTR, PVOID);
1482 BOOL SetupDiBuildClassInfoListExW(DWORD, LPGUID, DWORD, PDWORD, PCWSTR, PVOID);
1483 BOOL SetupDiBuildDriverInfoList(HDEVINFO, PSP_DEVINFO_DATA, DWORD);
1484 BOOL SetupDiCallClassInstaller(DI_FUNCTION, HDEVINFO, PSP_DEVINFO_DATA);
1485 BOOL SetupDiCancelDriverInfoSearch(HDEVINFO);
1486 BOOL SetupDiChangeState(HDEVINFO, PSP_DEVINFO_DATA);
1487 BOOL SetupDiClassGuidsFromNameA(PCSTR, LPGUID, DWORD, PDWORD);
1488 BOOL SetupDiClassGuidsFromNameW(PCWSTR, LPGUID, DWORD, PDWORD);
1489 BOOL SetupDiClassGuidsFromNameExA(PCSTR, LPGUID, DWORD, PDWORD, PCSTR, PVOID);
1490 BOOL SetupDiClassGuidsFromNameExW(PCWSTR, LPGUID, DWORD, PDWORD, PCWSTR, PVOID);
1491 BOOL SetupDiClassNameFromGuidA(const(GUID)*, PSTR, DWORD, PDWORD);
1492 BOOL SetupDiClassNameFromGuidW(const(GUID)*, PWSTR, DWORD, PDWORD);
1493 BOOL SetupDiClassNameFromGuidExA(const(GUID)*, PSTR, DWORD, PDWORD, PCSTR, PVOID);
1494 BOOL SetupDiClassNameFromGuidExW(const(GUID)*, PWSTR, DWORD, PDWORD, PCWSTR, PVOID);
1495 BOOL SetupDiCreateDeviceInfoA(HDEVINFO, PCSTR, const(GUID)*, PCSTR, HWND, DWORD, PSP_DEVINFO_DATA);
1496 BOOL SetupDiCreateDeviceInfoW(HDEVINFO, PCWSTR, const(GUID)*, PCWSTR, HWND, DWORD, PSP_DEVINFO_DATA);
1497 HDEVINFO SetupDiCreateDeviceInfoList(const(GUID)*, HWND);
1498 HDEVINFO SetupDiCreateDeviceInfoListExA(const(GUID)*, HWND, PCSTR, PVOID);
1499 HDEVINFO SetupDiCreateDeviceInfoListExW(const(GUID)*, HWND, PCWSTR, PVOID);
1500 BOOL SetupDiCreateDeviceInterfaceA(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, PCSTR, DWORD, PSP_DEVICE_INTERFACE_DATA);
1501 BOOL SetupDiCreateDeviceInterfaceW(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, PCWSTR, DWORD, PSP_DEVICE_INTERFACE_DATA);
1502 HKEY SetupDiCreateDeviceInterfaceRegKeyA(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM, HINF, PCSTR);
1503 HKEY SetupDiCreateDeviceInterfaceRegKeyW(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM, HINF, PCWSTR);
1504 HKEY SetupDiCreateDevRegKeyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, HINF, PCSTR);
1505 HKEY SetupDiCreateDevRegKeyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, HINF, PCWSTR);
1506 BOOL SetupDiDeleteDeviceInfo(HDEVINFO, PSP_DEVINFO_DATA);
1507 BOOL SetupDiDeleteDeviceInterfaceData(HDEVINFO, PSP_DEVICE_INTERFACE_DATA);
1508 BOOL SetupDiDeleteDeviceInterfaceRegKey(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD);
1509 BOOL SetupDiDeleteDevRegKey(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD);
1510 BOOL SetupDiDestroyClassImageList(PSP_CLASSIMAGELIST_DATA);
1511 BOOL SetupDiDestroyDeviceInfoList(HDEVINFO);
1512 BOOL SetupDiDestroyDriverInfoList(HDEVINFO, PSP_DEVINFO_DATA, DWORD);
1513 INT SetupDiDrawMiniIcon(HDC, RECT, INT, DWORD);
1514 BOOL SetupDiEnumDeviceInfo(HDEVINFO, DWORD, PSP_DEVINFO_DATA);
1515 BOOL SetupDiEnumDeviceInterfaces(HDEVINFO, PSP_DEVINFO_DATA, const(GUID)*, DWORD, PSP_DEVICE_INTERFACE_DATA);
1516 BOOL SetupDiEnumDriverInfoA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, PSP_DRVINFO_DATA_A);
1517 BOOL SetupDiEnumDriverInfoW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, PSP_DRVINFO_DATA_W);
1518 BOOL SetupDiGetActualSectionToInstallA(HINF, PCSTR, PSTR, DWORD, PDWORD, PSTR*);
1519 BOOL SetupDiGetActualSectionToInstallW(HINF, PCWSTR, PWSTR, DWORD, PDWORD, PWSTR*);
1520 BOOL SetupDiGetClassBitmapIndex(const(GUID)*, PINT);
1521 BOOL SetupDiGetClassDescriptionA(const(GUID)*, PSTR, DWORD, PDWORD);
1522 BOOL SetupDiGetClassDescriptionW(const(GUID)*, PWSTR, DWORD, PDWORD);
1523 BOOL SetupDiGetClassDescriptionExA(const(GUID)*, PSTR, DWORD, PDWORD, PCSTR, PVOID);
1524 BOOL SetupDiGetClassDescriptionExW(const(GUID)*, PWSTR, DWORD, PDWORD, PCWSTR, PVOID);
1525 BOOL SetupDiGetClassDevPropertySheetsA(HDEVINFO, PSP_DEVINFO_DATA, LPPROPSHEETHEADERA, DWORD, PDWORD, DWORD);
1526 BOOL SetupDiGetClassDevPropertySheetsW(HDEVINFO, PSP_DEVINFO_DATA, LPPROPSHEETHEADERW, DWORD, PDWORD, DWORD);
1527 HDEVINFO SetupDiGetClassDevsA(const(GUID)*, PCSTR, HWND, DWORD);
1528 HDEVINFO SetupDiGetClassDevsW(const(GUID)*, PCWSTR, HWND, DWORD);
1529 HDEVINFO SetupDiGetClassDevsExA(const(GUID)*, PCSTR, HWND, DWORD, HDEVINFO, PCSTR, PVOID);
1530 HDEVINFO SetupDiGetClassDevsExW(const(GUID)*, PCWSTR, HWND, DWORD, HDEVINFO, PCWSTR, PVOID);
1531 BOOL SetupDiGetClassImageIndex(PSP_CLASSIMAGELIST_DATA, const(GUID)*, PINT);
1532 BOOL SetupDiGetClassImageList(PSP_CLASSIMAGELIST_DATA);
1533 BOOL SetupDiGetClassImageListExA(PSP_CLASSIMAGELIST_DATA, PCSTR, PVOID);
1534 BOOL SetupDiGetClassImageListExW(PSP_CLASSIMAGELIST_DATA, PCWSTR, PVOID);
1535 BOOL SetupDiGetClassInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD, PDWORD);
1536 BOOL SetupDiGetClassInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD, PDWORD);
1537 BOOL SetupDiGetClassRegistryPropertyA(LPGUID, DWORD, PDWORD, PBYTE, DWORD, PDWORD, PCSTR, PVOID);
1538 BOOL SetupDiGetClassRegistryPropertyW(LPGUID, DWORD, PDWORD, PBYTE, DWORD, PDWORD, PCWSTR, PVOID);
1539 BOOL SetupDiGetDeviceInfoListClass(HDEVINFO, LPGUID);
1540 BOOL SetupDiGetDeviceInfoListDetailA(HDEVINFO, PSP_DEVINFO_LIST_DETAIL_DATA_A);
1541 BOOL SetupDiGetDeviceInfoListDetailW(HDEVINFO, PSP_DEVINFO_LIST_DETAIL_DATA_W);
1542 BOOL SetupDiGetDeviceInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_A);
1543 BOOL SetupDiGetDeviceInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_W);
1544 BOOL SetupDiGetDeviceInstanceIdA(HDEVINFO, PSP_DEVINFO_DATA, PSTR, DWORD, PDWORD);
1545 BOOL SetupDiGetDeviceInstanceIdW(HDEVINFO, PSP_DEVINFO_DATA, PWSTR, DWORD, PDWORD);
1546 BOOL SetupDiGetDeviceInterfaceAlias(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, const(GUID)*, PSP_DEVICE_INTERFACE_DATA);
1547 BOOL SetupDiGetDeviceInterfaceDetailA(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DWORD, PDWORD, PSP_DEVINFO_DATA);
1548 BOOL SetupDiGetDeviceInterfaceDetailW(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DWORD, PDWORD, PSP_DEVINFO_DATA);
1549 BOOL SetupDiGetDeviceRegistryPropertyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD);
1550 BOOL SetupDiGetDeviceRegistryPropertyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PDWORD, PBYTE, DWORD, PDWORD);
1551 BOOL SetupDiGetDriverInfoDetailA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINFO_DETAIL_DATA_A, DWORD, PDWORD);
1552 BOOL SetupDiGetDriverInfoDetailW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINFO_DETAIL_DATA_W, DWORD, PDWORD);
1553 BOOL SetupDiGetDriverInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINSTALL_PARAMS);
1554 BOOL SetupDiGetDriverInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINSTALL_PARAMS);
1555 BOOL SetupDiGetHwProfileFriendlyNameA(DWORD, PSTR, DWORD, PDWORD);
1556 BOOL SetupDiGetHwProfileFriendlyNameExA(DWORD, PSTR, DWORD, PDWORD, PCSTR, PVOID);
1557 BOOL SetupDiGetHwProfileFriendlyNameExW(DWORD, PWSTR, DWORD, PDWORD, PCWSTR, PVOID);
1558 BOOL SetupDiGetHwProfileFriendlyNameW(DWORD, PWSTR, DWORD, PDWORD);
1559 BOOL SetupDiGetHwProfileList(PDWORD, DWORD, PDWORD, PDWORD);
1560 BOOL SetupDiGetHwProfileListExA(PDWORD, DWORD, PDWORD, PDWORD, PCSTR, PVOID);
1561 BOOL SetupDiGetHwProfileListExW(PDWORD, DWORD, PDWORD, PDWORD, PCWSTR, PVOID);
1562 BOOL SetupDiGetINFClassA(PCSTR, LPGUID, PSTR, DWORD, PDWORD);
1563 BOOL SetupDiGetINFClassW(PCWSTR, LPGUID, PWSTR, DWORD, PDWORD);
1564 BOOL SetupDiGetSelectedDevice(HDEVINFO, PSP_DEVINFO_DATA);
1565 BOOL SetupDiGetSelectedDriverA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A);
1566 BOOL SetupDiGetSelectedDriverW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W);
1567 HPROPSHEETPAGE SetupDiGetWizardage(HDEVINFO, PSP_DEVINFO_DATA, PSP_INSTALLWIZARD_DATA, DWORD, DWORD);
1568 BOOL SetupDiInstallClassA(HWND, PCSTR, DWORD, HSPFILEQ);
1569 BOOL SetupDiInstallClassW(HWND, PCWSTR, DWORD, HSPFILEQ);
1570 BOOL SetupDiInstallClassExA(HWND, PCSTR, DWORD, HSPFILEQ, const(GUID)*, PVOID, PVOID);
1571 BOOL SetupDiInstallClassExW(HWND, PCWSTR, DWORD, HSPFILEQ, const(GUID)*, PVOID, PVOID);
1572 BOOL SetupDiInstallDevice(HDEVINFO, PSP_DEVINFO_DATA);
1573 BOOL SetupDiInstallDeviceInterfaces(HDEVINFO, PSP_DEVINFO_DATA);
1574 BOOL SetupDiInstallDriverFiles(HDEVINFO, PSP_DEVINFO_DATA);
1575 BOOL SetupDiLoadClassIcon(const(GUID)*, HICON*, PINT);
1576 BOOL SetupDiMoveDuplicateDevice(HDEVINFO, PSP_DEVINFO_DATA);
1577 HKEY SetupDiOpenClassRegKey(const(GUID)*, REGSAM);
1578 HKEY SetupDiOpenClassRegKeyExA(const(GUID)*, REGSAM, DWORD, PCSTR, PVOID);
1579 HKEY SetupDiOpenClassRegKeyExW(const(GUID)*, REGSAM, DWORD, PCWSTR, PVOID);
1580 BOOL SetupDiOpenDeviceInfoA(HDEVINFO, PCSTR, HWND, DWORD, PSP_DEVINFO_DATA);
1581 BOOL SetupDiOpenDeviceInfoW(HDEVINFO, PCWSTR, HWND, DWORD, PSP_DEVINFO_DATA);
1582 BOOL SetupDiOpenDeviceInterfaceA(HDEVINFO, PCSTR, DWORD, PSP_DEVICE_INTERFACE_DATA);
1583 BOOL SetupDiOpenDeviceInterfaceW(HDEVINFO, PCWSTR, DWORD, PSP_DEVICE_INTERFACE_DATA);
1584 HKEY SetupDiOpenDeviceInterfaceRegKey(HDEVINFO, PSP_DEVICE_INTERFACE_DATA, DWORD, REGSAM);
1585 HKEY SetupDiOpenDevRegKey(HDEVINFO, PSP_DEVINFO_DATA, DWORD, DWORD, DWORD, REGSAM);
1586 BOOL SetupDiRegisterCoDeviceInstallers(HDEVINFO, PSP_DEVINFO_DATA);
1587 BOOL SetupDiRegisterDeviceInfo(HDEVINFO, PSP_DEVINFO_DATA, DWORD, PSP_DETSIG_CMPPROC, PVOID, PSP_DEVINFO_DATA);
1588 BOOL SetupDiRemoveDevice(HDEVINFO, PSP_DEVINFO_DATA);
1589 BOOL SetupDiRemoveDeviceInterface(HDEVINFO, PSP_DEVICE_INTERFACE_DATA);
1590 BOOL SetupDiSelectBestCompatDrv(HDEVINFO, PSP_DEVINFO_DATA);
1591 BOOL SetupDiSelectDevice(HDEVINFO, PSP_DEVINFO_DATA);
1592 BOOL SetupDiSelectOEMDrv(HWND, HDEVINFO, PSP_DEVINFO_DATA);
1593 BOOL SetupDiSetClassInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD);
1594 BOOL SetupDiSetClassInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_CLASSINSTALL_HEADER, DWORD);
1595 BOOL SetupDiSetClassRegistryPropertyA(LPGUID, DWORD, const(BYTE)*, DWORD, PCSTR, PVOID);
1596 BOOL SetupDiSetClassRegistryPropertyW(LPGUID, DWORD, const(BYTE)*, DWORD, PCWSTR, PVOID);
1597 BOOL SetupDiSetDeviceInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_A);
1598 BOOL SetupDiSetDeviceInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DEVINSTALL_PARAMS_W);
1599 BOOL SetupDiSetDeviceRegistryPropertyA(HDEVINFO, PSP_DEVINFO_DATA, DWORD, const(BYTE)*, DWORD);
1600 BOOL SetupDiSetDeviceRegistryPropertyW(HDEVINFO, PSP_DEVINFO_DATA, DWORD, const(BYTE)*, DWORD);
1601 BOOL SetupDiSetDriverInstallParamsA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A, PSP_DRVINSTALL_PARAMS);
1602 BOOL SetupDiSetDriverInstallParamsW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W, PSP_DRVINSTALL_PARAMS);
1603 BOOL SetupDiSetSelectedDevice(HDEVINFO, PSP_DEVINFO_DATA);
1604 BOOL SetupDiSetSelectedDriverA(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_A);
1605 BOOL SetupDiSetSelectedDriverW(HDEVINFO, PSP_DEVINFO_DATA, PSP_DRVINFO_DATA_W);
1606 BOOL SetupDiUnremoveDevice(HDEVINFO, PSP_DEVINFO_DATA);
1607 HDSKSPC SetupDuplicateDiskSpaceListA(HDSKSPC, PVOID, DWORD, UINT);
1608 HDSKSPC SetupDuplicateDiskSpaceListW(HDSKSPC, PVOID, DWORD, UINT);
1609 BOOL SetupFindFirstLineA(HINF, PCSTR, PCSTR, PINFCONTEXT);
1610 BOOL SetupFindFirstLineW(HINF, PCWSTR, PCWSTR, PINFCONTEXT);
1611 BOOL SetupFindNextLine(PINFCONTEXT, PINFCONTEXT);
1612 BOOL SetupFindNextMatchLineA(PINFCONTEXT, PCSTR, PINFCONTEXT);
1613 BOOL SetupFindNextMatchLineW(PINFCONTEXT, PCWSTR, PINFCONTEXT);
1614 BOOL SetupFreeA(PCSTR**, UINT);
1615 BOOL SetupFreeW(PCWSTR**, UINT);
1616 BOOL SetupGetBackupInformationA(HSPFILEQ, PSP_BACKUP_QUEUE_PARAMS_A);
1617 BOOL SetupGetBackupInformationW(HSPFILEQ, PSP_BACKUP_QUEUE_PARAMS_W);
1618 BOOL SetupGetBinaryField(PINFCONTEXT, DWORD, PBYTE, DWORD, LPDWORD);
1619 DWORD SetupGetFieldCount(PINFCONTEXT);
1620 DWORD SetupGetFileCompressionInfoA(PCSTR, PSTR*, PDWORD, PDWORD, PUINT);
1621 DWORD SetupGetFileCompressionInfoW(PCWSTR, PWSTR*, PDWORD, PDWORD, PUINT);
1622 BOOL SetupGetInfFileListA(PCSTR, DWORD, PSTR, DWORD, PDWORD);
1623 BOOL SetupGetInfFileListW(PCWSTR, DWORD, PWSTR, DWORD, PDWORD);
1624 BOOL SetupGetInfInformationA(LPCVOID, DWORD, PSP_INF_INFORMATION, DWORD, PDWORD);
1625 BOOL SetupGetInfInformationW(LPCVOID, DWORD, PSP_INF_INFORMATION, DWORD, PDWORD);
1626 BOOL SetupGetIntField(PINFCONTEXT, DWORD, PINT);
1627 BOOL SetupGetLineByIndexA(HINF, PCSTR, DWORD, PINFCONTEXT);
1628 BOOL SetupGetLineByIndexW(HINF, PCWSTR, DWORD, PINFCONTEXT);
1629 LONG SetupGetLineCountA(HINF, PCSTR);
1630 LONG SetupGetLineCountW(HINF, PCWSTR);
1631 BOOL SetupGetLineTextA(PINFCONTEXT, HINF, PCSTR, PCSTR, PSTR, DWORD, PDWORD);
1632 BOOL SetupGetLineTextW(PINFCONTEXT, HINF, PCWSTR, PCWSTR, PWSTR, DWORD, PDWORD);
1633 BOOL SetupGetMultiSzFieldA(PINFCONTEXT, DWORD, PSTR, DWORD, LPDWORD);
1634 BOOL SetupGetMultiSzFieldW(PINFCONTEXT, DWORD, PWSTR, DWORD, LPDWORD);
1635 BOOL SetupGetSourceFileLocationA(HINF, PINFCONTEXT, PCSTR, PUINT, PSTR, DWORD, PDWORD);
1636 BOOL SetupGetSourceFileLocationW(HINF, PINFCONTEXT, PCWSTR, PUINT, PWSTR, DWORD, PDWORD);
1637 BOOL SetupGetSourceFileSizeA(HINF, PINFCONTEXT, PCSTR, PCSTR, PDWORD, UINT);
1638 BOOL SetupGetSourceFileSizeW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PDWORD, UINT);
1639 BOOL SetupGetSourceInfoA(HINF, UINT, UINT, PSTR, DWORD, PDWORD);
1640 BOOL SetupGetSourceInfoW(HINF, UINT, UINT, PWSTR, DWORD, PDWORD);
1641 BOOL SetupGetStringFieldA(PINFCONTEXT, DWORD, PSTR, DWORD, PDWORD);
1642 BOOL SetupGetStringFieldW(PINFCONTEXT, DWORD, PWSTR, DWORD, PDWORD);
1643 BOOL SetupGetTargetPathA(HINF, PINFCONTEXT, PCSTR, PSTR, DWORD, PDWORD);
1644 BOOL SetupGetTargetPathW(HINF, PINFCONTEXT, PCWSTR, PWSTR, DWORD, PDWORD);
1645 PVOID SetupInitDefaultQueueCallback(HWND);
1646 PVOID SetupInitDefaultQueueCallbackEx(HWND, HWND, UINT, DWORD, PVOID);
1647 HSPFILELOG SetupInitializeFileLogA(PCSTR, DWORD);
1648 HSPFILELOG SetupInitializeFileLogW(PCWSTR, DWORD);
1649 BOOL SetupInstallFileA(HINF, PINFCONTEXT, PCSTR, PCSTR, PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID);
1650 BOOL SetupInstallFileW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID);
1651 BOOL SetupInstallFileExA(HINF, PINFCONTEXT, PCSTR, PCSTR, PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID, PBOOL);
1652 BOOL SetupInstallFileExW(HINF, PINFCONTEXT, PCWSTR, PCWSTR, PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID, PBOOL);
1653 BOOL SetupInstallFilesFromInfSectionA(HINF, HINF, HSPFILEQ, PCSTR, PCSTR, UINT);
1654 BOOL SetupInstallFilesFromInfSectionW(HINF, HINF, HSPFILEQ, PCWSTR, PCWSTR, UINT);
1655 BOOL SetupInstallFromInfSectionA(HWND, HINF, PCSTR, UINT, HKEY, PCSTR, UINT, PSP_FILE_CALLBACK_A, PVOID, HDEVINFO, PSP_DEVINFO_DATA);
1656 BOOL SetupInstallFromInfSectionW(HWND, HINF, PCWSTR, UINT, HKEY, PCWSTR, UINT, PSP_FILE_CALLBACK_W, PVOID, HDEVINFO, PSP_DEVINFO_DATA);
1657 BOOL SetupInstallServicesFromInfSectionA(HINF, PCSTR, DWORD);
1658 BOOL SetupInstallServicesFromInfSectionW(HINF, PCWSTR, DWORD);
1659 BOOL SetupInstallServicesFromInfSectionExA(HINF, PCSTR, DWORD, HDEVINFO, PSP_DEVINFO_DATA, PVOID, PVOID);
1660 BOOL SetupInstallServicesFromInfSectionExW(HINF, PCWSTR, DWORD, HDEVINFO, PSP_DEVINFO_DATA, PVOID, PVOID);
1661 BOOL SetupIterateCabinetA(PCSTR, DWORD, PSP_FILE_CALLBACK_A, PVOID);
1662 BOOL SetupIterateCabinetW(PCWSTR, DWORD, PSP_FILE_CALLBACK_W, PVOID);
1663 BOOL SetupLogErrorA(LPCSTR, LogSeverity);
1664 BOOL SetupLogErrorW(LPCWSTR, LogSeverity);
1665 BOOL SetupLogFileA(HSPFILELOG, PCSTR, PCSTR, PCSTR, DWORD, PCSTR, PCSTR, PCSTR, DWORD);
1666 BOOL SetupLogFileW(HSPFILELOG, PCWSTR, PCWSTR, PCWSTR, DWORD, PCWSTR, PCWSTR, PCWSTR, DWORD);
1667 BOOL SetupOpenAppendInfFileA(PCSTR, HINF, PUINT);
1668 BOOL SetupOpenAppendInfFileW(PCWSTR, HINF, PUINT);
1669 HSPFILEQ SetupOpenFileQueue();
1670 HINF SetupOpenInfFileA(PCSTR, PCSTR, DWORD, PUINT);
1671 HINF SetupOpenInfFileW(PCWSTR, PCWSTR, DWORD, PUINT);
1672 BOOL SetupOpenLog(BOOL);
1673 HINF SetupOpenMasterInf();
1674 UINT SetupPromptForDiskA(HWND, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, DWORD, PSTR, DWORD, PDWORD);
1675 UINT SetupPromptForDiskW(HWND, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, DWORD, PWSTR, DWORD, PDWORD);
1676 INT SetupPromptReboot(HSPFILEQ, HWND, BOOL);
1677 BOOL SetupQueryA(DWORD, PCSTR**, PUINT);
1678 BOOL SetupQueryW(DWORD, PCWSTR**, PUINT);
1679 BOOL SetupQueryDrivesInDiskSpaceListA(HDSKSPC, PSTR, DWORD, PDWORD);
1680 BOOL SetupQueryDrivesInDiskSpaceListW(HDSKSPC, PWSTR, DWORD, PDWORD);
1681 BOOL SetupQueryFileLogA(HSPFILELOG, PCSTR, PCSTR, SetupFileLogInfo, PSTR, DWORD, PDWORD);
1682 BOOL SetupQueryFileLogW(HSPFILELOG, PCWSTR, PCWSTR, SetupFileLogInfo, PWSTR, DWORD, PDWORD);
1683 BOOL SetupQueryInfFileInformationA(PSP_INF_INFORMATION, UINT, PSTR, DWORD, PDWORD);
1684 BOOL SetupQueryInfFileInformationW(PSP_INF_INFORMATION, UINT, PWSTR, DWORD, PDWORD);
1685 BOOL SetupQueryInfOriginalFileInformationA(PSP_INF_INFORMATION, UINT, PSP_ALTPLATFORM_INFO, PSP_ORIGINAL_FILE_INFO_A);
1686 BOOL SetupQueryInfOriginalFileInformationW(PSP_INF_INFORMATION, UINT, PSP_ALTPLATFORM_INFO, PSP_ORIGINAL_FILE_INFO_W);
1687 BOOL SetupQueryInfVersionInformationA(PSP_INF_INFORMATION, UINT, PSTR, PSTR, DWORD, PDWORD);
1688 BOOL SetupQueryInfVersionInformationW(PSP_INF_INFORMATION, UINT, PCWSTR, PWSTR, DWORD, PDWORD);
1689 BOOL SetupQuerySpaceRequiredOnDriveA(HDSKSPC, PCSTR, LONGLONG*, PVOID, UINT);
1690 BOOL SetupQuerySpaceRequiredOnDriveW(HDSKSPC, PCWSTR, LONGLONG*, PVOID, UINT);
1691 BOOL SetupQueueCopyA(HSPFILEQ, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, PCSTR, DWORD);
1692 BOOL SetupQueueCopyW(HSPFILEQ, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, PCWSTR, DWORD);
1693 BOOL SetupQueueCopyIndirectA(PSP_FILE_COPY_PARAMS_A);
1694 BOOL SetupQueueCopyIndirectW(PSP_FILE_COPY_PARAMS_W);
1695 BOOL SetupQueueCopySectionA(HSPFILEQ, PCSTR, HINF, HINF, PCSTR, DWORD);
1696 BOOL SetupQueueCopySectionW(HSPFILEQ, PCWSTR, HINF, HINF, PCWSTR, DWORD);
1697 BOOL SetupQueueDefaultCopyA(HSPFILEQ, HINF, PCSTR, PCSTR, PCSTR, DWORD);
1698 BOOL SetupQueueDefaultCopyW(HSPFILEQ, HINF, PCWSTR, PCWSTR, PCWSTR, DWORD);
1699 BOOL SetupQueueDeleteA(HSPFILEQ, PCSTR, PCSTR);
1700 BOOL SetupQueueDeleteW(HSPFILEQ, PCWSTR, PCWSTR);
1701 BOOL SetupQueueDeleteSectionA(HSPFILEQ, HINF, HINF, PCSTR);
1702 BOOL SetupQueueDeleteSectionW(HSPFILEQ, HINF, HINF, PCWSTR);
1703 BOOL SetupQueueRenameA(HSPFILEQ, PCSTR, PCSTR, PCSTR, PCSTR);
1704 BOOL SetupQueueRenameW(HSPFILEQ, PCWSTR, PCWSTR, PCWSTR, PCWSTR);
1705 BOOL SetupQueueRenameSectionA(HSPFILEQ, HINF, HINF, PCSTR);
1706 BOOL SetupQueueRenameSectionW(HSPFILEQ, HINF, HINF, PCWSTR);
1707 BOOL SetupRemoveFileLogEntryA(HSPFILELOG, PCSTR, PCSTR);
1708 BOOL SetupRemoveFileLogEntryW(HSPFILELOG, PCWSTR, PCWSTR);
1709 BOOL SetupRemoveFromDiskSpaceListA(HDSKSPC, PCSTR, UINT, PVOID, UINT);
1710 BOOL SetupRemoveFromDiskSpaceListW(HDSKSPC, PCWSTR, UINT, PVOID, UINT);
1711 BOOL SetupRemoveFromSourceListA(DWORD, PCSTR);
1712 BOOL SetupRemoveFromSourceListW(DWORD, PCWSTR);
1713 BOOL SetupRemoveInstallSectionFromDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, PVOID, UINT);
1714 BOOL SetupRemoveInstallSectionFromDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, PVOID, UINT);
1715 BOOL SetupRemoveSectionFromDiskSpaceListA(HDSKSPC, HINF, HINF, PCSTR, UINT, PVOID, UINT);
1716 BOOL SetupRemoveSectionFromDiskSpaceListW(HDSKSPC, HINF, HINF, PCWSTR, UINT, PVOID, UINT);
1717 UINT SetupRenameErrorA(HWND, PCSTR, PCSTR, PCSTR, UINT, DWORD);
1718 UINT SetupRenameErrorW(HWND, PCWSTR, PCWSTR, PCWSTR, UINT, DWORD);
1719 BOOL SetupScanFileQueueA(HSPFILEQ, DWORD, HWND, PSP_FILE_CALLBACK_A, PVOID, PDWORD);
1720 BOOL SetupScanFileQueueW(HSPFILEQ, DWORD, HWND, PSP_FILE_CALLBACK_W, PVOID, PDWORD);
1721 BOOL SetupSetDirectoryIdA(HINF, DWORD, PCSTR);
1722 BOOL SetupSetDirectoryIdW(HINF, DWORD, PCWSTR);
1723 BOOL SetupSetDirectoryIdExA(HINF, DWORD, PCSTR, DWORD, DWORD, PVOID);
1724 BOOL SetupSetDirectoryIdExW(HINF, DWORD, PCWSTR, DWORD, DWORD, PVOID);
1725 BOOL SetupSetFileQueueAlternatePlatformA(HSPFILEQ, PSP_ALTPLATFORM_INFO, PCSTR);
1726 BOOL SetupSetFileQueueAlternatePlatformW(HSPFILEQ, PSP_ALTPLATFORM_INFO, PCWSTR);
1727 BOOL SetupSetPlatformPathOverrideA(PCSTR);
1728 BOOL SetupSetPlatformPathOverrideW(PCWSTR);
1729 BOOL SetupSetSourceListA(DWORD, PCSTR*, UINT);
1730 BOOL SetupSetSourceListW(DWORD, PCWSTR*, UINT);
1731 VOID SetupTermDefaultQueueCallback(PVOID);
1732 BOOL SetupTerminateFileLog(HSPFILELOG);
1733 }
1734
1735 deprecated {
1736 alias SetupDiCreateDeviceInterfaceW SetupDiCreateInterfaceDeviceW;
1737 alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateInterfaceDeviceRegKeyW;
1738 alias SetupDiOpenDeviceInterfaceW SetupDiOpenInterfaceDeviceW;
1739 alias SetupDiGetDeviceInterfaceDetailW SetupDiGetInterfaceDeviceDetailW;
1740 alias SetupDiCreateDeviceInterfaceA SetupDiCreateInterfaceDeviceA;
1741 alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateInterfaceDeviceRegKeyA;
1742 alias SetupDiOpenDeviceInterfaceA SetupDiOpenInterfaceDeviceA;
1743 alias SetupDiGetDeviceInterfaceDetailA SetupDiGetInterfaceDeviceDetailA;
1744 }
1745
1746 version (Unicode) {
1747 alias PSP_FILE_CALLBACK_W PSP_FILE_CALLBACK;
1748 alias SetupAddInstallSectionToDiskSpaceListW SetupAddInstallSectionToDiskSpaceList;
1749 alias SetupAddSectionToDiskSpaceListW SetupAddSectionToDiskSpaceList;
1750 alias SetupAddToDiskSpaceListW SetupAddToDiskSpaceList;
1751 alias SetupAddToSourceListW SetupAddToSourceList;
1752 alias SetupAdjustDiskSpaceListW SetupAdjustDiskSpaceList;
1753 alias SetupBackupErrorW SetupBackupError;
1754 alias SetupCommitFileQueueW SetupCommitFileQueue;
1755 alias SetupCopyErrorW SetupCopyError;
1756 alias SetupCopyOEMInfW SetupCopyOEMInf;
1757 alias SetupCreateDiskSpaceListW SetupCreateDiskSpaceList;
1758 alias SetupDecompressOrCopyFileW SetupDecompressOrCopyFile;
1759 alias SetupDefaultQueueCallbackW SetupDefaultQueueCallback;
1760 alias SetupDeleteErrorW SetupDeleteError;
1761 alias SetupDiBuildClassInfoListExW SetupDiBuildClassInfoListEx;
1762 alias SetupDiClassGuidsFromNameExW SetupDiClassGuidsFromNameEx;
1763 alias SetupDiClassGuidsFromNameW SetupDiClassGuidsFromName;
1764 alias SetupDiClassNameFromGuidExW SetupDiClassNameFromGuidEx;
1765 alias SetupDiClassNameFromGuidW SetupDiClassNameFromGuid;
1766 alias SetupDiCreateDeviceInfoListExW SetupDiCreateDeviceInfoListEx;
1767 alias SetupDiCreateDeviceInfoW SetupDiCreateDeviceInfo;
1768 alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateDeviceInterfaceRegKey;
1769 deprecated alias SetupDiCreateDeviceInterfaceRegKeyW SetupDiCreateInterfaceDeviceRegKey;
1770 alias SetupDiCreateDeviceInterfaceW SetupDiCreateDeviceInterface;
1771 deprecated alias SetupDiCreateDeviceInterfaceW SetupDiCreateInterfaceDevice;
1772 alias SetupDiCreateDevRegKeyW SetupDiCreateDevRegKey;
1773 alias SetupDiEnumDriverInfoW SetupDiEnumDriverInfo;
1774 alias SetupDiGetActualSectionToInstallW SetupDiGetActualSectionToInstall;
1775 alias SetupDiGetClassDescriptionExW SetupDiGetClassDescriptionEx;
1776 alias SetupDiGetClassDescriptionW SetupDiGetClassDescription;
1777 alias SetupDiGetClassDevPropertySheetsW SetupDiGetClassDevPropertySheets;
1778 alias SetupDiGetClassDevsExW SetupDiGetClassDevsEx;
1779 alias SetupDiGetClassDevsW SetupDiGetClassDevs;
1780 alias SetupDiGetClassImageListExW SetupDiGetClassImageListEx;
1781 alias SetupDiGetClassInstallParamsW SetupDiGetClassInstallParams;
1782 alias SetupDiGetClassRegistryPropertyW SetupDiGetClassRegistryProperty;
1783 alias SetupDiGetDeviceInfoListDetailW SetupDiGetDeviceInfoListDetail;
1784 alias SetupDiGetDeviceInstallParamsW SetupDiGetDeviceInstallParams;
1785 alias SetupDiGetDeviceInstanceIdW SetupDiGetDeviceInstanceId;
1786 alias SetupDiGetDeviceInterfaceDetailW SetupDiGetDeviceInterfaceDetail;
1787 deprecated alias SetupDiGetDeviceInterfaceDetailW SetupDiGetInterfaceDeviceDetail;
1788 alias SetupDiGetDeviceRegistryPropertyW SetupDiGetDeviceRegistryProperty;
1789 alias SetupDiGetDriverInfoDetailW SetupDiGetDriverInfoDetail;
1790 alias SetupDiGetDriverInstallParamsW SetupDiGetDriverInstallParams;
1791 alias SetupDiGetHwProfileFriendlyNameExW SetupDiGetHwProfileFriendlyNameEx;
1792 alias SetupDiGetHwProfileFriendlyNameW SetupDiGetHwProfileFriendlyName;
1793 alias SetupDiGetHwProfileListExW SetupDiGetHwProfileListEx;
1794 alias SetupDiGetINFClassW SetupDiGetINFClass;
1795 alias SetupDiGetSelectedDriverW SetupDiGetSelectedDriver;
1796 alias SetupDiInstallClassExW SetupDiInstallClassEx;
1797 alias SetupDiInstallClassW SetupDiInstallClass;
1798 alias SetupDiOpenClassRegKeyExW SetupDiOpenClassRegKeyEx;
1799 alias SetupDiOpenDeviceInfoW SetupDiOpenDeviceInfo;
1800 alias SetupDiOpenDeviceInterfaceW SetupDiOpenDeviceInterface;
1801 deprecated alias SetupDiOpenDeviceInterfaceW SetupDiOpenInterfaceDevice;
1802 alias SetupDiSetClassInstallParamsW SetupDiSetClassInstallParams;
1803 alias SetupDiSetClassRegistryPropertyW SetupDiSetClassRegistryProperty;
1804 alias SetupDiSetDeviceInstallParamsW SetupDiSetDeviceInstallParams;
1805 alias SetupDiSetDeviceRegistryPropertyW SetupDiSetDeviceRegistryProperty;
1806 alias SetupDiSetDriverInstallParamsW SetupDiSetDriverInstallParams;
1807 alias SetupDiSetSelectedDriverW SetupDiSetSelectedDriver;
1808 alias SetupDuplicateDiskSpaceListW SetupDuplicateDiskSpaceList;
1809 alias SetupFindFirstLineW SetupFindFirstLine;
1810 alias SetupFindNextMatchLineW SetupFindNextMatchLine;
1811 alias SetupFreeSourceListW SetupFreeSourceList;
1812 alias SetupGetBackupInformationW SetupGetBackupInformation;
1813 alias SetupGetFileCompressionInfoW SetupGetFileCompressionInfo;
1814 alias SetupGetInfFileListW SetupGetInfFileList;
1815 alias SetupGetInfInformationW SetupGetInfInformation;
1816 alias SetupGetLineByIndexW SetupGetLineByIndex;
1817 alias SetupGetLineCountW SetupGetLineCount;
1818 alias SetupGetLineTextW SetupGetLineText;
1819 alias SetupGetMultiSzFieldW SetupGetMultiSzField;
1820 alias SetupGetSourceFileLocationW SetupGetSourceFileLocation;
1821 alias SetupGetSourceFileSizeW SetupGetSourceFileSize;
1822 alias SetupGetSourceInfoW SetupGetSourceInfo;
1823 alias SetupGetStringFieldW SetupGetStringField;
1824 alias SetupGetTargetPathW SetupGetTargetPath;
1825 alias SetupInitializeFileLogW SetupInitializeFileLog;
1826 alias SetupInstallFileExW SetupInstallFileEx;
1827 alias SetupInstallFilesFromInfSectionW SetupInstallFilesFromInfSection;
1828 alias SetupInstallFileW SetupInstallFile;
1829 alias SetupInstallFromInfSectionW SetupInstallFromInfSection;
1830 alias SetupInstallServicesFromInfSectionExW SetupInstallServicesFromInfSectionEx;
1831 alias SetupInstallServicesFromInfSectionW SetupInstallServicesFromInfSection;
1832 alias SetupIterateCabinetW SetupIterateCabinet;
1833 alias SetupLogErrorW SetupLogError;
1834 alias SetupLogFileW SetupLogFile;
1835 alias SetupOpenAppendInfFileW SetupOpenAppendInfFile;
1836 alias SetupOpenInfFileW SetupOpenInfFile;
1837 alias SetupPromptForDiskW SetupPromptForDisk;
1838 alias SetupQueryDrivesInDiskSpaceListW SetupQueryDrivesInDiskSpaceList;
1839 alias SetupQueryFileLogW SetupQueryFileLog;
1840 alias SetupQueryInfFileInformationW SetupQueryInfFileInformation;
1841 alias SetupQueryInfOriginalFileInformationW SetupQueryInfOriginalFileInformation;
1842 alias SetupQueryInfVersionInformationW SetupQueryInfVersionInformation;
1843 alias SetupQuerySourceListW SetupQuerySourceList;
1844 alias SetupQuerySpaceRequiredOnDriveW SetupQuerySpaceRequiredOnDrive;
1845 alias SetupQueueCopyIndirectW SetupQueueCopyIndirect;
1846 alias SetupQueueCopySectionW SetupQueueCopySection;
1847 alias SetupQueueCopyW SetupQueueCopy;
1848 alias SetupQueueDefaultCopyW SetupQueueDefaultCopy;
1849 alias SetupQueueDeleteSectionW SetupQueueDeleteSection;
1850 alias SetupQueueDeleteW SetupQueueDelete;
1851 alias SetupQueueRenameSectionW SetupQueueRenameSection;
1852 alias SetupQueueRenameW SetupQueueRename;
1853 alias SetupRemoveFileLogEntryW SetupRemoveFileLogEntry;
1854 alias SetupRemoveFromDiskSpaceListW SetupRemoveFromDiskSpaceList;
1855 alias SetupRemoveFromSourceListW SetupRemoveFromSourceList;
1856 alias SetupRemoveInstallSectionFromDiskSpaceListW SetupRemoveInstallSectionFromDiskSpaceList;
1857 alias SetupRemoveSectionFromDiskSpaceListW SetupRemoveSectionFromDiskSpaceList;
1858 alias SetupRenameErrorW SetupRenameError;
1859 alias SetupScanFileQueueW SetupScanFileQueue;
1860 alias SetupSetDirectoryIdExW SetupSetDirectoryIdEx;
1861 alias SetupSetDirectoryIdW SetupSetDirectoryId;
1862 alias SetupSetFileQueueAlternatePlatformW SetupSetFileQueueAlternatePlatform;
1863 alias SetupSetPlatformPathOverrideW SetupSetPlatformPathOverride;
1864 alias SetupSetSourceListW SetupSetSourceList;
1865 } else {
1866 alias PSP_FILE_CALLBACK_A PSP_FILE_CALLBACK;
1867 alias SetupAddInstallSectionToDiskSpaceListA SetupAddInstallSectionToDiskSpaceList;
1868 alias SetupAddSectionToDiskSpaceListA SetupAddSectionToDiskSpaceList;
1869 alias SetupAddToDiskSpaceListA SetupAddToDiskSpaceList;
1870 alias SetupAddToSourceListA SetupAddToSourceList;
1871 alias SetupAdjustDiskSpaceListA SetupAdjustDiskSpaceList;
1872 alias SetupBackupErrorA SetupBackupError;
1873 alias SetupCommitFileQueueA SetupCommitFileQueue;
1874 alias SetupCopyErrorA SetupCopyError;
1875 alias SetupCopyOEMInfA SetupCopyOEMInf;
1876 alias SetupCreateDiskSpaceListA SetupCreateDiskSpaceList;
1877 alias SetupDecompressOrCopyFileA SetupDecompressOrCopyFile;
1878 alias SetupDefaultQueueCallbackA SetupDefaultQueueCallback;
1879 alias SetupDeleteErrorA SetupDeleteError;
1880 alias SetupDiBuildClassInfoListExA SetupDiBuildClassInfoListEx;
1881 alias SetupDiClassGuidsFromNameA SetupDiClassGuidsFromName;
1882 alias SetupDiClassGuidsFromNameExA SetupDiClassGuidsFromNameEx;
1883 alias SetupDiClassNameFromGuidA SetupDiClassNameFromGuid;
1884 alias SetupDiClassNameFromGuidExA SetupDiClassNameFromGuidEx;
1885 alias SetupDiCreateDeviceInfoA SetupDiCreateDeviceInfo;
1886 alias SetupDiCreateDeviceInfoListExA SetupDiCreateDeviceInfoListEx;
1887 alias SetupDiCreateDeviceInterfaceA SetupDiCreateDeviceInterface;
1888 deprecated alias SetupDiCreateDeviceInterfaceA SetupDiCreateInterfaceDevice;
1889 alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateDeviceInterfaceRegKey;
1890 deprecated alias SetupDiCreateDeviceInterfaceRegKeyA SetupDiCreateInterfaceDeviceRegKey;
1891 alias SetupDiCreateDevRegKeyA SetupDiCreateDevRegKey;
1892 alias SetupDiDeleteDeviceInterfaceData SetupDiDeleteInterfaceDeviceData;
1893 alias SetupDiEnumDriverInfoA SetupDiEnumDriverInfo;
1894 alias SetupDiGetActualSectionToInstallA SetupDiGetActualSectionToInstall;
1895 alias SetupDiGetClassDescriptionA SetupDiGetClassDescription;
1896 alias SetupDiGetClassDescriptionExA SetupDiGetClassDescriptionEx;
1897 alias SetupDiGetClassDevPropertySheetsA SetupDiGetClassDevPropertySheets;
1898 alias SetupDiGetClassDevsA SetupDiGetClassDevs;
1899 alias SetupDiGetClassDevsExA SetupDiGetClassDevsEx;
1900 alias SetupDiGetClassImageListExA SetupDiGetClassImageListEx;
1901 alias SetupDiGetClassInstallParamsA SetupDiGetClassInstallParams;
1902 alias SetupDiGetClassRegistryPropertyA SetupDiGetClassRegistryProperty;
1903 alias SetupDiGetDeviceInfoListDetailA SetupDiGetDeviceInfoListDetail;
1904 alias SetupDiGetDeviceInstallParamsA SetupDiGetDeviceInstallParams;
1905 alias SetupDiGetDeviceInstanceIdA SetupDiGetDeviceInstanceId;
1906 alias SetupDiGetDeviceInterfaceDetailA SetupDiGetDeviceInterfaceDetail;
1907 deprecated alias SetupDiGetDeviceInterfaceDetailA SetupDiGetInterfaceDeviceDetail;
1908 alias SetupDiGetDeviceRegistryPropertyA SetupDiGetDeviceRegistryProperty;
1909 alias SetupDiGetDriverInfoDetailA SetupDiGetDriverInfoDetail;
1910 alias SetupDiGetDriverInstallParamsA SetupDiGetDriverInstallParams;
1911 alias SetupDiGetHwProfileFriendlyNameA SetupDiGetHwProfileFriendlyName;
1912 alias SetupDiGetHwProfileFriendlyNameExA SetupDiGetHwProfileFriendlyNameEx;
1913 alias SetupDiGetHwProfileListExA SetupDiGetHwProfileListEx;
1914 alias SetupDiGetINFClassA SetupDiGetINFClass;
1915 alias SetupDiGetSelectedDriverA SetupDiGetSelectedDriver;
1916 alias SetupDiInstallClassA SetupDiInstallClass;
1917 alias SetupDiInstallClassExA SetupDiInstallClassEx;
1918 alias SetupDiOpenClassRegKeyExA SetupDiOpenClassRegKeyEx;
1919 alias SetupDiOpenDeviceInfoA SetupDiOpenDeviceInfo;
1920 alias SetupDiOpenDeviceInterfaceA SetupDiOpenDeviceInterface;
1921 deprecated alias SetupDiOpenDeviceInterfaceA SetupDiOpenInterfaceDevice;
1922 alias SetupDiSetClassInstallParamsA SetupDiSetClassInstallParams;
1923 alias SetupDiSetClassRegistryPropertyA SetupDiSetClassRegistryProperty;
1924 alias SetupDiSetDeviceInstallParamsA SetupDiSetDeviceInstallParams;
1925 alias SetupDiSetDeviceRegistryPropertyA SetupDiSetDeviceRegistryProperty;
1926 alias SetupDiSetDriverInstallParamsA SetupDiSetDriverInstallParams;
1927 alias SetupDiSetSelectedDriverA SetupDiSetSelectedDriver;
1928 alias SetupDuplicateDiskSpaceListA SetupDuplicateDiskSpaceList;
1929 alias SetupFindFirstLineA SetupFindFirstLine;
1930 alias SetupFindNextMatchLineA SetupFindNextMatchLine;
1931 alias SetupFreeSourceListA SetupFreeSourceList;
1932 alias SetupGetBackupInformationA SetupGetBackupInformation;
1933 alias SetupGetFileCompressionInfoA SetupGetFileCompressionInfo;
1934 alias SetupGetInfFileListA SetupGetInfFileList;
1935 alias SetupGetInfInformationA SetupGetInfInformation;
1936 alias SetupGetLineByIndexA SetupGetLineByIndex;
1937 alias SetupGetLineCountA SetupGetLineCount;
1938 alias SetupGetLineTextA SetupGetLineText;
1939 alias SetupGetMultiSzFieldA SetupGetMultiSzField;
1940 alias SetupGetSourceFileLocationA SetupGetSourceFileLocation;
1941 alias SetupGetSourceFileSizeA SetupGetSourceFileSize;
1942 alias SetupGetSourceInfoA SetupGetSourceInfo;
1943 alias SetupGetStringFieldA SetupGetStringField;
1944 alias SetupGetTargetPathA SetupGetTargetPath;
1945 alias SetupInitializeFileLogA SetupInitializeFileLog;
1946 alias SetupInstallFileA SetupInstallFile;
1947 alias SetupInstallFileExA SetupInstallFileEx;
1948 alias SetupInstallFilesFromInfSectionA SetupInstallFilesFromInfSection;
1949 alias SetupInstallFromInfSectionA SetupInstallFromInfSection;
1950 alias SetupInstallServicesFromInfSectionA SetupInstallServicesFromInfSection;
1951 alias SetupInstallServicesFromInfSectionExA SetupInstallServicesFromInfSectionEx;
1952 alias SetupIterateCabinetA SetupIterateCabinet;
1953 alias SetupLogErrorA SetupLogError;
1954 alias SetupLogFileA SetupLogFile;
1955 alias SetupOpenAppendInfFileA SetupOpenAppendInfFile;
1956 alias SetupOpenInfFileA SetupOpenInfFile;
1957 alias SetupPromptForDiskA SetupPromptForDisk;
1958 alias SetupQueryDrivesInDiskSpaceListA SetupQueryDrivesInDiskSpaceList;
1959 alias SetupQueryFileLogA SetupQueryFileLog;
1960 alias SetupQueryInfFileInformationA SetupQueryInfFileInformation;
1961 alias SetupQueryInfOriginalFileInformationA SetupQueryInfOriginalFileInformation;
1962 alias SetupQueryInfVersionInformationA SetupQueryInfVersionInformation;
1963 alias SetupQuerySourceListA SetupQuerySourceList;
1964 alias SetupQuerySpaceRequiredOnDriveA SetupQuerySpaceRequiredOnDrive;
1965 alias SetupQueueCopyA SetupQueueCopy;
1966 alias SetupQueueCopyIndirectA SetupQueueCopyIndirect;
1967 alias SetupQueueCopySectionA SetupQueueCopySection;
1968 alias SetupQueueDefaultCopyA SetupQueueDefaultCopy;
1969 alias SetupQueueDeleteA SetupQueueDelete;
1970 alias SetupQueueDeleteSectionA SetupQueueDeleteSection;
1971 alias SetupQueueRenameA SetupQueueRename;
1972 alias SetupQueueRenameSectionA SetupQueueRenameSection;
1973 alias SetupRemoveFileLogEntryA SetupRemoveFileLogEntry;
1974 alias SetupRemoveFromDiskSpaceListA SetupRemoveFromDiskSpaceList;
1975 alias SetupRemoveFromSourceListA SetupRemoveFromSourceList;
1976 alias SetupRemoveInstallSectionFromDiskSpaceListA SetupRemoveInstallSectionFromDiskSpaceList;
1977 alias SetupRemoveSectionFromDiskSpaceListA SetupRemoveSectionFromDiskSpaceList;
1978 alias SetupRenameErrorA SetupRenameError;
1979 alias SetupScanFileQueueA SetupScanFileQueue;
1980 alias SetupSetDirectoryIdA SetupSetDirectoryId;
1981 alias SetupSetDirectoryIdExA SetupSetDirectoryIdEx;
1982 alias SetupSetFileQueueAlternatePlatformA SetupSetFileQueueAlternatePlatform;
1983 alias SetupSetPlatformPathOverrideA SetupSetPlatformPathOverride;
1984 alias SetupSetSourceListA SetupSetSourceList;
1985 }
1986