Microsoft KB Archive/232706

{|
 * width="100%"|

INFO: Increased Stack Usage by Windows 2000 Components

 * }

Q232706

This article discusses a Beta release of a Microsoft product. The information in this article is provided as-is and is subject to change without notice.

No formal product support is available from Microsoft for this Beta product. For information about obtaining support for a Beta release, please see the documentation included with the Beta product files, or check the Web location from which you downloaded the release.

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK)
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Professional

-

SUMMARY
Some Windows 2000 components use more stack than they do in previous versions of Windows. If your application creates a very small stack, it may not work properly on Windows 2000.

MORE INFORMATION
In Windows 2000, several components, including ADVAPI32, OLE32, and SHELL32, use much more stack than they do in Windows NT 4.0 and previous versions. Performance enhancements and new features in Windows 2000 are responsible for the increase in stack consumption.

Although the amount of stack your application's components use may not change, most applications rely on some Windows components for functionality and integration with other applications and the operating system.

All stacks have a reserved size and a committed size. The reserved size is the size of the stack that is initially allocated for a thread. The committed size is the amount of memory the stack is currently using. Unless you need to free up address space or reduce memory use for performance reasons, you should use the default reserved stack size. If you designate a smaller size, you should thoroughly test your application with all of the components it can call including DLLs, OCXs, and COM controls. As a general rule, you should not set the reserved stack size to less than 100K.