| Предыдущий | Следующий |
| ERROR_EXCEPTION_IN_SERVICE | ERROR_SERVICE_SPECIFIC_ERROR |
ERROR_DATABASE_DOES_NOT_EXIST
Запрошенная база диспетчера управления службами не существует
OpenSCManager принимает имя базы Service Control Manager. Текущая документация Win32 требует SERVICES_ACTIVE_DATABASE; передача NULL по умолчанию открывает эту активную базу. Поэтому ERROR_DATABASE_DOES_NOT_EXIST относится к выбору базы SCM, а не к отсутствующей отдельной службе.
Регистрируйте значение lpDatabaseName отдельно от имени компьютера и службы. Старый код иногда сохраняет устаревшие абстракции имён баз или передаёт неправильную строку в wrapper с несколькими соседними параметрами. Для удалённого вызова отдельно учитывайте ошибки доступа и проверки подлинности: они возвращают другие коды. После открытия активной базы SCM используйте OpenService для поиска конкретной службы. Не создавайте службу из-за ошибки открытия базы: пространство имён служб ещё не было достигнуто.
Что проверить
- Проверьте точный аргумент lpDatabaseName, переданный OpenSCManager.
- Используйте NULL или SERVICES_ACTIVE_DATABASE для документированной активной базы.
- Разрешайте имена отдельных служб только после получения допустимого дескриптора базы SCM.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.