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 whenWindows is not active, you may notice a reference to "Available SXMS" or"Largest Free SXMS." SXMS is also known as Super XMS or Super ExtendedMemory.
MS-DOS-based programs running under Microsoft Windows or Microsoft Windowsfor Workgroups can access XMS version 2.0 memory only, even if an extendedmemory manager (XMM) is providing XMS version 3.0 memory at the MS-DOSlevel. This is because WIN386.EXE is responsible for allocating extendedmemory to programs running in Windows, and it is designed to implement XMSversion 2.0 only.
However, when Windows is not running, these same MS-DOS-based programs canaccess XMS version 3.0 memory as provided by an XMM. This version of theExtended Memory Specification implements changes that are intended toprovide support for extended memory pools of up to 4 gigabytes in size.(The current application programming interface [API] uses 16-bit values tospecify block sizes and therefore is limited to a maximum block size of 64megabytes.) This extended memory provided under XMS version 3.0 is known asSXMS, regardless of whether it is above or below the previous limit of 64megabytes.
Support for XMS 3.0 is implemented through extensions to those samefunctions that were available under version 2.0. One such extension is tothe function Query Any Free Extended Memory (Function 88h).
This function now uses 32-bit values to return the size of availablememory, thus allowing returns of up to 4 gigabytes. As with XMS 2.0, thisfunction also returns the highest known physical memory address, or thephysical address of the last byte of memory. Two important points must bemade while considering the values returned by Function 88h:
If less than 64 MB of RAM is present on the system, Function 88h returns the same value for available memory when run under XMS version 2.0 or version 3.0. As a result, MSD reports the same values for XMS memory in Windows and SXMS memory at the MS-DOS level on such a system.
There may be discontinuities in the memory map below the highest known physical memory address returned by Function 88h.