Что означает код HRESULT 0xC00D3A9A (MF_E_ASF_INVALIDDATA)?

 
Предыдущий Следующий
MF_E_ASF_MISSINGDATA MF_E_ASF_OPAQUEPACKET

MF_E_ASF_INVALIDDATA

Что означает MF_E_ASF_INVALIDDATA

MF_E_ASF_INVALIDDATA (0xC00D3A9A) означает, что переданные данные не соответствуют ожидаемой структуре ASF.

Объект данных ASF (Data Object) состоит из контейнерных пакетов с собственными заголовками и границами. Поэтому этот HRESULT может означать как повреждение файла, так и ошибку вызывающего кода, который передал разборщику данные с неправильного смещения или обрезанный пакет.

Что проверить

  • Сверьте абсолютное положение байтового потока с началом объекта данных ASF. Заголовок ASF и данные пакетов — разные области контейнера.
  • После перехода к другой позиции начинайте разбор с корректной границы пакета, найденной через индекс или информацию контейнера, а не с произвольного байтового смещения.
  • Проверьте длину каждого буфера, передаваемого в ParseData: частично прочитанный заголовок пакета может выглядеть как повреждённая структура.
  • Если та же область файла не разбирается независимым разборщиком ASF, сравните источник с заведомо исправной копией: тогда вероятнее повреждён сам контейнер.

MF_E_ASF_INVALIDDATA отличается от MF_E_ASF_MISSINGDATA: здесь имеющиеся байты нельзя корректно интерпретировать как ASF, а MISSINGDATA указывает на пропуск в ожидаемой последовательности.

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


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