| Previous | Next |
| kIOUSBDeviceNotHighSpeed | kIOUSBSyncRequestOnWLThread |
kIOUSBDeviceTransferredToCompanion
Enumeration moved to another controller
kIOUSBDeviceTransferredToCompanion reports that the device was handed to a companion controller for enumeration. In the legacy USB 2.0 architecture, a high-speed EHCI controller could coexist with full- and low-speed companion controllers; routing depended on the speed negotiated by the attached device. The same numeric value is also named kIOUSBDeviceNotHighSpeed in older headers, but that name is deprecated in favor of the transfer-to-companion meaning.
This status is not the same as a device disconnect, endpoint stall, or application-level protocol failure. The device may become available through another controller, but software must use the service that appears after the final enumeration path rather than assuming that a high-speed interface was retained.
What makes the result actionable
- Record the negotiated speed, controller identity, parent hub, port path, and device location before and after enumeration.
- Compare a direct connection with the same connection through a hub or dock. A cable, hub, or device-side high-speed negotiation problem can change the route selected by older controller designs.
- Re-discover interfaces after the move. Do not preserve a pre-enumeration service or pipe reference as though it belonged to the final controller.
- For throughput-sensitive hardware, validate its actual bus speed and controller route; successful enumeration on a companion does not guarantee the transfer characteristics expected from a high-speed path.
References
- Apple: kIOUSBDeviceTransferredToCompanion
- Apple: USB device overview
- Linux kernel documentation: EHCI companion controllers
Looking for a different code? Search another status or error code.
