Issue: Short File Name Handling Issues
For files with long filenames, short file names are automatically generated by NTFS. For files in virtualized directories, these short name/long name associations may clash with those used in the underlying directories. A clash is whenever two files in the virtualized view of a directory with the same short (long) filename have different long (short) filenames.
For example, a file, “MyLongName.txt” in the User Profile Root may have the short name “MYLONG~1.TXT”, but the Installation Root file “MyLongFile.txt” may also use “MYLONG~1.TXT.”
Which file is opened when “MYLONG~1.TXT” is opened? What happens if one of them is deleted, and then “MYLONG~1.TXT” is opened? This problem is potentially worse for COM servers because they tend to register themselves in the Registry using the short filename.
Whenever a file is created in Installation Root (during install) or User Profile Root (after install), the Isolation Environment explicitly sets the short name after the file is created but before returning back up to the caller. Thus Isolation Environments ensure that the short file name is not used by any other long filename in the virtualized view.
Important: When file conflicts (as described in the example above) occur, isolation environments are able to manipulate short file names correctly in Windows 2003. On Windows 2000 Servers, occurrence of such file conflicts cannot be manipulated by the isolation environment. This is because, on Windows 2000 servers, the NTFS driver does not expose the required functionality that is required to handle such conflicts. It’s also important to note that if the User Profile Root is on a file share hosted on a Windows 2000 server, short file name handling fails even if the application is executing on a Windows 2003 server.