Site icon EfmSoft

Что означает код HRESULT 0x80631005 (PEER_E_CLOUD_NAME_AMBIGUOUS)?

 
Предыдущий Следующий
PEER_E_NO_CLOUD PEER_E_INVALID_RECORD

PEER_E_CLOUD_NAME_AMBIGUOUS

Какой peer contract отклонён

PEER_E_CLOUD_NAME_AMBIGUOUS — HRESULT 0x80631005 означает, что указанная ссылка PNRP соответствует нескольким cloud одного scope и поэтому не выбирает однозначное пространство имён. PEER_E_CLOUD_NAME_AMBIGUOUS — Базовое описание сообщает результат; для диагностики нужен контракт данных и жизненный цикл, используемые перечислением PNRP cloud, необязательным cloud name в PeerGroupJoin и вызовами разрешения PNRP.

PNRP — Winsock namespace provider, разрешающий peer names в endpoint information внутри IPv6-based cloud. Выбор cloud, registration и endpoint enumeration — разные этапы.

Минимальный диагностический пакет

ЭлементДоказательство
Исходные данныеСохраните все перечисленные имена и scope облаков, идентификаторы интерфейсов, переданную вызывающим кодом строку cloud и значение приглашения или конфигурации, из которого она получена.
Контекст-владелецЗапишите Windows user, process integrity, graph/group handle, database path и выбранный cloud.
Предыдущий успехСохраните последний успешный результат create/open/enumerate/parse/register/sign-in, создавший объект.
Порядок результатовСохраняйте первый HRESULT, чтобы cleanup failures не заменили код, отклонивший запрос.

Целевое воспроизведение

повторите операцию с полным именем cloud, возвращённым перечислением, и сравните результат с неоднозначным сокращённым именем. Используйте disposable identities/groups, если тест публикует names, создаёт credentials или изменяет replicated database.

Почему код сравнения отличается

PEER_E_NO_CLOUD отличается тем, что при неоднозначности существует несколько кандидатов, а no-cloud означает отсутствие любого подходящего cloud. Диагностический отчёт должен сохранять symbolic constant и unsigned hexadecimal value.

Рекомендуемое изменение

сохраняйте и передавайте точный идентификатор cloud, а не только обозначение его scope. Не удаляйте все peer databases, certificate store или firewall rules: широкие сбросы стирают доказательства и не подтверждают исправление caller contract.

Подтверждение исправления

Инструментирование и регрессионное покрытие

Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее значение имеют все перечисленные имена и scope облаков, идентификаторы интерфейсов, переданная строка cloud и исходное значение приглашения или конфигурации.

Регрессионный уровеньПроверяемый случайУсловие прохождения
Входные данные и время жизни объектаПостройте минимальный объект, в котором ссылка PNRP соответствует нескольким cloud одного scope и не позволяет однозначно выбрать пространство имён.В тесте фиксируются владеющий дескриптор, контекст пользователя и точный API из перечисления PNRP cloud, необязательного cloud name в PeerGroupJoin и вызовов разрешения PNRP.
Контролируемое сравнениеповторите операцию с полным именем cloud, возвращённым перечислением, и сравните результат с неоднозначным сокращённым именем.Между неуспешным и успешным запуском изменяется только целевое encoding peer name.
Путь восстановлениясохраняйте и передавайте точный идентификатор cloud, а не только обозначение его scope.Нужная операция завершается успешно без замены несвязанной endpoint registration.

Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить состояние пространства имён cloud от последующего сбоя транспорта, авторизации или приложения.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version