Что означает код HRESULT 0x8004022E (VFW_E_TIMEOUT)?

 
Предыдущий Следующий
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 узкого места. Только после этого имеет смысл возвращать остальные фильтры.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.