| Previous | Next |
| kIOReturnNoCompletion | kIOReturnNoBandwidth |
kIOReturnAborted
Cancellation needs an ownership decision
kIOReturnAborted is an operation-aborted result. It can be returned after explicit cancellation, a driver teardown, a reset, device removal, or a higher-level state change that abandons pending I/O. It does not say that the hardware rejected the request, and it does not guarantee that no part of a state-changing request reached the device.
For a caller, the key question is the operation’s completion contract. Read-style requests may simply be rescheduled after recovery. Commands that write data, change configuration, eject media, or trigger an external action need an acknowledgement, sequence number, or post-condition check before retrying, otherwise a cancellation race can create duplicate work.
What to do next
- Log who requested cancellation and what device lifecycle event was active at the time.
- Drain or mark pending requests so their late completions cannot be mistaken for a new operation.
- Invalidate buffers and handles if the abort accompanied reset, detach, or service termination.
- Retry only after the device is known to be ready and the application can determine whether the prior request took effect.
References
- Apple IOReturn.h reference
- Apple IOKit Fundamentals: Architectural Overview
- libusb device lifecycle and interface claims
Looking for a different code? Search another status or error code.