Windows服务管理与故障处理全解析
1. 服务启动流程
Windows系统中,服务控制管理器(SCM)在服务启动过程中扮演着核心角色。其启动流程如下:
1. 令牌转换 :SCM会将令牌转换为写受限令牌,添加适当的受限安全标识符(SIDs)。Windows使用访问令牌来表示用户的安全上下文,随后SCM将访问令牌与实现服务的进程关联起来。
2. 环境与描述符创建 :SCM创建用户环境块和安全描述符,并将其与新的服务进程关联。若要启动的是打包服务,SCM会从注册表读取所有包信息(包全名、来源和应用程序用户模型ID),并调用Appinfo服务,为令牌添加必要的AppModel安全属性,为现代包激活准备服务进程。
3. 加载账户配置文件 :成功登录后,若账户配置文件尚未加载,SCM会调用User Profile Basic Api DLL(%SystemRoot%\System32\Profapi.dll)的LoadProfileBasic函数来加载。注册表值HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<用户配置文件键>\ProfileImagePath包含了LoadUserProfile加载到注册表中的注册表配置单元的磁盘位置,使配置单元中的信息成为服务的HKEY_CURRENT_USER键。
4. 启动服务进程 :LogonAndStartImage会启动服务进程。SCM使用CreateProcessAsUser Windows函数以挂起状态
超级会员免费看
订阅专栏 解锁全文
7451

被折叠的 条评论
为什么被折叠?



