Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To allow FAT to support long file names, Microsoft devised the LFN directory entry, as shown in Figure - LFN directory entry.

Panel

Image Added


An LFN entry is essentially a workaround to store long file names in several contiguous 32-byte entries that were originally intended for short file names.

...

  • If three entries are needed to store the long file name, byte 0 of the entries carry order numbers of 0x43, 0x02 and 0x01, respectively. (Byte 0 is labelled “Ord” in the figure above). None of these, are valid characters (which allows backward compatibilityAlthough 0x43 is a valid character, an SFN-only FAT implementation will not mistakenly try to interpret it as the first letter of an entry name. This is due to the fact that LFN directory entries have special attributes (byte 11 set to 0xF) that make them appear as volume labels to SFN-only FAT implementations (so that they are simply ignored during regular file or directory lookup).
  • If two entries are needed (as in figure above), byte 0 of the entries carry order numbers of 0x43 and 0x01, respectively.
  • In entries that store part of a LFN, byte 11, where the Attributes value is stored in a SFN, is always 0x0F; Microsoft found that no software would modify or use a directory entry with this marker.
  • In entries that store part of a LFN, byte 13 contains the checksum, which is calculated from the SFN. FAT’s file system software recalculates the checksum each time it parses the directory entries. If the stored checksum is not the same as the recalculated checksum, FAT’s file system software knows that the SFN was modified (presumably by a program that is not LFN-aware).