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