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