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