| Предыдущий | Следующий |
| NS_E_WMP_BURN_DISC_OVERFLOW | NS_E_WMP_DRM_NO_SECURE_CLOCK |
NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE
Определите нарушенный контракт
NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE следует сохранять, когда оболочка проигрывателя не смогла свести сбой проверки прав к более конкретному публичному результату. Для этого результата владельцем является подсистема обработки прав Windows Media Player; её рабочий контракт охватывает открытие защищённых медиафайлов, проверку состояния локальной лицензии, фоновое или интерактивное получение прав, проверку компонентов DRM и применение ограничений на воспроизведение, запись и синхронизацию.
Наиболее убедительное подтверждение — сохранить более ранний низкоуровневый callback DRM и запрос состояния лицензии, предшествовавшие этому коду оболочки. Стандартное описание AllStat уже приведено выше; здесь рассматриваются состояние объекта и данные, необходимые, чтобы отличить этот результат от соседних ошибок Windows Media.
Обоснованная проверка
- Сохраните этот HRESULT и
0xC00D11DAдо очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Свяжите этот результат с его текущим объектом обработки прав Windows Media Player и запрошенным действием.
- Выполните прямую проверку для этого результата: сохраните более ранний низкоуровневый callback DRM и запрос состояния лицензии, предшествовавшие этому коду оболочки.
- Сравните сбой с заведомо исправным случаем, изменив только условие лицензии, доверия или получения прав, которое породило более ранний конкретный результат.
- Примените узкое исправление для этого результата: исправьте состояние лицензии, доверия или получения прав, указанное более ранним результатом.
- Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что этот HRESULT не заменён другой ошибкой политики или доверия.
Свидетельства одной операции
Не отделяйте NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE от состояния ответственного компонента: KID и заголовка содержимого, записи хранилища лицензий, запрошенного действия, URL получения прав, контекста пользователя/хранилища, защищённых часов и поколения компонентов DRM. Диагностическая запись для NS_E_WMP_DRM_GENERIC_LICENSE_FAILURE — KID содержимого, запрошенное действие, запрос состояния лицензии, последовательность обратных вызовов получения, категория ответа сервера и первый нижележащий DRM HRESULT.
Эти данные важны потому, что установлен именно общий результат оболочки, которая не смогла преобразовать сбой проверки прав в более конкретный публичный код.
Смоделируйте отклонённую предпосылку
Документируя этот результат, укажите отклонённое условие и ожидаемое следующее состояние. Его подтверждают сохранённые более ранний низкоуровневый callback DRM и запрос состояния лицензии; переход дальше возможен после исправления состояния лицензии, доверия или получения прав, указанного ранним результатом. Этот результат подходит для регрессионного теста, поскольку ожидаемое изменение состояния можно наблюдать без ослабления политики DRM.
Данные одной попытки
| Поле | Значение для этого результата |
|---|---|
| Прямая проверка | сохраните более ранний низкоуровневый callback DRM и запрос состояния лицензии, предшествовавшие этому коду оболочки |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при получении этого результата |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на результат |
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговым HRESULT |
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с этим результатом |
Другие границы того же семейства
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_WMP_DRM_INVALID_SIG | обязательный компонент DRM или защищённый объект не проходит проверку подписи в тракте проигрывателя |
NS_E_WMP_DRM_CANNOT_RESTORE | служба восстановления проигрывателя отклонила очередное восстановление из-за ограничения частоты или политики |
NS_E_WMP_DRM_NO_SECURE_CLOCK | зависимой от устройства лицензии требуется доверенное время, но у целевого устройства нет пригодного состояния защищённых часов |
Избегайте ложного вывода
Для этого результата установленный факт состоит в том, что оболочка проигрывателя не смогла свести сбой проверки прав к более конкретному публичному результату. Для этого результата сам по себе этот факт не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните этот HRESULT как первый конкретный результат. Объект и операция, связанные с этим результатом, обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Проверка исправления
Исправляйте этот слой непосредственно: устраните состояние лицензии, доверия или получения прав, указанное более ранним результатом. Для этого результата успех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- Для этого результата: не сбрасывайте локальное хранилище DRM до сохранения KID содержимого и результата состояния лицензии: сброс может превратить точный сбой прав или подписи в общее отсутствие лицензии.
- Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления этого результата; это обходит решение, а не исправляет его входные данные.
- Сохраните один сбойный и один исправленный артефакт, чтобы устранение этого результата можно было проверять при регрессионном тестировании.
Проверяйте, не меняя исходный вопрос
В итоговом тесте по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Этот случай разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для этого результата
- Обзор Windows Media DRM — определяет объекты платформы, используемые при диагностике этого результата.
- Получение лицензий — документирует границу протокола или API, связанную с этим результатом.
- Лицензии и локальное хранилище лицензий — описывает нормативный рабочий процесс, относящийся к этому случаю.
- Коды ошибок Windows Media Format SDK — перечисляет переходы безопасности и состояния, используемые при интерпретации этого результата.
Нужно найти другой код? Найти другой код состояния или ошибки.