Site icon EfmSoft

Что означает код HRESULT 0x80080011 (MEM_E_INVALID_SIZE)?

 
Предыдущий Следующий
MEM_E_INVALID_LINK CO_E_MISSING_DISPLAYNAME

MEM_E_INVALID_SIZE

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

MEM_E_INVALID_SIZE (0x80080011) означает, что размер блока или диапазона памяти не укладывается в ограничения операции: значение может быть слишком большим, несовместимым со структурой либо полученным после переполнения арифметики размеров.

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

Сохраните исходные count, element size, alignment и итоговый byte size непосредственно перед вызовом. Отдельно проверьте умножение и сложение размеров на переполнение, преобразования между 32- и 64-битными типами, отрицательные значения после signed conversion и округление до требуемого alignment.

Для контроля вычислите размер теми же типами, что использует API, и сравните его с фактически выделенным буфером и документированным максимумом операции. Исправление подтверждается, когда расчёт не переполняется, диапазон целиком помещается в allocation и тот же вход больше не приводит к 0x80080011.

Справка: Windows heap functions · HeapAlloc.


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

Exit mobile version