| Previous | Next |
| STATUS_NONEXISTENT_SECTOR | STATUS_NO_MEMORY |
STATUS_MORE_PROCESSING_REQUIRED
IRP completion has been deliberately paused
In a WDM completion routine, this status tells the I/O manager to stop unwinding completion through the remaining driver stack. The driver returning it now owns the next action: wait, inspect results, reuse or free a driver-allocated IRP, or later call IoCompleteRequest for an original IRP.
It must not be treated as an ordinary error stored blindly in Irp->IoStatus.Status. It is a completion-routine control value. Returning it without a clear ownership path leaks or stalls the IRP; completing or freeing the IRP and then allowing normal completion creates a double-completion bug.
What to inspect
- Record which completion routine stopped unwinding and who owns the IRP after it returns.
- Preserve and propagate pending state according to
Irp->PendingReturned. - Do not touch an IRP after
IoCompleteRequesthas made it inaccessible. - Verify that every stop-completion branch eventually frees or resumes completion exactly once.
References
- Microsoft Open Specifications: NTSTATUS values
- Microsoft WDK: Different ways of handling IRPs
- Microsoft WDK: How to complete an IRP in a dispatch routine
- Microsoft WDK: IoMarkIrpPending
Looking for a different code? Search another status or error code.
