Apparently, EnterCriticalSection on Windows 2000 (and previous versions) can fail if the machine runs low on memory. This can be averted by doing this to init the critical section:
The “0x80000000” tells Windows to pre-allocate space.
So I was thinking that CriticalSection::CriticalSection could be modified accordingly.
This isn’t a big deal; I just wanted to suggest this because tracing down a problem where EnterCriticalSection fails could be very painful.