| Предыдущий | Следующий |
| VFW_E_TIMEOUT | VFW_E_ENUM_OUT_OF_RANGE |
VFW_E_INVALID_FILE_FORMAT
Практический смысл
VFW_E_INVALID_FILE_FORMAT (0X8004022F) — результат DirectShow. Исходное описание: AllStat records its meaning as “The file format is invalid”.
. Начните с минимального вызова, который воспроизводит состояние, и сохраните topology до любого rebuild graph.
Конкретные признаки контракта
- Evidence to collect
Capture 1 for this result: file length, signature bytes and parser CLSID.
- Evidence to collect
Capture 2 for this result: first offset or structure rejected by the source filter.
- Likely causes
Possible cause 2 for this result: file content does not match its extension or advertised media type.
- Meaning and numerical form
VFW_E_INVALID_FILE_FORMAT is HRESULT 2147746351 ( 0x8004022F ; signed -2147220945). AllStat records its meaning as “The file format is invalid”. In practical terms, it is returned when DirectShow recognizes the file-loading path but determines that the file structure is invalid for the selected parser or source filter.
- Likely causes
Possible cause 3 for this result: truncation or corruption damages required structural data.
- Correction and retry boundary
Corrective action 3 for this result: avoid forcing a parser solely from the file extension.
- Practical scenario
A file has a valid-looking extension but a damaged container header; replacing the file resolves it. The result scenario narrows the result to a reproducible contract boundary and supplies a concrete before-and-after test.
Что проверить в trace
Сохраните exact method, filter CLSID/friendly name, connected pins, media type, graph state и generation, clock/rate либо sample timestamps, если они участвуют в этой операции. Для persisted data дополнительно фиксируйте offending field или byte range, а для renderer/device path — выбранный hardware capability.
Как отделить этот случай от соседних
Сопоставьте каждый приведённый выше признак с фактическим вызовом. Если условие из исходного контракта не выполняется, не переносите recovery от другого VFW-кода. Если после rebuild или re-enumeration результат исчезает, отдельно проверьте stale object, race и изменение topology.
Исправление и подтверждение
Меняйте только подтверждённую причину: входной параметр, media type, timing, filter connection, renderer/device capability, persisted field или текущее состояние graph. После изменения повторите тот же минимальный сценарий и сравните topology и первый HRESULT до и после исправления.
Технические ссылки
- Microsoft: DirectShow error and success codes.
- Microsoft: IGraphBuilder::RenderFile.
- Microsoft: DirectShow graph building.
Нужно найти другой код? Найти другой код состояния или ошибки.
