The MSXML Components Use Too Much Memory in Windows CE .NET 4.2 (821039)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.2

SYMPTOMS

The following problems occur in Windows CE .NET 4.2:
  • The Microsoft XML (MSXML) Document Object Model (DOM) and the XML minimal parser consume up to 100 kilobytes (KB) more RAM than they require for operation.
  • Programs that use MSXML on Windows CE .NET 4.1 do not work on Windows CE .NET 4.2.

CAUSE

The first problem that is described in the "Symptoms" section occurs because memory allocations for an unused garbage-collection feature of the XML minimal parser were left in place. These memory allocations consume 100 KB of RAM unnecessarily. Also, a private heap manager for XML DOM that is faster than the Microsoft Windows CE heap manager is used. The private heap manager is less efficient in terms of RAM usage, and can consume up to an extra 40 KB for simple parsing tasks.

The second problem that is described in the "Symptoms" section occurs because an inadvertent change to a GUID causes problems with backward compatibility with Windows CE .NET 4.1 XML.

RESOLUTION

Hotfix Information

A supported software update is now available from Microsoft as Windows CE 4.2 Core OS QFE 821039. To resolve this problem immediately, click the following article number for information about obtaining Windows CE Platform Builder and core operating system software updates:

837392 How to locate core operating system fixes for Microsoft Windows CE Platform Builder products

Prerequisites

Install all prior hotfixes for this version of Windows CE.

Restart Requirement

You do not have to restart your computer after you apply this hotfix.

Hotfix Replacement Information

This hotfix does not replace any other hotfixes.

File Information

The English version of this package has the file attributes (or later) that are listed in the following table.
   Date         Time   Version    Size        File name
   ----------------------------------------------------------------------------------
   06-Jun-2003  17:30  4.2.3.605  11,995,752  Wincepb42-030605-kb821039-armv4.exe  
   06-Jun-2003  17:30  4.2.3.605  12,016,232  Wincepb42-030605-kb821039-armv4i.exe
   06-Jun-2003  17:30  4.2.3.605  12,073,576  Wincepb42-030605-kb821039-mipsii.exe
   06-Jun-2003  17:30  4.2.3.605  12,077,672  Wincepb42-030605-kb821039-mipsii_fp.exe
   06-Jun-2003  17:30  4.2.3.605  12,237,416  Wincepb42-030605-kb821039-mipsiv.exe
   06-Jun-2003  17:30  4.2.3.605  12,241,512  Wincepb42-030605-kb821039-mipsiv_fp.exe
   06-Jun-2003  17:29  4.2.3.605  11,598,440  Wincepb42-030605-kb821039-sh3.exe
   06-Jun-2003  17:29  4.2.3.605  11,602,536  Wincepb42-030605-kb821039-sh4.exe
   06-Jun-2003  17:29  4.2.3.605   9,460,328  Wincepb42-030605-kb821039-x86.exe
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time                   Size       File name
   -------------------------------------------------------------
   Path: Public\Common\Oak\Lib\Armv4\Debug
   03-Jun-2003  15:50                    545,526  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Armv4\Retail
   03-Jun-2003  15:50                    400,122  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Armv4i\Debug
   03-Jun-2003  15:51                    546,938  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Armv4i\Retail
   03-Jun-2003  15:51                    401,586  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsii\Debug
   03-Jun-2003  15:51                    556,334  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsii\Retail
   03-Jun-2003  15:51                    407,410  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsii_fp\Debug
   03-Jun-2003  15:51                    556,374  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsii_fp\Retail
   03-Jun-2003  15:51                    407,576  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsiv\Debug
   03-Jun-2003  15:52                    559,548  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsiv\Retail
   03-Jun-2003  15:51                    410,724  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Debug
   03-Jun-2003  15:52                    559,576  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Retail
   03-Jun-2003  15:52                    410,890  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Sh3\Debug
   03-Jun-2003  15:52                    496,342  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Sh3\Retail
   03-Jun-2003  15:52                    373,190  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Sh4\Debug
   03-Jun-2003  15:52                    496,274  Ceosutil.lib

   Path: Public\Common\Oak\Lib\Sh4\Retail
   03-Jun-2003  15:52                    372,836  Ceosutil.lib

   Path: Public\Common\Oak\Lib\X86\Debug
   03-Jun-2003  15:50                    430,908  Ceosutil.lib

   Path: Public\Common\Oak\Lib\X86\Retail
   03-Jun-2003  15:50                    348,756  Ceosutil.lib

   Path: Public\Ie\Oak\Lib\Armv4\Debug
   02-Jun-2003  19:58                  8,617,570  Xmldom.lib
   02-Jun-2003  19:58                    241,308  Xmlhttp.lib
   02-Jun-2003  19:58                  1,207,836  Xmlmime.lib
   02-Jun-2003  19:58                  3,752,552  Xmlminisax.lib
   02-Jun-2003  19:57                    200,030  Xmlnetfull.lib
   02-Jun-2003  19:57                    106,270  Xmlnetmini.lib
   02-Jun-2003  19:58                  2,453,516  Xmlsax.lib
   02-Jun-2003  19:58                    144,200  Xmlstubs.lib
   02-Jun-2003  19:58                  4,412,120  Xmlxql.lib
   02-Jun-2003  19:58                  4,276,620  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Armv4\Retail
   02-Jun-2003  19:46                  5,721,574  Xmldom.lib
   02-Jun-2003  19:46                    174,338  Xmlhttp.lib
   02-Jun-2003  19:46                  1,055,954  Xmlmime.lib
   02-Jun-2003  19:46                  2,626,996  Xmlminisax.lib
   02-Jun-2003  19:45                    117,582  Xmlnetfull.lib
   02-Jun-2003  19:45                     71,652  Xmlnetmini.lib
   02-Jun-2003  19:45                  1,495,400  Xmlsax.lib
   02-Jun-2003  19:46                    117,940  Xmlstubs.lib
   02-Jun-2003  19:46                  2,824,240  Xmlxql.lib
   02-Jun-2003  19:46                  2,374,912  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Armv4i\Debug
   02-Jun-2003  20:48                  8,647,978  Xmldom.lib
   02-Jun-2003  20:47                    241,988  Xmlhttp.lib
   02-Jun-2003  20:47                  1,212,008  Xmlmime.lib
   02-Jun-2003  20:48                  3,766,288  Xmlminisax.lib
   02-Jun-2003  20:46                    200,752  Xmlnetfull.lib
   02-Jun-2003  20:46                    106,656  Xmlnetmini.lib
   02-Jun-2003  20:47                  2,461,382  Xmlsax.lib
   02-Jun-2003  20:47                    144,842  Xmlstubs.lib
   02-Jun-2003  20:47                  4,430,180  Xmlxql.lib
   02-Jun-2003  20:47                  4,293,514  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Armv4i\Retail
   02-Jun-2003  20:35                  5,741,088  Xmldom.lib
   02-Jun-2003  20:35                    174,372  Xmlhttp.lib
   02-Jun-2003  20:35                  1,058,314  Xmlmime.lib
   02-Jun-2003  20:35                  2,638,830  Xmlminisax.lib
   02-Jun-2003  20:34                    118,024  Xmlnetfull.lib
   02-Jun-2003  20:34                     71,980  Xmlnetmini.lib
   02-Jun-2003  20:34                  1,500,056  Xmlsax.lib
   02-Jun-2003  20:35                    118,426  Xmlstubs.lib
   02-Jun-2003  20:35                  2,837,094  Xmlxql.lib
   02-Jun-2003  20:35                  2,385,488  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsii\Debug
   02-Jun-2003  21:38                  8,864,458  Xmldom.lib
   02-Jun-2003  21:38                    242,924  Xmlhttp.lib
   02-Jun-2003  21:38                  1,262,890  Xmlmime.lib
   02-Jun-2003  21:38                  3,830,934  Xmlminisax.lib
   02-Jun-2003  21:37                    206,808  Xmlnetfull.lib
   02-Jun-2003  21:37                    110,784  Xmlnetmini.lib
   02-Jun-2003  21:37                  2,515,578  Xmlsax.lib
   02-Jun-2003  21:38                    152,602  Xmlstubs.lib
   02-Jun-2003  21:38                  4,600,688  Xmlxql.lib
   02-Jun-2003  21:38                  4,424,768  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsii\Retail
   02-Jun-2003  21:26                  5,829,890  Xmldom.lib
   02-Jun-2003  21:25                    186,534  Xmlhttp.lib
   02-Jun-2003  21:26                  1,011,812  Xmlmime.lib
   02-Jun-2003  21:26                  2,648,908  Xmlminisax.lib
   02-Jun-2003  21:24                    122,158  Xmlnetfull.lib
   02-Jun-2003  21:24                     74,068  Xmlnetmini.lib
   02-Jun-2003  21:25                  1,570,560  Xmlsax.lib
   02-Jun-2003  21:26                    104,870  Xmlstubs.lib
   02-Jun-2003  21:26                  2,754,378  Xmlxql.lib
   02-Jun-2003  21:26                  2,303,800  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsii_fp\Debug
   02-Jun-2003  22:30                  8,867,160  Xmldom.lib
   02-Jun-2003  22:30                    242,936  Xmlhttp.lib
   02-Jun-2003  22:30                  1,263,006  Xmlmime.lib
   02-Jun-2003  22:30                  3,833,236  Xmlminisax.lib
   02-Jun-2003  22:28                    206,846  Xmlnetfull.lib
   02-Jun-2003  22:28                    110,810  Xmlnetmini.lib
   02-Jun-2003  22:29                  2,515,916  Xmlsax.lib
   02-Jun-2003  22:30                    152,720  Xmlstubs.lib
   02-Jun-2003  22:30                  4,600,728  Xmlxql.lib
   02-Jun-2003  22:30                  4,426,156  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsii_fp\Retail
   02-Jun-2003  22:17                  5,832,988  Xmldom.lib
   02-Jun-2003  22:17                    186,544  Xmlhttp.lib
   02-Jun-2003  22:17                  1,011,894  Xmlmime.lib
   02-Jun-2003  22:17                  2,651,712  Xmlminisax.lib
   02-Jun-2003  22:16                    122,186  Xmlnetfull.lib
   02-Jun-2003  22:16                     74,086  Xmlnetmini.lib
   02-Jun-2003  22:16                  1,570,794  Xmlsax.lib
   02-Jun-2003  22:17                    104,950  Xmlstubs.lib
   02-Jun-2003  22:17                  2,753,892  Xmlxql.lib
   02-Jun-2003  22:17                  2,305,064  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsiv\Debug
   02-Jun-2003  23:22                  8,942,906  Xmldom.lib
   02-Jun-2003  23:22                    244,692  Xmlhttp.lib
   02-Jun-2003  23:22                  1,274,190  Xmlmime.lib
   02-Jun-2003  23:22                  3,865,266  Xmlminisax.lib
   02-Jun-2003  23:21                    208,756  Xmlnetfull.lib
   02-Jun-2003  23:21                    111,876  Xmlnetmini.lib
   02-Jun-2003  23:21                  2,534,414  Xmlsax.lib
   02-Jun-2003  23:22                    153,818  Xmlstubs.lib
   02-Jun-2003  23:22                  4,635,440  Xmlxql.lib
   02-Jun-2003  23:22                  4,457,982  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsiv\Retail
   02-Jun-2003  23:09                  5,881,920  Xmldom.lib
   02-Jun-2003  23:09                    186,946  Xmlhttp.lib
   02-Jun-2003  23:09                  1,018,328  Xmlmime.lib
   02-Jun-2003  23:09                  2,673,928  Xmlminisax.lib
   02-Jun-2003  23:08                    122,782  Xmlnetfull.lib
   02-Jun-2003  23:08                     74,504  Xmlnetmini.lib
   02-Jun-2003  23:08                  1,576,184  Xmlsax.lib
   02-Jun-2003  23:09                    105,458  Xmlstubs.lib
   02-Jun-2003  23:09                  2,770,666  Xmlxql.lib
   02-Jun-2003  23:09                  2,315,870  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsiv_fp\Debug
   03-Jun-2003  00:14                  8,943,290  Xmldom.lib
   03-Jun-2003  00:13                    244,704  Xmlhttp.lib
   03-Jun-2003  00:14                  1,274,306  Xmlmime.lib
   03-Jun-2003  00:14                  3,865,282  Xmlminisax.lib
   03-Jun-2003  00:12                    208,794  Xmlnetfull.lib
   03-Jun-2003  00:12                    111,902  Xmlnetmini.lib
   03-Jun-2003  00:13                  2,534,752  Xmlsax.lib
   03-Jun-2003  00:14                    153,928  Xmlstubs.lib
   03-Jun-2003  00:14                  4,634,640  Xmlxql.lib
   03-Jun-2003  00:14                  4,458,682  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Mipsiv_fp\Retail
   03-Jun-2003  00:01                  5,882,112  Xmldom.lib
   03-Jun-2003  00:00                    186,956  Xmlhttp.lib
   03-Jun-2003  00:01                  1,018,410  Xmlmime.lib
   03-Jun-2003  00:01                  2,673,808  Xmlminisax.lib
   02-Jun-2003  23:59                    122,810  Xmlnetfull.lib
   02-Jun-2003  23:59                     74,522  Xmlnetmini.lib
   03-Jun-2003  00:00                  1,576,418  Xmlsax.lib
   03-Jun-2003  00:01                    105,538  Xmlstubs.lib
   03-Jun-2003  00:01                  2,769,062  Xmlxql.lib
   03-Jun-2003  00:01                  2,316,380  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Sh3\Debug
   03-Jun-2003  01:05                  8,132,634  Xmldom.lib
   03-Jun-2003  01:05                    221,248  Xmlhttp.lib
   03-Jun-2003  01:05                  1,139,426  Xmlmime.lib
   03-Jun-2003  01:05                  3,503,076  Xmlminisax.lib
   03-Jun-2003  01:04                    187,888  Xmlnetfull.lib
   03-Jun-2003  01:04                    100,540  Xmlnetmini.lib
   03-Jun-2003  01:05                  2,318,642  Xmlsax.lib
   03-Jun-2003  01:05                    139,850  Xmlstubs.lib
   03-Jun-2003  01:05                  4,218,352  Xmlxql.lib
   03-Jun-2003  01:05                  4,078,628  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Sh3\Retail
   03-Jun-2003  00:52                  5,330,138  Xmldom.lib
   03-Jun-2003  00:52                    165,406  Xmlhttp.lib
   03-Jun-2003  00:52                    918,882  Xmlmime.lib
   03-Jun-2003  00:52                  2,414,700  Xmlminisax.lib
   03-Jun-2003  00:51                    109,808  Xmlnetfull.lib
   03-Jun-2003  00:51                     67,468  Xmlnetmini.lib
   03-Jun-2003  00:52                  1,391,054  Xmlsax.lib
   03-Jun-2003  00:52                     99,958  Xmlstubs.lib
   03-Jun-2003  00:52                  2,573,304  Xmlxql.lib
   03-Jun-2003  00:52                  2,199,710  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Sh4\Debug
   03-Jun-2003  01:58                  8,131,124  Xmldom.lib
   03-Jun-2003  01:58                    221,248  Xmlhttp.lib
   03-Jun-2003  01:58                  1,139,426  Xmlmime.lib
   03-Jun-2003  01:58                  3,501,504  Xmlminisax.lib
   03-Jun-2003  01:57                    187,888  Xmlnetfull.lib
   03-Jun-2003  01:57                    100,540  Xmlnetmini.lib
   03-Jun-2003  01:57                  2,318,642  Xmlsax.lib
   03-Jun-2003  01:58                    139,854  Xmlstubs.lib
   03-Jun-2003  01:58                  4,217,742  Xmlxql.lib
   03-Jun-2003  01:58                  4,078,294  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\Sh4\Retail
   03-Jun-2003  01:45                  5,326,850  Xmldom.lib
   03-Jun-2003  01:45                    165,100  Xmlhttp.lib
   03-Jun-2003  01:45                    918,390  Xmlmime.lib
   03-Jun-2003  01:45                  2,412,436  Xmlminisax.lib
   03-Jun-2003  01:44                    109,712  Xmlnetfull.lib
   03-Jun-2003  01:44                     67,414  Xmlnetmini.lib
   03-Jun-2003  01:44                  1,390,764  Xmlsax.lib
   03-Jun-2003  01:45                     99,952  Xmlstubs.lib
   03-Jun-2003  01:45                  2,571,700  Xmlxql.lib
   03-Jun-2003  01:45                  2,198,866  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\X86\Debug
   02-Jun-2003  19:09                  6,433,510  Xmldom.lib
   02-Jun-2003  19:09                    176,712  Xmlhttp.lib
   02-Jun-2003  19:09                    920,076  Xmlmime.lib
   02-Jun-2003  19:09                  2,781,670  Xmlminisax.lib
   02-Jun-2003  19:08                    148,942  Xmlnetfull.lib
   02-Jun-2003  19:08                     80,234  Xmlnetmini.lib
   02-Jun-2003  19:09                  1,844,766  Xmlsax.lib
   02-Jun-2003  19:09                    108,944  Xmlstubs.lib
   02-Jun-2003  19:09                  3,227,672  Xmlxql.lib
   02-Jun-2003  19:09                  3,152,236  Xmlxslt.lib

   Path: Public\Ie\Oak\Lib\X86\Retail
   02-Jun-2003  18:57                  4,717,196  Xmldom.lib
   02-Jun-2003  18:57                    138,626  Xmlhttp.lib
   02-Jun-2003  18:57                    901,980  Xmlmime.lib
   02-Jun-2003  18:57                  2,167,990  Xmlminisax.lib
   02-Jun-2003  18:56                     98,796  Xmlnetfull.lib
   02-Jun-2003  18:56                     60,946  Xmlnetmini.lib
   02-Jun-2003  18:57                  1,226,810  Xmlsax.lib
   02-Jun-2003  18:57                     99,808  Xmlstubs.lib
   02-Jun-2003  18:57                  2,352,232  Xmlxql.lib
   02-Jun-2003  18:57                  1,963,012  Xmlxslt.lib

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

After an original equipment manufacturer (OEM) applies this hotfix, the OEM can select the heap manager that is used by XML DOM. To do so, the OEM can use a new registry setting. The OEM can set the following value to use the Windows CE heap manager instead of the XML custom manager:

[HKEY_CURRENT_MACHINE\Software\Microsoft\MSXML]
"MiniHeap"=dword:1

To address the GUID issue after applying this update, the OEM can add the following information to the Windows CE registry (for example, in the Public\Ie\Oak\Files\Ie.reg file):

[HKEY_CLASSES_ROOT\CLSID\{F6D90F11-9C73-11D3-B32E-00C04F990BB4}]
@="XML DOM Document"
[HKEY_CLASSES_ROOT\CLSID\{F6D90F11-9C73-11D3-B32E-00C04F990BB4}\InProcServer32] @="msxml3.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{F6D90F11-9C73-11D3-B32E-00C04F990BB4}\ProgID]
@="Msxml2.DOMDocument"
[HKEY_CLASSES_ROOT\CLSID\{F6D90F11-9C73-11D3-B32E-00C04F990BB4}\TypeLib]
@="{f5078f18-c551-11d3-89b9-0000f81fe221}"
[HKEY_CLASSES_ROOT\CLSID\{F6D90F11-9C73-11D3-B32E-00C04F990BB4}\Version]
@="3.0"


Modification Type:MajorLast Reviewed:3/8/2006
Keywords:kbBug kbfix kbQFE KB821039