Что означает код HRESULT 0xC00D2769 (NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED)?

 
Предыдущий Следующий
NS_E_DRM_OPERATION_CANCELED NS_E_DRM_UNABLE_TO_CREATE_PLAYLIST_OBJECT

NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED

Граница WMDRM, на которой возник сбой

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

Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, встроенное сообщение описывает видимый пользователю результат, а символьная фраза «ограничения не получены» сохраняет точную границу WMDRM для диагностики. Для подтверждения кода запишите точный API, состояние объекта, идентификатор входных данных и первый низкоуровневый результат, применительно к состоянию «ограничения не получены».

Место в рабочем процессе DRM

Контекст NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED имеет значение: ограничения вывода необходимо запросить и применить до операции; драйвер может воспроизводить обычные мультимедиа и при этом не работать в защищённом пути при трассировке состояния «ограничения не получены». Кроме того, устаревший Secure Audio Path и более новые механизмы защищённых мультимедиа используют доверенные компоненты, поэтому непроверенный или отозванный компонент не исправляется заменой файла содержимого на границе состояния «ограничения не получены».

Состояние, которое следует сохранить до повтора

Зафиксируйте первое появление NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED до того, как автоматический повтор, закрытие проигрывателя, восстановление хранилища или повторное получение лицензии изменит состояние, при диагностике состояния «ограничения не получены». Минимально полезная запись содержит:

  • Подтверждение для этого кода: зафиксируйте точный API, состояние объекта, идентичность входных данных и первый низкоуровневый результат.
  • Защищённая идентичность: сертификат приложения и состояние его отзыва, при диагностике состояния «ограничения не получены».
  • Состояние операции: результат запроса ограничений до начала воспроизведения или записи, для результата «ограничения не получены».
  • Хранилище или транспорт: событие обновления защищённого тракта или проверки компонента, при диагностике состояния «ограничения не получены».
  • Контекст безопасности: запрошенный выход и требуемый уровень защиты, в процессе обработки состояния «ограничения не получены».
  • Точка корреляции: идентичность, подпись и версию аудио- или видеодрайвера, при диагностике состояния «ограничения не получены».

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

Полезный порядок расследования

  1. Найдите самый ранний возврат API, обратный вызов или событие, содержащее NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED и 0xC00D2769.
  2. Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, определите точное поколение объекта содержимого, лицензии, хранилища, устройства или миграции, участвующее в «ограничения не получены».
  3. Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, определите, возникло ли «ограничения не получены» до сетевого обмена, при проверке ответа, во время применения политики или при фиксации защищённого состояния.
  4. Выполните проверку именно для этого кода: запишите точный API, состояние объекта, идентичность входных данных и первый низкоуровневый результат, применительно к состоянию «ограничения не получены».
  5. Внесите одно точечное исправление — запросите и примените ограничения вывода до защищённой операции — и повторите ту же операцию, сформировавшую ошибку, применительно к состоянию «ограничения не получены».

Узко направленное исправление

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

Показательный случай: Приложение достигает пути «ограничения не получены» и получает этот HRESULT до завершения мультимедийной операции более высокого уровня.

Чего не следует делать сначала для состояния «ограничения не получены»

  • Не трактуйте ошибку политики вывода как доказательство повреждения самой лицензии в инциденте «ограничения не получены». Это изменяет доказательства, не показывая, почему NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED .
  • Не отключайте аутентификацию драйвера или приложения для принудительного защищённого воспроизведения для результата «ограничения не получены». Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, такой подход может создать дополнительную проблему хранилища, идентификации или политики, при воспроизведении состояния «ограничения не получены».
  • Не сводите NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED до фразы «ошибка DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентификатор объекта, в процессе обработки состояния «ограничения не получены».

Соседние результаты с другим смыслом

РезультатДругая граница
NS_E_DRM_DEBUGGING_NOT_ALLOWEDЗащищённая операция обнаруживает, что процесс выполняется под отладчиком, в пути «ограничения не получены».
NS_E_DRM_INVALID_APPCERTСертификат приложения DRM имеет неверный формат, не соответствует ожидаемому или не проходит проверку при трассировке состояния «ограничения не получены».
NS_E_DRM_APPCERT_REVOKEDОперация проверки отозванного сертификата приложения завершилась ошибкой на своей документированной границе DRM для состояния «ограничения не получены».

Одно условие «ограничения не получены» может сопровождаться несколькими значениями. Упорядочьте цепочку событий NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED по временным меткам и отдавайте приоритет первому коду, полученному на самой низкой конкретной границе, а не более позднему сводному результату уровня Player, при диагностике состояния «ограничения не получены».

Проверка после исправления

После исправления пересоздайте объект WMDRM и выполните минимальный пример для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. Убедитесь, что 0xC00D2769 больше не возникает, требуемое действие лицензии завершается успешно и вместо него не появляется предупреждение хранилища, сертификата, часов или миграции в инциденте «ограничения не получены».

Практическое примечание для этого кода

Символьная фраза «ограничения не получены» является важным ключом поиска и телеметрии для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. Храните её рядом с точным значением 0xC00D2769; официальное сообщение «С лицензией связаны ограничения вывода, для результата «ограничения не получены». Лицензию нельзя использовать, пока эти ограничения не будут запрошены» полезно пользователю, но само по себе не определяет формирующий API, поколение объекта или защищённую идентичность при диагностике состояния «ограничения не получены».

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


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