Средство проверки приложений — коды остановки — службы
Службы проверяют, проверка для правильного использования служб Windows. Например, службы запускаются и останавливаются должным образом. Дополнительные сведения о службах Windows см. в разделе Службы.
В этом наборе тестов содержатся следующие коды остановки.
Использование API, отличного от Юникода (например, RegisterServiceCtrlHandlerA вместо RegisterServiceCtrlHandlerW)
Вероятная причинаСкорее всего, приложение не было скомпилировано с определенным макросом ЮНИКОДа, поэтому используются интерфейсы, отличные от Юникода.
Сведения, отображаемые с помощью средства проверки приложений- Формат: — имя API %ws
- Параметр 1 - Не используется.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: USING_NON_UNICODE_API
- Код остановки: 4000000
- Тяжести: Ошибка
- Одноразовая ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создать обратную трассировку: Да
Api StartServiceCtrlDispatcher вызывается во второй раз
Вероятная причинаЭтот API должен вызываться только один раз в начале функции wmain службы.
Сведения, отображаемые с помощью средства проверки приложений- Формат: — имя API %ws
- Параметр 1 Параметр - SERVICE_TABLE_ENTRY.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: CTRL_DISPATCHER_CALLED_TWICE
- Код остановки: 4000001
- Тяжести: Ошибка
- Одноразовая ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создать обратную трассировку: Да
В SetServiceStatus передается недопустимый дескриптор SERVICE_STATUS
Вероятная причинаНедопустимый дескриптор SERVICE_STATUS передается в SetServiceStatus.
Сведения, отображаемые с помощью средства проверки приложений- Формат: — имя API %ws
- Параметр 1 - SERVICE_STATUS_HANDLE значение.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: INVALID_SERVICE_STATUS_HANDLE
- Код остановки: 4000002
- Тяжести: Ошибка
- Одноразовая ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создать обратную трассировку: Да
SetServiceStatus вызывается из двух потоков
Вероятная причинаЭтот API должен вызываться последовательно.
Сведения, отображаемые с помощью средства проверки приложений- Формат: — имя API %ws вызывается одновременно из службы %ws.
- Параметр 1 Переданное значение - LPSERVICE_STATUS.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: SET_SERVICE_STATUS_RACE
- Код остановки: 4000003
- Тяжести: Ошибка
- Одноразовая ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создать обратную трассировку: Да
Элементы управления STOP/SHUTDOWN принимаются, когда служба находится в START_PENDING состоянии
Вероятная причинаБольшинство служб не могут принимать элементы управления остановкой и завершением работы во время инициализации
Сведения, отображаемые с помощью средства проверки приложений- Формат: — Имя службы: %ws dwControlsAccepted: %08X
- Параметр 1 Переданное значение - LPSERVICE_STATUS.
- Параметр 2 - Не используется.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: STOP_SHUTDOWN_ACCEPTED
- Код остановки: 4000004
- Тяжести: Предупреждение
- Одноразовая ошибка: Нет
- Отчет об ошибках: Ни один
- Вход в файл: Да
- Создайте обратную трассировку: Да
СЛУЖБА пытается перейти к недопустимому состоянию
Вероятная причинаСлужба попыталась выполнить недопустимый переход состояния или установить идентичные параметры состояния
Сведения, отображаемые проверятелем приложений- Формат: — Служба %ws была обнаружена при попытке перехода недопустимого состояния.
- Параметр 1 - LPSERVICE_STATUS Текущее состояние.
- Параметр 2 - LPSERVICE_STATUS Новое состояние.
- Параметр 3 Трассировка стека - Last SetServiceStatus.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: INVALID_STATE_TRANSITION
- Код остановки: 4000005
- Тяжести: Ошибка
- Однократная ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создайте обратную трассировку: Да
СЛУЖБА пытается задать идентичные параметры состояния
Вероятная причинаСлужба попыталась задать идентичные параметры состояния
Сведения, отображаемые проверятелем приложений- Формат: — служба %ws попыталась задать идентичные параметры состояния.
- Параметр 1 - LPSERVICE_STATUS Текущее состояние.
- Параметр 2 - LPSERVICE_STATUS Новое состояние.
- Параметр 3 Трассировка стека - Last SetServiceStatus.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: DUPLICATE_STATE_PARAMS
- Код остановки: 4000006
- Тяжести: Предупреждение
- Однократная ошибка: Нет
- Отчет об ошибках: Ни один
- Вход в файл: Да
- Создайте обратную трассировку: Да
СЛУЖБА оставляет ожидающие потоки после ввода состояния STOPPED
Вероятная причинаСлужба оставляет ожидающие потоки после объявления состояния STOPPED
Сведения, отображаемые проверятелем приложений- Формат: — Служба %ws выполняет утечку потоков
- Параметр 1 - Thread Id утечки потока.
- Параметр 2 - Тег службы.
- Параметр 3 - Не используется.
- Параметр 4 - Не используется.
- Тестовый уровень: Службы
- Идентификатор остановки: LEAKED_THREAD
- Код остановки: 4000007
- Тяжести: Ошибка
- Однократная ошибка: Нет
- Отчет об ошибках: Перерыв
- Вход в файл: Да
- Создайте обратную трассировку: Да
См. также:
Средство проверки приложений — остановка кодов и определений
Средство проверки приложений — обзор
Средство проверки приложений — функции
Средство проверки приложений — тестирование приложений
Средство проверки приложений — тесты в приложении
Средство проверки приложений — отладка остановки средства проверки приложений