Что означает код HRESULT 0xC00D2711 (NS_E_DRM_INVALID_APPLICATION)?

 
Предыдущий Следующий
NS_E_MARKIN_UNSUPPORTED NS_E_DRM_LICENSE_STORE_ERROR

NS_E_DRM_INVALID_APPLICATION

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

Когда клиент возвращает NS_E_DRM_INVALID_APPLICATION (0xC00D2711), решающим условием является то, что Недопустимое приложение DRM. Этот результат относится к контракту клиентского API Windows Media DRM и жизненному циклу объектов — в частности, к уровню приложения, который инициализирует поддержку DRM, проверяет параметры и свойства, создаёт специализированные объекты и асинхронно передаёт состояние вызывающей стороне, применительно к состоянию «недопустимое приложение DRM».

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

Минимальная запись об инциденте

Зафиксируйте первое появление NS_E_DRM_INVALID_APPLICATION до того, как автоматический повтор, уничтожение Player, восстановление хранилища или повторное получение лицензии изменит состояние в инциденте недопустимое приложение DRM. Минимальная полезная запись содержит:

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

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

Почему важен уровень, вернувший код

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

Первичная диагностика без уничтожения данных

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

Почему важно символьное имя

РезультатДругая граница
NS_E_DRM_UNABLE_TO_OPEN_LICENSEВыбранную запись лицензии невозможно открыть в локальном хранилище.
NS_E_DRM_INVALID_LICENSEНедопустимая лицензия DRM, при диагностике состояния «недопустимое приложение DRM».
NS_E_DRM_UNABLE_TO_INITIALIZEСоседний код сообщает о невозможности инициализировать клиентскую среду DRM; текущий результат означает, что вызывающее приложение не принято как допустимое.

Одно условие «недопустимое приложение DRM» может сопровождаться несколькими значениями. Упорядочьте цепочку событий NS_E_DRM_INVALID_APPLICATION по времени и отдавайте предпочтение первому коду, созданному на самой низкой конкретной границе, а не более позднему сообщению проигрывателя.

Сокращения пути, ухудшающие диагностику для состояния «недопустимое приложение DRM»

  • Не повторяйте создание объекта в цикле, не сохранив первый HRESULT и версии среды выполнения. Это изменяет данные, не показывая, почему был получен NS_E_DRM_INVALID_APPLICATION .
  • Не заменяйте HRESULT DRM общим исключением приложения до его записи в телеметрию, применительно к состоянию «недопустимое приложение DRM». Для NS_E_DRM_INVALID_APPLICATION, такой подход может создать дополнительную проблему хранилища, идентификации или политики.
  • Не сводите NS_E_DRM_INVALID_APPLICATION до фразы «сбой DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентификатор объекта.

Восстановление на правильном уровне

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

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

Критерии завершения

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

Практическое примечание для этого кода

Символьная фраза «недопустимое приложение DRM» является важным ключом поиска и телеметрии для NS_E_DRM_INVALID_APPLICATION. Храните её рядом с точным значением 0xC00D2711; официальное сообщение «недопустимое приложение DRM» полезно пользователю, но само по себе не определяет API, поколение объекта или защищённый идентификатор, сформировавшие ошибку.

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


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