| Предыдущий | Следующий |
| TPC_E_INVALID_RIGHTS | TPC_E_OUT_OF_ORDER_CALL |
VFW_E_ADVISE_ALREADY_SET
Практический смысл
VFW_E_ADVISE_ALREADY_SET (0X80040236) относится к DirectShow filter graph. Конкретный признак: уведомление или advise-связь уже настроена. Этот код локализует конкретную границу, а не общий сбой подсистемы.
Это failure HRESULT; успешность следующего шага подтверждайте отдельным результатом, а не отсутствием исключения в верхнем слое. В первую очередь проверяйте конкретный stage filter graph: pin negotiation, media type, allocator, renderer, source filter или graph lifecycle. Не переносите вывод с соседнего HRESULT только потому, что у него тот же facility или общий компонент.
Специфичные признаки исходного описания
In practical terms, it is returned when an IOverlay advise link is already installed when code attempts to set another one.
The decisive condition is this: an IOverlay advise link is already installed when code attempts to set another one.
AllStat records its meaning as “An overlay advise link already exists”.
Likely causes Possible cause 1 for this result: initialization runs twice without clearing the previous advise sink.
Что сохранить до исправления
- interface/method и CLSID первого компонента, вернувшего HRESULT
- graph state, pin names и negotiated media type
- allocator/renderer/device state и первый preceding HRESULT
Как проверить границу
Сравнивайте повтор только с тем же типом объекта и тем же этапом операции; изменение topology или lifecycle уже означает другой эксперимент. Для состояния «уведомление или advise-связь уже настроена» сначала воспроизведите минимальную операцию без параллельных изменений конфигурации, затем сравните before/after evidence.
Исправление и повтор
Исправляйте только подтверждённый prerequisite на уровне DirectShow filter graph: входной параметр, capability, object state, provider/graph topology или внешний ресурс. После изменения заново получите актуальные объекты, если их состояние могло устареть, и повторите исходный минимальный вызов.
Отдельная проверка overlay advise
Здесь ключевой объект — именно связь уведомлений IOverlay, а не загрузка source filter. Перед повтором выясните, кто установил первый advise sink, сохранился ли он после reconnect renderer и какой контроллер пытается зарегистрировать второй. Коррекция должна либо использовать уже существующую связь, либо штатно удалить прежнего получателя перед новой регистрацией. Проверка файлов, media type или поиска фильтра не подтверждает исправление этого результата.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
