FIX: Data that is stored on a FAT-based storage media may become corrupted when you read and verify two files at the same time on a Compact Flash card in Windows CE .NET 4.2 (843287)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.2

SYMPTOMS

Data that is stored on a file allocation table (FAT)-based storage media may become corrupted when the FAT-based storage media is accessed by multiple threads at the same time. Multiple threads can be executed from one application or across multiple applications.

For example, when you read and verify two files on a Compact Flash (CF) card from two processes that are almost at the same time, the read data is sometimes destroyed.

User data that is stored on FAT-based storage media may become corrupted.

CAUSE

This problem occurs when two threads access the cache at the same time. The cache may be modified by the other thread if the critical section is not used.

This problem occurs when the cache is enabled by using Fatfsd.dll.

RESOLUTION

Hotfix information

A supported software update is now available from Microsoft as Windows CE .NET 4.20 Core OS QFE 843287. 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

This hotfix is supported only if all previously issued hotfixes for this product have also been installed.

Restart requirement

After you install this hotfix, you must perform a clean build of the whole operating system. To perform a clean build of the operating system, follow these steps:
  1. On the Build menu, click Clean.
  2. On the Build menu, click Build Platform.
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 hotfix 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   Version    Size       File name
   ---------------------------------------------------------------------------
   09-Jul-2004  20:26  4.2.4.709  1,305,336  Wincepb42-040709-kb843287-armv4.exe
   09-Jul-2004  20:25  4.2.4.709  1,309,432  Wincepb42-040709-kb843287-armv4i.exe
   09-Jul-2004  20:26  4.2.4.709  1,346,296  Wincepb42-040709-kb843287-mipsii.exe
   09-Jul-2004  20:26  4.2.4.709  1,346,296  Wincepb42-040709-kb843287-mipsii_fp.exe
   09-Jul-2004  20:26  4.2.4.709  1,362,680  Wincepb42-040709-kb843287-mipsiv.exe
   09-Jul-2004  20:26  4.2.4.709  1,362,680  Wincepb42-040709-kb843287-mipsiv_fp.exe
   09-Jul-2004  20:26  4.2.4.709  1,252,088  Wincepb42-040709-kb843287-sh3.exe
   09-Jul-2004  20:26  4.2.4.709  1,252,088  Wincepb42-040709-kb843287-sh4.exe
   09-Jul-2004  20:25  4.2.4.709  1,153,784  Wincepb42-040709-kb843287-x86.exe
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
--------------------------------------------------------------

Path: Public\Common\Oak\Lib\ARMV4\Debug
30-Jun-2004 	00:39 	             651,064 	Fatfsd.lib
30-Jun-2004 	00:39 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:39 		       736,408 	Tfat.lib
30-Jun-2004 	00:39 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\ARMV4\Retail
30-Jun-2004 	00:39 	             373,736 	Fatfsd.lib
30-Jun-2004 	00:39 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:39 	             414,722 	Tfat.lib
30-Jun-2004 	00:39 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\ARMV4I\Debug
30-Jun-2004 	00:39 	             651,736 	Fatfsd.lib
30-Jun-2004 	00:39 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:39 	             737,198 	Tfat.lib
30-Jun-2004 	00:39 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\ARMV4I\Retail
30-Jun-2004 	00:39 	             374,170 	Fatfsd.lib
30-Jun-2004 	00:39 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:39 	             415,202 	Tfat.lib
30-Jun-2004 	00:39 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSII\Debug
30-Jun-2004 	00:40 	             665,984 	Fatfsd.lib
30-Jun-2004 	00:40 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:40 	             750,914 	Tfat.lib
30-Jun-2004 	00:40 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSII\Retail
30-Jun-2004 	00:40 	             382,108 	Fatfsd.lib
30-Jun-2004 	00:40 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:40 	             423,388 	Tfat.lib
30-Jun-2004 	00:40 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSII_FP\Debug
30-Jun-2004 	00:40 	             666,128 	Fatfsd.lib
30-Jun-2004 	00:40 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:40 	             751,004 	Tfat.lib
30-Jun-2004 	00:40 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSII_FP\Retail
30-Jun-2004 	00:40 	             382,248 	Fatfsd.lib
30-Jun-2004 	00:40 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:40 	             423,540 	Tfat.lib
30-Jun-2004 	00:40 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSIV\Debug
30-Jun-2004 	00:41 	             674,342 	Fatfsd.lib
30-Jun-2004 	00:41 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:41 	             761,180 	Tfat.lib
30-Jun-2004 	00:41 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSIV\Retail
30-Jun-2004 	00:40 	             384,852 	Fatfsd.lib
30-Jun-2004 	00:40 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:40 	             426,958 	Tfat.lib
30-Jun-2004 	00:40 	              86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSIV_FP\Debug
30-Jun-2004 	00:41 	             674,486 	Fatfsd.lib
30-Jun-2004 	00:41 	              86,016 	Fatfsd.pdb
30-Jun-2004 	00:41 		       761,270 	Tfat.lib
30-Jun-2004 	00:41 		        86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\MIPSIV_FP\Retail
30-Jun-2004 	00:41 		     384,994 	Fatfsd.lib
30-Jun-2004 	00:41 		      86,016	      Fatfsd.pdb
30-Jun-2004 	00:41 		     427,108 	Tfat.lib
30-Jun-2004 	00:41 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\SH3\Debug
30-Jun-2004 	00:41 		     571,840 	Fatfsd.lib
30-Jun-2004 	00:41 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:42 		     644,526 	Tfat.lib
30-Jun-2004 	00:42 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\SH3\Retail
30-Jun-2004 	00:41 		     347,974	      Fatfsd.lib
30-Jun-2004 	00:41 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:41 		     384,522 	Tfat.lib
30-Jun-2004 	00:41 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\SH4\Debug
30-Jun-2004 	00:42 		     571,486 	Fatfsd.lib
30-Jun-2004 	00:42 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:42 		     644,146 	Tfat.lib
30-Jun-2004 	00:42 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\SH4\Retail
30-Jun-2004 	00:42 		     347,190 	Fatfsd.lib
30-Jun-2004 	00:42 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:42 		     383,698 	Tfat.lib
30-Jun-2004 	00:42 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\X86\Debug
30-Jun-2004 	00:38 		     558,166 	Fatfsd.lib
30-Jun-2004 	00:38 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:38 		     629,642 	Tfat.lib
30-Jun-2004 	00:38 		      86,016 	Tfat.pdb

Path: Public\Common\Oak\Lib\X86\Retail
30-Jun-2004 	00:38 		     308,296 	Fatfsd.lib
30-Jun-2004 	00:38 		      86,016 	Fatfsd.pdb
30-Jun-2004 	00:38 		     340,818 	Tfat.lib
30-Jun-2004 	00:38 		      86,016 	Tfat.pdb

WORKAROUND

To work around this problem, turn off the cache. However, you may experience poor system performance with the cache turned off.

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

MORE INFORMATION

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates


Modification Type:MinorLast Reviewed:5/27/2005
Keywords:kbcorrupt kbopenfile kbBug kbfix kbQFE KB843287 kbAudDeveloper