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

 
Предыдущий Следующий
kIOReturnNotPrivileged kIOReturnLockedRead

kIOReturnBadArgument

Сначала проверьте контракт API, а не оборудование

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

Сохраните запрос в точности на границе API. В частности, структура с правильным типом C всё равно может быть недопустимой, если её версия, размер, зарезервированные поля, количество или диапазон связанного буфера не соответствуют активному интерфейсу. Этот результат также отличается от kIOReturnBadMessageID и от более конкретной ошибки выравнивания, о которой сообщает kIOReturnNotAligned.

Проверки, помогающие сузить причину

  • Проверьте каждый входной диапазон, число байтов, время жизни указателя и предварительные условия, зависящие от селектора.
  • Убедитесь, что структуры запроса и ответа соответствуют заголовочным файлам и SDK, с которыми была собрана вызывающая сторона.
  • До вызова журналируйте значения и длины полей в обезличенном и воспроизводимом виде.
  • Проверьте минимальный документированный запрос, затем добавляйте необязательные поля по одному.

Ссылки


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