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