Что означает код HRESULT 0xC00D275B (NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT)?

 
Предыдущий Следующий
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT NS_E_DRM_BUFFER_TOO_SMALL

NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT

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

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

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

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

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

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

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

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

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

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

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

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

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

РезультатДругая граница
NS_E_DRM_BUFFER_TOO_SMALLПредоставленный вызывающей стороной выходной буфер не вмещает запрошенное значение DRM при воспроизведении невозможности создать объект данных состояния.
NS_E_DRM_UNSUPPORTED_PROPERTYВыбранный объект или версия DRM не реализует запрошенное свойство в рабочем процессе невозможности создать объект данных состояния.
NS_E_DRM_STORE_NOTALLSTOREDНекоторые лицензии не удалось сохранить на пути невозможности создать объект данных состояния.

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

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

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

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

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

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

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


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