Что означает код HRESULT 0xC00D2784 (NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT)?

 
Предыдущий Следующий
NS_E_DRM_DATASTORE_CORRUPT NS_E_DRM_STUBLIB_REQUIRED

NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT

Точное условие DRM

0xC00D2784 соответствует NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT. Рассматривайте его как результат контракта API клиента Windows Media DRM и жизненного цикла объектов: среда DRM не может создать объект хранилища в памяти, необходимый для этой операции. Сохранение точной границы «ошибка создания объекта хранилища в памяти» для NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT не позволяет более позднему сообщению воспроизведения скрыть исходную ошибку DRM в рабочем процессе ошибка создания объекта хранилища в памяти.

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

Место в рабочем процессе DRM

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

Полезный порядок расследования

  1. Сохраните NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT, вызывающий интерфейс и первый низкоуровневый статус до его замены оболочкой при диагностике ошибка создания объекта хранилища в памяти.
  2. Сопоставьте NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT с одним KID или идентификатором лицензии, хешем содержимого, сертификатом устройства либо идентификатором операции миграции для пути «ошибка создания объекта хранилища в памяти».
  3. Для NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT, восстановите переход состояния непосредственно перед «ошибка создания объекта хранилища в памяти», а не начинайте с итогового диалога проигрывателя.
  4. Подтвердите границу, убедившись, что можно зафиксировать вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT в инциденте ошибка создания объекта хранилища в памяти.
  5. После устранения проблемы компонента, версии или состояния инициализации и создания нового объекта хранилища в памяти проверьте как запрошенное право, так и итоговое состояние хранилища или устройства для результата ошибка создания объекта хранилища в памяти.

Состояние, которое следует сохранить до повтора

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

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

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

Узко направленное исправление

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

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

Соседние результаты с другим смыслом

РезультатДругая граница
NS_E_DRM_STUBLIB_REQUIREDПриложение не предоставило идентичность требуемой stub-библиотеки DRM в инциденте с невозможностью создать объект хранилища в памяти.
NS_E_DRM_UNABLE_TO_CREATE_CERTIFICATE_OBJECTСреда DRM не может создать объект хранилища в памяти, необходимый для этой операции, для результата ошибка создания объекта хранилища в памяти.
NS_E_DRM_BB_UNABLE_TO_INITIALIZEКомпонент корня доверия DRM не может инициализироваться при воспроизведении невозможности создать объект хранилища в памяти.

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

Проверка после исправления

Повторите операцию, первоначально вернувшую NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT. Для NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT, зафиксируйте точный HRESULT в формирующем API в тесте с ошибкой «ошибка создания объекта хранилища в памяти»; затем измените только решающее предусловие и подтвердите, что исправленный запуск завершается без подмены соседним результатом DRM. После исправления NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT, проверьте запрошенное действие и итоговое состояние хранилища лицензий, защищённых часов, устройства или миграции, относящееся к «ошибка создания объекта хранилища в памяти».

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

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

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

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


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