Что означает код HRESULT 0x80040247 (VFW_E_INVALID_CLSID)?

 
Предыдущий Следующий
VFW_E_INVALID_FILE_VERSION VFW_E_INVALID_MEDIA_TYPE

VFW_E_INVALID_CLSID

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

VFW_E_INVALID_CLSID (0X80040247) относится к DirectShow. Это failure HRESULT. Исходный признак результата зафиксирован в документации как This file is corrupt: it contains an invalid class identifier.

Код следует трактовать вместе с этапом операции. Если его впервые видно только наверху стека, добавьте tracing ниже до места первоначального возврата. Для этой страницы ключевая граница формулируется так: a stored DirectShow graph names a class identifier that is syntactically invalid or cannot be interpreted as a CLSID while reconstructing the graph.

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

  • AllStat: “This file is corrupt: it contains an invalid class identifier”.
  • a stored DirectShow graph names a class identifier that is syntactically invalid or cannot be interpreted as a CLSID while reconstructing the graph.
  • Cause 1 for this result: the serialized CLSID field is truncated.
  • Cause 2 for this result: text conversion introduced non-hexadecimal characters.
  • Cause 3 for this result: custom persistence wrote an interface IID or arbitrary GUID into a class slot.
  • Action 1 for this result: repair or regenerate the persisted graph from known filter identities.

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

  • interface и method, на котором впервые появился HRESULT
  • CLSID и friendly name задействованных filters, pin names и negotiated media type
  • graph state/generation, renderer или capture device и первый предшествующий HRESULT
  • временные метки media sample, rate/clock state и фактические параметры вызова

Как локализовать границу

Проверяйте filter graph, negotiated media type, timing и состояние конкретного interface, а не наличие codec вообще. Сначала воспроизведите минимальный сценарий без параллельного изменения конфигурации; затем сравните сохранённые параметры с условием из исходного описания. Если состояние исчезает после re-enumeration или пересоздания объекта, отдельно проверьте lifetime/generation race.

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

После исправления повторите тот же минимальный сценарий и убедитесь, что изменился именно подтверждённый prerequisite, а не только порядок событий.

Дополнительные признаки конкретного сценария

  • Evidence 1 for this result: offending byte range or GUID text.
  • Cause 2 for this result: text conversion introduced non-hexadecimal characters.
  • Evidence 3 for this result: original writer build and the expected filter class.

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


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