| Предыдущий | Следующий |
| kIOReturnNoFrames | kIOReturnNotPermitted |
kIOReturnMessageTooLarge
Ошибка на границе полезной нагрузки
kIOReturnMessageTooLarge означает получение сообщения чрезмерного размера. Ограничение относится к интерфейсу IOKit, сообщившему статус; общее значение не определяет, является ли это фиксированным максимумом протокола, несоответствием размера буфера или особым путём уведомлений семейства.
Не путайте с kIOReturnBadMessageID. Тот статус означает несогласованность идентичности сообщения, а этот — размера поступившего сообщения. Обрезание управляющего сообщения без документированного правила фрейминга может незаметно повредить протокол, поэтому сначала проверьте лимит.
Как диагностировать
- Запишите заявленный и фактический размеры, тип или селектор сообщения и максимум, ожидаемый обеими сторонами.
- Проверьте упаковку структур, поля длины, изменения версий и расчёт полезной нагрузки переменной длины.
- Убедитесь, что буфер получателя и длина отправителя используют одинаковые единицы и границы.
- Отклоняйте или разделяйте данные только по документированным правилам фрейминга и завершения интерфейса.
Ссылки
- Исходный код Apple XNU: IOReturn.h
- Apple: обзор архитектуры IOKit
- Apple: введение в IOKit Fundamentals
Нужно найти другой код? Найти другой код состояния или ошибки.
