Win32s Is No Longer Limited to 256 Selectors
Article ID: 147428
Article Last Modified on 4/9/2004
APPLIES TO
- Microsoft Win32s 1.30a
- Microsoft Win32s 1.2
- Microsoft Win32s 1.25a
This article was previously published under Q147428
SUMMARY
Prior to version 1.2, Win32s had a limit of 256 selectors that it
maintained for selector synthesis and once a selector had been allocated,
it could not be reused after freeing it.
When thunking pointers down to the 16-bit side, Win32s allocates selectors
on the fly for mapping the 0:32 linear address to the 16:16 address that
the 16-bit side could use. These synthesized selectors were saved in an
internal table and reused later whenever needed. It was this table that was
limited only to 256 selectors in Win32s prior to version 1.20. Since Win32s
could reuse these synthesized selectors, they can not be freed either.
However, this problem was eliminated in Win32s version 1.2 and the solution
was further enhanced in Win32s version 1.25. Now, the current version of
Win32s (version 1.30c) is no longer limited to 256 selectors.
However, it is still possible that a Win32s application could consume all
available selectors in the system and potentially bring Windows 3.x to a
halt, but such a scenario rarely occurs and is probably specific to a given
application.
Additional query words: 1.20 256 selector synthesis fix kbinf
Keywords: KB147428