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

 
Предыдущий Следующий
kIOUSBLowLatencyFrameListNotPreviouslyAllocated kIOUSBInterfaceNotFound

kIOUSBLowLatencyBufferNotPreviouslyAllocated

Буфер полезной нагрузки недействителен для этого пути отправки

kIOUSBLowLatencyBufferNotPreviouslyAllocated относится к буферу данных низколатентного изохронного запроса. IOUSBFamily не нашёл предварительной подготовки памяти полезной нагрузки, переданной запросу. Это отличается от kIOUSBLowLatencyFrameListNotPreviouslyAllocated: тот результат относится к записям состояния отдельных кадров, а этот — к самим байтам аудио, видео или другой полезной нагрузки.

Изменение размера пакета, числа кадров или логики callback не исправит неподготовленный буфер. Требуемая подготовка должна быть выполнена до отправки запроса, а тот же подготовленный объект памяти должен оставаться действительным до окончания его использования асинхронным путём завершения.

Диагностический список

  • Определите точный указатель полезной нагрузки, длину, направление, конечную точку и вызов подготовки low-latency buffer, использованный для этого запроса.
  • Проверьте, не перешёл ли запрос после подготовки на другой объект памяти, включая изменённый буфер, скопированную оболочку или временный объект.
  • Раздельно учитывайте владение буфером данных и списком кадров в журналах и коде очистки; подготовка одного не доказывает подготовку другого.
  • При перенастройке, отмене или удалении устройства выведите старые подготовленные буферы из обращения до повторного открытия интерфейса и подготовки замен.

Ссылки


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