Что означает код HRESULT 0xC00D2EFC (NS_E_RESOURCE_GONE)?

 
Предыдущий Следующий
NS_E_SERVER_ACCESSDENIED NS_E_NO_EXISTING_PACKETIZER

NS_E_RESOURCE_GONE

NS_E_RESOURCE_GONE в трассировке формата, графа или потоковой передачи

для него (0xC00D2EFC): решающая граница — ранее доступная точка публикации или медиаресурс больше не существует. Диагностируйте контрольную точку потоковой передачи для исчезнувшего ресурса непосредственно и не выводите причину только из видимого симптома воспроизведения.

Запрос потоковой передачи Windows Media проходит DNS, выбор прокси-сервера, согласование протокола, аутентификацию, создание сеанса и доставку пакетов. WMSP и связанные протоколы сохраняют состояние сеанса, поэтому успешное TCP-подключение само по себе не доказывает работоспособность медиасеанса при проверке «ранее доступный медиаресурс исчез». В случае этот результат сохраняйте самый ранний результат нижнего уровня: оболочки способны сопоставить разные причины одному HRESULT.

Близкие результаты не взаимозаменяемы

Главное различие: Код относится к конкретной сетевой или протокольной границе «ранее доступный медиаресурс исчез»; соседний HRESULT нужно диагностировать отдельно по его собственному владельцу.

Близкий HRESULTКак его сравнивать
NS_E_MMS_NOT_SUPPORTEDСравните ответственный API и первое отклонённое значение: это соседняя контрольная точка, а не автоматически та же причина, что и у этот результат.
NS_E_SERVER_ACCESSDENIEDИспользуйте состояние объекта и порядок операций, чтобы определить исходный код, если оба появляются в одной трассировке.
NS_E_NO_EXISTING_PACKETIZERСохраните этот результат отдельно, если он появляется только после устранения условия этот результат.

Анатомия сбоя

Контрольная точка потоковой передачи достигается, когда ранее доступная точка публикации или медиаресурс больше не существует. Вызывающая сторона не должна предполагать существование следующего фильтра, пакета, сеанса или состояния метаданных после него.

Для отрицательного контроля повторите тот же медиа-URL с одним протоколом и одной конечной точкой, раздельно записывая время DNS-разрешения, подключения, ответа и создания сеанса при проверке «ранее доступная точка публикации или медиаресурс больше не существует». Более поздний HRESULT означает, что контрольная точка пройдена, а новый результат относится к другому этапу при локализации исчезнувшего ресурса.

Повторная проверка с сохранением протокола

  1. Запишите 0xC00D2EFC, он, точную операцию и время первого сбоя.
  2. Сохраните исходный URL, выбранный протокол, режим прокси-сервера, разрешённые конечные точки, временные характеристики подключения/ответа, состояние аутентификации, идентификатор сеанса и первый результат сокета или протокола на этапе проверки доступности ресурса.
  3. Не используйте повторно граф, сеанс, объект чтения или объект метаданных, созданные до изменения соответствующей конфигурации или ресурса.
  4. Выполните один изолированный тест: повторите тот же URL после восстановления именно точки публикации или ресурса.
  5. Повторите запрос через тот же API и протокольный тракт; другой Player или локальная копия служат только сравнением и сами по себе не доказывают устранение исходной сетевой границы.
  6. Подтвердите ожидаемое следующее состояние и сохраните любой новый HRESULT как отдельный последующий результат.

Сетевые и протокольные данные

ЗафиксируйтеКак это помогает выделить он
Ответственный вызовЗафиксируйте метод API, идентификатор объекта, поток выполнения или обратный вызов и временную метку для контрольной точки «ранее доступный медиаресурс исчез».
Решающие значенияисходный URL, выбранный протокол, режим прокси-сервера, разрешённые конечные точки, временные характеристики подключения/ответа, состояние аутентификации, идентификатор сеанса и первый результат сокета или протокола на этапе проверки доступности ресурса
Поколение объектаОтметьте время создания объекта чтения, объекта записи, графа, URL-объекта, сеанса потоковой передачи или поставщика метаданных; устаревшее состояние может повторно вызвать он после изменения конфигурации.
Первый вложенный результатСохраните самый ранний статус кодека, COM, сокета, DNS, анализатора или поставщика до него; более поздние сообщения интерфейса менее конкретны.
Случай для сравненияИспользуйте один заведомо рабочий ресурс, проходящий ту же контрольную точку «ранее доступный медиаресурс исчез», и изменяйте только отклонённое предварительное условие.

Интерпретация следующего сетевого состояния

Результат повторной проверкиТолкование для него
Тот же вызов по-прежнему возвращает кодЗначения, определяющие «ранее доступный медиаресурс исчез», не изменились либо вызывающая сторона всё ещё использует объект предыдущего поколения.
Новый объект работает успешноВремя жизни или кэшированное состояние способствовало появлению он; исправьте пересоздание объекта вместо обходного решения на уровне всего компьютера.
Вызов доходит до другого HRESULTИсходная граница пройдена. Диагностируйте новый код отдельно на его собственной стадии формата, графа, URL, сети или метаданных.
Сбой возникает только для одного ресурсаДанные указывают на состояние конкретного содержимого, URL, точки публикации, потока, атрибута или объекта, а не на общий сетевой сбой.

Действия, вводящие в заблуждение

  • не сводите любой HRESULT потоковой передачи к потере пакетов: раздельно фиксируйте DNS, подключение, ответ и этапы сеанса для состояния «ранее доступная точка публикации или медиаресурс больше не существует».
  • Не стирайте данные о первом появлении он многократными повторами; обратные вызовы и повторное подключение могут заменить полезное исходное состояние более поздней ошибкой верхнего уровня.
  • Не публикуйте учётные данные, материалы защищённого содержимого или полные закрытые URL для состояния «ранее доступная точка публикации или медиаресурс больше не существует». Записывайте обезличенные идентификаторы, длины, хэши и поля протокола, необходимые для воспроизведения.

Технические ссылки

Считайте он считайте исправленным только когда тот же API путь проходит эту контрольную точку; успех через другой Player или кэшированные копирование является лишь дополнительным подтверждением.


Нужно найти другой код? Найти другой код состояния или ошибки.