Что означает код HRESULT 0xC00D2731 (NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT)?

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

NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT

Что именно изолирует этот HRESULT

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

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

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

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

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

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

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

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

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

Поддерживаемое исправление для NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT узкое: исправьте компонент, версию или состояние инициализации и создайте новый объект индивидуализации для этого результата невозможности создать объект индивидуализации. После исправления NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT, повторно откройте или создайте объект, которому принадлежало состояние «ошибка создания объекта индивидуализации», чтобы кэшированное состояние неудачного поколения не было принято за результат исправления.

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

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

РезультатДругая граница
NS_E_DRM_UNABLE_TO_CREATE_LICENSE_OBJECTСреда DRM не может создать объект индивидуализации, необходимый для этой операции, при диагностике ошибка создания объекта индивидуализации.
NS_E_DRM_PARAMETERS_MISMATCHEDСвязанные параметры DRM описывают другое состояние содержимого, лицензии, операции или объекта в инциденте с невозможностью создать объект индивидуализации.
NS_E_DRM_UNABLE_TO_CREATE_PROPERTIES_OBJECTСреда DRM не может создать объект индивидуализации, необходимый для этой операции, для результата ошибка создания объекта индивидуализации.

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

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

Корректный регрессионный тест для NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT имеет два тестовых варианта: один намеренно создаёт условие «среда DRM не может создать объект индивидуализации, необходимый для этой операции», второй применяет целевое исправление в рабочем процессе невозможности создать объект индивидуализации. Для NS_E_DRM_UNABLE_TO_CREATE_INDI_OBJECT, сравните порядок обратных вызовов, выбранную лицензию или KID, итоговое решение о правах и состояние сохранения; исчезновение диалога «ошибка создания объекта индивидуализации» само по себе не является подтверждением.

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

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

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

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


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