| Предыдущий | Следующий |
| NS_E_DRM_LICENSE_OPEN_ERROR | NS_E_DRM_GET_LICENSE_ERROR |
NS_E_DRM_LICENSE_CLOSE_ERROR
Смысл, стоящий за сообщением проигрывателя
Когда клиент возвращает NS_E_DRM_LICENSE_CLOSE_ERROR (0xC00D2738), решающим условием является то, что Не удалось закрыть объект лицензии. Этот результат относится к локальному хранилищу лицензий, защищённому хранилищу и привязке к компьютеру — защищённым репозиториям лицензий и состояния DRM, а также данным оборудования и контрольной точки, связывающим это состояние с одной установкой, применительно к состоянию «не удалось закрыть объект лицензии».
Для NS_E_DRM_LICENSE_CLOSE_ERROR, встроенное сообщение описывает видимый пользователю результат, а символьное имя сохраняет точную границу WMDRM для диагностики. Для подтверждения этого кода зафиксируйте, изменялись ли данные, и ошибку закрытия или фиксации записи.
Почему важен уровень, вернувший код
Для NS_E_DRM_LICENSE_CLOSE_ERROR. После получения лицензия сохраняется в защищённом локальном хранилище, поэтому ошибка хранилища отличается от отказа сервера выдать лицензию, применительно к состоянию «не удалось закрыть объект лицензии». Состояние, привязанное к компьютеру, нельзя безопасно диагностировать копированием файлов хранилища между компьютерами или удалением оригинала до сохранения доказательств, применительно к состоянию «не удалось закрыть объект лицензии».
Первичная диагностика без уничтожения данных
- Сохраните
NS_E_DRM_LICENSE_CLOSE_ERROR, вызывающий интерфейс и первый статус нижнего уровня до его замены оболочкой. - Сопоставьте
NS_E_DRM_LICENSE_CLOSE_ERRORс одним KID или идентификатором лицензии, хэшем содержимого, сертификатом устройства либо идентификатором операции миграции. - Для
NS_E_DRM_LICENSE_CLOSE_ERROR, восстановите переход состояния непосредственно перед «не удалось закрыть объект лицензии», а не начинайте с последнего диалогового окна Player. - Подтвердите границу: зафиксируйте, изменялись ли данные, и ошибку закрытия или фиксации записи.
- После исправления проверьте как запрошенное право, так и конечное состояние хранилища или устройства, применительно к состоянию «не удалось закрыть объект лицензии».
Минимальная запись об инциденте
Зафиксируйте первое появление NS_E_DRM_LICENSE_CLOSE_ERROR до того, как автоматический повтор, закрытие проигрывателя, восстановление хранилища или повторное получение лицензии изменит состояние. Минимально полезная запись содержит:
- Подтверждение для этого кода для состояния «не удалось закрыть объект лицензии»: зафиксируйте, изменялись ли данные, и ошибку закрытия или фиксации, на границе этой ошибки.
- Защищённая идентичность для состояния «не удалось закрыть объект лицензии»: путь хранилища, поколение файла, результат доступа и базовую системную ошибку, при диагностике состояния «не удалось закрыть объект лицензии».
- Состояние операции для состояния «не удалось закрыть объект лицензии»: аппаратную идентичность и последнее изменение оборудования или операционной системы, при диагностике состояния «не удалось закрыть объект лицензии».
- Хранилище или транспорт для состояния «не удалось закрыть объект лицензии»: последовательность сохранения контрольной точки, защищённого хранилища и данных реестра, для результата «не удалось закрыть объект лицензии».
- Контекст безопасности для состояния «не удалось закрыть объект лицензии»: первый сбойный вызов API хранилища: открытие, перечисление, сохранение, закрытие или запрос, при диагностике состояния «не удалось закрыть объект лицензии».
- Точка корреляции для состояния «не удалось закрыть объект лицензии»: идентификатор лицензии и идентификатор ключа содержимого KID, в процессе обработки состояния «не удалось закрыть объект лицензии».
При расследовании «не удалось закрыть объект лицензии» по возможности используйте KID, идентификаторы лицензий, хэши, отпечатки сертификатов, размеры и временные метки. Во время диагностики NS_E_DRM_LICENSE_CLOSE_ERRORне помещайте в обычные журналы ключи содержимого, полные BLOB лицензий, пароли, cookie или расшифрованные медиаданные.
Восстановление на правильном уровне
Устраняйте NS_E_DRM_LICENSE_CLOSE_ERROR на формирующей границе: восстановите надёжное сохранение и определите, была ли зафиксирована предыдущая операция обновления. Для NS_E_DRM_LICENSE_CLOSE_ERROR, переустановка Player, перезагрузка или новый запрос лицензии полезны только тогда, когда изменяют границу «не удалось закрыть объект лицензии» и это подтверждается исходными данными.
Показательный случай: Обновление лицензии выглядит завершённым, пока не завершается сбоем финальная операция закрытия.
Почему важно символьное имя
| Результат | Другая граница |
|---|---|
NS_E_DRM_GET_LICENSE_ERROR | Не удалось получить лицензию из локального хранилища, при диагностике состояния «не удалось закрыть объект лицензии». |
NS_E_DRM_LICENSE_OPEN_ERROR | Не удалось открыть объект лицензии, при диагностике состояния «не удалось закрыть объект лицензии». |
NS_E_DRM_GET_LICENSESTRING_ERROR | Не удалось получить сериализованную строку лицензии, для результата «не удалось закрыть объект лицензии». |
Одно условие «не удалось закрыть объект лицензии» может сопровождаться несколькими значениями. Упорядочьте цепочку событий NS_E_DRM_LICENSE_CLOSE_ERROR по времени и предпочитайте первый код, созданный на самой низкой конкретной границе, более позднему сводному результату Player при воспроизведении не удалось закрыть объект лицензии.
Сокращения пути, ухудшающие диагностику для состояния «не удалось закрыть объект лицензии»
- Не копируйте защищённое хранилище лицензий с другого компьютера как способ исправления, с учётом состояния «не удалось закрыть объект лицензии». Это изменит доказательства и не покажет, почему
NS_E_DRM_LICENSE_CLOSE_ERROR. - Не удаляйте и не сбрасывайте состояние DRM до сохранения хэшей, временных меток и первой ошибки хранилища, применительно к состоянию «не удалось закрыть объект лицензии». Для
NS_E_DRM_LICENSE_CLOSE_ERRORтакой подход может создать вторую проблему хранилища, идентификатора или политики при трассировке не удалось закрыть объект лицензии. - Не сводите
NS_E_DRM_LICENSE_CLOSE_ERRORк «сбой DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентификатор объекта для границы не удалось закрыть объект лицензии.
Критерии завершения
Повторите операцию, первоначально вернувшую NS_E_DRM_LICENSE_CLOSE_ERROR. Для NS_E_DRM_LICENSE_CLOSE_ERROR, проверьте точный HRESULT в ответственном API на сбойном примере «не удалось закрыть объект лицензии»; затем измените только решающее предварительное условие и убедитесь, что исправленный запуск завершается без соседнего результата DRM. После исправления NS_E_DRM_LICENSE_CLOSE_ERROR, проверьте запрошенное действие и конечное состояние хранилища лицензий, защищённых часов, устройства или миграции.
Практическое примечание для этого кода
Символьная фраза «не удалось закрыть объект лицензии» является важным ключом поиска и телеметрии для NS_E_DRM_LICENSE_CLOSE_ERROR. Храните её рядом с точным значением 0xC00D2738; официальное сообщение «не удалось закрыть объект лицензии» полезно пользователю, но само по себе не определяет API, поколение объекта или защищённый идентификатор, сформировавшие ошибку.
Технические ссылки
- Лицензии и локальное хранилище лицензий — документация платформы, используемая для отличия
NS_E_DRM_LICENSE_CLOSE_ERRORот соседних результатов. - Перечисление лицензий в локальном хранилище — официальный контекст Windows Media DRM для
NS_E_DRM_LICENSE_CLOSE_ERROR. - Интерфейсы клиента DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_LICENSE_CLOSE_ERROR. - Коды ошибок Windows Media DRM — документация платформы, используемая для отличия
NS_E_DRM_LICENSE_CLOSE_ERRORот соседних результатов.
Нужно найти другой код? Найти другой код состояния или ошибки.