Site icon EfmSoft

Что означает код HRESULT 0xC00D1B7A (NS_E_SOURCEGROUP_NOTPREPARED)?

 
Предыдущий Следующий
NS_E_ARCHIVE_FILENAME_NOTSET NS_E_PROFILE_MISMATCH

NS_E_SOURCEGROUP_NOTPREPARED

Диагностический смысл помимо стандартного текста

Для NS_E_SOURCEGROUP_NOTPREPARED (0xC00D1B7A) диагностически значимое событие — Этот фрагмент описывает диагностическую границу «невозможно приостановить прямую трансляцию»; сохраните точный вход, состояние объекта и первый внутренний результат, затем измените только ответственное условие.. Сохраняйте границу, вернувшую этот результат, вместе с исходным обратный вызов Encoder или вызовом COM.

Почему сеанс может дойти до этой точки

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

Один и тот же метод может быть допустим в одном состоянии Encoder и отклонён в другом без какого-либо дефекта файла, кодека или сети в сеансе, возвращающем этот результат. Один конкретный способ получить это условие: код игнорирует неудачный вызов PrepareToEncode и сразу вызывает Start. Он нужно сохранить поколение объекта и числовые параметры, а не только снимок итогового диалогового окна.

Поля трассировки, имеющие диагностическую ценность

ПолеЧто сохранить
Решающие значенияидентификатор группы источников, результат PrepareToEncode, назначение профиля и состояние обнаружения формата источника
Объект, вернувший ошибкутекущий Encoder RunState, активную группу источников, вызовы PrepareToEncode, порядок запуска/паузы/остановки, состояние архива, поток и обратный вызов, инициировавшие операцию, и первый HRESULT перехода состояния
Сопоставление с сеансомто же поколение группы источников, индекс аудитории, идентификатор объекта и последовательность обратных вызовов, в которой был получен этот результат
Данные нижнего уровняпервый HRESULT COM, драйвера, файловой системы или кодека, зарегистрированный до того, как Encoder сопоставил условие с ним
Контролируемое сравнениезаведомо исправный сеанс, в котором изменяется только параметр, относящийся

Матрица решений

НаблюдениеКак это интерпретировать
Наблюдение, подтверждающее онРешающие данные: идентификатор группы источников, результат PrepareToEncode, назначение профиля и состояние обнаружения формата источника. Они подтверждают условие «попытка активировать или запустить группу источников до успешного завершения PrepareToEncode» в том же поколении объекта.
Наблюдение, указывающее на более ранний сбойЗафиксированные значения удовлетворяют правилу этой границы, но источник, драйвер, активация COM или операция с файлом раньше возвращает другой HRESULT.
Наблюдение, указывающее на более поздний сбойEncoder проходит эту границу («попытка активировать или запустить группу источников до успешного завершения PrepareToEncode»), но затем кодек, архива или приёмника широковещательной передачи завершается ошибкой на следующем этапе.
Проверка после исправленияПримените одно изолированное изменение: устраните более раннюю ошибку подготовки и подготовьте ту же группу до её активации. После этого исходный вызов должен пройти ту же контрольную точку для состояния «попытка активировать или запустить группу источников до успешного завершения PrepareToEncode».

Практическое влияние он ограничено этапом, которому принадлежит условие «попытка активировать или запустить группу источников до успешного завершения PrepareToEncode». Сам по себе код не доказывает, что повреждены все входные данные, отсутствуют все кодеки или полностью неработоспособна установка Windows Media. Типичный сценарий: код игнорирует неудачный вызов PrepareToEncode и сразу вызывает Start. Сохраните первый вызов, завершившийся ошибкой, и идентификатор соответствующего объекта, чтобы последующая ошибка интерфейса не скрыла данные о границе «попытка активировать или запустить группу источников до успешного завершения PrepareToEncode».

Путь принятия решения

  1. Зафиксируйте 0xC00D1B7A, он, версию Encoder и точный вызов API или обращение к свойству, вернувшее он.
  2. Экспортируйте текущую конфигурацию .wme или .prx, затем зафиксируйте идентификатор группы источников, результат PrepareToEncode, назначение профиля и состояние обнаружения формата источника.
  3. Проверяйте предусловие последовательности конечный автомат Encoder, не меняя одновременно источник, профиль и выходной приёмник.
  4. Выполните одно контролируемое сравнение, изменив только это условие: устраните более раннюю ошибку подготовки и подготовьте ту же группу до её активации.
  5. После изменения пересоздайте затронутый объект Encoder, а не предполагайте, что существующий граф автоматически отбросил прежнее ошибочное состояние.

Коды с похожими симптомами, но другими владельцами

РезультатПочему это другая граница
NS_E_INVALIDCALL_WHILE_ARCHIVAL_RUNNINGпопытка изменить конфигурацию архива, пока архивный приёмник активен
NS_E_INVALIDCALL_WHILE_ENCODER_STOPPEDвызов метода, допустимого только во время работы, после остановки Encoder
NS_E_NO_ACTIVE_SOURCEGROUPОн относится к операции, для которой должна быть выбрана активная группа источников; сохраните точный вход, состояние объекта и первый внутренний результат, затем измените только ответственное условие.

Безопасное восстановление

Устраните условие-источник: устраните более раннюю ошибку подготовки и подготовьте ту же группу до её активации. Затем перестройте только ту часть граф Encoder, которую затрагивает он и проверьте исходный вызов.

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

Исходные материалы


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

Exit mobile version