reactos/sdk/include/psdk/setupapi.h
2021-08-05 23:45:20 +02:00

2692 lines
110 KiB
C

#ifndef _SETUPAPI_H_
#define _SETUPAPI_H_
#include <commctrl.h>
#if defined(_WIN64)
#include <pshpack8.h>
#else
#include <pshpack1.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _SETUPAPI_
#define WINSETUPAPI DECLSPEC_IMPORT
#else
#define WINSETUPAPI
#endif
#define LINE_LEN 256
#define MAX_INF_STRING_LENGTH 4096
#define MAX_TITLE_LEN 60
#define MAX_INSTRUCTION_LEN 256
#define MAX_LABEL_LEN 30
#define MAX_SERVICE_NAME_LEN 256
#define MAX_SUBTITLE_LEN 256
#define SP_MAX_MACHINENAME_LENGTH (MAX_PATH + 3)
#define COPYFLG_WARN_IF_SKIP 0x00000001
#define COPYFLG_NOSKIP 0x00000002
#define COPYFLG_NOVERSIONCHECK 0x00000004
#define COPYFLG_FORCE_FILE_IN_USE 0x00000008
#define COPYFLG_NO_OVERWRITE 0x00000010
#define COPYFLG_NO_VERSION_DIALOG 0x00000020
#define COPYFLG_OVERWRITE_OLDER_ONLY 0x00000040
#define COPYFLG_REPLACEONLY 0x00000400
#define COPYFLG_NODECOMP 0x00000800
#define COPYFLG_REPLACE_BOOT_FILE 0x00001000
#define COPYFLG_NOPRUNE 0x00002000
#define DELFLG_IN_USE 0x00000001
#define DELFLG_IN_USE1 0x00010000
#define DI_REMOVEDEVICE_GLOBAL 0x00000001
#define DI_REMOVEDEVICE_CONFIGSPECIFIC 0x00000002
#define DI_UNREMOVEDEVICE_CONFIGSPECIFIC 0x00000002
#define DI_SHOWOEM 0x00000001
#define DI_SHOWCOMPAT 0x00000002
#define DI_SHOWCLASS 0x00000004
#define DI_SHOWALL 0x00000007
#define DI_NOVCP 0x00000008
#define DI_DIDCOMPAT 0x00000010
#define DI_DIDCLASS 0x00000020
#define DI_AUTOASSIGNRES 0x00000040
#define DI_NEEDRESTART 0x00000080
#define DI_NEEDREBOOT 0x00000100
#define DI_NOBROWSE 0x00000200
#define DI_MULTMFGS 0x00000400
#define DI_DISABLED 0x00000800
#define DI_GENERALPAGE_ADDED 0x00001000
#define DI_RESOURCEPAGE_ADDED 0x00002000
#define DI_PROPERTIES_CHANGE 0x00004000
#define DI_INF_IS_SORTED 0x00008000
#define DI_ENUMSINGLEINF 0x00010000
#define DI_DONOTCALLCONFIGMG 0x00020000
#define DI_INSTALLDISABLED 0x00040000
#define DI_COMPAT_FROM_CLASS 0x00080000
#define DI_CLASSINSTALLPARAMS 0x00100000
#define DI_NODI_DEFAULTACTION 0x00200000
#define DI_QUIETINSTALL 0x00800000
#define DI_NOFILECOPY 0x01000000
#define DI_FORCECOPY 0x02000000
#define DI_DRIVERPAGE_ADDED 0x04000000
#define DI_USECI_SELECTSTRINGS 0x08000000
#define DI_OVERRIDE_INFFLAGS 0x10000000
#define DI_PROPS_NOCHANGEUSAGE 0x20000000
#define DI_NOSELECTICONS 0x40000000
#define DI_NOWRITE_IDS 0x80000000
#define DI_FLAGSEX_USEOLDINFSEARCH 0x00000001
#define DI_FLAGSEX_AUTOSELECTRANK0 0x00000002
#define DI_FLAGSEX_CI_FAILED 0x00000004
#define DI_FLAGSEX_DIDINFOLIST 0x00000010
#define DI_FLAGSEX_DIDCOMPATINFO 0x00000020
#define DI_FLAGSEX_FILTERCLASSES 0x00000040
#define DI_FLAGSEX_SETFAILEDINSTALL 0x00000080
#define DI_FLAGSEX_DEVICECHANGE 0x00000100
#define DI_FLAGSEX_ALWAYSWRITEIDS 0x00000200
#define DI_FLAGSEX_PROPCHANGE_PENDING 0x00000400
#define DI_FLAGSEX_ALLOWEXCLUDEDDRVS 0x00000800
#define DI_FLAGSEX_NOUIONQUERYREMOVE 0x00001000
#define DI_FLAGSEX_USECLASSFORCOMPAT 0x00002000
#define DI_FLAGSEX_OLDINF_IN_CLASSLIST 0x00004000
#define DI_FLAGSEX_NO_DRVREG_MODIFY 0x00008000
#define DI_FLAGSEX_IN_SYSTEM_SETUP 0x00010000
#define DI_FLAGSEX_INET_DRIVER 0x00020000
#define DI_FLAGSEX_APPENDDRIVERLIST 0x00040000
#define DI_FLAGSEX_PREINSTALLBACKUP 0x00080000
#define DI_FLAGSEX_BACKUPONREPLACE 0x00100000
#define DI_FLAGSEX_DRIVERLIST_FROM_URL 0x00200000
#define DI_FLAGSEX_RESERVED1 0x00400000
#define DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS 0x00800000
#define DI_FLAGSEX_POWERPAGE_ADDED 0x01000000
#if (_SETUPAPI_VER >= 0x0501)
#define DI_FLAGSEX_FILTERSIMILARDRIVERS 0x02000000
#define DI_FLAGSEX_INSTALLEDDRIVER 0x04000000
#define DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE 0x08000000
#define DI_FLAGSEX_ALTPLATFORM_DRVSEARCH 0x10000000
#define DI_FLAGSEX_RESTART_DEVICE_ONLY 0x20000000
#endif
#define DIBCI_NOINSTALLCLASS 0x00000001
#define DIBCI_NODISPLAYCLASS 0x00000002
#define DICD_GENERATE_ID 0x00000001
#define DICD_INHERIT_CLASSDRVS 0x00000002
#define DICS_ENABLE 1
#define DICS_FLAG_GLOBAL 1
#define DICS_DISABLE 2
#define DICS_FLAG_CONFIGSPECIFIC 2
#define DICS_PROPCHANGE 3
#define DICS_START 4
#define DICS_FLAG_CONFIGGENERAL 4
#define DICS_STOP 5
#define DIF_SELECTDEVICE 1
#define DIF_INSTALLDEVICE 2
#define DIF_ASSIGNRESOURCES 3
#define DIF_PROPERTIES 4
#define DIF_REMOVE 5
#define DIF_FIRSTTIMESETUP 6
#define DIF_FOUNDDEVICE 7
#define DIF_SELECTCLASSDRIVERS 8
#define DIF_VALIDATECLASSDRIVERS 9
#define DIF_INSTALLCLASSDRIVERS 10
#define DIF_CALCDISKSPACE 11
#define DIF_DESTROYPRIVATEDATA 12
#define DIF_VALIDATEDRIVER 13
#define DIF_MOVEDEVICE 14
#define DIF_DETECT 15
#define DIF_INSTALLWIZARD 16
#define DIF_DESTROYWIZARDDATA 17
#define DIF_PROPERTYCHANGE 18
#define DIF_ENABLECLASS 19
#define DIF_DETECTVERIFY 20
#define DIF_INSTALLDEVICEFILES 21
#define DIF_UNREMOVE 22
#define DIF_SELECTBESTCOMPATDRV 23
#define DIF_ALLOW_INSTALL 24
#define DIF_REGISTERDEVICE 25
#define DIF_NEWDEVICEWIZARD_PRESELECT 26
#define DIF_NEWDEVICEWIZARD_SELECT 27
#define DIF_NEWDEVICEWIZARD_PREANALYZE 28
#define DIF_NEWDEVICEWIZARD_POSTANALYZE 29
#define DIF_NEWDEVICEWIZARD_FINISHINSTALL 30
#define DIF_UNUSED1 31
#define DIF_INSTALLINTERFACES 32
#define DIF_DETECTCANCEL 33
#define DIF_REGISTER_COINSTALLERS 34
#define DIF_ADDPROPERTYPAGE_ADVANCED 35
#define DIF_ADDPROPERTYPAGE_BASIC 36
#define DIF_RESERVED1 37
#define DIF_TROUBLESHOOTER 38
#define DIF_POWERMESSAGEWAKE 39
#define DIF_ADDREMOTEPROPERTYPAGE_ADVANCED 40
#define DIF_UPDATEDRIVER_UI 41
#define DIF_FINISHINSTALL_ACTION 42
#define DIF_RESERVED2 48
#define DIGCDP_FLAG_BASIC 0x00000001
#define DIGCDP_FLAG_ADVANCED 0x00000002
#if (_SETUPAPI_VER >= 0x0501)
#define DIGCDP_FLAG_REMOTE_BASIC 0x00000003
#define DIGCDP_FLAG_REMOTE_ADVANCED 0x00000004
#endif
#define DIGCF_DEFAULT 0x00000001
#define DIGCF_PRESENT 0x00000002
#define DIGCF_ALLCLASSES 0x00000004
#define DIGCF_PROFILE 0x00000008
#define DIGCF_DEVICEINTERFACE 0x00000010
#define DIGCF_INTERFACEDEVICE 0x00000010
#define DIOCR_INSTALLER 0x00000001
#define DIOCR_INTERFACE 0x00000002
#define DIODI_NO_ADD 0x00000001
#define DIOD_INHERIT_CLASSDRVS 0x00000002
#define DIOD_CANCEL_REMOVE 0x00000004
#define DIREG_DEV 0x00000001
#define DIREG_DRV 0x00000002
#define DIREG_BOTH 0x00000004
#define DIRID_ABSOLUTE -1
#define DIRID_NULL 0
#define DIRID_SRCPATH 1
#define DIRID_WINDOWS 10
#define DIRID_SYSTEM 11
#define DIRID_DRIVERS 12
#define DIRID_INF 17
#define DIRID_HELP 18
#define DIRID_FONTS 20
#define DIRID_VIEWERS 21
#define DIRID_COLOR 23
#define DIRID_APPS 24
#define DIRID_SHARED 25
#define DIRID_BOOT 30
#define DIRID_SYSTEM16 50
#define DIRID_SPOOL 51
#define DIRID_SPOOLDRIVERS 52
#define DIRID_USERPROFILE 53
#define DIRID_LOADER 54
#define DIRID_PRINTPROCESSOR 55
#define DIRID_COMMON_STARTMENU 16406
#define DIRID_COMMON_PROGRAMS 16407
#define DIRID_COMMON_STARTUP 16408
#define DIRID_COMMON_DESKTOPDIRECTORY 16409
#define DIRID_COMMON_FAVORITES 16415
#define DIRID_COMMON_APPDATA 16419
#define DIRID_PROGRAM_FILES 16422
#define DIRID_SYSTEM_X86 16425
#define DIRID_PROGRAM_FILES_X86 16426
#define DIRID_PROGRAM_FILES_COMMON 16427
#define DIRID_PROGRAM_FILES_COMMONX86 16428
#define DIRID_COMMON_TEMPLATES 16429
#define DIRID_COMMON_DOCUMENTS 16430
#define DIRID_USER 0x8000
#define DIRID_ABSOLUTE_16BIT 0xffff
#define DIRID_IOSUBSYS DIRID_DRIVERS
#define DIRID_DEFAULT DIRID_SYSTEM
#define DMI_MASK 0x00000001
#define DMI_BKCOLOR 0x00000002
#define DMI_USERECT 0x00000004
#define DN_ROOT_ENUMERATED 0x00000001
#define DN_DRIVER_LOADED 0x00000002
#define DN_ENUM_LOADED 0x00000004
#define DN_STARTED 0x00000008
#define DN_MANUAL 0x00000010
#define DN_NEED_TO_ENUM 0x00000020
#define DN_NOT_FIRST_TIME 0x00000040
#define DN_HARDWARE_ENUM 0x00000080
#define DN_LIAR 0x00000100
#define DN_HAS_MARK 0x00000200
#define DN_HAS_PROBLEM 0x00000400
#define DN_FILTERED 0x00000800
#define DN_MOVED 0x00001000
#define DN_DISABLEABLE 0x00002000
#define DN_REMOVABLE 0x00004000
#define DN_PRIVATE_PROBLEM 0x00008000
#define DN_MF_PARENT 0x00010000
#define DN_MF_CHILD 0x00020000
#define DN_WILL_BE_REMOVED 0x00040000
#define DN_NOT_FIRST_TIMEE 0x00080000
#define DN_STOP_FREE_RES 0x00100000
#define DN_REBAL_CANDIDATE 0x00200000
#define DN_BAD_PARTIAL 0x00400000
#define DN_NT_ENUMERATOR 0x00800000
#define DN_NT_DRIVER 0x01000000
#define DN_NEEDS_LOCKING 0x02000000
#define DN_ARM_WAKEUP 0x04000000
#define DN_APM_ENUMERATOR 0x08000000
#define DN_APM_DRIVER 0x10000000
#define DN_SILENT_INSTALL 0x20000000
#define DN_NO_SHOW_IN_DM 0x40000000
#define DN_BOOT_LOG_PROB 0x80000000
#define DNF_DUPDESC 0x00000001
#define DNF_OLDDRIVER 0x00000002
#define DNF_EXCLUDEFROMLIST 0x00000004
#define DNF_NODRIVER 0x00000008
#define DNF_LEGACYINF 0x00000010
#define DNF_CLASS_DRIVER 0x00000020
#define DNF_COMPATIBLE_DRIVER 0x00000040
#define DNF_INET_DRIVER 0x00000080
#define DNF_UNUSED1 0x00000100
#define DNF_INDEXED_DRIVER 0x00000200
#define DNF_OLD_INET_DRIVER 0x00000400
#define DNF_BAD_DRIVER 0x00000800
#define DNF_DUPPROVIDER 0x00001000
#define DPROMPT_SUCCESS 0
#define DPROMPT_CANCEL 1
#define DPROMPT_SKIPFILE 2
#define DPROMPT_BUFFERTOOSMALL 3
#define DPROMPT_OUTOFMEMORY 4
#define DRIVER_HARDWAREID_RANK 0x00000FFF
#if (_SETUPAPI_VER >= 0x0600)
#define DRIVER_UNTRUSTED_RANK 0x80000000
#else
#define DRIVER_UNTRUSTED_RANK 0x00008000
#endif
#define DYNAWIZ_FLAG_PAGESADDED 0x00000001
#define DYNAWIZ_FLAG_INSTALLDET_NEXT 0x00000002
#define DYNAWIZ_FLAG_INSTALLDET_PREV 0x00000004
#define DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT 0x00000008
#define ENABLECLASS_QUERY 0
#define ENABLECLASS_SUCCESS 1
#define ENABLECLASS_FAILURE 2
#define ERROR_EXPECTED_SECTION_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0)
#define ERROR_BAD_SECTION_NAME_LINE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|1)
#define ERROR_SECTION_NAME_TOO_LONG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|2)
#define ERROR_GENERAL_SYNTAX (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|3)
#define ERROR_WRONG_INF_STYLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x100)
#define ERROR_NOT_INSTALLED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x1000)
#define ERROR_SECTION_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x101)
#define ERROR_LINE_NOT_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x102)
#define ERROR_NO_BACKUP (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x103)
#define ERROR_NO_ASSOCIATED_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x200)
#define ERROR_CLASS_MISMATCH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x201)
#define ERROR_DUPLICATE_FOUND (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x202)
#define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)
#define ERROR_KEY_DOES_NOT_EXIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x204)
#define ERROR_INVALID_DEVINST_NAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x205)
#define ERROR_INVALID_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x206)
#define ERROR_DEVINST_ALREADY_EXISTS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x207)
#define ERROR_DEVINFO_NOT_REGISTERED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x208)
#define ERROR_INVALID_REG_PROPERTY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x209)
#define ERROR_NO_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20A)
#define ERROR_NO_SUCH_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20B)
#define ERROR_CANT_LOAD_CLASS_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20C)
#define ERROR_INVALID_CLASS_INSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20D)
#define ERROR_DI_DO_DEFAULT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20E)
#define ERROR_DI_NOFILECOPY (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x20F)
#define ERROR_INVALID_HWPROFILE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x210)
#define ERROR_NO_DEVICE_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x211)
#define ERROR_DEVINFO_LIST_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x212)
#define ERROR_DEVINFO_DATA_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x213)
#define ERROR_DI_BAD_PATH (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x214)
#define ERROR_NO_CLASSINSTALL_PARAMS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x215)
#define ERROR_FILEQUEUE_LOCKED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x216)
#define ERROR_BAD_SERVICE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x217)
#define ERROR_NO_CLASS_DRIVER_LIST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x218)
#define ERROR_NO_ASSOCIATED_SERVICE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x219)
#define ERROR_NO_DEFAULT_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21A)
#define ERROR_DEVICE_INTERFACE_ACTIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21B)
#define ERROR_DEVICE_INTERFACE_REMOVED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21C)
#define ERROR_BAD_INTERFACE_INSTALLSECT (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21D)
#define ERROR_NO_SUCH_INTERFACE_CLASS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21E)
#define ERROR_INVALID_REFERENCE_STRING (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x21F)
#define ERROR_INVALID_MACHINENAME (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x220)
#define ERROR_REMOTE_COMM_FAILURE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x221)
#define ERROR_MACHINE_UNAVAILABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x222)
#define ERROR_NO_CONFIGMGR_SERVICES (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x223)
#define ERROR_INVALID_PROPPAGE_PROVIDER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x224)
#define ERROR_NO_SUCH_DEVICE_INTERFACE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x225)
#define ERROR_DI_POSTPROCESSING_REQUIRED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x226)
#define ERROR_INVALID_COINSTALLER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x227)
#define ERROR_NO_COMPAT_DRIVERS (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x228)
#define ERROR_NO_DEVICE_ICON (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x229)
#define ERROR_INVALID_INF_LOGCONFIG (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22A)
#define ERROR_DI_DONT_INSTALL (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22B)
#define ERROR_INVALID_FILTER_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22C)
#define ERROR_NON_WINDOWS_NT_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22D)
#define ERROR_NON_WINDOWS_DRIVER (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22E)
#define ERROR_NO_CATALOG_FOR_OEM_INF (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x22F)
#define ERROR_DEVINSTALL_QUEUE_NONNATIVE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x230)
#define ERROR_NOT_DISABLEABLE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x231)
#define ERROR_CANT_REMOVE_DEVINST (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x232)
#define ERROR_IN_WOW64 (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x235)
#define ERROR_INTERFACE_DEVICE_ACTIVE ERROR_DEVICE_INTERFACE_ACTIVE
#define ERROR_INTERFACE_DEVICE_REMOVED ERROR_DEVICE_INTERFACE_REMOVED
#define ERROR_NO_DEFAULT_INTERFACE_DEVICE ERROR_NO_DEFAULT_DEVICE_INTERFACE
#define ERROR_NO_SUCH_INTERFACE_DEVICE ERROR_NO_SUCH_DEVICE_INTERFACE
#define ERROR_WRONG_INF_TYPE (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x24A)
#define FILEOP_COPY 0
#define FILEOP_ABORT 0
#define FILE_COMPRESSION_NONE 0
#define FILEOP_RENAME 1
#define FILEOP_DOIT 1
#define FILE_COMPRESSION_WINLZA 1
#define FILEOP_DELETE 2
#define FILEOP_SKIP 2
#define FILE_COMPRESSION_MSZIP 2
#define FILEOP_BACKUP 3
#define FILE_COMPRESSION_NTCAB 3
#define FILEOP_NEWPATH 4
#define FILEOP_RETRY FILEOP_DOIT
#define FLG_ADDREG_TYPE_SZ 0x00000000
#define FLG_ADDREG_BINVALUETYPE 0x00000001
#define FLG_ADDREG_NOCLOBBER 0x00000002
#define FLG_ADDREG_DELVAL 0x00000004
#define FLG_ADDREG_APPEND 0x00000008
#define FLG_ADDREG_KEYONLY 0x00000010
#define FLG_ADDREG_OVERWRITEONLY 0x00000020
#if (_SETUPAPI_VER >= 0x0501)
#define FLG_ADDREG_64BITKEY 0x00001000
#define FLG_ADDREG_KEYONLY_COMMON 0x00002000
#define FLG_ADDREG_32BITKEY 0x00004000
#define FLG_ADDREG_DELREG_BIT 0x00008000
#endif
#define FLG_ADDREG_TYPE_MULTI_SZ 0x00010000
#define FLG_ADDREG_TYPE_EXPAND_SZ 0x00020000
#define FLG_ADDREG_TYPE_BINARY (0x00000000|FLG_ADDREG_BINVALUETYPE)
#define FLG_ADDREG_TYPE_DWORD (0x00010000|FLG_ADDREG_BINVALUETYPE)
#define FLG_ADDREG_TYPE_NONE (0x00020000|FLG_ADDREG_BINVALUETYPE)
#define FLG_ADDREG_TYPE_MASK (0xFFFF0000|FLG_ADDREG_BINVALUETYPE)
#define FLG_DELREG_VALUE 0x00000000
#if (_SETUPAPI_VER >= 0x0501)
#define FLG_DELREG_TYPE_MASK FLG_ADDREG_TYPE_MASK
#define FLG_DELREG_TYPE_SZ FLG_ADDREG_TYPE_SZ
#define FLG_DELREG_TYPE_MULTI_SZ FLG_ADDREG_TYPE_MULTI_SZ
#define FLG_DELREG_TYPE_EXPAND_SZ FLG_ADDREG_TYPE_EXPAND_SZ
#define FLG_DELREG_TYPE_BINARY FLG_ADDREG_TYPE_BINARY
#define FLG_DELREG_TYPE_DWORD FLG_ADDREG_TYPE_DWORD
#define FLG_DELREG_TYPE_NONE FLG_ADDREG_TYPE_NONE
#define FLG_DELREG_64BITKEY FLG_ADDREG_64BITKEY
#define FLG_DELREG_KEYONLY_COMMON FLG_ADDREG_KEYONLY_COMMON
#define FLG_DELREG_32BITKEY FLG_ADDREG_32BITKEY
#define FLG_DELREG_OPERATION_MASK 0x000000FE
#define FLG_DELREG_MULTI_SZ_DELSTRING (0x00000002|FLG_DELREG_TYPE_MULTI_SZ|FLG_ADDREG_DELREG_BIT)
#endif
#define FLG_BITREG_CLEARBITS 0x00000000
#define FLG_BITREG_SETBITS 0x00000001
#define FLG_PROFITEM_CURRENTUSER 0x00000001
#define FLG_PROFITEM_DELETE 0x00000002
#define FLG_PROFITEM_GROUP 0x00000004
#define FLG_PROFITEM_CSIDL 0x00000008
#define FLG_REGSVR_DLLREGISTER 0x00000001
#define FLG_REGSVR_DLLINSTALL 0x00000002
#define MIN_IDD_DYNAWIZ_RESOURCE_ID 10000
#define MAX_IDD_DYNAWIZ_RESOURCE_ID 11000
#define IDD_DYNAWIZ_FIRSTPAGE 10000
#define IDD_DYNAWIZ_SELECT_PREVPAGE 10001
#define IDD_DYNAWIZ_SELECT_NEXTPAGE 10002
#define IDD_DYNAWIZ_ANALYZE_PREVPAGE 10003
#define IDD_DYNAWIZ_ANALYZE_NEXTPAGE 10004
#define IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE 10006
#define IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE 10007
#define IDD_DYNAWIZ_INSTALLDETECTED_NODEVS 10008
#define IDD_DYNAWIZ_SELECTDEV_PAGE 10009
#define IDD_DYNAWIZ_ANALYZEDEV_PAGE 10010
#define IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE 10011
#define IDD_DYNAWIZ_SELECTCLASS_PAGE 10012
#define IDF_NOBROWSE 0x00000001
#define IDF_NOSKIP 0x00000002
#define IDF_NODETAILS 0x00000004
#define IDF_NOCOMPRESSED 0x00000008
#define IDF_CHECKFIRST 0x00000100
#define IDF_NOBEEP 0x00000200
#define IDF_NOFOREGROUND 0x00000400
#define IDF_WARNIFSKIP 0x00000800
#define IDF_OEMDISK 0x80000000
#define IDI_RESOURCEFIRST 159
#define IDI_RESOURCE 159
#define IDI_RESOURCELAST 161
#define IDI_RESOURCEOVERLAYFIRST 161
#define IDI_RESOURCEOVERLAYLAST 161
#define IDI_CONFLICT 161
#define IDI_PROBLEM_OVL 500
#define IDI_DISABLED_OVL 501
#define IDI_FORCED_OVL 502
#define IDI_CLASSICON_OVERLAYFIRST 500
#define IDI_CLASSICON_OVERLAYLAST 502
#define INF_STYLE_NONE 0x00000000
#define INF_STYLE_OLDNT 0x00000001
#define INF_STYLE_WIN4 0x00000002
#define INF_STYLE_CACHE_ENABLE 0x00000010
#define INF_STYLE_CACHE_DISABLE 0x00000020
#define INFINFO_INF_SPEC_IS_HINF 1
#define INFINFO_INF_NAME_IS_ABSOLUTE 2
#define INFINFO_DEFAULT_SEARCH 3
#define INFINFO_REVERSE_DEFAULT_SEARCH 4
#define INFINFO_INF_PATH_LIST_SEARCH 5
#define LogSevInformation 0
#define LogSevWarning 1
#define LogSevError 2
#define LogSevFatalError 3
#define LogSevMaximum 4
#define LogSeverity DWORD
#define MAX_INSTALLWIZARD_DYNAPAGES 20
#define NDW_INSTALLFLAG_DIDFACTDEFS 0x00000001
#define NDW_INSTALLFLAG_HARDWAREALLREADYIN 0x00000002
#define NDW_INSTALLFLAG_NEEDSHUTDOWN 0x00000200
#define NDW_INSTALLFLAG_EXPRESSINTRO 0x00000400
#define NDW_INSTALLFLAG_SKIPISDEVINSTALLED 0x00000800
#define NDW_INSTALLFLAG_NODETECTEDDEVS 0x00001000
#define NDW_INSTALLFLAG_INSTALLSPECIFIC 0x00002000
#define NDW_INSTALLFLAG_SKIPCLASSLIST 0x00004000
#define NDW_INSTALLFLAG_CI_PICKED_OEM 0x00008000
#define NDW_INSTALLFLAG_PCMCIAMODE 0x00010000
#define NDW_INSTALLFLAG_PCMCIADEVICE 0x00020000
#define NDW_INSTALLFLAG_USERCANCEL 0x00040000
#define NDW_INSTALLFLAG_KNOWNCLASS 0x00080000
#define NDW_INSTALLFLAG_NEEDRESTART 0x00000080
#define NDW_INSTALLFLAG_NEEDREBOOT 0x00000100
#define SETDIRID_NOT_FULL_PATH 0x00000001
#define SP_COPY_DELETESOURCE 0x0000001
#define SP_COPY_REPLACEONLY 0x0000002
#define SP_COPY_NEWER 0x0000004
#define SP_COPY_NEWER_OR_SAME 0x0000004
#define SP_COPY_NOOVERWRITE 0x0000008
#define SP_COPY_NODECOMP 0x0000010
#define SP_COPY_LANGUAGEAWARE 0x0000020
#define SP_COPY_SOURCE_ABSOLUTE 0x0000040
#define SP_COPY_SOURCEPATH_ABSOLUTE 0x0000080
#define SP_COPY_IN_USE_NEEDS_REBOOT 0x0000100
#define SP_COPY_FORCE_IN_USE 0x0000200
#define SP_COPY_NOSKIP 0x0000400
#define SP_COPY_FORCE_NOOVERWRITE 0x0001000
#define SP_COPY_FORCE_NEWER 0x0002000
#define SP_COPY_WARNIFSKIP 0x0004000
#define SP_COPY_NOBROWSE 0x0008000
#define SP_COPY_NEWER_ONLY 0x0010000
#define SP_COPY_SOURCE_SIS_MASTER 0x0020000
#define SP_COPY_OEMINF_CATALOG_ONLY 0x0040000
#define SP_COPY_REPLACE_BOOT_FILE 0x0080000
#define SP_COPY_NOPRUNE 0x0100000
#define SP_FLAG_CABINETCONTINUATION 0x0000800
#define SPCRP_SECURITY 23
#define SPCRP_SECURITY_SDS 24
#define SPCRP_DEVTYPE 25
#define SPCRP_EXCLUSIVE 26
#define SPCRP_CHARACTERISTICS 27
#define SPCRP_MAXIMUM_PROPERTY 28
#define SPDIT_NODRIVER 0
#define SPDIT_CLASSDRIVER 1
#define SPDIT_COMPATDRIVER 2
#define SPDRP_DEVICEDESC 0
#define SPDRP_HARDWAREID 1
#define SPDRP_COMPATIBLEIDS 2
#define SPDRP_UNUSED0 3
#define SPDRP_SERVICE 4
#define SPDRP_UNUSED1 5
#define SPDRP_UNUSED2 6
#define SPDRP_CLASS 7
#define SPDRP_CLASSGUID 8
#define SPDRP_DRIVER 9
#define SPDRP_CONFIGFLAGS 10
#define SPDRP_MFG 11
#define SPDRP_FRIENDLYNAME 12
#define SPDRP_LOCATION_INFORMATION 13
#define SPDRP_PHYSICAL_DEVICE_OBJECT_NAME 14
#define SPDRP_CAPABILITIES 15
#define SPDRP_UI_NUMBER 16
#define SPDRP_UPPERFILTERS 17
#define SPDRP_LOWERFILTERS 18
#define SPDRP_BUSTYPEGUID 19
#define SPDRP_LEGACYBUSTYPE 20
#define SPDRP_BUSNUMBER 21
#define SPDRP_ENUMERATOR_NAME 22
#define SPDRP_SECURITY 23
#define SPDRP_SECURITY_SDS 24
#define SPDRP_DEVTYPE 25
#define SPDRP_EXCLUSIVE 26
#define SPDRP_CHARACTERISTICS 27
#define SPDRP_ADDRESS 28
#define SPDRP_UI_NUMBER_DESC_FORMAT 29
#define SPDRP_DEVICE_POWER_DATA 30
#define SPDRP_REMOVAL_POLICY 31
#define SPDRP_REMOVAL_POLICY_HW_DEFAULT 32
#define SPDRP_REMOVAL_POLICY_OVERRIDE 33
#define SPDRP_INSTALL_STATE 34
#define SPDRP_MAXIMUM_PROPERTY 35
#define SPDSL_IGNORE_DISK 1
#define SPDSL_DISALLOW_NEGATIVE_ADJUST 2
#define SPFILENOTIFY_STARTQUEUE 1
#define SPFILENOTIFY_ENDQUEUE 2
#define SPFILENOTIFY_STARTSUBQUEUE 3
#define SPFILENOTIFY_ENDSUBQUEUE 4
#define SPFILENOTIFY_STARTDELETE 5
#define SPFILENOTIFY_ENDDELETE 6
#define SPFILENOTIFY_DELETEERROR 7
#define SPFILENOTIFY_STARTRENAME 8
#define SPFILENOTIFY_ENDRENAME 9
#define SPFILENOTIFY_RENAMEERROR 10
#define SPFILENOTIFY_STARTCOPY 11
#define SPFILENOTIFY_ENDCOPY 12
#define SPFILENOTIFY_COPYERROR 13
#define SPFILENOTIFY_NEEDMEDIA 14
#define SPFILENOTIFY_QUEUESCAN 15
#define SPFILENOTIFY_CABINETINFO 16
#define SPFILENOTIFY_FILEINCABINET 17
#define SPFILENOTIFY_NEEDNEWCABINET 18
#define SPFILENOTIFY_FILEEXTRACTED 19
#define SPFILENOTIFY_FILEOPDELAYED 20
#define SPFILENOTIFY_STARTBACKUP 21
#define SPFILENOTIFY_BACKUPERROR 22
#define SPFILENOTIFY_ENDBACKUP 23
#define SPFILENOTIFY_QUEUESCAN_EX 24
#define SPFILENOTIFY_STARTREGISTRATION 25
#define SPFILENOTIFY_ENDREGISTRATION 26
#define SPFILENOTIFY_LANGMISMATCH 0x00010000
#define SPFILENOTIFY_TARGETEXISTS 0x00020000
#define SPFILENOTIFY_TARGETNEWER 0x00040000
#define SPFILELOG_SYSTEMLOG 0x00000001
#define SPFILELOG_OEMFILE 0x00000001
#define SPFILELOG_FORCENEW 0x00000002
#define SPFILELOG_QUERYONLY 0x00000004
#define SPFILEQ_FILE_IN_USE 0x00000001
#define SPFILEQ_REBOOT_RECOMMENDED 0x00000002
#define SPFILEQ_REBOOT_IN_PROGRESS 0x00000004
#define SPINT_ACTIVE 0x00000001
#define SPINT_DEFAULT 0x00000002
#define SPINT_REMOVED 0x00000004
#define SPID_ACTIVE 0x00000001
#define SPID_DEFAULT 0x00000002
#define SPID_REMOVED 0x00000004
#define SPINST_LOGCONFIG 0x00000001
#define SPINST_INIFILES 0x00000002
#define SPINST_REGISTRY 0x00000004
#define SPINST_INI2REG 0x00000008
#define SPINST_FILES 0x00000010
#define SPINST_BITREG 0x00000020
#define SPINST_REGSVR 0x00000040
#define SPINST_UNREGSVR 0x00000080
#define SPINST_PROFILEITEMS 0x00000100
#if (_SETUPAPI_VER >= 0x0501)
#define SPINST_COPYINF 0x00000200
#define SPINST_ALL 0x000003ff
#else
#define SPINST_ALL 0x000001ff
#endif
#define SPINST_SINGLESECTION 0x00010000
#define SPINST_LOGCONFIG_IS_FORCED 0x00020000
#define SPINST_LOGCONFIGS_ARE_OVERRIDES 0x00040000
#if (_SETUPAPI_VER >= 0x0501)
#define SPINST_REGISTERCALLBACKAWARE 0x00080000
#endif
#define SPOST_NONE 0
#define SPOST_PATH 1
#define SPOST_URL 2
#define SPOST_MAX 3
#define SPPSR_SELECT_DEVICE_RESOURCES 1
#define SPPSR_ENUM_BASIC_DEVICE_PROPERTIES 2
#define SPPSR_ENUM_ADV_DEVICE_PROPERTIES 3
#define SPQ_SCAN_FILE_PRESENCE 0x00000001
#define SPQ_DELAYED_COPY 0x00000001
#define SPQ_SCAN_FILE_VALIDITY 0x00000002
#define SPQ_SCAN_USE_CALLBACK 0x00000004
#define SPQ_SCAN_USE_CALLBACKEX 0x00000008
#define SPQ_SCAN_INFORM_USER 0x00000010
#define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020
#define SPRDI_FIND_DUPS 0x00000001
#define SPSVCINST_TAGTOFRONT 0x00000001
#define SPSVCINST_ASSOCSERVICE 0x00000002
#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004
#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008
#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010
#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020
#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040
#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080
#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100
#define SPSVCINST_STOPSERVICE 0x00000200
#define SPSVCINST_CLOBBER_SECURITY 0x00000400
#define SPSVCINST_STARTSERVICE 0x00000800
#define SPWPT_SELECTDEVICE 0x00000001
#define SPWP_USE_DEVINFO_DATA 0x00000001
#define SRCINFO_PATH 1
#define SRCINFO_TAGFILE 2
#define SRCINFO_DESCRIPTION 3
#define SRCINFO_FLAGS 4
#define SRCLIST_TEMPORARY 0x00000001
#define SRCLIST_NOBROWSE 0x00000002
#define SRCLIST_SYSTEM 0x00000010
#define SRCLIST_USER 0x00000020
#define SRCLIST_SYSIFADMIN 0x00000040
#define SRCLIST_SUBDIRS 0x00000100
#define SRCLIST_APPEND 0x00000200
#define SRCLIST_NOSTRIPPLATFORM 0x00000400
#define SPREG_SUCCESS 0x00000000
#define SPREG_LOADLIBRARY 0x00000001
#define SPREG_GETPROCADDR 0x00000002
#define SPREG_REGSVR 0x00000003
#define SPREG_DLLINSTALL 0x00000004
#define SPREG_TIMEOUT 0x00000005
#define SPREG_UNKNOWN 0xFFFFFFFF
/* Flags for StringTableAddString and StringTableLookUpString */
#define ST_CASE_SENSITIVE_COMPARE 0x00000001
/* SetupUninstallOEMInf Flags values */
#define SUOI_FORCEDELETE 0x00000001
#ifndef RC_INVOKED
typedef PVOID HINF;
typedef PVOID HDSKSPC;
typedef PVOID HDEVINFO;
typedef PVOID HSPFILEQ;
typedef PVOID HSPFILELOG;
typedef UINT DI_FUNCTION;
typedef PVOID HSTRING_TABLE;
typedef enum {
SetupFileLogSourceFilename,
SetupFileLogChecksum,
SetupFileLogDiskTagfile,
SetupFileLogDiskDescription,
SetupFileLogOtherInfo,
SetupFileLogMax
} SetupFileLogInfo;
typedef struct _INFCONTEXT {
PVOID Inf;
PVOID CurrentInf;
UINT Section;
UINT Line;
} INFCONTEXT, *PINFCONTEXT;
typedef struct _SP_INF_INFORMATION {
DWORD InfStyle;
DWORD InfCount;
BYTE VersionData[ANYSIZE_ARRAY];
} SP_INF_INFORMATION, *PSP_INF_INFORMATION;
typedef struct _SP_INF_SIGNER_INFO_A {
DWORD cbSize;
CHAR CatalogFile;
CHAR DigitalSigner;
CHAR DigitalSignerVersion;
} SP_INF_SIGNER_INFO_A, *PSP_INF_SIGNER_INFO_A;
typedef struct _SP_INF_SIGNER_INFO_W {
DWORD cbSize;
WCHAR CatalogFile;
WCHAR DigitalSigner;
WCHAR DigitalSignerVersion;
} SP_INF_SIGNER_INFO_W, *PSP_INF_SIGNER_INFO_W;
typedef struct _SP_ALTPLATFORM_INFO_V1 {
DWORD cbSize;
DWORD Platform;
DWORD MajorVersion;
DWORD MinorVersion;
WORD ProcessorArchitecture;
WORD Reserved;
} SP_ALTPLATFORM_INFO_V1, *PSP_ALTPLATFORM_INFO_V1;
typedef struct _SP_ALTPLATFORM_INFO_V2 {
DWORD cbSize;
DWORD Platform;
DWORD MajorVersion;
DWORD MinorVersion;
WORD ProcessorArchitecture;
union
{
WORD Reserved;
WORD Flags;
} DUMMYUNIONNAME;
DWORD FirstValidatedMajorVersion;
DWORD FirstValidatedMinorVersion;
} SP_ALTPLATFORM_INFO_V2, *PSP_ALTPLATFORM_INFO_V2;
#if _WIN32_WINNT <= 0x0500
typedef SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO;
typedef PSP_ALTPLATFORM_INFO_V1 PSP_ALTPLATFORM_INFO;
#else
typedef SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO;
typedef PSP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO;
#endif
typedef struct _SP_ORIGINAL_FILE_INFO_A {
DWORD cbSize;
CHAR OriginalInfName[MAX_PATH];
CHAR OriginalCatalogName[MAX_PATH];
} SP_ORIGINAL_FILE_INFO_A, *PSP_ORIGINAL_FILE_INFO_A;
typedef struct _SP_ORIGINAL_FILE_INFO_W {
DWORD cbSize;
WCHAR OriginalInfName[MAX_PATH];
WCHAR OriginalCatalogName[MAX_PATH];
} SP_ORIGINAL_FILE_INFO_W, *PSP_ORIGINAL_FILE_INFO_W;
typedef struct _FILEPATHS_A {
PCSTR Target;
PCSTR Source;
UINT Win32Error;
DWORD Flags;
} FILEPATHS_A, *PFILEPATHS_A;
typedef struct _FILEPATHS_W {
PCWSTR Target;
PCWSTR Source;
UINT Win32Error;
DWORD Flags;
} FILEPATHS_W, *PFILEPATHS_W;
typedef struct _SOURCE_MEDIA_A {
PCSTR Reserved;
PCSTR Tagfile;
PCSTR Description;
PCSTR SourcePath;
PCSTR SourceFile;
DWORD Flags;
} SOURCE_MEDIA_A, *PSOURCE_MEDIA_A;
typedef struct _SOURCE_MEDIA_W {
PCWSTR Reserved;
PCWSTR Tagfile;
PCWSTR Description;
PCWSTR SourcePath;
PCWSTR SourceFile;
DWORD Flags;
} SOURCE_MEDIA_W, *PSOURCE_MEDIA_W;
typedef struct _CABINET_INFO_A {
PCSTR CabinetPath;
PCSTR CabinetFile;
PCSTR DiskName;
USHORT SetId;
USHORT CabinetNumber;
} CABINET_INFO_A, *PCABINET_INFO_A;
typedef struct _CABINET_INFO_W {
PCWSTR CabinetPath;
PCWSTR CabinetFile;
PCWSTR DiskName;
USHORT SetId;
USHORT CabinetNumber;
} CABINET_INFO_W, *PCABINET_INFO_W;
typedef struct _FILE_IN_CABINET_INFO_A {
PCSTR NameInCabinet;
DWORD FileSize;
DWORD Win32Error;
WORD DosDate;
WORD DosTime;
WORD DosAttribs;
CHAR FullTargetName[MAX_PATH];
} FILE_IN_CABINET_INFO_A, *PFILE_IN_CABINET_INFO_A;
typedef struct _FILE_IN_CABINET_INFO_W {
PCWSTR NameInCabinet;
DWORD FileSize;
DWORD Win32Error;
WORD DosDate;
WORD DosTime;
WORD DosAttribs;
WCHAR FullTargetName[MAX_PATH];
} FILE_IN_CABINET_INFO_W, *PFILE_IN_CABINET_INFO_W;
typedef struct _SP_FILE_COPY_PARAMS_A {
DWORD cbSize;
HSPFILEQ QueueHandle;
PCSTR SourceRootPath;
PCSTR SourcePath;
PCSTR SourceFilename;
PCSTR SourceDescription;
PCSTR SourceTagfile;
PCSTR TargetDirectory;
PCSTR TargetFilename;
DWORD CopyStyle;
HINF LayoutInf;
PCSTR SecurityDescriptor;
} SP_FILE_COPY_PARAMS_A, *PSP_FILE_COPY_PARAMS_A;
typedef struct _SP_FILE_COPY_PARAMS_W {
DWORD cbSize;
HSPFILEQ QueueHandle;
PCWSTR SourceRootPath;
PCWSTR SourcePath;
PCWSTR SourceFilename;
PCWSTR SourceDescription;
PCWSTR SourceTagfile;
PCWSTR TargetDirectory;
PCWSTR TargetFilename;
DWORD CopyStyle;
HINF LayoutInf;
PCWSTR SecurityDescriptor;
} SP_FILE_COPY_PARAMS_W, *PSP_FILE_COPY_PARAMS_W;
typedef struct _SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst;
ULONG_PTR Reserved;
} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;
typedef struct _SP_DEVICE_INTERFACE_DATA {
DWORD cbSize;
GUID InterfaceClassGuid;
DWORD Flags;
ULONG_PTR Reserved;
} SP_DEVICE_INTERFACE_DATA, *PSP_DEVICE_INTERFACE_DATA;
/* For backward compatability */
typedef SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA, *PSP_INTERFACE_DEVICE_DATA;
typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_A {
DWORD cbSize;
CHAR DevicePath[ANYSIZE_ARRAY];
} SP_DEVICE_INTERFACE_DETAIL_DATA_A, *PSP_DEVICE_INTERFACE_DETAIL_DATA_A;
typedef struct _SP_DEVICE_INTERFACE_DETAIL_DATA_W {
DWORD cbSize;
WCHAR DevicePath[ANYSIZE_ARRAY];
} SP_DEVICE_INTERFACE_DETAIL_DATA_W, *PSP_DEVICE_INTERFACE_DETAIL_DATA_W;
/* For backward compatability */
typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA_A,
*PSP_INTERFACE_DEVICE_DETAIL_DATA_A;
typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W,
*PSP_INTERFACE_DEVICE_DETAIL_DATA_W;
typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_A {
DWORD cbSize;
GUID ClassGuid;
HANDLE RemoteMachineHandle;
CHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
} SP_DEVINFO_LIST_DETAIL_DATA_A, *PSP_DEVINFO_LIST_DETAIL_DATA_A;
typedef struct _SP_DEVINFO_LIST_DETAIL_DATA_W {
DWORD cbSize;
GUID ClassGuid;
HANDLE RemoteMachineHandle;
WCHAR RemoteMachineName[SP_MAX_MACHINENAME_LENGTH];
} SP_DEVINFO_LIST_DETAIL_DATA_W, *PSP_DEVINFO_LIST_DETAIL_DATA_W;
typedef UINT (CALLBACK* PSP_FILE_CALLBACK_A)(PVOID,UINT,UINT_PTR,UINT_PTR);
typedef UINT (CALLBACK* PSP_FILE_CALLBACK_W)(PVOID,UINT,UINT_PTR,UINT_PTR);
typedef struct _SP_DEVINSTALL_PARAMS_A {
DWORD cbSize;
DWORD Flags;
DWORD FlagsEx;
HWND hwndParent;
PSP_FILE_CALLBACK_A InstallMsgHandler;
PVOID InstallMsgHandlerContext;
HSPFILEQ FileQueue;
ULONG_PTR ClassInstallReserved;
DWORD Reserved;
CHAR DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_A, *PSP_DEVINSTALL_PARAMS_A;
typedef struct _SP_DEVINSTALL_PARAMS_W {
DWORD cbSize;
DWORD Flags;
DWORD FlagsEx;
HWND hwndParent;
PSP_FILE_CALLBACK_W InstallMsgHandler;
PVOID InstallMsgHandlerContext;
HSPFILEQ FileQueue;
ULONG_PTR ClassInstallReserved;
DWORD Reserved;
WCHAR DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS_W, *PSP_DEVINSTALL_PARAMS_W;
typedef struct _SP_CLASSINSTALL_HEADER {
DWORD cbSize;
DI_FUNCTION InstallFunction;
} SP_CLASSINSTALL_HEADER, *PSP_CLASSINSTALL_HEADER;
typedef struct _SP_ENABLECLASS_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
GUID ClassGuid;
DWORD EnableMessage;
} SP_ENABLECLASS_PARAMS, *PSP_ENABLECLASS_PARAMS;
typedef struct _SP_MOVEDEV_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
SP_DEVINFO_DATA SourceDeviceInfoData;
} SP_MOVEDEV_PARAMS, *PSP_MOVEDEV_PARAMS;
typedef struct _SP_PROPCHANGE_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
DWORD StateChange;
DWORD Scope;
DWORD HwProfile;
} SP_PROPCHANGE_PARAMS, *PSP_PROPCHANGE_PARAMS;
typedef struct _SP_REMOVEDEVICE_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
DWORD Scope;
DWORD HwProfile;
} SP_REMOVEDEVICE_PARAMS, *PSP_REMOVEDEVICE_PARAMS;
typedef struct _SP_UNREMOVEDEVICE_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
DWORD Scope;
DWORD HwProfile;
} SP_UNREMOVEDEVICE_PARAMS, *PSP_UNREMOVEDEVICE_PARAMS;
typedef struct _SP_SELECTDEVICE_PARAMS_A {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
CHAR Title[MAX_TITLE_LEN];
CHAR Instructions[MAX_INSTRUCTION_LEN];
CHAR ListLabel[MAX_LABEL_LEN];
CHAR SubTitle[MAX_SUBTITLE_LEN];
BYTE Reserved[2];
} SP_SELECTDEVICE_PARAMS_A, *PSP_SELECTDEVICE_PARAMS_A;
typedef struct _SP_SELECTDEVICE_PARAMS_W {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
WCHAR Title[MAX_TITLE_LEN];
WCHAR Instructions[MAX_INSTRUCTION_LEN];
WCHAR ListLabel[MAX_LABEL_LEN];
WCHAR SubTitle[MAX_SUBTITLE_LEN];
} SP_SELECTDEVICE_PARAMS_W, *PSP_SELECTDEVICE_PARAMS_W;
typedef struct _SP_REGISTER_CONTROL_STATUSA {
DWORD cbSize;
PCSTR FileName;
DWORD Win32Error;
DWORD FailureCode;
} SP_REGISTER_CONTROL_STATUSA, *PSP_REGISTER_CONTROL_STATUSA;
typedef struct _SP_REGISTER_CONTROL_STATUSW {
DWORD cbSize;
PCWSTR FileName;
DWORD Win32Error;
DWORD FailureCode;
} SP_REGISTER_CONTROL_STATUSW, *PSP_REGISTER_CONTROL_STATUSW;
typedef BOOL (CALLBACK* PDETECT_PROGRESS_NOTIFY)(PVOID,DWORD);
typedef struct _SP_DETECTDEVICE_PARAMS {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
PDETECT_PROGRESS_NOTIFY DetectProgressNotify;
PVOID ProgressNotifyParam;
} SP_DETECTDEVICE_PARAMS, *PSP_DETECTDEVICE_PARAMS;
typedef struct _SP_INSTALLWIZARD_DATA {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
DWORD Flags;
HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
DWORD NumDynamicPages;
DWORD DynamicPageFlags;
DWORD PrivateFlags;
LPARAM PrivateData;
HWND hwndWizardDlg;
} SP_INSTALLWIZARD_DATA, *PSP_INSTALLWIZARD_DATA;
typedef struct _SP_NEWDEVICEWIZARD_DATA {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
DWORD Flags;
HPROPSHEETPAGE DynamicPages[MAX_INSTALLWIZARD_DYNAPAGES];
DWORD NumDynamicPages;
HWND hwndWizardDlg;
} SP_NEWDEVICEWIZARD_DATA, *PSP_NEWDEVICEWIZARD_DATA;
typedef SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA,
*PSP_ADDPROPERTYPAGE_DATA;
typedef struct _SP_TROUBLESHOOTER_PARAMS_A {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
CHAR ChmFile[MAX_PATH];
CHAR HtmlTroubleShooter[MAX_PATH];
} SP_TROUBLESHOOTER_PARAMS_A, *PSP_TROUBLESHOOTER_PARAMS_A;
typedef struct _SP_TROUBLESHOOTER_PARAMS_W {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
WCHAR ChmFile[MAX_PATH];
WCHAR HtmlTroubleShooter[MAX_PATH];
} SP_TROUBLESHOOTER_PARAMS_W, *PSP_TROUBLESHOOTER_PARAMS_W;
typedef struct _SP_POWERMESSAGEWAKE_PARAMS_A {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
CHAR PowerMessageWake[LINE_LEN*2];
} SP_POWERMESSAGEWAKE_PARAMS_A, *PSP_POWERMESSAGEWAKE_PARAMS_A;
typedef struct _SP_POWERMESSAGEWAKE_PARAMS_W {
SP_CLASSINSTALL_HEADER ClassInstallHeader;
WCHAR PowerMessageWake[LINE_LEN*2];
} SP_POWERMESSAGEWAKE_PARAMS_W, *PSP_POWERMESSAGEWAKE_PARAMS_W;
typedef struct _SP_DRVINFO_DATA_V2_A {
DWORD cbSize;
DWORD DriverType;
ULONG_PTR Reserved;
CHAR Description[LINE_LEN];
CHAR MfgName[LINE_LEN];
CHAR ProviderName[LINE_LEN];
FILETIME DriverDate;
DWORDLONG DriverVersion;
} SP_DRVINFO_DATA_V2_A, *PSP_DRVINFO_DATA_V2_A;
typedef struct _SP_DRVINFO_DATA_V2_W {
DWORD cbSize;
DWORD DriverType;
ULONG_PTR Reserved;
WCHAR Description[LINE_LEN];
WCHAR MfgName[LINE_LEN];
WCHAR ProviderName[LINE_LEN];
FILETIME DriverDate;
DWORDLONG DriverVersion;
} SP_DRVINFO_DATA_V2_W, *PSP_DRVINFO_DATA_V2_W;
typedef struct _SP_DRVINFO_DATA_V1_A {
DWORD cbSize;
DWORD DriverType;
ULONG_PTR Reserved;
CHAR Description[LINE_LEN];
CHAR MfgName[LINE_LEN];
CHAR ProviderName[LINE_LEN];
} SP_DRVINFO_DATA_V1_A, *PSP_DRVINFO_DATA_V1_A;
typedef struct _SP_DRVINFO_DATA_V1_W {
DWORD cbSize;
DWORD DriverType;
ULONG_PTR Reserved;
WCHAR Description[LINE_LEN];
WCHAR MfgName[LINE_LEN];
WCHAR ProviderName[LINE_LEN];
} SP_DRVINFO_DATA_V1_W, *PSP_DRVINFO_DATA_V1_W;
#ifdef UNICODE
typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
#else
typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1, *PSP_DRVINFO_DATA_V1;
typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2, *PSP_DRVINFO_DATA_V2;
#endif
#if USE_SP_DRVINFO_DATA_V1
typedef SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
typedef SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
typedef SP_DRVINFO_DATA_V1 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
#else
typedef SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_A, *PSP_DRVINFO_DATA_A;
typedef SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_W, *PSP_DRVINFO_DATA_W;
typedef SP_DRVINFO_DATA_V2 SP_DRVINFO_DATA, *PSP_DRVINFO_DATA;
#endif
typedef DWORD (CALLBACK* PSP_DETSIG_CMPPROC)(HDEVINFO,PSP_DEVINFO_DATA,PSP_DEVINFO_DATA,PVOID);
typedef struct _SP_DRVINFO_DETAIL_DATA_A {
DWORD cbSize;
FILETIME InfDate;
DWORD CompatIDsOffset;
DWORD CompatIDsLength;
ULONG_PTR Reserved;
CHAR SectionName[LINE_LEN];
CHAR InfFileName[MAX_PATH];
CHAR DrvDescription[LINE_LEN];
CHAR HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_A, *PSP_DRVINFO_DETAIL_DATA_A;
typedef struct _SP_DRVINFO_DETAIL_DATA_W {
DWORD cbSize;
FILETIME InfDate;
DWORD CompatIDsOffset;
DWORD CompatIDsLength;
ULONG_PTR Reserved;
WCHAR SectionName[LINE_LEN];
WCHAR InfFileName[MAX_PATH];
WCHAR DrvDescription[LINE_LEN];
WCHAR HardwareID[ANYSIZE_ARRAY];
} SP_DRVINFO_DETAIL_DATA_W, *PSP_DRVINFO_DETAIL_DATA_W;
typedef struct _SP_DRVINSTALL_PARAMS {
DWORD cbSize;
DWORD Rank;
DWORD Flags;
DWORD_PTR PrivateData;
DWORD Reserved;
} SP_DRVINSTALL_PARAMS, *PSP_DRVINSTALL_PARAMS;
typedef struct _COINSTALLER_CONTEXT_DATA {
BOOL PostProcessing;
DWORD InstallResult;
PVOID PrivateData;
} COINSTALLER_CONTEXT_DATA, *PCOINSTALLER_CONTEXT_DATA;
typedef struct _SP_CLASSIMAGELIST_DATA {
DWORD cbSize;
HIMAGELIST ImageList;
ULONG_PTR Reserved;
} SP_CLASSIMAGELIST_DATA, *PSP_CLASSIMAGELIST_DATA;
typedef struct _SP_PROPSHEETPAGE_REQUEST {
DWORD cbSize;
DWORD PageRequested;
HDEVINFO DeviceInfoSet;
PSP_DEVINFO_DATA DeviceInfoData;
} SP_PROPSHEETPAGE_REQUEST, *PSP_PROPSHEETPAGE_REQUEST;
typedef struct _SP_BACKUP_QUEUE_PARAMS_A {
DWORD cbSize;
CHAR FullInfPath[MAX_PATH];
INT FilenameOffset;
} SP_BACKUP_QUEUE_PARAMS_A, *PSP_BACKUP_QUEUE_PARAMS_A;
typedef struct _SP_BACKUP_QUEUE_PARAMS_W {
DWORD cbSize;
WCHAR FullInfPath[MAX_PATH];
INT FilenameOffset;
} SP_BACKUP_QUEUE_PARAMS_W, *PSP_BACKUP_QUEUE_PARAMS_W;
#ifdef UNICODE
typedef SP_ORIGINAL_FILE_INFO_W SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
typedef FILEPATHS_W FILEPATHS, *PFILEPATHS;
typedef SOURCE_MEDIA_W SOURCE_MEDIA, *PSOURCE_MEDIA;
typedef CABINET_INFO_W CABINET_INFO, *PCABINET_INFO;
typedef FILE_IN_CABINET_INFO_W FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
typedef SP_FILE_COPY_PARAMS_W SP_FILE_COPY_PARAMS, PSP_FILE_COPY_PARAMS;
typedef SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_DEVICE_INTERFACE_DETAIL_DATA,
*PSP_DEVICE_INTERFACE_DETAIL_DATA;
typedef SP_INTERFACE_DEVICE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA,
*PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
typedef SP_DEVINFO_LIST_DETAIL_DATA_W SP_DEVINFO_LIST_DETAIL_DATA,
*PSP_DEVINFO_LIST_DETAIL_DATA;
typedef SP_DEVINSTALL_PARAMS_W SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
typedef SP_SELECTDEVICE_PARAMS_W SP_SELECTDEVICE_PARAMS, *PSP_SELECTDEVICE_PARAMS;
typedef SP_TROUBLESHOOTER_PARAMS_W SP_TROUBLESHOOTER_PARAMS,
*PSP_TROUBLESHOOTER_PARAMS;
typedef SP_POWERMESSAGEWAKE_PARAMS_W SP_POWERMESSAGEWAKE_PARAMS,
*PSP_POWERMESSAGEWAKE_PARAMS;
typedef SP_DRVINFO_DETAIL_DATA_W SP_DRVINFO_DETAIL_DATA,
*PSP_DRVINFO_DETAIL_DATA;
typedef SP_BACKUP_QUEUE_PARAMS_W SP_BACKUP_QUEUE_PARAMS,
*PSP_BACKUP_QUEUE_PARAMS;
typedef SP_REGISTER_CONTROL_STATUSW SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
#else
typedef SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO, *PSP_ORIGINAL_FILE_INFO;
typedef FILEPATHS_A FILEPATHS, *PFILEPATHS;
typedef SOURCE_MEDIA_A SOURCE_MEDIA, *PSOURCE_MEDIA;
typedef CABINET_INFO_A CABINET_INFO, *PCABINET_INFO;
typedef FILE_IN_CABINET_INFO_A FILE_IN_CABINET_INFO, *PFILE_IN_CABINET_INFO;
typedef SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS, *PSP_FILE_COPY_PARAMS;
typedef SP_DEVICE_INTERFACE_DETAIL_DATA_A SP_DEVICE_INTERFACE_DETAIL_DATA,
*PSP_DEVICE_INTERFACE_DETAIL_DATA;
typedef SP_INTERFACE_DEVICE_DETAIL_DATA_A SP_INTERFACE_DEVICE_DETAIL_DATA,
*PSP_INTERFACE_DEVICE_DETAIL_DATA; /* deprecated */
typedef SP_DEVINFO_LIST_DETAIL_DATA_A SP_DEVINFO_LIST_DETAIL_DATA,
*PSP_DEVINFO_LIST_DETAIL_DATA;
typedef SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
typedef SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS,
*PSP_SELECTDEVICE_PARAMS;
typedef SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS,
*PSP_TROUBLESHOOTER_PARAMS;
typedef SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS,
*PSP_POWERMESSAGEWAKE_PARAMS;
typedef SP_DRVINFO_DETAIL_DATA_A SP_DRVINFO_DETAIL_DATA,
*PSP_DRVINFO_DETAIL_DATA;
typedef SP_BACKUP_QUEUE_PARAMS_A SP_BACKUP_QUEUE_PARAMS,
*PSP_BACKUP_QUEUE_PARAMS;
typedef SP_REGISTER_CONTROL_STATUSA SP_REGISTER_CONTROL_STATUS, *PSP_REGISTER_CONTROL_STATUS;
#endif /* UNICODE */
WINSETUPAPI LONG WINAPI AddTagToGroupOrderList(PCWSTR, DWORD, DWORD);
WINSETUPAPI VOID WINAPI AssertFail(LPSTR, UINT, LPSTR);
WINSETUPAPI DWORD WINAPI CaptureStringArg(PCWSTR, PWSTR*);
WINSETUPAPI BOOL WINAPI DelayedMove(PCWSTR, PCWSTR);
WINSETUPAPI BOOL WINAPI DoesUserHavePrivilege(PCWSTR);
WINSETUPAPI BOOL WINAPI FileExists(PCWSTR, PWIN32_FIND_DATAW);
WINSETUPAPI DWORD WINAPI GetSetFileTimestamp(PCWSTR, PFILETIME, PFILETIME, PFILETIME, BOOLEAN);
WINSETUPAPI VOID WINAPI InstallHinfSectionA(_In_ HWND, _In_ HINSTANCE, _In_ PCSTR, _In_ INT);
WINSETUPAPI VOID WINAPI InstallHinfSectionW(_In_ HWND, _In_ HINSTANCE, _In_ PCWSTR, _In_ INT);
WINSETUPAPI BOOL WINAPI IsUserAdmin(VOID);
WINSETUPAPI VOID WINAPI MyFree(PVOID);
WINSETUPAPI PVOID WINAPI MyMalloc(DWORD);
WINSETUPAPI PVOID WINAPI MyRealloc(PVOID, DWORD);
WINSETUPAPI LONG WINAPI QueryRegistryValue(HKEY, PCWSTR, PBYTE*, PDWORD, PDWORD);
WINSETUPAPI DWORD WINAPI RetreiveFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR*);
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddInstallSectionToDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddSectionToDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListA(_In_ HDSKSPC, _In_ PCSTR, _In_ LONGLONG, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddToDiskSpaceListW(_In_ HDSKSPC, _In_ PCWSTR, _In_ LONGLONG, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAddToSourceListA(_In_ DWORD, _In_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupAddToSourceListW(_In_ DWORD, _In_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListA(_In_ HDSKSPC, _In_ LPCSTR, _In_ LONGLONG, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupAdjustDiskSpaceListW(_In_ HDSKSPC, _In_ LPCWSTR, _In_ LONGLONG, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI UINT WINAPI SetupBackupErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI UINT WINAPI SetupBackupErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupCancelTemporary(VOID);
WINSETUPAPI BOOL WINAPI SetupCloseFileQueue(_In_ HSPFILEQ);
WINSETUPAPI VOID WINAPI SetupCloseInfFile(_In_ HINF);
WINSETUPAPI VOID WINAPI SetupCloseLog(VOID);
WINSETUPAPI BOOL WINAPI SetupCommitFileQueueA(_In_opt_ HWND, _In_ HSPFILEQ, _In_ PSP_FILE_CALLBACK_A, _In_ PVOID);
WINSETUPAPI BOOL WINAPI SetupCommitFileQueueW(_In_opt_ HWND, _In_ HSPFILEQ, _In_ PSP_FILE_CALLBACK_W, _In_ PVOID);
WINSETUPAPI
UINT
WINAPI
SetupCopyErrorA(
_In_ HWND hwndParent,
_In_opt_ PCSTR DialogTitle,
_In_opt_ PCSTR DiskName,
_In_ PCSTR PathToSource,
_In_ PCSTR SourceFile,
_In_opt_ PCSTR TargetPathFile,
_In_ UINT Win32ErrorCode,
_In_ DWORD Style,
_Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
_In_ DWORD PathBufferSize,
_Out_opt_ PDWORD PathRequiredSize);
WINSETUPAPI
UINT
WINAPI
SetupCopyErrorW(
_In_ HWND hwndParent,
_In_opt_ PCWSTR DialogTitle,
_In_opt_ PCWSTR DiskName,
_In_ PCWSTR PathToSource,
_In_ PCWSTR SourceFile,
_In_opt_ PCWSTR TargetPathFile,
_In_ UINT Win32ErrorCode,
_In_ DWORD Style,
_Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
_In_ DWORD PathBufferSize,
_Out_opt_ PDWORD PathRequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupCopyOEMInfA(
_In_ PCSTR SourceInfFileName,
_In_opt_ PCSTR OEMSourceMediaLocation,
_In_ DWORD OEMSourceMediaType,
_In_ DWORD CopyStyle,
_Out_writes_opt_(DestinationInfFileNameSize) PSTR DestinationInfFileName,
_In_ DWORD DestinationInfFileNameSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PSTR *DestinationInfFileNameComponent);
WINSETUPAPI
BOOL
WINAPI
SetupCopyOEMInfW(
_In_ PCWSTR SourceInfFileName,
_In_opt_ PCWSTR OEMSourceMediaLocation,
_In_ DWORD OEMSourceMediaType,
_In_ DWORD CopyStyle,
_Out_writes_opt_(DestinationInfFileNameSize) PWSTR DestinationInfFileName,
_In_ DWORD DestinationInfFileNameSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PWSTR *DestinationInfFileNameComponent);
WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListA(_Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
WINSETUPAPI HDSKSPC WINAPI SetupCreateDiskSpaceListW(_Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileA(_In_ PCSTR, _In_ PCSTR, _In_opt_ PUINT);
WINSETUPAPI DWORD WINAPI SetupDecompressOrCopyFileW(_In_ PCWSTR, _In_ PCWSTR, _In_opt_ PUINT);
WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackA(_In_ PVOID, _In_ UINT, _In_ UINT_PTR, _In_ UINT_PTR);
WINSETUPAPI UINT WINAPI SetupDefaultQueueCallbackW(_In_ PVOID, _In_ UINT, _In_ UINT_PTR, _In_ UINT_PTR);
WINSETUPAPI UINT WINAPI SetupDeleteErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI UINT WINAPI SetupDeleteErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDestroyDiskSpaceList(_Inout_ HDSKSPC);
WINSETUPAPI BOOL WINAPI SetupDiAskForOEMDisk(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiBuildClassInfoList(
_In_ DWORD Flags,
_Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiBuildClassInfoListExA(
_In_ DWORD Flags,
_Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiBuildClassInfoListExW(
_In_ DWORD Flags,
_Out_writes_to_opt_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiBuildDriverInfoList(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiCallClassInstaller(_In_ DI_FUNCTION, _In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiCancelDriverInfoSearch(_In_ HDEVINFO);
WINSETUPAPI BOOL WINAPI SetupDiChangeState(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiClassGuidsFromNameA(
_In_ PCSTR ClassName,
_Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiClassGuidsFromNameW(
_In_ PCWSTR ClassName,
_Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiClassGuidsFromNameExA(
_In_ PCSTR ClassName,
_Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiClassGuidsFromNameExW(
_In_ PCWSTR ClassName,
_Out_writes_to_(ClassGuidListSize, *RequiredSize) LPGUID ClassGuidList,
_In_ DWORD ClassGuidListSize,
_Out_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiClassNameFromGuidA(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassNameSize) PSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiClassNameFromGuidW(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassNameSize) PWSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiClassNameFromGuidExA(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassNameSize) PSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiClassNameFromGuidExW(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassNameSize) PWSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoA(_In_ HDEVINFO, _In_ PCSTR, _In_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInfoW(_In_ HDEVINFO, _In_ PCWSTR, _In_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoList(_In_opt_ CONST GUID*, _In_opt_ HWND);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExA(_In_opt_ CONST GUID*, _In_opt_ HWND, _In_opt_ PCSTR, _Reserved_ PVOID);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiCreateDeviceInfoListExW(_In_opt_ CONST GUID*, _In_opt_ HWND, _In_opt_ PCWSTR, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceA(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_opt_ PCSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
WINSETUPAPI BOOL WINAPI SetupDiCreateDeviceInterfaceW(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_opt_ PCWSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyA(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM, _In_opt_ HINF, _In_opt_ PCSTR);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDeviceInterfaceRegKeyW(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM, _In_opt_ HINF, _In_opt_ PCWSTR);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyA(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ HINF, _In_opt_ PCSTR);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiCreateDevRegKeyW(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ HINF, _In_opt_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInfo(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceData(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA);
WINSETUPAPI BOOL WINAPI SetupDiDeleteDeviceInterfaceRegKey(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiDeleteDevRegKey(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiDestroyClassImageList(_In_ PSP_CLASSIMAGELIST_DATA);
WINSETUPAPI BOOL WINAPI SetupDiDestroyDeviceInfoList(_In_ HDEVINFO);
WINSETUPAPI BOOL WINAPI SetupDiDestroyDriverInfoList(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD);
WINSETUPAPI INT WINAPI SetupDiDrawMiniIcon(_In_ HDC, _In_ RECT, _In_ INT, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInfo(_In_ HDEVINFO, _In_ DWORD, _Out_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiEnumDeviceInterfaces(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ CONST GUID*, _In_ DWORD, _Out_ PSP_DEVICE_INTERFACE_DATA);
WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _Out_ PSP_DRVINFO_DATA_A);
WINSETUPAPI BOOL WINAPI SetupDiEnumDriverInfoW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _Out_ PSP_DRVINFO_DATA_W);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetActualSectionToInstallA(
_In_ HINF InfHandle,
_In_ PCSTR InfSectionName,
_Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
_In_ DWORD InfSectionWithExtSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PSTR *Extension);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetActualSectionToInstallW(
_In_ HINF InfHandle,
_In_ PCWSTR InfSectionName,
_Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
_In_ DWORD InfSectionWithExtSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PWSTR *Extension);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetActualSectionToInstallExA(
_In_ HINF InfHandle,
_In_ PCSTR InfSectionName,
_In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
_Out_writes_opt_(InfSectionWithExtSize) PSTR InfSectionWithExt,
_In_ DWORD InfSectionWithExtSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PSTR *Extension,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetActualSectionToInstallExW(
_In_ HINF InfHandle,
_In_ PCWSTR InfSectionName,
_In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
_Out_writes_opt_(InfSectionWithExtSize) PWSTR InfSectionWithExt,
_In_ DWORD InfSectionWithExtSize,
_Out_opt_ PDWORD RequiredSize,
_Out_opt_ PWSTR *Extension,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiGetClassBitmapIndex(_In_opt_ CONST GUID*, _Out_ PINT);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassDescriptionA(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
_In_ DWORD ClassDescriptionSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassDescriptionW(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
_In_ DWORD ClassDescriptionSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassDescriptionExA(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassDescriptionSize) PSTR ClassDescription,
_In_ DWORD ClassDescriptionSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassDescriptionExW(
_In_ CONST GUID *ClassGuid,
_Out_writes_(ClassDescriptionSize) PWSTR ClassDescription,
_In_ DWORD ClassDescriptionSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ LPPROPSHEETHEADERA, _In_ DWORD, _Out_opt_ PDWORD, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiGetClassDevPropertySheetsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ LPPROPSHEETHEADERW, _In_ DWORD, _Out_opt_ PDWORD, _In_ DWORD);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsA(_In_opt_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsW(_In_opt_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExA(_In_opt_ CONST GUID*, _In_opt_ PCSTR, _In_opt_ HWND, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PCSTR, _Reserved_ PVOID);
_Check_return_ WINSETUPAPI HDEVINFO WINAPI SetupDiGetClassDevsExW(_In_opt_ CONST GUID*, _In_opt_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PCWSTR, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiGetClassImageIndex(_In_ PSP_CLASSIMAGELIST_DATA, _In_ CONST GUID*, _Out_ PINT);
WINSETUPAPI BOOL WINAPI SetupDiGetClassImageList(_Out_ PSP_CLASSIMAGELIST_DATA);
WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExA(_Out_ PSP_CLASSIMAGELIST_DATA, _In_opt_ PCSTR, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiGetClassImageListExW(_Out_ PSP_CLASSIMAGELIST_DATA, _In_opt_ PCWSTR, _Reserved_ PVOID);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassInstallParamsA(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_Out_writes_bytes_to_opt_(ClassInstallParamsSize, *RequiredSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
_In_ DWORD ClassInstallParamsSize,
_Out_opt_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassInstallParamsW(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_Out_writes_bytes_to_opt_(ClassInstallParamsSize, *RequiredSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
_In_ DWORD ClassInstallParamsSize,
_Out_opt_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassRegistryPropertyA(
_In_ CONST GUID *ClassGuid,
_In_ DWORD Property,
_Out_opt_ PDWORD PropertyRegDataType,
_Out_writes_bytes_to_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetClassRegistryPropertyW(
_In_ CONST GUID *ClassGuid,
_In_ DWORD Property,
_Out_opt_ PDWORD PropertyRegDataType,
_Out_writes_bytes_to_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListClass(_In_ HDEVINFO, _Out_ LPGUID);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailA(_In_ HDEVINFO, _Out_ PSP_DEVINFO_LIST_DETAIL_DATA_A);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInfoListDetailW(_In_ HDEVINFO, _Out_ PSP_DEVINFO_LIST_DETAIL_DATA_W);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DEVINSTALL_PARAMS_A);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DEVINSTALL_PARAMS_W);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInstanceIdA(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVINFO_DATA DeviceInfoData,
_Out_writes_opt_(DeviceInstanceIdSize) PSTR DeviceInstanceId,
_In_ DWORD DeviceInstanceIdSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInstanceIdW(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVINFO_DATA DeviceInfoData,
_Out_writes_opt_(DeviceInstanceIdSize) PWSTR DeviceInstanceId,
_In_ DWORD DeviceInstanceIdSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupDiGetDeviceInterfaceAlias(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _In_ CONST GUID*, _Out_ PSP_DEVICE_INTERFACE_DATA);
_Success_(return != FALSE)
_At_((LPSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInterfaceDetailA(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
_Inout_updates_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_A DeviceInterfaceDetailData,
_In_ DWORD DeviceInterfaceDetailDataSize,
_Out_opt_ _Out_range_(>=, sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_A)) PDWORD RequiredSize,
_Out_opt_ PSP_DEVINFO_DATA DeviceInfoData);
_Success_(return != FALSE)
_At_((LPWSTR)DeviceInterfaceDetailData->DevicePath, _Post_z_)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceInterfaceDetailW(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
_Out_writes_bytes_to_opt_(DeviceInterfaceDetailDataSize, *RequiredSize) PSP_DEVICE_INTERFACE_DETAIL_DATA_W DeviceInterfaceDetailData,
_In_ DWORD DeviceInterfaceDetailDataSize,
_Out_opt_ _Out_range_(>=, sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA_W)) PDWORD RequiredSize,
_Out_opt_ PSP_DEVINFO_DATA DeviceInfoData);
_Success_(return != FALSE)
_When_((*PropertyRegDataType == REG_SZ), _At_((PSTR) PropertyBuffer, _Post_valid_))
_When_((*PropertyRegDataType == REG_MULTI_SZ), _At_((PZZSTR) PropertyBuffer, _Post_valid_))
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceRegistryPropertyA(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ DWORD Property,
_Out_opt_ PDWORD PropertyRegDataType,
_Out_writes_bytes_to_opt_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_Out_opt_ PDWORD RequiredSize);
_Success_(return != FALSE)
_When_((*PropertyRegDataType == REG_SZ), _At_((PWSTR) PropertyBuffer, _Post_valid_))
_When_((*PropertyRegDataType == REG_MULTI_SZ), _At_((PZZWSTR) PropertyBuffer, _Post_valid_))
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDeviceRegistryPropertyW(
_In_ HDEVINFO DeviceInfoSet,
_In_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ DWORD Property,
_Out_opt_ PDWORD PropertyRegDataType,
_Out_writes_bytes_to_opt_(PropertyBufferSize, *RequiredSize) PBYTE PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDriverInfoDetailA(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ PSP_DRVINFO_DATA_A DriverInfoData,
_Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_A DriverInfoDetailData,
_In_ DWORD DriverInfoDetailDataSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetDriverInfoDetailW(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ PSP_DRVINFO_DATA_W DriverInfoData,
_Inout_updates_bytes_opt_(DriverInfoDetailDataSize) PSP_DRVINFO_DETAIL_DATA_W DriverInfoDetailData,
_In_ DWORD DriverInfoDetailDataSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_A, _Out_ PSP_DRVINSTALL_PARAMS);
WINSETUPAPI BOOL WINAPI SetupDiGetDriverInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_W, _Out_ PSP_DRVINSTALL_PARAMS);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileFriendlyNameA(
_In_ DWORD HwProfile,
_Out_writes_(FriendlyNameSize) PSTR FriendlyName,
_In_ DWORD FriendlyNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileFriendlyNameW(
_In_ DWORD HwProfile,
_Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
_In_ DWORD FriendlyNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileFriendlyNameExA(
_In_ DWORD HwProfile,
_Out_writes_(FriendlyNameSize) PSTR FriendlyName,
_In_ DWORD FriendlyNameSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileFriendlyNameExW(
_In_ DWORD HwProfile,
_Out_writes_(FriendlyNameSize) PWSTR FriendlyName,
_In_ DWORD FriendlyNameSize,
_Out_opt_ PDWORD RequiredSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiGetHwProfileFriendlyNameW(DWORD,PWSTR,DWORD,PDWORD);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileList(
_Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
_In_ DWORD HwProfileListSize,
_Out_ PDWORD RequiredSize,
_Out_opt_ PDWORD CurrentlyActiveIndex);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileListExA(
_Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
_In_ DWORD HwProfileListSize,
_Out_ PDWORD RequiredSize,
_Out_opt_ PDWORD CurrentlyActiveIndex,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupDiGetHwProfileListExW(
_Out_writes_to_(HwProfileListSize, *RequiredSize) PDWORD HwProfileList,
_In_ DWORD HwProfileListSize,
_Out_ PDWORD RequiredSize,
_Out_opt_ PDWORD CurrentlyActiveIndex,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetINFClassA(
_In_ PCSTR InfName,
_Out_ LPGUID ClassGuid,
_Out_writes_(ClassNameSize) PSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiGetINFClassW(
_In_ PCWSTR InfName,
_Out_ LPGUID ClassGuid,
_Out_writes_(ClassNameSize) PWSTR ClassName,
_In_ DWORD ClassNameSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDevice(_In_ HDEVINFO, _Out_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DRVINFO_DATA_A);
WINSETUPAPI BOOL WINAPI SetupDiGetSelectedDriverW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Out_ PSP_DRVINFO_DATA_W);
WINSETUPAPI HPROPSHEETPAGE WINAPI SetupDiGetWizardPage(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_INSTALLWIZARD_DATA, _In_ DWORD, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassA(_In_opt_ HWND, _In_ PCSTR, _In_ DWORD, _In_opt_ HSPFILEQ);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassW(_In_opt_ HWND, _In_ PCWSTR, _In_ DWORD, _In_opt_ HSPFILEQ);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassExA(_In_opt_ HWND, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ HSPFILEQ, _In_opt_ CONST GUID*, _Reserved_ PVOID, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiInstallClassExW(_In_opt_ HWND, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ HSPFILEQ, _In_opt_ CONST GUID*, _Reserved_ PVOID, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiInstallDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiInstallDeviceInterfaces(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiInstallDriverFiles(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiLoadClassIcon(_In_ CONST GUID*, _Out_opt_ HICON*, _Out_opt_ PINT);
WINSETUPAPI BOOL WINAPI SetupDiMoveDuplicateDevice(HDEVINFO,PSP_DEVINFO_DATA);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKey(_In_opt_ CONST GUID*, _In_ REGSAM);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExA(_In_opt_ CONST GUID*, _In_ REGSAM, _In_ DWORD, _In_opt_ PCSTR, _Reserved_ PVOID);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenClassRegKeyExW(_In_opt_ CONST GUID*, _In_ REGSAM, _In_ DWORD, _In_opt_ PCWSTR, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoA(_In_ HDEVINFO, _In_ PCSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInfoW(_In_ HDEVINFO, _In_ PCWSTR, _In_opt_ HWND, _In_ DWORD, _Out_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceA(_In_ HDEVINFO, _In_ PCSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
WINSETUPAPI BOOL WINAPI SetupDiOpenDeviceInterfaceW(_In_ HDEVINFO, _In_ PCWSTR, _In_ DWORD, _Out_opt_ PSP_DEVICE_INTERFACE_DATA);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenDeviceInterfaceRegKey(_In_ HDEVINFO, _In_ PSP_DEVICE_INTERFACE_DATA, _Reserved_ DWORD, _In_ REGSAM);
_Check_return_ WINSETUPAPI HKEY WINAPI SetupDiOpenDevRegKey(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ REGSAM);
WINSETUPAPI BOOL WINAPI SetupDiRegisterCoDeviceInstallers(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiRegisterDeviceInfo(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA, _In_ DWORD, _In_opt_ PSP_DETSIG_CMPPROC, _In_opt_ PVOID, _Out_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiRemoveDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiRemoveDeviceInterface(_In_ HDEVINFO, _Inout_ PSP_DEVICE_INTERFACE_DATA);
WINSETUPAPI BOOL WINAPI SetupDiRestartDevices(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiSelectBestCompatDrv(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiSelectDevice(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiSelectOEMDrv(_In_opt_ HWND, _In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassInstallParamsA(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_In_reads_bytes_opt_(ClassInstallParamsSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
_In_ DWORD ClassInstallParamsSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassInstallParamsW(
_In_ HDEVINFO DeviceInfoSet,
_In_opt_ PSP_DEVINFO_DATA DeviceInfoData,
_In_reads_bytes_opt_(ClassInstallParamsSize) PSP_CLASSINSTALL_HEADER ClassInstallParams,
_In_ DWORD ClassInstallParamsSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassRegistryPropertyA(
_In_ CONST GUID *ClassGuid,
_In_ DWORD Property,
_In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_In_opt_ PCSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetClassRegistryPropertyW(
_In_ CONST GUID *ClassGuid,
_In_ DWORD Property,
_In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
_In_ DWORD PropertyBufferSize,
_In_opt_ PCWSTR MachineName,
_Reserved_ PVOID Reserved);
WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DEVINSTALL_PARAMS_A);
WINSETUPAPI BOOL WINAPI SetupDiSetDeviceInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DEVINSTALL_PARAMS_W);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetDeviceRegistryPropertyA(
_In_ HDEVINFO DeviceInfoSet,
_Inout_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ DWORD Property,
_In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
_In_ DWORD PropertyBufferSize);
WINSETUPAPI
BOOL
WINAPI
SetupDiSetDeviceRegistryPropertyW(
_In_ HDEVINFO DeviceInfoSet,
_Inout_ PSP_DEVINFO_DATA DeviceInfoData,
_In_ DWORD Property,
_In_reads_bytes_opt_(PropertyBufferSize) CONST BYTE *PropertyBuffer,
_In_ DWORD PropertyBufferSize);
WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsA(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_A, _In_ PSP_DRVINSTALL_PARAMS);
WINSETUPAPI BOOL WINAPI SetupDiSetDriverInstallParamsW(_In_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _In_ PSP_DRVINFO_DATA_W, _In_ PSP_DRVINSTALL_PARAMS);
WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDevice(_In_ HDEVINFO, _In_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverA(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _Inout_opt_ PSP_DRVINFO_DATA_A);
WINSETUPAPI BOOL WINAPI SetupDiSetSelectedDriverW(_In_ HDEVINFO, _Inout_opt_ PSP_DEVINFO_DATA, _Inout_opt_ PSP_DRVINFO_DATA_W);
WINSETUPAPI BOOL WINAPI SetupDiUnremoveDevice(_In_ HDEVINFO, _Inout_ PSP_DEVINFO_DATA);
WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListA(_In_ HDSKSPC, _Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
WINSETUPAPI HDSKSPC WINAPI SetupDuplicateDiskSpaceListW(_In_ HDSKSPC, _Reserved_ PVOID, _Reserved_ DWORD, _In_ UINT);
WINSETUPAPI BOOL WINAPI SetupFindFirstLineA(_In_ HINF, _In_ PCSTR, _In_opt_ PCSTR, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindFirstLineW(_In_ HINF, _In_ PCWSTR, _In_opt_ PCWSTR, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextLine(_In_ PINFCONTEXT, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineA(_In_ PINFCONTEXT, _In_opt_ PCSTR, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFindNextMatchLineW(_In_ PINFCONTEXT, _In_opt_ PCWSTR, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupFreeA(PCSTR**,UINT);
WINSETUPAPI BOOL WINAPI SetupFreeW(PCWSTR**,UINT);
WINSETUPAPI BOOL WINAPI SetupGetBackupInformationA(_In_ HSPFILEQ, _Inout_ PSP_BACKUP_QUEUE_PARAMS_A);
WINSETUPAPI BOOL WINAPI SetupGetBackupInformationW(_In_ HSPFILEQ, _Inout_ PSP_BACKUP_QUEUE_PARAMS_W);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupGetBinaryField(
_In_ PINFCONTEXT Context,
_In_ DWORD FieldIndex,
_Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PBYTE ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ LPDWORD RequiredSize);
WINSETUPAPI DWORD WINAPI SetupGetFieldCount(_In_ PINFCONTEXT);
WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoA(_In_ PCSTR, _Out_ PSTR*, _Out_ PDWORD, _Out_ PDWORD, _Out_ PUINT);
WINSETUPAPI DWORD WINAPI SetupGetFileCompressionInfoW(_In_ PCWSTR, _Out_ PWSTR*, _Out_ PDWORD, _Out_ PDWORD, _Out_ PUINT);
WINSETUPAPI
BOOL
WINAPI
SetupGetFileCompressionInfoExA(
_In_ PCSTR SourceFileName,
_In_reads_opt_(ActualSourceFileNameBufferLen) PSTR ActualSourceFileNameBuffer,
_In_ DWORD ActualSourceFileNameBufferLen,
_Out_opt_ PDWORD RequiredBufferLen,
_Out_ PDWORD SourceFileSize,
_Out_ PDWORD TargetFileSize,
_Out_ PUINT CompressionType);
WINSETUPAPI
BOOL
WINAPI
SetupGetFileCompressionInfoExW(
_In_ PCWSTR SourceFileName,
_In_reads_opt_(ActualSourceFileNameBufferLen) PWSTR ActualSourceFileNameBuffer,
_In_ DWORD ActualSourceFileNameBufferLen,
_Out_opt_ PDWORD RequiredBufferLen,
_Out_ PDWORD SourceFileSize,
_Out_ PDWORD TargetFileSize,
_Out_ PUINT CompressionType);
WINSETUPAPI
BOOL
WINAPI
SetupGetInfFileListA(
_In_opt_ PCSTR DirectoryPath,
_In_ DWORD InfStyle,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetInfFileListW(
_In_opt_ PCWSTR DirectoryPath,
_In_ DWORD InfStyle,
_Out_writes_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupGetInfInformationA(
_In_ LPCVOID InfSpec,
_In_ DWORD SearchControl,
_Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PSP_INF_INFORMATION ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
_Success_(return != FALSE)
WINSETUPAPI
BOOL
WINAPI
SetupGetInfInformationW(
_In_ LPCVOID InfSpec,
_In_ DWORD SearchControl,
_Out_writes_bytes_to_opt_(ReturnBufferSize, *RequiredSize) PSP_INF_INFORMATION ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupGetIntField(_In_ PINFCONTEXT, _In_ DWORD, _Out_ PINT);
WINSETUPAPI BOOL WINAPI SetupGetLineByIndexA(_In_ HINF, _In_ PCSTR, _In_ DWORD, _Out_ PINFCONTEXT);
WINSETUPAPI BOOL WINAPI SetupGetLineByIndexW(_In_ HINF, _In_ PCWSTR, _In_ DWORD, _Out_ PINFCONTEXT);
WINSETUPAPI LONG WINAPI SetupGetLineCountA(_In_ HINF, _In_ PCSTR);
WINSETUPAPI LONG WINAPI SetupGetLineCountW(_In_ HINF, _In_ PCWSTR);
WINSETUPAPI
BOOL
WINAPI
SetupGetLineTextA(
_In_opt_ PINFCONTEXT Context,
_In_opt_ HINF InfHandle,
_In_opt_ PCSTR Section,
_In_opt_ PCSTR Key,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetLineTextW(
_In_opt_ PINFCONTEXT Context,
_In_opt_ HINF InfHandle,
_In_opt_ PCWSTR Section,
_In_opt_ PCWSTR Key,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetMultiSzFieldA(
_In_ PINFCONTEXT Context,
_In_ DWORD FieldIndex,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ LPDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetMultiSzFieldW(
_In_ PINFCONTEXT Context,
_In_ DWORD FieldIndex,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ LPDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetSourceFileLocationA(
_In_ HINF InfHandle,
_In_opt_ PINFCONTEXT InfContext,
_In_opt_ PCSTR FileName,
_Out_ PUINT SourceId,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetSourceFileLocationW(
_In_ HINF InfHandle,
_In_opt_ PINFCONTEXT InfContext,
_In_opt_ PCWSTR FileName,
_Out_ PUINT SourceId,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeA(_In_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _Out_ PDWORD, _In_ UINT);
WINSETUPAPI BOOL WINAPI SetupGetSourceFileSizeW(_In_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _Out_ PDWORD, _In_ UINT);
WINSETUPAPI
BOOL
WINAPI
SetupGetSourceInfoA(
_In_ HINF InfHandle,
_In_ UINT SourceId,
_In_ UINT InfoDesired,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetSourceInfoW(
_In_ HINF InfHandle,
_In_ UINT SourceId,
_In_ UINT InfoDesired,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetStringFieldA(
_In_ PINFCONTEXT Context,
_In_ DWORD FieldIndex,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetStringFieldW(
_In_ PINFCONTEXT Context,
_In_ DWORD FieldIndex,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetTargetPathA(
_In_ HINF InfHandle,
_In_opt_ PINFCONTEXT InfContext,
_In_opt_ PCSTR Section,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupGetTargetPathW(
_In_ HINF InfHandle,
_In_opt_ PINFCONTEXT InfContext,
_In_opt_ PCWSTR Section,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallback(_In_opt_ HWND);
WINSETUPAPI PVOID WINAPI SetupInitDefaultQueueCallbackEx(_In_opt_ HWND, _In_opt_ HWND, _In_ UINT, _Reserved_ DWORD, _Reserved_ PVOID);
WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogA(_In_opt_ PCSTR, _In_ DWORD);
WINSETUPAPI HSPFILELOG WINAPI SetupInitializeFileLogW(_In_opt_ PCWSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupInstallFileA(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID);
WINSETUPAPI BOOL WINAPI SetupInstallFileW(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID);
WINSETUPAPI BOOL WINAPI SetupInstallFileExA(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _Out_ PBOOL);
WINSETUPAPI BOOL WINAPI SetupInstallFileExW(_In_opt_ HINF, _In_opt_ PINFCONTEXT, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _Out_ PBOOL);
WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionA(_In_ HINF, _In_opt_ HINF, _In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR, _In_ UINT);
WINSETUPAPI BOOL WINAPI SetupInstallFilesFromInfSectionW(_In_ HINF, _In_opt_ HINF, _In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ UINT);
WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionA(_In_opt_ HWND, _In_ HINF, _In_ PCSTR, _In_ UINT, _In_opt_ HKEY, _In_opt_ PCSTR, _In_ UINT, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupInstallFromInfSectionW(_In_opt_ HWND, _In_ HINF, _In_ PCWSTR, _In_ UINT, _In_opt_ HKEY, _In_opt_ PCWSTR, _In_ UINT, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA);
WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionA(_In_ HINF, _In_ PCSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionW(_In_ HINF, _In_ PCWSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExA(_In_ HINF, _In_ PCSTR, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Reserved_ PVOID, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupInstallServicesFromInfSectionExW(_In_ HINF, _In_ PCWSTR, _In_ DWORD, _In_opt_ HDEVINFO, _In_opt_ PSP_DEVINFO_DATA, _Reserved_ PVOID, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupIterateCabinetA(_In_ PCSTR, _Reserved_ DWORD, _In_ PSP_FILE_CALLBACK_A, _In_ PVOID);
WINSETUPAPI BOOL WINAPI SetupIterateCabinetW(_In_ PCWSTR, _Reserved_ DWORD, _In_ PSP_FILE_CALLBACK_W, _In_ PVOID);
WINSETUPAPI BOOL WINAPI SetupLogErrorA(_In_ LPCSTR, _In_ LogSeverity);
WINSETUPAPI BOOL WINAPI SetupLogErrorW(_In_ LPCWSTR, _In_ LogSeverity);
WINSETUPAPI BOOL WINAPI SetupLogFileA(_In_ HSPFILELOG, _In_opt_ PCSTR, _In_ PCSTR, _In_ PCSTR, _In_ DWORD, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupLogFileW(_In_ HSPFILELOG, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ PCWSTR, _In_ DWORD, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
WINSETUPAPI
BOOL
WINAPI
SetupOpenAppendInfFileA(
_In_opt_ PCSTR FileName,
_In_ HINF InfHandle,
_Out_opt_ PUINT ErrorLine);
WINSETUPAPI
BOOL
WINAPI
SetupOpenAppendInfFileW(
_In_opt_ PCWSTR FileName,
_In_ HINF InfHandle,
_Out_opt_ PUINT ErrorLine);
WINSETUPAPI HSPFILEQ WINAPI SetupOpenFileQueue(VOID);
WINSETUPAPI
HINF
WINAPI
SetupOpenInfFileA(
_In_ PCSTR FileName,
_In_opt_ PCSTR InfClass,
_In_ DWORD InfStyle,
_Out_opt_ PUINT ErrorLine);
WINSETUPAPI
HINF
WINAPI
SetupOpenInfFileW(
_In_ PCWSTR FileName,
_In_opt_ PCWSTR InfClass,
_In_ DWORD InfStyle,
_Out_opt_ PUINT ErrorLine);
WINSETUPAPI BOOL WINAPI SetupOpenLog(_In_ BOOL);
WINSETUPAPI HINF WINAPI SetupOpenMasterInf(VOID);
WINSETUPAPI
UINT
WINAPI
SetupPromptForDiskA(
_In_ HWND hwndParent,
_In_opt_ PCSTR DialogTitle,
_In_opt_ PCSTR DiskName,
_In_opt_ PCSTR PathToSource,
_In_ PCSTR FileSought,
_In_opt_ PCSTR TagFile,
_In_ DWORD DiskPromptStyle,
_Out_writes_opt_(PathBufferSize) PSTR PathBuffer,
_In_ DWORD PathBufferSize,
_Out_opt_ PDWORD PathRequiredSize);
WINSETUPAPI
UINT
WINAPI
SetupPromptForDiskW(
_In_ HWND hwndParent,
_In_opt_ PCWSTR DialogTitle,
_In_opt_ PCWSTR DiskName,
_In_opt_ PCWSTR PathToSource,
_In_ PCWSTR FileSought,
_In_opt_ PCWSTR TagFile,
_In_ DWORD DiskPromptStyle,
_Out_writes_opt_(PathBufferSize) PWSTR PathBuffer,
_In_ DWORD PathBufferSize,
_Out_opt_ PDWORD PathRequiredSize);
WINSETUPAPI INT WINAPI SetupPromptReboot(_In_opt_ HSPFILEQ, _In_opt_ HWND, _In_ BOOL);
WINSETUPAPI BOOL WINAPI SetupQueryA(DWORD,PCSTR**,PUINT);
WINSETUPAPI BOOL WINAPI SetupQueryW(DWORD,PCWSTR**,PUINT);
WINSETUPAPI
BOOL
WINAPI
SetupQueryDrivesInDiskSpaceListA(
_In_ HDSKSPC DiskSpace,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryDrivesInDiskSpaceListW(
_In_ HDSKSPC DiskSpace,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryFileLogA(
_In_ HSPFILELOG FileLogHandle,
_In_opt_ PCSTR LogSectionName,
_In_ PCSTR TargetFilename,
_In_ SetupFileLogInfo DesiredInfo,
_Out_writes_opt_(ReturnBufferSize) PSTR DataOut,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryFileLogW(
_In_ HSPFILELOG FileLogHandle,
_In_opt_ PCWSTR LogSectionName,
_In_ PCWSTR TargetFilename,
_In_ SetupFileLogInfo DesiredInfo,
_Out_writes_opt_(ReturnBufferSize) PWSTR DataOut,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfFileInformationA(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfFileInformationW(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfOriginalFileInformationA(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
_Out_ PSP_ORIGINAL_FILE_INFO_A OriginalFileInfo);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfOriginalFileInformationW(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_In_opt_ PSP_ALTPLATFORM_INFO AlternatePlatformInfo,
_Out_ PSP_ORIGINAL_FILE_INFO_W OriginalFileInfo);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfVersionInformationA(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_In_opt_ PCSTR Key,
_Out_writes_opt_(ReturnBufferSize) PSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI
BOOL
WINAPI
SetupQueryInfVersionInformationW(
_In_ PSP_INF_INFORMATION InfInformation,
_In_ UINT InfIndex,
_In_opt_ PCWSTR Key,
_Out_writes_opt_(ReturnBufferSize) PWSTR ReturnBuffer,
_In_ DWORD ReturnBufferSize,
_Out_opt_ PDWORD RequiredSize);
WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveA(_In_ HDSKSPC, _In_ PCSTR, _Out_ LONGLONG*, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupQuerySpaceRequiredOnDriveW(_In_ HDSKSPC, _In_ PCWSTR, _Out_ LONGLONG*, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupQueueCopyA(_In_ HSPFILEQ, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueCopyW(_In_ HSPFILEQ, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectA(_In_ PSP_FILE_COPY_PARAMS_A);
WINSETUPAPI BOOL WINAPI SetupQueueCopyIndirectW(_In_ PSP_FILE_COPY_PARAMS_W);
WINSETUPAPI BOOL WINAPI SetupQueueCopySectionA(_In_ HSPFILEQ, _In_opt_ PCSTR, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueCopySectionW(_In_ HSPFILEQ, _In_opt_ PCWSTR, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ PCSTR, _In_ PCSTR, _In_opt_ PCSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueDefaultCopyW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ PCWSTR, _In_ PCWSTR, _In_opt_ PCWSTR, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupQueueDeleteA(_In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupQueueDeleteW(_In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupQueueDeleteSectionW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupQueueRenameA(_In_ HSPFILEQ, _In_ PCSTR, _In_opt_ PCSTR, _In_opt_ PCSTR, _In_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupQueueRenameW(_In_ HSPFILEQ, _In_ PCWSTR, _In_opt_ PCWSTR, _In_opt_ PCWSTR, _In_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionA(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupQueueRenameSectionW(_In_ HSPFILEQ, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryA(_In_ HSPFILELOG, _In_opt_ PCSTR, _In_opt_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupRemoveFileLogEntryW(_In_ HSPFILELOG, _In_opt_ PCWSTR, _In_opt_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListA(_In_ HDSKSPC, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupRemoveFromDiskSpaceListW(_In_ HDSKSPC, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListA(_In_ DWORD, _In_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupRemoveFromSourceListW(_In_ DWORD, _In_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupRemoveInstallSectionFromDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListA(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI BOOL WINAPI SetupRemoveSectionFromDiskSpaceListW(_In_ HDSKSPC, _In_ HINF, _In_opt_ HINF, _In_ PCWSTR, _In_ UINT, _Reserved_ PVOID, _Reserved_ UINT);
WINSETUPAPI UINT WINAPI SetupRenameErrorA(_In_ HWND, _In_opt_ PCSTR, _In_ PCSTR, _In_ PCSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI UINT WINAPI SetupRenameErrorW(_In_ HWND, _In_opt_ PCWSTR, _In_ PCWSTR, _In_ PCWSTR, _In_ UINT, _In_ DWORD);
WINSETUPAPI BOOL WINAPI SetupScanFileQueueA(_In_ HSPFILEQ, _In_ DWORD, _In_opt_ HWND, _In_opt_ PSP_FILE_CALLBACK_A, _In_opt_ PVOID, _Out_ PDWORD);
WINSETUPAPI BOOL WINAPI SetupScanFileQueueW(_In_ HSPFILEQ, _In_ DWORD, _In_opt_ HWND, _In_opt_ PSP_FILE_CALLBACK_W, _In_opt_ PVOID, _Out_ PDWORD);
WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdA(_In_ HINF, _In_ DWORD, _In_opt_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdW(_In_ HINF, _In_ DWORD, _In_opt_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExA(_In_ HINF, _In_ DWORD, _In_opt_ PCSTR, _In_ DWORD, _Reserved_ DWORD, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupSetDirectoryIdExW(_In_ HINF, _In_ DWORD, _In_opt_ PCWSTR, _In_ DWORD, _Reserved_ DWORD, _Reserved_ PVOID);
WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformA(_In_ HSPFILEQ, _In_opt_ PSP_ALTPLATFORM_INFO, _In_opt_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupSetFileQueueAlternatePlatformW(_In_ HSPFILEQ, _In_opt_ PSP_ALTPLATFORM_INFO, _In_opt_ PCWSTR);
WINSETUPAPI BOOL WINAPI SetupSetNonInteractiveMode(_In_ BOOL);
WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideA(_In_opt_ PCSTR);
WINSETUPAPI BOOL WINAPI SetupSetPlatformPathOverrideW(_In_opt_ PCWSTR);
WINSETUPAPI
BOOL
WINAPI
SetupSetSourceListA(
_In_ DWORD Flags,
_In_reads_(SourceCount) PCSTR *SourceList,
_In_ UINT SourceCount);
WINSETUPAPI
BOOL
WINAPI
SetupSetSourceListW(
_In_ DWORD Flags,
_In_reads_(SourceCount) PCWSTR *SourceList,
_In_ UINT SourceCount);
WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(_In_ PVOID);
WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(_In_ HSPFILELOG);
WINSETUPAPI
BOOL
WINAPI
SetupUninstallOEMInfA(
_In_ PCSTR InfFileName,
_In_ DWORD Flags,
_In_ PVOID Reserved);
WINSETUPAPI
BOOL
WINAPI
SetupUninstallOEMInfW(
_In_ PCWSTR InfFileName,
_In_ DWORD Flags,
_In_ PVOID Reserved);
WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR);
WINSETUPAPI DWORD WINAPI pSetupCaptureAndConvertAnsiArg(PCSTR, PWSTR*);
WINSETUPAPI VOID WINAPI pSetupCenterWindowRelativeToParent(HWND);
WINSETUPAPI BOOL WINAPI pSetupConcatenatePaths(LPWSTR, LPCWSTR, DWORD, LPDWORD);
WINSETUPAPI PWSTR WINAPI pSetupDuplicateString(PCWSTR);
WINSETUPAPI BOOL WINAPI pSetupEnablePrivilege(PCWSTR, BOOL);
WINSETUPAPI PWSTR WINAPI pSetupGetFileTitle(PCWSTR);
WINSETUPAPI BOOL WINAPI pSetupGetVersionInfoFromImage(LPWSTR, PULARGE_INTEGER, LPWORD);
WINSETUPAPI DWORD WINAPI pSetupGuidFromString(PCWSTR, LPGUID);
WINSETUPAPI BOOL WINAPI pSetupIsGuidNull(LPGUID);
WINSETUPAPI BOOL WINAPI pSetupIsUserAdmin(VOID);
WINSETUPAPI PWSTR WINAPI pSetupMultiByteToUnicode(PCSTR, UINT);
WINSETUPAPI DWORD WINAPI pSetupOpenAndMapForRead(PCWSTR, PDWORD, PHANDLE, PHANDLE, PVOID*);
WINSETUPAPI DWORD WINAPI pSetupStringFromGuid(LPGUID, PWSTR, DWORD);
WINSETUPAPI DWORD WINAPI pSetupStringTableAddString(HSTRING_TABLE, LPWSTR, DWORD);
WINSETUPAPI DWORD WINAPI pSetupStringTableAddStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD);
WINSETUPAPI VOID WINAPI pSetupStringTableDestroy(HSTRING_TABLE);
WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableDuplicate(HSTRING_TABLE);
WINSETUPAPI BOOL WINAPI pSetupStringTableGetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableInitialize(VOID);
WINSETUPAPI HSTRING_TABLE WINAPI pSetupStringTableInitializeEx(DWORD, DWORD);
WINSETUPAPI DWORD WINAPI pSetupStringTableLookUpString(HSTRING_TABLE, LPWSTR, DWORD);
WINSETUPAPI DWORD WINAPI pSetupStringTableLookUpStringEx(HSTRING_TABLE, LPWSTR, DWORD, LPVOID, DWORD);
WINSETUPAPI BOOL WINAPI pSetupStringTableSetExtraData(HSTRING_TABLE, DWORD, LPVOID, DWORD);
WINSETUPAPI LPWSTR WINAPI pSetupStringTableStringFromId(HSTRING_TABLE, DWORD);
WINSETUPAPI BOOL WINAPI pSetupStringTableStringFromIdEx(HSTRING_TABLE, DWORD, LPWSTR, LPDWORD);
WINSETUPAPI PSTR WINAPI pSetupUnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
WINSETUPAPI BOOL WINAPI pSetupUnmapAndCloseFile(HANDLE, HANDLE, PVOID);
WINSETUPAPI DWORD WINAPI TakeOwnershipOfFile(PCWSTR);
WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage);
/* for backward compatability */
#define SetupDiCreateInterfaceDeviceW SetupDiCreateDeviceInterfaceW
#define SetupDiCreateInterfaceDeviceRegKeyW SetupDiCreateDeviceInterfaceRegKeyW
#define SetupDiOpenInterfaceDeviceW SetupDiOpenDeviceInterfaceW
#define SetupDiGetInterfaceDeviceDetailW SetupDiGetDeviceInterfaceDetailW
#define SetupDiCreateInterfaceDeviceA SetupDiCreateDeviceInterfaceA
#define SetupDiCreateInterfaceDeviceRegKeyA SetupDiCreateDeviceInterfaceRegKeyA
#define SetupDiOpenInterfaceDeviceA SetupDiOpenDeviceInterfaceA
#define SetupDiGetInterfaceDeviceDetailA SetupDiGetDeviceInterfaceDetailA
#ifdef UNICODE
#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_W
#define InstallHinfSection InstallHinfSectionW
#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListW
#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListW
#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListW
#define SetupAddToSourceList SetupAddToSourceListW
#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListW
#define SetupBackupError SetupBackupErrorW
#define SetupCommitFileQueue SetupCommitFileQueueW
#define SetupCopyError SetupCopyErrorW
#define SetupCopyOEMInf SetupCopyOEMInfW
#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListW
#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileW
#define SetupDefaultQueueCallback SetupDefaultQueueCallbackW
#define SetupDeleteError SetupDeleteErrorW
#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExW
#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExW
#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameW
#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExW
#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidW
#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExW
#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoW
#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyW
#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyW
#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceW
#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceW
#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyW
#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoW
#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallW
#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExW
#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExW
#define SetupDiGetClassDescription SetupDiGetClassDescriptionW
#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsW
#define SetupDiGetClassDevsEx SetupDiGetClassDevsExW
#define SetupDiGetClassDevs SetupDiGetClassDevsW
#define SetupDiGetClassImageListEx SetupDiGetClassImageListExW
#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsW
#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyW
#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailW
#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsW
#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdW
#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailW
#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailW
#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyW
#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailW
#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsW
#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExW
#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameW
#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExW
#define SetupDiGetINFClass SetupDiGetINFClassW
#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverW
#define SetupDiInstallClassEx SetupDiInstallClassExW
#define SetupDiInstallClass SetupDiInstallClassW
#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExW
#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoW
#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceW
#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceW
#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsW
#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyW
#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsW
#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyW
#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsW
#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverW
#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListW
#define SetupFindFirstLine SetupFindFirstLineW
#define SetupFindNextMatchLine SetupFindNextMatchLineW
#define SetupFreeSourceList SetupFreeSourceListW
#define SetupGetBackupInformation SetupGetBackupInformationW
#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoW
#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExW
#define SetupGetInfFileList SetupGetInfFileListW
#define SetupGetInfInformation SetupGetInfInformationW
#define SetupGetLineByIndex SetupGetLineByIndexW
#define SetupGetLineCount SetupGetLineCountW
#define SetupGetLineText SetupGetLineTextW
#define SetupGetMultiSzField SetupGetMultiSzFieldW
#define SetupGetSourceFileLocation SetupGetSourceFileLocationW
#define SetupGetSourceFileSize SetupGetSourceFileSizeW
#define SetupGetSourceInfo SetupGetSourceInfoW
#define SetupGetStringField SetupGetStringFieldW
#define SetupGetTargetPath SetupGetTargetPathW
#define SetupInitializeFileLog SetupInitializeFileLogW
#define SetupInstallFileEx SetupInstallFileExW
#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionW
#define SetupInstallFile SetupInstallFileW
#define SetupInstallFromInfSection SetupInstallFromInfSectionW
#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExW
#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionW
#define SetupIterateCabinet SetupIterateCabinetW
#define SetupLogError SetupLogErrorW
#define SetupLogFile SetupLogFileW
#define SetupOpenAppendInfFile SetupOpenAppendInfFileW
#define SetupOpenInfFile SetupOpenInfFileW
#define SetupPromptForDisk SetupPromptForDiskW
#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListW
#define SetupQueryFileLog SetupQueryFileLogW
#define SetupQueryInfFileInformation SetupQueryInfFileInformationW
#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationW
#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationW
#define SetupQuerySourceList SetupQuerySourceListW
#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveW
#define SetupQueueCopyIndirect SetupQueueCopyIndirectW
#define SetupQueueCopySection SetupQueueCopySectionW
#define SetupQueueCopy SetupQueueCopyW
#define SetupQueueDefaultCopy SetupQueueDefaultCopyW
#define SetupQueueDeleteSection SetupQueueDeleteSectionW
#define SetupQueueDelete SetupQueueDeleteW
#define SetupQueueRenameSection SetupQueueRenameSectionW
#define SetupQueueRename SetupQueueRenameW
#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryW
#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListW
#define SetupRemoveFromSourceList SetupRemoveFromSourceListW
#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListW
#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListW
#define SetupRenameError SetupRenameErrorW
#define SetupScanFileQueue SetupScanFileQueueW
#define SetupSetDirectoryIdEx SetupSetDirectoryIdExW
#define SetupSetDirectoryId SetupSetDirectoryIdW
#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW
#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW
#define SetupSetSourceList SetupSetSourceListW
#define SetupUninstallOEMInf SetupUninstallOEMInfW
#else
#define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A
#define InstallHinfSection InstallHinfSectionA
#define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA
#define SetupAddSectionToDiskSpaceList SetupAddSectionToDiskSpaceListA
#define SetupAddToDiskSpaceList SetupAddToDiskSpaceListA
#define SetupAddToSourceList SetupAddToSourceListA
#define SetupAdjustDiskSpaceList SetupAdjustDiskSpaceListA
#define SetupBackupError SetupBackupErrorA
#define SetupCommitFileQueue SetupCommitFileQueueA
#define SetupCopyError SetupCopyErrorA
#define SetupCopyOEMInf SetupCopyOEMInfA
#define SetupCreateDiskSpaceList SetupCreateDiskSpaceListA
#define SetupDecompressOrCopyFile SetupDecompressOrCopyFileA
#define SetupDefaultQueueCallback SetupDefaultQueueCallbackA
#define SetupDeleteError SetupDeleteErrorA
#define SetupDiBuildClassInfoListEx SetupDiBuildClassInfoListExA
#define SetupDiClassGuidsFromName SetupDiClassGuidsFromNameA
#define SetupDiClassGuidsFromNameEx SetupDiClassGuidsFromNameExA
#define SetupDiClassNameFromGuid SetupDiClassNameFromGuidA
#define SetupDiClassNameFromGuidEx SetupDiClassNameFromGuidExA
#define SetupDiCreateDeviceInfo SetupDiCreateDeviceInfoA
#define SetupDiCreateDeviceInfoListEx SetupDiCreateDeviceInfoListExA
#define SetupDiCreateDeviceInterface SetupDiCreateDeviceInterfaceA
#define SetupDiCreateInterfaceDevice SetupDiCreateDeviceInterfaceA
#define SetupDiCreateDeviceInterfaceRegKey SetupDiCreateDeviceInterfaceRegKeyA
#define SetupDiCreateInterfaceDeviceRegKey SetupDiCreateDeviceInterfaceRegKeyA
#define SetupDiCreateDevRegKey SetupDiCreateDevRegKeyA
#define SetupDiDeleteInterfaceDeviceData SetupDiDeleteDeviceInterfaceData
#define SetupDiEnumDriverInfo SetupDiEnumDriverInfoA
#define SetupDiGetActualSectionToInstall SetupDiGetActualSectionToInstallA
#define SetupDiGetActualSectionToInstallEx SetupDiGetActualSectionToInstallExA
#define SetupDiGetClassDescription SetupDiGetClassDescriptionA
#define SetupDiGetClassDescriptionEx SetupDiGetClassDescriptionExA
#define SetupDiGetClassDevPropertySheets SetupDiGetClassDevPropertySheetsA
#define SetupDiGetClassDevs SetupDiGetClassDevsA
#define SetupDiGetClassDevsEx SetupDiGetClassDevsExA
#define SetupDiGetClassImageListEx SetupDiGetClassImageListExA
#define SetupDiGetClassInstallParams SetupDiGetClassInstallParamsA
#define SetupDiGetClassRegistryProperty SetupDiGetClassRegistryPropertyA
#define SetupDiGetDeviceInfoListDetail SetupDiGetDeviceInfoListDetailA
#define SetupDiGetDeviceInstallParams SetupDiGetDeviceInstallParamsA
#define SetupDiGetDeviceInstanceId SetupDiGetDeviceInstanceIdA
#define SetupDiGetDeviceInterfaceDetail SetupDiGetDeviceInterfaceDetailA
#define SetupDiGetInterfaceDeviceDetail SetupDiGetDeviceInterfaceDetailA
#define SetupDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryPropertyA
#define SetupDiGetDriverInfoDetail SetupDiGetDriverInfoDetailA
#define SetupDiGetDriverInstallParams SetupDiGetDriverInstallParamsA
#define SetupDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyNameA
#define SetupDiGetHwProfileFriendlyNameEx SetupDiGetHwProfileFriendlyNameExA
#define SetupDiGetHwProfileListEx SetupDiGetHwProfileListExA
#define SetupDiGetINFClass SetupDiGetINFClassA
#define SetupDiGetSelectedDriver SetupDiGetSelectedDriverA
#define SetupDiInstallClass SetupDiInstallClassA
#define SetupDiInstallClassEx SetupDiInstallClassExA
#define SetupDiOpenClassRegKeyEx SetupDiOpenClassRegKeyExA
#define SetupDiOpenDeviceInfo SetupDiOpenDeviceInfoA
#define SetupDiOpenDeviceInterface SetupDiOpenDeviceInterfaceA
#define SetupDiOpenInterfaceDevice SetupDiOpenDeviceInterfaceA
#define SetupDiSetClassInstallParams SetupDiSetClassInstallParamsA
#define SetupDiSetClassRegistryProperty SetupDiSetClassRegistryPropertyA
#define SetupDiSetDeviceInstallParams SetupDiSetDeviceInstallParamsA
#define SetupDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryPropertyA
#define SetupDiSetDriverInstallParams SetupDiSetDriverInstallParamsA
#define SetupDiSetSelectedDriver SetupDiSetSelectedDriverA
#define SetupDuplicateDiskSpaceList SetupDuplicateDiskSpaceListA
#define SetupFindFirstLine SetupFindFirstLineA
#define SetupFindNextMatchLine SetupFindNextMatchLineA
#define SetupFreeSourceList SetupFreeSourceListA
#define SetupGetBackupInformation SetupGetBackupInformationA
#define SetupGetFileCompressionInfo SetupGetFileCompressionInfoA
#define SetupGetFileCompressionInfoEx SetupGetFileCompressionInfoExA
#define SetupGetInfFileList SetupGetInfFileListA
#define SetupGetInfInformation SetupGetInfInformationA
#define SetupGetLineByIndex SetupGetLineByIndexA
#define SetupGetLineCount SetupGetLineCountA
#define SetupGetLineText SetupGetLineTextA
#define SetupGetMultiSzField SetupGetMultiSzFieldA
#define SetupGetSourceFileLocation SetupGetSourceFileLocationA
#define SetupGetSourceFileSize SetupGetSourceFileSizeA
#define SetupGetSourceInfo SetupGetSourceInfoA
#define SetupGetStringField SetupGetStringFieldA
#define SetupGetTargetPath SetupGetTargetPathA
#define SetupInitializeFileLog SetupInitializeFileLogA
#define SetupInstallFile SetupInstallFileA
#define SetupInstallFileEx SetupInstallFileExA
#define SetupInstallFilesFromInfSection SetupInstallFilesFromInfSectionA
#define SetupInstallFromInfSection SetupInstallFromInfSectionA
#define SetupInstallServicesFromInfSection SetupInstallServicesFromInfSectionA
#define SetupInstallServicesFromInfSectionEx SetupInstallServicesFromInfSectionExA
#define SetupIterateCabinet SetupIterateCabinetA
#define SetupLogError SetupLogErrorA
#define SetupLogFile SetupLogFileA
#define SetupOpenAppendInfFile SetupOpenAppendInfFileA
#define SetupOpenInfFile SetupOpenInfFileA
#define SetupPromptForDisk SetupPromptForDiskA
#define SetupQueryDrivesInDiskSpaceList SetupQueryDrivesInDiskSpaceListA
#define SetupQueryFileLog SetupQueryFileLogA
#define SetupQueryInfFileInformation SetupQueryInfFileInformationA
#define SetupQueryInfOriginalFileInformation SetupQueryInfOriginalFileInformationA
#define SetupQueryInfVersionInformation SetupQueryInfVersionInformationA
#define SetupQuerySourceList SetupQuerySourceListA
#define SetupQuerySpaceRequiredOnDrive SetupQuerySpaceRequiredOnDriveA
#define SetupQueueCopy SetupQueueCopyA
#define SetupQueueCopyIndirect SetupQueueCopyIndirectA
#define SetupQueueCopySection SetupQueueCopySectionA
#define SetupQueueDefaultCopy SetupQueueDefaultCopyA
#define SetupQueueDelete SetupQueueDeleteA
#define SetupQueueDeleteSection SetupQueueDeleteSectionA
#define SetupQueueRename SetupQueueRenameA
#define SetupQueueRenameSection SetupQueueRenameSectionA
#define SetupRemoveFileLogEntry SetupRemoveFileLogEntryA
#define SetupRemoveFromDiskSpaceList SetupRemoveFromDiskSpaceListA
#define SetupRemoveFromSourceList SetupRemoveFromSourceListA
#define SetupRemoveInstallSectionFromDiskSpaceList SetupRemoveInstallSectionFromDiskSpaceListA
#define SetupRemoveSectionFromDiskSpaceList SetupRemoveSectionFromDiskSpaceListA
#define SetupRenameError SetupRenameErrorA
#define SetupScanFileQueue SetupScanFileQueueA
#define SetupSetDirectoryId SetupSetDirectoryIdA
#define SetupSetDirectoryIdEx SetupSetDirectoryIdExA
#define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA
#define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA
#define SetupSetSourceList SetupSetSourceListA
#define SetupUninstallOEMInf SetupUninstallOEMInfA
#endif /* UNICODE */
#endif /* RC_INVOKED */
#ifdef __cplusplus
}
#endif
#include <poppack.h>
#endif /* _SETUPAPI_H_ */