| Предыдущий | Следующий |
| NS_E_WMP_IMAPI2_ERASE_DEVICE_BUSY | NS_E_WMP_DRM_NO_DEVICE_CERT |
NS_E_WMP_DRM_COMPONENT_FAILURE
Что установила вызывающая сторона
Чтение NS_E_WMP_DRM_COMPONENT_FAILURE на границе объекта: после выбора проигрывателем тракта защищённого содержимого внутренне отказал компонент DRM. Подсистема, формирующая это подсистема обработки прав Windows Media Player, а не медиадекодер; она открывает защищённые медиафайлы, проверяет состояние локальной лицензии, выполняет фоновое или интерактивное получение прав, проверяет компоненты DRM и применяет ограничения на воспроизведение, запись и синхронизацию.
Используйте саму неудачную операцию, чтобы собрать версию компонента, подпись модуля, запись журнала событий и первый вложенный HRESULT. Стандартное описание AllStat уже приведено выше; здесь рассматриваются состояние объекта и данные, необходимые, чтобы отличить NS_E_WMP_DRM_COMPONENT_FAILURE от соседних ошибок Windows Media.
Состояние, которое необходимо сопоставлять
Связанный с этим результатом граф объектов включает KID и заголовок содержимого, запись хранилища лицензий, запрошенное действие, URL получения лицензии, контекст пользователя и хранилища, защищённые часы и версию компонентов DRM. В трассировке сохраняйте KID содержимого, запрошенное действие, результат запроса состояния лицензии, последовательность callback при получении, категорию ответа сервера и первый нижележащий HRESULT DRM.
Это наблюдение отличает результат от повреждения файла: сбой произошёл внутри компонента DRM уже после выбора тракта защищённого содержимого.
Переход состояния
NS_E_WMP_DRM_COMPONENT_FAILURE следует рассматривать как невыполненное предварительное условие, а не произвольную медиаошибку. Подтвердите его, собрав версию компонента, подпись модуля, запись журнала событий и первый вложенный HRESULT; устраняйте причину восстановлением или обновлением конкретного компонента DRM, а не сбросом несвязанных настроек проигрывателя. для этого результата используйте заведомо исправный аналог только как контрольный случай; не заменяйте сбойный материал до фиксации его идентификаторов и хэшей.
Состояние, которое следует сохранить до повтора
| Поле | Значение для этого результата |
|---|---|
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговым HRESULT |
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с этим результатом |
| Прямая проверка | соберите версию компонента, подпись модуля, запись журнала событий и первый вложенный HRESULT |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при получении этого результата |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на результат |
Похожие симптомы не означают одинаковую причину
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_WMP_DRM_NO_RIGHTS | ни одно из доступных прав использования медиа не разрешает запрошенную операцию проигрывателя |
NS_E_WMP_DRM_INDIV_FAILED | индивидуализация компонента безопасности DRM проигрывателя не завершилась успешно |
NS_E_WMP_DRM_NO_DEVICE_CERT | целевое переносное устройство не предоставило сертификат, пригодный для защищённой передачи |
Не приписывайте HRESULT лишний смысл
Для этого результата установленный факт состоит в том, что компонент DRM внутренне отказал после выбора проигрывателем тракта защищённого содержимого. для этого результата сам по себе этот факт не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните этот HRESULT как первый конкретный результат. Объект и операция, связанные с этим HRESULT, обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Локализация сбоя
- Сохраните
NS_E_WMP_DRM_COMPONENT_FAILUREи0xC00D11E2до очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Сравните сбой с заведомо исправным случаем, изменив только условие, относящееся к отказавшему компоненту DRM после выбора защищённого тракта.
- Примените узкое исправление для этого результата: восстановите или обновите конкретный компонент DRM вместо сброса несвязанных настроек проигрывателя.
- Свяжите этот HRESULT с его текущим объектом обработки прав Windows Media Player и запрошенным действием.
- Выполните прямую проверку для этого результата: соберите версию компонента, подпись модуля, запись журнала событий и первый вложенный HRESULT.
- Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что исходная ошибка не заменена другой ошибкой политики или доверия.
Фактическое исправление
Исправляйте этот слой непосредственно: восстановите или обновите конкретный компонент DRM вместо сброса несвязанных настроек проигрывателя. для этого результата успех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- Широкий сброс не является первым действием для этого результата; не сбрасывайте локальное хранилище DRM до фиксации KID содержимого и результата проверки лицензии: сброс может превратить точную ошибку прав или подписи в общий случай отсутствующей лицензии.
- Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления этой ошибки; это обходит решение, а не исправляет его входные данные.
- Сохраните один сбойный и один исправленный артефакт, чтобы устранение этой ошибки можно было проверять при регрессионном тестировании.
Подтверждение устойчивости исправления
В итоговом тесте NS_E_WMP_DRM_COMPONENT_FAILURE по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай считается разрешённым только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки
- Обзор Windows Media DRM — документирует границу протокола или API, связанную с этим результатом.
- Получение лицензий — описывает нормативный рабочий процесс, относящийся к этому случаю.
- Лицензии и локальное хранилище лицензий — перечисляет переходы безопасности и состояния, используемые при интерпретации этого результата.
- Коды ошибок Windows Media Format SDK — определяет объекты платформы, используемые при диагностике этого результата.
Нужно найти другой код? Найти другой код состояния или ошибки.