Skip to content

ServiceControlCodeConstants

SCM 可向运行中的服务传递的控制代码。用作 ITbService.ChangeStatedwControl 参数(服务在此响应请求)以及 Services.ControlServiceControlCode 参数(调用者在此向其他位置运行的服务发出请求)。

这些值与 Win32 SERVICE_CONTROL_* 常量完全相同——vb 前缀是 VB6 编码约定的历史遗留,不影响数值。

常量说明
vbServiceControlStop0x01请求服务停止。标准关闭信号——每个服务都应在 ChangeState 中处理此代码。
vbServiceControlPause0x02暂停服务。仅在 ServiceManager.SupportsPausingTrue 时传递。
vbServiceControlContinue0x03恢复已暂停的服务。与 vbServiceControlPause 配对使用。
vbServiceControlInterrogate0x04SCM 请求服务通过 ReportStatus 重新报告其当前状态。最低限度的处理程序可以忽略——SCM 已从上一次调用中获取最新状态。
vbServiceControlShutdown0x05操作系统正在关闭。大多数服务将此与 vbServiceControlStop 同等处理。
vbServiceControlParamChange0x06管理员已通过 sc.exe config 更改服务配置。仅当服务注册了 SERVICE_ACCEPT_PARAMCHANGE 时传递——目前未通过包暴露。
vbServiceControlNetBindAdd0x07新的网络绑定可用。仅当接受 SERVICE_ACCEPT_NETBINDCHANGE 时传递——目前未暴露。
vbServiceControlNetBindRemove0x08网络绑定已移除。
vbServiceControlNetBindEnable0x09先前禁用的网络绑定已启用。
vbServiceControlNetBindDisable0x0A网络绑定已禁用。
vbServiceControlDeviceEvent0x0B设备到达/移除事件。ChangeStatedwEventTypelpEventData 参数包含 DBT_* 子代码和 DEV_BROADCAST_HDR 数据。仅当服务已接受 SERVICE_ACCEPT_HARDWAREPROFILECHANGE 时传递。
vbServiceControlHardwareProfileChange0x0C硬件配置文件更改(笔记本电脑插接等)。
vbServiceControlPowerEvent0x0D系统电源事件(挂起、恢复、电池电量低等)。dwEventType 参数包含 PBT_* 子代码。
vbServiceControlSessionChange0x0E会话更改事件(用户登录、RDP 连接/断开等)。dwEventType 参数包含 WTS_* 子代码。
vbServiceControlPreShutdown0x0F操作系统即将关闭——在 vbServiceControlShutdown 之前发送给已注册更长预关闭通知窗口的服务。
vbServiceControlTimeChange0x10系统时间已更改。
vbServiceControlTriggerEvent0x20已注册的触发器事件已触发(通常由触发启动的服务使用)。
vbServiceControlLowResources0x60服务应减少其内存/CPU 占用。
vbServiceControlSystemLowResources0x61整个系统资源不足。

128--255 范围内的控制代码保留给用户自定义代码;将此范围内的任意值传递给 Services.ControlService,包将请求匹配的 SERVICE_USER_DEFINED_CONTROL SCM 权限。大多数服务只需处理 vbServiceControlStop,可选处理暂停/继续对。

twinBASIC及其LOGO版权为作者"韦恩"所有