Bug Check 0x4D: NO_PAGES_AVAILABLE
The NO_PAGES_AVAILABLE bug check has a value of 0x0000004D. This indicates that no free pages are available to continue operations.
Important Info If You Have Received a STOP Code
If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss. A hardware device, its driver, or related software might have caused this error. If your copy of Windows came with your computer, call the manufacturer of your computer. If you purchased Windows separately from your computer, Microsoft provides support. To find contact info for Microsoft or your computer manufacturer, Contact Support.
If you have experience with computers and want to try to recover from this error, follow the steps provided in the Microsoft article Resolving STOP (Blue Screen) Errors in Windows.
These actions might prevent an error like this from happening again:
- Download and install updates and device drivers for your computer from Windows Update.
- Scan your computer for computer viruses.
- Check your hard disk for errors.
NO_PAGES_AVAILABLE Parameters
The following parameters are displayed on the blue screen.
| Parameter | Description |
|---|---|
|
1 |
The total number of dirty pages |
|
2 |
The number of dirty pages destined for the page file |
|
3 |
Windows XP and Windows 2000: The size of the nonpaged pool available at the time the bug check occurred Windows Server 2003 and later: Reserved |
|
4 |
Windows 2000: The number of transition pages that are currently stranded Windows XP and later: The most recent modified write error status. |
Cause
To see general memory statistics, use the !vm 3 extension.
This bug check can occur for any of the following reasons:
- A driver has blocked, deadlocking the modified or mapped page writers. Examples of this include mutex deadlocks or accesses to paged out memory in file system drivers or filter drivers. This indicates a driver bug.
If Parameter 1 or Parameter 2 is large, then this is a possibility. Use !vm 3.
- A storage driver is not processing requests. Examples of this are stranded queues and non-responding drives. This indicates a driver bug.
If Parameter 1 or Parameter 2 is large, then this is a possibility. Use !vm 8, followed by !process 0 7.
- A high-priority realtime thread has starved the balance set manager from trimming pages from the working set, or starved the modified page writer from writing them out. This indicates a bug in the component that created this thread.
This situation is difficult to analyze. Try using !ready. Try also !process 0 7 to list all threads and see if any have accumulated excessive kernel time as well as what their current priorities are. Such processes may have blocked out the memory management threads from making pages available.
- Windows XP and Windows 2000: Not enough pool is available for the storage stack to write out modified pages. This indicates a driver bug.
If Parameter 3 is small, then this is a possibility. Use !vm and !poolused 2.
- Windows 2000: All the processes have been trimmed to their minimums and all modified pages written, but still no memory is available. The freed memory must be stuck in transition pages with non-zero reference counts -- thus they cannot be put on the freelist.
A driver is neglecting to unlock the pages preventing the reference counts from going to zero which would free the pages. This may be due to transfers that never finish, causing the driver routines to run endlessly, or to other driver bugs.
If Parameter 4 is large, then this is a possibility. But it is very hard to find the driver. Try the !process 0 1 extension and look for any drivers that have a lot of locked pages.
If the problem cannot be found, then try booting with a kernel debugger attached from the beginning, and monitor the situation.
Send comments about this topic to Microsoft
Build date: 4/9/2013
