Windows uses a special subsystem for certain disk functions, which caches write operations and performs them when the system is idle. This can improve system performance, but it's typically turned off by default. The term for this kind of operation is delayed writing.
You can see how write-caching is handled for a particular volume by right-clicking on the icon for the drive in the "Disk drives" subtree of the Device Manager and selecting the Policies tabs. The options typically are "Optimize for quick removal" (everything is written to the drive immediately) and "Optimize for performance" (writes are cached).
The first option lets you quickly disconnect drives -- for instance, hot-pluggable USB "pen" drives -- without first disconnecting them via the Safely Remove Hardware icon in the system tray. If all the options are grayed out, this means write-caching is probably handled at the discretion of the device driver. (You can see more information about the way the defaults for write caching work in the Microsoft article, "Windows XP and Surprise Removal of Hardware".
In Windows XP, the system may pop up a "Delayed Write Failed" notification balloon, which means that something has gone wrong with the delayed-write system. This does not always mean there has been a fatal problem, but you should take it seriously.
Some common reasons for a delayed-write failure are:
- Problems with a device driver, especially a SCSI or RAID device driver. Some RAID device drivers are known to issue spurious "Delayed Write Failed" errors in XP Service Pack 2. Most manufacturers have been alerted to this, so check to make sure the disk drivers are up-to-date.
- Cabling problems. A faulty or broken cable -- especially for an external USB or Firewire enclosure—can generate this error. It can also happen if the cable is too long, or if it is hooked up through a hub that isn't up to spec. Another possible culprit is if you have a UDMA drive that requires an 80-pin cable, and you are using a 40-pin cable.
- SCSI termination errors. This has become less likely with the advent of self-terminating SCSI hardware, but it shouldn't be counted out.
- Media errors. This is the worst possible scenario -- essentially, drive failure. If you can garner statistics on the drive via SMART (such as SMART & Simple, you may be able to determine if there's a mechanical failure in the offing. Gibson Research's SpinRite tool is also useful for assessing media errors, but be warned: It may take a long time to do a thorough test.
- BIOS settings on the computer are forcing faster UDMA modes than the drive controller can handle. This is unlikely, especially with newer hardware (which can support UDMA far more flexibly), but it can usually be fixed with a BIOS upgrade, or by resetting the BIOS entries for the hard drives to auto-detect settings. Devices set to UDMA Mode 6 that produce this error, for instance, might need to be set to Mode 5.
- Controller issues. I've observed that USB controllers that contend strongly with other hardware can produce this error. In systems that have both "long" and "short" PCI slots (i.e., 64-bit and 32-bit), try moving the USB controller to the long slot. Older PCI cards will not fit in such a slot.
- Memory parity issues. If the problem appears after installing new memory, the memory in question may be faulty or not of the correct type for the motherboard in question. (This may go hand-in-hand with other problems such as random lockups, too.)
- The LargeSystemCache Registry tweak and ATI video adapters. One peculiar set of circumstances that has been observed on multiple machines with ATI video adapters and more than 512MB of memory involves the LargeSystemCache Registry setting, a DWORD entry found in HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management. This setting governs the amount of memory set aside by the system for certain kernel processes. If it's set to 1 (which allegedly improves performance on systems with more than 512MB of memory), it can cause data corruption on some systems, and produce the "Delayed Write Failed" error. Try resetting it to 0 if it's been set.
The top 10 tips of 2005
- How to change the Windows XP Product Activation Key Code
- Create a bootable USB flash drive -- in a flash!
- Create a bootable Windows Server 2003 CD
- 8 common causes for 'delayed write failed' errors
- Ultimate boot CD packs in recovery, repair utilities
- Install Windows Server 2003 silently
- Uninstall 'stubborn' programs
- What to do when your hard drive fails
- Windows XP and Windows Server 2003 volume shadow copy service
- 'Unlocker' reveals processes that lock files
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter. Check out his Windows 2000 blog for his latest advice and musings on the world of Windows network administrators -- please share your thoughts as well!