| Предыдущий | Следующий |
| MACH_SEND_INVALID_HEADER | MACH_SEND_INVALID_CONTEXT |
MACH_SEND_INVALID_TRAILER
Почему обычные клиенты редко должны видеть этот результат
MACH_SEND_INVALID_TRAILER связан с MACH_SEND_TRAILER — параметром, позволяющим привилегированному отправителю предоставлять форматированные атрибуты сообщения вместо создания ядром обычного трейлера приёма. Справочный интерфейс требует, чтобы переданный трейлер соответствовал последнему поддерживаемому ядром формату, и указывает на специализированное назначение этой возможности; обычным пользовательским процессам, как правило, не следует самостоятельно формировать такой трейлер.
К этому результату могут привести устаревшая закрытая структура ядра, трейлер, добавленный по неверному адресу, неправильный размер или отсутствие привилегий. Это не общая ошибка проверки полезной нагрузки, и повтор неизменённых данных не поможет. Обычно правильное действие — удалить путь с ручным трейлером или обновить компонент, задача которого состоит в воспроизведении атрибутов сообщений ядра.
Как диагностировать
- Убедитесь, что
MACH_SEND_TRAILERдействительно необходим; большинству IPC в пользовательском режиме этот параметр не нужен. - Проверьте версию и размер трейлера, его размещение после сообщения и различие между размером сообщения и размером трейлера.
- Проверьте модель привилегий вызывающей стороны вместо попыток заменить создаваемый ядром трейлер.
- Привязывайте закрытый IPC-код ядра к точным поддерживаемым интерфейсам XNU целевой системы.
Ссылки
- Справочник интерфейса ядра Mach: mach_msg
- Исходный код Apple XNU: mach/message.h
- Руководство Apple по программированию ядра: обзор Mach
Нужно найти другой код? Найти другой код состояния или ошибки.