【原创】Windows服务管家婆之Service Control Manager
Service Control Manager,服务控制管理器,人称SCM就是它!在Windows内核中,都可以看到她忙碌的身影,可以说是系统服务和驱动的管家婆了!
- 维护已安装服务的数据库
- 在需要或系统启动的时候,打开服务或驱动服务
- 枚举已安装的服务或驱动服务
- 为已运行的服务或驱动服务维护状态信息
- 将控制码传递给运行中的服务
- 锁定/解锁服务数据库




- Type(服务类型)。对普通服务来说,它表明服务运行环境:自己进程内或与其他服务共享的进程;对于驱动服务来说,它是一个内核服务还是文件系统服务。下面是它的数字含义:0x1:驱动服务,0x2:文件系统服务;0x10:运行在自己进程的服务;0x20:与其他服务共享进程的服务
- Start(启动类型)。它表明这是一个自启动服务呢还是一个需求启动服务,自启动又有系统引导启动或SCM启动;需求启动服务有服务配置程序手动启动。同时它也能够指示此服务是否有用,在这种情况下,服务是无法启动的。0x00:系统引导程序自动运行服务;0x01:一个由 IoInitSystem函数启动的服务;0x02:在系统启动的时候,由SCM自动运行服务;0x03:需求启动,当一个程序调用StartService函数时,SCM启动服务;0x04:一个不能启动的服务
- ErrorControl(错误处理方式)。当该启动服务失败时产生错误的严重程度以及采取的保护措施。0x00:忽略错误;0x01-0x03:其他错误处理,参考CreateService函数。
- ImagePath(可执行文件的完整路径)。对服务来说,后缀名是.exe;对驱动来说,后缀名是.sys。可以是相对路径,可以带有启动参数。
- 可选的账户名字和密码(对服务),服务程序运行在此账户的上下文环境,当没指定任何账户时,默认是LocalSystem账户
- 可选的驱动对象名字(对驱动),名字在IO系统中会被用来加载驱动设备。如果没有指定名字,IO系统会根据驱动服务名字生成一个默认的名字。
- DependOnService(可选的依赖信息)。对于服务,信息可以是一个服务列表,在SCM启动此服务前,必须先启动列表中指定的服务。对于驱动,信息可以是一个驱动列表,在SCM启动此服务前,必须先启动列表中指定的驱动。
- Group(服务组)。如果服务没有这一项,那么它不属于任何一个服务组,系统则会默认的将其在所有的服务启动后加载。
- Tag(标签)。它用来描述服务的标识。每一个在服务组中的服务都会被分配一个唯一的标识。注册表通过对服务组的服务标识的排列来安排,同一服务组中的个服务的加载先后顺序



- 检索取回存储在数据库的账户信息
- 登录服务的账户
- 加载用于预置文件
- 创建处于挂起状态的服务
- 将登录令牌分配给程序
- 允许程序运行
- 已安装服务的数据库
- 一个服务
- 数据库锁
【原创】Windows服务管家婆之Service Control Manager的更多相关文章
- 【Windows】Windows服务管家婆之Service Control Manager
Service Control Manager,服务控制管理器,人称SCM就是它!在Windows内核中,都可以看到她忙碌的身影,可以说是系统服务和驱动的管家婆了! SCM管家婆起早贪黑,每次 ...
- DIM-00014: Cannot open the Windows NT Service Control Manager.
创建Oracle数据库时出错: OPW-00001: Unable to open password-file DIM-00014: Cannot open the Windows NT Servic ...
- Error connecting to the Service Control Manager: 拒绝访问 Mongodb问题-解决
原文地址:https://blog.csdn.net/carrot5032/article/details/74742888 发现在mongodb.log里出现 2017-07-07T17:01:5 ...
- Several Service Control Manager Issues (Event ID's 7000, 7009, 7011)
https://answers.microsoft.com/en-us/windows/forum/windows_7-performance/several-service-control-mana ...
- 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无 事件 ID: 7000
在控制面板\管理工具\服务里找dns Client 服务,把他启动了
- 玩转Windows服务系列——服务运行、停止流程浅析
通过研究Windows服务注册卸载的原理,感觉它并没有什么特别复杂的东西,Windows服务正在一步步退去它那神秘的面纱,至于是不是美女,大家可要睁大眼睛看清楚了. 接下来研究一下Windows服务的 ...
- 玩转Windows服务系列——Windows服务小技巧
伴随着研究Windows服务,逐渐掌握了一些小技巧,现在与大家分享一下. 将Windows服务转变为控制台程序 由于默认的Windows服务程序,编译后为Win32的窗口程序.我们在程序启动或运行过程 ...
- Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
什么是windows服务? 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序.Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就 ...
- windows服务部署与卸载
同事问到windows service的东东,现在整理一下,用c#如何创建一个windows service,以及如何调试.部署.卸载. 一.创建windows service 1. 打开VS2008 ...
随机推荐
- 解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
今天Redis服务器在连接redis数据库时突然报错:MISCONF Redis is configured to save RDB snapshots, but it is currently no ...
- LOJ-10091(强连通分量)
题目链接:传送门 思路: 多少头牛收到所有牛头牛的喜欢,喜欢具有传递性,所以将互相喜欢的牛视为一个点,就是有向图的 缩点,收到所有牛的喜欢要求这个“点”没有出度,所以缩点之后统计所有没有出度的点就是结 ...
- (转)jira7.2安装、中文及破解
转自:http://www.cnblogs.com/ilanni/p/6200875.html 本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanni ...
- ie的用户名密码输入框右侧提示去掉
::-ms-clear,::-ms-reveal{display:none;} //用户名 密码
- Freeradius服务器的搭建流程
Freeradius服务器的搭建流程 一.服务器方面的配置 1 .安装radius服务器,数据库扩展插件 预先安装mysql数据库,然后安装freeradius,以及freeradius的数据库扩展插 ...
- 基于fpga的vga学习(2)
本次学习主要向配合basys2实行. 上次学习vga的rgb三个output都是1位的,但是我看了basys2的rgb分别是332位,这里让我卡顿了很久, 之后通过查资料才知道,rgb的不同大小表示的 ...
- vshost32-clr2.exe 已停止工作
软件中使用了DevComponents.DotNetBar2.dll MessageBoxEx.Show("ddd");运行到这句出现如上错误 解决:在项目属性里->调试: ...
- 推导正交投影(Orthographic Projection)
定义六个面 left right bottom top near far 然后三个轴分开考虑 x轴 视椎体的x范围在[l,r],我们要变换到[-1,1] 1 减去l变换到[0, r-l] 2 乘以 ...
- [转] Customizing OpenStack RBAC policies
http://www.florentflament.com/blog/customizing-openstack-rbac-policies.html OpenStack uses a role ba ...
- Android 视频播放器 (二):使用MediaPlayer播放视频
在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...