Что означает код HRESULT 0xC00D11DA (NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE)?

 
Предыдущий Следующий
NS_E_WMP_BURN_DISC_OVERFLOW NS_E_WMP_DRM_NO_SECURE_CLOCK

NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE

Определите нарушенный контракт

NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE следует сохранять, когда оболочка проигрывателя не смогла свести сбой проверки прав к более конкретному публичному результату. Для этого результата владельцем является подсистема обработки прав Windows Media Player; её рабочий контракт охватывает открытие защищённых медиафайлов, проверку состояния локальной лицензии, фоновое или интерактивное получение прав, проверку компонентов DRM и применение ограничений на воспроизведение, запись и синхронизацию.

Наиболее убедительное подтверждение — сохранить более ранний низкоуровневый callback DRM и запрос состояния лицензии, предшествовавшие этому коду оболочки. Стандартное описание AllStat уже приведено выше; здесь рассматриваются состояние объекта и данные, необходимые, чтобы отличить этот результат от соседних ошибок Windows Media.

Обоснованная проверка

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

Свидетельства одной операции

Не отделяйте NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE от состояния ответственного компонента: KID и заголовка содержимого, записи хранилища лицензий, запрошенного действия, URL получения прав, контекста пользователя/хранилища, защищённых часов и поколения компонентов DRM. Диагностическая запись для NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE — KID содержимого, запрошенное действие, запрос состояния лицензии, последовательность обратных вызовов получения, категория ответа сервера и первый нижележащий DRM HRESULT.

Эти данные важны потому, что установлен именно общий результат оболочки, которая не смогла преобразовать сбой проверки прав в более конкретный публичный код.

Смоделируйте отклонённую предпосылку

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

Данные одной попытки

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

Другие границы того же семейства

РезультатПочему он указывает на другую причину
NS_E_WMP_DRM_INVALID_SIGобязательный компонент DRM или защищённый объект не проходит проверку подписи в тракте проигрывателя
NS_E_WMP_DRM_CANNOT_RESTOREслужба восстановления проигрывателя отклонила очередное восстановление из-за ограничения частоты или политики
NS_E_WMP_DRM_NO_SECURE_CLOCKзависимой от устройства лицензии требуется доверенное время, но у целевого устройства нет пригодного состояния защищённых часов

Избегайте ложного вывода

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

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

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

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

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

Проверяйте, не меняя исходный вопрос

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

Технические ссылки для этого результата


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