Что означает код HRESULT 0xC00D27DA (NS_E_DRM_LICENSE_APPSECLOW)?

 
Предыдущий Следующий
NS_E_DRM_LICENSE_NOTENABLED NS_E_DRM_STORE_NEEDINDI

NS_E_DRM_LICENSE_APPSECLOW

Где остановилась операция

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

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

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

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

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

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

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

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

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

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

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

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

Показательный случай: Лицензия действительна, но запрещает воспроизведение в старой сборке приложения.

Чего не следует делать сначала для состояния «уровень безопасности приложения ниже требований лицензии»

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

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

РезультатДругая граница
NS_E_DRM_LICENSE_NOTENABLEDЛицензия не разрешает запрошенное действие, при диагностике состояния «уровень безопасности приложения ниже требований лицензии».
NS_E_DRM_STORE_NEEDINDIДля сохранения лицензии требуется индивидуализация, при диагностике состояния «уровень безопасности приложения ниже требований лицензии».
NS_E_DRM_LICENSE_EXPIREDСрок действия лицензии истёк, на границе состояния «уровень безопасности приложения ниже требований лицензии».

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

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

Корректный регрессионный тест для NS_E_DRM_LICENSE_APPSECLOW содержит два сценария: один намеренно вызывает попытку защищённого действия до проверки разрешения лицензии, второй применяет целевое исправление. Для NS_E_DRM_LICENSE_APPSECLOWсравните порядок обратных вызовов, выбранную лицензию и KID, итоговое решение о правах и сохранённое состояние; исчезновение одного диалогового окна не доказывает исправление.

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

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

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


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