已安装服务的数据库

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

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

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

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

注意

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