Что означает код HRESULT 0xC00D36DF (MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS)?

 
Предыдущий Следующий
MF_E_UNRECOVERABLE_ERROR_OCCURRED MF_E_SAMPLE_NOT_WRITABLE

MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS

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

MF_E_SAMPLE_HAS_TOO_MANY_BUFFERS (0xC00D36DF) — Предоставленный образец содержит слишком много буферов.

При результате 0xC00D36DF граница диагностики проходит внутри подсистемы «COM/WinRT», в области «контракт вызываемого interface, аргументы и state объекта». Здесь сообщение «предоставленный образец содержит слишком много буферов» связано с темой «mf, sample, превышение, много, buffers».

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

Не начинайте с общего сброса компонента: сопоставьте первый отказ с фактическими параметрами операции. При 0xC00D36DF и условии «предоставленный образец содержит слишком много буферов» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.

Для воспроизведения 0xC00D36DF сохраните IID и method, thread/apartment, argument values, object state и исходный HRESULT; отдельно запишите IMFSample, IMFMediaBuffer, IMFSample::AddBuffer. По теме «mf, sample, превышение, много, buffers» для 0xC00D36DF сравните эти данные с исправным запуском до очистки журналов или пересоздания объекта.

Для 0xC00D36DF применяйте исправление на границе первого отказа: исправьте параметры и жизненный цикл объекта в соответствии с контрактом первого неуспешного метода. Сообщение «предоставленный образец содержит слишком много буферов» при 0xC00D36DF не следует подавлять общей обработкой исключения.

Закройте диагностику после двух проверок: исходный сценарий проходит без результата 0xC00D36DF, а заведомо неверный вход отклоняется на ожидаемой границе.

Документация для результата 0xC00D36DF: IMFSample::AddBuffer · ConvertToContiguousBuffer · Wine: IMFSample buffer-list contract.


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