| Предыдущий | Следующий |
| 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.
Нужно найти другой код? Найти другой код состояния или ошибки.