Microsoft KB Archive/216540

= User-mode Programs Cannot Allocate Blocks of Virtual Memory =

Article ID: 216540

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q216540



SYMPTOMS
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.



CAUSE
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.



RESOLUTION
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:


 * http://www.microsoft.com/windows/servicepacks/ -or-


 * 152734 how to obtain the latest windows nt 4.0 service pack

For information on obtaining the individual software update, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information on support costs, please go to the following address on the World Wide Web:

http://support.microsoft.com/directory/overview.asp



STATUS
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.

Additional query words: critsec

Keywords: kbhotfixserver kbqfe kbbug kbfix kbqfe KB216540

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.