What does NTSTATUS 0xC00000D8 (STATUS_CANT_WAIT) mean?

 
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


Looking for a different code? Search another status or error code.