| Предыдущий | Следующий |
| kIOConfigNoEntry | kIOFireWireLastDCLToken |
kIOFireWirePending
Уведомление о состоянии, а не завершённая транзакция
kIOFireWirePending означает, что операция семейства FireWire находится в очереди и ждёт выполнения. Это не ответ удалённого устройства и не доказательство отказа. Управляющий API должен позже сообщить обратный вызов, ответ, отмену, результат сброса или тайм-аут согласно типу операции.
Асинхронная работа FireWire чувствительна к поколению шины и состоянию контроллера. Повторная отправка ожидающего запроса может создать дубликат или нарушить порядок; отмена без понимания владения может уничтожить единственный путь результата. Обычно нужно сохранять идентичность запроса и следить за переходом состояния.
Отслеживайте запрос до завершения
- Запишите стабильный идентификатор, целевой узел, тип транзакции, поколение шины и время постановки.
- Сопоставьте последующие ответы со сбросом шины, удалением устройства, питанием и локальной отменой.
- Освобождайте ёмкость через механизм завершения API, а не рассматривайте pending как разрешение на дубликат.
- Используйте тайм-аут, соответствующий команде и топологии, а не цикл активного опроса.
Ссылки
- Apple: IOFireWireFamilyCommon.h
- Apple: IOFireWireDeviceInterface
- Ядро Linux: интерфейс драйвера FireWire
Нужно найти другой код? Найти другой код состояния или ошибки.