Поделиться через


Средство проверки приложений — коды остановки — службы

Службы проверяют, проверка для правильного использования служб 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
  • Тяжести:  Ошибка
  • Однократная ошибка:  Нет
  • Отчет об ошибках:  Перерыв
  • Вход в файл:  Да
  • Создайте обратную трассировку:  Да

См. также:

Средство проверки приложений — остановка кодов и определений

Средство проверки приложений — обзор

Средство проверки приложений — функции

Средство проверки приложений — тестирование приложений

Средство проверки приложений — тесты в приложении

Средство проверки приложений — отладка остановки средства проверки приложений

Средство проверки приложений — часто задаваемые вопросы