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

 
Предыдущий Следующий
kIOUSBHighSpeedSplitError kIOUSBLowLatencyBufferNotPreviouslyAllocated

kIOUSBLowLatencyFrameListNotPreviouslyAllocated

Список состояний кадров не зарегистрирован для low-latency I/O

kIOUSBLowLatencyFrameListNotPreviouslyAllocated — нарушение предусловия устаревшего API низколатентного изохронного ввода-вывода. Запрос содержит список кадров со статусами отдельных изохронных кадров, но IOUSBFamily не подготовил память этого списка через требуемый путь low-latency buffer. Это не означает, что USB-устройство уже потеряло изохронный кадр.

Низколатентный изохронный ввод-вывод отделяет буфер данных от списка состояний кадров. Оба объекта должны иметь правильный срок жизни и правила отображения. Подготовка только полезной нагрузки не делает произвольное выделение списка кадров действительным для low-latency запроса.

Что нужно проверить

  • Убедитесь, что список кадров создан и подготовлен через API, требуемый используемой версией интерфейса IOUSBFamily, до первой low-latency отправки.
  • Сохраняйте подготовленный объект списка кадров до выполнения всех ссылающихся на него callbacks; не заменяйте его объектом на стеке или временным выделением.
  • Запишите стартовый кадр, число кадров, альтернативную настройку интерфейса и тип передачи конечной точки вместе с ошибкой.
  • Уничтожайте или освобождайте подготовленный буфер только после завершения либо документированной отмены поставленных запросов.

Ссылки


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