/** * Windows API header module * * Translated from MinGW Windows headers * * Authors: Vladimir Vlasov * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_setupapi.d) */module core.sys.windows.setupapi;version (Windows): version (ANSI) {} else version = Unicode;pragma(lib, "setupapi"); import core.sys.windows.basetyps, core.sys.windows.commctrl, core.sys.windows.prsht, core.sys.windows.w32api, core.sys.windows.winreg, core.sys.windows.windef;import core.sys.windows.winbase; // for SYSTEMTIME /*static if (_WIN32_WINNT < _WIN32_WINDOWS) {enum UINT _SETUPAPI_VER = _WIN32_WINNT; // SetupAPI version follows Windows NT version} else static if (_WIN32_WINDOWS) { static if (_WIN32_WINDOWS >= 0x0490) {enum UINT _SETUPAPI_VER = 0x0500; // WinME uses same version of SetupAPI as Win2k } else static if (_WIN32_WINDOWS >= 0x0410) {enum UINT _SETUPAPI_VER = 0x0410; // Indicates version of SetupAPI shipped with Win98 } else {enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version }} else {enum UINT _SETUPAPI_VER = 0x0501;} version (WindowsNTonly) { static if (_WIN32_WINNT >= 0x500) {enum UINT USE_SP_DRVINFO_DATA_V1 = 0; } else {enum UINT USE_SP_DRVINFO_DATA_V1 = 1; }} else {enum UINT USE_SP_DRVINFO_DATA_V1 = 1;}*//+enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI versionenum UINT USE_SP_DRVINFO_DATA_V1 = 1;+/enum UINT _SETUPAPI_VER = _WIN32_WINNT;enum bool USE_SP_DRVINFO_DATA_V1 = _WIN32_WINNT < 0x500; enum : uint { LINE_LEN = 256, MAX_INF_STRING_LENGTH = 4096, MAX_TITLE_LEN = 60, MAX_INSTRUCTION_LEN = 256, MAX_LABEL_LEN = 30, MAX_SERVICE_NAME_LEN = 256, MAX_SUBTITLE_LEN = 256, SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3} enum : DWORD { COPYFLG_WARN_IF_SKIP = 0x00000001, COPYFLG_NOSKIP = 0x00000002, COPYFLG_NOVERSIONCHECK = 0x00000004, COPYFLG_FORCE_FILE_IN_USE = 0x00000008, COPYFLG_NO_OVERWRITE = 0x00000010, COPYFLG_NO_VERSION_DIALOG = 0x00000020, COPYFLG_OVERWRITE_OLDER_ONLY = 0x00000040, COPYFLG_REPLACEONLY = 0x00000400, COPYFLG_NODECOMP = 0x00000800, COPYFLG_REPLACE_BOOT_FILE = 0x00001000, COPYFLG_NOPRUNE = 0x00002000} enum : DWORD { DELFLG_IN_USE = 0x00000001, DELFLG_IN_USE1 = 0x00010000} enum : DWORD { DI_REMOVEDEVICE_GLOBAL = 0x00000001, DI_REMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, DI_UNREMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, DI_SHOWOEM = 0x00000001, DI_SHOWCOMPAT = 0x00000002, DI_SHOWCLASS = 0x00000004, DI_SHOWALL = 0x00000007, DI_NOVCP = 0x00000008, DI_DIDCOMPAT = 0x00000010, DI_DIDCLASS = 0x00000020, DI_AUTOASSIGNRES = 0x00000040, DI_NEEDRESTART = 0x00000080, DI_NEEDREBOOT = 0x00000100, DI_NOBROWSE = 0x00000200, DI_MULTMFGS = 0x00000400, DI_DISABLED = 0x00000800, DI_GENERALPAGE_ADDED = 0x00001000, DI_RESOURCEPAGE_ADDED = 0x00002000, DI_PROPERTIES_CHANGE = 0x00004000, DI_INF_IS_SORTED = 0x00008000, DI_ENUMSINGLEINF = 0x00010000, DI_DONOTCALLCONFIGMG = 0x00020000, DI_INSTALLDISABLED = 0x00040000, DI_COMPAT_FROM_CLASS = 0x00080000, DI_CLASSINSTALLPARAMS = 0x00100000, DI_NODI_DEFAULTACTION = 0x00200000, DI_QUIETINSTALL = 0x00800000, DI_NOFILECOPY = 0x01000000, DI_FORCECOPY = 0x02000000, DI_DRIVERPAGE_ADDED = 0x04000000, DI_USECI_SELECTSTRINGS = 0x08000000, DI_OVERRIDE_INFFLAGS = 0x10000000, DI_PROPS_NOCHANGEUSAGE = 0x20000000, DI_NOSELECTICONS = 0x40000000, DI_NOWRITE_IDS = 0x80000000, DI_FLAGSEX_USEOLDINFSEARCH = 0x00000001, DI_FLAGSEX_AUTOSELECTRANK0 = 0x00000002, DI_FLAGSEX_CI_FAILED = 0x00000004, DI_FLAGSEX_DIDINFOLIST = 0x00000010, DI_FLAGSEX_DIDCOMPATINFO = 0x00000020, DI_FLAGSEX_FILTERCLASSES = 0x00000040, DI_FLAGSEX_SETFAILEDINSTALL = 0x00000080, DI_FLAGSEX_DEVICECHANGE = 0x00000100, DI_FLAGSEX_ALWAYSWRITEIDS = 0x00000200, DI_FLAGSEX_PROPCHANGE_PENDING = 0x00000400, DI_FLAGSEX_ALLOWEXCLUDEDDRVS = 0x00000800, DI_FLAGSEX_NOUIONQUERYREMOVE = 0x00001000, DI_FLAGSEX_USECLASSFORCOMPAT = 0x00002000, DI_FLAGSEX_OLDINF_IN_CLASSLIST = 0x00004000, DI_FLAGSEX_NO_DRVREG_MODIFY = 0x00008000, DI_FLAGSEX_IN_SYSTEM_SETUP = 0x00010000, DI_FLAGSEX_INET_DRIVER = 0x00020000, DI_FLAGSEX_APPENDDRIVERLIST = 0x00040000, DI_FLAGSEX_PREINSTALLBACKUP = 0x00080000, DI_FLAGSEX_BACKUPONREPLACE = 0x00100000, DI_FLAGSEX_DRIVERLIST_FROM_URL = 0x00200000, DI_FLAGSEX_RESERVED1 = 0x00400000, DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS = 0x00800000, DI_FLAGSEX_POWERPAGE_ADDED = 0x01000000} enum : DWORD { DIBCI_NOINSTALLCLASS = 0x00000001, DIBCI_NODISPLAYCLASS = 0x00000002} enum : DWORD { DICD_GENERATE_ID = 0x00000001, DICD_INHERIT_CLASSDRVS = 0x00000002} enum : DWORD { DICS_ENABLE = 1, DICS_DISABLE, DICS_PROPCHANGE, DICS_START, DICS_STOP // = 5} enum : DWORD { DICS_FLAG_GLOBAL = 1, DICS_FLAG_CONFIGSPECIFIC = 2, DICS_FLAG_CONFIGGENERAL = 4} alias DI_FUNCTION = UINT; enum : DI_FUNCTION { DIF_SELECTDEVICE = 1, DIF_INSTALLDEVICE, DIF_ASSIGNRESOURCES, DIF_PROPERTIES, DIF_REMOVE, DIF_FIRSTTIMESETUP, DIF_FOUNDDEVICE, DIF_SELECTCLASSDRIVERS, DIF_VALIDATECLASSDRIVERS, DIF_INSTALLCLASSDRIVERS, DIF_CALCDISKSPACE, DIF_DESTROYPRIVATEDATA, DIF_VALIDATEDRIVER, DIF_MOVEDEVICE, DIF_DETECT, DIF_INSTALLWIZARD, DIF_DESTROYWIZARDDATA, DIF_PROPERTYCHANGE, DIF_ENABLECLASS, DIF_DETECTVERIFY, DIF_INSTALLDEVICEFILES, DIF_UNREMOVE, DIF_SELECTBESTCOMPATDRV, DIF_ALLOW_INSTALL, DIF_REGISTERDEVICE, DIF_NEWDEVICEWIZARD_PRESELECT, DIF_NEWDEVICEWIZARD_SELECT, DIF_NEWDEVICEWIZARD_PREANALYZE, DIF_NEWDEVICEWIZARD_POSTANALYZE, DIF_NEWDEVICEWIZARD_FINISHINSTALL, DIF_UNUSED1, DIF_INSTALLINTERFACES, DIF_DETECTCANCEL, DIF_REGISTER_COINSTALLERS, DIF_ADDPROPERTYPAGE_ADVANCED, DIF_ADDPROPERTYPAGE_BASIC, DIF_RESERVED1, DIF_TROUBLESHOOTER, DIF_POWERMESSAGEWAKE // = 39} enum : DWORD { DIGCF_DEFAULT = 0x00000001, DIGCF_PRESENT = 0x00000002, DIGCF_ALLCLASSES = 0x00000004, DIGCF_PROFILE = 0x00000008, DIGCF_DEVICEINTERFACE = 0x00000010} deprecated enum : DWORD { DIGCF_INTERFACEDEVICE = DIGCF_DEVICEINTERFACE} enum : DWORD { DIGCDP_FLAG_BASIC = 0x00000001, DIGCDP_FLAG_ADVANCED = 0x00000002} enum : DWORD { DIOCR_INSTALLER = 0x00000001, DIOCR_INTERFACE = 0x00000002} enum : DWORD { DIODI_NO_ADD = 0x00000001} enum : DWORD { DIOD_INHERIT_CLASSDRVS = 0x00000002, DIOD_CANCEL_REMOVE = 0x00000004} enum : DWORD { DIREG_DEV = 0x00000001, DIREG_DRV = 0x00000002, DIREG_BOTH = 0x00000004} enum : int { DIRID_ABSOLUTE = -1, DIRID_NULL = 0, DIRID_SRCPATH = 1, DIRID_WINDOWS = 10, DIRID_SYSTEM = 11, DIRID_DRIVERS = 12, DIRID_IOSUBSYS = DIRID_DRIVERS, DIRID_INF = 17, DIRID_HELP = 18, DIRID_FONTS = 20, DIRID_VIEWERS = 21, DIRID_COLOR = 23, DIRID_APPS = 24, DIRID_SHARED = 25, DIRID_BOOT = 30, DIRID_SYSTEM16 = 50, DIRID_SPOOL = 51, DIRID_SPOOLDRIVERS = 52, DIRID_USERPROFILE = 53, DIRID_LOADER = 54, DIRID_PRINTPROCESSOR = 55, DIRID_DEFAULT = DIRID_SYSTEM} enum : int { DIRID_COMMON_STARTMENU = 16406, DIRID_COMMON_PROGRAMS = 16407, DIRID_COMMON_STARTUP = 16408, DIRID_COMMON_DESKTOPDIRECTORY = 16409, DIRID_COMMON_FAVORITES = 16415, DIRID_COMMON_APPDATA = 16419, DIRID_PROGRAM_FILES = 16422, DIRID_SYSTEM_X86 = 16425, DIRID_PROGRAM_FILES_X86 = 16426, DIRID_PROGRAM_FILES_COMMON = 16427, DIRID_PROGRAM_FILES_COMMONX86 = 16428, DIRID_COMMON_TEMPLATES = 16429, DIRID_COMMON_DOCUMENTS = 16430, DIRID_USER = 0x8000, DIRID_ABSOLUTE_16BIT = 0xffff} enum : DWORD { DMI_MASK = 0x00000001, DMI_BKCOLOR = 0x00000002, DMI_USERECT = 0x00000004} enum : DWORD { DNF_DUPDESC = 0x00000001, DNF_OLDDRIVER = 0x00000002, DNF_EXCLUDEFROMLIST = 0x00000004, DNF_NODRIVER = 0x00000008, DNF_LEGACYINF = 0x00000010, DNF_CLASS_DRIVER = 0x00000020, DNF_COMPATIBLE_DRIVER = 0x00000040, DNF_INET_DRIVER = 0x00000080, DNF_UNUSED1 = 0x00000100, DNF_INDEXED_DRIVER = 0x00000200, DNF_OLD_INET_DRIVER = 0x00000400, DNF_BAD_DRIVER = 0x00000800, DNF_DUPPROVIDER = 0x00001000} enum : UINT { DPROMPT_SUCCESS, DPROMPT_CANCEL, DPROMPT_SKIPFILE, DPROMPT_BUFFERTOOSMALL, DPROMPT_OUTOFMEMORY // = 4} enum : DWORD { DRIVER_HARDWAREID_RANK = 0x00000FFF, DRIVER_COMPATID_RANK = 0x00003FFF, DRIVER_UNTRUSTED_RANK = 0x00008000, DRIVER_UNTRUSTED_HARDWAREID_RANK = 0x00008FFF, DRIVER_UNTRUSTED_COMPATID_RANK = 0x0000BFFF, DRIVER_W9X_SUSPECT_RANK = 0x0000C000, DRIVER_W9X_SUSPECT_HARDWAREID_RANK = 0x0000CFFF, DRIVER_W9X_SUSPECT_COMPATID_RANK = 0x0000FFFF} enum : DWORD { DYNAWIZ_FLAG_PAGESADDED = 0x00000001, DYNAWIZ_FLAG_INSTALLDET_NEXT = 0x00000002, DYNAWIZ_FLAG_INSTALLDET_PREV = 0x00000004, DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = 0x00000008} enum : WORD { ENABLECLASS_QUERY, ENABLECLASS_SUCCESS, ENABLECLASS_FAILURE // = 2} enum : DWORD { ERROR_EXPECTED_SECTION_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0, ERROR_BAD_SECTION_NAME_LINE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 1, ERROR_SECTION_NAME_TOO_LONG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 2, ERROR_GENERAL_SYNTAX = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 3, ERROR_WRONG_INF_STYLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x100, ERROR_NOT_INSTALLED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x1000, ERROR_SECTION_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x101, ERROR_LINE_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x102, ERROR_NO_BACKUP = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x103, ERROR_NO_ASSOCIATED_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x200, ERROR_CLASS_MISMATCH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x201, ERROR_DUPLICATE_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x202, ERROR_NO_DRIVER_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x203, ERROR_KEY_DOES_NOT_EXIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x204, ERROR_INVALID_DEVINST_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x205, ERROR_INVALID_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x206, ERROR_DEVINST_ALREADY_EXISTS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x207, ERROR_DEVINFO_NOT_REGISTERED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x208, ERROR_INVALID_REG_PROPERTY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x209, ERROR_NO_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20A, ERROR_NO_SUCH_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20B, ERROR_CANT_LOAD_CLASS_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20C, ERROR_INVALID_CLASS_INSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20D, ERROR_DI_DO_DEFAULT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20E, ERROR_DI_NOFILECOPY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20F, ERROR_INVALID_HWPROFILE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x210, ERROR_NO_DEVICE_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x211, ERROR_DEVINFO_LIST_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x212, ERROR_DEVINFO_DATA_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x213, ERROR_DI_BAD_PATH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x214, ERROR_NO_CLASSINSTALL_PARAMS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x215, ERROR_FILEQUEUE_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x216, ERROR_BAD_SERVICE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x217, ERROR_NO_CLASS_DRIVER_LIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x218, ERROR_NO_ASSOCIATED_SERVICE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x219, ERROR_NO_DEFAULT_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21A, ERROR_DEVICE_INTERFACE_ACTIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21B, ERROR_DEVICE_INTERFACE_REMOVED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21C, ERROR_BAD_INTERFACE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21D, ERROR_NO_SUCH_INTERFACE_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21E, ERROR_INVALID_REFERENCE_STRING = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21F, ERROR_INVALID_MACHINENAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x220, ERROR_REMOTE_COMM_FAILURE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x221, ERROR_MACHINE_UNAVAILABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x222, ERROR_NO_CONFIGMGR_SERVICES = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x223, ERROR_INVALID_PROPPAGE_PROVIDER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x224, ERROR_NO_SUCH_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x225, ERROR_DI_POSTPROCESSING_REQUIRED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x226, ERROR_INVALID_COINSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x227, ERROR_NO_COMPAT_DRIVERS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x228, ERROR_NO_DEVICE_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x229, ERROR_INVALID_INF_LOGCONFIG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22A, ERROR_DI_DONT_INSTALL = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22B, ERROR_INVALID_FILTER_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22C, ERROR_NON_WINDOWS_NT_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22D, ERROR_NON_WINDOWS_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22E, ERROR_NO_CATALOG_FOR_OEM_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22F, ERROR_DEVINSTALL_QUEUE_NONNATIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x230, ERROR_NOT_DISABLEABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x231, ERROR_CANT_REMOVE_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x232} deprecated enum : DWORD { ERROR_NO_DEFAULT_INTERFACE_DEVICE = ERROR_NO_DEFAULT_DEVICE_INTERFACE, ERROR_INTERFACE_DEVICE_ACTIVE = ERROR_DEVICE_INTERFACE_ACTIVE, ERROR_INTERFACE_DEVICE_REMOVED = ERROR_DEVICE_INTERFACE_REMOVED, ERROR_NO_SUCH_INTERFACE_DEVICE = ERROR_NO_SUCH_DEVICE_INTERFACE,} enum : UINT { FILEOP_COPY, FILEOP_RENAME, FILEOP_DELETE, FILEOP_BACKUP, FILEOP_NEWPATH, // = 4 FILEOP_ABORT = 0, FILEOP_DOIT, FILEOP_SKIP, // = 2 FILEOP_RETRY = FILEOP_DOIT} enum : UINT { FILE_COMPRESSION_NONE, FILE_COMPRESSION_WINLZA, FILE_COMPRESSION_MSZIP, FILE_COMPRESSION_NTCAB // = 3} enum : DWORD { FLG_ADDREG_TYPE_SZ = 0x00000000, FLG_ADDREG_BINVALUETYPE = 0x00000001, FLG_ADDREG_NOCLOBBER = 0x00000002, FLG_ADDREG_DELVAL = 0x00000004, FLG_ADDREG_APPEND = 0x00000008, FLG_ADDREG_KEYONLY = 0x00000010, FLG_ADDREG_OVERWRITEONLY = 0x00000020, FLG_ADDREG_TYPE_MULTI_SZ = 0x00010000, FLG_ADDREG_TYPE_EXPAND_SZ = 0x00020000, FLG_ADDREG_TYPE_BINARY = 0x00000000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_DWORD = 0x00010000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_NONE = 0x00020000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_MASK = 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE} static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_ADDREG_64BITKEY = 0x00001000, FLG_ADDREG_KEYONLY_COMMON = 0x00002000, FLG_ADDREG_32BITKEY = 0x00004000, FLG_ADDREG_DELREG_BIT = 0x00008000 }} enum : DWORD { FLG_DELREG_VALUE = 0x00000000} static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_DELREG_TYPE_MASK = FLG_ADDREG_TYPE_MASK, FLG_DELREG_TYPE_SZ = FLG_ADDREG_TYPE_SZ, FLG_DELREG_TYPE_MULTI_SZ = FLG_ADDREG_TYPE_MULTI_SZ, FLG_DELREG_TYPE_EXPAND_SZ = FLG_ADDREG_TYPE_EXPAND_SZ, FLG_DELREG_TYPE_BINARY = FLG_ADDREG_TYPE_BINARY, FLG_DELREG_TYPE_DWORD = FLG_ADDREG_TYPE_DWORD, FLG_DELREG_TYPE_NONE = FLG_ADDREG_TYPE_NONE, FLG_DELREG_64BITKEY = FLG_ADDREG_64BITKEY, FLG_DELREG_KEYONLY_COMMON = FLG_ADDREG_KEYONLY_COMMON, FLG_DELREG_32BITKEY = FLG_ADDREG_32BITKEY, FLG_DELREG_OPERATION_MASK = 0x000000FE, FLG_DELREG_MULTI_SZ_DELSTRING = 0x00000002 | FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT }} enum : DWORD { FLG_BITREG_CLEARBITS = 0x00000000, FLG_BITREG_SETBITS = 0x00000001} static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_BITREG_64BITKEY = 0x00001000, FLG_BITREG_32BITKEY = 0x00004000 }} enum : DWORD { FLG_PROFITEM_CURRENTUSER = 0x00000001, FLG_PROFITEM_DELETE = 0x00000002, FLG_PROFITEM_GROUP = 0x00000004, FLG_PROFITEM_CSIDL = 0x00000008} enum : DWORD { FLG_REGSVR_DLLREGISTER = 0x00000001, FLG_REGSVR_DLLINSTALL = 0x00000002Lines 1–500 of 1984. Load more
/** * Windows API header module * * Translated from MinGW Windows headers * * Authors: Vladimir Vlasov * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_setupapi.d) */ module core.sys.windows.setupapi; version (Windows): version (ANSI) {} else version = Unicode; pragma(lib, "setupapi"); import core.sys.windows.basetyps, core.sys.windows.commctrl, core.sys.windows.prsht, core.sys.windows.w32api, core.sys.windows.winreg, core.sys.windows.windef; import core.sys.windows.winbase; // for SYSTEMTIME /*static if (_WIN32_WINNT < _WIN32_WINDOWS) { enum UINT _SETUPAPI_VER = _WIN32_WINNT; // SetupAPI version follows Windows NT version } else static if (_WIN32_WINDOWS) { static if (_WIN32_WINDOWS >= 0x0490) { enum UINT _SETUPAPI_VER = 0x0500; // WinME uses same version of SetupAPI as Win2k } else static if (_WIN32_WINDOWS >= 0x0410) { enum UINT _SETUPAPI_VER = 0x0410; // Indicates version of SetupAPI shipped with Win98 } else { enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version } } else { enum UINT _SETUPAPI_VER = 0x0501; } version (WindowsNTonly) { static if (_WIN32_WINNT >= 0x500) { enum UINT USE_SP_DRVINFO_DATA_V1 = 0; } else { enum UINT USE_SP_DRVINFO_DATA_V1 = 1; } } else { enum UINT USE_SP_DRVINFO_DATA_V1 = 1; }*/ /+ enum UINT _SETUPAPI_VER = 0x0400; // Earliest SetupAPI version enum UINT USE_SP_DRVINFO_DATA_V1 = 1; +/ enum UINT _SETUPAPI_VER = _WIN32_WINNT; enum bool USE_SP_DRVINFO_DATA_V1 = _WIN32_WINNT < 0x500; enum : uint { LINE_LEN = 256, MAX_INF_STRING_LENGTH = 4096, MAX_TITLE_LEN = 60, MAX_INSTRUCTION_LEN = 256, MAX_LABEL_LEN = 30, MAX_SERVICE_NAME_LEN = 256, MAX_SUBTITLE_LEN = 256, SP_MAX_MACHINENAME_LENGTH = MAX_PATH + 3 } enum : DWORD { COPYFLG_WARN_IF_SKIP = 0x00000001, COPYFLG_NOSKIP = 0x00000002, COPYFLG_NOVERSIONCHECK = 0x00000004, COPYFLG_FORCE_FILE_IN_USE = 0x00000008, COPYFLG_NO_OVERWRITE = 0x00000010, COPYFLG_NO_VERSION_DIALOG = 0x00000020, COPYFLG_OVERWRITE_OLDER_ONLY = 0x00000040, COPYFLG_REPLACEONLY = 0x00000400, COPYFLG_NODECOMP = 0x00000800, COPYFLG_REPLACE_BOOT_FILE = 0x00001000, COPYFLG_NOPRUNE = 0x00002000 } enum : DWORD { DELFLG_IN_USE = 0x00000001, DELFLG_IN_USE1 = 0x00010000 } enum : DWORD { DI_REMOVEDEVICE_GLOBAL = 0x00000001, DI_REMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, DI_UNREMOVEDEVICE_CONFIGSPECIFIC = 0x00000002, DI_SHOWOEM = 0x00000001, DI_SHOWCOMPAT = 0x00000002, DI_SHOWCLASS = 0x00000004, DI_SHOWALL = 0x00000007, DI_NOVCP = 0x00000008, DI_DIDCOMPAT = 0x00000010, DI_DIDCLASS = 0x00000020, DI_AUTOASSIGNRES = 0x00000040, DI_NEEDRESTART = 0x00000080, DI_NEEDREBOOT = 0x00000100, DI_NOBROWSE = 0x00000200, DI_MULTMFGS = 0x00000400, DI_DISABLED = 0x00000800, DI_GENERALPAGE_ADDED = 0x00001000, DI_RESOURCEPAGE_ADDED = 0x00002000, DI_PROPERTIES_CHANGE = 0x00004000, DI_INF_IS_SORTED = 0x00008000, DI_ENUMSINGLEINF = 0x00010000, DI_DONOTCALLCONFIGMG = 0x00020000, DI_INSTALLDISABLED = 0x00040000, DI_COMPAT_FROM_CLASS = 0x00080000, DI_CLASSINSTALLPARAMS = 0x00100000, DI_NODI_DEFAULTACTION = 0x00200000, DI_QUIETINSTALL = 0x00800000, DI_NOFILECOPY = 0x01000000, DI_FORCECOPY = 0x02000000, DI_DRIVERPAGE_ADDED = 0x04000000, DI_USECI_SELECTSTRINGS = 0x08000000, DI_OVERRIDE_INFFLAGS = 0x10000000, DI_PROPS_NOCHANGEUSAGE = 0x20000000, DI_NOSELECTICONS = 0x40000000, DI_NOWRITE_IDS = 0x80000000, DI_FLAGSEX_USEOLDINFSEARCH = 0x00000001, DI_FLAGSEX_AUTOSELECTRANK0 = 0x00000002, DI_FLAGSEX_CI_FAILED = 0x00000004, DI_FLAGSEX_DIDINFOLIST = 0x00000010, DI_FLAGSEX_DIDCOMPATINFO = 0x00000020, DI_FLAGSEX_FILTERCLASSES = 0x00000040, DI_FLAGSEX_SETFAILEDINSTALL = 0x00000080, DI_FLAGSEX_DEVICECHANGE = 0x00000100, DI_FLAGSEX_ALWAYSWRITEIDS = 0x00000200, DI_FLAGSEX_PROPCHANGE_PENDING = 0x00000400, DI_FLAGSEX_ALLOWEXCLUDEDDRVS = 0x00000800, DI_FLAGSEX_NOUIONQUERYREMOVE = 0x00001000, DI_FLAGSEX_USECLASSFORCOMPAT = 0x00002000, DI_FLAGSEX_OLDINF_IN_CLASSLIST = 0x00004000, DI_FLAGSEX_NO_DRVREG_MODIFY = 0x00008000, DI_FLAGSEX_IN_SYSTEM_SETUP = 0x00010000, DI_FLAGSEX_INET_DRIVER = 0x00020000, DI_FLAGSEX_APPENDDRIVERLIST = 0x00040000, DI_FLAGSEX_PREINSTALLBACKUP = 0x00080000, DI_FLAGSEX_BACKUPONREPLACE = 0x00100000, DI_FLAGSEX_DRIVERLIST_FROM_URL = 0x00200000, DI_FLAGSEX_RESERVED1 = 0x00400000, DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS = 0x00800000, DI_FLAGSEX_POWERPAGE_ADDED = 0x01000000 } enum : DWORD { DIBCI_NOINSTALLCLASS = 0x00000001, DIBCI_NODISPLAYCLASS = 0x00000002 } enum : DWORD { DICD_GENERATE_ID = 0x00000001, DICD_INHERIT_CLASSDRVS = 0x00000002 } enum : DWORD { DICS_ENABLE = 1, DICS_DISABLE, DICS_PROPCHANGE, DICS_START, DICS_STOP // = 5 } enum : DWORD { DICS_FLAG_GLOBAL = 1, DICS_FLAG_CONFIGSPECIFIC = 2, DICS_FLAG_CONFIGGENERAL = 4 } alias DI_FUNCTION = UINT; enum : DI_FUNCTION { DIF_SELECTDEVICE = 1, DIF_INSTALLDEVICE, DIF_ASSIGNRESOURCES, DIF_PROPERTIES, DIF_REMOVE, DIF_FIRSTTIMESETUP, DIF_FOUNDDEVICE, DIF_SELECTCLASSDRIVERS, DIF_VALIDATECLASSDRIVERS, DIF_INSTALLCLASSDRIVERS, DIF_CALCDISKSPACE, DIF_DESTROYPRIVATEDATA, DIF_VALIDATEDRIVER, DIF_MOVEDEVICE, DIF_DETECT, DIF_INSTALLWIZARD, DIF_DESTROYWIZARDDATA, DIF_PROPERTYCHANGE, DIF_ENABLECLASS, DIF_DETECTVERIFY, DIF_INSTALLDEVICEFILES, DIF_UNREMOVE, DIF_SELECTBESTCOMPATDRV, DIF_ALLOW_INSTALL, DIF_REGISTERDEVICE, DIF_NEWDEVICEWIZARD_PRESELECT, DIF_NEWDEVICEWIZARD_SELECT, DIF_NEWDEVICEWIZARD_PREANALYZE, DIF_NEWDEVICEWIZARD_POSTANALYZE, DIF_NEWDEVICEWIZARD_FINISHINSTALL, DIF_UNUSED1, DIF_INSTALLINTERFACES, DIF_DETECTCANCEL, DIF_REGISTER_COINSTALLERS, DIF_ADDPROPERTYPAGE_ADVANCED, DIF_ADDPROPERTYPAGE_BASIC, DIF_RESERVED1, DIF_TROUBLESHOOTER, DIF_POWERMESSAGEWAKE // = 39 } enum : DWORD { DIGCF_DEFAULT = 0x00000001, DIGCF_PRESENT = 0x00000002, DIGCF_ALLCLASSES = 0x00000004, DIGCF_PROFILE = 0x00000008, DIGCF_DEVICEINTERFACE = 0x00000010 } deprecated enum : DWORD { DIGCF_INTERFACEDEVICE = DIGCF_DEVICEINTERFACE } enum : DWORD { DIGCDP_FLAG_BASIC = 0x00000001, DIGCDP_FLAG_ADVANCED = 0x00000002 } enum : DWORD { DIOCR_INSTALLER = 0x00000001, DIOCR_INTERFACE = 0x00000002 } enum : DWORD { DIODI_NO_ADD = 0x00000001 } enum : DWORD { DIOD_INHERIT_CLASSDRVS = 0x00000002, DIOD_CANCEL_REMOVE = 0x00000004 } enum : DWORD { DIREG_DEV = 0x00000001, DIREG_DRV = 0x00000002, DIREG_BOTH = 0x00000004 } enum : int { DIRID_ABSOLUTE = -1, DIRID_NULL = 0, DIRID_SRCPATH = 1, DIRID_WINDOWS = 10, DIRID_SYSTEM = 11, DIRID_DRIVERS = 12, DIRID_IOSUBSYS = DIRID_DRIVERS, DIRID_INF = 17, DIRID_HELP = 18, DIRID_FONTS = 20, DIRID_VIEWERS = 21, DIRID_COLOR = 23, DIRID_APPS = 24, DIRID_SHARED = 25, DIRID_BOOT = 30, DIRID_SYSTEM16 = 50, DIRID_SPOOL = 51, DIRID_SPOOLDRIVERS = 52, DIRID_USERPROFILE = 53, DIRID_LOADER = 54, DIRID_PRINTPROCESSOR = 55, DIRID_DEFAULT = DIRID_SYSTEM } enum : int { DIRID_COMMON_STARTMENU = 16406, DIRID_COMMON_PROGRAMS = 16407, DIRID_COMMON_STARTUP = 16408, DIRID_COMMON_DESKTOPDIRECTORY = 16409, DIRID_COMMON_FAVORITES = 16415, DIRID_COMMON_APPDATA = 16419, DIRID_PROGRAM_FILES = 16422, DIRID_SYSTEM_X86 = 16425, DIRID_PROGRAM_FILES_X86 = 16426, DIRID_PROGRAM_FILES_COMMON = 16427, DIRID_PROGRAM_FILES_COMMONX86 = 16428, DIRID_COMMON_TEMPLATES = 16429, DIRID_COMMON_DOCUMENTS = 16430, DIRID_USER = 0x8000, DIRID_ABSOLUTE_16BIT = 0xffff } enum : DWORD { DMI_MASK = 0x00000001, DMI_BKCOLOR = 0x00000002, DMI_USERECT = 0x00000004 } enum : DWORD { DNF_DUPDESC = 0x00000001, DNF_OLDDRIVER = 0x00000002, DNF_EXCLUDEFROMLIST = 0x00000004, DNF_NODRIVER = 0x00000008, DNF_LEGACYINF = 0x00000010, DNF_CLASS_DRIVER = 0x00000020, DNF_COMPATIBLE_DRIVER = 0x00000040, DNF_INET_DRIVER = 0x00000080, DNF_UNUSED1 = 0x00000100, DNF_INDEXED_DRIVER = 0x00000200, DNF_OLD_INET_DRIVER = 0x00000400, DNF_BAD_DRIVER = 0x00000800, DNF_DUPPROVIDER = 0x00001000 } enum : UINT { DPROMPT_SUCCESS, DPROMPT_CANCEL, DPROMPT_SKIPFILE, DPROMPT_BUFFERTOOSMALL, DPROMPT_OUTOFMEMORY // = 4 } enum : DWORD { DRIVER_HARDWAREID_RANK = 0x00000FFF, DRIVER_COMPATID_RANK = 0x00003FFF, DRIVER_UNTRUSTED_RANK = 0x00008000, DRIVER_UNTRUSTED_HARDWAREID_RANK = 0x00008FFF, DRIVER_UNTRUSTED_COMPATID_RANK = 0x0000BFFF, DRIVER_W9X_SUSPECT_RANK = 0x0000C000, DRIVER_W9X_SUSPECT_HARDWAREID_RANK = 0x0000CFFF, DRIVER_W9X_SUSPECT_COMPATID_RANK = 0x0000FFFF } enum : DWORD { DYNAWIZ_FLAG_PAGESADDED = 0x00000001, DYNAWIZ_FLAG_INSTALLDET_NEXT = 0x00000002, DYNAWIZ_FLAG_INSTALLDET_PREV = 0x00000004, DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT = 0x00000008 } enum : WORD { ENABLECLASS_QUERY, ENABLECLASS_SUCCESS, ENABLECLASS_FAILURE // = 2 } enum : DWORD { ERROR_EXPECTED_SECTION_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0, ERROR_BAD_SECTION_NAME_LINE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 1, ERROR_SECTION_NAME_TOO_LONG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 2, ERROR_GENERAL_SYNTAX = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 3, ERROR_WRONG_INF_STYLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x100, ERROR_NOT_INSTALLED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x1000, ERROR_SECTION_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x101, ERROR_LINE_NOT_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x102, ERROR_NO_BACKUP = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x103, ERROR_NO_ASSOCIATED_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x200, ERROR_CLASS_MISMATCH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x201, ERROR_DUPLICATE_FOUND = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x202, ERROR_NO_DRIVER_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x203, ERROR_KEY_DOES_NOT_EXIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x204, ERROR_INVALID_DEVINST_NAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x205, ERROR_INVALID_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x206, ERROR_DEVINST_ALREADY_EXISTS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x207, ERROR_DEVINFO_NOT_REGISTERED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x208, ERROR_INVALID_REG_PROPERTY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x209, ERROR_NO_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20A, ERROR_NO_SUCH_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20B, ERROR_CANT_LOAD_CLASS_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20C, ERROR_INVALID_CLASS_INSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20D, ERROR_DI_DO_DEFAULT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20E, ERROR_DI_NOFILECOPY = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x20F, ERROR_INVALID_HWPROFILE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x210, ERROR_NO_DEVICE_SELECTED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x211, ERROR_DEVINFO_LIST_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x212, ERROR_DEVINFO_DATA_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x213, ERROR_DI_BAD_PATH = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x214, ERROR_NO_CLASSINSTALL_PARAMS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x215, ERROR_FILEQUEUE_LOCKED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x216, ERROR_BAD_SERVICE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x217, ERROR_NO_CLASS_DRIVER_LIST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x218, ERROR_NO_ASSOCIATED_SERVICE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x219, ERROR_NO_DEFAULT_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21A, ERROR_DEVICE_INTERFACE_ACTIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21B, ERROR_DEVICE_INTERFACE_REMOVED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21C, ERROR_BAD_INTERFACE_INSTALLSECT = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21D, ERROR_NO_SUCH_INTERFACE_CLASS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21E, ERROR_INVALID_REFERENCE_STRING = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x21F, ERROR_INVALID_MACHINENAME = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x220, ERROR_REMOTE_COMM_FAILURE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x221, ERROR_MACHINE_UNAVAILABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x222, ERROR_NO_CONFIGMGR_SERVICES = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x223, ERROR_INVALID_PROPPAGE_PROVIDER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x224, ERROR_NO_SUCH_DEVICE_INTERFACE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x225, ERROR_DI_POSTPROCESSING_REQUIRED = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x226, ERROR_INVALID_COINSTALLER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x227, ERROR_NO_COMPAT_DRIVERS = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x228, ERROR_NO_DEVICE_ICON = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x229, ERROR_INVALID_INF_LOGCONFIG = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22A, ERROR_DI_DONT_INSTALL = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22B, ERROR_INVALID_FILTER_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22C, ERROR_NON_WINDOWS_NT_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22D, ERROR_NON_WINDOWS_DRIVER = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22E, ERROR_NO_CATALOG_FOR_OEM_INF = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x22F, ERROR_DEVINSTALL_QUEUE_NONNATIVE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x230, ERROR_NOT_DISABLEABLE = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x231, ERROR_CANT_REMOVE_DEVINST = APPLICATION_ERROR_MASK | ERROR_SEVERITY_ERROR | 0x232 } deprecated enum : DWORD { ERROR_NO_DEFAULT_INTERFACE_DEVICE = ERROR_NO_DEFAULT_DEVICE_INTERFACE, ERROR_INTERFACE_DEVICE_ACTIVE = ERROR_DEVICE_INTERFACE_ACTIVE, ERROR_INTERFACE_DEVICE_REMOVED = ERROR_DEVICE_INTERFACE_REMOVED, ERROR_NO_SUCH_INTERFACE_DEVICE = ERROR_NO_SUCH_DEVICE_INTERFACE, } enum : UINT { FILEOP_COPY, FILEOP_RENAME, FILEOP_DELETE, FILEOP_BACKUP, FILEOP_NEWPATH, // = 4 FILEOP_ABORT = 0, FILEOP_DOIT, FILEOP_SKIP, // = 2 FILEOP_RETRY = FILEOP_DOIT } enum : UINT { FILE_COMPRESSION_NONE, FILE_COMPRESSION_WINLZA, FILE_COMPRESSION_MSZIP, FILE_COMPRESSION_NTCAB // = 3 } enum : DWORD { FLG_ADDREG_TYPE_SZ = 0x00000000, FLG_ADDREG_BINVALUETYPE = 0x00000001, FLG_ADDREG_NOCLOBBER = 0x00000002, FLG_ADDREG_DELVAL = 0x00000004, FLG_ADDREG_APPEND = 0x00000008, FLG_ADDREG_KEYONLY = 0x00000010, FLG_ADDREG_OVERWRITEONLY = 0x00000020, FLG_ADDREG_TYPE_MULTI_SZ = 0x00010000, FLG_ADDREG_TYPE_EXPAND_SZ = 0x00020000, FLG_ADDREG_TYPE_BINARY = 0x00000000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_DWORD = 0x00010000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_NONE = 0x00020000 | FLG_ADDREG_BINVALUETYPE, FLG_ADDREG_TYPE_MASK = 0xFFFF0000 | FLG_ADDREG_BINVALUETYPE } static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_ADDREG_64BITKEY = 0x00001000, FLG_ADDREG_KEYONLY_COMMON = 0x00002000, FLG_ADDREG_32BITKEY = 0x00004000, FLG_ADDREG_DELREG_BIT = 0x00008000 } } enum : DWORD { FLG_DELREG_VALUE = 0x00000000 } static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_DELREG_TYPE_MASK = FLG_ADDREG_TYPE_MASK, FLG_DELREG_TYPE_SZ = FLG_ADDREG_TYPE_SZ, FLG_DELREG_TYPE_MULTI_SZ = FLG_ADDREG_TYPE_MULTI_SZ, FLG_DELREG_TYPE_EXPAND_SZ = FLG_ADDREG_TYPE_EXPAND_SZ, FLG_DELREG_TYPE_BINARY = FLG_ADDREG_TYPE_BINARY, FLG_DELREG_TYPE_DWORD = FLG_ADDREG_TYPE_DWORD, FLG_DELREG_TYPE_NONE = FLG_ADDREG_TYPE_NONE, FLG_DELREG_64BITKEY = FLG_ADDREG_64BITKEY, FLG_DELREG_KEYONLY_COMMON = FLG_ADDREG_KEYONLY_COMMON, FLG_DELREG_32BITKEY = FLG_ADDREG_32BITKEY, FLG_DELREG_OPERATION_MASK = 0x000000FE, FLG_DELREG_MULTI_SZ_DELSTRING = 0x00000002 | FLG_DELREG_TYPE_MULTI_SZ | FLG_ADDREG_DELREG_BIT } } enum : DWORD { FLG_BITREG_CLEARBITS = 0x00000000, FLG_BITREG_SETBITS = 0x00000001 } static if (_SETUPAPI_VER >= 0x0501) { enum : DWORD { FLG_BITREG_64BITKEY = 0x00001000, FLG_BITREG_32BITKEY = 0x00004000 } } enum : DWORD { FLG_PROFITEM_CURRENTUSER = 0x00000001, FLG_PROFITEM_DELETE = 0x00000002, FLG_PROFITEM_GROUP = 0x00000004, FLG_PROFITEM_CSIDL = 0x00000008 } enum : DWORD { FLG_REGSVR_DLLREGISTER = 0x00000001, FLG_REGSVR_DLLINSTALL = 0x00000002