Что означает код HRESULT 0x80040262 (VFW_E_READ_ONLY)?

 
Предыдущий Следующий
VFW_E_NO_TIME_FORMAT VFW_E_BUFFER_UNDERFLOW

VFW_E_READ_ONLY

Практический смысл

VFW_E_READ_ONLY (0X80040262) относится к DirectShow. Это failure HRESULT. Исходный признак результата зафиксирован в документации как The connection cannot be made because the stream is read only and the filter alters the data.

Этот результат нужно связывать с первым нативным возвратом и фактическим состоянием объекта; соседний HRESULT того же facility не доказывает ту же причину. Для этой страницы ключевая граница формулируется так: DirectShow refuses a connection because the upstream stream is read-only while the downstream filter would modify sample data in place.

Специфичные признаки исходного описания

  • AllStat: “The connection cannot be made because the stream is read only and the filter alters the data”.
  • DirectShow refuses a connection because the upstream stream is read-only while the downstream filter would modify sample data in place.
  • Cause 1 for this result: the downstream transform declares writable-buffer requirements.
  • Cause 2 for this result: a source exposes immutable shared memory.
  • Cause 3 for this result: allocator negotiation fails to provide copy-on-write samples.
  • Action 1 for this result: insert a copying transform or choose a non-mutating filter.

Что сохранить до исправления

  • 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 без новой причины не считается исправлением.

Дополнительные признаки конкретного сценария

  • Evidence 3 for this result: which filter intends to modify the buffer.
  • Action 2 for this result: negotiate an allocator that provides writable samples.
  • Action 3 for this result: declare in-place modification requirements accurately.

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


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