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

 
Предыдущий Следующий
kIOReturnNotAttached kIOReturnNoSpace

kIOReturnNoChannels

Не удалось выделить ресурс передачи

kIOReturnNoChannels означает, что путь IOKit не смог получить ресурс канала, необходимый операции. Название историческое и не доказывает, что все физические DMA-каналы компьютера навсегда исчерпаны. Семейство драйверов может использовать этот код для недоступной в текущем состоянии устройства очереди, потока или выделения DMA, специфичных для контроллера.

Этот результат отличается от kIOReturnNoFrames: последний означает, что в очередь не поставлены DMA-кадры, тогда как здесь у вызывающей стороны ещё нет пригодного канала или эквивалентного пути передачи. Само по себе увеличение буфера приложения не устраняет конфликт распределения ресурсов.

Как сузить область поиска

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

Ссылки


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