Что означает код HRESULT 0x8004022D (VFW_E_DUPLICATE_NAME)?

 
Предыдущий Следующий
VFW_E_SAMPLE_REJECTED_EOS VFW_E_TIMEOUT

VFW_E_DUPLICATE_NAME

Практический смысл

VFW_E_DUPLICATE_NAME (0X8004022D) относится к DirectShow filter graph. Конкретный признак: в filter graph уже используется такое имя. Это состояние полезно как точка разделения нескольких соседних причин, поэтому не заменяйте его общим сообщением об ошибке.

Это failure HRESULT; успешность следующего шага подтверждайте отдельным результатом, а не отсутствием исключения в верхнем слое. В первую очередь проверяйте конкретный stage filter graph: pin negotiation, media type, allocator, renderer, source filter или graph lifecycle. Не переносите вывод с соседнего HRESULT только потому, что у него тот же facility или общий компонент.

Специфичные признаки исходного описания

  • In practical terms, it is returned when a DirectShow graph cannot add a filter under a name already used by another filter when the operation requires an exact unique name.
  • Confirm that the observed path matches this condition: a DirectShow graph cannot add a filter under a name already used by another filter when the operation requires an exact unique name.
  • Difference from nearby HRESULTs VFW_S_DUPLICATE_NAME is successful addition under a modified name, while it indicates the requested add operation failed.
  • AllStat records its meaning as “An attempt to add a filter with a duplicate name failed”.

Что сохранить до исправления

  • interface/method и CLSID первого компонента, вернувшего HRESULT
  • graph state, pin names и negotiated media type
  • allocator/renderer/device state и первый preceding HRESULT

Как проверить границу

При асинхронной операции сохраняйте как HRESULT запуска/опроса, так и финальный operation HRESULT — они описывают разные границы. Для состояния «в filter graph уже используется такое имя» сначала воспроизведите минимальную операцию без параллельных изменений конфигурации, затем сравните before/after evidence.

Исправление и повтор

Исправляйте только подтверждённый prerequisite на уровне DirectShow filter graph: входной параметр, capability, object state, provider/graph topology или внешний ресурс. После изменения заново получите актуальные объекты, если их состояние могло устареть, и повторите исходный минимальный вызов.

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


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