Article ID: 121008 - View products that this article applies to.
This article was previously published under Q121008
This article has been archived. It is offered "as is" and will no longer be updated.
When you use the Microsoft Diagnostic Utility (MSD) to examine memory when Windows is not active, you may notice a reference to "Available SXMS" or "Largest Free SXMS." SXMS is also known as Super XMS or Super Extended Memory.
MS-DOS-based programs running under Microsoft Windows or Microsoft Windows for Workgroups can access XMS version 2.0 memory only, even if an extended memory manager (XMM) is providing XMS version 3.0 memory at the MS-DOS level. This is because WIN386.EXE is responsible for allocating extended memory to programs running in Windows, and it is designed to implement XMS version 2.0 only.
However, when Windows is not running, these same MS-DOS-based programs can access XMS version 3.0 memory as provided by an XMM. This version of the Extended Memory Specification implements changes that are intended to provide support for extended memory pools of up to 4 gigabytes in size. (The current application programming interface [API] uses 16-bit values to specify block sizes and therefore is limited to a maximum block size of 64 megabytes.) This extended memory provided under XMS version 3.0 is known as SXMS, regardless of whether it is above or below the previous limit of 64 megabytes.
Support for XMS 3.0 is implemented through extensions to those same functions that were available under version 2.0. One such extension is to the function Query Any Free Extended Memory (Function 88h).
This function now uses 32-bit values to return the size of available memory, thus allowing returns of up to 4 gigabytes. As with XMS 2.0, this function also returns the highest known physical memory address, or the physical address of the last byte of memory. Two important points must be made while considering the values returned by Function 88h:
Article ID: 121008 - Last Review: October 26, 2013 - Revision: 3.0