16、Windows API 服务

一、基本概念

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

原文地址:https://www.cnblogs.com/mydomain/p/1931262.html