Skip to content

ServiceStatusConstants

服务通过 ServiceManager.ReportStatus 向 SCM 报告的运行时状态值。相同的数值由 ServiceState.CurrentState 返回(类型为普通 Long),并由 ServiceState.CurrentStateText 渲染为文本。

这些值与 Win32 SERVICE_* 状态常量一一对应。vb 前缀是 VB6 编码约定的历史遗留。

常量说明
vbServiceStatusStopped1服务未运行。在 EntryPoint 返回之前由服务设置;也是服务注册时 SCM 存储的初始状态。
vbServiceStatusStartPending2服务正在启动。在调用 EntryPoint 之前由包的调度跳板设置;启动序列较长的服务还应定期重新报告此状态并提供 WaitHint,以免 SCM 判定服务挂起。
vbServiceStatusStopPending3服务已确认停止请求并正在关闭。通常在 ChangeState 中收到 vbServiceControlStop 后立即报告。
vbServiceStatusRunning4服务已达稳定状态。在初始化完成后从 EntryPoint 报告;这就是 services.msc 显示为"正在运行"的状态。
vbServiceStatusContinuePending5服务已确认继续请求并正在恢复。在 ChangeState 中收到 vbServiceControlContinue 后报告。
vbServiceStatusPausePending6服务已确认暂停请求。在 ChangeState 中收到 vbServiceControlPause 后报告。
vbServiceStatusPaused7服务已达暂停状态。在暂停循环激活后从 EntryPoint 报告。

简单服务的典型状态序列:vbServiceStatusStartPending(包)→ vbServiceStatusRunning(从 EntryPoint)→ vbServiceStatusStopPending(从 ChangeState)→ vbServiceStatusStopped(从 EntryPoint,在返回之前)。

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