安装逻辑
- 打开本地服务管理器
- 创建服务
代码
const char pServiceName[] = "lockpage";
const char pServiceInfo[] = "lock web explorer main page";
const char pDriverPath[] = "lockpage.sys";
SC_HANDLE hSCmanager = OpenSCManager(NULL, /** 连接到本地计算机 */
NULL /** 默认服务管理控制数据库:SERVICES_ACTIVE_DATABASE */
SC_MANAGER_CREATE_SERVICE /** 权限:服务创建权限,配合CreateServiceA 将服务添加到数据库中 */);
if (hSCmanager == NULL)
{
return (int)FALSE;
}
HANDLE hService = CreateService(hSCmanager, /** 服务管理器句柄 */
pServiceName, /** 服务名 */
pServiceInfo, /** 服务描述 */
SERVICE_ALL_ACCESS, /** 所有标准权限*/
SERVICE_KERNEL_DRIVER,/** 服务类型:驱动服务 */
SERVICE_DEMAND_START, /** 开始类型:有服务管理器调用StartService来开启 */
SERVICE_ERROR_IGNORE, /** 服务启动失败的处理方式:忽略错误继续启动 */
pDriverPath, /** 二进制文件路径 */
0, /** 组名称,不属于组。该服务所属组的名称 */
0, /** 服务所属组的唯一标记值 */
0, /** 依赖:无任何依赖 */
0, /** 用户名称:系统用户。服务应该运行在哪个用户权限下 */
0, /** 密码:无密码。对应用户名的密码 */);
if (hService == NULL)
{
return (int)FALSE;
}