Export (0) Print
Expand All
Expand Minimize

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

bsod

If you received a blue screen error, or stop code, the computer has shut down abruptly to protect itself from data loss.

For information about how to recover from this error, see Resolving Blue Screen errors in Windows.

NO_PAGES_AVAILABLE Parameters

The following parameters are displayed on the blue screen.

ParameterDescription

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

Show:
© 2014 Microsoft