| Предыдущий | Следующий |
| NS_E_DRM_NEEDS_INDIVIDUALIZATION | NS_E_DRM_ACTION_NOT_QUERIED |
NS_E_DRM_ALREADY_INDIVIDUALIZED
Точное условие DRM
0xC00D2729 соответствует NS_E_DRM_ALREADY_INDIVIDUALIZED. Рассматривайте его как результат индивидуализации DRM и обновления компонентов безопасности: клиент уже имеет последние компоненты безопасности; обновление в данный момент не требуется. Сохранение границы «already individualized» для NS_E_DRM_ALREADY_INDIVIDUALIZED не позволяет более позднему сообщению воспроизведения скрыть исходный результат DRM.
Для NS_E_DRM_ALREADY_INDIVIDUALIZED, встроенное сообщение описывает видимый пользователю результат, а символьная фраза «already individualized» сохраняет точную границу WMDRM для диагностики. Для подтверждения кода запишите точный API, состояние объекта, идентификатор входных данных и первый низкоуровневый результат.
Место в рабочем процессе DRM
Контекст NS_E_DRM_ALREADY_INDIVIDUALIZED важна: индивидуализация изменяет компоненты безопасности DRM и должна отличаться от обычного получения лицензии. Неудачная или незавершённая индивидуализация может помешать клиенту выполнять лицензии, требующие обновлённого компонента, даже если незащищённое содержимое продолжает работать.
Полезный порядок расследования
- Сохраните
NS_E_DRM_ALREADY_INDIVIDUALIZED, вызывающий интерфейс и первый статус нижнего уровня до того, как оболочка заменит его. - Сопоставьте
NS_E_DRM_ALREADY_INDIVIDUALIZEDс одним KID или идентификатором лицензии, хэшем содержимого, сертификатом устройства либо идентификатором операции миграции. - Для
NS_E_DRM_ALREADY_INDIVIDUALIZED, восстановите переход состояния непосредственно перед «already individualized», а не начинайте с последнего диалогового окна Player. - Подтвердите границу, записав точный API, состояние объекта, идентификатор входных данных и первый низкоуровневый результат, связанный с «already individualized».
- После исправления состояния DRM или входных данных и повтора с новым объектом операции проверьте как запрошенное право, так и конечное состояние хранилища или устройства.
Состояние, которое следует сохранить до повтора
Зафиксируйте первое появление NS_E_DRM_ALREADY_INDIVIDUALIZED до того, как автоматический повтор, завершение Player, восстановление хранилища или повторное получение лицензии изменит состояние. Минимальная полезная запись содержит:
- Подтверждение для этого кода: точный API, состояние объекта, идентификатор входных данных и первый низкоуровневый результат, связанный с «already individualized».
- Защищённая идентичность: индивидуализировано ли приложение до требуемого уровня.
- Состояние операции: состояние индивидуализации и обратный вызов завершения.
- Хранилище или транспорт: версию компонента безопасности до и после попытки.
- Контекст безопасности: ответ загрузки или службы и результат проверки подписи.
- Точка корреляции: согласие пользователя и точку отмены.
При расследовании «already individualized» по возможности используйте KID, идентификаторы лицензий, хэши, отпечатки сертификатов, размеры и временные метки. Во время диагностики NS_E_DRM_ALREADY_INDIVIDUALIZED, не помещайте в обычные журналы ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные мультимедиа.
Чего не следует делать сначала
- Не заменяйте индивидуализированные двоичные файлы вручную и не отключайте проверку подписи. Это изменяет данные, не показывая, почему был получен
NS_E_DRM_ALREADY_INDIVIDUALIZED. - Не запускайте обновления безопасности параллельно и не повторяйте их до получения статуса завершения. Для
NS_E_DRM_ALREADY_INDIVIDUALIZED, такой подход может создать дополнительную проблему хранилища, идентификации или политики. - Не сводите
NS_E_DRM_ALREADY_INDIVIDUALIZEDдо фразы «ошибка DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентификатор объекта.
Узко направленное исправление
Устраняйте NS_E_DRM_ALREADY_INDIVIDUALIZED на границе-источнике: исправьте состояние DRM или входные данные и повторите с новым объектом операции. Для NS_E_DRM_ALREADY_INDIVIDUALIZED, переустановка Player, перезагрузка или новый запрос лицензии полезны только тогда, когда изменяют границу «already individualized» и это подтверждается исходными данными.
Показательный случай: Приложение достигает пути «already individualized» и получает этот HRESULT до завершения мультимедийной операции более высокого уровня.
Соседние результаты с другим смыслом
| Результат | Другая граница |
|---|---|
NS_E_DRM_NEEDS_INDIVIDUALIZATION | Для выполнения операции с этим медиафайлом требуется обновление безопасности. |
NS_E_DRM_INDIVIDUALIZING | Операция индивидуализации компонента безопасности уже выполняется. |
NS_E_DRM_INDIVIDUALIZE_ERROR | Обновление безопасности завершилось ошибкой; повторите попытку позже. |
Одно условие «already individualized» может сопровождаться несколькими значениями. Упорядочьте цепочку событий NS_E_DRM_ALREADY_INDIVIDUALIZED по временным меткам и отдавайте приоритет первому коду, полученному на самой низкой конкретной границе, а не позднему сводному результату Player.
Проверка после исправления
Повторите операцию, первоначально вернувшую NS_E_DRM_ALREADY_INDIVIDUALIZED. Для NS_E_DRM_ALREADY_INDIVIDUALIZED, проверьте точный HRESULT в ответственном API на сбойном примере «already individualized»; затем измените только решающее предварительное условие и убедитесь, что исправленный запуск завершается без подмены соседним результатом DRM. После исправления NS_E_DRM_ALREADY_INDIVIDUALIZED, проверьте запрошенное действие и конечное состояние хранилища лицензий, защищённых часов, устройства или миграции, относящееся к «already individualized».
Практическое примечание для этого кода
Символьная фраза «already individualized» является важным ключом поиска и телеметрии для NS_E_DRM_ALREADY_INDIVIDUALIZED. Храните её рядом с точным значением 0xC00D2729; официальное сообщение о наличии последних компонентов безопасности и отсутствии необходимости обновления полезно пользователю, но само по себе не определяет ответственный API, поколение объекта или защищённую идентичность.
Технические ссылки
- Индивидуализация DRM — документация платформы, используемая для отличия
NS_E_DRM_ALREADY_INDIVIDUALIZEDот соседних результатов. - Выполнение индивидуализации DRM — официальный контекст Windows Media DRM для
NS_E_DRM_ALREADY_INDIVIDUALIZED. - Включение поддержки DRM — правила API и состояния, относящиеся к границе
NS_E_DRM_ALREADY_INDIVIDUALIZED. - Структуры клиента DRM — документация платформы, используемая для отличия
NS_E_DRM_ALREADY_INDIVIDUALIZEDот соседних результатов.
Нужно найти другой код? Найти другой код состояния или ошибки.