Что означает код HRESULT 0xC00D2733 (NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT)?

 
Предыдущий Следующий
NS_E_DRM_UNABLE_TO_CREATE_ENCRYPT_OBJECT NS_E_DRM_UNABLE_TO_CREATE_PROPERTIES_OBJECT

NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT

Как классифицировать этот результат

Символьный результат NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT сужает значение 0xC00D2733 к заголовку защищённого содержимого, ключам и криптографической обработке на пути невозможности создать объект расшифрования. На практике среда DRM не может создать объект расшифрования, необходимый для этой операции; формирующий слой — это путь, который разбирает заголовок DRM, выбирает KID и алгоритм, проверяет подписанные данные, создаёт криптографические объекты и шифрует или расшифровывает защищённые медиаобразцы при трассировке невозможности создать объект расшифрования.

Для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT, встроенное сообщение кратко описывает видимый пользователю результат, а символьная фраза «невозможно создать объект расшифрования» сохраняет точную границу WMDRM для диагностики. Для этого кода подтверждением служит фиксация вызова фабрики или интерфейса, версий среды выполнения и stub-библиотеки, состояния внешнего объекта и первого внутреннего HRESULT в рабочем процессе создания объекта расшифрования.

Как доказать условие

  1. Найдите самый ранний возврат API, обратный вызов или событие, содержащее NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT и 0xC00D2733.
  2. Для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT, определите точное поколение объекта содержимого, лицензии, хранилища, устройства или миграции, участвовавшее в ошибке «невозможно создать объект расшифрования».
  3. Для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT, определите, возникла ли ошибка «невозможно создать объект расшифрования» до сетевого обмена, во время проверки ответа, при применении политики или при фиксации защищённого состояния.
  4. Выполните проверку, специфичную для кода: зафиксируйте вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT для границы ошибки создания объекта расшифрования.
  5. Внесите одно узкое исправление — устраните проблему компонента, версии или состояния инициализации и создайте новый объект расшифрования — затем повторите ту же формирующую операцию при диагностике ошибки создания объекта расшифрования.

Какой компонент владеет сбоем

Не сводите NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT в общую ошибку DRM для этого результата невозможности создать объект расшифрования. Повреждённый заголовок содержимого, недопустимый XML-документ лицензии и ошибка расшифрования возникают на разных границах и требуют замены разных артефактов при воспроизведении невозможности создать объект расшифрования. Второе важное правило: в материалах поддержки защищённое содержимое следует идентифицировать хешами и KID; ключи содержимого и полные блоки лицензий раскрывать не следует в рабочем процессе невозможности создать объект расшифрования.

Диагностические данные, разделяющие причины

Зафиксируйте первое появление NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT появление до того, как автоматический повтор, завершение проигрывателя, восстановление хранилища или повторное получение лицензии изменят состояние, на пути ошибки создания объекта расшифрования. Минимальный полезный набор данных включает:

  • Подтверждение для этого кода: зафиксировать вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT при трассировке ошибки создания объекта расшифрования.
  • Защищённая идентичность: KID, идентификатор лицензии и результат выбора ключа для границы ошибка создания объекта расшифрования.
  • Состояние операции: алгоритм, длину ключа и тип объекта расшифрования при диагностике ошибка создания объекта расшифрования.
  • Хранилище или транспорт: состояние проверки подписи или сертификата в инциденте ошибка создания объекта расшифрования.
  • Контекст безопасности: смещение первого сбойного образца, а не только сообщение уровня проигрывателя, для этого результата невозможности создать объект расшифрования.
  • Точка корреляции: байты заголовка ASF/DRM и заявленную версию при воспроизведении невозможности создать объект расшифрования.

При расследовании ошибки «невозможно создать объект расшифрования» по возможности используйте KID, идентификаторы лицензий, хеши, отпечатки сертификатов, размеры и временные метки. При диагностике NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT, не помещайте ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные медиаданные в обычные журналы в рабочем процессе создания объекта расшифрования.

Что должно изменить поддерживаемое исправление

Для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT, направление исправления — устранить проблему компонента, версии или состояния инициализации и создать новый объект расшифрования в соответствующем инциденте. Сохраняйте исходный материал содержимого или заголовка, хранилища либо миграции для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT до тех пор, пока операция «невозможно создать объект расшифрования» не завершится успешно и результат не сохранится после создания нового объекта приложения или требуемого перезапуска.

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

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

РезультатДругая граница
NS_E_DRM_UNABLE_TO_CREATE_ENCRYPT_OBJECTСреда DRM не может создать объект шифрования, необходимый для этой операции, при воспроизведении невозможности создать объект расшифрования.
NS_E_DRM_GET_CONTENTSTRING_ERRORКлиент не может получить строку или данные заголовка DRM из медиаобъекта в рабочем процессе невозможности создать объект расшифрования.
NS_E_DRM_LICENSE_INVALID_XMLЛицензия повреждена на пути невозможности создать объект расшифрования. Получите новую лицензию при трассировке невозможности создать объект расшифрования.

Несколько значений могут сопровождать условие «невозможно создать объект расшифрования» в одном инциденте. Упорядочьте NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT цепочку событий по времени и отдавайте приоритет первому коду, сформированному на самой низкой конкретной границе, а не более поздней сводке проигрывателя, в рабочем процессе создания объекта расшифрования.

Как убедиться, что исправление действительно

После исправления пересоздайте объект WMDRM и выполните минимальный пример для NS_E_DRM_UNABLE_TO_CREATE_DECRYPT_OBJECT. Убедитесь, что 0xC00D2733 больше не возникает, целевое действие с лицензией завершается, и вместо него не появляется предупреждение хранилища, сертификата, часов или миграции при воспроизведении ошибки создания объекта расшифрования.

За что отвечал бы отсутствующий объект

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

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

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


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