| Предыдущий | Следующий |
| NS_E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT | NS_E_DRM_LICENSE_NOTACQUIRED |
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT
Граница WMDRM, на которой возник сбой
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT — это HRESULT Windows Media DRM 0xC00D2758. Он означает, что среда DRM не может создать объект управления ключами, необходимый для этой операции. Полезная область диагностики — путь, который разбирает заголовок DRM, выбирает KID и алгоритм, проверяет подписанные данные, создаёт криптографические объекты и шифрует или расшифровывает защищённые медиаобразцы; это не общее утверждение о сбое проигрывателя, сети или файловой системы при трассировке невозможности создать объект ключей.
Для NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, встроенное сообщение кратко описывает видимый пользователю результат, а символьная фраза «невозможно создать объект управления ключами» сохраняет точную границу WMDRM для диагностики. Для этого кода подтверждением служит фиксация вызова фабрики или интерфейса, версий среды выполнения и stub-библиотеки, состояния внешнего объекта и первого внутреннего HRESULT в рабочем процессе создания объекта управления ключами.
Данные, которые следует сохранить
Зафиксируйте первое появление NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT появление до того, как автоматический повтор, завершение проигрывателя, восстановление хранилища или повторное получение лицензии изменят состояние, на пути ошибки создания объекта управления ключами. Минимальный полезный набор данных включает:
- Подтверждение для этого кода: зафиксировать вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT при трассировке ошибки создания объекта управления ключами.
- Защищённая идентичность: KID, идентификатор лицензии и результат выбора ключа для этого результата невозможности создать объект ключей.
- Состояние операции: алгоритм, длину ключа и тип объекта кодирования при воспроизведении невозможности создать объект ключей.
- Хранилище или транспорт: состояние проверки подписи или сертификата в рабочем процессе невозможности создать объект ключей.
- Контекст безопасности: смещение первого сбойного образца, а не только сообщение уровня проигрывателя, на пути невозможности создать объект ключей.
- Точка корреляции: байты заголовка ASF/DRM и заявленную версию при трассировке невозможности создать объект ключей.
При расследовании ошибки «невозможно создать объект управления ключами» по возможности используйте KID, идентификаторы лицензий, хеши, отпечатки сертификатов, размеры и временные метки. При диагностике NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, не помещайте ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные медиаданные в обычные журналы в рабочем процессе создания объекта управления ключами.
Состояние протокола и хранилища
Повреждённый заголовок содержимого, недопустимый XML-документ лицензии и ошибка расшифрования возникают на разных границах и требуют замены разных артефактов при диагностике невозможности создать объект ключей. Для NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, в материалах поддержки защищённое содержимое следует идентифицировать хешами и KID; ключи содержимого и полные блоки лицензий раскрывать не следует в инциденте с невозможностью создать объект ключей.
Последовательность диагностики
- Найдите самый ранний возврат API, обратный вызов или событие, содержащее
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECTи0xC00D2758. - Для
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, определите точное поколение объекта содержимого, лицензии, хранилища, устройства или миграции, участвовавшее в ошибке «невозможно создать объект управления ключами». - Для
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, определите, возникла ли ошибка «невозможно создать объект управления ключами» до сетевого обмена, во время проверки ответа, при применении политики или при фиксации защищённого состояния. - Выполните проверку, специфичную для кода: зафиксируйте вызов фабрики или интерфейса, версии среды выполнения и stub-библиотеки, состояние внешнего объекта и первый внутренний HRESULT для границы ошибки создания объекта управления ключами.
- Внесите одно узкое исправление — устраните проблему компонента, версии или состояния инициализации и создайте новый объект управления ключами — затем повторите ту же формирующую операцию при диагностике ошибки создания объекта управления ключами.
Связанные коды и диагностическое различие
| Результат | Другая граница |
|---|---|
NS_E_DRM_UNABLE_TO_CREATE_HEADER_OBJECT | Среда DRM не может создать объект управления ключами, необходимый для этой операции, в рабочем процессе ошибка создания объекта управления ключами. |
NS_E_DRM_UNABLE_TO_CREATE_CODING_OBJECT | Среда DRM не может создать объект управления ключами, необходимый для этой операции, на пути ошибка создания объекта управления ключами. |
NS_E_DRM_INVALID_DATA | Обнаружены недопустимые или повреждённые данные при трассировке невозможности создать объект ключей. |
Несколько значений могут сопровождать условие «невозможно создать объект управления ключами» в одном инциденте. Упорядочьте NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT цепочку событий по времени и отдавайте приоритет первому коду, сформированному на самой низкой конкретной границе, а не более поздней сводке проигрывателя, в рабочем процессе создания объекта управления ключами.
Исправление формирующего условия
Для NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT, направление исправления — устранить проблему компонента, версии или состояния инициализации и создать новый объект управления ключами в соответствующем инциденте. Сохраняйте исходный материал содержимого или заголовка, хранилища либо миграции для NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT до тех пор, пока операция «невозможно создать объект управления ключами» не завершится успешно и результат не сохранится после создания нового объекта приложения или требуемого перезапуска.
Показательный случай: Приложение доходит до этапа управления ключами, но создание объекта завершается ошибкой до начала работы с содержимым или сервером в инциденте с невозможностью создать объект ключей.
Регрессионная проверка
После исправления пересоздайте объект WMDRM и выполните минимальный пример для NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT. Убедитесь, что 0xC00D2758 больше не возникает, целевое действие с лицензией завершается, и вместо него не появляется предупреждение хранилища, сертификата, часов или миграции при воспроизведении ошибки создания объекта управления ключами.
За что отвечал бы отсутствующий объект
для значения NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT объект управления ключами обычно связывает идентификаторы ключей с обработкой защищённого содержимого, не раскрывая материал ключа, для границы невозможности создать объект ключей. Сбой создания объекта происходит до передачи этой ответственности рабочему интерфейсу, поэтому более поздние сообщения проигрывателя или сервера вторичны при диагностике невозможности создать объект ключей.
Именно для этого объекта сохраните KID, выбор алгоритма и жизненный цикл объекта ключа в инциденте с невозможностью создать объект ключей. Успешное исправление должно позволить создать новый объект управления ключами и выполнить его первую реальную операцию, а не только заставить фабричный вызов вернуть другую общую ошибку для этого результата невозможности создать объект ключей.
Технические ссылки
- Обзор Windows Media DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT. - Защита DRM и распространение лицензий — документация платформы, используемая для отличия
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECTот соседних результатов. - Версии DRM — официальный контекст Windows Media DRM для
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT. - Коды ошибок Windows Media DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_UNABLE_TO_CREATE_KEYS_OBJECT.
Нужно найти другой код? Найти другой код состояния или ошибки.