QUERY_SERVICE_CONFIGW结构(winsvc.h)
包含已安装服务的配置信息。 QueryServiceConfig 函数使用它。
语法
typedef struct _QUERY_SERVICE_CONFIGW {
DWORD dwServiceType;
DWORD dwStartType;
DWORD dwErrorControl;
LPWSTR lpBinaryPathName;
LPWSTR lpLoadOrderGroup;
DWORD dwTagId;
LPWSTR lpDependencies;
LPWSTR lpServiceStartName;
LPWSTR lpDisplayName;
} QUERY_SERVICE_CONFIGW, *LPQUERY_SERVICE_CONFIGW;
成员
dwServiceType
服务的类型。 此成员可以是以下值之一。
如果值 SERVICE_WIN32_OWN_PROCESS 或 SERVICE_WIN32_SHARE_PROCESS,并且服务在 LocalSystem 帐户的上下文中运行,则还可以指定以下类型。
价值 | 意义 |
---|---|
|
该服务可以与桌面交互。
有关详细信息,请参阅 Interactive Services。 |
dwStartType
何时启动服务。 此成员可以是以下值之一。
价值 | 意义 |
---|---|
|
服务在系统启动期间由服务控制管理器自动启动。 |
|
系统加载程序启动的设备驱动程序。 此值仅适用于驱动程序服务。 |
|
当进程调用 StartService 函数时,服务控制管理器启动的服务。 |
|
无法启动的服务。 尝试启动服务会导致错误代码 ERROR_SERVICE_DISABLED。 |
|
IoInitSystem 函数启动的设备驱动程序。 此值仅适用于驱动程序服务。 |
dwErrorControl
如果此服务无法启动,则错误和采取的操作的严重性。 此成员可以是以下值之一。
lpBinaryPathName
服务二进制文件的完全限定路径。
该路径还可以包含自动启动服务的参数。 这些参数将传递到服务入口点(通常是 主 函数)。
lpLoadOrderGroup
此服务所属的加载排序组的名称。 如果成员为 NULL 或空字符串,则服务不属于加载排序组。
启动程序使用加载排序组按指定顺序加载服务组,以相对于其他组的顺序。 加载排序组的列表包含在以下注册表值中:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ServiceGroupOrder
dwTagId
lpLoadOrderGroup 参数指定的组中此服务的唯一标记值。 值为零表示服务尚未分配标记。 可以通过在注册表中指定标记顺序向量,在加载订单组中使用标记对服务启动进行排序:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GroupOrderList
标记仅针对具有 SERVICE_BOOT_START 或 SERVICE_SYSTEM_START 启动类型的 SERVICE_KERNEL_DRIVER 和 SERVICE_FILE_SYSTEM_DRIVER 类型服务进行评估。
lpDependencies
指向服务空分隔名称数组或加载必须在此服务之前启动的排序组的指针。 数组以 null 结尾加倍。 如果指针 NULL 或者它指向空字符串,则服务没有依赖项。 如果指定了组名称,则必须以 SC_GROUP_IDENTIFIER(在 WinSvc.h 中定义)字符作为前缀,以便将其与服务名称区分开来,因为服务和服务组共享相同的名称空间。 对服务的依赖意味着,仅当服务依赖的服务正在运行时,此服务才能运行。 对组的依赖意味着,如果尝试启动组的所有成员后,至少一个组成员正在运行,则此服务可以运行。
lpServiceStartName
如果服务类型 SERVICE_WIN32_OWN_PROCESS 或 SERVICE_WIN32_SHARE_PROCESS,则此成员是服务进程在运行时将登录的帐户的名称。 此名称可以是域
如果服务类型 SERVICE_KERNEL_DRIVER 或 SERVICE_FILE_SYSTEM_DRIVER,则此成员是用于加载设备驱动程序的驱动程序对象名称(即 \FileSystem\Rdr 或 \Driver\Xns)。 如果此成员为 NULL,则根据服务名称,使用 I/O 系统创建的默认对象名称运行驱动程序。
lpDisplayName
服务控制程序用于标识服务的显示名称。 此字符串的最大长度为 256 个字符。 名称在服务控制管理器中保留大小写。 显示名称比较始终不区分大小写。
此参数可以使用以下格式指定本地化字符串:
@[Path]DLLName,-StrID
从 dllName加载标识符 StrID 的字符串;路径 是可选的。 有关详细信息,请参阅 RegLoadMUIString。
Windows Server 2003 和 Windows XP:在 Windows Vista 之前不支持本地化字符串 。
言论
最初,通过调用 CreateService 函数创建服务时,会指定服务的配置信息。 可以通过调用 ChangeServiceConfig 函数来修改信息。
例子
有关示例,请参阅 查询服务的配置。
注意
winsvc.h 标头将QUERY_SERVICE_CONFIG定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winsvc.h (包括 Windows.h) |