| Предыдущий | Следующий |
| NS_E_DRM_UNABLE_TO_OPEN_PORT | NS_E_DRM_INVALID_CRL |
NS_E_DRM_BAD_REQUEST
Сначала анализируйте код, затем диалоговое окно
Компонент, сформировавший 0xC00D28B0, установил, что запрос WMDRM-ND имеет недопустимое обрамление, поля или семантику сообщения. NS_E_DRM_BAD_REQUEST поступает из WMDRM для сетевых устройств, чей автомат состояний реализует протокол передатчика и приёмника: регистрирует сетевое устройство воспроизведения, одобряет его, проверяет близость, открывает защищённый сеанс и перекодирует лицензированное содержимое для приёмника.
Кратчайший путь к обоснованной диагностике — сохранить длину и тип исходного сообщения и смещение ошибки синтаксического анализа, не раскрывая защищённые секреты. Стандартный текст AllStat уже показан выше; этот раздел сосредоточен на состоянии объекта и данных, позволяющих отличить NS_E_DRM_BAD_REQUEST от соседних ошибок Windows Media.
Сопоставьте владельца и политику
Полная запись NS_E_DRM_BAD_REQUEST связывает сертификат и серийный номер устройства, запись базы регистрации, признак одобрения, время проверки, сетевой сеанс, сообщение протокола и политику перекодирования. Минимальный набор корреляции: точный тип сообщения WMDRM-ND, идентификатор устройства, цепочка сертификатов, состояние регистрации, время кругового обмена и первый HRESULT протокола.
Более поздняя общая ошибка не должна заменять эти данные: исходное условие остаётся прежним — запрос WMDRM-ND имеет недопустимое обрамление, поля или семантику сообщения.
Почему важен первый HRESULT
Документируя NS_E_DRM_BAD_REQUEST укажите отклонённые входные данные и ожидаемое последующее состояние. Отклонение доказывается сохранением длины и типа исходного сообщения и смещения ошибки синтаксического анализа без раскрытия секретов; нужное состояние становится достижимым после исправления реализации отправителя и повторного формирования запроса. Сравнение NS_E_DRM_BAD_REQUEST должно сохранять идентичность содержимого и устройства, чтобы успех нельзя было объяснить проверкой другого объекта.
Минимальный набор данных
| Поле | Значение для NS_E_DRM_BAD_REQUEST |
|---|---|
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговой оболочкой NS_E_DRM_BAD_REQUEST |
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с NS_E_DRM_BAD_REQUEST |
| Прямая проверка | сохранить длину и тип исходного сообщения и смещение ошибки синтаксического анализа без раскрытия защищённых секретов |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при NS_E_DRM_BAD_REQUEST |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на NS_E_DRM_BAD_REQUEST |
Отличие от связанных результатов
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_DRM_CERTIFICATE_SECURITY_LEVEL_INADEQUATE | сертификат узла действителен, но его уровень безопасности ниже минимального для операции |
NS_E_DRM_UNABLE_TO_OPEN_PORT | приложение не может привязать порт, используемый сообщениями проверки близости WMDRM-ND |
NS_E_DRM_INVALID_CRL | список отзыва сертификатов WMDRM-ND повреждён, имеет неверный формат или не проходит проверку |
Итоговое диалоговое окно может быть шире
Для NS_E_DRM_BAD_REQUEST, установленный факт состоит в том, что запрос WMDRM-ND имеет недопустимое обрамление, поля или семантику сообщения. Для NS_E_DRM_BAD_REQUEST этот факт сам по себе не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните NS_E_DRM_BAD_REQUEST как первый конкретный результат. Объект и операция, связанные с NS_E_DRM_BAD_REQUEST, обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Контролируемое воспроизведение
- Сохраните
NS_E_DRM_BAD_REQUESTи0xC00D28B0до очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Выполните прямую проверку для
NS_E_DRM_BAD_REQUEST: сохраните длину и тип исходного сообщения и смещение ошибки синтаксического анализа, не раскрывая защищённые секреты. - Сравните сбой с заведомо исправным случаем, изменив только свойство, указанное этим условием: запрос WMDRM-ND имеет недопустимое обрамление, поля или семантику сообщения.
- Примените узкое исправление для
NS_E_DRM_BAD_REQUEST: исправьте реализацию отправителя и сформируйте запрос заново. - Свяжите
NS_E_DRM_BAD_REQUESTс текущим объектом WMDRM для сетевых устройств и запрошенным действием. - Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что
NS_E_DRM_BAD_REQUESTне заменена другой ошибкой политики или доверия.
Восстановление на правильном уровне
Правильное оперативное действие — исправить реализацию отправителя и сформировать запрос заново. Для NS_E_DRM_BAD_REQUEST успех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- Данные для
NS_E_DRM_BAD_REQUESTлегко уничтожить; не удаляйте всю базу регистрации устройств до сохранения сбойной записи устройства и цепочки сертификатов: иначе исчезает различие между сбоями регистрации, одобрения, проверки и сеанса. - Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления
NS_E_DRM_BAD_REQUEST; это обходит решение, а не исправляет его входные данные. - Сохраните один сбойный и один исправленный артефакт, чтобы устранение
NS_E_DRM_BAD_REQUESTможно было проверять при регрессионном тестировании.
Повторная проверка исходного случая
В итоговом тесте NS_E_DRM_BAD_REQUEST по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай NS_E_DRM_BAD_REQUEST разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для NS_E_DRM_BAD_REQUEST
- Windows Media DRM 10 для сетевых устройств — описывает нормативный рабочий процесс, относящийся к NS_E_DRM_BAD_REQUEST.
- Регистрация устройства — перечисляет переходы безопасности и состояния, используемые при интерпретации NS_E_DRM_BAD_REQUEST.
- Использование протокола WMDRM-ND — определяет объекты платформы, используемые при диагностике NS_E_DRM_BAD_REQUEST.
- Спецификация протокола MS-DRMND — документирует границу протокола или API, связанную с NS_E_DRM_BAD_REQUEST.
Нужно найти другой код? Найти другой код состояния или ошибки.