QueryServiceConfig2A 函数 (winsvc.h)

检索指定服务的可选配置参数。

语法

BOOL QueryServiceConfig2A(
  [in]            SC_HANDLE hService,
  [in]            DWORD     dwInfoLevel,
  [out, optional] LPBYTE    lpBuffer,
  [in]            DWORD     cbBufSize,
  [out]           LPDWORD   pcbBytesNeeded
);

参数

[in] hService

服务的句柄。 此句柄由 OpenServiceCreateService 函数返回,并且必须具有 SERVICE_QUERY_CONFIG 访问权限。 有关详细信息,请参阅 服务安全和访问权限

[in] dwInfoLevel

要查询的配置信息。 此参数可以是下列值之一。

价值 意义
SERVICE_CONFIG_DELAYED_AUTO_START_INFO
3
lpInfo 参数是指向 SERVICE_DELAYED_AUTO_START_INFO 结构的指针。

Windows Server 2003 和 Windows XP:不支持 此值。

SERVICE_CONFIG_DESCRIPTION
1
lpBuffer 参数是指向 SERVICE_DESCRIPTION 结构的指针。
SERVICE_CONFIG_FAILURE_ACTIONS
2
lpBuffer 参数是指向 SERVICE_FAILURE_ACTIONS 结构的指针。
SERVICE_CONFIG_FAILURE_ACTIONS_FLAG
4
lpInfo 参数是指向 SERVICE_FAILURE_ACTIONS_FLAG 结构的指针。

Windows Server 2003 和 Windows XP:不支持 此值。

SERVICE_CONFIG_PREFERRED_NODE
9
lpInfo 参数是指向 SERVICE_PREFERRED_NODE_INFO 结构的指针。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SERVICE_CONFIG_PRESHUTDOWN_INFO
7
lpInfo 参数是指向 SERVICE_PRESHUTDOWN_INFO 结构的指针。

Windows Server 2003 和 Windows XP:不支持 此值。

SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO
6
lpInfo 参数是指向 SERVICE_REQUIRED_PRIVILEGES_INFO 结构的指针。

Windows Server 2003 和 Windows XP:不支持 此值。

SERVICE_CONFIG_SERVICE_SID_INFO
5
lpInfo 参数是指向 SERVICE_SID_INFO 结构的指针。

Windows Server 2003 和 Windows XP:不支持 此值。

SERVICE_CONFIG_TRIGGER_INFO
8
lpInfo 参数是指向 SERVICE_TRIGGER_INFO 结构的指针。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP:不支持此值。

SERVICE_CONFIG_LAUNCH_PROTECTED
12
lpInfo 参数是 SERVICE_LAUNCH_PROTECTED_INFO 结构的指针。
注意 从 Windows 8.1 开始支持此值。
 

[out, optional] lpBuffer

指向接收服务配置信息的缓冲区的指针。 此数据的格式取决于 dwInfoLevel 参数的值。

此数组的最大大小为 8K 字节。 若要确定所需的大小,请为此参数指定 NULL,并为 cbBufSize 参数指定 0。 函数失败,GetLastError 返回 ERROR_INSUFFICIENT_BUFFER 参数 接收所需的大小。

[in] cbBufSize

lpBuffer 参数指向的结构的大小(以字节为单位)。

[out] pcbBytesNeeded

指向一个变量的指针,该变量接收存储配置信息所需的字节数(如果函数失败并 ERROR_INSUFFICIENT_BUFFER)。

返回值

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

服务控制管理器可以设置以下错误代码。 其他函数可由服务控制管理器调用的注册表函数设置。

返回代码 描述
ERROR_ACCESS_DENIED
句柄没有 SERVICE_QUERY_CONFIG 访问权限。
ERROR_INSUFFICIENT_BUFFER
lpBuffer 缓冲区相比,服务配置信息要多。 获取所有信息所需的字节数在 参数中返回。 没有任何内容写入 lpBuffer
ERROR_INVALID_HANDLE
指定的句柄无效。

言论

QueryServiceConfig2 函数返回存储在指定服务的服务控制管理器数据库中的可选配置信息。 可以使用 ChangeServiceConfig2 函数更改此配置信息。

可以使用 ChangeServiceConfigQueryServiceConfig 函数来更改和查询其他配置信息。

例子

有关示例,请参阅 查询服务的配置

注意

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

要求

要求 价值
最低支持的客户端 Windows XP [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 winsvc.h (包括 Windows.h)
Advapi32.lib
DLL Advapi32.dll

另请参阅

ChangeServiceConfig

ChangeServiceConfig2

CreateService

OpenService

QueryServiceConfig

QueryServiceDynamicInformation

QueryServiceObjectSecurity

SERVICE_DELAYED_AUTO_START_INFO

SERVICE_DESCRIPTION

SERVICE_FAILURE_ACTIONS

SERVICE_FAILURE_ACTIONS_FLAG

SERVICE_PRESHUTDOWN_INFO

SERVICE_REQUIRED_PRIVILEGES_INFO

SERVICE_SID_INFO

服务配置

Service Functions