Article ID: 216540 - View products that this article applies to.
This article was previously published under Q216540
This article has been archived. It is offered "as is" and will no longer be updated.
User-mode programs are unable to allocate blocks of virtual memory (calls to VirtualAlloc() do not succeed). This may result in the inability to create threads, mutexes, critical sections, and so on.
This problem occurs when a VirtualAlloc() critical section object is being called to initialize part of the structure (DebugInfo). VirtualAlloc() reserves virtual memory on a 64 KB boundary. However, this structure only allocates 4 KB (reserve and commit) blocks of virtual memory, thereby leaving 60 KB unused. Over time, this results in fragmentation of virtual memory and may reduce the size of contiguous blocks available to user-mode programs.
To resolve this problem, obtain the latest service pack for Windows NT 4.0 or the individual software update. For information on obtaining the latest service pack, please go to:
Microsoft has confirmed that this is a problem in Windows NT 4.0. This problem was first corrected in Windows NT 4.0 Service Pack 5.