| Предыдущий | Следующий |
| TPC_E_INVALID_PACKET_DESCRIPTION | VFW_E_ALREADY_CANCELLED |
VFW_E_TIME_ALREADY_PASSED
Практический смысл
VFW_E_TIME_ALREADY_PASSED (0X80040233) — результат DirectShow. Исходное описание: AllStat records its meaning as “An attempt was made to queue a command for a time in the past”.
. Этот результат локализуйте по interface и состоянию graph непосредственно в момент первого возврата.
Конкретные признаки контракта
- Evidence to collect
Capture 1 for this result: current clock time, requested target and tolerance.
- Evidence to collect
Capture 3 for this result: graph rate, segment start and scheduling latency.
- Likely causes
Possible cause 3 for this result: clock reset or rate change makes a cached target stale.
- Correction and retry boundary
Corrective action 3 for this result: execute late commands immediately only when application semantics allow.
- Meaning and numerical form
VFW_E_TIME_ALREADY_PASSED is HRESULT 2147746355 ( 0x80040233 ; signed -2147220941). AllStat records its meaning as “An attempt was made to queue a command for a time in the past”. In practical terms, it is returned when a DirectShow advise or queued command is scheduled for a reference-clock time that has already passed.
- Likely causes
Possible cause 2 for this result: long preparation delay consumes the scheduling margin.
- Difference from nearby HRESULTs
VFW_E_NO_CLOCK means there is no clock; it means a clock exists but the requested deadline is already behind it. Keep these outcomes separate in logs, exception mappings, user messages, dashboards and automated retry policy.
Что проверить в 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: DirectShow reference clocks.
- Microsoft: IOverlay::Advise.
Нужно найти другой код? Найти другой код состояния или ошибки.
