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

 
Предыдущий Следующий
kIOUSBBufferUnderrunErr kIOUSBNotSent2Err

kIOUSBNotSent1Err

Транзакция не дошла до обычного выполнения на шине

kIOUSBNotSent1Err — один из двух устаревших статусов IOUSBFamily, встроенное описание которых сводится к «Transaction not sent». Это существенно: операция не завершилась ответом устройства, а само возвращаемое значение не сообщает, был ли запрос отклонён до планирования, оставлен при смене состояния контроллера или потерян в рамках более общего сбоя.

Публичный заголовочный файл Apple содержит и kIOUSBNotSent1Err , и kIOUSBNotSent2Err , но не определяет протокольного различия между суффиксами. В диагностике нужно сохранять точное значение, однако нельзя придумывать смысл на стороне устройства по цифре в имени.

Как исследовать состояние без догадок

  • Сопоставьте статус с результатом постановки запроса, состоянием контроллера и порта, а также с предшествующим сбросом, приостановкой, отключением или остановкой конечной точки.
  • Запишите, ставился ли запрос асинхронно и было ли владение им возвращено вызывающей стороне.
  • Проверьте, не сообщается ли отказ до отправки в другом месте той же операции; первый низкоуровневый статус обычно конкретнее.
  • Не повторяйте изменяющую состояние команду только потому, что она не была отправлена: сначала установите, принималась ли она вообще очередью контроллера.

Ссылки


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