| Предыдущий | Следующий |
| NS_E_WMP_UDRM_NOUSERLIST | NS_E_WMP_BSTR_TOO_LONG |
NS_E_WMP_DRM_NOT_ACQUIRING
Значение в активном рабочем процессе
Первый практически значимый факт для этого результата состоит в том, что обработчик завершения или отмены получения прав ссылается на медиа, для которого активное получение прав уже не выполняется. В подсистеме обработки прав Windows Media Player, Этот результат возникает при обработке уровня проигрывателя, который открывает защищённое медиа, запрашивает локальное состояние лицензии, выполняет тихое или интерактивное получение прав, проверяет компоненты DRM и применяет ограничения на воспроизведение, запись или синхронизацию.
Чтобы подтвердить эту границу, а не делать вывод по диалоговому сообщению, сопоставьте cookie операции получения прав, KID содержимого и текущую версию медиаобъекта. Стандартное описание AllStat уже приведено выше; здесь рассматриваются состояние объекта и данные, необходимые, чтобы отличить этот результат от соседних ошибок Windows Media.
Сохраните исходное поколение
Не отделяйте NS_E_WMP_DRM_NOT_ACQUIRING от состояния ответственного компонента: KID и заголовка содержимого, записи хранилища лицензий, запрошенного действия, URL получения прав, контекста пользователя/хранилища, защищённых часов и поколения компонентов DRM. Диагностическая запись для NS_E_WMP_DRM_NOT_ACQUIRING — KID содержимого, запрошенное действие, запрос состояния лицензии, последовательность обратных вызовов получения, категория ответа сервера и первый нижележащий DRM HRESULT.
Последующая общая ошибка не должна вытеснять эти данные: исходным условием остаётся callback завершения или отмены для медиа, которое уже не находится в процессе получения прав.
Подтверждение границы
- Сохраните этот HRESULT и
0xC00D12C1до очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Свяжите этот результат с его текущим объектом обработки прав Windows Media Player и запрошенным действием.
- Выполните прямую проверку для этого результата: сопоставьте cookie операции получения прав, KID содержимого и текущую версию медиаобъекта.
- Сравните сбой с заведомо исправным случаем, изменив только актуальность операции получения прав для того же медиаобъекта.
- Примените узкое исправление для этого результата: отбросьте устаревший callback и запускайте новое получение прав только если содержимое всё ещё требуется.
- Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что этот HRESULT не заменён другой ошибкой политики или доверия.
Модель сбоя
NS_E_WMP_DRM_NOT_ACQUIRING следует рассматривать как невыполненное предварительное условие, а не произвольную медиаошибку. Подтвердите его, сопоставив cookie операции получения прав, KID содержимого и текущую версию медиаобъекта; устраните причину, отбросив устаревший callback и начав новое получение прав только если содержимое всё ещё требуется. Рядом сохраните первый нижележащий статус для этого результата, поскольку иначе обёрточные HRESULT могут скрыть компонент, в котором возник сбой.
Что остаётся неизвестным
Для этого результата установленный факт состоит в том, что путь завершения или отмены ссылается на медиа, для которого активное получение прав уже не выполняется. Для этого результата сам по себе этот факт не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните этот HRESULT как первый конкретный результат. Объект и операция, связанные с этим результатом, обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Диагностический перечень
| Поле | Значение для этого результата |
|---|---|
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с этим результатом |
| Прямая проверка | сопоставьте cookie операции получения прав, KID содержимого и текущую версию медиаобъекта |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при получении этого результата |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на результат |
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговым HRESULT |
Сравнение соседних состояний
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_WMP_LICENSE_REQUIRED | проигрыватель не нашёл прав использования медиа для запрошенного воспроизведения, записи или синхронизации |
NS_E_WMP_UDRM_NOUSERLIST | DRM в контексте пользователя не может проверить список активированных пользователей, связанный с этим компьютером |
NS_E_WMP_DRM_UNABLE_TO_ACQUIRE_LICENSE | проигрывателю не удалось завершить транзакцию получения лицензии в текущий момент |
Практические действия
Исправьте состояние на уровне владельца проверки: отбросьте устаревший callback и запускайте новое получение прав только если содержимое всё ещё требуется. Для этого результата успех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- Для этого результата: не сбрасывайте локальное хранилище DRM до сохранения KID содержимого и результата состояния лицензии: сброс может превратить точный сбой прав или подписи в общее отсутствие лицензии.
- Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления этого результата; это обходит решение, а не исправляет его входные данные.
- Сохраните один сбойный и один исправленный артефакт, чтобы устранение этого результата можно было проверять при регрессионном тестировании.
Подтверждение того же рабочего процесса
В итоговом тесте по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Этот случай разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для этого результата
- Обзор Windows Media DRM — определяет объекты платформы, используемые при диагностике этого результата.
- Получение лицензий — документирует границу протокола или API, связанную с этим результатом.
- Лицензии и локальное хранилище лицензий — описывает нормативный рабочий процесс, относящийся к этому случаю.
- Коды ошибок Windows Media Format SDK — перечисляет переходы безопасности и состояния, используемые при интерпретации этого результата.
Нужно найти другой код? Найти другой код состояния или ошибки.
