The kernel memory nonpaged pool of Windows XP continually increases in size until it reaches maximum (262,144 KB) set by operating system and causes Delayed Write Failed (DWF) errors (and sometimes "blue screen" errors). Because drivers need to use this part of physical memory in order to operate, when the nonpaged pool contains no memory to allocate to a driver, it will fail. Which driver will fail first is a matter of chance; but typically it is the drivers pertaining to delayed writing to the hard disk (e.g., hard disk driver, IDE controller driver, IDE Channel driver). Consequently, the kernel memory nonpaged pool reaching its maximum size usually results first in DWF errors. However, it can result in a "blue screen" error if a critical driver is affected before or after the DWF errors.
When I first experienced this issue, I had no prior experience with these types of errors and did not understand their proximate cause was depletion of available nonpaged pool. At first, I thought the problem was caused by a failing hard disk, then a failing memory controller on the motherboard, then an ATI video card, then a corrupted operating system (Windows XP).
The supposedly failing hard disk was replaced with a new one; this did not resolve the issue. Next, the motherboard was replaced; this did not resolve the issue. Next, the new ATI video card was replace with the older ATI video card that had not caused such problems; this did not resolve the issue. Finally, a repair installation of Windows XP was done; this did not resolve the issue.
The original computer that the error first appeared on was a Dimension 4300 (in use for circa 8 years without any such problems). A new ATI video card was installed. The errors began to appear. Once the possibility of a failing hard disk had been eliminated, the 4300 motherboard was replaced with a Dimension 4500 motherboard, which necessitated installation of new memory. The 4300 used PC133U memory; the 4500 uses PC2100U DDR- 266 memory. Whereas the 4300 had 1 GB of memory installed, 2 GB of memory was installed on the 4500 motherboard. The final hardware change was the CPU. The 4300 was using a 2.6 GHz, 400 MT/S Front Side Bus (FSB) Pentium 4; the 4500 uses a 2.8 GHz, 533 MT/s FSB Pentium 4.
My hypothesis pertaining to the cause of the DWF errors on the 4300: the CPU was an out-of-spec upgrade that made the motherboard marginally stable and the installation of the new video card tipped it over the edge. When I purchased the upgrade CPU, I was told it was suitable for my 4300, and the SiSoftware Sandra analysis and diagnostic program confirmed that this was the maximum CPU that the hardware supported. However, I have since learned that the BIOS must also support a given CPU--in addition to the hardware. The Dell website for the 4300 says that the 4300 does not support the 2.6 GHz CPU.
My hypothesis pertaining to the cause of the DWF errors on the 4500: the Sandra program indicates that the memory chip/memory bus frequency is being set to 177 MHz (4/3 x 133 MHz), while the memory chip timings are being set to 2-2-2-6. These two settings are out-of-spec per the Dell website for the 4500 and the Sandra program. The Dell website and Sandra say that the memory chip/memory bus should be set to 133 MHz (as I am using a 533 MT/s FSB CPU). Sandra says that this is the maximum memory bus frequency for the motherboard; Dell merely states that the frequency will be set to 133 MHz when a 533 MT/s FSB processor is installed. The memory chip timings are being set (to 2-2-2-6) consistent with the 133 MHz frequency. In comparison, the proper settings for 167 MHz (close to the actual 177 MHz) are 2.5-3-3-7. The Intel website for the 4500 motherboard (manufacture for Dell under OEM arrangement) says that setting the memory chip timings inconsistent with the frequency or setting the frequency inconsistent with the chipset may cause instability. Can such instability cause a problem with the kernel nonpaged pool?
Other than the hypotheses I have given, is there some other possible explanation for the problem with kernel nonpaged pool?