| Previous | Next |
| kIOUSBHighSpeedSplitError | kIOUSBLowLatencyBufferNotPreviouslyAllocated |
kIOUSBLowLatencyFrameListNotPreviouslyAllocated
The frame status list was not registered for low-latency I/O
kIOUSBLowLatencyFrameListNotPreviouslyAllocated is a precondition failure for the legacy low-latency isochronous API. The request includes a frame list that records status for individual isochronous frames, but IOUSBFamily has not prepared that frame-list memory through the required low-latency buffer path. It is not a report that the USB device has already lost an isochronous frame.
Low-latency isochronous I/O separates the data buffer from the frame-status list. Both objects need valid lifetime and mapping rules. Preparing only the payload buffer does not make an arbitrary frame-list allocation valid for a low-latency request.
What to verify
- Verify that the frame list was created and prepared using the API required by the IOUSBFamily interface version in use, before the first low-latency submission.
- Keep the prepared frame-list object alive until every completion that references it has run; do not substitute a stack or temporary allocation.
- Track the frame start, frame count, interface alternate setting, and endpoint transfer type together with the failure.
- Destroy or release the prepared buffer only after queued requests are complete or cancelled by the documented lifecycle.
References
- Apple: kIOUSBLowLatencyFrameListNotPreviouslyAllocated
- Apple: IOUSBLowLatencyIsocFrame
- Apple USB Device Interface Guide: low-latency isochronous I/O
Looking for a different code? Search another status or error code.