| Previous | Next |
| STATUS_ALLOTTED_SPACE_EXCEEDED | STATUS_DFS_EXIT_PATH_FOUND |
STATUS_INSUFFICIENT_RESOURCES
Treat this as a resource-allocation path, not automatically as bad physical RAM
STATUS_INSUFFICIENT_RESOURCES is widely used when kernel or driver code cannot obtain a resource needed to continue. Pool allocation is a common source, but the status does not by itself prove a machine is physically out of memory. A local allocation can fail because of pool pressure, allocation size, fragmentation constraints, framework-object creation, or deliberate fault injection during driver testing.
Microsoft's pool-allocation guidance explicitly tells NTSTATUS-returning driver routines to handle a null allocation or return STATUS_INSUFFICIENT_RESOURCES. WDF routines such as WdfMemoryCreate also document the value for insufficient memory. Driver Verifier can intentionally fail allocations with low-resource simulation so error paths become testable; a correctly written driver must unwind partial state and complete the request cleanly.
Log the allocation type, requested size, pool tag or object type, IRQL, retry policy, and allocations already held by the operation. Avoid an unbounded immediate retry loop because it can intensify pressure and hide the original allocation site. For critical I/O paths, consider documented forward-progress or preallocation mechanisms. When reproducing a driver bug, systematic low-resource simulation is more informative than waiting for a production machine to become exhausted.
What to inspect
- Find the first failed allocation or resource acquisition in the request path.
- Verify partial allocations, references, locks, and IRPs are released on the failure branch.
- Use Driver Verifier low-resource testing to make allocation-failure paths reproducible.
References
- Microsoft: Allocating system-space memory
- Microsoft: ExAllocatePool
- Microsoft: WdfMemoryCreate
- Microsoft: Systematic low resources simulation
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.
