SetupInstallServicesFromInfSectionExA 函数 (setupapi.h)

[此函数可用于“要求”部分所示的操作系统。 它可能在后续版本中变更或不可用。 不应再使用 SetupAPI 来安装应用程序。 请改用 Windows Installer 开发应用程序安装程序。 SetupAPI 继续用于安装设备驱动程序。]

SetupInstallServicesFromInfSectionEx 函数执行 INF 文件的“服务安装”部分中列出的服务安装和删除操作。

此函数的调用方必须有权访问 服务控制管理器,并有权修改服务。

语法

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

参数

[in] InfHandle

包含 Service 节的 INF 文件的句柄。

[in] SectionName

要处理的 Service 节的名称。 应使用以 null 结尾的字符串。

[in] Flags

安装控件。

标志 含义
SPSVCINST_TAGTOFRONT
0x001
将服务标记移动到其分组顺序列表的前面。
SPSVCINST_ASSOCSERVICE
为 0x002
AddService 部分:将此服务标记为要安装的设备的函数驱动程序。
SPSVCINST_DELETEEVENTLOGENTRY
0x004
删除指定服务的事件日志条目。
SPSVCINST_NOCLOBBER_DISPLAYNAME
0x008
如果已存在显示名称,请不要覆盖该显示名称。
SPSVCINST_NOCLOBBER_STARTTYPE
0x010
如果服务已存在,请不要覆盖开始类型值。
SPSVCINST_NOCLOBBER_ERRORCONTROL
0x020
如果服务已存在,请不要覆盖错误控制值。
SPSVCINST_NOCLOBBER_LOADORDERGROUP
0x040
如果加载顺序组已存在,请不要覆盖该组。
SPSVCINST_NOCLOBBER_DEPENDENCIES
0x080
如果依赖项列表已存在,请不要覆盖它。
SPSVCINST_NOCLOBBER_DESCRIPTION
0x100
AddService 部分:将此服务标记为所安装设备的函数驱动程序。
SPSVCINST_STOPSERVICE
0x200
DelService 节:在删除服务之前停止条目中指定的关联服务。
SPSVCINST_CLOBBER_SECURITY
0x400
AddService 部分:如果服务已存在于系统中,则覆盖服务的安全设置。
注意 从 Windows Server 2003 和 Windows XP 开始可用。
 
SPSVCINST_STARTSERVICE
0x800
AddService 部分:安装服务后启动服务。 此标志不能用于为设备启动实现即插即用 (PnP) 函数驱动程序或筛选器驱动程序的服务。 否则,此标志可用于启动由服务控制管理器 (SCM.)
注意 从 Windows Server 2008 和 Windows Vista 开始可用。
 
SPSVCINST_NOCLOBBER_REQUIREDPRIVILEGES
0x1000
AddService 部分:如果系统中已存在服务,则不要覆盖给定服务所需的权限。
注意 从 Windows Server 2008 R2 和 Windows 7 开始可用。
 

[in] DeviceInfoSet

指向设备信息集句柄的可选指针。 有关详细信息,请参阅 DDK 程序员指南。 (此资源可能在某些语言中不可用

和 countries.)

[in] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的可选指针,该结构为 DeviceInfoSet 指定的集中的特定元素提供上下文。 有关详细信息,请参阅 DDK 程序员指南。 (此资源可能在某些语言中不可用

和 countries.)

Reserved1

保留。

Reserved2

保留。

返回值

如果该函数成功,则返回值为非零值。 如果需要重新启动系统,该函数使用 ERROR_SUCCESS_REBOOT_REQUIRED 调用 SetLastError

如果函数失败,则返回值为 0(零)。 要获得更多的错误信息,请调用 GetLastError。

注解

注意

setupapi.h 标头将 SetupInstallServicesFromInfSectionEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 setupapi.h
Library Setupapi.lib
DLL Setupapi.dll

请参阅

函数

概述

SetupInstallFilesFromInfSection

SetupInstallFromInfSection

SetupInstallServicesFromInfSection