SetupInstallServicesFromInfSectionExW function (setupapi.h)

[This function is available for use in the operating systems indicated in the Requirements section. It may be altered or unavailable in subsequent versions. SetupAPI should no longer be used for installing applications. Instead, use the Windows Installer for developing application installers. SetupAPI continues to be used for installing device drivers.]

The SetupInstallServicesFromInfSectionEx function performs service installation and deletion operations that are specified in the Service Install sections listed in the Service section of an INF file.

A caller of this function is required to have access to the Service Control Manager, and privileges to modify services.

Syntax

WINSETUPAPI BOOL SetupInstallServicesFromInfSectionExW(
  [in] HINF             InfHandle,
  [in] PCWSTR           SectionName,
  [in] DWORD            Flags,
  [in] HDEVINFO         DeviceInfoSet,
  [in] PSP_DEVINFO_DATA DeviceInfoData,
       PVOID            Reserved1,
       PVOID            Reserved2
);

Parameters

[in] InfHandle

A handle to the INF file that contains the Service section.

[in] SectionName

The name of the Service section to process. You should use a null-terminated string.

[in] Flags

The controls for the installation.

Flag Meaning
SPSVCINST_TAGTOFRONT
0x001
Move the service tag to the front of its group order list.
SPSVCINST_ASSOCSERVICE
0x002
AddService section: Mark this service as the function driver for the device being installed.
SPSVCINST_DELETEEVENTLOGENTRY
0x004
Delete the event log entry for a specified service.
SPSVCINST_NOCLOBBER_DISPLAYNAME
0x008
Do not overwrite the display name if one already exists.
SPSVCINST_NOCLOBBER_STARTTYPE
0x010
Do not overwrite the start type value if the service already exists.
SPSVCINST_NOCLOBBER_ERRORCONTROL
0x020
Do not overwrite the error control value if the service already exists.
SPSVCINST_NOCLOBBER_LOADORDERGROUP
0x040
Do not overwrite the load order group if it already exists.
SPSVCINST_NOCLOBBER_DEPENDENCIES
0x080
Do not overwrite the dependencies list if it already exists.
SPSVCINST_NOCLOBBER_DESCRIPTION
0x100
AddService section: mark this service as the function driver for the device being installed.
SPSVCINST_STOPSERVICE
0x200
DelService section: Stop the associated service specified in the entry before deleting the service.
SPSVCINST_CLOBBER_SECURITY
0x400
AddService section: Security settings the service are overwritten if the service already exists in the system.
Note  Available starting with Windows Server 2003 and Windows XP.
 
SPSVCINST_STARTSERVICE
0x800
AddService section: Start the service after the service is installed. This flag cannot be used to start a service that implements a Plug and Play (PnP) function driver or filter driver for a device. Otherwise, this flag can be used to start a user-mode or kernel-mode service that is managed by the Service Control Manager (SCM.)
Note  Available starting with Windows Server 2008 and Windows Vista.
 
SPSVCINST_NOCLOBBER_REQUIREDPRIVILEGES
0x1000
AddService section: Do not overwrite the given service's required privileges if the service already exists in the system.
Note  Available starting with Windows Server 2008 R2 and Windows 7.
 

[in] DeviceInfoSet

An optional pointer to a handle to a device information set. For more information, see the DDK Programmer's Guide. (This resource may not be available in some languages

and countries.)

[in] DeviceInfoData

An optional pointer to the SP_DEVINFO_DATA structure that provides a context to a specific element in the set that DeviceInfoSet specifies. For more information, see the DDK Programmer's Guide. (This resource may not be available in some languages

and countries.)

Reserved1

Reserved.

Reserved2

Reserved.

Return value

If the function succeeds, the return value is nonzero. The function calls SetLastError with ERROR_SUCCESS_REBOOT_REQUIRED if a reboot of the system is required.

If the function fails, the return value is 0 (zero). To get extended error information, call GetLastError.

Remarks

Note

The setupapi.h header defines SetupInstallServicesFromInfSectionEx as an alias that 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 is 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 Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header setupapi.h
Library Setupapi.lib
DLL Setupapi.dll

See also

Functions

Overview

SetupInstallFilesFromInfSection

SetupInstallFromInfSection

SetupInstallServicesFromInfSection