OSDN Git Service

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