Very little, it turns out.
The official description is more-or-less correct, though leaning towards less, and also rather vague about the circumstances: the primary task of SULFNBK is to back up long file names when upgrading Windows, and to restore them when going back to the old version. To perform this function, SULFNBK has two modes of operation:
- With the
/B:⟨directory⟩ switch, it reads C:\PATH.INI and creates a file named WINLFN.INI within the given ⟨directory⟩ containing mappings of short file names to long ones.
- With the
/R switch, it reads WINLFN.INI from the location pointed to by UninstallDir= within MSDOS.SYS and renames files back to their long names.
The separate executable is necessary, because both the installer and the uninstaller are Win16 executables, which are only able to access short file names.0 The installer (SUWIN.EXE) has to be a Win16 executable, because it must be possible to run it under Windows 3.x, or under the bundled mini-Windows 3.x when it is launched from DOS. The uninstaller is also a dual-mode executable, and even when it is launched from Windows, part of its job is performed in pure DOS, where long file names are also unavailable. So a helper executable is needed.
When the upgrade installer is launched from within a Windows 9x session, a PATH.INI file is created and SULFNBK is launched with the /B option to generate the WINLFN.INI file. The uninstaller, conversely… doesn’t do anything with that. There is specific code within UNINSTAL.EXE that would have set up SULFNBK with the /R option to run, but it’s nowhere invoked. Not even through RUNDLL shenanigans. The user may still be able to invoke SULFNBK manually, but given that it seems completely undocumented other than in a Windows 98 beta version manual, it’s not clear how they are even supposed to know about it. (For what it’s worth, I managed to find one article about it… in Czech, of all languages.)
The executable also has two other modes of operation, completely unrelated to backing up long file names:
- With the
/X switch, it spawns a background task that seems to suppress “low disk space” warnings as long as it is running. The installer spawns this one and leaves it running until the first restart.
- With the
/L switch, it populates the Favorites directory of the user’s profile with items described in the [LinkBar] section of %WINDIR%\INF\SETUP.INF; this mode of operation is used when Windows creates a new user profile. The links added advertise Microsoft services; chances are you never wanted those anyway. (If you squint, you might be able to call that malware behaviour; perhaps the virus rumour wasn’t such a hoax after all.)
All in all, SULFNBK seems to be a dumping ground for a few rarely-performed one-off tasks that, for one reason or another, couldn’t be integrated into some other place; a hack as elegant as its icon. If it’s missing from your system, chances are you will not ever notice, not unlike the appendix.
0 At least with normal APIs. I suspect they might have gotten away with directly calling interrupt 0x21 service 0x71. For whatever reason, they did not.
SystemUpgradeLongFileNameBacKup – TooTea Jan 04 '24 at 07:58