| Предыдущий | Следующий |
| kIOUSBHighSpeedSplitError | kIOUSBLowLatencyBufferNotPreviouslyAllocated |
kIOUSBLowLatencyFrameListNotPreviouslyAllocated
Список состояний кадров не зарегистрирован для low-latency I/O
kIOUSBLowLatencyFrameListNotPreviouslyAllocated — нарушение предусловия устаревшего API низколатентного изохронного ввода-вывода. Запрос содержит список кадров со статусами отдельных изохронных кадров, но IOUSBFamily не подготовил память этого списка через требуемый путь low-latency buffer. Это не означает, что USB-устройство уже потеряло изохронный кадр.
Низколатентный изохронный ввод-вывод отделяет буфер данных от списка состояний кадров. Оба объекта должны иметь правильный срок жизни и правила отображения. Подготовка только полезной нагрузки не делает произвольное выделение списка кадров действительным для low-latency запроса.
Что нужно проверить
- Убедитесь, что список кадров создан и подготовлен через API, требуемый используемой версией интерфейса IOUSBFamily, до первой low-latency отправки.
- Сохраняйте подготовленный объект списка кадров до выполнения всех ссылающихся на него callbacks; не заменяйте его объектом на стеке или временным выделением.
- Запишите стартовый кадр, число кадров, альтернативную настройку интерфейса и тип передачи конечной точки вместе с ошибкой.
- Уничтожайте или освобождайте подготовленный буфер только после завершения либо документированной отмены поставленных запросов.
Ссылки
- Apple: kIOUSBLowLatencyFrameListNotPreviouslyAllocated
- Apple: IOUSBLowLatencyIsocFrame
- Руководство Apple по интерфейсам USB-устройств: низколатентный изохронный ввод-вывод
Нужно найти другой код? Найти другой код состояния или ошибки.