| Предыдущий | Следующий |
| NS_E_DRM_OPERATION_CANCELED | NS_E_DRM_UNABLE_TO_CREATE_PLAYLIST_OBJECT |
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED
Граница WMDRM, на которой возник сбой
0xC00D2769 соответствует NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. Рассматривайте его как результат доверенного пути воспроизведения и ограничений вывода: используемая лицензия содержит связанные ограничения вывода; пока эти ограничения не запрошены, лицензия непригодна в процессе состояния «ограничения не получены». Сохранение границы «ограничения не получены» для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED не позволяет более позднему сообщению воспроизведения скрыть исходный результат DRM, в пути обработки состояния «ограничения не получены».
Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, встроенное сообщение описывает видимый пользователю результат, а символьная фраза «ограничения не получены» сохраняет точную границу WMDRM для диагностики. Для подтверждения кода запишите точный API, состояние объекта, идентификатор входных данных и первый низкоуровневый результат, применительно к состоянию «ограничения не получены».
Место в рабочем процессе DRM
Контекст NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED имеет значение: ограничения вывода необходимо запросить и применить до операции; драйвер может воспроизводить обычные мультимедиа и при этом не работать в защищённом пути при трассировке состояния «ограничения не получены». Кроме того, устаревший Secure Audio Path и более новые механизмы защищённых мультимедиа используют доверенные компоненты, поэтому непроверенный или отозванный компонент не исправляется заменой файла содержимого на границе состояния «ограничения не получены».
Состояние, которое следует сохранить до повтора
Зафиксируйте первое появление NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED до того, как автоматический повтор, закрытие проигрывателя, восстановление хранилища или повторное получение лицензии изменит состояние, при диагностике состояния «ограничения не получены». Минимально полезная запись содержит:
- Подтверждение для этого кода: зафиксируйте точный API, состояние объекта, идентичность входных данных и первый низкоуровневый результат.
- Защищённая идентичность: сертификат приложения и состояние его отзыва, при диагностике состояния «ограничения не получены».
- Состояние операции: результат запроса ограничений до начала воспроизведения или записи, для результата «ограничения не получены».
- Хранилище или транспорт: событие обновления защищённого тракта или проверки компонента, при диагностике состояния «ограничения не получены».
- Контекст безопасности: запрошенный выход и требуемый уровень защиты, в процессе обработки состояния «ограничения не получены».
- Точка корреляции: идентичность, подпись и версию аудио- или видеодрайвера, при диагностике состояния «ограничения не получены».
При расследовании «ограничения не получены» по возможности используйте KID, идентификаторы лицензий, хэши, отпечатки сертификатов, размеры и временные метки. Во время диагностики NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, не помещайте в обычные журналы ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные мультимедиа, при трассировке состояния «ограничения не получены».
Полезный порядок расследования
- Найдите самый ранний возврат API, обратный вызов или событие, содержащее
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVEDи0xC00D2769. - Для
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, определите точное поколение объекта содержимого, лицензии, хранилища, устройства или миграции, участвующее в «ограничения не получены». - Для
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, определите, возникло ли «ограничения не получены» до сетевого обмена, при проверке ответа, во время применения политики или при фиксации защищённого состояния. - Выполните проверку именно для этого кода: запишите точный API, состояние объекта, идентичность входных данных и первый низкоуровневый результат, применительно к состоянию «ограничения не получены».
- Внесите одно точечное исправление — запросите и примените ограничения вывода до защищённой операции — и повторите ту же операцию, сформировавшую ошибку, применительно к состоянию «ограничения не получены».
Узко направленное исправление
Для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, исправление должно устранять именно формирующую причину: запросите и примените ограничения вывода до защищённой операции, при диагностике состояния «ограничения не получены». Сохраните исходный заголовок содержимого, хранилище или материалы миграции для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED до тех пор, пока операция «ограничения не получены» не завершится успешно и результат не сохранится после создания нового объекта приложения или обязательного перезапуска.
Показательный случай: Приложение достигает пути «ограничения не получены» и получает этот HRESULT до завершения мультимедийной операции более высокого уровня.
Чего не следует делать сначала для состояния «ограничения не получены»
- Не трактуйте ошибку политики вывода как доказательство повреждения самой лицензии в инциденте «ограничения не получены». Это изменяет доказательства, не показывая, почему
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. - Не отключайте аутентификацию драйвера или приложения для принудительного защищённого воспроизведения для результата «ограничения не получены». Для
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED, такой подход может создать дополнительную проблему хранилища, идентификации или политики, при воспроизведении состояния «ограничения не получены». - Не сводите
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVEDдо фразы «ошибка DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентификатор объекта, в процессе обработки состояния «ограничения не получены».
Соседние результаты с другим смыслом
| Результат | Другая граница |
|---|---|
NS_E_DRM_DEBUGGING_NOT_ALLOWED | Защищённая операция обнаруживает, что процесс выполняется под отладчиком, в пути «ограничения не получены». |
NS_E_DRM_INVALID_APPCERT | Сертификат приложения DRM имеет неверный формат, не соответствует ожидаемому или не проходит проверку при трассировке состояния «ограничения не получены». |
NS_E_DRM_APPCERT_REVOKED | Операция проверки отозванного сертификата приложения завершилась ошибкой на своей документированной границе DRM для состояния «ограничения не получены». |
Одно условие «ограничения не получены» может сопровождаться несколькими значениями. Упорядочьте цепочку событий NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED по временным меткам и отдавайте приоритет первому коду, полученному на самой низкой конкретной границе, а не более позднему сводному результату уровня Player, при диагностике состояния «ограничения не получены».
Проверка после исправления
После исправления пересоздайте объект WMDRM и выполните минимальный пример для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. Убедитесь, что 0xC00D2769 больше не возникает, требуемое действие лицензии завершается успешно и вместо него не появляется предупреждение хранилища, сертификата, часов или миграции в инциденте «ограничения не получены».
Практическое примечание для этого кода
Символьная фраза «ограничения не получены» является важным ключом поиска и телеметрии для NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. Храните её рядом с точным значением 0xC00D2769; официальное сообщение «С лицензией связаны ограничения вывода, для результата «ограничения не получены». Лицензию нельзя использовать, пока эти ограничения не будут запрошены» полезно пользователю, но само по себе не определяет формирующий API, поколение объекта или защищённую идентичность при диагностике состояния «ограничения не получены».
Технические ссылки
- Уровни защиты выхода — правила API и состояния, относящиеся к границе
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. - Модель Secure Audio Path — документация платформы, используемая для отличия
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVEDот соседних результатов. - Защищённый медиапуть — официальный контекст Windows Media DRM для
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED. - Экспорт DRM и защита вывода — правила API и состояния, относящиеся к границе
NS_E_DRM_RESTRICTIONS_NOT_RETRIEVED.
Нужно найти другой код? Найти другой код состояния или ошибки.