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