This article was previously published under Q142719
Windows or a Windows service reports an error in the event logstating that the system is out of resources; however, according to PerformanceMonitor and Windows Diagnostics, there is plenty of RAMavailable. For example, if a large number of connections are made to SQLServer, SQL Server reports an error 1450 - Insufficient SystemResources, even though this system has plenty of RAM available.
The Windows kernel is running out of paged-pool memory. When Windows starts, it calculates the amount of paged-pool memory available to thekernel based on the amount of physical RAM in the system. The following lists describes the maximum values in Windows:
In Windows NT, the maximum value for paged-pool memory is 192 MB.
In Windows 2000, the maximum value for paged-pool memory is 470 MB; the maximum value for non-paged-pool memory is 256 MB.
If the kernel allocates all of its allotted paged-pool memory, it will not be able to perform many tasks and will insteadreturn a STATUS_INSUFFICIENT_RESOURCES (0xC000009A) message.
This behavior is by design. Windows currently uses 32-bit addressing for memory.This only allows for 4 GB of addressable RAM, which must be divided intovarious sections of virtual memory. The kernel only has 2 GB to divide upand, in this distribution of addresses, paged-pool memory is allocated amaximum of 192 MB. This is a restriction of the 32-bit addressing.