comparison fuhtark_test/include/winapi/setupapi.h @ 1500:91c8c3b7cbf0

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