已安装服务的数据库

SCM 维护注册表中已安装服务的数据库。 数据库由添加、修改或配置服务的 SCM 和程序使用。 下面是此数据库的注册表项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

此密钥包含每个已安装服务和驱动程序服务的子项。 子项的名称是服务的名称,由 CreateService 函数在服务配置程序安装服务时指定。

安装系统时,将创建数据库的初始副本。 数据库包含系统启动期间所需的设备驱动程序条目。 该数据库包括有关每个已安装服务和驱动程序服务的以下信息:

  • 服务类型。 这指示服务是在其自己的进程中执行,还是与其他服务共享进程。 对于驱动程序服务,这指示服务是内核驱动程序还是文件系统驱动程序。
  • 开始类型。 这指示服务或驱动程序服务是否在系统启动时自动启动 (自动启动服务) ,或者 SCM 是否在服务控制程序请求时启动它 (demand-start service) 。 启动类型还可以指示服务或驱动程序服务已禁用,在这种情况下,无法启动该服务或驱动程序服务。
  • 错误控制级别。 这指定服务或驱动程序服务在系统启动期间无法启动时错误的严重性,并确定启动程序将采取的操作。
  • 可执行文件的完全限定路径。 服务的文件扩展名.EXE,驱动程序服务的.SYS。
  • 用于确定启动服务或驱动程序服务的正确顺序的可选依赖项信息。 对于服务,此信息可以包括 SCM 在启动指定服务之前必须启动的服务列表、服务所属的负载排序组的名称,以及指示服务在其负载排序组中的开始顺序的标记标识符。 对于驱动程序服务,此信息包括必须在指定驱动程序之前启动的驱动程序列表。
  • 对于服务,请使用可选的帐户名称和密码。 服务程序在此帐户的上下文中运行。 如果未指定帐户,则服务在 LocalSystem 帐户的上下文中执行。
  • 对于驱动程序服务,可选的驱动程序对象名称 (例如,\FileSystem\Rdr 或 \Driver\Xns) ,由 I/O 系统用来加载设备驱动程序。 如果未指定名称,I/O 系统将基于驱动程序服务名称创建默认名称。

注意

此数据库也称为 ServicesActive 数据库或 SCM 数据库。 必须使用 SCM 提供的函数,而不是直接修改数据库。