| Предыдущий | Следующий |
| VFW_E_DUPLICATE_NAME | VFW_E_INVALID_FILE_FORMAT |
VFW_E_TIMEOUT
Что означает VFW_E_TIMEOUT
VFW_E_TIMEOUT означает, что операция DirectShow не завершилась в установленный срок. Сам код не показывает, какой фильтр или внешний ресурс удерживает граф.
Как локализовать ожидание
Увеличение общего тайм-аута лишь маскирует проблему. Нужно увидеть состояние потоков в момент зависания и определить, ждёт ли граф сеть/устройство или возникла взаимная блокировка.
- Сохраните точный метод DirectShow и переход состояния, который ожидал завершения.
- Снимите стеки и wait chains streaming/control threads.
- Проверьте, не удерживается ли graph-related lock во время блокирующего I/O.
- Сопоставьте события источника или устройства со всем интервалом ожидания.
Контрольный тест
Минимальный граф должен завершать тот же переход в исходный тайм-аут после устранения конкретного lock/I/O узкого места. Только после этого имеет смысл возвращать остальные фильтры.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
