| Предыдущий | Следующий |
| 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 в рабочем процессе создания объекта данных состояния.
Как доказать условие
- Найдите самый ранний возврат API, обратный вызов или событие, содержащее
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECTи0xC00D275B. - Для
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT, определите точное поколение объекта содержимого, лицензии, хранилища, устройства или миграции, участвовавшее в ошибке «невозможно создать объект данных состояния». - Для
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT, определите, возникла ли ошибка «невозможно создать объект данных состояния» до сетевого обмена, во время проверки ответа, при применении политики или при фиксации защищённого состояния. - Выполните проверку, специфичную для кода: зафиксируйте вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT для границы ошибки создания объекта данных состояния.
- Внесите одно узкое исправление — устраните проблему компонента, версии или состояния инициализации и создайте новый объект данных состояния — затем повторите ту же формирующую операцию при диагностике ошибки создания объекта данных состояния.
Диагностические данные, разделяющие причины
Зафиксируйте первое появление 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 объект данных состояния обычно представляет защищённое постоянное состояние, используемое рабочими процессами лицензирования и безопасности, при диагностике невозможности создать объект данных состояния. Сбой создания объекта происходит до передачи этой ответственности рабочему интерфейсу, поэтому более поздние сообщения проигрывателя или сервера вторичны в инциденте с невозможностью создать объект данных состояния.
Именно для этого объекта сохраните версию данных состояния, производителя, привязку к машине и поколение постоянного состояния для этого результата невозможности создать объект данных состояния. Успешное исправление должно позволить создать новый объект данных состояния и выполнить его первую реальную операцию, а не только заставить фабричный вызов вернуть другую общую ошибку при воспроизведении невозможности создать объект данных состояния.
Технические ссылки
- Интерфейсы клиента DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT. - Руководство по программированию клиента DRM — документация платформы, используемая для отличия
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECTот соседних результатов. - Получение требуемой библиотеки DRM — официальный контекст Windows Media DRM для
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT. - Коды ошибок Windows Media DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_UNABLE_TO_CREATE_STATE_DATA_OBJECT.
Нужно найти другой код? Найти другой код состояния или ошибки.