Что означает код возврата ядра macOS 4 (KERN_INVALID_ARGUMENT)?

 
Также может означать:
КонстантаТипОС
ERROR_TOO_MANY_OPEN_FILESОшибка WindowsWindows
ippStsInvZeroСтатус Intel IPPЛюбая
EINTRerrnoЛюбая
INVALID_DATA_ACCESS_TRAPКод BSODWindows
Предыдущий Следующий
KERN_NO_SPACE KERN_FAILURE

KERN_INVALID_ARGUMENT

KERN_INVALID_ARGUMENT — это ошибка контракта Mach для аргумента, который недопустим для запрошенной операции или неприменим к типу объекта этой операции. Сам по себе статус не указывает конкретный параметр: ошибочным значением может быть порт, адрес, количество, селектор, маска защиты или другое поле, специфичное для API.

Отличайте этот результат от KERN_INVALID_VALUE. XNU описывает последний как ошибку диапазона, тогда как KERN_INVALID_ARGUMENT также охватывает значение неправильного вида или не имеющее смысла для данного вызова. Поэтому вызывающая сторона должна сохранять точную процедуру Mach и полный набор входных данных, а не считать каждую ошибку аргумента числовым выходом за границы.

Полезная диагностическая запись

  • Запишите API Mach, задействованную задачу или порт и все скалярные аргументы в единицах, требуемых этим API.
  • Для входных данных «указатель и длина» проверяйте весь диапазон и требуемое выравнивание, а не только начальный адрес.
  • Проверьте, допустимы ли бит параметров или право объекта для этой операции, а не просто ненулевые ли они.
  • Не преобразуйте результат непосредственно в POSIX EINVAL без сохранения исходного статуса Mach.

Ссылки


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