| Предыдущий | Следующий |
| NS_E_DRM_INVALID_SESSION | NS_E_DRM_DEVICE_ALREADY_REGISTERED |
NS_E_DRM_DEVICE_NOT_OPEN
Сначала анализируйте код, затем диалоговое окно
Компонент, сформировавший 0xC00D28AA определила, что приложение попыталось выполнить защищённую передачу до открытия проверенного зарегистрированного устройства. Диагностика NS_E_DRM_DEVICE_NOT_OPEN поэтому начинается на уровне Windows Media DRM для сетевых устройств — слой протокола передатчика и приёмника, который регистрирует сетевое устройство воспроизведения, подтверждает его, проверяет близость, открывает защищённый сеанс и преобразует лицензированное содержимое для приёмника.
Сначала подтвердите формирующий компонент: зафиксируйте точный API, состояние объекта, идентификаторы входных данных и первый конкретный результат нижнего уровня, применительно к состоянию «защищённое устройство не открыто». Штатное описание AllStat приведено выше; этот раздел посвящён состоянию объекта и данным, позволяющим отличить NS_E_DRM_DEVICE_NOT_OPEN от соседних ошибок Windows Media.
Сопоставьте владельца и политику
Граф объектов NS_E_DRM_DEVICE_NOT_OPEN включает сертификат и серийный номер устройства, запись регистрации, флаг подтверждения, время проверки, сетевой сеанс, сообщение протокола и политику преобразования. В трассировке NS_E_DRM_DEVICE_NOT_OPEN сохраните точный тип сообщения WMDRM-ND, идентификатор устройства, цепочку сертификатов, состояние регистрации, время обмена и первый HRESULT протокола.
Более поздняя общая ошибка не должна заменять эти сведения: исходным условием остаётся попытка защищённой передачи до открытия проверенного зарегистрированного устройства.
Почему важен первый HRESULT
Переход, возвращающий NS_E_DRM_DEVICE_NOT_OPEN начинается с проверки состояния зарегистрированного устройства непосредственно перед transcrypt/send. Если наблюдение подтверждается, перейти к следующему состоянию можно только после вызова штатной операции открытия, следующей за регистрацией, подтверждением и проверкой. Сохранение NS_E_DRM_DEVICE_NOT_OPEN также показывает, использовала ли повторная попытка устаревшее состояние или действительно повторно оценила исправленные входные данные.
Минимальный набор данных
| Поле | Значение для NS_E_DRM_DEVICE_NOT_OPEN |
|---|---|
| Владелец | операция, API или обратный вызов, идентификатор объекта или сеанса и версия компонента или устройства, связанные с NS_E_DRM_DEVICE_NOT_OPEN |
| Прямая проверка | проверьте состояние зарегистрированного устройства непосредственно перед transcrypt/send |
| Входные данные политики | запрошенное действие и точное свойство лицензии, сертификата, профиля, выхода или регистрации, проверяемое при NS_E_DRM_DEVICE_NOT_OPEN |
| Временное состояние | доверенное или системное время, интервал действия, последовательность запросов и номер повторной попытки, если они влияют на NS_E_DRM_DEVICE_NOT_OPEN |
| Результат нижнего уровня | самый ранний статус хранилища, сети, криптографического компонента, драйвера или поставщика перед итоговой оболочкой NS_E_DRM_DEVICE_NOT_OPEN |
Отличие от связанных результатов
| Результат | Почему он указывает на другую причину |
|---|---|
NS_E_DRM_INVALID_PROXIMITY_RESPONSE | Недопустимый ответ проверки близости устройства |
NS_E_DRM_INVALID_SESSION | Недопустимый сеанс DRM |
NS_E_DRM_DEVICE_ALREADY_REGISTERED | Устройство DRM уже зарегистрировано |
Итоговое диалоговое окно может быть шире
Для NS_E_DRM_DEVICE_NOT_OPEN, установлен факт состояния «защищённое устройство не открыто». Для NS_E_DRM_DEVICE_NOT_OPENэтот факт сам по себе не доказывает повреждение медиаданных, отсутствие декодера, общий сетевой сбой или недействительность прав для всех остальных действий.
Если Player, кодировщик, программа установки или уровень устройства позднее выдаёт более общую ошибку, сохраните NS_E_DRM_DEVICE_NOT_OPEN как первый конкретный результат. Объект и операция, связанные с NS_E_DRM_DEVICE_NOT_OPEN , обычно диагностически ценнее более позднего результата очистки или сводного сообщения интерфейса.
Контролируемое воспроизведение
- Сохраните
NS_E_DRM_DEVICE_NOT_OPENи0xC00D28AAдо очистки, перехода к резервному пути или смены контекста другим медиаэлементом. - Примените узкое исправление для
NS_E_DRM_DEVICE_NOT_OPEN: вызовите поддерживаемую операцию открытия после регистрации, подтверждения и проверки устройства. - Свяжите
NS_E_DRM_DEVICE_NOT_OPENс текущим объектом WMDRM для сетевых устройств и запрошенным действием. - Выполните прямую проверку для
NS_E_DRM_DEVICE_NOT_OPEN: проверьте состояние зарегистрированного устройства непосредственно перед transcrypt/send. - Сравните сбой с заведомо исправным случаем, изменив только условие «защищённое устройство не открыто».
- Повторите то же действие с тем же содержимым и идентификатором устройства и убедитесь, что
NS_E_DRM_DEVICE_NOT_OPENне заменена другой ошибкой политики или доверия.
Восстановление на правильном уровне
Исправьте условие непосредственно на этом уровне: исправьте состояние или входные данные на уровне, сформировавшем ошибку, и повторите операцию с новым объектом. Для NS_E_DRM_DEVICE_NOT_OPENуспех означает принятие того же запрошенного действия после этого точного изменения состояния, а не просто работу другого файла или устройства.
- При расследовании NS_E_DRM_DEVICE_NOT_OPEN не удаляйте всю базу регистрации устройств до сохранения сбойной записи устройства и цепочки сертификатов: иначе исчезнет различие между ошибками регистрации, подтверждения, проверки и сеанса.
- Не изменяйте доверенное время, контроль отзыва, проверку сертификатов или политику выхода только ради подавления
NS_E_DRM_DEVICE_NOT_OPEN; это обходит решение, а не исправляет его входные данные. - Сохраните один сбойный и один исправленный артефакт, чтобы устранение
NS_E_DRM_DEVICE_NOT_OPENможно было проверять при регрессионном тестировании.
Повторная проверка исходного случая
В итоговом тесте NS_E_DRM_DEVICE_NOT_OPEN по возможности оставьте неизменными KID содержимого или хэш файла, запрошенное действие, пользователя или учётную запись, идентификатор устройства и маршрут выхода. Случай NS_E_DRM_DEVICE_NOT_OPEN разрешён только тогда, когда операция завершается без этого HRESULT и без замещающей ошибки соседней проверки лицензии, доверия, сеанса или политики.
Технические ссылки для NS_E_DRM_DEVICE_NOT_OPEN
- Windows Media DRM 10 для сетевых устройств — описывает нормативный рабочий процесс, относящийся к NS_E_DRM_DEVICE_NOT_OPEN.
- Регистрация устройства — перечисляет переходы безопасности и состояния, используемые при интерпретации NS_E_DRM_DEVICE_NOT_OPEN.
- Использование протокола WMDRM-ND — определяет объекты платформы, используемые при диагностике NS_E_DRM_DEVICE_NOT_OPEN.
- Спецификация протокола MS-DRMND — документирует границу протокола или API, связанную с NS_E_DRM_DEVICE_NOT_OPEN.
Нужно найти другой код? Найти другой код состояния или ошибки.