| Предыдущий | Следующий |
| TPC_E_INVALID_CONFIGURATION | TPC_E_INVALID_DATA_FROM_RECOGNIZER |
VFW_E_NO_ADVISE_SET
Практический смысл
VFW_E_NO_ADVISE_SET (0X80040239) относится к DirectShow. Это failure HRESULT. Исходный признак результата зафиксирован в документации как исходное описание результата VFW_E_NO_ADVISE_SET
.
Код следует трактовать вместе с этапом операции. Если его впервые видно только наверху стека, добавьте tracing ниже до места первоначального возврата. Для этой страницы ключевая граница формулируется так: исходное описание результата VFW_E_NO_ADVISE_SET
Специфичные признаки исходного описания
VFW_E_NO_ADVISE_SET is HRESULT 2147746361 ( 0x80040239 ; signed -2147220935). AllStat records its meaning as “This Advise cannot be canceled because it was not successfully set”. In practical terms, it is returned when code attempts to cancel an overlay advise relationship that was never successfully established.
The severity bit in 0x80040239 is set, so this result is a failure result rather than a success or informational status.
Possible cause 1 for this result: the original Advise call failed but cleanup still calls unadvise.
Possible cause 2 for this result: the link was already cleared during disconnect.
Possible cause 3 for this result: a stale owner assumes another graph generation has the same advise state.
Graph state, pin transport, negotiated media types, allocators, clocks, samples, renderers and source filters contribute separate contracts to the operation.
Что сохранить до исправления
- 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.
Исправление и повторная проверка
Повтор безопасен только после изменения входа, capability, состояния или object generation; простой цикл retry без новой причины не считается исправлением.
Дополнительные признаки конкретного сценария
Capture 3 for this result: all clear, disconnect and teardown calls.
Capture 1 for this result: result and token from the original Advise call.
Possible cause 3 for this result: a stale owner assumes another graph generation has the same advise state.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.