| Предыдущий | Следующий |
| NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT | NS_E_DRM_UNABLE_TO_CREATE_CERTIFICATE_OBJECT |
NS_E_DRM_STUBLIB_REQUIRED
Где остановилась операция
0xC00D2785 соответствует NS_E_DRM_STUBLIB_REQUIRED. Рассматривайте его как результат контракта API клиента Windows Media DRM и жизненного цикла объектов: приложение не предоставило идентичность требуемой stub-библиотеки DRM. Сохранение точной границы «требуется stub-библиотека» для него не позволяет более позднему сообщению воспроизведения скрыть исходную ошибку DRM при диагностике отсутствующей stub-библиотеки.
Встроенное сообщение кратко описывает видимый пользователю результат, а символьная фраза «требуется stub-библиотека» сохраняет точную границу WMDRM для диагностики. Для этого кода подтверждением служит фиксация сборки приложения, связанной библиотеки WMStubDRM и загруженной среды выполнения в инциденте с отсутствующей stub-библиотекой.
Состояние, которое следует сохранить до повтора
Зафиксируйте первое появление этот результат до того, как автоматический повтор, завершение проигрывателя, восстановление хранилища или повторное получение лицензии изменят состояние, для данного результата отсутствующей stub-библиотеки. Минимальный полезный набор данных включает:
- Подтверждение для этого кода: зафиксировать сборку приложения, связанную библиотеку WMStubDRM и загруженную среду выполнения при воспроизведении ошибки отсутствующей stub-библиотеки.
- Защищённая идентичность: первый внутренний HRESULT до того, как приложение заменит его общей ошибкой, в рабочем процессе отсутствующей stub-библиотеки.
- Состояние операции: точный метод интерфейса и тип создаваемого объекта на пути ошибки отсутствующей stub-библиотеки.
- Хранилище или транспорт: версию SDK или среды выполнения и связанную stub-библиотеку DRM при диагностике отсутствующей stub-библиотеки.
- Контекст безопасности: имя, тип и размер свойства, а также порядок инициализации на границе ошибки отсутствующей stub-библиотеки.
- Точка корреляции: состояние операции, последовательность обратных вызовов и владельца отмены при диагностике отсутствующей stub-библиотеки.
При расследовании состояния «требуется stub-библиотека» по возможности используйте KID, идентификаторы лицензий, хеши, отпечатки сертификатов, размеры и временные метки. При диагностике этот результат, не помещайте ключи содержимого, полные блоки лицензий, пароли, cookie или расшифрованные медиаданные в обычные журналы в инциденте с отсутствующей stub-библиотекой.
Место в рабочем процессе DRM
Контекст этот результат важен следующий факт: клиент DRM предоставляет разные объекты для управления лицензиями, индивидуализации, шифрования, резервного копирования, учёта и регистрации устройств; сбой создания одного объекта не означает повреждение всего состояния DRM для данного результата. Кроме того, многие операции асинхронны и зависят от состояния, поэтому время жизни объекта и порядок завершения являются частью контракта API при воспроизведении ошибки отсутствующей stub-библиотеки.
Полезный порядок расследования
- Начните с
0xC00D2785и сопоставьте его с первым объектом WMDRM, который его вернул, в рабочем процессе отсутствующей stub-библиотеки. - разделяйте доказательства содержимого или заголовка, лицензии, компьютера или устройства и службы или сети вокруг состояния «требуется stub-библиотека».
- Перед повтором этот результат, проверьте, не была ли активна другая операция с состоянием «требуется stub-библиотека» и не мог ли предыдущий результат быть частично зафиксирован.
- зафиксируйте сборку приложения, связанную библиотеку WMStubDRM и загруженную среду выполнения на пути ошибки отсутствующей stub-библиотеки.
- Примените минимальное поддерживаемое исправление: пересоберите или разверните приложение с разрешённой и совместимой stub-библиотекой; не сбрасывайте несвязанное защищённое состояние при диагностике отсутствующей stub-библиотеки.
Узко направленное исправление
Поддерживаемое исправление для него имеет узкое направление исправления: пересобрать или развернуть приложение с разрешённой и совместимой stub-библиотекой на границе этой ошибки. После исправления он, заново откройте или создайте объект, которому принадлежало состояние «требуется stub-библиотека», чтобы кешированное состояние неудачного поколения не было принято за результат исправления.
Показательный случай: Обычный медиакомпонент пытается воспроизвести защищённое содержимое без stub-библиотеки DRM при диагностике этой ошибки.
Чего не следует делать сначала
- Не заменяйте HRESULT DRM общей исключительной ситуацией приложения до того, как телеметрия его зафиксирует, в инциденте с отсутствующей stub-библиотекой. Это изменяет доказательства, не объясняя, почему он.
- Не повторяйте создание объекта в цикле без сохранения первого HRESULT и версий среды выполнения для данного результата отсутствующей stub-библиотеки. Такой обходной путь может создать вторичную проблему хранилища, идентичности или политики при воспроизведении этой ошибки.
- Не сводите он до общей записи «сбой DRM» в телеметрии; сохраняйте HRESULT, символьное имя, операцию и идентичность объекта в рабочем процессе отсутствующей stub-библиотеки.
Соседние результаты с другим смыслом
| Результат | Другая граница |
|---|---|
NS_E_DRM_UNABLE_TO_CREATE_CERTIFICATE_OBJECT | Среда DRM не может создать объект сертификата, необходимый для этой операции, на пути ошибки отсутствующей stub-библиотеки. |
NS_E_DRM_UNABLE_TO_CREATE_INMEMORYSTORE_OBJECT | Среда DRM не может создать объект хранилища в памяти, необходимый для этой операции, при диагностике отсутствующей stub-библиотеки. |
NS_E_DRM_BB_UNABLE_TO_INITIALIZE | Компонент корня доверия DRM не может инициализироваться на границе ошибки отсутствующей stub-библиотеки. |
В одном инциденте условие «требуется stub-библиотека» может сопровождаться несколькими значениями. Упорядочьте он цепочку событий по временным меткам и отдавайте приоритет первому коду, сформированному на самой низкой конкретной границе, а не более поздней сводке проигрывателя, при диагностике отсутствующей stub-библиотеки.
Проверка после исправления
Корректный регрессионный тест для него имеет два тестовых сценария: один намеренно воспроизводит условие «приложение не предоставило идентичность требуемой stub-библиотеки DRM», а второй применяет целевое исправление в инциденте с отсутствующей stub-библиотекой. Сравните порядок обратных вызовов, выбранную лицензию или KID, итоговое решение о правах и состояние сохранения; одного исчезновения диалога «требуется stub-библиотека» недостаточно для подтверждения исправления.
Практическое примечание для этого кода
Символьная фраза «требуется stub-библиотека» является важным ключом поиска и телеметрии для него. Храните её рядом с точным значением 0xC00D2785; официальное сообщение «Для доступа к запрошенной функциональности требуется защищённая библиотека» полезно пользователю, но само по себе не определяет формирующий API, поколение объекта или защищённую идентичность при воспроизведении ошибки отсутствующей stub-библиотеки.
Технические ссылки
- Интерфейсы клиента DRM
- Руководство по программированию клиента DRM — правила API и состояния, относящиеся к границе он.
- Получение требуемой библиотеки DRM — документация платформы, используемая для отличия он от соседних результатов.
- Коды ошибок Windows Media DRM
Нужно найти другой код? Найти другой код состояния или ошибки.