| Предыдущий | Следующий |
| PEER_E_INVITATION_NOT_TRUSTED | PEER_E_INVALID_TIME_PERIOD |
PEER_E_CHAIN_TOO_LONG
Переход состояния, представленный HRESULT
PEER_E_CHAIN_TOO_LONG — HRESULT 0x80630703 означает, что выдача invitation или group membership credential увеличила бы цепочку Group Membership Certificate сверх поддерживаемой глубины. PEER_E_CHAIN_TOO_LONG — Ранее успешный вызов не гарантирует, что позднее полученные дескриптор, identity, запись или сетевое присутствие всё ещё действительны.
Восстановите последовательность событий
- Определите первый вызов среди PeerGroupIssueCredentials и PeerGroupCreateInvitation, вернувший HRESULT.
- Сохраните полную GMC issuer chain, role каждого issuer, длину цепочки, identity предполагаемого member и administrator, выполнявшего issuance.
- Сопоставьте события graph, group, PNRP и collaboration с cancellation, disconnect, shutdown и sign-out приложения.
- Выполните узкое сравнение: выдайте credential от group creator или administrator с более короткой цепочкой и сравните с выдачей от самого глубокого administrator.
Peer Grouping добавляет поверх graphing и PNRP учётные данные членства, роли, подпись записей и зашифрованные соединения. Local open state, online connection state и authorization state — разные состояния.
Матрица интерпретации
| Наблюдение | Интерпретация для PEER_E_CHAIN_TOO_LONG |
|---|---|
| Ни один create/open/enumerate вызов не вернул объект | Сбой находится выше по цепочке, до group membership, описываемого здесь. |
| Сначала произошло событие close, delete, disconnect, expiration или sign-out | Исследуйте гонку lifecycle объекта до предположений о malformed network data. |
| Контролируемый запуск продвигается до другого HRESULT | Исходная GMC trust chain исправлена, а новый код называет следующую неудовлетворённую предпосылку. |
Ближайший альтернативный диагноз
PEER_E_CIRCULAR_CHAIN_DETECTED отличается тем, что chain-too-long имеет корректную линейную цепочку чрезмерной глубины, а circular-chain повторяет issuer/subject path. Оба кода могут появиться в одном workflow, но не требуют одинакового исправления.
Исправление и подтверждение
обновите credential или выдайте его из более короткой авторизованной ветви; не удаляйте group database, поскольку ограничивающее состояние — иерархия credentials. Проверяйте результат перечислением ожидаемых records, members, connections, endpoints или presence state, а не только исчезновением ошибки вызова.
Инструментирование и регрессионное покрытие
Фиксируйте первый неудачный вызов, а не более поздний результат cleanup. Решающее доказательство: полная GMC issuer chain, role каждого issuer, длина цепочки, intended member identity и administrator, выполнявший issuance.
| Регрессионный уровень | Проверяемый случай | Условие прохождения |
|---|---|---|
| Входные данные и время жизни объекта | Создайте минимальный объект, достигающий состояния, где выдача invitation/group membership credential превысила бы поддерживаемую глубину Group Membership Certificate chain. | Тест записывает owning handle, user context и точный API из PeerGroupIssueCredentials и PeerGroupCreateInvitation. |
| Контролируемое сравнение | выдайте credential от group creator или administrator с более короткой цепочкой и сравните с выдачей от самого глубокого administrator. | Между неуспешным и успешным запуском изменяется только целевая GMC trust chain. |
| Путь восстановления | обновите credential или выдайте его из более короткой авторизованной ветви; не удаляйте group database, поскольку ограничивающее состояние — иерархия credentials. | Нужная операция завершается успешно без замены несвязанного role/connectivity state. |
Сохраняйте unsigned hexadecimal HRESULT, symbolic names и timestamps в одной trace. Такая запись позволяет регрессионному тесту отличить состояние членства в группе от последующего сбоя транспорта, авторизации или приложения.
Исходные материалы
- Microsoft: функции Grouping API — источник документирует соответствующую peer boundary.
- Microsoft: как подключиться к peer group — источник документирует соответствующую peer boundary.
- Microsoft: как работает безопасность группы — источник документирует соответствующую peer boundary.
- Microsoft Open Specifications: обзор группировки Peer-to-Peer — источник документирует соответствующую peer boundary.
Нужно найти другой код? Найти другой код состояния или ошибки.