windows下共享式服务开发

参考:

https://blog.csdn.net/dongyewolong/article/details/8164873

https://blog.csdn.net/qwertyupoiuytr/article/details/53999629

1 相关注册表项

  <0> x86跟x64的配置项在同一个位置, 不同的是ImagePath中svchost.exe不同:

    x64对应的是%SystemRoot%\system32\svchost.exe, 即C:\Windows\system32\svchost.exe

    x86对应的是C:\WINDOWS\SysWOW64\svchost.exe

  <1> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost

这里存放服务组跟该组中服务名, 以DevicesFlow服务组为例, 服务组的名字是DevicesFlow, 该组*包含两个服务, 分别是"DevicePickerUserSvc" 和 "DeviceFlowUserSvc"

windows下共享式服务开发

windows下共享式服务开发

<2> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

该位置存放每个服务的具体配置,

服务的名字作为Services的子健, 该子健的项值对保存了该服务的相关配置. 其中比较重要的有DisplayName, 跟ImagePath(其中-k 参数后面跟的就是服务组的名字),

该子健还必须有一个子健Parameters, 它的项值对指定该服务对应的dll的位置, 以及卸载时刻

windows下共享式服务开发

DevicePickerUserSvc相关项

windows下共享式服务开发

Parameters相关项

windows下共享式服务开发

DeviceFlowUserSvc

windows下共享式服务开发

windows下共享式服务开发

windows下共享式服务开发

2 编写共享式服务代码

相对于独立式服务, 共享式服务只要实现ServiceMain跟服务控制函数就可以了, 不过ServiceMain必须导出供svchost.exe调用

3 服务的启动,停止和关闭

上一篇:Maven-Eclipse使用maven创建HelloWorld Java项目,使用Junit-4.11的注解


下一篇:hdu1875 畅通工程再续 最小生成树并查集解决---kruskal