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

 
Предыдущий Следующий
kIOConfigNoEntry kIOFireWireLastDCLToken

kIOFireWirePending

Уведомление о состоянии, а не завершённая транзакция

kIOFireWirePending означает, что операция семейства FireWire находится в очереди и ждёт выполнения. Это не ответ удалённого устройства и не доказательство отказа. Управляющий API должен позже сообщить обратный вызов, ответ, отмену, результат сброса или тайм-аут согласно типу операции.

Асинхронная работа FireWire чувствительна к поколению шины и состоянию контроллера. Повторная отправка ожидающего запроса может создать дубликат или нарушить порядок; отмена без понимания владения может уничтожить единственный путь результата. Обычно нужно сохранять идентичность запроса и следить за переходом состояния.

Отслеживайте запрос до завершения

  • Запишите стабильный идентификатор, целевой узел, тип транзакции, поколение шины и время постановки.
  • Сопоставьте последующие ответы со сбросом шины, удалением устройства, питанием и локальной отменой.
  • Освобождайте ёмкость через механизм завершения API, а не рассматривайте pending как разрешение на дубликат.
  • Используйте тайм-аут, соответствующий команде и топологии, а не цикл активного опроса.

Ссылки


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