一、基本概念
1、服务是一种在系统中常驻的程序,服务可以在系统启动时自启动(先于用户登录)。当一个应用程序需要常驻在系统,或者随时为其他应用程序提供服务时,可以使用服务应用程序。一般编写网络服务端程序时需要使用服务。比如Windows系统中常用的网络应用服务器(WEB、FTP、邮件等)IIS就是一个服务应用程序。
Windows系统中具有一个服务控制器(SCM)用于控制服务。服务的安装、删除、启动、停止、控制与I/O都是通过服务控制器。
Windows系统的服务分为服务应用程序和内核驱动服务程序,服务应用程序运行于系统用户态,内核驱动服务运行于系统内核态。用户态服务程序需遵守SCM的接口规范。
sc.exe
2、服务控制器对系统中所有服务进行管理,SCM管理着系统中已经安装的服务程序和设备驱动程序数据库,数据库中保存的信息包括系统安装了哪些服务,每个服务包括如何启动每个服务、各个服务的安全属性以及控制接口等。
服务程序、服务配置程序和服务控制程序的设计都需要使用SCM提供的函数。
3、服务程序是运行服务所需要的可执行程序,SCM通过运行和终止服务程序来启动和停止服务。
4、启动、终止或控制服务程序的运行是通过向SCM发送请求实现的。对服务程序进行启动、停止、修改属性等操作的程序就是服务控制管理程序。
5、一个服务具有若干个属性,包括服务名称、显示名称、服务类型、描述、可执行文件路径、启动类型、服务状态、启动参数、依存关系等。
二、相关的API
暂时不涉及这一块,暂时到此,更详细的可以参见[1,2]。
[1] 精通Windows API 函数、接口、编程实例
[2] http://msdn.microsoft.com/en-us/library/ms685141%28VS.85%29.aspx