Что означает код HRESULT 0xC00D28A7 (NS_E_DRM_MUST_REVALIDATE)?

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

NS_E_DRM_MUST_REVALIDATE

Значение в активном рабочем процессе

Первый практически значимый факт для NS_E_DRM_MUST_REVALIDATE состоит в следующем: регистрация приёмника существует, но проверка близости устарела или больше неприемлема. Поэтому диагностика NS_E_DRM_MUST_REVALIDATE поэтому начинается на уровне Windows Media DRM для сетевых устройств — слой протокола передатчика и приёмника, который регистрирует сетевое устройство воспроизведения, подтверждает его, проверяет близость, открывает защищённый сеанс и преобразует лицензированное содержимое для приёмника.

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

Сохраните исходное поколение

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

Эти данные важны, поскольку отклонённое условие состоит именно в следующем: регистрация приёмника существует, но проверка близости устарела или больше неприемлема.

Модель сбоя

Сравнение состояния до и после для NS_E_DRM_MUST_REVALIDATE имеет одну контролируемую переменную. До исправления регистрация приёмника существует, но её проверка близости устарела или больше неприемлема; после исправления тот же процесс может выполнить новый обмен проверки близости перед открытием содержимого. Результат NS_E_DRM_MUST_REVALIDATE должно сохранять идентичность содержимого и устройства, чтобы успех нельзя было объяснить проверкой другого объекта.

Диагностический перечень

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

Подтверждение границы

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

Что остаётся неизвестным

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

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

Сравнение соседних состояний

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

Практические действия

Исправьте компонент, которому принадлежит проверка: выполните новый обмен проверки близости перед открытием содержимого. Для NS_E_DRM_MUST_REVALIDATEуспех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.

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

Подтверждение того же рабочего процесса

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

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


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