Что означает код HRESULT 0xC00D28A5 (NS_E_DRM_MUST_REGISTER)?

 
Предыдущий Следующий
NS_E_DRM_UNABLE_TO_VERIFY_PROXIMITY NS_E_DRM_MUST_APPROVE

NS_E_DRM_MUST_REGISTER

Интерпретация решения безопасности

В 0xC00D28A5, NS_E_DRM_MUST_REGISTER фиксирует следующее: для приёмника отсутствует действительная запись в базе регистрации передатчика. NS_E_DRM_MUST_REGISTER поступает из WMDRM для сетевых устройств, чей автомат состояний реализует протокол передатчика и приёмника: регистрирует сетевое устройство воспроизведения, одобряет его, проверяет близость, открывает защищённый сеанс и перекодирует лицензированное содержимое для приёмника.

Чтобы подтвердить эту границу, а не делать вывод по диалоговому сообщению, выполните прямую проверку: найдите пару сертификата и серийного номера в базе регистрации. Штатное описание AllStat приведено выше; этот раздел посвящён состоянию объекта и данным, позволяющим отличить NS_E_DRM_MUST_REGISTER от соседних ошибок Windows Media.

Не теряйте идентичность объекта

Решение безопасности для NS_E_DRM_MUST_REGISTER зависит от версии компонента DRM, KID, подписи заголовка содержимого, цепочки и вышестоящей лицензии, состояния индивидуализации, регистрации устройств и локальной конфигурации. Сохраните KID и хэш заголовка, версии компонентов, состояние индивидуализации, идентификаторы цепочки лицензий и первый обратный вызов со сбоем, применительно к состоянию «требуется регистрация устройства».

Сравнение полезно только при сохранении установленного факта: для приёмника отсутствует действительная запись в базе регистрации передатчика.

От HRESULT к причине

  1. Сохраните NS_E_DRM_MUST_REGISTER и 0xC00D28A5 до очистки, перехода к резервному пути или смены контекста другим медиаэлементом.
  2. Свяжите NS_E_DRM_MUST_REGISTER с текущим объектом WMDRM для сетевых устройств и запрошенным действием.
  3. Выполните прямую проверку для NS_E_DRM_MUST_REGISTER: найдите пару сертификата и серийного номера в базе регистрации.
  4. Сравните сбой с заведомо исправным случаем, изменив только свойство, указанное этим условием: для приёмника отсутствует действительная запись в базе регистрации передатчика.
  5. Примените узкое исправление для NS_E_DRM_MUST_REGISTERобработайте запрос регистрации и создайте запись устройства.
  6. Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что NS_E_DRM_MUST_REGISTER не заменена другой ошибкой политики или доверия.

Как должна продвигаться операция

Документируя NS_E_DRM_MUST_REGISTER, зафиксируйте отклонённые входные данные и ожидаемое следующее состояние. Отклонение подтверждается поиском пары сертификата и серийного номера в базе регистрации; после этого устраните предпосылку: обработайте запрос регистрации и создайте запись устройства. Для NS_E_DRM_MUST_REGISTER, это различие не позволяет более позднему диалогу Player скрыть результат политики лицензии и сохраняет связь теста с исходным поколением объекта.

Сохраняйте узкую область диагностики

Для NS_E_DRM_MUST_REGISTER, установленный факт состоит в следующем: Для приёмника отсутствует действительная запись в базе регистрации передатчика. Для NS_E_DRM_MUST_REGISTERэтот факт сам по себе не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.

Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните NS_E_DRM_MUST_REGISTER как первый конкретный результат. Объект и операция, связанные с NS_E_DRM_MUST_REGISTER , обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.

Значения для сравнения

ПолеЗначение для NS_E_DRM_MUST_REGISTER
Временное состояниедоверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на NS_E_DRM_MUST_REGISTER
Результат нижнего уровнясамый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговой оболочкой NS_E_DRM_MUST_REGISTER
Владелецоперация, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с NS_E_DRM_MUST_REGISTER
Прямая проверканайдите пару сертификата и серийного номера в базе регистрации
Входные данные политикизапрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при NS_E_DRM_MUST_REGISTER

Отличайте от соседних результатов

РезультатПочему он указывает на другую причину
NS_E_DRM_DEVICE_LIMIT_REACHEDДостигнут предел числа зарегистрированных устройств
NS_E_DRM_UNABLE_TO_VERIFY_PROXIMITYобмен с ограничением по времени не подтвердил, что приёмник находится достаточно близко к передатчику
NS_E_DRM_MUST_APPROVEОперацию DRM необходимо явно подтвердить

Исправление и проверка

Восстановление должно изменить отклонённую предпосылку; для этого обработайте запрос регистрации и создайте запись устройства. Для NS_E_DRM_MUST_REGISTERуспех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.

  • Данные для NS_E_DRM_MUST_REGISTER легко уничтожить; не удаляйте всю базу регистрации устройств до сохранения сбойной записи устройства и цепочки сертификатов: иначе исчезает различие между сбоями регистрации, одобрения, проверки и сеанса.
  • Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления NS_E_DRM_MUST_REGISTER; это обходит решение, а не исправляет его входные данные.
  • Сохраните один сбойный и один исправленный артефакт, чтобы устранение NS_E_DRM_MUST_REGISTER можно было проверять при регрессионном тестировании.

Критерий завершения

В итоговом тесте NS_E_DRM_MUST_REGISTER по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай NS_E_DRM_MUST_REGISTER разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.

Технические ссылки для NS_E_DRM_MUST_REGISTER


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