C编写Windows服务程序的五个步骤(4)
在 ServiceMain 中,检查 InitService 函数的返回值。如果初始化有错(因为有可能写日志文件失败),则将服务状态置为终止并退出 ServiceMain: error = InitService(); if (error) { // 初始化失败,终止服务 ServiceStatus.dwCurrentState = SERVICE_STOPPED; ServiceStatus.dwWin32ExitCode = -1; SetServiceStatus(hStatus, &ServiceStatus); // 退出 ServiceMain return; } 如果初始化成功,则向 SCM 报告状态: // 向 SCM 报告运行状态 ServiceStatus.dwCurrentState = SERVICE_RUNNING; SetServiceStatus (hStatus, &ServiceStatus); 接着,启动工作循环。每五秒钟查询一个可用物理内存并将结果写入日志文件。 如 Listing 1 所示,循环一直到服务的状态为 SERVICE_RUNNING 或日志文件写入出错为止。状态可能在 ControlHandler 函数响应 SCM 控制请求时修改。
首页 上页 | ...1| 2 | 3 | 4 | 5 | 6 | 下页 尾页 共 6 页