Any time a Blue Screen of Death (BSOD) error with the word KERNEL in it turns up, administrators tend to fear the worst. KERNEL_STACK_INPAGE_ERROR is no exception. Has Windows 2000 been irreversibly corrupted? The answer: generally not, but if you get them they may be a prelude to a much deeper problem. These errors, while cryptic, often provide enough information to trace the problem to its source.
The KERNEL_STACK_INPAGE_ERROR takes place when the kernel requests a page of data from the system paging file (i.e., the swap file), but the page cannot be read into memory. When this error comes up, it returns four parameters, the first two of which are the most useful in locating the problem.
Parameter 1 usually reads 0-2:
0: The page was retrieved from an in-memory page cache.
1: The page was retrieved from disk.
2: The page was retrieved from disk, but its size appears to be mismatched.
Generally, one of these three responses means there is a defective RAM module in the system, or some other hardware problem that is causing memory errors. (RAM modules are one of the most common forms of hardware failure in a system.)
If Parameter 1 is anything but 0 through 2, Parameter 2 will return a different status code that will provide further information:
0xC000009A (STATUS_INSUFFICIENT_RESOURCES): A lack of nonpaged pool resources.
0xC000009C (STATUS_DEVICE_DATA_ERROR), or 0xC000016A (STATUS_DISK_OPERATION_FAILED): Sectors on the disk are defective.
0xC000009D (STATUS_DEVICE_NOT_CONNECTED): The cabling to the disk may be faulty, or the drive may not be properly terminated.
0xC0000185 (STATUS_IO_DEVICE_ERROR): Also caused by improper termination or I/O conflicts (usually the former).
If you get any of these errors, the hard disk or its cabling is usually at fault. Many sysadmins are surprised at how suddenly a signal cable can fail, even after performing reliably for a long time. (Make sure the cables are not kinked or bent when you replace them, as sharp folds in SCSI signal cables can cause them to fail over time.) Problems with memory are often harder (and more expensive) to diagnose, but the most common approach is just to swap out one module after another until the errors cease. KERNEL_STACK_INPAGE_ERROR can also be thrown if the motherboard is defective, but this may often happen with a newly assembled machine and less so with one that has already proven itself over time.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.