应用程序验证工具 - 停止代码 - 服务
服务测试、检查是否正确使用 Windows 服务。 例如,服务正在正常启动和停止。 有关 Windows 服务的详细信息,请参阅 服务。
以下停止代码包含在这组测试中。
使用非 Unicode API (例如 RegisterServiceCtrlHandlerA 而不是 RegisterServiceCtrlHandlerW)
可能的原因很可能应用程序不是使用定义的 UNICODE 宏编译的,因此使用非 Unicode 接口。
应用程序验证程序显示的信息- 格式: - API 名称 %ws
- 参数 1 - 未使用。
- 参数 2 - 未使用。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: USING_NON_UNICODE_API
- 停止代码: 4000000
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的
第二次调用 StartServiceCtrlDispatcher API
可能的原因此 API 只能在服务 wmain 函数开始时调用一次。
应用程序验证程序显示的信息- 格式: - API 名称 %ws
- 参数 1 - SERVICE_TABLE_ENTRY 参数。
- 参数 2 - 未使用。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: CTRL_DISPATCHER_CALLED_TWICE
- 停止代码: 4000001
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的
传递给 SetServiceStatus 的SERVICE_STATUS句柄无效
可能的原因传递给 SetServiceStatus 的SERVICE_STATUS句柄无效。
应用程序验证程序显示的信息- 格式: - API 名称 %ws
- 参数 1 - SERVICE_STATUS_HANDLE value。
- 参数 2 - 未使用。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: INVALID_SERVICE_STATUS_HANDLE
- 停止代码: 4000002
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的
正在从两个线程调用 SetServiceStatus
可能的原因此 API 旨在以串行方式调用。
应用程序验证程序显示的信息- 格式: - 正在从 %ws 服务并发调用 API 名称 %ws
- 参数 1 - LPSERVICE_STATUS传递的值。
- 参数 2 - 未使用。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: SET_SERVICE_STATUS_RACE
- 停止代码: 4000003
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的
在服务处于START_PENDING状态时接受 STOP/SHUTDOWN 控件
可能的原因大多数服务无法在初始化期间接受停止/关闭控制
应用程序验证程序显示的信息- 格式: - 服务名称: %ws dwControlsAccepted: %08X
- 参数 1 - LPSERVICE_STATUS传递的值。
- 参数 2 - 未使用。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: STOP_SHUTDOWN_ACCEPTED
- 停止代码: 4000004
- 严重性: 警告
- 一次性错误: 不
- 错误报告: 没有
- 记录到文件: 是的
- 创建回溯: 是的
服务正在尝试无效状态转换
可能的原因服务尝试执行无效状态转换或设置相同的状态参数
应用程序验证程序显示的信息- 格式: - 发现服务 %ws 正在尝试无效状态转换
- 参数 1 - LPSERVICE_STATUS当前状态。
- 参数 2 - LPSERVICE_STATUS新状态。
- 参数 3 - Last SetServiceStatus 堆栈跟踪。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: INVALID_STATE_TRANSITION
- 停止代码: 4000005
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的
服务正在尝试设置相同的状态参数
可能的原因服务尝试设置相同的状态参数
应用程序验证程序显示的信息- 格式: - 服务 %ws 尝试设置相同的状态参数
- 参数 1 - LPSERVICE_STATUS当前状态。
- 参数 2 - LPSERVICE_STATUS新状态。
- 参数 3 - Last SetServiceStatus 堆栈跟踪。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: DUPLICATE_STATE_PARAMS
- 停止代码: 4000006
- 严重性: 警告
- 一次性错误: 不
- 错误报告: 没有
- 记录到文件: 是的
- 创建回溯: 是的
服务在进入 STOPPED 状态后离开挂起的线程
可能的原因声明 STOPPED 状态后,服务将离开挂起的线程
应用程序验证程序显示的信息- 格式: - 服务 %ws 正在泄漏线程
- 参数 1 - 泄漏线程的线程 ID。
- 参数 2 - Service Tag。
- 参数 3 - 未使用。
- 参数 4 - 未使用。
- 测试层: 服务
- 停止 ID: LEAKED_THREAD
- 停止代码: 4000007
- 严重性: 错误
- 一次性错误: 不
- 错误报告: 打破
- 记录到文件: 是的
- 创建回溯: 是的