source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/setupapi.h@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

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