| Предыдущий | Следующий |
| hrFileAccessDenied | hrTooManyColumns |
hrBufferTooSmall
Что означает hrBufferTooSmall
hrBufferTooSmall (0xC800040E) — буфер слишком мал.
Это старый HRESULT-вариант результата ESE (расширяемый механизм хранения, ESENT); в JET API соответствующее условие известно как JET_errBufferTooSmall.
Что проверить
- Сравните требуемый и фактически переданный размер буфера либо лимит исчерпавшегося ресурса ESE. Некоторые warning-статусы при этом всё равно возвращают полезные выходные данные.
- Сохраните размеры, тип операции и число живых объектов до повтора — это позволяет отличить нормальное увеличение результата от утечки ресурсов.
Практический смысл и диагностика
- Выходной буфер, переданный вызывающим кодом слишком мала, чтобы вместить значение, которое ESE пытается вернуть.
- hrInvalidBufferSize обычно означает нарушение контракт fixed-size column/input, а не стандартный обычный сценарий увеличения буфера и повтора.
- Если API возвращает требуемую длину, выделите буфер этого размера с overflow checks и повторите только безопасную non-destructive read operation.
- Не увеличивайте fixed-width input field как будто это variable выходной буфер: сначала проверьте контракт конкретного ESE API.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.