I’ve seen several references to Windows 2000 Service Pack 3 (SP3) and pre-SP4 bug fixes during the past 2 weeks, which leads me to believe that Microsoft will release the much-needed SP3 update soon—possibly even this week. Because the post-SP2 bug list has climbed to nearly 600 entries, we’ll all breathe a sigh of relief when SP3 is ready to go. However, Microsoft only recently documented several of the problems that I discuss today, and the company might not have time to include fixes for those problems in SP3.

Disappearing RIP Routes
Winsock, the Win2K component responsible for managing Routing Information Protocol (RIP) route updates, uses a 64KB buffer to handle incoming route changes. When Winsock receives a route update that contains more than 1000 route changes, the update packet can exceed the buffer size. As a result, Winsock might not incorporate the route update at all or only after a delay of several minutes or more. Microsoft Support Services (MSS) has a bug fix that corrects the buffer overflow problem. The update contains two files—spmsg.dll, which has a release date of May 30, 2001, and iprip2.dll, which has a release date of December 3, 2001. For more information, see Microsoft article Q313617.

OpenGL Access Violations
If you’re working with Win2K graphics, you’ll want to track down this bug fix, which SP3 won't include. Two annoying access-violation bugs exist in the OpenGL code: one in the algorithm that calculates screen coordinates for a very long line and another that causes an access violation when you display clip planes across window boundaries. You can get the most recent version of opengl32.dll from MSS. The DLL has a file release date of November 29, 2001. Note that Microsoft released an earlier update for opengl32.dll on November 13, but the November 29 file supercedes the earlier version. For more information, see Microsoft articles Q313377 and Q309097.

Win2K DNS Access Violation
If you enable logging for Win2K DNS, DNS might hang and generate an access violation. When this problem occurs, you’ll see events with Event ID 5504 and 5506 in the System event log just before the DNS service fails. In some cases, the DNS server creates invalid data in response to DNS queries, including a request for a reverse lookup. The invalid data, in turn, causes a buffer overflow. MSS has a new version of dns.exe (with a file release date of December 5, 2001) that eliminates this problem. Because the service fails only when you enable debug logging, you can temporarily work around the problem if you disable logging. Load the DNS Microsoft Management Console (MMC) snap-in, right-click the DNS server, click Properties, click the Logging tab, and clear the Debug Logging checkbox. Microsoft will most likely include this fix in SP3. For more information, see Microsoft article Q314803.

FSMO Access Violation
Don't try to transfer the Flexible Single-Master Operation (FSMO) role from one Win2K domain controller (DC) to another without first installing this update. According to Microsoft article Q305220, when you attempt to seize the role of a DC FMSO, the OS generates an access violation with the text "Access violation—code c0000005." The Microsoft article provides no information about the source of the problem and doesn't identify the OS component that causes the failure. You can ask MSS for the comprehensive update that corrects the problem on all versions of Win2K, from the initial release through SP2. The fix contains 26 OS components with file release dates of August 1 through October 28, 2001. To avoid a runaround, cite the Microsoft article number when you call. I expect this comprehensive update to make it into SP3.

National Semiconductor Controllers and DMA Access
This issue is important if you're configuring Win2K workstations that include National Semiconductor IDE disk controllers. Apparently, a Win2K device configuration problem causes the driver to configure the IDE controller as non-direct memory access (DMA) -capable, which seriously slows the transfer of data to and from any connected hard disk. Two steps are required to properly configure affected controllers with DMA functionality. First, install the new pciidex.sys driver dated November 19 (available only through MSS). Second, to take advantage of the new driver functionality, you must make a registry modification. Find the registry key

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetControl\
Class\\{4D36E96A-E325-11CE-BFC1-08002BE10318\}\0000

and add the value IgnorBusMasterStatusZeroBits:REG_DWORD:1.

The Microsoft article doesn't mention this, but because you’re tinkering with the device driver that controls the hard disk, you must reboot your system. I recommend that you make this change on a test system first, because if the new driver has any problems, you run the risk of losing access to your hard disks. For more information, see Microsoft article Q312190.

Terminal Services Disconnects Encrypted Client Sessions
According to Microsoft article Q311371, Win2K Server Terminal Services clients with encrypted client sessions might intermittently lose encrypted connections because the terminal server code doesn't correctly decrypt session data when IP packets are fragmented. To determine whether this is a problem on your server, look for Event ID 50: The RDP protocol component "DATA ENCRYPTION" detected an error in the protocol stream and has disconnected the client. If you're experiencing this problem, you can call Microsoft for an update that contains new versions of instrdp5.dll and rdpwd.sys with file release dates of October 28, 2001. For more information, see Microsoft article Q311371.