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