服务记录列表
从已安装服务的数据库读取每个服务条目时,SCM 将为服务创建服务记录。 服务记录包括:
- 服务名称
- 启动类型(自动启动或需求启动)
- 服务状态(请参阅 SERVICE_STATUS 结构)
- 类型
当前状态
可接受的控制代码
退出代码
等待提示 - 指向依赖项列表的指针
在安装服务时指定帐户的用户名和密码。 SCM 将用户名存储在注册表中,密码存储在本地安全机构(LSA)的安全部分中。 系统管理员可以创建密码永不过期的帐户。 或者,系统管理员可以通过定期更改密码来创建密码过期和管理帐户的帐户。
SCM 保留用户帐户密码、当前密码和备份密码的两个副本。 首次安装服务时指定的密码存储为当前密码,并且备份密码未初始化。 当 SCM 尝试在用户帐户的安全上下文中运行服务时,它将使用当前密码。 如果已成功使用当前密码,则它也保存为备份密码。 如果使用 ChangeServiceConfig 函数或服务控制面板实用工具修改密码,则新密码将存储为当前密码,以前的密码存储为备份密码。 如果 SCM 尝试启动服务并且当前密码失败,则使用备份密码。 如果成功使用备份密码,则会将其保存为当前密码。
当服务使用 SetServiceStatus 函数发送服务状态通知时,SCM 会更新服务状态。 SCM 通过查询 I/O 系统而不是从服务接收状态通知来维护驱动程序服务的状态。
服务可以通过调用 SetServiceBits 函数来注册其他类型信息。 NetServerGetInfo 和 NetServerEnum 函数获取受支持的服务类型。