Windows服务与异步I/O技术解析
1. Windows服务基础
Windows服务为用户向Windows计算机添加自定义服务提供了标准化能力。下面详细介绍其相关内容。
1.1 服务控制码与处理程序
服务可接受并通过其服务控制处理程序处理特定的控制码。这些控制码需通过按位“或”操作组合。例如,在后续示例中会用到一些特定值,更多值可参考MSDN文档。
服务控制处理程序是一个回调函数,其形式如下:
The <parameter> indicates the actual control signal sent by the SCM that should be processed.
该参数表示SCM发送的需要处理的实际控制信号。控制信号有14种可能的值,示例中关注的5种控制值如下表所示:
| 控制值 | 说明 |
| ---- | ---- |
| (此处应补充具体控制值及说明) | (补充说明) |
用户自定义的值在特定范围内也是允许的,但在本示例中未使用。通常某个参数为特定值,但非零值用于设备管理,这超出了本文的范围。还有一个参数提供某些事件所需的额外数据,最后一个参数是在处理程序注册时传递的用户自定义数据。处理程序由SCM在与主程序相同的线程中调用,该函数通常写成 switch
语句,示例中会展示。
1.2 事件日志记录
服务通常在无用户交互的“无头”模式下运行,因此直接显示状态消息通常不合适