typedef struct _SP_DEVINSTALL_PARAMS {
DWORD cbSize;
DWORD Flags;
DWORD FlagsEx;
HWND hwndParent;
PSP_FILE_CALLBACK InstallMsgHandler;
PVOID InstallMsgHandlerContext;
HSPFILEQ FileQueue;
DWORD ClassInstallReserved;
DWORD Reserved;
TCHAR DriverPath[MAX_PATH];
} SP_DEVINSTALL_PARAMS, *PSP_DEVINSTALL_PARAMS;
SP_DEVINSTALL_PARAMS defines device install parameters associated with a particular device information element or globally with a device information set.
Members
cbSize
Contains the size, in bytes, of the SP_DEVINSTALL_PARAMS structure.
Flags
Flags that control installation and user interface functions. Some flags can be set prior to calling the device installation functions while others are set automatically during the processing of some functions. Flags can be a combination of the following values:
DI_SHOWOEM
Set to allow support for OEM disks.
DI_NOVCP
Set to disable creation of a new copy queue. Use the caller-supplied copy queue.
DI_DIDCOMPAT
Will be set if SetupDiBuildDriverInfoList has already built a list of compatible drivers for this device. If this list has already been built, it contains all the driver information and this flag is always set.
DI_DIDCLASS
Will be set if SetupDiBuildDriverInfoList has already built a list of class drivers for this device. If this list has already been built, it contains all the driver information and this flag is always set.
DI_NEEDRESTART
Will be set by SetupDiInstallDevice if the device requires that the machine be rebooted after device installation or a device state change.
DI_NEEDREBOOT
For Windows NT, this is the same as DI_NEEDRESTART.
DI_NOBROWSE
Set to disable browsing when the user is selecting an OEM disk path.
DI_MULTMFGS
Will be set by SetupDiBuildDriverInfoList if a class driver list contains drivers provided by multiple manufacturers.
DI_GENERALPAGE_ADDED
Set by a property page provider if a general properties page has been added to the device’s property sheet.
DI_RESOURCEPAGE_ADDED
Set by a property page provider if a resource properties page has been added to the device’s property sheet.
DI_PROPERTIES_CHANGE
Set if a device’s properties have been changed and require an update of the installer’s user interface.
DI_INF_IS_SORTED
Set to indicate that the sorting order from the INF file should be used.
DI_ENUMSINGLEINF
Set if SetupDiBuildDriverInfoList should only search the specified INF file.
DI_DONOTCALLCONFIGMG
Set if the Configuration Manager should not be called to modify the registry hardware tree during the execution of certain device installation functions (for example, SetupDiInstallDevice).
DI_INSTALLDISABLED
Set if the device should be installed in a disabled state by default.
DI_COMPAT_FROM_CLASS
Set to force SetupDiBuildDriverInfoList to build a device's list of compatible drivers from its class driver list instead of the INF file.
DI_CLASSINSTALLPARAMS
Set to use the Class Install parameters.
DI_NODI_DEFAULTACTION
Set if SetupDiCallClassInstaller should not perform any default action if the class installer returns ERR_DI_DO_DEFAULT or there is not a class installer.
DI_QUIETINSTALL
Set if the device installer functions should be as silent as possible and use default choices wherever possible.
DI_NOFILECOPY
Set if SetupDiInstallDevice should skip file copying.
DI_FORCECOPY
Set if SetupDiInstallDevice should always copy files, even if they are already present on the system.
DI_DRIVERPAGE_ADDED
Set by a property page provider if a driver properties page has been added to the device’s property sheet.
DI_USECI_SELECTSTRINGS
Set if class installer-provided strings should be used during SetupDiSelectDevice.
DI_PROPS_NOCHANGEUSAGE
Set if there should be no Enable/Disable capability on the device’s general property page.
DI_NOSELECTICONS
Set if small icons should not be used in select device dialogs.
DI_NOWRITE_IDS
Set if SetupDiInstallDevice should not write the device’s hardware and compatible IDs to the registry.
FlagsEx
Flags that provide extended control over installation and user interface functions. Some flags can be set prior to calling the device installer functions while others are set automatically during the processing of some functions. Flags can be a combination of the following values:
DI_FLAGSEX_AUTOSELECTRANK0
Set if SetupDiSelectDevice should automatically select all rank 0 drivers.
DI_FLAGSEX_CI_FAILED
Is set internally if a class installer failed to load or start.
DI_FLAGSEX_DIDINFOLIST
A class driver list has been built.
DI_FLAGSEX_DIDCOMPATINFO
A compatible driver list has been built.
DI_FLAGSEX_FILTERCLASSES
If set, SetupDiBuildClassInfoList will check for class inclusion filters. This means that a device will not be included in the class list if its class is marked as NoInstallClass.
DI_FLAGSEX_SETFAILEDINSTALL
If set, the FAILEDINSTALL flag will be set when SetupDiInstallDevice installs a NULL driver.
DI_FLAGSEX_DEVICECHANGE
If set, any user interface that displays a list of devices will rebuild its list of devices after the device property sheet is closed.
DI_FLAGSEX_ALWAYSWRITEIDS
If set and the DI_NOWRITE_IDS flag is clear, always write hardware and compatible IDs to the registry.
DI_FLAGSEX_ALLOWEXCLUDEDDRVS
If set, SetupDiSelectDevice displays drivers that have the Exclude From Select state.
DI_FLAGSEX_USECLASSFORCOMPAT
Filter INF files on the device's class when building a list of compatible drivers. If a device’s class is known, setting this flag can decrease the time required to build a list of compatible drivers.
DI_FLAGSEX_OLDINF_IN_CLASSLIST
Search legacy INF files when building a class driver list. This flag is valid for Windows NT only.
DI_FLAGSEX_NO_DRVREG_MODIFY
Do not process the AddReg and DelReg items for the device’s software (driver) key.
hwndParent
Window handle that will own the user interface dialogs related to this device.
InstallMsgHandler
Callback used to handle events during file copying.
InstallMsgHandlerContext
Private data used by the InstallMsgHandler callback.
FileQueue
A handle to a caller-supplied file queue where file operations should be queued but not committed.
DriverPath
Specifies the path to this device’s INF file. This is a non-empty string only if the driver was installed from an OEM INF file.
See Also
SetupDiBuildClassInfoList, SetupDiBuildDriverInfoList, SetupDiCallClassInstaller, SetupDiGetDeviceInstallParams, SetupDiInstallDevice, SetupDiSelectDevice, SetupDiSetDeviceInstallParams