The FAT file system may not store extended characters in a file name (837276)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.2


SYMPTOMS

You may experience either of the following symptoms:
  • Symptom of problem 1: When you create and name a file whose file name has all the following characteristics, the FAT file system may not create a Unicode file name for a file:
    • The file name comprises 8 or fewer characters.
    • The file name contains only extended characters (character code that is greater than 127).
    • The file name contains uppercase characters or numeric characters or symbolic characters.
    • The file name extension has 3 or fewer characters.
  • Symptom of problem 2: The Transactional FAT (TFAT) file system may cause one of the two file allocation tables to be inconsistent with the other file allocation table if the system is reset during a critical point in the FAT file system update phase.

CAUSE

Following are the possible causes:
  • Cause of problem 1: FATFS does not use the fact that extended characters are present as a criterion to add a long file name (LFN) entry with the Unicode representation of the file name. Any one of the following can trigger the addition of the Unicode LFN entry:
    • Lowercase characters
    • A file name that is longer than 8 characters
    • A file name extension that is longer than 3 characters
  • Cause of problem 2: Because of the ordering of sector writes during the synchronization of the FAT tables, a transaction in-process flag can be cleared before the operation is complete.

RESOLUTION

Hotfix Information

A supported software update is now available from Microsoft as Windows CE 4.2 Core OS QFE 837276. 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 fix is supported only when all previously issued fixes for this product have also been installed.

Restart Requirement

After you install this update, you must perform a clean build of the whole platform. To do this on the Build menu, click Clean, and then click Build Platform.

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
   --------------------------------------------------------------------------------------

   12-Mar-2004  02:45  4.21            1,309,424  Wincepb42-040311-kb837276-armv4.exe  
   12-Mar-2004  02:45  4.21            1,309,424  Wincepb42-040311-kb837276-armv4i.exe
   12-Mar-2004  02:45  4.21            1,346,288  Wincepb42-040311-kb837276-mipsii.exe
   12-Mar-2004  02:45  4.21            1,346,288  Wincepb42-040311-kb837276-mipsii_fp.exe
   12-Mar-2004  02:45  4.21            1,362,672  Wincepb42-040311-kb837276-mipsiv.exe
   12-Mar-2004  02:45  4.21            1,362,672  Wincepb42-040311-kb837276-mipsiv_fp.exe
   12-Mar-2004  02:45  4.21            1,264,368  Wincepb42-040311-kb837276-sh3.exe
   12-Mar-2004  02:45  4.21            1,260,272  Wincepb42-040311-kb837276-sh4.exe
   12-Mar-2004  02:45  4.21            1,166,064  Wincepb42-040311-kb837276-x86.exe
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                      Size    File name
   --------------------------------------------------------------

   Path: Public\Common\Oak\Lib\Armv4\Debug
   25-Feb-2004  22:56                    637,152  Fatfsd.lib
   25-Feb-2004  22:56                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    720,014  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Armv4\Retail
   25-Feb-2004  22:56                    365,342  Fatfsd.lib
   25-Feb-2004  22:56                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    405,290  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Debug
   25-Feb-2004  22:56                    637,798  Fatfsd.lib
   25-Feb-2004  22:56                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    720,786  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Armv4i\Retail
   25-Feb-2004  22:56                    365,764  Fatfsd.lib
   25-Feb-2004  22:56                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    405,790  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Debug
   25-Feb-2004  22:57                    653,102  Fatfsd.lib
   25-Feb-2004  22:57                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    735,684  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsii\Retail
   25-Feb-2004  22:57                    372,824  Fatfsd.lib
   25-Feb-2004  22:57                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    413,196  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Debug
   25-Feb-2004  22:57                    653,240  Fatfsd.lib
   25-Feb-2004  22:57                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    735,776  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsii_fp\Retail
   25-Feb-2004  22:57                    372,962  Fatfsd.lib
   25-Feb-2004  22:57                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    413,344  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Debug
   25-Feb-2004  22:58                    661,188  Fatfsd.lib
   25-Feb-2004  22:58                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    745,586  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsiv\Retail
   25-Feb-2004  22:58                    375,676  Fatfsd.lib
   25-Feb-2004  22:58                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    416,800  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Debug
   25-Feb-2004  22:58                    661,326  Fatfsd.lib
   25-Feb-2004  22:58                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    745,678  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Mipsiv_fp\Retail
   25-Feb-2004  22:58                    375,812  Fatfsd.lib
   25-Feb-2004  22:58                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    416,950  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Sh3\Debug
   25-Feb-2004  22:59                    560,892  Fatfsd.lib
   25-Feb-2004  22:59                     86,016  Fatfsd.pdb
   05-Mar-2004  17:51                    631,548  Tfat.lib
   05-Mar-2004  17:51                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Sh3\Retail
   25-Feb-2004  22:58                    339,898  Fatfsd.lib
   25-Feb-2004  22:58                     86,016  Fatfsd.pdb
   05-Mar-2004  17:50                    375,678  Tfat.lib
   05-Mar-2004  17:50                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Sh4\Debug
   25-Feb-2004  22:59                    560,546  Fatfsd.lib
   25-Feb-2004  22:59                     86,016  Fatfsd.pdb
   05-Mar-2004  17:51                    631,172  Tfat.lib
   05-Mar-2004  17:51                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\Sh4\Retail
   25-Feb-2004  22:59                    339,216  Fatfsd.lib
   25-Feb-2004  22:59                     86,016  Fatfsd.pdb
   05-Mar-2004  17:51                    374,978  Tfat.lib
   05-Mar-2004  17:51                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\X86\Debug
   25-Feb-2004  22:56                    548,000  Fatfsd.lib
   25-Feb-2004  22:56                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    617,556  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

   Path: Public\Common\Oak\Lib\X86\Retail
   25-Feb-2004  22:55                    300,902  Fatfsd.lib
   25-Feb-2004  22:55                     86,016  Fatfsd.pdb
   05-Mar-2004  17:49                    332,672  Tfat.lib
   05-Mar-2004  17:49                     86,016  Tfat.pdb

STATUS

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

MORE INFORMATION

About problem 1: Although this update changes how FATFS handles extended characters in file names, the changes are not active by default after you install the update. This default behavior is because of potential compatibility issues with existing media. To make this update active, you have to do a bitwise OR of the value 0x800000 in the FATFS Flags in the registry.

For example, if the previous value of the Flags was 0x00000064, the following registry setting activates this hotfix:

[HKEY_LOCAL_MACHINE\System\StorageManager\FATFS]

"Flags"=DWORD:00800064

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:kbBug kbfix kbQFE KB837276 kbAudDeveloper