|
SpacePoint Fusion plugin 1.0
|
00001 /*++ 00002 00003 Copyright (c) 1995-1997 Microsoft Corporation 00004 00005 Module Name: 00006 00007 setupapi.h 00008 00009 Abstract: 00010 00011 Public header file for Windows NT Setup services Dll. 00012 00013 Revision History: 00014 00015 --*/ 00016 00017 #ifndef _INC_SETUPAPI 00018 #define _INC_SETUPAPI 00019 00020 // 00021 // Define API decoration for direct importing of DLL references. 00022 // 00023 #if !defined(_SETUPAPI_) 00024 #define WINSETUPAPI DECLSPEC_IMPORT 00025 #else 00026 #define WINSETUPAPI 00027 #endif 00028 00029 #include <pshpack1.h> // Assume byte packing throughout 00030 00031 #ifdef __cplusplus 00032 extern "C" { 00033 #endif 00034 00035 #ifndef __LPGUID_DEFINED__ 00036 #define __LPGUID_DEFINED__ 00037 typedef GUID *LPGUID; 00038 #endif 00039 00040 // 00041 // Include commctrl.h for our use of HIMAGELIST and wizard support. 00042 // 00043 #include <commctrl.h> 00044 00045 00046 // 00047 // Define maximum string length constants as specified by 00048 // Windows 95. 00049 // 00050 #define LINE_LEN 256 // Win95-compatible maximum for displayable 00051 // strings coming from a device INF. 00052 #define MAX_INF_STRING_LENGTH 4096 // Actual maximum size of an INF string (including 00053 // string substitutions). 00054 #define MAX_TITLE_LEN 60 00055 #define MAX_INSTRUCTION_LEN 256 00056 #define MAX_LABEL_LEN 30 00057 #define MAX_SERVICE_NAME_LEN 256 00058 00059 // 00060 // Define maximum length of a machine name in the format expected by ConfigMgr32 00061 // CM_Connect_Machine (i.e., "\\\\MachineName\0"). 00062 // 00063 #define SP_MAX_MACHINENAME_LENGTH (MAX_COMPUTERNAME_LENGTH + 3) 00064 00065 // 00066 // Define type for reference to loaded inf file 00067 // 00068 typedef PVOID HINF; 00069 00070 // 00071 // Inf context structure. Applications must not interpret or 00072 // overwrite values in these structures. 00073 // 00074 typedef struct _INFCONTEXT { 00075 PVOID Inf; 00076 PVOID CurrentInf; 00077 UINT Section; 00078 UINT Line; 00079 } INFCONTEXT, *PINFCONTEXT; 00080 00081 // 00082 // Inf file information structure. 00083 // 00084 typedef struct _SP_INF_INFORMATION { 00085 DWORD InfStyle; 00086 DWORD InfCount; 00087 BYTE VersionData[ANYSIZE_ARRAY]; 00088 } SP_INF_INFORMATION, *PSP_INF_INFORMATION; 00089 00090 // 00091 // SP_INF_INFORMATION.InfStyle values 00092 // 00093 #define INF_STYLE_NONE 0 // unrecognized or non-existent 00094 #define INF_STYLE_OLDNT 1 // winnt 3.x 00095 #define INF_STYLE_WIN4 2 // Win95 00096 00097 // 00098 // Target directory specs. 00099 // 00100 #define DIRID_ABSOLUTE -1 // real 32-bit -1 00101 #define DIRID_ABSOLUTE_16BIT 0xffff // 16-bit -1 for compat w/setupx 00102 #define DIRID_NULL 0 00103 #define DIRID_SRCPATH 1 00104 #define DIRID_WINDOWS 10 00105 #define DIRID_SYSTEM 11 // system32 00106 #define DIRID_DRIVERS 12 00107 #define DIRID_IOSUBSYS DIRID_DRIVERS 00108 #define DIRID_INF 17 00109 #define DIRID_HELP 18 00110 #define DIRID_FONTS 20 00111 #define DIRID_VIEWERS 21 00112 #define DIRID_COLOR 23 00113 #define DIRID_APPS 24 00114 #define DIRID_SHARED 25 00115 #define DIRID_BOOT 30 00116 00117 #define DIRID_SYSTEM16 50 00118 #define DIRID_SPOOL 51 00119 #define DIRID_SPOOLDRIVERS 52 00120 #define DIRID_USERPROFILE 53 00121 #define DIRID_LOADER 54 00122 #define DIRID_PRINTPROCESSOR 55 00123 00124 #define DIRID_DEFAULT DIRID_SYSTEM 00125 00126 // 00127 // First user-definable dirid. See SetupSetDirectoryId(). 00128 // 00129 #define DIRID_USER 0x8000 00130 00131 00132 // 00133 // Setup callback notification routine type 00134 // 00135 typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)( 00136 IN PVOID Context, 00137 IN UINT Notification, 00138 IN UINT Param1, 00139 IN UINT Param2 00140 ); 00141 00142 typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)( 00143 IN PVOID Context, 00144 IN UINT Notification, 00145 IN UINT Param1, 00146 IN UINT Param2 00147 ); 00148 00149 #ifdef UNICODE 00150 #define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W 00151 #else 00152 #define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A 00153 #endif 00154 00155 00156 // 00157 // Operation/queue start/end notification. These are ordinal values. 00158 // 00159 #define SPFILENOTIFY_STARTQUEUE 0x00000001 00160 #define SPFILENOTIFY_ENDQUEUE 0x00000002 00161 #define SPFILENOTIFY_STARTSUBQUEUE 0x00000003 00162 #define SPFILENOTIFY_ENDSUBQUEUE 0x00000004 00163 #define SPFILENOTIFY_STARTDELETE 0x00000005 00164 #define SPFILENOTIFY_ENDDELETE 0x00000006 00165 #define SPFILENOTIFY_DELETEERROR 0x00000007 00166 #define SPFILENOTIFY_STARTRENAME 0x00000008 00167 #define SPFILENOTIFY_ENDRENAME 0x00000009 00168 #define SPFILENOTIFY_RENAMEERROR 0x0000000a 00169 #define SPFILENOTIFY_STARTCOPY 0x0000000b 00170 #define SPFILENOTIFY_ENDCOPY 0x0000000c 00171 #define SPFILENOTIFY_COPYERROR 0x0000000d 00172 #define SPFILENOTIFY_NEEDMEDIA 0x0000000e 00173 #define SPFILENOTIFY_QUEUESCAN 0x0000000f 00174 // 00175 // These are used with SetupIterateCabinet(). 00176 // 00177 #define SPFILENOTIFY_CABINETINFO 0x00000010 00178 #define SPFILENOTIFY_FILEINCABINET 0x00000011 00179 #define SPFILENOTIFY_NEEDNEWCABINET 0x00000012 00180 #define SPFILENOTIFY_FILEEXTRACTED 0x00000013 00181 00182 #define SPFILENOTIFY_FILEOPDELAYED 0x00000014 00183 00184 // 00185 // Copy notification. These are bit flags that may be combined. 00186 // 00187 #define SPFILENOTIFY_LANGMISMATCH 0x00010000 00188 #define SPFILENOTIFY_TARGETEXISTS 0x00020000 00189 #define SPFILENOTIFY_TARGETNEWER 0x00040000 00190 00191 // 00192 // File operation codes and callback outcomes. 00193 // 00194 #define FILEOP_COPY 0 00195 #define FILEOP_RENAME 1 00196 #define FILEOP_DELETE 2 00197 00198 #define FILEOP_ABORT 0 00199 #define FILEOP_DOIT 1 00200 #define FILEOP_SKIP 2 00201 #define FILEOP_RETRY FILEOP_DOIT 00202 #define FILEOP_NEWPATH 4 00203 00204 // 00205 // Flags in inf copy sections 00206 // 00207 #define COPYFLG_WARN_IF_SKIP 0x00000001 // warn if user tries to skip file 00208 #define COPYFLG_NOSKIP 0x00000002 // disallow skipping this file 00209 #define COPYFLG_NOVERSIONCHECK 0x00000004 // ignore versions and overwrite target 00210 #define COPYFLG_FORCE_FILE_IN_USE 0x00000008 // force file-in-use behavior 00211 #define COPYFLG_NO_OVERWRITE 0x00000010 // do not copy if file exists on target 00212 #define COPYFLG_NO_VERSION_DIALOG 0x00000020 // do not copy if target is newer 00213 #define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040 // leave target alone if version same as source 00214 #define COPYFLG_REPLACEONLY 0x00000400 // copy only if file exists on target 00215 00216 // 00217 // Flags in inf delete sections 00218 // New flags go in high word 00219 // 00220 #define DELFLG_IN_USE 0x00000001 // queue in-use file for delete 00221 #define DELFLG_IN_USE1 0x00010000 // high-word version of DELFLG_IN_USE 00222 00223 // 00224 // Source and file paths. Used when notifying queue callback 00225 // of SPFILENOTIFY_STARTxxx, SPFILENOTIFY_ENDxxx, and SPFILENOTIFY_xxxERROR. 00226 // 00227 typedef struct _FILEPATHS_A { 00228 PCSTR Target; 00229 PCSTR Source; // not used for delete operations 00230 UINT Win32Error; 00231 DWORD Flags; // such as SP_COPY_NOSKIP for copy errors 00232 } FILEPATHS_A, *PFILEPATHS_A; 00233 00234 typedef struct _FILEPATHS_W { 00235 PCWSTR Target; 00236 PCWSTR Source; // not used for delete operations 00237 UINT Win32Error; 00238 DWORD Flags; // such as SP_COPY_NOSKIP for copy errors 00239 } FILEPATHS_W, *PFILEPATHS_W; 00240 00241 #ifdef UNICODE 00242 typedef FILEPATHS_W FILEPATHS; 00243 typedef PFILEPATHS_W PFILEPATHS; 00244 #else 00245 typedef FILEPATHS_A FILEPATHS; 00246 typedef PFILEPATHS_A PFILEPATHS; 00247 #endif 00248 00249 00250 // 00251 // Structure used with SPFILENOTIFY_NEEDMEDIA 00252 // 00253 typedef struct _SOURCE_MEDIA_A { 00254 PCSTR Reserved; 00255 PCSTR Tagfile; // may be NULL 00256 PCSTR Description; 00257 // 00258 // Pathname part and filename part of source file 00259 // that caused us to need the media. 00260 // 00261 PCSTR SourcePath; 00262 PCSTR SourceFile; 00263 DWORD Flags; // subset of SP_COPY_xxx 00264 } SOURCE_MEDIA_A, *PSOURCE_MEDIA_A; 00265 00266 typedef struct _SOURCE_MEDIA_W { 00267 PCWSTR Reserved; 00268 PCWSTR Tagfile; // may be NULL 00269 PCWSTR Description; 00270 // 00271 // Pathname part and filename part of source file 00272 // that caused us to need the media. 00273 // 00274 PCWSTR SourcePath; 00275 PCWSTR SourceFile; 00276 DWORD Flags; // subset of SP_COPY_xxx 00277 } SOURCE_MEDIA_W, *PSOURCE_MEDIA_W; 00278 00279 #ifdef UNICODE 00280 typedef SOURCE_MEDIA_W SOURCE_MEDIA; 00281 typedef PSOURCE_MEDIA_W PSOURCE_MEDIA; 00282 #else 00283 typedef SOURCE_MEDIA_A SOURCE_MEDIA; 00284 typedef PSOURCE_MEDIA_A PSOURCE_MEDIA; 00285 #endif 00286 00287 // 00288 // Structure used with SPFILENOTIFY_CABINETINFO and 00289 // SPFILENOTIFY_NEEDNEWCABINET 00290 // 00291 typedef struct _CABINET_INFO_A { 00292 PCSTR CabinetPath; 00293 PCSTR CabinetFile; 00294 PCSTR DiskName; 00295 USHORT SetId; 00296 USHORT CabinetNumber; 00297 } CABINET_INFO_A, *PCABINET_INFO_A; 00298 00299 typedef struct _CABINET_INFO_W { 00300 PCWSTR CabinetPath; 00301 PCWSTR CabinetFile; 00302 PCWSTR DiskName; 00303 USHORT SetId; 00304 USHORT CabinetNumber; 00305 } CABINET_INFO_W, *PCABINET_INFO_W; 00306 00307 #ifdef UNICODE 00308 typedef CABINET_INFO_W CABINET_INFO; 00309 typedef PCABINET_INFO_W PCABINET_INFO; 00310 #else 00311 typedef CABINET_INFO_A CABINET_INFO; 00312 typedef PCABINET_INFO_A PCABINET_INFO; 00313 #endif 00314 00315 // 00316 // Structure used with SPFILENOTIFY_FILEINCABINET 00317 // 00318 typedef struct _FILE_IN_CABINET_INFO_A { 00319 PCSTR NameInCabinet; 00320 DWORD FileSize; 00321 DWORD Win32Error; 00322 WORD DosDate; 00323 WORD DosTime; 00324 WORD DosAttribs; 00325 CHAR FullTargetName[MAX_PATH]; 00326 } FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A; 00327 00328 typedef struct _FILE_IN_CABINET_INFO_W { 00329 PCWSTR NameInCabinet; 00330 DWORD FileSize; 00331 DWORD Win32Error; 00332 WORD DosDate; 00333 WORD DosTime; 00334 WORD DosAttribs; 00335 WCHAR FullTargetName[MAX_PATH]; 00336 } FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W; 00337 00338 #ifdef UNICODE 00339 typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO; 00340 typedef PFILE_IN_CABINET_INFO_W PFILE_IN_CABINET_INFO; 00341 #else 00342 typedef FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO; 00343 typedef PFILE_IN_CABINET_INFO_A PFILE_IN_CABINET_INFO; 00344 #endif 00345 00346 00347 // 00348 // Define type for setup file queue 00349 // 00350 typedef PVOID HSPFILEQ; 00351 00352 // 00353 // Define type for setup disk space list 00354 // 00355 typedef PVOID HDSKSPC; 00356 00357 // 00358 // Define type for reference to device information set 00359 // 00360 typedef PVOID HDEVINFO; 00361 00362 // 00363 // Device information structure (references a device instance 00364 // that is a member of a device information set) 00365 // 00366 typedef struct _SP_DEVINFO_DATA { 00367 DWORD cbSize; 00368 GUID ClassGuid; 00369 DWORD DevInst; // DEVINST handle 00370 DWORD Reserved; 00371 } SP_DEVINFO_DATA, *PSP_DEVINFO_DATA; 00372 00373 // 00374 // Device interface information structure (references a device 00375 // interface that is associated with the device information 00376 // element that owns it). 00377 // 00378 typedef struct _SP_DEVICE_INTERFACE_DATA { 00379 DWORD cbSize; 00380 GUID InterfaceClassGuid; 00381 DWORD Flags; 00382 DWORD Reserved; 00383 } SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA; 00384 00385 // 00386 // Flags for SP_DEVICE_INTERFACE_DATA.Flags field. 00387 // 00388 #define SPINT_ACTIVE 0x00000001 00389 #define SPINT_DEFAULT 0x00000002 00390 #define SPINT_REMOVED 0x00000004 00391 00392 // 00393 // Backward compatibility--do not use. 00394 // 00395 typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA; 00396 typedef PSP_DEVICE_INTERFACE_DATA PSP_INTERFACE_DEVICE_DATA; 00397 #define SPID_ACTIVE SPINT_ACTIVE 00398 #define SPID_DEFAULT SPINT_DEFAULT 00399 #define SPID_REMOVED SPINT_REMOVED 00400 00401 00402 typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A { 00403 DWORD cbSize; 00404 CHAR DevicePath[ANYSIZE_ARRAY]; 00405 } SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A; 00406 00407 typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W { 00408 DWORD cbSize; 00409 WCHAR DevicePath[ANYSIZE_ARRAY]; 00410 } SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W; 00411 00412 #ifdef UNICODE 00413 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA; 00414 typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_W PSP_DEVICE_INTERFACE_DETAIL_DATA; 00415 #else 00416 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA; 00417 typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_A PSP_DEVICE_INTERFACE_DETAIL_DATA; 00418 #endif 00419 00420 // 00421 // Backward compatibility--do not use. 00422 // 00423 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W; 00424 typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_W PSP_INTERFACE_DEVICE_DETAIL_DATA_W; 00425 typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A; 00426 typedef PSP_DEVICE_INTERFACE_DETAIL_DATA_A PSP_INTERFACE_DEVICE_DETAIL_DATA_A; 00427 #ifdef UNICODE 00428 typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA; 00429 typedef PSP_INTERFACE_DEVICE_DETAIL_DATA_W PSP_INTERFACE_DEVICE_DETAIL_DATA; 00430 #else 00431 typedef SP_INTERFACE_DEVICE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA; 00432 typedef PSP_INTERFACE_DEVICE_DETAIL_DATA_A PSP_INTERFACE_DEVICE_DETAIL_DATA; 00433 #endif 00434 00435 00436 // 00437 // Structure for detailed information on a device information set (used for 00438 // SetupDiGetDeviceInfoListDetail which supercedes the functionality of 00439 // SetupDiGetDeviceInfoListClass). 00440 // 00441 typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A { 00442 DWORD cbSize; 00443 GUID ClassGuid; 00444 HANDLE RemoteMachineHandle; 00445 CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; 00446 } SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A; 00447 00448 typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W { 00449 DWORD cbSize; 00450 GUID ClassGuid; 00451 HANDLE RemoteMachineHandle; 00452 WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH]; 00453 } SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W; 00454 00455 #ifdef UNICODE 00456 typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA; 00457 typedef PSP_DEVINFO_LIST_DETAIL_DATA_W PSP_DEVINFO_LIST_DETAIL_DATA; 00458 #else 00459 typedef SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA; 00460 typedef PSP_DEVINFO_LIST_DETAIL_DATA_A PSP_DEVINFO_LIST_DETAIL_DATA; 00461 #endif 00462 00463 00464 // 00465 // Class installer function codes 00466 // 00467 #define DIF_SELECTDEVICE 0x00000001 00468 #define DIF_INSTALLDEVICE 0x00000002 00469 #define DIF_ASSIGNRESOURCES 0x00000003 00470 #define DIF_PROPERTIES 0x00000004 00471 #define DIF_REMOVE 0x00000005 00472 #define DIF_FIRSTTIMESETUP 0x00000006 00473 #define DIF_FOUNDDEVICE 0x00000007 00474 #define DIF_SELECTCLASSDRIVERS 0x00000008 00475 #define DIF_VALIDATECLASSDRIVERS 0x00000009 00476 #define DIF_INSTALLCLASSDRIVERS 0x0000000A 00477 #define DIF_CALCDISKSPACE 0x0000000B 00478 #define DIF_DESTROYPRIVATEDATA 0x0000000C 00479 #define DIF_VALIDATEDRIVER 0x0000000D 00480 #define DIF_MOVEDEVICE 0x0000000E 00481 #define DIF_DETECT 0x0000000F 00482 #define DIF_INSTALLWIZARD 0x00000010 00483 #define DIF_DESTROYWIZARDDATA 0x00000011 00484 #define DIF_PROPERTYCHANGE 0x00000012 00485 #define DIF_ENABLECLASS 0x00000013 00486 #define DIF_DETECTVERIFY 0x00000014 00487 #define DIF_INSTALLDEVICEFILES 0x00000015 00488 #define DIF_UNREMOVE 0x00000016 00489 #define DIF_SELECTBESTCOMPATDRV 0x00000017 00490 #define DIF_ALLOW_INSTALL 0x00000018 00491 #define DIF_REGISTERDEVICE 0x00000019 00492 #define DIF_INSTALLINTERFACES 0x00000020 00493 #define DIF_DETECTCANCEL 0x00000021 00494 #define DIF_REGISTER_COINSTALLERS 0x00000022 00495 00496 typedef UINT DI_FUNCTION; // Function type for device installer 00497 00498 00499 // 00500 // Device installation parameters structure (associated with a 00501 // particular device information element, or globally with a device 00502 // information set) 00503 // 00504 typedef struct _SP_DEVINSTALL_PARAMS_A { 00505 DWORD cbSize; 00506 DWORD Flags; 00507 DWORD FlagsEx; 00508 HWND hwndParent; 00509 PSP_FILE_CALLBACK InstallMsgHandler; 00510 PVOID InstallMsgHandlerContext; 00511 HSPFILEQ FileQueue; 00512 DWORD ClassInstallReserved; 00513 DWORD Reserved; 00514 CHAR DriverPath[MAX_PATH]; 00515 } SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A; 00516 00517 typedef struct _SP_DEVINSTALL_PARAMS_W { 00518 DWORD cbSize; 00519 DWORD Flags; 00520 DWORD FlagsEx; 00521 HWND hwndParent; 00522 PSP_FILE_CALLBACK InstallMsgHandler; 00523 PVOID InstallMsgHandlerContext; 00524 HSPFILEQ FileQueue; 00525 DWORD ClassInstallReserved; 00526 DWORD Reserved; 00527 WCHAR DriverPath[MAX_PATH]; 00528 } SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W; 00529 00530 #ifdef UNICODE 00531 typedef SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS; 00532 typedef PSP_DEVINSTALL_PARAMS_W PSP_DEVINSTALL_PARAMS; 00533 #else 00534 typedef SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS; 00535 typedef PSP_DEVINSTALL_PARAMS_A PSP_DEVINSTALL_PARAMS; 00536 #endif 00537 00538 00539 // 00540 // SP_DEVINSTALL_PARAMS.Flags values 00541 // 00542 // Flags for choosing a device 00543 // 00544 #define DI_SHOWOEM 0x00000001L // support Other... button 00545 #define DI_SHOWCOMPAT 0x00000002L // show compatibility list 00546 #define DI_SHOWCLASS 0x00000004L // show class list 00547 #define DI_SHOWALL 0x00000007L // both class & compat list shown 00548 #define DI_NOVCP 0x00000008L // don't create a new copy queue--use 00549 // caller-supplied FileQueue 00550 #define DI_DIDCOMPAT 0x00000010L // Searched for compatible devices 00551 #define DI_DIDCLASS 0x00000020L // Searched for class devices 00552 #define DI_AUTOASSIGNRES 0x00000040L // No UI for resources if possible 00553 00554 // flags returned by DiInstallDevice to indicate need to reboot/restart 00555 #define DI_NEEDRESTART 0x00000080L // Reboot required to take effect 00556 #define DI_NEEDREBOOT 0x00000100L // "" 00557 00558 // flags for device installation 00559 #define DI_NOBROWSE 0x00000200L // no Browse... in InsertDisk 00560 00561 // Flags set by DiBuildDriverInfoList 00562 #define DI_MULTMFGS 0x00000400L // Set if multiple manufacturers in 00563 // class driver list 00564 00565 // Flag indicates that device is disabled 00566 #define DI_DISABLED 0x00000800L // Set if device disabled 00567 00568 // Flags for Device/Class Properties 00569 #define DI_GENERALPAGE_ADDED 0x00001000L 00570 #define DI_RESOURCEPAGE_ADDED 0x00002000L 00571 00572 // Flag to indicate the setting properties for this Device (or class) caused a change 00573 // so the Dev Mgr UI probably needs to be updatd. 00574 #define DI_PROPERTIES_CHANGE 0x00004000L 00575 00576 // Flag to indicate that the sorting from the INF file should be used. 00577 #define DI_INF_IS_SORTED 0x00008000L 00578 00579 // Flag to indicate that only the the INF specified by SP_DEVINSTALL_PARAMS.DriverPath 00580 // should be searched. 00581 #define DI_ENUMSINGLEINF 0x00010000L 00582 00583 // Flag that prevents ConfigMgr from removing/re-enumerating devices during device 00584 // registration, installation, and deletion. 00585 #define DI_DONOTCALLCONFIGMG 0x00020000L 00586 00587 // The following flag can be used to install a device disabled 00588 #define DI_INSTALLDISABLED 0x00040000L 00589 00590 // Flag that causes SetupDiBuildDriverInfoList to build a device's compatible driver 00591 // list from its existing class driver list, instead of the normal INF search. 00592 #define DI_COMPAT_FROM_CLASS 0x00080000L 00593 00594 // This flag is set if the Class Install params should be used. 00595 #define DI_CLASSINSTALLPARAMS 0x00100000L 00596 00597 // This flag is set if the caller of DiCallClassInstaller does NOT 00598 // want the internal default action performed if the Class installer 00599 // returns ERROR_DI_DO_DEFAULT. 00600 #define DI_NODI_DEFAULTACTION 0x00200000L 00601 00602 // The setupx flag, DI_NOSYNCPROCESSING (0x00400000L) is not support in the Setup APIs. 00603 00604 // flags for device installation 00605 #define DI_QUIETINSTALL 0x00800000L // don't confuse the user with 00606 // questions or excess info 00607 #define DI_NOFILECOPY 0x01000000L // No file Copy necessary 00608 #define DI_FORCECOPY 0x02000000L // Force files to be copied from install path 00609 #define DI_DRIVERPAGE_ADDED 0x04000000L // Prop provider added Driver page. 00610 #define DI_USECI_SELECTSTRINGS 0x08000000L // Use Class Installer Provided strings in the Select Device Dlg 00611 #define DI_OVERRIDE_INFFLAGS 0x10000000L // Override INF flags 00612 #define DI_PROPS_NOCHANGEUSAGE 0x20000000L // No Enable/Disable in General Props 00613 00614 #define DI_NOSELECTICONS 0x40000000L // No small icons in select device dialogs 00615 00616 #define DI_NOWRITE_IDS 0x80000000L // Don't write HW & Compat IDs on install 00617 00618 00619 // 00620 // SP_DEVINSTALL_PARAMS.FlagsEx values 00621 // 00622 #define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001L // Inf Search functions should not use Index Search 00623 #define DI_FLAGSEX_AUTOSELECTRANK0 0x00000002L // SetupDiSelectDevice doesn't prompt user if rank 0 match 00624 #define DI_FLAGSEX_CI_FAILED 0x00000004L // Failed to Load/Call class installer 00625 00626 #define DI_FLAGSEX_DIDINFOLIST 0x00000010L // Did the Class Info List 00627 #define DI_FLAGSEX_DIDCOMPATINFO 0x00000020L // Did the Compat Info List 00628 00629 #define DI_FLAGSEX_FILTERCLASSES 0x00000040L 00630 #define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080L 00631 #define DI_FLAGSEX_DEVICECHANGE 0x00000100L 00632 #define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200L 00633 #define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800L 00634 #define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000L 00635 #define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000L // Use the device's class when building compat drv list. 00636 // (Ignored if DI_COMPAT_FROM_CLASS flag is specified.) 00637 #define DI_FLAGSEX_OLDINF_IN_CLASSLIST 0x00004000L // Search legacy INFs when building class driver list. 00638 #define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000L // Don't run AddReg and DelReg for device's software (driver) key. 00639 #define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000L // Installation is occurring during initial system setup. 00640 #define DI_FLAGSEX_INET_DRIVER 0x00020000L // Driver came from Windows Update 00641 #define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000L // Cause SetupDiBuildDriverInfoList to append 00642 // a new driver list to an existing list. 00643 00644 00645 // 00646 // Class installation parameters header. This must be the first field of any class install 00647 // parameter structure. The InstallFunction field must be set to the function code 00648 // corresponding to the structure, and the cbSize field must be set to the size of the 00649 // header structure. E.g., 00650 // 00651 // SP_ENABLECLASS_PARAMS EnableClassParams; 00652 // 00653 // EnableClassParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER); 00654 // EnableClassParams.ClassInstallHeader.InstallFunction = DIF_ENABLECLASS; 00655 // 00656 typedef struct _SP_CLASSINSTALL_HEADER { 00657 DWORD cbSize; 00658 DI_FUNCTION InstallFunction; 00659 } SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER; 00660 00661 00662 // 00663 // Structure corresponding to a DIF_ENABLECLASS install function. 00664 // 00665 typedef struct _SP_ENABLECLASS_PARAMS { 00666 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00667 GUID ClassGuid; 00668 DWORD EnableMessage; 00669 } SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS; 00670 00671 #define ENABLECLASS_QUERY 0 00672 #define ENABLECLASS_SUCCESS 1 00673 #define ENABLECLASS_FAILURE 2 00674 00675 00676 // 00677 // Structure corresponding to a DIF_MOVEDEVICE install function. 00678 // 00679 typedef struct _SP_MOVEDEV_PARAMS { 00680 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00681 SP_DEVINFO_DATA SourceDeviceInfoData; 00682 } SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS; 00683 00684 00685 // 00686 // Values indicating a change in a device's state 00687 // 00688 #define DICS_ENABLE 0x00000001 00689 #define DICS_DISABLE 0x00000002 00690 #define DICS_PROPCHANGE 0x00000003 00691 #define DICS_START 0x00000004 00692 #define DICS_STOP 0x00000005 00693 // 00694 // Values specifying the scope of a device property change 00695 // 00696 #define DICS_FLAG_GLOBAL 0x00000001 // make change in all hardware profiles 00697 #define DICS_FLAG_CONFIGSPECIFIC 0x00000002 // make change in specified profile only 00698 #define DICS_FLAG_CONFIGGENERAL 0x00000004 // 1 or more hardware profile-specific 00699 // changes to follow. 00700 // 00701 // Structure corresponding to a DIF_PROPERTYCHANGE install function. 00702 // 00703 typedef struct _SP_PROPCHANGE_PARAMS { 00704 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00705 DWORD StateChange; 00706 DWORD Scope; 00707 DWORD HwProfile; 00708 } SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS; 00709 00710 00711 // 00712 // Structure corresponding to a DIF_REMOVE install function. 00713 // 00714 typedef struct _SP_REMOVEDEVICE_PARAMS { 00715 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00716 DWORD Scope; 00717 DWORD HwProfile; 00718 } SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS; 00719 00720 #define DI_REMOVEDEVICE_GLOBAL 0x00000001 00721 #define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002 00722 00723 00724 // 00725 // Structure corresponding to a DIF_UNREMOVE install function. 00726 // 00727 typedef struct _SP_UNREMOVEDEVICE_PARAMS { 00728 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00729 DWORD Scope; 00730 DWORD HwProfile; 00731 } SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS; 00732 00733 #define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002 00734 00735 00736 // 00737 // Structure corresponding to a DIF_SELECTDEVICE install function. 00738 // 00739 typedef struct _SP_SELECTDEVICE_PARAMS_A { 00740 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00741 CHAR Title[MAX_TITLE_LEN]; 00742 CHAR Instructions[MAX_INSTRUCTION_LEN]; 00743 CHAR ListLabel[MAX_LABEL_LEN]; 00744 BYTE Reserved[2]; // DWORD size alignment 00745 } SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A; 00746 00747 typedef struct _SP_SELECTDEVICE_PARAMS_W { 00748 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00749 WCHAR Title[MAX_TITLE_LEN]; 00750 WCHAR Instructions[MAX_INSTRUCTION_LEN]; 00751 WCHAR ListLabel[MAX_LABEL_LEN]; 00752 } SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W; 00753 00754 #ifdef UNICODE 00755 typedef SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS; 00756 typedef PSP_SELECTDEVICE_PARAMS_W PSP_SELECTDEVICE_PARAMS; 00757 #else 00758 typedef SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS; 00759 typedef PSP_SELECTDEVICE_PARAMS_A PSP_SELECTDEVICE_PARAMS; 00760 #endif 00761 00762 00763 // 00764 // Structure corresponding to a DIF_DETECT install function. 00765 // 00766 00767 typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)( 00768 IN PVOID ProgressNotifyParam, 00769 IN DWORD DetectComplete 00770 ); 00771 00772 // where: 00773 // ProgressNotifyParam - value supplied by caller requesting detection. 00774 // DetectComplete - Percent completion, to be incremented by class 00775 // installer, as it steps thru its detection. 00776 // 00777 // Return Value - If TRUE, then detection is cancelled. Allows caller 00778 // requesting detection to stop detection asap. 00779 // 00780 00781 typedef struct _SP_DETECTDEVICE_PARAMS { 00782 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00783 PDETECT_PROGRESS_NOTIFY DetectProgressNotify; 00784 PVOID ProgressNotifyParam; 00785 } SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS; 00786 00787 00788 // 00789 // 'Add New Device' installation wizard structure 00790 // 00791 // Structure corresponding to a DIF_INSTALLWIZARD install function. 00792 // (NOTE: This structure is also applicable for DIF_DESTROYWIZARDDATA, 00793 // but DIF_INSTALLWIZARD is the associated function code in the class 00794 // installation parameter structure in both cases.) 00795 // 00796 // Define maximum number of dynamic wizard pages that can be added to 00797 // hardware install wizard. 00798 // 00799 #define MAX_INSTALLWIZARD_DYNAPAGES 20 00800 00801 typedef struct _SP_INSTALLWIZARD_DATA { 00802 SP_CLASSINSTALL_HEADER ClassInstallHeader; 00803 DWORD Flags; 00804 HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES]; 00805 DWORD NumDynamicPages; 00806 DWORD DynamicPageFlags; 00807 DWORD PrivateFlags; 00808 LPARAM PrivateData; 00809 HWND hwndWizardDlg; 00810 } SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA; 00811 00812 // 00813 // SP_INSTALLWIZARD_DATA.Flags values 00814 // 00815 #define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001 00816 #define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002 00817 #define NDW_INSTALLFLAG_NEEDRESTART DI_NEEDRESTART 00818 #define NDW_INSTALLFLAG_NEEDREBOOT DI_NEEDREBOOT 00819 #define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200 00820 #define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400 00821 #define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800 00822 #define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000 00823 #define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000 00824 #define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000 00825 #define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000 00826 #define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000 00827 #define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000 00828 #define NDW_INSTALLFLAG_USERCANCEL 0x00040000 00829 #define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000 00830 00831 00832 // 00833 // SP_INSTALLWIZARD_DATA.DynamicPageFlags values 00834 // 00835 // This flag is set if a Class installer has added pages to the 00836 // install wizard. 00837 // 00838 #define DYNAWIZ_FLAG_PAGESADDED 0x00000001 00839 00840 // 00841 // The following flags will control the button states when displaying 00842 // the InstallDetectedDevs dialog. 00843 // 00844 #define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002 00845 #define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004 00846 00847 // Set this flag if you jump to the analyze page, and want it to 00848 // handle conflicts for you. NOTE. You will not get control back 00849 // in the event of a conflict if you set this flag. 00850 // 00851 // BUGBUG (lonnym): Not currently implemented! 00852 // 00853 #define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008 00854 00855 // 00856 // Define wizard page resource IDs to be used when adding custom pages 00857 // to the hardware install wizard. 00858 // 00859 // Resource ID for the first page that the install wizard will go to after 00860 // adding the class installer pages. 00861 // 00862 #define IDD_DYNAWIZ_FIRSTPAGE 10000 00863 00864 // 00865 // Resource ID for the page that the Select Device page will go back to. 00866 // 00867 #define IDD_DYNAWIZ_SELECT_PREVPAGE 10001 00868 00869 // 00870 // Resource ID for the page that the Select Device page will go forward to. 00871 // 00872 #define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002 00873 00874 // 00875 // Resource ID for the page that the Analyze dialog should go back to 00876 // This will only be used in the event that there is a problem, and the user 00877 // selects Back from the analyze proc. 00878 // 00879 #define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003 00880 00881 // 00882 // Resource ID for the page that the Analyze dialog should go to if it 00883 // continue from the analyze proc. the wAnalyzeResult in the INSTALLDATA 00884 // struct will contain the anaysis results. 00885 // 00886 #define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004 00887 00888 // 00889 // Resource ID for that page that the Install detected devices page will go 00890 // back to. 00891 // 00892 #define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006 00893 00894 // 00895 // Resource ID for the page that the Install detected devices page will go 00896 // forward to. 00897 // 00898 #define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007 00899 00900 // 00901 // Resource ID for the page that the Install detected devices page will go 00902 // to in the event that no devices are detected. 00903 // 00904 #define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008 00905 00906 // 00907 // Resource ID of the hardware install wizard's select device page. 00908 // This ID can be used to go directly to the hardware install wizard's select 00909 // device page. 00910 // 00911 #define IDD_DYNAWIZ_SELECTDEV_PAGE 10009 00912 00913 // 00914 // Resource ID of the hardware install wizard's device analysis page. 00915 // This ID can be use to go directly to the hardware install wizard's analysis 00916 // page. 00917 // 00918 #define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010 00919 00920 // 00921 // Resource ID of the hardware install wizard's install detected devices page. 00922 // This ID can be use to go directly to the hardware install wizard's install 00923 // detected devices page. 00924 // 00925 #define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011 00926 00927 // 00928 // Resource ID of the hardware install wizard's select class page. 00929 // This ID can be use to go directly to the hardware install wizard's select 00930 // class page. 00931 // 00932 #define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012 00933 00934 00935 // 00936 // Driver information structure (member of a driver info list that may be associated 00937 // with a particular device instance, or (globally) with a device information set) 00938 // 00939 typedef struct _SP_DRVINFO_DATA_A { 00940 DWORD cbSize; 00941 DWORD DriverType; 00942 DWORD Reserved; 00943 CHAR Description[LINE_LEN]; 00944 CHAR MfgName[LINE_LEN]; 00945 CHAR ProviderName[LINE_LEN]; 00946 } SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A; 00947 00948 typedef struct _SP_DRVINFO_DATA_W { 00949 DWORD cbSize; 00950 DWORD DriverType; 00951 DWORD Reserved; 00952 WCHAR Description[LINE_LEN]; 00953 WCHAR MfgName[LINE_LEN]; 00954 WCHAR ProviderName[LINE_LEN]; 00955 } SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W; 00956 00957 #ifdef UNICODE 00958 typedef SP_DRVINFO_DATA_W SP_DRVINFO_DATA; 00959 typedef PSP_DRVINFO_DATA_W PSP_DRVINFO_DATA; 00960 #else 00961 typedef SP_DRVINFO_DATA_A SP_DRVINFO_DATA; 00962 typedef PSP_DRVINFO_DATA_A PSP_DRVINFO_DATA; 00963 #endif 00964 00965 00966 // 00967 // Driver information details structure (provides detailed information about a 00968 // particular driver information structure) 00969 // 00970 typedef struct _SP_DRVINFO_DETAIL_DATA_A { 00971 DWORD cbSize; 00972 FILETIME InfDate; 00973 DWORD CompatIDsOffset; 00974 DWORD CompatIDsLength; 00975 DWORD Reserved; 00976 CHAR SectionName[LINE_LEN]; 00977 CHAR InfFileName[MAX_PATH]; 00978 CHAR DrvDescription[LINE_LEN]; 00979 CHAR HardwareID[ANYSIZE_ARRAY]; 00980 } SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A; 00981 00982 typedef struct _SP_DRVINFO_DETAIL_DATA_W { 00983 DWORD cbSize; 00984 FILETIME InfDate; 00985 DWORD CompatIDsOffset; 00986 DWORD CompatIDsLength; 00987 DWORD Reserved; 00988 WCHAR SectionName[LINE_LEN]; 00989 WCHAR InfFileName[MAX_PATH]; 00990 WCHAR DrvDescription[LINE_LEN]; 00991 WCHAR HardwareID[ANYSIZE_ARRAY]; 00992 } SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W; 00993 00994 #ifdef UNICODE 00995 typedef SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA; 00996 typedef PSP_DRVINFO_DETAIL_DATA_W PSP_DRVINFO_DETAIL_DATA; 00997 #else 00998 typedef SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA; 00999 typedef PSP_DRVINFO_DETAIL_DATA_A PSP_DRVINFO_DETAIL_DATA; 01000 #endif 01001 01002 01003 // 01004 // Driver installation parameters (associated with a particular driver 01005 // information element) 01006 // 01007 typedef struct _SP_DRVINSTALL_PARAMS { 01008 DWORD cbSize; 01009 DWORD Rank; 01010 DWORD Flags; 01011 DWORD PrivateData; 01012 DWORD Reserved; 01013 } SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS; 01014 01015 // 01016 // SP_DRVINSTALL_PARAMS.Flags values 01017 // 01018 #define DNF_DUPDESC 0x00000001 // Multiple providers have same desc 01019 #define DNF_OLDDRIVER 0x00000002 // Driver node specifies old/current driver 01020 #define DNF_EXCLUDEFROMLIST 0x00000004 // If set, this driver node will not be 01021 // displayed in any driver select dialogs. 01022 #define DNF_NODRIVER 0x00000008 // if we want to install no driver 01023 // (e.g no mouse drv) 01024 #define DNF_LEGACYINF 0x00000010 // this driver node comes from an old-style INF 01025 01026 01027 // 01028 // Setup callback routine for comparing detection signatures 01029 // 01030 typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)( 01031 IN HDEVINFO DeviceInfoSet, 01032 IN PSP_DEVINFO_DATA NewDeviceData, 01033 IN PSP_DEVINFO_DATA ExistingDeviceData, 01034 IN PVOID CompareContext OPTIONAL 01035 ); 01036 01037 01038 // 01039 // Define context structure handed to co-installers 01040 // 01041 typedef struct _COINSTALLER_CONTEXT_DATA { 01042 BOOL PostProcessing; 01043 DWORD InstallResult; 01044 PVOID PrivateData; 01045 } COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA; 01046 01047 01048 // 01049 // Structure containing class image list information. 01050 // 01051 typedef struct _SP_CLASSIMAGELIST_DATA { 01052 DWORD cbSize; 01053 HIMAGELIST ImageList; 01054 DWORD Reserved; 01055 } SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA; 01056 01057 01058 // 01059 // Structure to be passed as first parameter (LPVOID lpv) to ExtensionPropSheetPageProc 01060 // entry point in setupapi.dll or to "EnumPropPages32" or "BasicProperties32" entry 01061 // points provided by class/device property page providers. Used to retrieve a handle 01062 // (or, potentially, multiple handles) to property pages for a specified property page type. 01063 // 01064 typedef struct _SP_PROPSHEETPAGE_REQUEST { 01065 DWORD cbSize; 01066 DWORD PageRequested; 01067 HDEVINFO DeviceInfoSet; 01068 PSP_DEVINFO_DATA DeviceInfoData; 01069 } SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST; 01070 01071 // 01072 // Property sheet codes used in SP_PROPSHEETPAGE_REQUEST.PageRequested 01073 // 01074 #define SPPSR_SELECT_DEVICE_RESOURCES 1 // supplied by setupapi.dll 01075 #define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2 // supplied by device's BasicProperties32 provider 01076 #define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3 // supplied by class and/or device's EnumPropPages32 provider 01077 01078 01079 // 01080 // Setupapi-specific error codes 01081 // 01082 // Inf parse outcomes 01083 // 01084 #define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0) 01085 #define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1) 01086 #define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2) 01087 #define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3) 01088 // 01089 // Inf runtime errors 01090 // 01091 #define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100) 01092 #define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101) 01093 #define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102) 01094 // 01095 // Device Installer errors 01096 // 01097 #define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200) 01098 #define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201) 01099 #define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202) 01100 #define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203) 01101 #define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204) 01102 #define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205) 01103 #define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206) 01104 #define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207) 01105 #define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208) 01106 #define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209) 01107 #define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A) 01108 #define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B) 01109 #define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C) 01110 #define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D) 01111 #define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E) 01112 #define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F) 01113 #define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210) 01114 #define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211) 01115 #define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212) 01116 #define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213) 01117 #define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214) 01118 #define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215) 01119 #define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216) 01120 #define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217) 01121 #define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218) 01122 #define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219) 01123 #define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A) 01124 #define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B) 01125 #define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C) 01126 #define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D) 01127 #define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E) 01128 #define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F) 01129 #define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220) 01130 #define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221) 01131 #define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222) 01132 #define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223) 01133 #define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224) 01134 #define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225) 01135 #define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226) 01136 #define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227) 01137 #define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228) 01138 #define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229) 01139 #define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A) 01140 #define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B) 01141 #define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C) 01142 01143 // 01144 // Backward compatibility--do not use. 01145 // 01146 #define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE 01147 #define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE 01148 #define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED 01149 #define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE 01150 01151 01152 // 01153 // Win9x migration DLL error code 01154 // 01155 #define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000) 01156 01157 01158 WINSETUPAPI 01159 BOOL 01160 WINAPI 01161 SetupGetInfInformationA( 01162 IN LPCVOID InfSpec, 01163 IN DWORD SearchControl, 01164 OUT PSP_INF_INFORMATION ReturnBuffer, OPTIONAL 01165 IN DWORD ReturnBufferSize, 01166 OUT PDWORD RequiredSize OPTIONAL 01167 ); 01168 01169 WINSETUPAPI 01170 BOOL 01171 WINAPI 01172 SetupGetInfInformationW( 01173 IN LPCVOID InfSpec, 01174 IN DWORD SearchControl, 01175 OUT PSP_INF_INFORMATION ReturnBuffer, OPTIONAL 01176 IN DWORD ReturnBufferSize, 01177 OUT PDWORD RequiredSize OPTIONAL 01178 ); 01179 01180 // 01181 // SearchControl flags for SetupGetInfInformation 01182 // 01183 #define INFINFO_INF_SPEC_IS_HINF 1 01184 #define INFINFO_INF_NAME_IS_ABSOLUTE 2 01185 #define INFINFO_DEFAULT_SEARCH 3 01186 #define INFINFO_REVERSE_DEFAULT_SEARCH 4 01187 #define INFINFO_INF_PATH_LIST_SEARCH 5 01188 01189 #ifdef UNICODE 01190 #define SetupGetInfInformation SetupGetInfInformationW 01191 #else 01192 #define SetupGetInfInformation SetupGetInfInformationA 01193 #endif 01194 01195 01196 WINSETUPAPI 01197 BOOL 01198 WINAPI 01199 SetupQueryInfFileInformationA( 01200 IN PSP_INF_INFORMATION InfInformation, 01201 IN UINT InfIndex, 01202 OUT PSTR ReturnBuffer, OPTIONAL 01203 IN DWORD ReturnBufferSize, 01204 OUT PDWORD RequiredSize OPTIONAL 01205 ); 01206 01207 WINSETUPAPI 01208 BOOL 01209 WINAPI 01210 SetupQueryInfFileInformationW( 01211 IN PSP_INF_INFORMATION InfInformation, 01212 IN UINT InfIndex, 01213 OUT PWSTR ReturnBuffer, OPTIONAL 01214 IN DWORD ReturnBufferSize, 01215 OUT PDWORD RequiredSize OPTIONAL 01216 ); 01217 01218 #ifdef UNICODE 01219 #define SetupQueryInfFileInformation SetupQueryInfFileInformationW 01220 #else 01221 #define SetupQueryInfFileInformation SetupQueryInfFileInformationA 01222 #endif 01223 01224 01225 WINSETUPAPI 01226 BOOL 01227 WINAPI 01228 SetupQueryInfVersionInformationA( 01229 IN PSP_INF_INFORMATION InfInformation, 01230 IN UINT InfIndex, 01231 IN PCSTR Key, OPTIONAL 01232 OUT PSTR ReturnBuffer, OPTIONAL 01233 IN DWORD ReturnBufferSize, 01234 OUT PDWORD RequiredSize OPTIONAL 01235 ); 01236 01237 WINSETUPAPI 01238 BOOL 01239 WINAPI 01240 SetupQueryInfVersionInformationW( 01241 IN PSP_INF_INFORMATION InfInformation, 01242 IN UINT InfIndex, 01243 IN PCWSTR Key, OPTIONAL 01244 OUT PWSTR ReturnBuffer, OPTIONAL 01245 IN DWORD ReturnBufferSize, 01246 OUT PDWORD RequiredSize OPTIONAL 01247 ); 01248 01249 #ifdef UNICODE 01250 #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW 01251 #else 01252 #define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA 01253 #endif 01254 01255 01256 WINSETUPAPI 01257 BOOL 01258 WINAPI 01259 SetupGetInfFileListA( 01260 IN PCSTR DirectoryPath, OPTIONAL 01261 IN DWORD InfStyle, 01262 OUT PSTR ReturnBuffer, OPTIONAL 01263 IN DWORD ReturnBufferSize, 01264 OUT PDWORD RequiredSize OPTIONAL 01265 ); 01266 01267 WINSETUPAPI 01268 BOOL 01269 WINAPI 01270 SetupGetInfFileListW( 01271 IN PCWSTR DirectoryPath, OPTIONAL 01272 IN DWORD InfStyle, 01273 OUT PWSTR ReturnBuffer, OPTIONAL 01274 IN DWORD ReturnBufferSize, 01275 OUT PDWORD RequiredSize OPTIONAL 01276 ); 01277 01278 #ifdef UNICODE 01279 #define SetupGetInfFileList SetupGetInfFileListW 01280 #else 01281 #define SetupGetInfFileList SetupGetInfFileListA 01282 #endif 01283 01284 01285 WINSETUPAPI 01286 HINF 01287 WINAPI 01288 SetupOpenInfFileW( 01289 IN PCWSTR FileName, 01290 IN PCWSTR InfClass, OPTIONAL 01291 IN DWORD InfStyle, 01292 OUT PUINT ErrorLine OPTIONAL 01293 ); 01294 01295 WINSETUPAPI 01296 HINF 01297 WINAPI 01298 SetupOpenInfFileA( 01299 IN PCSTR FileName, 01300 IN PCSTR InfClass, OPTIONAL 01301 IN DWORD InfStyle, 01302 OUT PUINT ErrorLine OPTIONAL 01303 ); 01304 01305 #ifdef UNICODE 01306 #define SetupOpenInfFile SetupOpenInfFileW 01307 #else 01308 #define SetupOpenInfFile SetupOpenInfFileA 01309 #endif 01310 01311 01312 WINSETUPAPI 01313 HINF 01314 WINAPI 01315 SetupOpenMasterInf( 01316 VOID 01317 ); 01318 01319 01320 WINSETUPAPI 01321 BOOL 01322 WINAPI 01323 SetupOpenAppendInfFileW( 01324 IN PCWSTR FileName, OPTIONAL 01325 IN HINF InfHandle, 01326 OUT PUINT ErrorLine OPTIONAL 01327 ); 01328 01329 WINSETUPAPI 01330 BOOL 01331 WINAPI 01332 SetupOpenAppendInfFileA( 01333 IN PCSTR FileName, OPTIONAL 01334 IN HINF InfHandle, 01335 OUT PUINT ErrorLine OPTIONAL 01336 ); 01337 01338 #ifdef UNICODE 01339 #define SetupOpenAppendInfFile SetupOpenAppendInfFileW 01340 #else 01341 #define SetupOpenAppendInfFile SetupOpenAppendInfFileA 01342 #endif 01343 01344 01345 WINSETUPAPI 01346 VOID 01347 WINAPI 01348 SetupCloseInfFile( 01349 IN HINF InfHandle 01350 ); 01351 01352 01353 WINSETUPAPI 01354 BOOL 01355 WINAPI 01356 SetupFindFirstLineA( 01357 IN HINF InfHandle, 01358 IN PCSTR Section, 01359 IN PCSTR Key, OPTIONAL 01360 OUT PINFCONTEXT Context 01361 ); 01362 01363 WINSETUPAPI 01364 BOOL 01365 WINAPI 01366 SetupFindFirstLineW( 01367 IN HINF InfHandle, 01368 IN PCWSTR Section, 01369 IN PCWSTR Key, OPTIONAL 01370 OUT PINFCONTEXT Context 01371 ); 01372 01373 #ifdef UNICODE 01374 #define SetupFindFirstLine SetupFindFirstLineW 01375 #else 01376 #define SetupFindFirstLine SetupFindFirstLineA 01377 #endif 01378 01379 01380 WINSETUPAPI 01381 BOOL 01382 WINAPI 01383 SetupFindNextLine( 01384 IN PINFCONTEXT ContextIn, 01385 OUT PINFCONTEXT ContextOut 01386 ); 01387 01388 01389 WINSETUPAPI 01390 BOOL 01391 WINAPI 01392 SetupFindNextMatchLineA( 01393 IN PINFCONTEXT ContextIn, 01394 IN PCSTR Key, OPTIONAL 01395 OUT PINFCONTEXT ContextOut 01396 ); 01397 01398 WINSETUPAPI 01399 BOOL 01400 WINAPI 01401 SetupFindNextMatchLineW( 01402 IN PINFCONTEXT ContextIn, 01403 IN PCWSTR Key, OPTIONAL 01404 OUT PINFCONTEXT ContextOut 01405 ); 01406 01407 #ifdef UNICODE 01408 #define SetupFindNextMatchLine SetupFindNextMatchLineW 01409 #else 01410 #define SetupFindNextMatchLine SetupFindNextMatchLineA 01411 #endif 01412 01413 01414 WINSETUPAPI 01415 BOOL 01416 WINAPI 01417 SetupGetLineByIndexA( 01418 IN HINF InfHandle, 01419 IN PCSTR Section, 01420 IN DWORD Index, 01421 OUT PINFCONTEXT Context 01422 ); 01423 01424 WINSETUPAPI 01425 BOOL 01426 WINAPI 01427 SetupGetLineByIndexW( 01428 IN HINF InfHandle, 01429 IN PCWSTR Section, 01430 IN DWORD Index, 01431 OUT PINFCONTEXT Context 01432 ); 01433 01434 #ifdef UNICODE 01435 #define SetupGetLineByIndex SetupGetLineByIndexW 01436 #else 01437 #define SetupGetLineByIndex SetupGetLineByIndexA 01438 #endif 01439 01440 01441 WINSETUPAPI 01442 LONG 01443 WINAPI 01444 SetupGetLineCountA( 01445 IN HINF InfHandle, 01446 IN PCSTR Section 01447 ); 01448 01449 WINSETUPAPI 01450 LONG 01451 WINAPI 01452 SetupGetLineCountW( 01453 IN HINF InfHandle, 01454 IN PCWSTR Section 01455 ); 01456 01457 #ifdef UNICODE 01458 #define SetupGetLineCount SetupGetLineCountW 01459 #else 01460 #define SetupGetLineCount SetupGetLineCountA 01461 #endif 01462 01463 01464 WINSETUPAPI 01465 BOOL 01466 WINAPI 01467 SetupGetLineTextA( 01468 IN PINFCONTEXT Context, OPTIONAL 01469 IN HINF InfHandle, OPTIONAL 01470 IN PCSTR Section, OPTIONAL 01471 IN PCSTR Key, OPTIONAL 01472 OUT PSTR ReturnBuffer, OPTIONAL 01473 IN DWORD ReturnBufferSize, 01474 OUT PDWORD RequiredSize OPTIONAL 01475 ); 01476 01477 WINSETUPAPI 01478 BOOL 01479 WINAPI 01480 SetupGetLineTextW( 01481 IN PINFCONTEXT Context, OPTIONAL 01482 IN HINF InfHandle, OPTIONAL 01483 IN PCWSTR Section, OPTIONAL 01484 IN PCWSTR Key, OPTIONAL 01485 OUT PWSTR ReturnBuffer, OPTIONAL 01486 IN DWORD ReturnBufferSize, 01487 OUT PDWORD RequiredSize OPTIONAL 01488 ); 01489 01490 #ifdef UNICODE 01491 #define SetupGetLineText SetupGetLineTextW 01492 #else 01493 #define SetupGetLineText SetupGetLineTextA 01494 #endif 01495 01496 01497 WINSETUPAPI 01498 DWORD 01499 WINAPI 01500 SetupGetFieldCount( 01501 IN PINFCONTEXT Context 01502 ); 01503 01504 01505 WINSETUPAPI 01506 BOOL 01507 WINAPI 01508 SetupGetStringFieldA( 01509 IN PINFCONTEXT Context, 01510 IN DWORD FieldIndex, 01511 OUT PSTR ReturnBuffer, OPTIONAL 01512 IN DWORD ReturnBufferSize, 01513 OUT PDWORD RequiredSize OPTIONAL 01514 ); 01515 01516 WINSETUPAPI 01517 BOOL 01518 WINAPI 01519 SetupGetStringFieldW( 01520 IN PINFCONTEXT Context, 01521 IN DWORD FieldIndex, 01522 OUT PWSTR ReturnBuffer, OPTIONAL 01523 IN DWORD ReturnBufferSize, 01524 OUT PDWORD RequiredSize OPTIONAL 01525 ); 01526 01527 #ifdef UNICODE 01528 #define SetupGetStringField SetupGetStringFieldW 01529 #else 01530 #define SetupGetStringField SetupGetStringFieldA 01531 #endif 01532 01533 01534 WINSETUPAPI 01535 BOOL 01536 WINAPI 01537 SetupGetIntField( 01538 IN PINFCONTEXT Context, 01539 IN DWORD FieldIndex, 01540 OUT PINT IntegerValue 01541 ); 01542 01543 01544 WINSETUPAPI 01545 BOOL 01546 WINAPI 01547 SetupGetMultiSzFieldA( 01548 IN PINFCONTEXT Context, 01549 IN DWORD FieldIndex, 01550 OUT PSTR ReturnBuffer, OPTIONAL 01551 IN DWORD ReturnBufferSize, 01552 OUT LPDWORD RequiredSize OPTIONAL 01553 ); 01554 01555 WINSETUPAPI 01556 BOOL 01557 WINAPI 01558 SetupGetMultiSzFieldW( 01559 IN PINFCONTEXT Context, 01560 IN DWORD FieldIndex, 01561 OUT PWSTR ReturnBuffer, OPTIONAL 01562 IN DWORD ReturnBufferSize, 01563 OUT LPDWORD RequiredSize OPTIONAL 01564 ); 01565 01566 #ifdef UNICODE 01567 #define SetupGetMultiSzField SetupGetMultiSzFieldW 01568 #else 01569 #define SetupGetMultiSzField SetupGetMultiSzFieldA 01570 #endif 01571 01572 01573 WINSETUPAPI 01574 BOOL 01575 WINAPI 01576 SetupGetBinaryField( 01577 IN PINFCONTEXT Context, 01578 IN DWORD FieldIndex, 01579 OUT PBYTE ReturnBuffer, OPTIONAL 01580 IN DWORD ReturnBufferSize, 01581 OUT LPDWORD RequiredSize OPTIONAL 01582 ); 01583 01584 01585 WINSETUPAPI 01586 DWORD 01587 WINAPI 01588 SetupGetFileCompressionInfoA( 01589 IN PCSTR SourceFileName, 01590 OUT PSTR *ActualSourceFileName, 01591 OUT PDWORD SourceFileSize, 01592 OUT PDWORD TargetFileSize, 01593 OUT PUINT CompressionType 01594 ); 01595 01596 WINSETUPAPI 01597 DWORD 01598 WINAPI 01599 SetupGetFileCompressionInfoW( 01600 IN PCWSTR SourceFileName, 01601 OUT PWSTR *ActualSourceFileName, 01602 OUT PDWORD SourceFileSize, 01603 OUT PDWORD TargetFileSize, 01604 OUT PUINT CompressionType 01605 ); 01606 01607 #ifdef UNICODE 01608 #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW 01609 #else 01610 #define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA 01611 #endif 01612 01613 01614 // 01615 // Compression types 01616 // 01617 #define FILE_COMPRESSION_NONE 0 01618 #define FILE_COMPRESSION_WINLZA 1 01619 #define FILE_COMPRESSION_MSZIP 2 01620 01621 01622 WINSETUPAPI 01623 DWORD 01624 WINAPI 01625 SetupDecompressOrCopyFileA( 01626 IN PCSTR SourceFileName, 01627 IN PCSTR TargetFileName, 01628 IN PUINT CompressionType OPTIONAL 01629 ); 01630 01631 WINSETUPAPI 01632 DWORD 01633 WINAPI 01634 SetupDecompressOrCopyFileW( 01635 IN PCWSTR SourceFileName, 01636 IN PCWSTR TargetFileName, 01637 IN PUINT CompressionType OPTIONAL 01638 ); 01639 01640 #ifdef UNICODE 01641 #define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW 01642 #else 01643 #define SetupDecompressOrCopyFile SetupDecompressOrCopyFileA 01644 #endif 01645 01646 01647 WINSETUPAPI 01648 BOOL 01649 WINAPI 01650 SetupGetSourceFileLocationA( 01651 IN HINF InfHandle, 01652 IN PINFCONTEXT InfContext, OPTIONAL 01653 IN PCSTR FileName, OPTIONAL 01654 OUT PUINT SourceId, 01655 OUT PSTR ReturnBuffer, OPTIONAL 01656 IN DWORD ReturnBufferSize, 01657 OUT PDWORD RequiredSize OPTIONAL 01658 ); 01659 01660 WINSETUPAPI 01661 BOOL 01662 WINAPI 01663 SetupGetSourceFileLocationW( 01664 IN HINF InfHandle, 01665 IN PINFCONTEXT InfContext, OPTIONAL 01666 IN PCWSTR FileName, OPTIONAL 01667 OUT PUINT SourceId, 01668 OUT PWSTR ReturnBuffer, OPTIONAL 01669 IN DWORD ReturnBufferSize, 01670 OUT PDWORD RequiredSize OPTIONAL 01671 ); 01672 01673 #ifdef UNICODE 01674 #define SetupGetSourceFileLocation SetupGetSourceFileLocationW 01675 #else 01676 #define SetupGetSourceFileLocation SetupGetSourceFileLocationA 01677 #endif 01678 01679 01680 WINSETUPAPI 01681 BOOL 01682 WINAPI 01683 SetupGetSourceFileSizeA( 01684 IN HINF InfHandle, 01685 IN PINFCONTEXT InfContext, OPTIONAL 01686 IN PCSTR FileName, OPTIONAL 01687 IN PCSTR Section, OPTIONAL 01688 OUT PDWORD FileSize, 01689 IN UINT RoundingFactor OPTIONAL 01690 ); 01691 01692 WINSETUPAPI 01693 BOOL 01694 WINAPI 01695 SetupGetSourceFileSizeW( 01696 IN HINF InfHandle, 01697 IN PINFCONTEXT InfContext, OPTIONAL 01698 IN PCWSTR FileName, OPTIONAL 01699 IN PCWSTR Section, OPTIONAL 01700 OUT PDWORD FileSize, 01701 IN UINT RoundingFactor OPTIONAL 01702 ); 01703 01704 #ifdef UNICODE 01705 #define SetupGetSourceFileSize SetupGetSourceFileSizeW 01706 #else 01707 #define SetupGetSourceFileSize SetupGetSourceFileSizeA 01708 #endif 01709 01710 01711 WINSETUPAPI 01712 BOOL 01713 WINAPI 01714 SetupGetTargetPathA( 01715 IN HINF InfHandle, 01716 IN PINFCONTEXT InfContext, OPTIONAL 01717 IN PCSTR Section, OPTIONAL 01718 OUT PSTR ReturnBuffer, OPTIONAL 01719 IN DWORD ReturnBufferSize, 01720 OUT PDWORD RequiredSize OPTIONAL 01721 ); 01722 01723 WINSETUPAPI 01724 BOOL 01725 WINAPI 01726 SetupGetTargetPathW( 01727 IN HINF InfHandle, 01728 IN PINFCONTEXT InfContext, OPTIONAL 01729 IN PCWSTR Section, OPTIONAL 01730 OUT PWSTR ReturnBuffer, OPTIONAL 01731 IN DWORD ReturnBufferSize, 01732 OUT PDWORD RequiredSize OPTIONAL 01733 ); 01734 01735 #ifdef UNICODE 01736 #define SetupGetTargetPath SetupGetTargetPathW 01737 #else 01738 #define SetupGetTargetPath SetupGetTargetPathA 01739 #endif 01740 01741 01742 // 01743 // Define flags for SourceList APIs. 01744 // 01745 #define SRCLIST_TEMPORARY 0x00000001 01746 #define SRCLIST_NOBROWSE 0x00000002 01747 #define SRCLIST_SYSTEM 0x00000010 01748 #define SRCLIST_USER 0x00000020 01749 #define SRCLIST_SYSIFADMIN 0x00000040 01750 #define SRCLIST_SUBDIRS 0x00000100 01751 #define SRCLIST_APPEND 0x00000200 01752 #define SRCLIST_NOSTRIPPLATFORM 0x00000400 01753 01754 01755 WINSETUPAPI 01756 BOOL 01757 WINAPI 01758 SetupSetSourceListA( 01759 IN DWORD Flags, 01760 IN PCSTR *SourceList, 01761 IN UINT SourceCount 01762 ); 01763 01764 WINSETUPAPI 01765 BOOL 01766 WINAPI 01767 SetupSetSourceListW( 01768 IN DWORD Flags, 01769 IN PCWSTR *SourceList, 01770 IN UINT SourceCount 01771 ); 01772 01773 #ifdef UNICODE 01774 #define SetupSetSourceList SetupSetSourceListW 01775 #else 01776 #define SetupSetSourceList SetupSetSourceListA 01777 #endif 01778 01779 01780 WINSETUPAPI 01781 BOOL 01782 WINAPI 01783 SetupCancelTemporarySourceList( 01784 VOID 01785 ); 01786 01787 01788 WINSETUPAPI 01789 BOOL 01790 WINAPI 01791 SetupAddToSourceListA( 01792 IN DWORD Flags, 01793 IN PCSTR Source 01794 ); 01795 01796 WINSETUPAPI 01797 BOOL 01798 WINAPI 01799 SetupAddToSourceListW( 01800 IN DWORD Flags, 01801 IN PCWSTR Source 01802 ); 01803 01804 #ifdef UNICODE 01805 #define SetupAddToSourceList SetupAddToSourceListW 01806 #else 01807 #define SetupAddToSourceList SetupAddToSourceListA 01808 #endif 01809 01810 01811 WINSETUPAPI 01812 BOOL 01813 WINAPI 01814 SetupRemoveFromSourceListA( 01815 IN DWORD Flags, 01816 IN PCSTR Source 01817 ); 01818 01819 WINSETUPAPI 01820 BOOL 01821 WINAPI 01822 SetupRemoveFromSourceListW( 01823 IN DWORD Flags, 01824 IN PCWSTR Source 01825 ); 01826 01827 #ifdef UNICODE 01828 #define SetupRemoveFromSourceList SetupRemoveFromSourceListW 01829 #else 01830 #define SetupRemoveFromSourceList SetupRemoveFromSourceListA 01831 #endif 01832 01833 01834 WINSETUPAPI 01835 BOOL 01836 WINAPI 01837 SetupQuerySourceListA( 01838 IN DWORD Flags, 01839 OUT PCSTR **List, 01840 OUT PUINT Count 01841 ); 01842 01843 WINSETUPAPI 01844 BOOL 01845 WINAPI 01846 SetupQuerySourceListW( 01847 IN DWORD Flags, 01848 OUT PCWSTR **List, 01849 OUT PUINT Count 01850 ); 01851 01852 #ifdef UNICODE 01853 #define SetupQuerySourceList SetupQuerySourceListW 01854 #else 01855 #define SetupQuerySourceList SetupQuerySourceListA 01856 #endif 01857 01858 01859 WINSETUPAPI 01860 BOOL 01861 WINAPI 01862 SetupFreeSourceListA( 01863 IN OUT PCSTR **List, 01864 IN UINT Count 01865 ); 01866 01867 WINSETUPAPI 01868 BOOL 01869 WINAPI 01870 SetupFreeSourceListW( 01871 IN OUT PCWSTR **List, 01872 IN UINT Count 01873 ); 01874 01875 #ifdef UNICODE 01876 #define SetupFreeSourceList SetupFreeSourceListW 01877 #else 01878 #define SetupFreeSourceList SetupFreeSourceListA 01879 #endif 01880 01881 01882 WINSETUPAPI 01883 UINT 01884 WINAPI 01885 SetupPromptForDiskA( 01886 IN HWND hwndParent, 01887 IN PCSTR DialogTitle, OPTIONAL 01888 IN PCSTR DiskName, OPTIONAL 01889 IN PCSTR PathToSource, OPTIONAL 01890 IN PCSTR FileSought, 01891 IN PCSTR TagFile, OPTIONAL 01892 IN DWORD DiskPromptStyle, 01893 OUT PSTR PathBuffer, 01894 IN DWORD PathBufferSize, 01895 OUT PDWORD PathRequiredSize 01896 ); 01897 01898 WINSETUPAPI 01899 UINT 01900 WINAPI 01901 SetupPromptForDiskW( 01902 IN HWND hwndParent, 01903 IN PCWSTR DialogTitle, OPTIONAL 01904 IN PCWSTR DiskName, OPTIONAL 01905 IN PCWSTR PathToSource, OPTIONAL 01906 IN PCWSTR FileSought, 01907 IN PCWSTR TagFile, OPTIONAL 01908 IN DWORD DiskPromptStyle, 01909 OUT PWSTR PathBuffer, 01910 IN DWORD PathBufferSize, 01911 OUT PDWORD PathRequiredSize 01912 ); 01913 01914 #ifdef UNICODE 01915 #define SetupPromptForDisk SetupPromptForDiskW 01916 #else 01917 #define SetupPromptForDisk SetupPromptForDiskA 01918 #endif 01919 01920 01921 WINSETUPAPI 01922 UINT 01923 WINAPI 01924 SetupCopyErrorA( 01925 IN HWND hwndParent, 01926 IN PCSTR DialogTitle, OPTIONAL 01927 IN PCSTR DiskName, OPTIONAL 01928 IN PCSTR PathToSource, 01929 IN PCSTR SourceFile, 01930 IN PCSTR TargetPathFile, OPTIONAL 01931 IN UINT Win32ErrorCode, 01932 IN DWORD Style, 01933 OUT PSTR PathBuffer, OPTIONAL 01934 IN DWORD PathBufferSize, 01935 OUT PDWORD PathRequiredSize OPTIONAL 01936 ); 01937 01938 WINSETUPAPI 01939 UINT 01940 WINAPI 01941 SetupCopyErrorW( 01942 IN HWND hwndParent, 01943 IN PCWSTR DialogTitle, OPTIONAL 01944 IN PCWSTR DiskName, OPTIONAL 01945 IN PCWSTR PathToSource, 01946 IN PCWSTR SourceFile, 01947 IN PCWSTR TargetPathFile, OPTIONAL 01948 IN UINT Win32ErrorCode, 01949 IN DWORD Style, 01950 OUT PWSTR PathBuffer, OPTIONAL 01951 IN DWORD PathBufferSize, 01952 OUT PDWORD PathRequiredSize OPTIONAL 01953 ); 01954 01955 #ifdef UNICODE 01956 #define SetupCopyError SetupCopyErrorW 01957 #else 01958 #define SetupCopyError SetupCopyErrorA 01959 #endif 01960 01961 01962 WINSETUPAPI 01963 UINT 01964 WINAPI 01965 SetupRenameErrorA( 01966 IN HWND hwndParent, 01967 IN PCSTR DialogTitle, OPTIONAL 01968 IN PCSTR SourceFile, 01969 IN PCSTR TargetFile, 01970 IN UINT Win32ErrorCode, 01971 IN DWORD Style 01972 ); 01973 01974 WINSETUPAPI 01975 UINT 01976 WINAPI 01977 SetupRenameErrorW( 01978 IN HWND hwndParent, 01979 IN PCWSTR DialogTitle, OPTIONAL 01980 IN PCWSTR SourceFile, 01981 IN PCWSTR TargetFile, 01982 IN UINT Win32ErrorCode, 01983 IN DWORD Style 01984 ); 01985 01986 #ifdef UNICODE 01987 #define SetupRenameError SetupRenameErrorW 01988 #else 01989 #define SetupRenameError SetupRenameErrorA 01990 #endif 01991 01992 01993 WINSETUPAPI 01994 UINT 01995 WINAPI 01996 SetupDeleteErrorA( 01997 IN HWND hwndParent, 01998 IN PCSTR DialogTitle, OPTIONAL 01999 IN PCSTR File, 02000 IN UINT Win32ErrorCode, 02001 IN DWORD Style 02002 ); 02003 02004 WINSETUPAPI 02005 UINT 02006 WINAPI 02007 SetupDeleteErrorW( 02008 IN HWND hwndParent, 02009 IN PCWSTR DialogTitle, OPTIONAL 02010 IN PCWSTR File, 02011 IN UINT Win32ErrorCode, 02012 IN DWORD Style 02013 ); 02014 02015 #ifdef UNICODE 02016 #define SetupDeleteError SetupDeleteErrorW 02017 #else 02018 #define SetupDeleteError SetupDeleteErrorA 02019 #endif 02020 02021 02022 // 02023 // Styles for SetupPromptForDisk, SetupCopyError, 02024 // SetupRenameError, SetupDeleteError 02025 // 02026 #define IDF_NOBROWSE 0x00000001 02027 #define IDF_NOSKIP 0x00000002 02028 #define IDF_NODETAILS 0x00000004 02029 #define IDF_NOCOMPRESSED 0x00000008 02030 #define IDF_CHECKFIRST 0x00000100 02031 #define IDF_NOBEEP 0x00000200 02032 #define IDF_NOFOREGROUND 0x00000400 02033 #define IDF_WARNIFSKIP 0x00000800 02034 #define IDF_OEMDISK 0x80000000 02035 02036 // 02037 // Return values for SetupPromptForDisk, SetupCopyError, 02038 // SetupRenameError, SetupDeleteError 02039 // 02040 #define DPROMPT_SUCCESS 0 02041 #define DPROMPT_CANCEL 1 02042 #define DPROMPT_SKIPFILE 2 02043 #define DPROMPT_BUFFERTOOSMALL 3 02044 #define DPROMPT_OUTOFMEMORY 4 02045 02046 02047 WINSETUPAPI 02048 BOOL 02049 WINAPI 02050 SetupSetDirectoryIdA( 02051 IN HINF InfHandle, 02052 IN DWORD Id, OPTIONAL 02053 IN PCSTR Directory OPTIONAL 02054 ); 02055 02056 WINSETUPAPI 02057 BOOL 02058 WINAPI 02059 SetupSetDirectoryIdW( 02060 IN HINF InfHandle, 02061 IN DWORD Id, OPTIONAL 02062 IN PCWSTR Directory OPTIONAL 02063 ); 02064 02065 #ifdef UNICODE 02066 #define SetupSetDirectoryId SetupSetDirectoryIdW 02067 #else 02068 #define SetupSetDirectoryId SetupSetDirectoryIdA 02069 #endif 02070 02071 02072 WINSETUPAPI 02073 BOOL 02074 WINAPI 02075 SetupSetDirectoryIdExA( 02076 IN HINF InfHandle, 02077 IN DWORD Id, OPTIONAL 02078 IN PCSTR Directory, OPTIONAL 02079 IN DWORD Flags, 02080 IN DWORD Reserved1, 02081 IN PVOID Reserved2 02082 ); 02083 02084 WINSETUPAPI 02085 BOOL 02086 WINAPI 02087 SetupSetDirectoryIdExW( 02088 IN HINF InfHandle, 02089 IN DWORD Id, OPTIONAL 02090 IN PCWSTR Directory, OPTIONAL 02091 IN DWORD Flags, 02092 IN DWORD Reserved1, 02093 IN PVOID Reserved2 02094 ); 02095 02096 #ifdef UNICODE 02097 #define SetupSetDirectoryIdEx SetupSetDirectoryIdExW 02098 #else 02099 #define SetupSetDirectoryIdEx SetupSetDirectoryIdExA 02100 #endif 02101 02102 // 02103 // Flags for SetupSetDirectoryIdEx 02104 // 02105 #define SETDIRID_NOT_FULL_PATH 0x00000001 02106 02107 02108 WINSETUPAPI 02109 BOOL 02110 WINAPI 02111 SetupGetSourceInfoA( 02112 IN HINF InfHandle, 02113 IN UINT SourceId, 02114 IN UINT InfoDesired, 02115 OUT PSTR ReturnBuffer, OPTIONAL 02116 IN DWORD ReturnBufferSize, 02117 OUT PDWORD RequiredSize OPTIONAL 02118 ); 02119 02120 WINSETUPAPI 02121 BOOL 02122 WINAPI 02123 SetupGetSourceInfoW( 02124 IN HINF InfHandle, 02125 IN UINT SourceId, 02126 IN UINT InfoDesired, 02127 OUT PWSTR ReturnBuffer, OPTIONAL 02128 IN DWORD ReturnBufferSize, 02129 OUT PDWORD RequiredSize OPTIONAL 02130 ); 02131 02132 #ifdef UNICODE 02133 #define SetupGetSourceInfo SetupGetSourceInfoW 02134 #else 02135 #define SetupGetSourceInfo SetupGetSourceInfoA 02136 #endif 02137 02138 // 02139 // InfoDesired values for SetupGetSourceInfo 02140 // 02141 #define SRCINFO_PATH 1 02142 #define SRCINFO_TAGFILE 2 02143 #define SRCINFO_DESCRIPTION 3 02144 02145 02146 WINSETUPAPI 02147 BOOL 02148 WINAPI 02149 SetupInstallFileA( 02150 IN HINF InfHandle, OPTIONAL 02151 IN PINFCONTEXT InfContext, OPTIONAL 02152 IN PCSTR SourceFile, OPTIONAL 02153 IN PCSTR SourcePathRoot, OPTIONAL 02154 IN PCSTR DestinationName, OPTIONAL 02155 IN DWORD CopyStyle, 02156 IN PSP_FILE_CALLBACK_A CopyMsgHandler, OPTIONAL 02157 IN PVOID Context OPTIONAL 02158 ); 02159 02160 WINSETUPAPI 02161 BOOL 02162 WINAPI 02163 SetupInstallFileW( 02164 IN HINF InfHandle, OPTIONAL 02165 IN PINFCONTEXT InfContext, OPTIONAL 02166 IN PCWSTR SourceFile, OPTIONAL 02167 IN PCWSTR SourcePathRoot, OPTIONAL 02168 IN PCWSTR DestinationName, OPTIONAL 02169 IN DWORD CopyStyle, 02170 IN PSP_FILE_CALLBACK_W CopyMsgHandler, OPTIONAL 02171 IN PVOID Context OPTIONAL 02172 ); 02173 02174 #ifdef UNICODE 02175 #define SetupInstallFile SetupInstallFileW 02176 #else 02177 #define SetupInstallFile SetupInstallFileA 02178 #endif 02179 02180 WINSETUPAPI 02181 BOOL 02182 WINAPI 02183 SetupInstallFileExA( 02184 IN HINF InfHandle, OPTIONAL 02185 IN PINFCONTEXT InfContext, OPTIONAL 02186 IN PCSTR SourceFile, OPTIONAL 02187 IN PCSTR SourcePathRoot, OPTIONAL 02188 IN PCSTR DestinationName, OPTIONAL 02189 IN DWORD CopyStyle, 02190 IN PSP_FILE_CALLBACK_A CopyMsgHandler, OPTIONAL 02191 IN PVOID Context, OPTIONAL 02192 OUT PBOOL FileWasInUse 02193 ); 02194 02195 WINSETUPAPI 02196 BOOL 02197 WINAPI 02198 SetupInstallFileExW( 02199 IN HINF InfHandle, OPTIONAL 02200 IN PINFCONTEXT InfContext, OPTIONAL 02201 IN PCWSTR SourceFile, OPTIONAL 02202 IN PCWSTR SourcePathRoot, OPTIONAL 02203 IN PCWSTR DestinationName, OPTIONAL 02204 IN DWORD CopyStyle, 02205 IN PSP_FILE_CALLBACK_W CopyMsgHandler, OPTIONAL 02206 IN PVOID Context, OPTIONAL 02207 OUT PBOOL FileWasInUse 02208 ); 02209 02210 #ifdef UNICODE 02211 #define SetupInstallFileEx SetupInstallFileExW 02212 #else 02213 #define SetupInstallFileEx SetupInstallFileExA 02214 #endif 02215 02216 // 02217 // CopyStyle values for copy and queue-related APIs 02218 // 02219 #define SP_COPY_DELETESOURCE 0x0000001 // delete source file on successful copy 02220 #define SP_COPY_REPLACEONLY 0x0000002 // copy only if target file already present 02221 #define SP_COPY_NEWER 0x0000004 // copy only if source newer than or same as target 02222 #define SP_COPY_NEWER_OR_SAME SP_COPY_NEWER 02223 #define SP_COPY_NOOVERWRITE 0x0000008 // copy only if target doesn't exist 02224 #define SP_COPY_NODECOMP 0x0000010 // don't decompress source file while copying 02225 #define SP_COPY_LANGUAGEAWARE 0x0000020 // don't overwrite file of different language 02226 #define SP_COPY_SOURCE_ABSOLUTE 0x0000040 // SourceFile is a full source path 02227 #define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080 // SourcePathRoot is the full path 02228 #define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100 // System needs reboot if file in use 02229 #define SP_COPY_FORCE_IN_USE 0x0000200 // Force target-in-use behavior 02230 #define SP_COPY_NOSKIP 0x0000400 // Skip is disallowed for this file or section 02231 #define SP_FLAG_CABINETCONTINUATION 0x0000800 // Used with need media notification 02232 #define SP_COPY_FORCE_NOOVERWRITE 0x0001000 // like NOOVERWRITE but no callback nofitication 02233 #define SP_COPY_FORCE_NEWER 0x0002000 // like NEWER but no callback nofitication 02234 #define SP_COPY_WARNIFSKIP 0x0004000 // system critical file: warn if user tries to skip 02235 #define SP_COPY_NOBROWSE 0x0008000 // Browsing is disallowed for this file or section 02236 #define SP_COPY_NEWER_ONLY 0x0010000 // copy only if source file newer than target 02237 02238 02239 WINSETUPAPI 02240 HSPFILEQ 02241 WINAPI 02242 SetupOpenFileQueue( 02243 VOID 02244 ); 02245 02246 WINSETUPAPI 02247 BOOL 02248 WINAPI 02249 SetupCloseFileQueue( 02250 IN HSPFILEQ QueueHandle 02251 ); 02252 02253 02254 WINSETUPAPI 02255 BOOL 02256 WINAPI 02257 SetupSetPlatformPathOverrideA( 02258 IN PCSTR Override OPTIONAL 02259 ); 02260 02261 WINSETUPAPI 02262 BOOL 02263 WINAPI 02264 SetupSetPlatformPathOverrideW( 02265 IN PCWSTR Override OPTIONAL 02266 ); 02267 02268 #ifdef UNICODE 02269 #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW 02270 #else 02271 #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA 02272 #endif 02273 02274 02275 WINSETUPAPI 02276 BOOL 02277 WINAPI 02278 SetupQueueCopyA( 02279 IN HSPFILEQ QueueHandle, 02280 IN PCSTR SourceRootPath, 02281 IN PCSTR SourcePath, OPTIONAL 02282 IN PCSTR SourceFilename, 02283 IN PCSTR SourceDescription, OPTIONAL 02284 IN PCSTR SourceTagfile, OPTIONAL 02285 IN PCSTR TargetDirectory, 02286 IN PCSTR TargetFilename, OPTIONAL 02287 IN DWORD CopyStyle 02288 ); 02289 02290 WINSETUPAPI 02291 BOOL 02292 WINAPI 02293 SetupQueueCopyW( 02294 IN HSPFILEQ QueueHandle, 02295 IN PCWSTR SourceRootPath, 02296 IN PCWSTR SourcePath, OPTIONAL 02297 IN PCWSTR SourceFilename, 02298 IN PCWSTR SourceDescription, OPTIONAL 02299 IN PCWSTR SourceTagfile, OPTIONAL 02300 IN PCWSTR TargetDirectory, 02301 IN PCWSTR TargetFilename, OPTIONAL 02302 IN DWORD CopyStyle 02303 ); 02304 02305 #ifdef UNICODE 02306 #define SetupQueueCopy SetupQueueCopyW 02307 #else 02308 #define SetupQueueCopy SetupQueueCopyA 02309 #endif 02310 02311 02312 WINSETUPAPI 02313 BOOL 02314 WINAPI 02315 SetupQueueDefaultCopyA( 02316 IN HSPFILEQ QueueHandle, 02317 IN HINF InfHandle, 02318 IN PCSTR SourceRootPath, 02319 IN PCSTR SourceFilename, 02320 IN PCSTR TargetFilename, 02321 IN DWORD CopyStyle 02322 ); 02323 02324 WINSETUPAPI 02325 BOOL 02326 WINAPI 02327 SetupQueueDefaultCopyW( 02328 IN HSPFILEQ QueueHandle, 02329 IN HINF InfHandle, 02330 IN PCWSTR SourceRootPath, 02331 IN PCWSTR SourceFilename, 02332 IN PCWSTR TargetFilename, 02333 IN DWORD CopyStyle 02334 ); 02335 02336 #ifdef UNICODE 02337 #define SetupQueueDefaultCopy SetupQueueDefaultCopyW 02338 #else 02339 #define SetupQueueDefaultCopy SetupQueueDefaultCopyA 02340 #endif 02341 02342 02343 WINSETUPAPI 02344 BOOL 02345 WINAPI 02346 SetupQueueCopySectionA( 02347 IN HSPFILEQ QueueHandle, 02348 IN PCSTR SourceRootPath, 02349 IN HINF InfHandle, 02350 IN HINF ListInfHandle, OPTIONAL 02351 IN PCSTR Section, 02352 IN DWORD CopyStyle 02353 ); 02354 02355 WINSETUPAPI 02356 BOOL 02357 WINAPI 02358 SetupQueueCopySectionW( 02359 IN HSPFILEQ QueueHandle, 02360 IN PCWSTR SourceRootPath, 02361 IN HINF InfHandle, 02362 IN HINF ListInfHandle, OPTIONAL 02363 IN PCWSTR Section, 02364 IN DWORD CopyStyle 02365 ); 02366 02367 #ifdef UNICODE 02368 #define SetupQueueCopySection SetupQueueCopySectionW 02369 #else 02370 #define SetupQueueCopySection SetupQueueCopySectionA 02371 #endif 02372 02373 02374 WINSETUPAPI 02375 BOOL 02376 WINAPI 02377 SetupQueueDeleteA( 02378 IN HSPFILEQ QueueHandle, 02379 IN PCSTR PathPart1, 02380 IN PCSTR PathPart2 OPTIONAL 02381 ); 02382 02383 WINSETUPAPI 02384 BOOL 02385 WINAPI 02386 SetupQueueDeleteW( 02387 IN HSPFILEQ QueueHandle, 02388 IN PCWSTR PathPart1, 02389 IN PCWSTR PathPart2 OPTIONAL 02390 ); 02391 02392 #ifdef UNICODE 02393 #define SetupQueueDelete SetupQueueDeleteW 02394 #else 02395 #define SetupQueueDelete SetupQueueDeleteA 02396 #endif 02397 02398 02399 WINSETUPAPI 02400 BOOL 02401 WINAPI 02402 SetupQueueDeleteSectionA( 02403 IN HSPFILEQ QueueHandle, 02404 IN HINF InfHandle, 02405 IN HINF ListInfHandle, OPTIONAL 02406 IN PCSTR Section 02407 ); 02408 02409 WINSETUPAPI 02410 BOOL 02411 WINAPI 02412 SetupQueueDeleteSectionW( 02413 IN HSPFILEQ QueueHandle, 02414 IN HINF InfHandle, 02415 IN HINF ListInfHandle, OPTIONAL 02416 IN PCWSTR Section 02417 ); 02418 02419 #ifdef UNICODE 02420 #define SetupQueueDeleteSection SetupQueueDeleteSectionW 02421 #else 02422 #define SetupQueueDeleteSection SetupQueueDeleteSectionA 02423 #endif 02424 02425 02426 WINSETUPAPI 02427 BOOL 02428 WINAPI 02429 SetupQueueRenameA( 02430 IN HSPFILEQ QueueHandle, 02431 IN PCSTR SourcePath, 02432 IN PCSTR SourceFilename, OPTIONAL 02433 IN PCSTR TargetPath, OPTIONAL 02434 IN PCSTR TargetFilename 02435 ); 02436 02437 WINSETUPAPI 02438 BOOL 02439 WINAPI 02440 SetupQueueRenameW( 02441 IN HSPFILEQ QueueHandle, 02442 IN PCWSTR SourcePath, 02443 IN PCWSTR SourceFilename, OPTIONAL 02444 IN PCWSTR TargetPath, OPTIONAL 02445 IN PCWSTR TargetFilename 02446 ); 02447 02448 #ifdef UNICODE 02449 #define SetupQueueRename SetupQueueRenameW 02450 #else 02451 #define SetupQueueRename SetupQueueRenameA 02452 #endif 02453 02454 02455 WINSETUPAPI 02456 BOOL 02457 WINAPI 02458 SetupQueueRenameSectionA( 02459 IN HSPFILEQ QueueHandle, 02460 IN HINF InfHandle, 02461 IN HINF ListInfHandle, OPTIONAL 02462 IN PCSTR Section 02463 ); 02464 02465 WINSETUPAPI 02466 BOOL 02467 WINAPI 02468 SetupQueueRenameSectionW( 02469 IN HSPFILEQ QueueHandle, 02470 IN HINF InfHandle, 02471 IN HINF ListInfHandle, OPTIONAL 02472 IN PCWSTR Section 02473 ); 02474 02475 #ifdef UNICODE 02476 #define SetupQueueRenameSection SetupQueueRenameSectionW 02477 #else 02478 #define SetupQueueRenameSection SetupQueueRenameSectionA 02479 #endif 02480 02481 02482 WINSETUPAPI 02483 BOOL 02484 WINAPI 02485 SetupCommitFileQueueA( 02486 IN HWND Owner, OPTIONAL 02487 IN HSPFILEQ QueueHandle, 02488 IN PSP_FILE_CALLBACK_A MsgHandler, 02489 IN PVOID Context 02490 ); 02491 02492 WINSETUPAPI 02493 BOOL 02494 WINAPI 02495 SetupCommitFileQueueW( 02496 IN HWND Owner, OPTIONAL 02497 IN HSPFILEQ QueueHandle, 02498 IN PSP_FILE_CALLBACK_W MsgHandler, 02499 IN PVOID Context 02500 ); 02501 02502 #ifdef UNICODE 02503 #define SetupCommitFileQueue SetupCommitFileQueueW 02504 #else 02505 #define SetupCommitFileQueue SetupCommitFileQueueA 02506 #endif 02507 02508 02509 WINSETUPAPI 02510 BOOL 02511 WINAPI 02512 SetupScanFileQueueA( 02513 IN HSPFILEQ FileQueue, 02514 IN DWORD Flags, 02515 IN HWND Window, OPTIONAL 02516 IN PSP_FILE_CALLBACK_A CallbackRoutine, OPTIONAL 02517 IN PVOID CallbackContext, OPTIONAL 02518 OUT PDWORD Result 02519 ); 02520 02521 WINSETUPAPI 02522 BOOL 02523 WINAPI 02524 SetupScanFileQueueW( 02525 IN HSPFILEQ FileQueue, 02526 IN DWORD Flags, 02527 IN HWND Window, OPTIONAL 02528 IN PSP_FILE_CALLBACK_W CallbackRoutine, OPTIONAL 02529 IN PVOID CallbackContext, OPTIONAL 02530 OUT PDWORD Result 02531 ); 02532 02533 #ifdef UNICODE 02534 #define SetupScanFileQueue SetupScanFileQueueW 02535 #else 02536 #define SetupScanFileQueue SetupScanFileQueueA 02537 #endif 02538 02539 // 02540 // Define flags for SetupScanFileQueue. 02541 // 02542 #define SPQ_SCAN_FILE_PRESENCE 0x00000001 02543 #define SPQ_SCAN_FILE_VALIDITY 0x00000002 02544 #define SPQ_SCAN_USE_CALLBACK 0x00000004 02545 #define SPQ_SCAN_INFORM_USER 0x00000010 02546 02547 // 02548 // Define flags used with Param2 for SPFILENOTIFY_QUEUESCAN 02549 // 02550 #define SPQ_DELAYED_COPY 0x00000001 // file was in use; registered for delayed copy 02551 02552 02553 // 02554 // Define OEM Source Type values for use in SetupCopyOEMInf. 02555 // 02556 #define SPOST_NONE 0 02557 #define SPOST_PATH 1 02558 #define SPOST_URL 2 02559 #define SPOST_MAX 3 02560 02561 WINSETUPAPI 02562 BOOL 02563 WINAPI 02564 SetupCopyOEMInfA( 02565 IN PCSTR SourceInfFileName, 02566 IN PCSTR OEMSourceMediaLocation, OPTIONAL 02567 IN DWORD OEMSourceMediaType, 02568 IN DWORD CopyStyle, 02569 OUT PSTR DestinationInfFileName, OPTIONAL 02570 IN DWORD DestinationInfFileNameSize, 02571 OUT PDWORD RequiredSize, OPTIONAL 02572 OUT PSTR *DestinationInfFileNameComponent OPTIONAL 02573 ); 02574 02575 WINSETUPAPI 02576 BOOL 02577 WINAPI 02578 SetupCopyOEMInfW( 02579 IN PCWSTR SourceInfFileName, 02580 IN PCWSTR OEMSourceMediaLocation, OPTIONAL 02581 IN DWORD OEMSourceMediaType, 02582 IN DWORD CopyStyle, 02583 OUT PWSTR DestinationInfFileName, OPTIONAL 02584 IN DWORD DestinationInfFileNameSize, 02585 OUT PDWORD RequiredSize, OPTIONAL 02586 OUT PWSTR *DestinationInfFileNameComponent OPTIONAL 02587 ); 02588 02589 #ifdef UNICODE 02590 #define SetupCopyOEMInf SetupCopyOEMInfW 02591 #else 02592 #define SetupCopyOEMInf SetupCopyOEMInfA 02593 #endif 02594 02595 02596 // 02597 // Disk space list APIs 02598 // 02599 WINSETUPAPI 02600 HDSKSPC 02601 WINAPI 02602 SetupCreateDiskSpaceListA( 02603 IN PVOID Reserved1, 02604 IN DWORD Reserved2, 02605 IN UINT Flags 02606 ); 02607 02608 WINSETUPAPI 02609 HDSKSPC 02610 WINAPI 02611 SetupCreateDiskSpaceListW( 02612 IN PVOID Reserved1, 02613 IN DWORD Reserved2, 02614 IN UINT Flags 02615 ); 02616 02617 #ifdef UNICODE 02618 #define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW 02619 #else 02620 #define SetupCreateDiskSpaceList SetupCreateDiskSpaceListA 02621 #endif 02622 02623 // 02624 // Flags for SetupCreateDiskSpaceList 02625 // 02626 #define SPDSL_IGNORE_DISK 0x00000001 // ignore deletes and on-disk files in copies 02627 #define SPDSL_DISALLOW_NEGATIVE_ADJUST 0x00000002 02628 02629 02630 WINSETUPAPI 02631 HDSKSPC 02632 WINAPI 02633 SetupDuplicateDiskSpaceListA( 02634 IN HDSKSPC DiskSpace, 02635 IN PVOID Reserved1, 02636 IN DWORD Reserved2, 02637 IN UINT Flags 02638 ); 02639 02640 WINSETUPAPI 02641 HDSKSPC 02642 WINAPI 02643 SetupDuplicateDiskSpaceListW( 02644 IN HDSKSPC DiskSpace, 02645 IN PVOID Reserved1, 02646 IN DWORD Reserved2, 02647 IN UINT Flags 02648 ); 02649 02650 #ifdef UNICODE 02651 #define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListW 02652 #else 02653 #define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListA 02654 #endif 02655 02656 02657 WINSETUPAPI 02658 BOOL 02659 WINAPI 02660 SetupDestroyDiskSpaceList( 02661 IN OUT HDSKSPC DiskSpace 02662 ); 02663 02664 02665 WINSETUPAPI 02666 BOOL 02667 WINAPI 02668 SetupQueryDrivesInDiskSpaceListA( 02669 IN HDSKSPC DiskSpace, 02670 OUT PSTR ReturnBuffer, OPTIONAL 02671 IN DWORD ReturnBufferSize, 02672 OUT PDWORD RequiredSize OPTIONAL 02673 ); 02674 02675 WINSETUPAPI 02676 BOOL 02677 WINAPI 02678 SetupQueryDrivesInDiskSpaceListW( 02679 IN HDSKSPC DiskSpace, 02680 OUT PWSTR ReturnBuffer, OPTIONAL 02681 IN DWORD ReturnBufferSize, 02682 OUT PDWORD RequiredSize OPTIONAL 02683 ); 02684 02685 #ifdef UNICODE 02686 #define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListW 02687 #else 02688 #define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListA 02689 #endif 02690 02691 02692 WINSETUPAPI 02693 BOOL 02694 WINAPI 02695 SetupQuerySpaceRequiredOnDriveA( 02696 IN HDSKSPC DiskSpace, 02697 IN PCSTR DriveSpec, 02698 OUT LONGLONG *SpaceRequired, 02699 IN PVOID Reserved1, 02700 IN UINT Reserved2 02701 ); 02702 02703 WINSETUPAPI 02704 BOOL 02705 WINAPI 02706 SetupQuerySpaceRequiredOnDriveW( 02707 IN HDSKSPC DiskSpace, 02708 IN PCWSTR DriveSpec, 02709 OUT LONGLONG *SpaceRequired, 02710 IN PVOID Reserved1, 02711 IN UINT Reserved2 02712 ); 02713 02714 #ifdef UNICODE 02715 #define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveW 02716 #else 02717 #define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveA 02718 #endif 02719 02720 02721 WINSETUPAPI 02722 BOOL 02723 WINAPI 02724 SetupAdjustDiskSpaceListA( 02725 IN HDSKSPC DiskSpace, 02726 IN LPCSTR DriveRoot, 02727 IN LONGLONG Amount, 02728 IN PVOID Reserved1, 02729 IN UINT Reserved2 02730 ); 02731 02732 WINSETUPAPI 02733 BOOL 02734 WINAPI 02735 SetupAdjustDiskSpaceListW( 02736 IN HDSKSPC DiskSpace, 02737 IN LPCWSTR DriveRoot, 02738 IN LONGLONG Amount, 02739 IN PVOID Reserved1, 02740 IN UINT Reserved2 02741 ); 02742 02743 #ifdef UNICODE 02744 #define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW 02745 #else 02746 #define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListA 02747 #endif 02748 02749 02750 WINSETUPAPI 02751 BOOL 02752 WINAPI 02753 SetupAddToDiskSpaceListA( 02754 IN HDSKSPC DiskSpace, 02755 IN PCSTR TargetFilespec, 02756 IN LONGLONG FileSize, 02757 IN UINT Operation, 02758 IN PVOID Reserved1, 02759 IN UINT Reserved2 02760 ); 02761 02762 WINSETUPAPI 02763 BOOL 02764 WINAPI 02765 SetupAddToDiskSpaceListW( 02766 IN HDSKSPC DiskSpace, 02767 IN PCWSTR TargetFilespec, 02768 IN LONGLONG FileSize, 02769 IN UINT Operation, 02770 IN PVOID Reserved1, 02771 IN UINT Reserved2 02772 ); 02773 02774 #ifdef UNICODE 02775 #define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW 02776 #else 02777 #define SetupAddToDiskSpaceList SetupAddToDiskSpaceListA 02778 #endif 02779 02780 02781 WINSETUPAPI 02782 BOOL 02783 WINAPI 02784 SetupAddSectionToDiskSpaceListA( 02785 IN HDSKSPC DiskSpace, 02786 IN HINF InfHandle, 02787 IN HINF ListInfHandle, OPTIONAL 02788 IN PCSTR SectionName, 02789 IN UINT Operation, 02790 IN PVOID Reserved1, 02791 IN UINT Reserved2 02792 ); 02793 02794 WINSETUPAPI 02795 BOOL 02796 WINAPI 02797 SetupAddSectionToDiskSpaceListW( 02798 IN HDSKSPC DiskSpace, 02799 IN HINF InfHandle, 02800 IN HINF ListInfHandle, OPTIONAL 02801 IN PCWSTR SectionName, 02802 IN UINT Operation, 02803 IN PVOID Reserved1, 02804 IN UINT Reserved2 02805 ); 02806 02807 #ifdef UNICODE 02808 #define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW 02809 #else 02810 #define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListA 02811 #endif 02812 02813 02814 WINSETUPAPI 02815 BOOL 02816 WINAPI 02817 SetupAddInstallSectionToDiskSpaceListA( 02818 IN HDSKSPC DiskSpace, 02819 IN HINF InfHandle, 02820 IN HINF LayoutInfHandle, OPTIONAL 02821 IN PCSTR SectionName, 02822 IN PVOID Reserved1, 02823 IN UINT Reserved2 02824 ); 02825 02826 WINSETUPAPI 02827 BOOL 02828 WINAPI 02829 SetupAddInstallSectionToDiskSpaceListW( 02830 IN HDSKSPC DiskSpace, 02831 IN HINF InfHandle, 02832 IN HINF LayoutInfHandle, OPTIONAL 02833 IN PCWSTR SectionName, 02834 IN PVOID Reserved1, 02835 IN UINT Reserved2 02836 ); 02837 02838 #ifdef UNICODE 02839 #define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW 02840 #else 02841 #define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA 02842 #endif 02843 02844 02845 WINSETUPAPI 02846 BOOL 02847 WINAPI 02848 SetupRemoveFromDiskSpaceListA( 02849 IN HDSKSPC DiskSpace, 02850 IN PCSTR TargetFilespec, 02851 IN UINT Operation, 02852 IN PVOID Reserved1, 02853 IN UINT Reserved2 02854 ); 02855 02856 WINSETUPAPI 02857 BOOL 02858 WINAPI 02859 SetupRemoveFromDiskSpaceListW( 02860 IN HDSKSPC DiskSpace, 02861 IN PCWSTR TargetFilespec, 02862 IN UINT Operation, 02863 IN PVOID Reserved1, 02864 IN UINT Reserved2 02865 ); 02866 02867 #ifdef UNICODE 02868 #define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListW 02869 #else 02870 #define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListA 02871 #endif 02872 02873 02874 WINSETUPAPI 02875 BOOL 02876 WINAPI 02877 SetupRemoveSectionFromDiskSpaceListA( 02878 IN HDSKSPC DiskSpace, 02879 IN HINF InfHandle, 02880 IN HINF ListInfHandle, OPTIONAL 02881 IN PCSTR SectionName, 02882 IN UINT Operation, 02883 IN PVOID Reserved1, 02884 IN UINT Reserved2 02885 ); 02886 02887 WINSETUPAPI 02888 BOOL 02889 WINAPI 02890 SetupRemoveSectionFromDiskSpaceListW( 02891 IN HDSKSPC DiskSpace, 02892 IN HINF InfHandle, 02893 IN HINF ListInfHandle, OPTIONAL 02894 IN PCWSTR SectionName, 02895 IN UINT Operation, 02896 IN PVOID Reserved1, 02897 IN UINT Reserved2 02898 ); 02899 02900 #ifdef UNICODE 02901 #define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListW 02902 #else 02903 #define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListA 02904 #endif 02905 02906 02907 WINSETUPAPI 02908 BOOL 02909 WINAPI 02910 SetupRemoveInstallSectionFromDiskSpaceListA( 02911 IN HDSKSPC DiskSpace, 02912 IN HINF InfHandle, 02913 IN HINF LayoutInfHandle, OPTIONAL 02914 IN PCSTR SectionName, 02915 IN PVOID Reserved1, 02916 IN UINT Reserved2 02917 ); 02918 02919 WINSETUPAPI 02920 BOOL 02921 WINAPI 02922 SetupRemoveInstallSectionFromDiskSpaceListW( 02923 IN HDSKSPC DiskSpace, 02924 IN HINF InfHandle, 02925 IN HINF LayoutInfHandle, OPTIONAL 02926 IN PCWSTR SectionName, 02927 IN PVOID Reserved1, 02928 IN UINT Reserved2 02929 ); 02930 02931 #ifdef UNICODE 02932 #define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListW 02933 #else 02934 #define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListA 02935 #endif 02936 02937 02938 // 02939 // Cabinet APIs 02940 // 02941 02942 WINSETUPAPI 02943 BOOL 02944 WINAPI 02945 SetupIterateCabinetA( 02946 IN PCSTR CabinetFile, 02947 IN DWORD Reserved, 02948 IN PSP_FILE_CALLBACK_A MsgHandler, 02949 IN PVOID Context 02950 ); 02951 02952 WINSETUPAPI 02953 BOOL 02954 WINAPI 02955 SetupIterateCabinetW( 02956 IN PCWSTR CabinetFile, 02957 IN DWORD Reserved, 02958 IN PSP_FILE_CALLBACK_W MsgHandler, 02959 IN PVOID Context 02960 ); 02961 02962 #ifdef UNICODE 02963 #define SetupIterateCabinet SetupIterateCabinetW 02964 #else 02965 #define SetupIterateCabinet SetupIterateCabinetA 02966 #endif 02967 02968 02969 WINSETUPAPI 02970 INT 02971 WINAPI 02972 SetupPromptReboot( 02973 IN HSPFILEQ FileQueue, OPTIONAL 02974 IN HWND Owner, 02975 IN BOOL ScanOnly 02976 ); 02977 02978 // 02979 // Define flags that are returned by SetupPromptReboot 02980 // 02981 #define SPFILEQ_FILE_IN_USE 0x00000001 02982 #define SPFILEQ_REBOOT_RECOMMENDED 0x00000002 02983 #define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004 02984 02985 02986 WINSETUPAPI 02987 PVOID 02988 WINAPI 02989 SetupInitDefaultQueueCallback( 02990 IN HWND OwnerWindow 02991 ); 02992 02993 WINSETUPAPI 02994 PVOID 02995 WINAPI 02996 SetupInitDefaultQueueCallbackEx( 02997 IN HWND OwnerWindow, 02998 IN HWND AlternateProgressWindow, OPTIONAL 02999 IN UINT ProgressMessage, 03000 IN DWORD Reserved1, 03001 IN PVOID Reserved2 03002 ); 03003 03004 WINSETUPAPI 03005 VOID 03006 WINAPI 03007 SetupTermDefaultQueueCallback( 03008 IN PVOID Context 03009 ); 03010 03011 WINSETUPAPI 03012 UINT 03013 WINAPI 03014 SetupDefaultQueueCallbackA( 03015 IN PVOID Context, 03016 IN UINT Notification, 03017 IN UINT Param1, 03018 IN UINT Param2 03019 ); 03020 03021 WINSETUPAPI 03022 UINT 03023 WINAPI 03024 SetupDefaultQueueCallbackW( 03025 IN PVOID Context, 03026 IN UINT Notification, 03027 IN UINT Param1, 03028 IN UINT Param2 03029 ); 03030 03031 #ifdef UNICODE 03032 #define SetupDefaultQueueCallback SetupDefaultQueueCallbackW 03033 #else 03034 #define SetupDefaultQueueCallback SetupDefaultQueueCallbackA 03035 #endif 03036 03037 03038 // 03039 // Flags for AddReg section lines in INF. The corresponding value 03040 // is <ValueType> in the AddReg line format given below: 03041 // 03042 // <RegRootString>,<SubKey>,<ValueName>,<ValueType>,<Value>... 03043 // 03044 // The low word contains basic flags concerning the general data type 03045 // and AddReg action. The high word contains values that more specifically 03046 // identify the data type of the registry value. The high word is ignored 03047 // by the 16-bit Windows 95 SETUPX APIs. 03048 // 03049 #define FLG_ADDREG_BINVALUETYPE ( 0x00000001 ) 03050 #define FLG_ADDREG_NOCLOBBER ( 0x00000002 ) 03051 #define FLG_ADDREG_DELVAL ( 0x00000004 ) 03052 #define FLG_ADDREG_APPEND ( 0x00000008 ) // Currently supported only 03053 // for REG_MULTI_SZ values. 03054 #define FLG_ADDREG_KEYONLY ( 0x00000010 ) // Just create the key, ignore value 03055 #define FLG_ADDREG_OVERWRITEONLY ( 0x00000020 ) // Set only if value already exists 03056 03057 #define FLG_ADDREG_TYPE_MASK ( 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE ) 03058 #define FLG_ADDREG_TYPE_SZ ( 0x00000000 ) 03059 #define FLG_ADDREG_TYPE_MULTI_SZ ( 0x00010000 ) 03060 #define FLG_ADDREG_TYPE_EXPAND_SZ ( 0x00020000 ) 03061 #define FLG_ADDREG_TYPE_BINARY ( 0x00000000 | FLG_ADDREG_BINVALUETYPE ) 03062 #define FLG_ADDREG_TYPE_DWORD ( 0x00010000 | FLG_ADDREG_BINVALUETYPE ) 03063 #define FLG_ADDREG_TYPE_NONE ( 0x00020000 | FLG_ADDREG_BINVALUETYPE ) 03064 03065 // 03066 // The INF may supply any arbitrary data type ordinal in the highword except 03067 // for the following: REG_NONE, REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ. If this 03068 // technique is used, then the data is given in binary format, one byte per 03069 // field. 03070 // 03071 03072 03073 WINSETUPAPI 03074 BOOL 03075 WINAPI 03076 SetupInstallFromInfSectionA( 03077 IN HWND Owner, 03078 IN HINF InfHandle, 03079 IN PCSTR SectionName, 03080 IN UINT Flags, 03081 IN HKEY RelativeKeyRoot, OPTIONAL 03082 IN PCSTR SourceRootPath, OPTIONAL 03083 IN UINT CopyFlags, 03084 IN PSP_FILE_CALLBACK_A MsgHandler, 03085 IN PVOID Context, 03086 IN HDEVINFO DeviceInfoSet, OPTIONAL 03087 IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03088 ); 03089 03090 WINSETUPAPI 03091 BOOL 03092 WINAPI 03093 SetupInstallFromInfSectionW( 03094 IN HWND Owner, 03095 IN HINF InfHandle, 03096 IN PCWSTR SectionName, 03097 IN UINT Flags, 03098 IN HKEY RelativeKeyRoot, OPTIONAL 03099 IN PCWSTR SourceRootPath, OPTIONAL 03100 IN UINT CopyFlags, 03101 IN PSP_FILE_CALLBACK_W MsgHandler, 03102 IN PVOID Context, 03103 IN HDEVINFO DeviceInfoSet, OPTIONAL 03104 IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03105 ); 03106 03107 #ifdef UNICODE 03108 #define SetupInstallFromInfSection SetupInstallFromInfSectionW 03109 #else 03110 #define SetupInstallFromInfSection SetupInstallFromInfSectionA 03111 #endif 03112 03113 // 03114 // Flags for SetupInstallFromInfSection 03115 // 03116 #define SPINST_LOGCONFIG 0x00000001 03117 #define SPINST_INIFILES 0x00000002 03118 #define SPINST_REGISTRY 0x00000004 03119 #define SPINST_INI2REG 0x00000008 03120 #define SPINST_FILES 0x00000010 03121 #define SPINST_ALL 0x0000001f 03122 #define SPINST_SINGLESECTION 0x00010000 03123 #define SPINST_LOGCONFIG_IS_FORCED 0x00020000 03124 #define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000 03125 03126 03127 WINSETUPAPI 03128 BOOL 03129 WINAPI 03130 SetupInstallFilesFromInfSectionA( 03131 IN HINF InfHandle, 03132 IN HINF LayoutInfHandle, OPTIONAL 03133 IN HSPFILEQ FileQueue, 03134 IN PCSTR SectionName, 03135 IN PCSTR SourceRootPath, OPTIONAL 03136 IN UINT CopyFlags 03137 ); 03138 03139 WINSETUPAPI 03140 BOOL 03141 WINAPI 03142 SetupInstallFilesFromInfSectionW( 03143 IN HINF InfHandle, 03144 IN HINF LayoutInfHandle, OPTIONAL 03145 IN HSPFILEQ FileQueue, 03146 IN PCWSTR SectionName, 03147 IN PCWSTR SourceRootPath, OPTIONAL 03148 IN UINT CopyFlags 03149 ); 03150 03151 #ifdef UNICODE 03152 #define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionW 03153 #else 03154 #define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionA 03155 #endif 03156 03157 03158 // 03159 // Flags for SetupInstallServicesFromInfSection(Ex). These flags are also used in 03160 // the flags field of AddService or DelService lines in a device INF. Some of these 03161 // flags are not permitted in the non-Ex API. These flags are marked as such below. 03162 // 03163 #define SPSVCINST_TAGTOFRONT (0x00000001) // (AddService) move service's tag to front of its group order list 03164 #define SPSVCINST_ASSOCSERVICE (0x00000002) // (AddService) **Ex API only** mark this service as the function 03165 // driver for the device being installed. 03166 #define SPSVCINST_DELETEEVENTLOGENTRY (0x00000004) // (DelService) delete the associated event log entry for a service 03167 // specified in a DelService entry 03168 03169 WINSETUPAPI 03170 BOOL 03171 WINAPI 03172 SetupInstallServicesFromInfSectionA( 03173 IN HINF InfHandle, 03174 IN PCSTR SectionName, 03175 IN DWORD Flags 03176 ); 03177 03178 WINSETUPAPI 03179 BOOL 03180 WINAPI 03181 SetupInstallServicesFromInfSectionW( 03182 IN HINF InfHandle, 03183 IN PCWSTR SectionName, 03184 IN DWORD Flags 03185 ); 03186 03187 #ifdef UNICODE 03188 #define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionW 03189 #else 03190 #define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionA 03191 #endif 03192 03193 03194 WINSETUPAPI 03195 BOOL 03196 WINAPI 03197 SetupInstallServicesFromInfSectionExA( 03198 IN HINF InfHandle, 03199 IN PCSTR SectionName, 03200 IN DWORD Flags, 03201 IN HDEVINFO DeviceInfoSet, OPTIONAL 03202 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03203 IN PVOID Reserved1, 03204 IN PVOID Reserved2 03205 ); 03206 03207 WINSETUPAPI 03208 BOOL 03209 WINAPI 03210 SetupInstallServicesFromInfSectionExW( 03211 IN HINF InfHandle, 03212 IN PCWSTR SectionName, 03213 IN DWORD Flags, 03214 IN HDEVINFO DeviceInfoSet, OPTIONAL 03215 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03216 IN PVOID Reserved1, 03217 IN PVOID Reserved2 03218 ); 03219 03220 #ifdef UNICODE 03221 #define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExW 03222 #else 03223 #define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExA 03224 #endif 03225 03226 03227 // 03228 // Define handle type for Setup file log. 03229 // 03230 typedef PVOID HSPFILELOG; 03231 03232 WINSETUPAPI 03233 HSPFILELOG 03234 WINAPI 03235 SetupInitializeFileLogA( 03236 IN PCSTR LogFileName, OPTIONAL 03237 IN DWORD Flags 03238 ); 03239 03240 WINSETUPAPI 03241 HSPFILELOG 03242 WINAPI 03243 SetupInitializeFileLogW( 03244 IN PCWSTR LogFileName, OPTIONAL 03245 IN DWORD Flags 03246 ); 03247 03248 #ifdef UNICODE 03249 #define SetupInitializeFileLog SetupInitializeFileLogW 03250 #else 03251 #define SetupInitializeFileLog SetupInitializeFileLogA 03252 #endif 03253 03254 // 03255 // Flags for SetupInitializeFileLog 03256 // 03257 #define SPFILELOG_SYSTEMLOG 0x00000001 // use system log -- must be Administrator 03258 #define SPFILELOG_FORCENEW 0x00000002 // not valid with SPFILELOG_SYSTEMLOG 03259 #define SPFILELOG_QUERYONLY 0x00000004 // allows non-administrators to read system log 03260 03261 03262 WINSETUPAPI 03263 BOOL 03264 WINAPI 03265 SetupTerminateFileLog( 03266 IN HSPFILELOG FileLogHandle 03267 ); 03268 03269 03270 WINSETUPAPI 03271 BOOL 03272 WINAPI 03273 SetupLogFileA( 03274 IN HSPFILELOG FileLogHandle, 03275 IN PCSTR LogSectionName, OPTIONAL 03276 IN PCSTR SourceFilename, 03277 IN PCSTR TargetFilename, 03278 IN DWORD Checksum, OPTIONAL 03279 IN PCSTR DiskTagfile, OPTIONAL 03280 IN PCSTR DiskDescription, OPTIONAL 03281 IN PCSTR OtherInfo, OPTIONAL 03282 IN DWORD Flags 03283 ); 03284 03285 WINSETUPAPI 03286 BOOL 03287 WINAPI 03288 SetupLogFileW( 03289 IN HSPFILELOG FileLogHandle, 03290 IN PCWSTR LogSectionName, OPTIONAL 03291 IN PCWSTR SourceFilename, 03292 IN PCWSTR TargetFilename, 03293 IN DWORD Checksum, OPTIONAL 03294 IN PCWSTR DiskTagfile, OPTIONAL 03295 IN PCWSTR DiskDescription, OPTIONAL 03296 IN PCWSTR OtherInfo, OPTIONAL 03297 IN DWORD Flags 03298 ); 03299 03300 #ifdef UNICODE 03301 #define SetupLogFile SetupLogFileW 03302 #else 03303 #define SetupLogFile SetupLogFileA 03304 #endif 03305 03306 // 03307 // Flags for SetupLogFile 03308 // 03309 #define SPFILELOG_OEMFILE 0x00000001 03310 03311 03312 WINSETUPAPI 03313 BOOL 03314 WINAPI 03315 SetupRemoveFileLogEntryA( 03316 IN HSPFILELOG FileLogHandle, 03317 IN PCSTR LogSectionName, OPTIONAL 03318 IN PCSTR TargetFilename OPTIONAL 03319 ); 03320 03321 WINSETUPAPI 03322 BOOL 03323 WINAPI 03324 SetupRemoveFileLogEntryW( 03325 IN HSPFILELOG FileLogHandle, 03326 IN PCWSTR LogSectionName, OPTIONAL 03327 IN PCWSTR TargetFilename OPTIONAL 03328 ); 03329 03330 #ifdef UNICODE 03331 #define SetupRemoveFileLogEntry SetupRemoveFileLogEntryW 03332 #else 03333 #define SetupRemoveFileLogEntry SetupRemoveFileLogEntryA 03334 #endif 03335 03336 03337 // 03338 // Items retrievable from SetupQueryFileLog() 03339 // 03340 typedef enum { 03341 SetupFileLogSourceFilename, 03342 SetupFileLogChecksum, 03343 SetupFileLogDiskTagfile, 03344 SetupFileLogDiskDescription, 03345 SetupFileLogOtherInfo, 03346 SetupFileLogMax 03347 } SetupFileLogInfo; 03348 03349 WINSETUPAPI 03350 BOOL 03351 WINAPI 03352 SetupQueryFileLogA( 03353 IN HSPFILELOG FileLogHandle, 03354 IN PCSTR LogSectionName, OPTIONAL 03355 IN PCSTR TargetFilename, 03356 IN SetupFileLogInfo DesiredInfo, 03357 OUT PSTR DataOut, OPTIONAL 03358 IN DWORD ReturnBufferSize, 03359 OUT PDWORD RequiredSize OPTIONAL 03360 ); 03361 03362 WINSETUPAPI 03363 BOOL 03364 WINAPI 03365 SetupQueryFileLogW( 03366 IN HSPFILELOG FileLogHandle, 03367 IN PCWSTR LogSectionName, OPTIONAL 03368 IN PCWSTR TargetFilename, 03369 IN SetupFileLogInfo DesiredInfo, 03370 OUT PWSTR DataOut, OPTIONAL 03371 IN DWORD ReturnBufferSize, 03372 OUT PDWORD RequiredSize OPTIONAL 03373 ); 03374 03375 #ifdef UNICODE 03376 #define SetupQueryFileLog SetupQueryFileLogW 03377 #else 03378 #define SetupQueryFileLog SetupQueryFileLogA 03379 #endif 03380 03381 // 03382 // Text logging APIs 03383 // 03384 03385 typedef enum { 03386 LogSevInformation, 03387 LogSevWarning, 03388 LogSevError, 03389 LogSevFatalError, 03390 LogSevMaximum 03391 } LogSeverity; 03392 03393 WINSETUPAPI 03394 BOOL 03395 WINAPI 03396 SetupOpenLog ( 03397 BOOL Erase 03398 ); 03399 03400 WINSETUPAPI 03401 BOOL 03402 WINAPI 03403 SetupLogErrorA ( 03404 IN LPCSTR MessageString, 03405 IN LogSeverity Severity 03406 ); 03407 03408 WINSETUPAPI 03409 BOOL 03410 WINAPI 03411 SetupLogErrorW ( 03412 IN LPCWSTR MessageString, 03413 IN LogSeverity Severity 03414 ); 03415 03416 #ifdef UNICODE 03417 #define SetupLogError SetupLogErrorW 03418 #else 03419 #define SetupLogError SetupLogErrorA 03420 #endif 03421 03422 WINSETUPAPI 03423 VOID 03424 WINAPI 03425 SetupCloseLog ( 03426 VOID 03427 ); 03428 03429 03430 03431 03432 03433 // 03434 // Device Installer APIs 03435 // 03436 03437 WINSETUPAPI 03438 HDEVINFO 03439 WINAPI 03440 SetupDiCreateDeviceInfoList( 03441 IN LPGUID ClassGuid, OPTIONAL 03442 IN HWND hwndParent OPTIONAL 03443 ); 03444 03445 03446 WINSETUPAPI 03447 HDEVINFO 03448 WINAPI 03449 SetupDiCreateDeviceInfoListExA( 03450 IN LPGUID ClassGuid, OPTIONAL 03451 IN HWND hwndParent, OPTIONAL 03452 IN PCSTR MachineName, OPTIONAL 03453 IN PVOID Reserved 03454 ); 03455 03456 WINSETUPAPI 03457 HDEVINFO 03458 WINAPI 03459 SetupDiCreateDeviceInfoListExW( 03460 IN LPGUID ClassGuid, OPTIONAL 03461 IN HWND hwndParent, OPTIONAL 03462 IN PCWSTR MachineName, OPTIONAL 03463 IN PVOID Reserved 03464 ); 03465 03466 #ifdef UNICODE 03467 #define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW 03468 #else 03469 #define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExA 03470 #endif 03471 03472 03473 WINSETUPAPI 03474 BOOL 03475 WINAPI 03476 SetupDiGetDeviceInfoListClass( 03477 IN HDEVINFO DeviceInfoSet, 03478 OUT LPGUID ClassGuid 03479 ); 03480 03481 WINSETUPAPI 03482 BOOL 03483 WINAPI 03484 SetupDiGetDeviceInfoListDetailA( 03485 IN HDEVINFO DeviceInfoSet, 03486 OUT PSP_DEVINFO_LIST_DETAIL_DATA_A DeviceInfoSetDetailData 03487 ); 03488 03489 WINSETUPAPI 03490 BOOL 03491 WINAPI 03492 SetupDiGetDeviceInfoListDetailW( 03493 IN HDEVINFO DeviceInfoSet, 03494 OUT PSP_DEVINFO_LIST_DETAIL_DATA_W DeviceInfoSetDetailData 03495 ); 03496 03497 #ifdef UNICODE 03498 #define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailW 03499 #else 03500 #define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailA 03501 #endif 03502 03503 03504 // 03505 // Flags for SetupDiCreateDeviceInfo 03506 // 03507 #define DICD_GENERATE_ID 0x00000001 03508 #define DICD_INHERIT_CLASSDRVS 0x00000002 03509 03510 WINSETUPAPI 03511 BOOL 03512 WINAPI 03513 SetupDiCreateDeviceInfoA( 03514 IN HDEVINFO DeviceInfoSet, 03515 IN PCSTR DeviceName, 03516 IN LPGUID ClassGuid, 03517 IN PCSTR DeviceDescription, OPTIONAL 03518 IN HWND hwndParent, OPTIONAL 03519 IN DWORD CreationFlags, 03520 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03521 ); 03522 03523 WINSETUPAPI 03524 BOOL 03525 WINAPI 03526 SetupDiCreateDeviceInfoW( 03527 IN HDEVINFO DeviceInfoSet, 03528 IN PCWSTR DeviceName, 03529 IN LPGUID ClassGuid, 03530 IN PCWSTR DeviceDescription, OPTIONAL 03531 IN HWND hwndParent, OPTIONAL 03532 IN DWORD CreationFlags, 03533 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03534 ); 03535 03536 #ifdef UNICODE 03537 #define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW 03538 #else 03539 #define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoA 03540 #endif 03541 03542 03543 // 03544 // Flags for SetupDiOpenDeviceInfo 03545 // 03546 #define DIOD_INHERIT_CLASSDRVS 0x00000002 03547 #define DIOD_CANCEL_REMOVE 0x00000004 03548 03549 WINSETUPAPI 03550 BOOL 03551 WINAPI 03552 SetupDiOpenDeviceInfoA( 03553 IN HDEVINFO DeviceInfoSet, 03554 IN PCSTR DeviceInstanceId, 03555 IN HWND hwndParent, OPTIONAL 03556 IN DWORD OpenFlags, 03557 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03558 ); 03559 03560 WINSETUPAPI 03561 BOOL 03562 WINAPI 03563 SetupDiOpenDeviceInfoW( 03564 IN HDEVINFO DeviceInfoSet, 03565 IN PCWSTR DeviceInstanceId, 03566 IN HWND hwndParent, OPTIONAL 03567 IN DWORD OpenFlags, 03568 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03569 ); 03570 03571 #ifdef UNICODE 03572 #define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoW 03573 #else 03574 #define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoA 03575 #endif 03576 03577 03578 WINSETUPAPI 03579 BOOL 03580 WINAPI 03581 SetupDiGetDeviceInstanceIdA( 03582 IN HDEVINFO DeviceInfoSet, 03583 IN PSP_DEVINFO_DATA DeviceInfoData, 03584 OUT PSTR DeviceInstanceId, 03585 IN DWORD DeviceInstanceIdSize, 03586 OUT PDWORD RequiredSize OPTIONAL 03587 ); 03588 03589 WINSETUPAPI 03590 BOOL 03591 WINAPI 03592 SetupDiGetDeviceInstanceIdW( 03593 IN HDEVINFO DeviceInfoSet, 03594 IN PSP_DEVINFO_DATA DeviceInfoData, 03595 OUT PWSTR DeviceInstanceId, 03596 IN DWORD DeviceInstanceIdSize, 03597 OUT PDWORD RequiredSize OPTIONAL 03598 ); 03599 03600 #ifdef UNICODE 03601 #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW 03602 #else 03603 #define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA 03604 #endif 03605 03606 03607 WINSETUPAPI 03608 BOOL 03609 WINAPI 03610 SetupDiDeleteDeviceInfo( 03611 IN HDEVINFO DeviceInfoSet, 03612 IN PSP_DEVINFO_DATA DeviceInfoData 03613 ); 03614 03615 03616 WINSETUPAPI 03617 BOOL 03618 WINAPI 03619 SetupDiEnumDeviceInfo( 03620 IN HDEVINFO DeviceInfoSet, 03621 IN DWORD MemberIndex, 03622 OUT PSP_DEVINFO_DATA DeviceInfoData 03623 ); 03624 03625 03626 WINSETUPAPI 03627 BOOL 03628 WINAPI 03629 SetupDiDestroyDeviceInfoList( 03630 IN HDEVINFO DeviceInfoSet 03631 ); 03632 03633 03634 WINSETUPAPI 03635 BOOL 03636 WINAPI 03637 SetupDiEnumDeviceInterfaces( 03638 IN HDEVINFO DeviceInfoSet, 03639 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03640 IN LPGUID InterfaceClassGuid, 03641 IN DWORD MemberIndex, 03642 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData 03643 ); 03644 03645 // 03646 // Backward compatibility--do not use 03647 // 03648 #define SetupDiEnumInterfaceDevice SetupDiEnumDeviceInterfaces 03649 03650 03651 WINSETUPAPI 03652 BOOL 03653 WINAPI 03654 SetupDiCreateDeviceInterfaceA( 03655 IN HDEVINFO DeviceInfoSet, 03656 IN PSP_DEVINFO_DATA DeviceInfoData, 03657 IN LPGUID InterfaceClassGuid, 03658 IN PCSTR ReferenceString, OPTIONAL 03659 IN DWORD CreationFlags, 03660 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData OPTIONAL 03661 ); 03662 03663 WINSETUPAPI 03664 BOOL 03665 WINAPI 03666 SetupDiCreateDeviceInterfaceW( 03667 IN HDEVINFO DeviceInfoSet, 03668 IN PSP_DEVINFO_DATA DeviceInfoData, 03669 IN LPGUID InterfaceClassGuid, 03670 IN PCWSTR ReferenceString, OPTIONAL 03671 IN DWORD CreationFlags, 03672 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData OPTIONAL 03673 ); 03674 03675 #ifdef UNICODE 03676 #define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceW 03677 #else 03678 #define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceA 03679 #endif 03680 03681 // 03682 // Backward compatibility--do not use. 03683 // 03684 #define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW 03685 #define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA 03686 #ifdef UNICODE 03687 #define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceW 03688 #else 03689 #define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceA 03690 #endif 03691 03692 03693 WINSETUPAPI 03694 BOOL 03695 WINAPI 03696 SetupDiOpenDeviceInterfaceA( 03697 IN HDEVINFO DeviceInfoSet, 03698 IN PCSTR DevicePath, 03699 IN DWORD OpenFlags, 03700 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData OPTIONAL 03701 ); 03702 03703 WINSETUPAPI 03704 BOOL 03705 WINAPI 03706 SetupDiOpenDeviceInterfaceW( 03707 IN HDEVINFO DeviceInfoSet, 03708 IN PCWSTR DevicePath, 03709 IN DWORD OpenFlags, 03710 OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData OPTIONAL 03711 ); 03712 03713 #ifdef UNICODE 03714 #define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceW 03715 #else 03716 #define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceA 03717 #endif 03718 03719 // 03720 // Backward compatibility--do not use 03721 // 03722 #define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW 03723 #define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA 03724 #ifdef UNICODE 03725 #define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceW 03726 #else 03727 #define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceA 03728 #endif 03729 03730 03731 WINSETUPAPI 03732 BOOL 03733 WINAPI 03734 SetupDiGetDeviceInterfaceAlias( 03735 IN HDEVINFO DeviceInfoSet, 03736 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 03737 IN LPGUID AliasInterfaceClassGuid, 03738 OUT PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData 03739 ); 03740 03741 // 03742 // Backward compatibility--do not use. 03743 // 03744 #define SetupDiGetInterfaceDeviceAlias SetupDiGetDeviceInterfaceAlias 03745 03746 03747 WINSETUPAPI 03748 BOOL 03749 WINAPI 03750 SetupDiDeleteDeviceInterfaceData( 03751 IN HDEVINFO DeviceInfoSet, 03752 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData 03753 ); 03754 03755 // 03756 // Backward compatibility--do not use. 03757 // 03758 #define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData 03759 03760 03761 WINSETUPAPI 03762 BOOL 03763 WINAPI 03764 SetupDiRemoveDeviceInterface( 03765 IN HDEVINFO DeviceInfoSet, 03766 IN OUT PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData 03767 ); 03768 03769 // 03770 // Backward compatibility--do not use. 03771 // 03772 #define SetupDiRemoveInterfaceDevice SetupDiRemoveDeviceInterface 03773 03774 03775 WINSETUPAPI 03776 BOOL 03777 WINAPI 03778 SetupDiGetDeviceInterfaceDetailA( 03779 IN HDEVINFO DeviceInfoSet, 03780 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 03781 OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData, OPTIONAL 03782 IN DWORD DeviceInterfaceDetailDataSize, 03783 OUT PDWORD RequiredSize, OPTIONAL 03784 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03785 ); 03786 03787 WINSETUPAPI 03788 BOOL 03789 WINAPI 03790 SetupDiGetDeviceInterfaceDetailW( 03791 IN HDEVINFO DeviceInfoSet, 03792 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 03793 OUT PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData, OPTIONAL 03794 IN DWORD DeviceInterfaceDetailDataSize, 03795 OUT PDWORD RequiredSize, OPTIONAL 03796 OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 03797 ); 03798 03799 #ifdef UNICODE 03800 #define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailW 03801 #else 03802 #define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailA 03803 #endif 03804 03805 // 03806 // Backward compatibility--do not use. 03807 // 03808 #define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW 03809 #define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA 03810 #ifdef UNICODE 03811 #define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailW 03812 #else 03813 #define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailA 03814 #endif 03815 03816 03817 // 03818 // Default install handler for DIF_INSTALLINTERFACES. 03819 // 03820 WINSETUPAPI 03821 BOOL 03822 WINAPI 03823 SetupDiInstallDeviceInterfaces( 03824 IN HDEVINFO DeviceInfoSet, 03825 IN PSP_DEVINFO_DATA DeviceInfoData 03826 ); 03827 03828 // 03829 // Backward compatibility--do not use. 03830 // 03831 #define SetupDiInstallInterfaceDevices SetupDiInstallDeviceInterfaces 03832 03833 03834 // 03835 // Default install handler for DIF_REGISTERDEVICE 03836 // 03837 03838 // 03839 // Flags for SetupDiRegisterDeviceInfo 03840 // 03841 #define SPRDI_FIND_DUPS 0x00000001 03842 03843 WINSETUPAPI 03844 BOOL 03845 WINAPI 03846 SetupDiRegisterDeviceInfo( 03847 IN HDEVINFO DeviceInfoSet, 03848 IN OUT PSP_DEVINFO_DATA DeviceInfoData, 03849 IN DWORD Flags, 03850 IN PSP_DETSIG_CMPPROC CompareProc, OPTIONAL 03851 IN PVOID CompareContext, OPTIONAL 03852 OUT PSP_DEVINFO_DATA DupDeviceInfoData OPTIONAL 03853 ); 03854 03855 03856 // 03857 // Ordinal values distinguishing between class drivers and 03858 // device drivers. 03859 // (Passed in 'DriverType' parameter of driver information list APIs) 03860 // 03861 #define SPDIT_NODRIVER 0x00000000 03862 #define SPDIT_CLASSDRIVER 0x00000001 03863 #define SPDIT_COMPATDRIVER 0x00000002 03864 03865 WINSETUPAPI 03866 BOOL 03867 WINAPI 03868 SetupDiBuildDriverInfoList( 03869 IN HDEVINFO DeviceInfoSet, 03870 IN OUT PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03871 IN DWORD DriverType 03872 ); 03873 03874 03875 WINSETUPAPI 03876 BOOL 03877 WINAPI 03878 SetupDiCancelDriverInfoSearch( 03879 IN HDEVINFO DeviceInfoSet 03880 ); 03881 03882 03883 WINSETUPAPI 03884 BOOL 03885 WINAPI 03886 SetupDiEnumDriverInfoA( 03887 IN HDEVINFO DeviceInfoSet, 03888 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03889 IN DWORD DriverType, 03890 IN DWORD MemberIndex, 03891 OUT PSP_DRVINFO_DATA_A DriverInfoData 03892 ); 03893 03894 WINSETUPAPI 03895 BOOL 03896 WINAPI 03897 SetupDiEnumDriverInfoW( 03898 IN HDEVINFO DeviceInfoSet, 03899 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03900 IN DWORD DriverType, 03901 IN DWORD MemberIndex, 03902 OUT PSP_DRVINFO_DATA_W DriverInfoData 03903 ); 03904 03905 #ifdef UNICODE 03906 #define SetupDiEnumDriverInfo SetupDiEnumDriverInfoW 03907 #else 03908 #define SetupDiEnumDriverInfo SetupDiEnumDriverInfoA 03909 #endif 03910 03911 03912 WINSETUPAPI 03913 BOOL 03914 WINAPI 03915 SetupDiGetSelectedDriverA( 03916 IN HDEVINFO DeviceInfoSet, 03917 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03918 OUT PSP_DRVINFO_DATA_A DriverInfoData 03919 ); 03920 03921 WINSETUPAPI 03922 BOOL 03923 WINAPI 03924 SetupDiGetSelectedDriverW( 03925 IN HDEVINFO DeviceInfoSet, 03926 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03927 OUT PSP_DRVINFO_DATA_W DriverInfoData 03928 ); 03929 03930 #ifdef UNICODE 03931 #define SetupDiGetSelectedDriver SetupDiGetSelectedDriverW 03932 #else 03933 #define SetupDiGetSelectedDriver SetupDiGetSelectedDriverA 03934 #endif 03935 03936 03937 WINSETUPAPI 03938 BOOL 03939 WINAPI 03940 SetupDiSetSelectedDriverA( 03941 IN HDEVINFO DeviceInfoSet, 03942 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03943 IN OUT PSP_DRVINFO_DATA_A DriverInfoData OPTIONAL 03944 ); 03945 03946 WINSETUPAPI 03947 BOOL 03948 WINAPI 03949 SetupDiSetSelectedDriverW( 03950 IN HDEVINFO DeviceInfoSet, 03951 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03952 IN OUT PSP_DRVINFO_DATA_W DriverInfoData OPTIONAL 03953 ); 03954 03955 #ifdef UNICODE 03956 #define SetupDiSetSelectedDriver SetupDiSetSelectedDriverW 03957 #else 03958 #define SetupDiSetSelectedDriver SetupDiSetSelectedDriverA 03959 #endif 03960 03961 03962 WINSETUPAPI 03963 BOOL 03964 WINAPI 03965 SetupDiGetDriverInfoDetailA( 03966 IN HDEVINFO DeviceInfoSet, 03967 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03968 IN PSP_DRVINFO_DATA_A DriverInfoData, 03969 OUT PSP_DRVINFO_DETAIL_DATA_A DriverInfoDetailData, OPTIONAL 03970 IN DWORD DriverInfoDetailDataSize, 03971 OUT PDWORD RequiredSize OPTIONAL 03972 ); 03973 03974 WINSETUPAPI 03975 BOOL 03976 WINAPI 03977 SetupDiGetDriverInfoDetailW( 03978 IN HDEVINFO DeviceInfoSet, 03979 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03980 IN PSP_DRVINFO_DATA_W DriverInfoData, 03981 OUT PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData, OPTIONAL 03982 IN DWORD DriverInfoDetailDataSize, 03983 OUT PDWORD RequiredSize OPTIONAL 03984 ); 03985 03986 #ifdef UNICODE 03987 #define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailW 03988 #else 03989 #define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailA 03990 #endif 03991 03992 03993 WINSETUPAPI 03994 BOOL 03995 WINAPI 03996 SetupDiDestroyDriverInfoList( 03997 IN HDEVINFO DeviceInfoSet, 03998 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 03999 IN DWORD DriverType 04000 ); 04001 04002 04003 // 04004 // Flags controlling what is included in the device information set built 04005 // by SetupDiGetClassDevs 04006 // 04007 #define DIGCF_DEFAULT 0x00000001 // only valid with DIGCF_DEVICEINTERFACE 04008 #define DIGCF_PRESENT 0x00000002 04009 #define DIGCF_ALLCLASSES 0x00000004 04010 #define DIGCF_PROFILE 0x00000008 04011 #define DIGCF_DEVICEINTERFACE 0x00000010 04012 04013 // 04014 // Backward compatibility--do not use. 04015 // 04016 #define DIGCF_INTERFACEDEVICE DIGCF_DEVICEINTERFACE 04017 04018 04019 WINSETUPAPI 04020 HDEVINFO 04021 WINAPI 04022 SetupDiGetClassDevsA( 04023 IN LPGUID ClassGuid, OPTIONAL 04024 IN PCSTR Enumerator, OPTIONAL 04025 IN HWND hwndParent, OPTIONAL 04026 IN DWORD Flags 04027 ); 04028 04029 WINSETUPAPI 04030 HDEVINFO 04031 WINAPI 04032 SetupDiGetClassDevsW( 04033 IN LPGUID ClassGuid, OPTIONAL 04034 IN PCWSTR Enumerator, OPTIONAL 04035 IN HWND hwndParent, OPTIONAL 04036 IN DWORD Flags 04037 ); 04038 04039 #ifdef UNICODE 04040 #define SetupDiGetClassDevs SetupDiGetClassDevsW 04041 #else 04042 #define SetupDiGetClassDevs SetupDiGetClassDevsA 04043 #endif 04044 04045 04046 WINSETUPAPI 04047 HDEVINFO 04048 WINAPI 04049 SetupDiGetClassDevsExA( 04050 IN LPGUID ClassGuid, OPTIONAL 04051 IN PCSTR Enumerator, OPTIONAL 04052 IN HWND hwndParent, OPTIONAL 04053 IN DWORD Flags, 04054 IN PCSTR MachineName, OPTIONAL 04055 IN PVOID Reserved 04056 ); 04057 04058 WINSETUPAPI 04059 HDEVINFO 04060 WINAPI 04061 SetupDiGetClassDevsExW( 04062 IN LPGUID ClassGuid, OPTIONAL 04063 IN PCWSTR Enumerator, OPTIONAL 04064 IN HWND hwndParent, OPTIONAL 04065 IN DWORD Flags, 04066 IN PCWSTR MachineName, OPTIONAL 04067 IN PVOID Reserved 04068 ); 04069 04070 #ifdef UNICODE 04071 #define SetupDiGetClassDevsEx SetupDiGetClassDevsExW 04072 #else 04073 #define SetupDiGetClassDevsEx SetupDiGetClassDevsExA 04074 #endif 04075 04076 04077 WINSETUPAPI 04078 BOOL 04079 WINAPI 04080 SetupDiGetINFClassA( 04081 IN PCSTR InfName, 04082 OUT LPGUID ClassGuid, 04083 OUT PSTR ClassName, 04084 IN DWORD ClassNameSize, 04085 OUT PDWORD RequiredSize OPTIONAL 04086 ); 04087 04088 WINSETUPAPI 04089 BOOL 04090 WINAPI 04091 SetupDiGetINFClassW( 04092 IN PCWSTR InfName, 04093 OUT LPGUID ClassGuid, 04094 OUT PWSTR ClassName, 04095 IN DWORD ClassNameSize, 04096 OUT PDWORD RequiredSize OPTIONAL 04097 ); 04098 04099 #ifdef UNICODE 04100 #define SetupDiGetINFClass SetupDiGetINFClassW 04101 #else 04102 #define SetupDiGetINFClass SetupDiGetINFClassA 04103 #endif 04104 04105 04106 // 04107 // Flags controlling exclusion from the class information list built 04108 // by SetupDiBuildClassInfoList(Ex) 04109 // 04110 #define DIBCI_NOINSTALLCLASS 0x00000001 04111 #define DIBCI_NODISPLAYCLASS 0x00000002 04112 04113 WINSETUPAPI 04114 BOOL 04115 WINAPI 04116 SetupDiBuildClassInfoList( 04117 IN DWORD Flags, 04118 OUT LPGUID ClassGuidList, 04119 IN DWORD ClassGuidListSize, 04120 OUT PDWORD RequiredSize 04121 ); 04122 04123 04124 WINSETUPAPI 04125 BOOL 04126 WINAPI 04127 SetupDiBuildClassInfoListExA( 04128 IN DWORD Flags, 04129 OUT LPGUID ClassGuidList, 04130 IN DWORD ClassGuidListSize, 04131 OUT PDWORD RequiredSize, 04132 IN PCSTR MachineName, OPTIONAL 04133 IN PVOID Reserved 04134 ); 04135 04136 WINSETUPAPI 04137 BOOL 04138 WINAPI 04139 SetupDiBuildClassInfoListExW( 04140 IN DWORD Flags, 04141 OUT LPGUID ClassGuidList, 04142 IN DWORD ClassGuidListSize, 04143 OUT PDWORD RequiredSize, 04144 IN PCWSTR MachineName, OPTIONAL 04145 IN PVOID Reserved 04146 ); 04147 04148 #ifdef UNICODE 04149 #define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW 04150 #else 04151 #define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExA 04152 #endif 04153 04154 04155 WINSETUPAPI 04156 BOOL 04157 WINAPI 04158 SetupDiGetClassDescriptionA( 04159 IN LPGUID ClassGuid, 04160 OUT PSTR ClassDescription, 04161 IN DWORD ClassDescriptionSize, 04162 OUT PDWORD RequiredSize OPTIONAL 04163 ); 04164 04165 WINSETUPAPI 04166 BOOL 04167 WINAPI 04168 SetupDiGetClassDescriptionW( 04169 IN LPGUID ClassGuid, 04170 OUT PWSTR ClassDescription, 04171 IN DWORD ClassDescriptionSize, 04172 OUT PDWORD RequiredSize OPTIONAL 04173 ); 04174 04175 #ifdef UNICODE 04176 #define SetupDiGetClassDescription SetupDiGetClassDescriptionW 04177 #else 04178 #define SetupDiGetClassDescription SetupDiGetClassDescriptionA 04179 #endif 04180 04181 04182 WINSETUPAPI 04183 BOOL 04184 WINAPI 04185 SetupDiGetClassDescriptionExA( 04186 IN LPGUID ClassGuid, 04187 OUT PSTR ClassDescription, 04188 IN DWORD ClassDescriptionSize, 04189 OUT PDWORD RequiredSize, OPTIONAL 04190 IN PCSTR MachineName, OPTIONAL 04191 IN PVOID Reserved 04192 ); 04193 04194 WINSETUPAPI 04195 BOOL 04196 WINAPI 04197 SetupDiGetClassDescriptionExW( 04198 IN LPGUID ClassGuid, 04199 OUT PWSTR ClassDescription, 04200 IN DWORD ClassDescriptionSize, 04201 OUT PDWORD RequiredSize, OPTIONAL 04202 IN PCWSTR MachineName, OPTIONAL 04203 IN PVOID Reserved 04204 ); 04205 04206 #ifdef UNICODE 04207 #define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExW 04208 #else 04209 #define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExA 04210 #endif 04211 04212 04213 WINSETUPAPI 04214 BOOL 04215 WINAPI 04216 SetupDiCallClassInstaller( 04217 IN DI_FUNCTION InstallFunction, 04218 IN HDEVINFO DeviceInfoSet, 04219 IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 04220 ); 04221 04222 04223 // 04224 // Default install handler for DIF_SELECTDEVICE 04225 // 04226 WINSETUPAPI 04227 BOOL 04228 WINAPI 04229 SetupDiSelectDevice( 04230 IN HDEVINFO DeviceInfoSet, 04231 IN OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 04232 ); 04233 04234 04235 // 04236 // Default install handler for DIF_SELECTBESTCOMPATDRV 04237 // 04238 WINSETUPAPI 04239 BOOL 04240 WINAPI 04241 SetupDiSelectBestCompatDrv( 04242 IN HDEVINFO DeviceInfoSet, 04243 IN OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 04244 ); 04245 04246 04247 // 04248 // Default install handler for DIF_INSTALLDEVICE 04249 // 04250 WINSETUPAPI 04251 BOOL 04252 WINAPI 04253 SetupDiInstallDevice( 04254 IN HDEVINFO DeviceInfoSet, 04255 IN OUT PSP_DEVINFO_DATA DeviceInfoData 04256 ); 04257 04258 04259 // 04260 // Default install handler for DIF_INSTALLDEVICEFILES 04261 // 04262 WINSETUPAPI 04263 BOOL 04264 WINAPI 04265 SetupDiInstallDriverFiles( 04266 IN HDEVINFO DeviceInfoSet, 04267 IN PSP_DEVINFO_DATA DeviceInfoData 04268 ); 04269 04270 04271 // 04272 // Default install handler for DIF_REGISTER_COINSTALLERS 04273 // 04274 WINSETUPAPI 04275 BOOL 04276 WINAPI 04277 SetupDiRegisterCoDeviceInstallers( 04278 IN HDEVINFO DeviceInfoSet, 04279 IN PSP_DEVINFO_DATA DeviceInfoData 04280 ); 04281 04282 04283 // 04284 // Default install handler for DIF_REMOVE 04285 // 04286 WINSETUPAPI 04287 BOOL 04288 WINAPI 04289 SetupDiRemoveDevice( 04290 IN HDEVINFO DeviceInfoSet, 04291 IN OUT PSP_DEVINFO_DATA DeviceInfoData 04292 ); 04293 04294 04295 // 04296 // Default install handler for DIF_UNREMOVE 04297 // 04298 WINSETUPAPI 04299 BOOL 04300 WINAPI 04301 SetupDiUnremoveDevice( 04302 IN HDEVINFO DeviceInfoSet, 04303 IN OUT PSP_DEVINFO_DATA DeviceInfoData 04304 ); 04305 04306 04307 // 04308 // Default install handler for DIF_MOVEDEVICE 04309 // 04310 WINSETUPAPI 04311 BOOL 04312 WINAPI 04313 SetupDiMoveDuplicateDevice( 04314 IN HDEVINFO DeviceInfoSet, 04315 IN PSP_DEVINFO_DATA DestinationDeviceInfoData 04316 ); 04317 04318 04319 // 04320 // Default install handler for DIF_PROPERTYCHANGE 04321 // 04322 WINSETUPAPI 04323 BOOL 04324 WINAPI 04325 SetupDiChangeState( 04326 IN HDEVINFO DeviceInfoSet, 04327 IN OUT PSP_DEVINFO_DATA DeviceInfoData 04328 ); 04329 04330 04331 WINSETUPAPI 04332 BOOL 04333 WINAPI 04334 SetupDiInstallClassA( 04335 IN HWND hwndParent, OPTIONAL 04336 IN PCSTR InfFileName, 04337 IN DWORD Flags, 04338 IN HSPFILEQ FileQueue OPTIONAL 04339 ); 04340 04341 WINSETUPAPI 04342 BOOL 04343 WINAPI 04344 SetupDiInstallClassW( 04345 IN HWND hwndParent, OPTIONAL 04346 IN PCWSTR InfFileName, 04347 IN DWORD Flags, 04348 IN HSPFILEQ FileQueue OPTIONAL 04349 ); 04350 04351 #ifdef UNICODE 04352 #define SetupDiInstallClass SetupDiInstallClassW 04353 #else 04354 #define SetupDiInstallClass SetupDiInstallClassA 04355 #endif 04356 04357 04358 WINSETUPAPI 04359 BOOL 04360 WINAPI 04361 SetupDiInstallClassExA( 04362 IN HWND hwndParent, OPTIONAL 04363 IN PCSTR InfFileName, OPTIONAL 04364 IN DWORD Flags, 04365 IN HSPFILEQ FileQueue, OPTIONAL 04366 IN LPGUID InterfaceClassGuid, OPTIONAL 04367 IN PVOID Reserved1, 04368 IN PVOID Reserved2 04369 ); 04370 04371 WINSETUPAPI 04372 BOOL 04373 WINAPI 04374 SetupDiInstallClassExW( 04375 IN HWND hwndParent, OPTIONAL 04376 IN PCWSTR InfFileName, OPTIONAL 04377 IN DWORD Flags, 04378 IN HSPFILEQ FileQueue, OPTIONAL 04379 IN LPGUID InterfaceClassGuid, OPTIONAL 04380 IN PVOID Reserved1, 04381 IN PVOID Reserved2 04382 ); 04383 04384 #ifdef UNICODE 04385 #define SetupDiInstallClassEx SetupDiInstallClassExW 04386 #else 04387 #define SetupDiInstallClassEx SetupDiInstallClassExA 04388 #endif 04389 04390 04391 WINSETUPAPI 04392 HKEY 04393 WINAPI 04394 SetupDiOpenClassRegKey( 04395 IN LPGUID ClassGuid, OPTIONAL 04396 IN REGSAM samDesired 04397 ); 04398 04399 04400 // 04401 // Flags for SetupDiOpenClassRegKeyEx 04402 // 04403 #define DIOCR_INSTALLER 0x00000001 // class installer registry branch 04404 #define DIOCR_INTERFACE 0x00000002 // interface class registry branch 04405 04406 WINSETUPAPI 04407 HKEY 04408 WINAPI 04409 SetupDiOpenClassRegKeyExA( 04410 IN LPGUID ClassGuid, OPTIONAL 04411 IN REGSAM samDesired, 04412 IN DWORD Flags, 04413 IN PCSTR MachineName, OPTIONAL 04414 IN PVOID Reserved 04415 ); 04416 04417 WINSETUPAPI 04418 HKEY 04419 WINAPI 04420 SetupDiOpenClassRegKeyExW( 04421 IN LPGUID ClassGuid, OPTIONAL 04422 IN REGSAM samDesired, 04423 IN DWORD Flags, 04424 IN PCWSTR MachineName, OPTIONAL 04425 IN PVOID Reserved 04426 ); 04427 04428 #ifdef UNICODE 04429 #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW 04430 #else 04431 #define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA 04432 #endif 04433 04434 04435 WINSETUPAPI 04436 HKEY 04437 WINAPI 04438 SetupDiCreateDeviceInterfaceRegKeyA( 04439 IN HDEVINFO DeviceInfoSet, 04440 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 04441 IN DWORD Reserved, 04442 IN REGSAM samDesired, 04443 IN HINF InfHandle, OPTIONAL 04444 IN PCSTR InfSectionName OPTIONAL 04445 ); 04446 04447 WINSETUPAPI 04448 HKEY 04449 WINAPI 04450 SetupDiCreateDeviceInterfaceRegKeyW( 04451 IN HDEVINFO DeviceInfoSet, 04452 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 04453 IN DWORD Reserved, 04454 IN REGSAM samDesired, 04455 IN HINF InfHandle, OPTIONAL 04456 IN PCWSTR InfSectionName OPTIONAL 04457 ); 04458 04459 #ifdef UNICODE 04460 #define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW 04461 #else 04462 #define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyA 04463 #endif 04464 04465 // 04466 // Backward compatibility--do not use. 04467 // 04468 #define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW 04469 #define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA 04470 #ifdef UNICODE 04471 #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW 04472 #else 04473 #define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA 04474 #endif 04475 04476 04477 WINSETUPAPI 04478 HKEY 04479 WINAPI 04480 SetupDiOpenDeviceInterfaceRegKey( 04481 IN HDEVINFO DeviceInfoSet, 04482 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 04483 IN DWORD Reserved, 04484 IN REGSAM samDesired 04485 ); 04486 04487 // 04488 // Backward compatibility--do not use. 04489 // 04490 #define SetupDiOpenInterfaceDeviceRegKey SetupDiOpenDeviceInterfaceRegKey 04491 04492 04493 WINSETUPAPI 04494 BOOL 04495 WINAPI 04496 SetupDiDeleteDeviceInterfaceRegKey( 04497 IN HDEVINFO DeviceInfoSet, 04498 IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData, 04499 IN DWORD Reserved 04500 ); 04501 04502 // 04503 // Backward compatibility--do not use. 04504 // 04505 #define SetupDiDeleteInterfaceDeviceRegKey SetupDiDeleteDeviceInterfaceRegKey 04506 04507 04508 // 04509 // KeyType values for SetupDiCreateDevRegKey, SetupDiOpenDevRegKey, and 04510 // SetupDiDeleteDevRegKey. 04511 // 04512 #define DIREG_DEV 0x00000001 // Open/Create/Delete device key 04513 #define DIREG_DRV 0x00000002 // Open/Create/Delete driver key 04514 #define DIREG_BOTH 0x00000004 // Delete both driver and Device key 04515 04516 WINSETUPAPI 04517 HKEY 04518 WINAPI 04519 SetupDiCreateDevRegKeyA( 04520 IN HDEVINFO DeviceInfoSet, 04521 IN PSP_DEVINFO_DATA DeviceInfoData, 04522 IN DWORD Scope, 04523 IN DWORD HwProfile, 04524 IN DWORD KeyType, 04525 IN HINF InfHandle, OPTIONAL 04526 IN PCSTR InfSectionName OPTIONAL 04527 ); 04528 04529 WINSETUPAPI 04530 HKEY 04531 WINAPI 04532 SetupDiCreateDevRegKeyW( 04533 IN HDEVINFO DeviceInfoSet, 04534 IN PSP_DEVINFO_DATA DeviceInfoData, 04535 IN DWORD Scope, 04536 IN DWORD HwProfile, 04537 IN DWORD KeyType, 04538 IN HINF InfHandle, OPTIONAL 04539 IN PCWSTR InfSectionName OPTIONAL 04540 ); 04541 04542 #ifdef UNICODE 04543 #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW 04544 #else 04545 #define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA 04546 #endif 04547 04548 04549 WINSETUPAPI 04550 HKEY 04551 WINAPI 04552 SetupDiOpenDevRegKey( 04553 IN HDEVINFO DeviceInfoSet, 04554 IN PSP_DEVINFO_DATA DeviceInfoData, 04555 IN DWORD Scope, 04556 IN DWORD HwProfile, 04557 IN DWORD KeyType, 04558 IN REGSAM samDesired 04559 ); 04560 04561 04562 WINSETUPAPI 04563 BOOL 04564 WINAPI 04565 SetupDiDeleteDevRegKey( 04566 IN HDEVINFO DeviceInfoSet, 04567 IN PSP_DEVINFO_DATA DeviceInfoData, 04568 IN DWORD Scope, 04569 IN DWORD HwProfile, 04570 IN DWORD KeyType 04571 ); 04572 04573 04574 WINSETUPAPI 04575 BOOL 04576 WINAPI 04577 SetupDiGetHwProfileList( 04578 OUT PDWORD HwProfileList, 04579 IN DWORD HwProfileListSize, 04580 OUT PDWORD RequiredSize, 04581 OUT PDWORD CurrentlyActiveIndex OPTIONAL 04582 ); 04583 04584 04585 WINSETUPAPI 04586 BOOL 04587 WINAPI 04588 SetupDiGetHwProfileListExA( 04589 OUT PDWORD HwProfileList, 04590 IN DWORD HwProfileListSize, 04591 OUT PDWORD RequiredSize, 04592 OUT PDWORD CurrentlyActiveIndex, OPTIONAL 04593 IN PCSTR MachineName, OPTIONAL 04594 IN PVOID Reserved 04595 ); 04596 04597 WINSETUPAPI 04598 BOOL 04599 WINAPI 04600 SetupDiGetHwProfileListExW( 04601 OUT PDWORD HwProfileList, 04602 IN DWORD HwProfileListSize, 04603 OUT PDWORD RequiredSize, 04604 OUT PDWORD CurrentlyActiveIndex, OPTIONAL 04605 IN PCWSTR MachineName, OPTIONAL 04606 IN PVOID Reserved 04607 ); 04608 04609 #ifdef UNICODE 04610 #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW 04611 #else 04612 #define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA 04613 #endif 04614 04615 04616 // 04617 // Device registry property codes 04618 // (Codes marked as read-only (R) may only be used for 04619 // SetupDiGetDeviceRegistryProperty) 04620 // 04621 // These values should cover the same set of registry properties 04622 // as defined by the CM_DRP codes in cfgmgr32.h. 04623 // 04624 #define SPDRP_DEVICEDESC (0x00000000) // DeviceDesc (R/W) 04625 #define SPDRP_HARDWAREID (0x00000001) // HardwareID (R/W) 04626 #define SPDRP_COMPATIBLEIDS (0x00000002) // CompatibleIDs (R/W) 04627 #define SPDRP_NTDEVICEPATHS (0x00000003) // Unsupported, DO NOT USE 04628 #define SPDRP_SERVICE (0x00000004) // Service (R/W) 04629 #define SPDRP_CONFIGURATION (0x00000005) // Configuration (R) 04630 #define SPDRP_CONFIGURATIONVECTOR (0x00000006) // ConfigurationVector (R) 04631 #define SPDRP_CLASS (0x00000007) // Class (R--tied to ClassGUID) 04632 #define SPDRP_CLASSGUID (0x00000008) // ClassGUID (R/W) 04633 #define SPDRP_DRIVER (0x00000009) // Driver (R/W) 04634 #define SPDRP_CONFIGFLAGS (0x0000000A) // ConfigFlags (R/W) 04635 #define SPDRP_MFG (0x0000000B) // Mfg (R/W) 04636 #define SPDRP_FRIENDLYNAME (0x0000000C) // FriendlyName (R/W) 04637 #define SPDRP_LOCATION_INFORMATION (0x0000000D) // LocationInformation (R/W) 04638 #define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME (0x0000000E) // PhysicalDeviceObjectName (R) 04639 #define SPDRP_CAPABILITIES (0x0000000F) // Capabilities (R) 04640 #define SPDRP_UI_NUMBER (0x00000010) // UiNumber (R) 04641 #define SPDRP_UPPERFILTERS (0x00000011) // UpperFilters (R/W) 04642 #define SPDRP_LOWERFILTERS (0x00000012) // LowerFilters (R/W) 04643 #define SPDRP_MAXIMUM_PROPERTY (0x00000013) // Upper bound on ordinals 04644 04645 WINSETUPAPI 04646 BOOL 04647 WINAPI 04648 SetupDiGetDeviceRegistryPropertyA( 04649 IN HDEVINFO DeviceInfoSet, 04650 IN PSP_DEVINFO_DATA DeviceInfoData, 04651 IN DWORD Property, 04652 OUT PDWORD PropertyRegDataType, OPTIONAL 04653 OUT PBYTE PropertyBuffer, 04654 IN DWORD PropertyBufferSize, 04655 OUT PDWORD RequiredSize OPTIONAL 04656 ); 04657 04658 WINSETUPAPI 04659 BOOL 04660 WINAPI 04661 SetupDiGetDeviceRegistryPropertyW( 04662 IN HDEVINFO DeviceInfoSet, 04663 IN PSP_DEVINFO_DATA DeviceInfoData, 04664 IN DWORD Property, 04665 OUT PDWORD PropertyRegDataType, OPTIONAL 04666 OUT PBYTE PropertyBuffer, 04667 IN DWORD PropertyBufferSize, 04668 OUT PDWORD RequiredSize OPTIONAL 04669 ); 04670 04671 #ifdef UNICODE 04672 #define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyW 04673 #else 04674 #define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyA 04675 #endif 04676 04677 04678 WINSETUPAPI 04679 BOOL 04680 WINAPI 04681 SetupDiSetDeviceRegistryPropertyA( 04682 IN HDEVINFO DeviceInfoSet, 04683 IN OUT PSP_DEVINFO_DATA DeviceInfoData, 04684 IN DWORD Property, 04685 IN CONST BYTE* PropertyBuffer, 04686 IN DWORD PropertyBufferSize 04687 ); 04688 04689 WINSETUPAPI 04690 BOOL 04691 WINAPI 04692 SetupDiSetDeviceRegistryPropertyW( 04693 IN HDEVINFO DeviceInfoSet, 04694 IN OUT PSP_DEVINFO_DATA DeviceInfoData, 04695 IN DWORD Property, 04696 IN CONST BYTE* PropertyBuffer, 04697 IN DWORD PropertyBufferSize 04698 ); 04699 04700 #ifdef UNICODE 04701 #define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyW 04702 #else 04703 #define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyA 04704 #endif 04705 04706 04707 WINSETUPAPI 04708 BOOL 04709 WINAPI 04710 SetupDiGetDeviceInstallParamsA( 04711 IN HDEVINFO DeviceInfoSet, 04712 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04713 OUT PSP_DEVINSTALL_PARAMS_A DeviceInstallParams 04714 ); 04715 04716 WINSETUPAPI 04717 BOOL 04718 WINAPI 04719 SetupDiGetDeviceInstallParamsW( 04720 IN HDEVINFO DeviceInfoSet, 04721 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04722 OUT PSP_DEVINSTALL_PARAMS_W DeviceInstallParams 04723 ); 04724 04725 #ifdef UNICODE 04726 #define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsW 04727 #else 04728 #define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsA 04729 #endif 04730 04731 04732 WINSETUPAPI 04733 BOOL 04734 WINAPI 04735 SetupDiGetClassInstallParamsA( 04736 IN HDEVINFO DeviceInfoSet, 04737 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04738 OUT PSP_CLASSINSTALL_HEADER ClassInstallParams, OPTIONAL 04739 IN DWORD ClassInstallParamsSize, 04740 OUT PDWORD RequiredSize OPTIONAL 04741 ); 04742 04743 WINSETUPAPI 04744 BOOL 04745 WINAPI 04746 SetupDiGetClassInstallParamsW( 04747 IN HDEVINFO DeviceInfoSet, 04748 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04749 OUT PSP_CLASSINSTALL_HEADER ClassInstallParams, OPTIONAL 04750 IN DWORD ClassInstallParamsSize, 04751 OUT PDWORD RequiredSize OPTIONAL 04752 ); 04753 04754 #ifdef UNICODE 04755 #define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsW 04756 #else 04757 #define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsA 04758 #endif 04759 04760 04761 WINSETUPAPI 04762 BOOL 04763 WINAPI 04764 SetupDiSetDeviceInstallParamsA( 04765 IN HDEVINFO DeviceInfoSet, 04766 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04767 IN PSP_DEVINSTALL_PARAMS_A DeviceInstallParams 04768 ); 04769 04770 WINSETUPAPI 04771 BOOL 04772 WINAPI 04773 SetupDiSetDeviceInstallParamsW( 04774 IN HDEVINFO DeviceInfoSet, 04775 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04776 IN PSP_DEVINSTALL_PARAMS_W DeviceInstallParams 04777 ); 04778 04779 #ifdef UNICODE 04780 #define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsW 04781 #else 04782 #define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsA 04783 #endif 04784 04785 04786 WINSETUPAPI 04787 BOOL 04788 WINAPI 04789 SetupDiSetClassInstallParamsA( 04790 IN HDEVINFO DeviceInfoSet, 04791 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04792 IN PSP_CLASSINSTALL_HEADER ClassInstallParams, OPTIONAL 04793 IN DWORD ClassInstallParamsSize 04794 ); 04795 04796 WINSETUPAPI 04797 BOOL 04798 WINAPI 04799 SetupDiSetClassInstallParamsW( 04800 IN HDEVINFO DeviceInfoSet, 04801 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04802 IN PSP_CLASSINSTALL_HEADER ClassInstallParams, OPTIONAL 04803 IN DWORD ClassInstallParamsSize 04804 ); 04805 04806 #ifdef UNICODE 04807 #define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsW 04808 #else 04809 #define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsA 04810 #endif 04811 04812 04813 WINSETUPAPI 04814 BOOL 04815 WINAPI 04816 SetupDiGetDriverInstallParamsA( 04817 IN HDEVINFO DeviceInfoSet, 04818 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04819 IN PSP_DRVINFO_DATA_A DriverInfoData, 04820 OUT PSP_DRVINSTALL_PARAMS DriverInstallParams 04821 ); 04822 04823 WINSETUPAPI 04824 BOOL 04825 WINAPI 04826 SetupDiGetDriverInstallParamsW( 04827 IN HDEVINFO DeviceInfoSet, 04828 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04829 IN PSP_DRVINFO_DATA_W DriverInfoData, 04830 OUT PSP_DRVINSTALL_PARAMS DriverInstallParams 04831 ); 04832 04833 #ifdef UNICODE 04834 #define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsW 04835 #else 04836 #define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsA 04837 #endif 04838 04839 04840 WINSETUPAPI 04841 BOOL 04842 WINAPI 04843 SetupDiSetDriverInstallParamsA( 04844 IN HDEVINFO DeviceInfoSet, 04845 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04846 IN PSP_DRVINFO_DATA_A DriverInfoData, 04847 IN PSP_DRVINSTALL_PARAMS DriverInstallParams 04848 ); 04849 04850 WINSETUPAPI 04851 BOOL 04852 WINAPI 04853 SetupDiSetDriverInstallParamsW( 04854 IN HDEVINFO DeviceInfoSet, 04855 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04856 IN PSP_DRVINFO_DATA_W DriverInfoData, 04857 IN PSP_DRVINSTALL_PARAMS DriverInstallParams 04858 ); 04859 04860 #ifdef UNICODE 04861 #define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsW 04862 #else 04863 #define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsA 04864 #endif 04865 04866 04867 WINSETUPAPI 04868 BOOL 04869 WINAPI 04870 SetupDiLoadClassIcon( 04871 IN LPGUID ClassGuid, 04872 OUT HICON *LargeIcon, OPTIONAL 04873 OUT PINT MiniIconIndex OPTIONAL 04874 ); 04875 04876 04877 // 04878 // Flags controlling the drawing of mini-icons 04879 // 04880 #define DMI_MASK 0x00000001 04881 #define DMI_BKCOLOR 0x00000002 04882 #define DMI_USERECT 0x00000004 04883 04884 WINSETUPAPI 04885 INT 04886 WINAPI 04887 SetupDiDrawMiniIcon( 04888 IN HDC hdc, 04889 IN RECT rc, 04890 IN INT MiniIconIndex, 04891 IN DWORD Flags 04892 ); 04893 04894 04895 WINSETUPAPI 04896 BOOL 04897 WINAPI 04898 SetupDiGetClassBitmapIndex( 04899 IN LPGUID ClassGuid, OPTIONAL 04900 OUT PINT MiniIconIndex 04901 ); 04902 04903 04904 WINSETUPAPI 04905 BOOL 04906 WINAPI 04907 SetupDiGetClassImageList( 04908 OUT PSP_CLASSIMAGELIST_DATA ClassImageListData 04909 ); 04910 04911 04912 WINSETUPAPI 04913 BOOL 04914 WINAPI 04915 SetupDiGetClassImageListExA( 04916 OUT PSP_CLASSIMAGELIST_DATA ClassImageListData, 04917 IN PCSTR MachineName, OPTIONAL 04918 IN PVOID Reserved 04919 ); 04920 04921 WINSETUPAPI 04922 BOOL 04923 WINAPI 04924 SetupDiGetClassImageListExW( 04925 OUT PSP_CLASSIMAGELIST_DATA ClassImageListData, 04926 IN PCWSTR MachineName, OPTIONAL 04927 IN PVOID Reserved 04928 ); 04929 04930 #ifdef UNICODE 04931 #define SetupDiGetClassImageListEx SetupDiGetClassImageListExW 04932 #else 04933 #define SetupDiGetClassImageListEx SetupDiGetClassImageListExA 04934 #endif 04935 04936 04937 WINSETUPAPI 04938 BOOL 04939 WINAPI 04940 SetupDiGetClassImageIndex( 04941 IN PSP_CLASSIMAGELIST_DATA ClassImageListData, 04942 IN LPGUID ClassGuid, 04943 OUT PINT ImageIndex 04944 ); 04945 04946 04947 WINSETUPAPI 04948 BOOL 04949 WINAPI 04950 SetupDiDestroyClassImageList( 04951 IN PSP_CLASSIMAGELIST_DATA ClassImageListData 04952 ); 04953 04954 04955 // 04956 // PropertySheetType values for the SetupDiGetClassDevPropertySheets API 04957 // 04958 #define DIGCDP_FLAG_BASIC 0x00000001 04959 #define DIGCDP_FLAG_ADVANCED 0x00000002 04960 04961 WINSETUPAPI 04962 BOOL 04963 WINAPI 04964 SetupDiGetClassDevPropertySheetsA( 04965 IN HDEVINFO DeviceInfoSet, 04966 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04967 IN LPPROPSHEETHEADERA PropertySheetHeader, 04968 IN DWORD PropertySheetHeaderPageListSize, 04969 OUT PDWORD RequiredSize, OPTIONAL 04970 IN DWORD PropertySheetType 04971 ); 04972 04973 WINSETUPAPI 04974 BOOL 04975 WINAPI 04976 SetupDiGetClassDevPropertySheetsW( 04977 IN HDEVINFO DeviceInfoSet, 04978 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 04979 IN LPPROPSHEETHEADERW PropertySheetHeader, 04980 IN DWORD PropertySheetHeaderPageListSize, 04981 OUT PDWORD RequiredSize, OPTIONAL 04982 IN DWORD PropertySheetType 04983 ); 04984 04985 #ifdef UNICODE 04986 #define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsW 04987 #else 04988 #define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsA 04989 #endif 04990 04991 04992 // 04993 // Define ICON IDs publicly exposed from setupapi. 04994 // 04995 #define IDI_RESOURCEFIRST 159 04996 #define IDI_RESOURCE 159 04997 #define IDI_NOCFGDATA 160 04998 #define IDI_RESOURCELAST 161 04999 #define IDI_RESOURCEOVERLAYFIRST 161 05000 #define IDI_RESOURCEOVERLAYLAST 161 05001 #define IDI_CONFLICT 161 05002 05003 #define IDI_CLASSICON_OVERLAYFIRST 500 05004 #define IDI_CLASSICON_OVERLAYLAST 502 05005 #define IDI_PROBLEM_OVL 500 05006 #define IDI_DISABLED_OVL 501 05007 #define IDI_FORCED_OVL 502 05008 05009 05010 WINSETUPAPI 05011 BOOL 05012 WINAPI 05013 SetupDiAskForOEMDisk( 05014 IN HDEVINFO DeviceInfoSet, 05015 IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 05016 ); 05017 05018 05019 WINSETUPAPI 05020 BOOL 05021 WINAPI 05022 SetupDiSelectOEMDrv( 05023 IN HWND hwndParent, OPTIONAL 05024 IN HDEVINFO DeviceInfoSet, 05025 IN OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL 05026 ); 05027 05028 05029 WINSETUPAPI 05030 BOOL 05031 WINAPI 05032 SetupDiClassNameFromGuidA( 05033 IN LPGUID ClassGuid, 05034 OUT PSTR ClassName, 05035 IN DWORD ClassNameSize, 05036 OUT PDWORD RequiredSize OPTIONAL 05037 ); 05038 05039 WINSETUPAPI 05040 BOOL 05041 WINAPI 05042 SetupDiClassNameFromGuidW( 05043 IN LPGUID ClassGuid, 05044 OUT PWSTR ClassName, 05045 IN DWORD ClassNameSize, 05046 OUT PDWORD RequiredSize OPTIONAL 05047 ); 05048 05049 #ifdef UNICODE 05050 #define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW 05051 #else 05052 #define SetupDiClassNameFromGuid SetupDiClassNameFromGuidA 05053 #endif 05054 05055 05056 WINSETUPAPI 05057 BOOL 05058 WINAPI 05059 SetupDiClassNameFromGuidExA( 05060 IN LPGUID ClassGuid, 05061 OUT PSTR ClassName, 05062 IN DWORD ClassNameSize, 05063 OUT PDWORD RequiredSize, OPTIONAL 05064 IN PCSTR MachineName, OPTIONAL 05065 IN PVOID Reserved 05066 ); 05067 05068 WINSETUPAPI 05069 BOOL 05070 WINAPI 05071 SetupDiClassNameFromGuidExW( 05072 IN LPGUID ClassGuid, 05073 OUT PWSTR ClassName, 05074 IN DWORD ClassNameSize, 05075 OUT PDWORD RequiredSize, OPTIONAL 05076 IN PCWSTR MachineName, OPTIONAL 05077 IN PVOID Reserved 05078 ); 05079 05080 #ifdef UNICODE 05081 #define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW 05082 #else 05083 #define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExA 05084 #endif 05085 05086 05087 WINSETUPAPI 05088 BOOL 05089 WINAPI 05090 SetupDiClassGuidsFromNameA( 05091 IN PCSTR ClassName, 05092 OUT LPGUID ClassGuidList, 05093 IN DWORD ClassGuidListSize, 05094 OUT PDWORD RequiredSize 05095 ); 05096 05097 WINSETUPAPI 05098 BOOL 05099 WINAPI 05100 SetupDiClassGuidsFromNameW( 05101 IN PCWSTR ClassName, 05102 OUT LPGUID ClassGuidList, 05103 IN DWORD ClassGuidListSize, 05104 OUT PDWORD RequiredSize 05105 ); 05106 05107 #ifdef UNICODE 05108 #define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW 05109 #else 05110 #define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameA 05111 #endif 05112 05113 05114 WINSETUPAPI 05115 BOOL 05116 WINAPI 05117 SetupDiClassGuidsFromNameExA( 05118 IN PCSTR ClassName, 05119 OUT LPGUID ClassGuidList, 05120 IN DWORD ClassGuidListSize, 05121 OUT PDWORD RequiredSize, 05122 IN PCSTR MachineName, OPTIONAL 05123 IN PVOID Reserved 05124 ); 05125 05126 WINSETUPAPI 05127 BOOL 05128 WINAPI 05129 SetupDiClassGuidsFromNameExW( 05130 IN PCWSTR ClassName, 05131 OUT LPGUID ClassGuidList, 05132 IN DWORD ClassGuidListSize, 05133 OUT PDWORD RequiredSize, 05134 IN PCWSTR MachineName, OPTIONAL 05135 IN PVOID Reserved 05136 ); 05137 05138 #ifdef UNICODE 05139 #define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW 05140 #else 05141 #define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExA 05142 #endif 05143 05144 05145 WINSETUPAPI 05146 BOOL 05147 WINAPI 05148 SetupDiGetHwProfileFriendlyNameA( 05149 IN DWORD HwProfile, 05150 OUT PSTR FriendlyName, 05151 IN DWORD FriendlyNameSize, 05152 OUT PDWORD RequiredSize OPTIONAL 05153 ); 05154 05155 WINSETUPAPI 05156 BOOL 05157 WINAPI 05158 SetupDiGetHwProfileFriendlyNameW( 05159 IN DWORD HwProfile, 05160 OUT PWSTR FriendlyName, 05161 IN DWORD FriendlyNameSize, 05162 OUT PDWORD RequiredSize OPTIONAL 05163 ); 05164 05165 #ifdef UNICODE 05166 #define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameW 05167 #else 05168 #define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameA 05169 #endif 05170 05171 05172 WINSETUPAPI 05173 BOOL 05174 WINAPI 05175 SetupDiGetHwProfileFriendlyNameExA( 05176 IN DWORD HwProfile, 05177 OUT PSTR FriendlyName, 05178 IN DWORD FriendlyNameSize, 05179 OUT PDWORD RequiredSize, OPTIONAL 05180 IN PCSTR MachineName, OPTIONAL 05181 IN PVOID Reserved 05182 ); 05183 05184 WINSETUPAPI 05185 BOOL 05186 WINAPI 05187 SetupDiGetHwProfileFriendlyNameExW( 05188 IN DWORD HwProfile, 05189 OUT PWSTR FriendlyName, 05190 IN DWORD FriendlyNameSize, 05191 OUT PDWORD RequiredSize, OPTIONAL 05192 IN PCWSTR MachineName, OPTIONAL 05193 IN PVOID Reserved 05194 ); 05195 05196 #ifdef UNICODE 05197 #define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExW 05198 #else 05199 #define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExA 05200 #endif 05201 05202 05203 // 05204 // PageType values for SetupDiGetWizardPage API 05205 // 05206 #define SPWPT_SELECTDEVICE 0x00000001 05207 05208 // 05209 // Flags for SetupDiGetWizardPage API 05210 // 05211 #define SPWP_USE_DEVINFO_DATA 0x00000001 05212 05213 WINSETUPAPI 05214 HPROPSHEETPAGE 05215 WINAPI 05216 SetupDiGetWizardPage( 05217 IN HDEVINFO DeviceInfoSet, 05218 IN PSP_DEVINFO_DATA DeviceInfoData, OPTIONAL 05219 IN PSP_INSTALLWIZARD_DATA InstallWizardData, 05220 IN DWORD PageType, 05221 IN DWORD Flags 05222 ); 05223 05224 05225 WINSETUPAPI 05226 BOOL 05227 WINAPI 05228 SetupDiGetSelectedDevice( 05229 IN HDEVINFO DeviceInfoSet, 05230 OUT PSP_DEVINFO_DATA DeviceInfoData 05231 ); 05232 05233 05234 WINSETUPAPI 05235 BOOL 05236 WINAPI 05237 SetupDiSetSelectedDevice( 05238 IN HDEVINFO DeviceInfoSet, 05239 IN PSP_DEVINFO_DATA DeviceInfoData 05240 ); 05241 05242 05243 WINSETUPAPI 05244 BOOL 05245 WINAPI 05246 SetupDiGetActualSectionToInstallA( 05247 IN HINF InfHandle, 05248 IN PCSTR InfSectionName, 05249 OUT PSTR InfSectionWithExt, OPTIONAL 05250 IN DWORD InfSectionWithExtSize, 05251 OUT PDWORD RequiredSize, OPTIONAL 05252 OUT PSTR *Extension OPTIONAL 05253 ); 05254 05255 WINSETUPAPI 05256 BOOL 05257 WINAPI 05258 SetupDiGetActualSectionToInstallW( 05259 IN HINF InfHandle, 05260 IN PCWSTR InfSectionName, 05261 OUT PWSTR InfSectionWithExt, OPTIONAL 05262 IN DWORD InfSectionWithExtSize, 05263 OUT PDWORD RequiredSize, OPTIONAL 05264 OUT PWSTR *Extension OPTIONAL 05265 ); 05266 05267 #ifdef UNICODE 05268 #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW 05269 #else 05270 #define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA 05271 #endif 05272 05273 05274 #ifdef __cplusplus 05275 } 05276 #endif 05277 05278 #include <poppack.h> 05279 05280 #endif // _INC_SETUPAPI 05281
1.7.3