Skip to content

ServiceTypeConstants

Win32 服务类型值。在配置时读入 ServiceManager.Type,在查询时由 SCM 通过 ServiceState.Type 报告返回。决定服务是在自身进程中运行、在共享宿主进程中运行、还是内核驱动程序——以及在历史上,是否可以与桌面交互。

常量说明
tbServiceTypeKernelDriver1内核模式驱动程序。不适用于 twinBASIC 服务——内核驱动程序使用 C 语言编写并基于 Windows DDK 构建。
tbServiceTypeSystemDriver2文件系统内核驱动程序。同上。
tbServiceTypeAdapter4旧式适配器服务(网络适配器绑定)。现代服务不使用。
tbServiceTypeRecognizerDriver8文件系统识别器驱动程序。仅限内核。
tbServiceTypeOwnProcess16服务在自身专用 EXE 进程中运行。单服务 EXE 的典型设置。
tbServiceTypeShareProcess32服务与其他服务一起在共享宿主 EXE 中运行。当一个 EXE 承载多个不同服务时使用(多次调用 ConfigureNew);SCM 保持单个进程存活来为所有服务提供服务。
tbServiceTypeOwnProcessInteractive272tbServiceTypeOwnProcess 加交互位(SERVICE_INTERACTIVE_PROCESS)。Windows Vista 及更高版本不支持——见下方说明。
tbServiceTypeShareProcessInteractive288tbServiceTypeShareProcess 加交互位。同上。

INFO

Windows Vista 及更高版本在 Session 0 中运行服务,该会话没有用户桌面,也无法与已登录用户进行消息循环交互——SERVICE_INTERACTIVE_PROCESS 标志会被静默忽略Interactive 常量保留在枚举中是为了兼容性,但需要用户界面元素的服务应使用独立的 UI 进程(通过 Services 包或进程间通信启动),而不是交互式服务机制。

对于用户模式 twinBASIC 服务,实际中只有两个值有用:tbServiceTypeOwnProcesstbServiceTypeShareProcess

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