Caveat emptor

The irony about service packs for Windows NT is that they often break as much as they fix (for an illustration of this point, see Mark Minasi, "Recovering from a Network Disaster"). You can attribute this phenomenon to Microsoft's refusal to put service packs through the same rigorous external testing phases that general release software goes through (read: Microsoft won't beta test the fixes). This approach isn't good.

Microsoft recently released Service Pack 2 (SP2) for NT 4.0, which fixes many nagging bugs in the operating system. You can get more information about the fixes from the Service Pack 2 Information Center at http://www.winntmag.com.

SP2 Fixes
With one major fix, symmetric multiprocessing (SMP) users can now run NT 4.0 on a computer with more than four processors without the computer periodically going south. SP2 also fixes NT 4.0 so that it replicates data properly from a Primary Domain Controller (PDC) to a Backup Domain Controller (BDC).

When you install SP2, the setup program asks whether to save uninstallation information. I strongly suggest that you do--the process takes about 6MB of disk space, but you won't have to repair your NT system if the service pack causes problems. The uninstall process is a bit messy (for example, you have to save the uninstall information on your system partition), but having the option is a step in the right direction.

Surprisingly, Microsoft also added two new API calls to NT 4.0, using SP2 as a delivery vehicle. These two calls, ReadFileScatter() and WriteFileGather(), let programs pull in data from an uncached file and store it in a discontiguous buffer, and vice versa. They also give disk I/O-intensive applications such as SQL Server and Internet Information Server (IIS) a serious performance boost because you can now move data from memory to disk in one pass.

SP2 Bugs
You're probably wondering where the irony comes in. Well, SP2 is quite possibly one of the most problematic service packs I've installed to date--my system was infinitely more stable before I installed SP2. The bugs range from amusing and anecdotal (SP2 breaks Point-to-Point Protocol--PPP--connections into The Microsoft Network's online service) to downright deadly (SP2 can scramble NTFS partitions to the point where you can't read them anymore). At press time, Microsoft had acknowledged some of the bugs in SP2, promised imminent hotfixes for some, and made some hotfixes available on ftp://ftp.microsoft.com. The available hotfixes address some of the issues listed below, such as the Remote Access Service (RAS) bugs, and are probably easier to implement than their respective workarounds. You can get more information on the hotfixes from the Service Pack 2 Information Center, which is updated as new information and hotfixes are available.

To find out how real users are getting around these problems, I went on Internet Relay Chat (IRC); the following paragraphs describe SP2 bug workarounds, courtesy of the folks in the #windowsnt channel on the EFNet IRC network.

The lack of a proper beta test prior to release hurt the quality of SP2.

If you use a virus scanner that stays active in memory (such as McAfee VirusScan and Symantec's Norton AntiVirus), chances are you've seen the blue screen of death (BSOD) when you write data to a floppy. The fix is to set the virus scanner's services to start manually in the Control Panel. A hotfix for this bug should be available by the time you read this article. However, if one isn't available, Microsoft recommends turning off auto-protect or on-the-fly scanning features as another workaround.

SP2 has also led to problems with RAS connections. For example, Dial-Up Networking on SP2 seems to search for multilink capabilities to connect to an Internet Service Provider (ISP). If your connection fails, open the Registry Editor and drill down to the HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Rasman/ppp key and create a new subkey called DisableMultilink. Give it a hexadecimal value of 1, and reboot the system.

Along the same vein, RAS in SP2 has problems connecting to ISPs that use Ascend routers. Dial-Up Networking completes the connection, but you end up with a dead link. To restore PPP capability, uninstall SP2 and replace raspppen.dll in the SP2 installation directory with the original file from the NT 4.0 CD-ROM. Then reinstall SP2. Alternatively, you can grab a hotfix from ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt40/hotfixes- postSP2/ras-fix that patches the system to fix the bug.

Some NT systems crash with a BSOD if you insert an autorun-enabled CD-ROM. The workaround is to disable autorun. Drill down to HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Cdrom in the Registry and set the Autorun value to 0. You'll lose the autorun functionality, but it beats seeing the BSOD every time you insert a CD-ROM. If you're vigilant enough, you can leave autorun enabled but hold down the shift key each time you insert a new CD-ROM.

Some users have also reported seeing their CPU pegged at 100 percent utilization. Thus far, this problem seems to affect only machines with a Plextor CD-ROM drive. If you have this problem and have a Plextor CD-ROM drive attached to your computer, just insert a CD-ROM in the drive and NT will be usable again.

Finally, the most serious SP2 bug scrambles NTFS partitions. Before you start seeing "Cannot access drive" errors, uninstall SP2, replace the ntfs.sys and advapi32.dll files in the SP2 installation directory with the original files from the NT 4.0 CD-ROM, and reinstall SP2.

From my vantage point, the lack of a proper beta test prior to release hurt the quality of SP2. If SP2 fixes something that's been bugging you (no pun intended), you should install it and see how it goes on your system. If SP2 causes more problems than it's worth, I suggest you do what I did--uninstall it and wait for SP3.