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