2008年5月16日星期五

windows已安装服务的数据库

已安装服务的数据库


服务的名字由CreateService()函数在服务配置程序安装该服务的时候指定。


该数据的初始拷贝在安装操作系统的时候创建,此时该数据库包括系统启动时需要的设备驱动的表项。对一项以安装的服务或驱动服务来说,该数据库包含以下内容:

service type:它指示该服务是在自己的进程下执行还是和其他服务共享进程。对于驱动服务,它指示是内核驱动还是文件系统驱动。

start type

error control level:当系统启动时,如果该服务或驱动服务启动失败问题的严重程度,并且启动程序将采取的动作.

可执行文件的全路径

可选的依赖性信息:用于决定启动服务或驱动服务的正确顺序.对于服务来说,该信息可以包括该服务启动之前必须启动的服务的列表、该服务器所在的load ordering group的名字、知名load ordering group中服务启动顺序的tag id;对于驱动来说,该信息包括该驱动加载之前必须加载的驱动。

可选的帐户和密码(对于windows服务):如果没有指定帐户,缺省以LocalSystem执行。

驱动对象名字(对于驱动服务):如果没有指定,i/o系统根据驱动服务的名字创建缺省名字。

自动启动服务系统启动时,SCM启动自动启动的服务和这些服务依赖的服务。启动顺序由以下地方决定:

1. load ordering group list中的顺序,HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control中的value ServiceGroupOrder指定。要指定一个服务的load ordering group,在CreateService()和ChangeServiceConfig()由lpLoadOrderGroup指定。

2. The order of services within a group specified in the tags order vector. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control中的value GroupOrderList

3. 每项服务的依赖关系。
HKEY_LOCAL_MACHINE\System\Select\LastKnownGood指定 最近一次正确配置是HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services

其他windows服务相关:


SCM支持访问以下对象的handle

The database of installed services.

A service.

The database lock

SCM系统启动时运行,是一个rpc服务器,这样服务配置程序和服务控制程序能够控制远程计算机上的服务。

标签:


评论: 发表评论

订阅 博文评论 [Atom]





<< 主页

This page is powered by Blogger. Isn't yours?

订阅 博文 [Atom]