| Предыдущий | Следующий |
| NS_E_DRM_LICENSE_INITIALIZATION_ERROR | NS_E_DRM_UNSUPPORTED_ALGORITHM |
NS_E_DRM_CHAIN_TOO_LONG
Что установила вызывающая сторона
Чтение NS_E_DRM_CHAIN_TOO_LONG на границе объекта, где обнаружено состояние «слишком длинная цепочка лицензий». Подсистема, сформировавшая NS_E_DRM_CHAIN_TOO_LONG относится к внутренние компоненты клиента Windows Media DRM, а не медиадекодер; этот слой инициализирует компоненты безопасности, проверяет идентификаторы содержимого и лицензий, выполняет индивидуализацию, управляет цепочками лицензий и координирует возможности защищённого воспроизведения.
Расследование становится предметным после выполнения проверки для состояния «слишком длинная цепочка лицензий». Штатное описание AllStat приведено выше; этот раздел посвящён состоянию объекта и данным, позволяющим отличить NS_E_DRM_CHAIN_TOO_LONG от соседних ошибок Windows Media.
Состояние, которое необходимо сопоставлять
Граф объектов NS_E_DRM_CHAIN_TOO_LONG включает версию компонента DRM, KID, подпись заголовка содержимого, цепочку лицензий, вышестоящую лицензию, состояние индивидуализации, регистрации переносных устройств и локальную конфигурацию. Трассировка должна сохранить KID и хэш заголовка, версию DRM, состояние индивидуализации, идентификаторы цепочки лицензий, результат чтения реестра или конфигурации и первый обратный вызов клиента со сбоем, применительно к состоянию «слишком длинная цепочка лицензий».
Эти данные важны, поскольку отклонено именно состояние «слишком длинная цепочка лицензий».
Локализация сбоя
- Сохраните
NS_E_DRM_CHAIN_TOO_LONGи0xC00D284Cдо очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Примените узкое исправление для
NS_E_DRM_CHAIN_TOO_LONG: выпустите конечную лицензию непосредственно от корневой лицензии, не входящей в цепочку. - Свяжите
NS_E_DRM_CHAIN_TOO_LONGс текущим объектом внутренних компонентов клиента Windows Media DRM и запрошенным действием. - Выполните прямую проверку для
NS_E_DRM_CHAIN_TOO_LONG: проследите связь UplinkKid и подсчитайте уровни корневой и конечной лицензий. - Сравните сбой с заведомо исправным случаем, изменив только условие «слишком длинная цепочка лицензий».
- Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что
NS_E_DRM_CHAIN_TOO_LONGне заменена другой ошибкой политики или доверия.
Переход состояния
Сравнение состояния до и после для NS_E_DRM_CHAIN_TOO_LONG должно изменять только одно условие. До исправления воспроизводится состояние «слишком длинная цепочка лицензий»; после исправления тот же процесс должен пройти эту границу. Результат NS_E_DRM_CHAIN_TOO_LONG подходит для регрессионного теста, поскольку ожидаемое изменение состояния можно наблюдать без ослабления политики DRM.
Не приписывайте HRESULT лишний смысл
Для NS_E_DRM_CHAIN_TOO_LONG, установлен факт состояния «слишком длинная цепочка лицензий». Для NS_E_DRM_CHAIN_TOO_LONGэтот факт сам по себе не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните NS_E_DRM_CHAIN_TOO_LONG как первый конкретный результат. Объект и операция, связанные с NS_E_DRM_CHAIN_TOO_LONG , обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Состояние, которое следует сохранить до повтора
| Поле | Значение для NS_E_DRM_CHAIN_TOO_LONG |
|---|---|
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с NS_E_DRM_CHAIN_TOO_LONG |
| Прямая проверка | проследите связь UplinkKid и подсчитайте уровни корневой и конечной лицензий |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при NS_E_DRM_CHAIN_TOO_LONG |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на NS_E_DRM_CHAIN_TOO_LONG |
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговой оболочкой NS_E_DRM_CHAIN_TOO_LONG |
Похожие симптомы не означают одинаковую причину
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_DRM_INVALID_KID | Недопустимый идентификатор ключа KID |
NS_E_DRM_LICENSE_INITIALIZATION_ERROR | механизм DRM не смог инициализировать объект лицензии или подсистему лицензирования для этой операции |
NS_E_DRM_UNSUPPORTED_ALGORITHM | защищённый объект указывает криптографический алгоритм, который не поддерживается клиентом |
Фактическое исправление
Следующая попытка имеет смысл только после выпуска конечной лицензии непосредственно от корневой лицензии, не входящей в цепочку. Для NS_E_DRM_CHAIN_TOO_LONGуспех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
NS_E_DRM_CHAIN_TOO_LONGлегко уничтожить; не заменяйте двоичные файлы DRM и не изменяйте состояние реестра до записи их версий и подписей, иначе несовместимость компонента нельзя будет отличить от повреждённого объекта лицензии.- Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления
NS_E_DRM_CHAIN_TOO_LONG; это обходит решение, а не исправляет его входные данные. - Сохраните один сбойный и один исправленный артефакт, чтобы устранение
NS_E_DRM_CHAIN_TOO_LONGможно было проверять при регрессионном тестировании.
Подтверждение устойчивости исправления
В итоговом тесте NS_E_DRM_CHAIN_TOO_LONG по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай NS_E_DRM_CHAIN_TOO_LONG разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для NS_E_DRM_CHAIN_TOO_LONG
- Интерфейсы клиента Windows Media DRM — документирует границу протокола или API, связанную с NS_E_DRM_CHAIN_TOO_LONG.
- Возможности управления цифровыми правами — описывает нормативный рабочий процесс, относящийся к NS_E_DRM_CHAIN_TOO_LONG.
- Лицензии и локальное хранилище лицензий — перечисляет переходы безопасности и состояния, используемые при интерпретации NS_E_DRM_CHAIN_TOO_LONG.
- Коды ошибок Windows Media Format SDK — определяет объекты платформы, используемые при диагностике NS_E_DRM_CHAIN_TOO_LONG.
Нужно найти другой код? Найти другой код состояния или ошибки.
