| Предыдущий | Следующий |
| NS_E_DRM_MUST_REGISTER | NS_E_DRM_MUST_REVALIDATE |
NS_E_DRM_MUST_APPROVE
Область сбоя
Для NS_E_DRM_MUST_APPROVE, нарушенное условие состоит в следующем: приёмник зарегистрирован, но перед передачей содержимого требуется подтверждение пользователя. NS_E_DRM_MUST_APPROVE поступает из WMDRM для сетевых устройств, чей автомат состояний реализует протокол передатчика и приёмника: регистрирует сетевое устройство воспроизведения, одобряет его, проверяет близость, открывает защищённый сеанс и перекодирует лицензированное содержимое для приёмника.
Расследование становится предметным после прямой проверки: прочитайте флаг подтверждения отдельно от состояния регистрации и проверки. Штатное описание AllStat приведено выше; этот раздел посвящён состоянию объекта и данным, позволяющим отличить NS_E_DRM_MUST_APPROVE от соседних ошибок Windows Media.
Входные данные для проверки
| Поле | Значение для NS_E_DRM_MUST_APPROVE |
|---|---|
| Прямая проверка | прочитайте флаг подтверждения отдельно от состояния регистрации и проверки |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при NS_E_DRM_MUST_APPROVE |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на NS_E_DRM_MUST_APPROVE |
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговой оболочкой NS_E_DRM_MUST_APPROVE |
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с NS_E_DRM_MUST_APPROVE |
Какие данные следует сохранить
Решение безопасности для NS_E_DRM_MUST_APPROVE зависит от версии компонента DRM, KID, подписи заголовка содержимого, цепочки и вышестоящей лицензии, состояния индивидуализации, регистрации устройств и локальной конфигурации. Сохраните KID и хэш заголовка, версии компонентов, состояние индивидуализации, идентификаторы цепочки лицензий и первый обратный вызов со сбоем, применительно к состоянию «требуется подтверждение устройства».
Более поздняя общая ошибка не должна подменять эти данные: исходное условие остаётся тем же — приёмник зарегистрирован, но перед передачей содержимого требуется подтверждение пользователя.
Переход, который нужно проверить повторно
NS_E_DRM_MUST_APPROVE следует моделировать как невыполненную предпосылку, а не как произвольное исключение мультимедиа. Подтвердите предпосылку, прочитав флаг подтверждения отдельно от состояния регистрации и проверки, и устраните её, получив подтверждение пользователя и сохранив его в объекте зарегистрированного устройства. Результат NS_E_DRM_MUST_APPROVE подходит для регрессионного теста, поскольку ожидаемое изменение состояния можно наблюдать без ослабления политики DRM.
Отделение причины от оболочки
Для NS_E_DRM_MUST_APPROVE, установленный факт состоит в следующем: Приёмник зарегистрирован, но перед передачей содержимого требуется подтверждение пользователя. Для NS_E_DRM_MUST_APPROVEэтот факт сам по себе не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните NS_E_DRM_MUST_APPROVE как первый конкретный результат. Объект и операция, связанные с NS_E_DRM_MUST_APPROVE , обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Проверка без уничтожения данных
- Сохраните
NS_E_DRM_MUST_APPROVEи0xC00D28A6до очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Выполните прямую проверку для
NS_E_DRM_MUST_APPROVE: прочитайте флаг подтверждения отдельно от состояния регистрации и проверки. - Сравните сбой с заведомо исправным случаем, изменив только свойство, указанное этим условием: приёмник зарегистрирован, но перед передачей содержимого требуется подтверждение пользователя.
- Примените узкое исправление для
NS_E_DRM_MUST_APPROVEполучите подтверждение пользователя и сохраните его в объекте зарегистрированного устройства. - Свяжите
NS_E_DRM_MUST_APPROVEс текущим объектом WMDRM для сетевых устройств и запрошенным действием. - Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что
NS_E_DRM_MUST_APPROVEне заменена другой ошибкой политики или доверия.
Разные владельцы, похожее диалоговое окно
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_DRM_UNABLE_TO_VERIFY_PROXIMITY | обмен с ограничением по времени не подтвердил, что приёмник находится достаточно близко к передатчику |
NS_E_DRM_MUST_REGISTER | для приёмника отсутствует действительная запись в базе регистрации передатчика |
NS_E_DRM_MUST_REVALIDATE | Защищённое состояние необходимо повторно проверить |
Когда повтор допустим
Восстановление должно изменить отклонённую предпосылку; для этого получите подтверждение пользователя и сохраните его в объекте зарегистрированного устройства. Для NS_E_DRM_MUST_APPROVEуспех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- Данные для
NS_E_DRM_MUST_APPROVEлегко уничтожить; не удаляйте всю базу регистрации устройств до сохранения сбойной записи устройства и цепочки сертификатов: иначе исчезает различие между сбоями регистрации, одобрения, проверки и сеанса. - Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления
NS_E_DRM_MUST_APPROVE; это обходит решение, а не исправляет его входные данные. - Сохраните один сбойный и один исправленный артефакт, чтобы устранение
NS_E_DRM_MUST_APPROVEможно было проверять при регрессионном тестировании.
Итоговая проверка
В итоговом тесте NS_E_DRM_MUST_APPROVE по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай NS_E_DRM_MUST_APPROVE разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для NS_E_DRM_MUST_APPROVE
- Windows Media DRM 10 для сетевых устройств — документирует границу протокола или API, связанную с NS_E_DRM_MUST_APPROVE.
- Регистрация устройства — описывает нормативный рабочий процесс, относящийся к NS_E_DRM_MUST_APPROVE.
- Использование протокола WMDRM-ND — перечисляет переходы безопасности и состояния, используемые при интерпретации NS_E_DRM_MUST_APPROVE.
- Спецификация протокола MS-DRMND — определяет объекты платформы, используемые при диагностике NS_E_DRM_MUST_APPROVE.
Нужно найти другой код? Найти другой код состояния или ошибки.
