| Предыдущий | Следующий |
| NS_E_DRM_LICENSE_NOTACQUIRED | NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT |
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT
Точное условие DRM
0xC00D275A соответствует NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT. Рассматривайте его как результат обработки заголовка защищённого содержимого, ключей и криптографических данных: среда DRM не может создать объект кодирования, необходимый для этой операции. Сохранение точной границы «ошибка создания объекта кодирования» для NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT не позволяет более позднему сообщению воспроизведения скрыть исходную ошибку DRM в рабочем процессе ошибка создания объекта кодирования.
Для NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, встроенное сообщение кратко описывает видимый пользователю результат, а символьная фраза «невозможно создать объект кодирования» сохраняет точную границу WMDRM для диагностики. Для этого кода подтверждением служит фиксация вызова фабрики или интерфейса, версий среды выполнения и stub-библиотеки, состояния внешнего объекта и первого внутреннего HRESULT в рабочем процессе создания объекта кодирования.
Место в рабочем процессе DRM
Контекст NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT важен: повреждённый заголовок содержимого, недопустимый XML-документ лицензии и ошибка расшифрования возникают на разных границах и требуют замены разных артефактов при трассировке невозможности создать объект кодирования. Кроме того, в материалах поддержки защищённое содержимое следует идентифицировать хешами и KID; ключи содержимого и полные блоки лицензий раскрывать не следует для границы невозможности создать объект кодирования.
Полезный порядок расследования
- Сохраните
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, вызывающий интерфейс и первый низкоуровневый статус до его замены оболочкой при диагностике ошибка создания объекта кодирования. - Сопоставьте
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECTс одним KID или идентификатором лицензии, хешем содержимого, сертификатом устройства либо идентификатором операции миграции для пути «ошибка создания объекта кодирования». - Для
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, восстановите переход состояния непосредственно перед «ошибка создания объекта кодирования», а не начинайте с итогового диалога проигрывателя. - Подтвердите границу, убедившись, что можно зафиксировать вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT в инциденте ошибка создания объекта кодирования.
- После устранения проблемы компонента, версии или состояния инициализации и создания нового объекта кодирования проверьте как запрошенное право, так и итоговое состояние хранилища или устройства для результата ошибка создания объекта кодирования.
Состояние, которое следует сохранить до повтора
Зафиксируйте первое появление NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT появление до того, как автоматический повтор, завершение проигрывателя, восстановление хранилища или повторное получение лицензии изменят состояние, на пути ошибки создания объекта кодирования. Минимальный полезный набор данных включает:
- Подтверждение для этого кода: зафиксировать вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT при трассировке ошибки создания объекта кодирования.
- Защищённая идентичность: смещение первого сбойного образца, а не только сообщение уровня проигрывателя, на пути невозможности создать объект кодирования.
- Состояние операции: байты заголовка ASF/DRM и заявленную версию при трассировке невозможности создать объект кодирования.
- Хранилище или транспорт: KID, идентификатор лицензии и результат выбора ключа для границы ошибка создания объекта кодирования.
- Контекст безопасности: алгоритм, длину ключа и тип объекта кодирования при диагностике ошибка создания объекта кодирования.
- Точка корреляции: состояние проверки подписи или сертификата в инциденте ошибка создания объекта кодирования.
При расследовании ошибки «невозможно создать объект кодирования» по возможности используйте KID, идентификаторы лицензий, хеши, отпечатки сертификатов, размеры и временные метки. При диагностике NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, не помещайте ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные медиаданные в обычные журналы в рабочем процессе создания объекта кодирования.
Узко направленное исправление
Устраняйте NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT на формирующей границе: устраните проблему компонента, версии или состояния инициализации и создайте новый объект кодирования для границы ошибка создания объекта кодирования. Для NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, переустановка проигрывателя, перезагрузка или новый запрос лицензии полезны только тогда, когда изменяют границу «ошибка создания объекта кодирования» и это можно подтвердить исходными доказательствами.
Показательный случай: Приложение доходит до этапа создания объекта кодирования, но создание объекта завершается неудачей до начала какой-либо работы с содержимым или сервером, для результата ошибки создания объекта кодирования.
Соседние результаты с другим смыслом
| Результат | Другая граница |
|---|---|
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT | Среда DRM не может создать объект кодирования, необходимый для этой операции, в инциденте ошибка создания объекта кодирования. |
NS_E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT | Среда DRM не может создать объект кодирования, необходимый для этой операции, для результата ошибка создания объекта кодирования. |
NS_E_DRM_INVALID_DATA | Обнаружены недопустимые или повреждённые данные при воспроизведении невозможности создать объект кодирования. |
Несколько значений могут сопровождать условие «невозможно создать объект кодирования» в одном инциденте. Упорядочьте NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT цепочку событий по времени и отдавайте приоритет первому коду, сформированному на самой низкой конкретной границе, а не более поздней сводке проигрывателя, в рабочем процессе создания объекта кодирования.
Проверка после исправления
Повторите операцию, первоначально вернувшую NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT. Для NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, зафиксируйте точный HRESULT в формирующем API в тесте с ошибкой «ошибка создания объекта кодирования»; затем измените только решающее предусловие и подтвердите, что исправленный запуск завершается без подмены соседним результатом DRM. После исправления NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT, проверьте запрошенное действие и итоговое состояние хранилища лицензий, защищённых часов, устройства или миграции, относящееся к «ошибка создания объекта кодирования».
За что отвечал бы отсутствующий объект
для значения NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT объект кодирования обычно выполняет настроенный этап обработки защищённого содержимого для медиаобразцов на пути невозможности создать объект кодирования. Сбой создания объекта происходит до передачи этой ответственности рабочему интерфейсу, поэтому более поздние сообщения проигрывателя или сервера вторичны при трассировке невозможности создать объект кодирования.
Именно для этого объекта сохраните режим кодирования, размеры входных и выходных данных, идентичность заголовка и позицию образца для границы невозможности создать объект кодирования. Успешное исправление должно позволить создать новый объект кодирования и выполнить его первую реальную операцию, а не только заставить фабричный вызов вернуть другую общую ошибку при диагностике невозможности создать объект кодирования.
Технические ссылки
- Обзор Windows Media DRM — документация платформы, используемая для отличия
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECTот соседних результатов. - Защита DRM и распространение лицензий — официальный контекст Windows Media DRM для
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT. - Версии DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT. - Коды ошибок Windows Media DRM — документация платформы, используемая для отличия
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECTот соседних результатов.
Нужно найти другой код? Найти другой код состояния или ошибки.
