| Previous | Next |
| kIOReturnDeviceError | kIOReturnAborted |
kIOReturnNoCompletion
An asynchronous-operation precondition
kIOReturnNoCompletion means that a completion routine is required. The status indicates that the selected API or mode expects a completion path through which the caller can be told that queued or asynchronous work has finished, failed, or been cancelled. It is a contract error, not a device timeout.
Adding a no-op callback merely to suppress the return value can lose ownership and cleanup information. The completion mechanism must match the interface’s lifetime rules: it may be responsible for releasing buffers, observing partial completion, scheduling the next request, or stopping work after removal. Verify the specific API’s callback and cancellation contract.
What to verify
- Check whether the operation is synchronous or asynchronous for the selected interface and mode.
- Provide the documented completion routine, context, and object lifetime management before queueing the request.
- Ensure completion, cancellation, and removal paths all release request-owned resources exactly once.
- Log whether the request reached the queue; a missing completion handler can be detected before device I/O begins.
References
Looking for a different code? Search another status or error code.