2021.04.20

由advapi32.dll提供service功能。参考StartSeviceA:

  • StartService函数和Service Control Manager (SCM)交互。SCM创建service进程。因此StartService涉及进程间操作。
  • service control dispatcher启动ServiceMain()后就让StartService返回。
  • 使用QueryServiceStatus判断service进程的状态。
  • serice control database有锁,仅运行一个StartService,即StartService不能“嵌套”(service初始化阶段不能使用StartService)

服务管理器(Service Manager)位于WinXP->开始->管理工具->服务。

众多服务的注册表位置位于HKEY_LOCAL_MACHINE\ SYSTEM\ CurrentControlSet\ Services\