This article was previously published under Q142719
This article has been archived. It is offered "as is" and will no longer be updated.
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.
Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional Edition, Microsoft Windows 2000 Datacenter Server, Microsoft Windows NT Workstation 3.5, Microsoft Windows NT Workstation 3.51, Microsoft Windows NT Workstation 4.0 Developer Edition, Microsoft Windows NT Server 3.5, Microsoft Windows NT Server 3.51, Microsoft Windows NT Server 4.0 Standard Edition