SetupDiInstallClassExA function (setupapi.h)

The SetupDiInstallClassEx function installs a class installer or an interface class.

Syntax

WINSETUPAPI BOOL SetupDiInstallClassExA(
  [in, optional] HWND       hwndParent,
  [in, optional] PCSTR      InfFileName,
  [in]           DWORD      Flags,
  [in, optional] HSPFILEQ   FileQueue,
  [in, optional] const GUID *InterfaceClassGuid,
                 PVOID      Reserved1,
                 PVOID      Reserved2
);

Parameters

[in, optional] hwndParent

The handle to the parent window for any user interface that is used to install this class. This parameter is optional and can be NULL.

[in, optional] InfFileName

A pointer to a NULL-terminated string that contains the name of an INF file. This parameter is optional and can be NULL. If this function is being used to install a class installer, the INF file contains an INF ClassInstall32 section and this parameter must not be NULL.

If this function is being used to install an interface class, the INF file contains an INF InterfaceInstall32 section.

[in] Flags

A value of type DWORD that controls the installation process. Flags can be zero or a bitwise OR of the following values:

DI_NOVCP

Set this flag if FileQueue is supplied.

DI_NOVCP instructs the SetupInstallFromInfSection function not to create a queue of its own and to use the caller-supplied queue instead.

If this flag is set, files are not copied just queued.

For more information about the SetupInstallFromInfSection function, see the Microsoft Windows SDK documentation.

DI_NOBROWSE

Set this flag to disable browsing if a copy operation cannot find a specified file. If the caller supplies a file queue, this flag is ignored.

DI_FORCECOPY

Set this flag to always copy files, even if they are already present on the user's computer. If the caller supplies a file queue, this flag is ignored.

DI_QUIETINSTALL

Set this flag to suppress the user interface unless absolutely necessary. For example, do not display the progress dialog. If the caller supplies a file queue, this flag is ignored.

[in, optional] FileQueue

If the DI_NOVCP flag is set, this parameter supplies a handle to a file queue where file operations should be queued but not committed.

[in, optional] InterfaceClassGuid

A pointer to a GUID that identifies the interface class to be installed. This parameter is optional and can be NULL. If this parameter is specified, this function is being used to install the interface class represented by the GUID. If this parameter is NULL, this function is being used to install a class installer.

Reserved1

Reserved. Must be zero.

Reserved2

Reserved. Must be zero.

Return value

SetupDiInstallClassEx returns TRUE if it is successful. Otherwise, it returns FALSE and the logged error can be retrieved with a call to GetLastError.

Remarks

The caller of this function must be a member of the Administrators group.

SetupDiInstallClassEx is typically called by a class installer to install a new device setup class or a new device interface class.

Note  An interface class can also be installed automatically by calling SetupDiInstallDeviceInterfaces to install the device interfaces for a device.
 

Note

The setupapi.h header defines SetupDiInstallClassEx as an alias which automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.

Requirements

Requirement Value
Minimum supported client Available in Microsoft Windows 2000 and later versions of Windows.
Target Platform Desktop
Header setupapi.h (include Setupapi.h)
Library Setupapi.lib

See also

SetupDiCallClassInstaller

SetupDiInstallDeviceInterfaces