| Previous | Next |
| STATUS_NO_SECURITY_ON_OBJECT | STATUS_PIPE_EMPTY |
STATUS_CANT_WAIT
The operation needs a wait that the current context cannot perform
Kernel code can only block at suitable IRQL and in a context that permits waiting. File-system and filter paths may also indicate that a request must be posted to a worker because required metadata, paging I/O, or resource acquisition cannot complete immediately. This status describes an execution-context constraint, not unavailable memory by itself.
Busy-looping or retrying at the same IRQL does not solve the problem. The work must be deferred to a safe thread context, or the operation must use a nonblocking path. Any buffers and file objects referenced by posted work need explicit lifetime management.
What to inspect
- Record IRQL, thread context, top-level IRP state, paging-I/O flags, held locks, and the operation that would block.
- Post work to a documented safe worker path instead of sleeping or waiting at elevated IRQL.
- Do not hold spin locks or other non-waitable resources across the deferred operation.
- Keep callback data, file objects, and user buffers valid until posted processing completes.
References
- Microsoft Open Specifications: NTSTATUS values
- Microsoft WDK: KeWaitForSingleObject
- Microsoft WDK: Different ways of handling IRPs
- Microsoft WDK: Cache Manager routines
Looking for a different code? Search another status or error code.