Что означает код HRESULT 0xC00D7170 (MF_E_INSUFFICIENT_BUFFER)?

 
Предыдущий Следующий
MF_E_PEAUTH_SESSION_NOT_STARTED MF_E_PEAUTH_PUBLICKEY_REVOKED

MF_E_INSUFFICIENT_BUFFER

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

MF_E_INSUFFICIENT_BUFFER (0xC00D7170) — Недостаточно памяти для ответа.

Несмотря на русское системное описание, этот HRESULT обычно говорит не о нехватке памяти компьютера, а о слишком маленьком выходном буфере, переданном вызывающим кодом. API не может поместить в него строку, двоичный блок, список или другую структуру результата.

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

Зафиксируйте переданный размер и требуемый размер, если метод его возвращает. Проверьте единицы: байты, символы и число элементов нельзя взаимозаменять; отдельно учитывайте завершающий ноль там, где он входит в контракт.

Если API поддерживает двухшаговый шаблон, сначала запросите требуемый размер без хранения результата, затем выделите буфер подходящего размера и повторите вызов. Между этими двумя вызовами учитывайте, может ли размер динамически измениться.

Отличайте этот код от MF_E_RT_OUTOFMEMORY и других ошибок реального исчерпания ресурсов: увеличение системной памяти не исправляет неверно рассчитанный буфер вызывающего кода.

Документация для результата 0xC00D7170: Media Foundation architecture · Media Foundation error codes · Media samples.


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