Site icon EfmSoft

Что означает код возврата ядра macOS 0x1000000E (MACH_SEND_TOO_LARGE)?

 
Предыдущий Следующий
MACH_SEND_NO_BUFFER MACH_SEND_INVALID_TYPE

MACH_SEND_TOO_LARGE

Это не просто ошибка локального буфера

MACH_SEND_TOO_LARGE означает, что сформированное сообщение Mach превышает размер, который согласен принять целевой порт или текущая реализация IPC. Результат отличается от MACH_SEND_MSG_TOO_SMALL: здесь у вызывающей стороны есть сообщение, но оно слишком велико для отправки как единое целое. XNU не задаёт универсального фиксированного максимума размера сообщения; на крупные отправки могут влиять архитектурные ограничения и временные условия, а исходный код определяет порог надёжности для закрытого использования приложением, а не переносимую общедоступную квоту.

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

Проверки проекта

Ссылки


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

Exit mobile version