Что означает код HRESULT 0xC00D11A7 (NS_E_WMP_WMDM_LICENSE_EXPIRED)?

 
Предыдущий Следующий
NS_E_WMP_WMDM_LICENSE_NOTEXIST NS_E_WMP_WMDM_BUSY

NS_E_WMP_WMDM_LICENSE_EXPIRED

Первый надёжно установленный факт

Условие, закодированное в 0xC00D11A7 не является общим сбоем воспроизведения: истёк срок права передачи на устройство, даже если локальное воспроизведение или другое действие остаётся разрешённым. NS_E_WMP_WMDM_LICENSE_EXPIRED формируется подсистемой защищённой передачи на портативные устройства, где Windows Media Player и Windows Media Device Manager координируют приложение, поставщик защищённого содержимого (secure content provider) и поставщик обслуживания устройства (device service provider) при синхронизации защищённого файла.

Решающая проверка — отдельно от прав воспроизведения проверить срок действия права copy/sync. Штатное описание AllStat приведено выше; здесь важны состояние объектов и признаки, позволяющие отделить NS_E_WMP_WMDM_LICENSE_EXPIRED от соседних ошибок Windows Media.

Транзакция, которую нужно восстановить

Решение зависит от идентичности портативного устройства, защищённого канала WMDM, сертификата передачи, флагов DRM-возможностей устройства, защищённых часов, лицензии содержимого и транзакции передачи. Для одной и той же попытки сохраните firmware и provider устройства, флаги capabilities/status WMDM, результат аутентификации защищённого канала, права синхронизации и состояние завершения передачи.

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

Воспроизведение на ответственном уровне

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

Контролируемая проверка до и после

Полезная модель сбоя для этого результата связывает причину и восстановление: право передачи на устройство истекло. Проверьте эту модель, отдельно проверив срок действия права copy/sync, затем внесите минимальное изменение — обновите право передачи через поставщика содержимого. для этого результата это различие не даёт более позднему диалогу проигрывателя скрыть результат политики лицензии и сохраняет проверку привязанной к исходному поколению объекта.

Чего результат не доказывает

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

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

Данные инцидента

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

Не объединяйте эти сбои

РезультатПочему он указывает на другую причину
NS_E_WMP_WMDM_NOTCERTIFIEDв тракте устройства отсутствует сертификация, требуемая для получения защищённого содержимого
NS_E_WMP_WMDM_LICENSE_NOTEXISTу содержимого нет лицензии, разрешающей передачу на это переносное устройство
NS_E_WMP_WMDM_BUSYтракт передачи на переносное устройство сейчас занят другим клиентом или операцией

Восстановление требуемого состояния

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

  • Широкий сброс не является первым действием Сохраните исходные данные и проверьте условие «WMDM вернул ошибку DRM при подготовке или передаче защищённого элемента»; сохраните исходный WMDM DRM HRESULT, идентификатор содержимого, запрошенное действие и идентификатор устройства до общего сопоставления с ошибкой портативного устройства.
  • Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления этой ошибки; это обходит решение, а не исправляет его входные данные.
  • Сохраните один сбойный и один исправленный артефакт, чтобы устранение этой ошибки можно было проверять при регрессионном тестировании.

Сохраните диагностический пример

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

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


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