With the Windows 98 installable file system, multiple file systems can coexist on the computer. Windows 98 includes the file systems described in Table 10.8.
Table 10.8 Windows 98 file systems
File System | Description |
---|---|
Virtual File Allocation Table | In Windows 98, the 32-bit virtual file allocation table (VFAT) file system is the primary file system and cannot be disabled. VFAT can use 32-bit, protected-mode drivers or 16-bit, real-mode drivers. Although VFAT will function correctly when 16-bit disk drivers are being used by IO Supervisor (IOS), its performance is compromised. Many new performance enhancements in VFAT are unavailable when using 16-bit disk drivers. Typically, a 16-bit disk driver is used when MS-DOS terminate-and-stay-resident programs (TSRs) have chained themselves into the MS-DOS kernel. For optimal performance, remove MS-DOS TSRs. Actual allocation on disk is still 12-, 16-, or 32-bit (depending on the size of the volume), so FAT on the disk uses the same structure as previous versions of this file system. VFAT handles all hard disk drive requests, using 32-bit code for all file access for hard-disk volumes. |
Network Redirectors | A network redirector (such as Microsoft Client for NetWare Networks or Client for Microsoft Networks) is a file system driver that accesses the network file system. Windows 98 supports multiple network redirectors simultaneously, as described in Chapter 29, "Windows 98 Network Architecture." |
UDF | Universal Disk Format system. DVD disks use UDF. |
CD-ROM File System | The virtual CD-ROM file system (CDFS) has the same responsibilities for a CD-ROM device as VFAT has for a standard hard disk. If a CD-ROM device is detected, the CDFS driver loads dynamically. When CDFS is installed, the standard disk type-specific device and Disk SCSI translator are replaced with CD-ROM versions. The CDFS driver is a protected-mode version of MSCDEX.EXE, providing the interface from the CD-ROM device to the operating system, as described in "VCACHE and CDFS Supplemental Cache" earlier in this chapter and in Chapter 28, "Windows 98 Architecture." If the CD-ROM drive and its drivers support the multisession command, CDFS can support multisession capabilities, which provide a method for adding data to a CD-ROM (this is most applicable to CD-recordable media). The multisession command returns a number that identifies the first sector of the last session on the media so that CDFS can recognize the media. |
All these file systems support long file names and can use the protected-mode cache (VCACHE) for read-ahead (except CDFS). VFAT also supports lazy-write throughput, so applications can write immediately to the cache, and VFAT can write the information to disk later. For more information, see "VCACHE and CDFS Supplemental Cache" earlier in this chapter.
Other software vendors can also implement file systems. For example, a vendor might provide a file system that allows a computer running Windows 98 to connect to a different operating system (for example, Apple Macintosh or UNIX) to share files.
The Installable File System Manager (IFSMGR) receives all INT 21 calls and determines which file system driver should receive the call to process it. IFSMGR uses a real-mode stub named Ifshlp.sys to send INT 21 calls back to IFSMGR, as described in Chapter 28, "Windows 98 Architecture."
File system drivers manage the high-level I/O requests from applications. The file system driver processes requests from applications and initiates low-level I/O requests through the I/O Supervisor.
Protected-mode disk compression is not integrated into the file system, but is supported by a layer in the I/O subsystem.
System File Checker verifies the integrity of your operating system files and offers to restore missing, corrupted, or replaced files. System File Checker can be configured to back up existing files before restoring the originals. A log file (Sfclog.txt) is generated by default. Additional options include the ability to customize search criteria based on folder and/or file extension, choose a different verification data file, create a new verification file, or restore the default verification data file (Default.sfc).
For more information about System File Checker, see Chapter 27, "General Troubleshooting."
For MS-DOS version 6.22 and earlier, file names cannot exceed eight characters and file name extensions cannot exceed three characters in length (referred to as "8.3 file names"). The period character (.) is used only to separate the file name from the file name extension. With long file name support in Windows 98, these 8.3 file name constraints are gone.
For all Windows 98 file systems, users can specify file names that are up to 255 characters long and that can contain more than one period. These long file names are any names that exceed 8.3 characters in length or contain any lowercase character or most characters that are not valid in the 8.3 name space.
The following sections present information about long file name support in Windows 98, including information and recommendations for supporting long file names in a mixed network environment.
For every long file name, an alias entry is generated automatically that complies with the 8.3 file name rules for backward compatibility. Automatically generated aliases are composed of the first six characters of the file name plus ~n (where n is a number) and the first three characters after the last period. So the file name ThisIsALong.File.Name is associated with the automatically generated alias THISIS~1.NAM. If the alias name already exists, the algorithm will generate a unique value for n.
Note
Neither the user nor an application can control the name created by the automatic alias process. Related issues are discussed in "Long File Names and Network Compatibility" later in this chapter.
For the file name to comply with the 8.3 file name rules, it must use only the valid characters for an alias and it must be all uppercase. Valid characters for 8.3 file names (and aliases) can be any combination of letters and numbers, a space (ASCII 20H), ASCII characters greater than 127, and the following special characters:
$ % ' - _ @ ~ ` ! ( ) ^ # &
The following additional characters are valid in long file names, but are not valid in alias names or 8.3 file names:
+ , ; = [ ]
The following rules also apply for Windows 98 file systems:
The file name and the alias are the same if the file name meets 8.3 file name rules (that is, if it contains only valid characters for an alias and it is all uppercase). This means that a file name using only valid characters for an alias and following the 8.3 file name format is still not the same as the alias name if it contains lowercase characters. However, in this case the alias is the uppercase version of the file name. For example, if the long file name is Examples.txt, its alias is EXAMPLES.TXT. The case is preserved in the long file name. (Note, though, that path-based APIs in the Windows 98 file system are not case-sensitive. So a search of the form "EXAMPLES.TXT" or "Examples.txt" will find the same files.)
Tip
To see the alias for a file, right-click the file in any shell program such as Windows Explorer, and then select Properties from the context menu. The value for MS-DOS Name in the General Properties dialog box shows the alias assigned to this file. Also, the dir command at the command prompt shows the long file name.
By using a process called tunneling, Windows 98 preserves long file names for files that are opened and saved using an application that does not recognize long file names. Tunneling preserves long file names on the local computer as well as files accessed across the network.
Tunneling is supported for any file system that IFSMGR recognizes. The file system in turn must "authorize" tunneling to allow its use in that file system. Tunneling is authorized automatically with VFAT.
Correct network tunneling is the responsibility of the server—that is, the server must be configured to support long file names. A server running any edition of Windows NT 3.5 or Windows 98 file and printer sharing services will preserve long file names. For example, a user who is running Windows for Workgroups might open and save a file on a peer server that is running file and printer sharing services (for either Microsoft networks or NetWare networks). In this case, the long file name will be preserved by the file system on the peer server, because the peer server uses IFSMGR and VFAT to store the data.
The following sections provide details about long file name support on various networks.
Windows 98 protected-mode network clients (Client for Microsoft Networks and Client for NetWare Networks) support long file names. If the network server that the computer is connected to supports long file names, then Windows 98 can read, create, and copy local long file name files on the network share. On some servers, the length of file names, restricted characters, and the algorithm for creating 8.3 file names from long file names might differ from those under Windows 98.
Client for Microsoft Networks does not authorize tunneling, so tunneling is not used to preserve long file names on down-level servers connected through the Windows 98 client (for example, a computer running Windows for Workgroups or LAN Manager Services). However, Microsoft Client for NetWare Networks does authorize tunneling, so tunneling can preserve long file names in connections to older NetWare servers when running Client for NetWare Networks.
Windows 98 can access files on HPFS or NTFS partitions on remote drives. However, there is no built-in support in the release of Windows 98 for adding either of these file systems as another installable file system under Windows 98. Therefore, Windows 98 cannot access either an HPFS or NTFS partition on a local disk drive by using the file system drivers provided with Windows 98. (Other vendors, however, can add HPFS support.)
Please note the following interoperability exceptions for other file systems:
Long file names can be used on computers running file and printer sharing services and can be viewed on computers using protected-mode Windows 98 network clients. Real-mode network clients running under Windows 98 can see only the 8.3 version file name aliases.
If Windows 98 has been configured with File and Printer Sharing for NetWare Networks, any MS-DOS-based NetWare clients using NETX or VLM will see 8.3 file names when browsing resources on the computer running Windows 98. Computers using Client for NetWare Networks can see long file names.
Long file names are supported for NetWare servers if the server is configured to use the OS/2 name space. For information, see Chapter 17, "Windows 98 on Third-Party Networks."
Note
Older Microsoft or Microsoft-compatible clients (for example, LAN Manager, Workgroup Add-on for MS-DOS, Windows for Workgroups, and so on) cannot use shared folders that have long file names. These older network clients might have problems connecting to and using a shared directory with a long file name as the directory name. Defining a short share name does not correct this problem.
HPFS and HPFS/386 partitions on LAN Manager OS/2-based computers have a maximum file name length of 254 characters and use the 8.3 file name alias on the first instance. For example:
longfilenameold.tst --> LONGFILE.TST
longfilenamenew.tst --> LONGFIL0.TST
Long file names on a LAN Manager server with HPFS or HPFS/386 partitions are supported and viewable by Windows 98 protected-mode network clients. Real-mode network clients can see only the 8.3 file name aliases.
LAN Manager workstations with HPFS or HPFS/386 cannot see Windows 98 long file names. The LAN Manager workstation software has no awareness of the long file name-over-FAT file scheme used by Windows 98.
Support for long file names on FAT volumes is identical in Windows NT 3.5 and Windows 98. Therefore, a computer with dual-boot capabilities for Windows NT 3.5 and Windows 98 can see long file names on local FAT volumes by using both operating systems.
HPFS partitions exist on Windows NT computers only in the case of an upgrade over OS/2. File names on Windows NT 3.1 HPFS partitions have a maximum file name length of 254 characters and use the 8.3 file name alias on the first instance. For example:
longfilenameold.tst --> LONGFILE.TST
longfilenamenew.tst --> LONGFIL0.TST
File names on Windows NT 3.1 NTFS partitions have a maximum file name length of 255 characters and use the 8.3 file name alias on the first instance. For example:
longfilenameold.tst --> LONGFI~1.TST
longfilenamenew.tst --> LONGFI~2.TST
Long file names on shared Windows NT 3.1 HPFS and NTFS partitions are supported and viewable by Windows 98 protected-mode network clients. Real-mode network clients can see only the 8.3 file name aliases.
Windows NT 3.1 computers cannot see Windows 98 long file names. Windows NT 3.1 has no awareness of the long file name-over-FAT file scheme used by Windows 98.
If you are supporting long file names at a site with many users, consider the issues in this section.
If you back up files to a server that does not support Windows 98 long file names, use the LFNBK utility to save and restore long file names.
For information, see "Using the LFNBK Utility for Temporary Compatibility" later in this chapter.
Be aware of utilities that will not work with the Windows 98 directory entries for long file names. Some virus scanning programs, disk repair utilities, disk optimizers, and other programs depend on the FAT file system and might not work with long file names. If you are unsure whether a utility is compatible with the long file name system, check with the manufacturer. If you must use an incompatible program, be sure to turn off long file names by using the LFNBK utility before proceeding.
Do not use file names that are more than 50 to 75 characters long. Although file names can be up to 255 characters, the full path name cannot be more than 260 characters. To save room for moving a file from one directory to another, use file names shorter than the limit. Besides, file names that are too long can make browsing a list difficult.
Publish a naming convention for your site so that users are aware of naming considerations and can prevent problems with the long file names they use.
For example, your policy could recommend making the first three or four letters significant, so that the 8.3 file name aliases can be distinguished from each other. The following example shows the alias names for some long file names:
Status Report for Oct -> STATUS~1.TXT
Status Report for Nov -> STATUS~2.TXT
Status Report for Dec -> STATUS~3.TXT
Using the following alternate file names, you can distinguish between the 8.3 file names:
Oct Status Report -> OCTSTA~1.TXT
Nov Status Report -> NOVSTA~1.TXT
Dec Status Report -> DECSTA~1.TXT
You could also recommend that users give files a short file name as part of the long file name. For example:
Mktg_rpt-Marketing Report for our new project -> MKTG_R~1.TXT
As part of the naming convention, recommend that users check the properties for files to ensure that the alias (the MS-DOS Name in the Properties dialog box) is what they expect it to be.
Tip
On FAT16 drives, it is usually best to store files in a directory beneath the root directory. This is especially true for files with long file names. Files with long file names use more directory entries than files with 8.3 file names. Because the number of entries in the root is limited to 512, the root directory can fill up with fewer files if long file names are used.
Notice that typing the command mkdir Examples creates a long file name directory entry that contains the name Examples to preserve the case, plus an 8.3 file name alias entry with the name EXAMPLES for compatibility. In this example, two directory entries are used.
Most hard disk utility programs released before Windows 98 require updating to work correctly with Windows 98. If you use a hard disk utility that was not created especially for use with Windows 98, you might lose long file names and you are at risk of losing data. Examples of such programs include the following:
In special cases, you might need to run backup or disk management utilities created for older versions of Windows or MS-DOS that are not compatible with the extended file system capabilities of Windows 98. Or you might need occasionally to run an application that is not compatible with long file names. In such cases, you can use the LFNBK utility to remove (and later restore) long file names on a disk.
To install the LFNBK utility
Caution
The LFNBK utility is intended for use only by experienced Windows 98 users with special needs for compatibility with older disk utilities. It is not intended for everyday use by average users.
Microsoft recommends that users rely on the disk management utilities included with Windows 98 or use Windows 98-compatible utilities from other vendors, rather than attempting to use older utilities that are not compatible with Windows 98.
Notice also that the DriveSpace 3 utility included with Windows 98 is compatible with long file names and can be used without LFNBK to manage compressed disks created with older versions of DriveSpace 3 or DoubleSpace.
The following shows the syntax for LFNBK:
lfnbk [/v] [/b | /r | /pe] [/nt] [/force] [/p] [drive]
Table 10.9 lists and describes the parameters for this command.
Table 10.9 LFNBK parameters
Parameter | Description |
---|---|
/v | Reports actions on the screen. |
/b | Backs up and removes long file names on the disk. |
/r | Restores previously backed-up long file names. |
/pe | Extracts errors from backup database. |
/nt | Does not restore backup dates and times. |
/force | Forces LFNBK to run, even in unsafe conditions. |
/p | Finds long file names but does not convert them to 8.3 file name aliases. This reports the existing long file names, along with the associated dates for file creation, last access, and last modification of the file. |
To preserve long file names with disk utilities that do not recognize them
In the System option in Control Panel, click the Performance tab, and then click File System. In the File System Performance dialog box, click the Troubleshooting tab, and check the option named Disable Long Name Preservation for Old Programs.
The LFNBK utility actually renames each file with a long file name to its associated alias. The file name changes are stored in the Lfnbk.dat file in the root of the drive where you are running LFNBK. This file is used to restore long file names (when you run LFNBK with the /r switch).
The following list provides some brief notes for using the LFNBK utility:
At an MS-DOS prompt or when Windows 98 is started only at the command prompt (from the F8 Startup menu), the keyboard buffer’s ability to create long file names is limited to 127 characters. This is because the default command-line character limitation is 127 characters. In the default configuration, the MS-DOS environment will not allow more than 127 characters in a given command line. (However, in batch files, or for environment variables and other virtual machine (VM) elements, the long file name support is 244 characters.)
You can increase the global command-line character limit for the keyboard buffer to its maximum by placing the following line in Config.sys:
shell=c:\windows\command.com /u:255
If the shell command is already present with the /u switch, increase the value to 255.
This command will affect all VMs and the Windows 98 command line.
With the command-line character limit set to its maximum of 255 characters, file names are limited to 255 characters minus the contents of the command line. For example, the command line might contain the following:
copy con "long filename"
In this case, the maximum length of the long file name is 244 characters (255 minus the 11 characters of the command including spaces and quotation marks).
Note
It is necessary to put the file name in quotation marks on the command line only if the file name contains special characters, such as spaces.
Notice, however, MS-DOS-based applications configured to run in MS-DOS Mode use only the real-mode FAT file system. Because of this, long file names created in a Windows environment are not visible when the system runs in MS-DOS Mode; only the 8.3 file name aliases are visible.
The same is true of files with long file names that are copied to a floppy disk subsequently used by a down-level FAT file system such as MS-DOS 6.0, Windows 3.1, OS/2 2.11, Windows NT 3.1, and so on.) On down-level file systems, only the 8.3 file name alias is visible on the floppy disk, even if it contains long file names created in Windows 98.