When you start getting in-page errors on your hard drive, it’s time to go shopping for a new hard drive


The STATUS_IN_PAGE_ERROR describes itself as "The instruction at XXX referenced memory at YYY. The required data was not placed into memory because of an I/O error status of ZZZ." What does this mean?

It means that the memory manager needed to read some memory from the disk, but the disk returned an error. (Namely, error ZZZ.) Since it has no way to return an error code to your program—I mean, after all, all your program did was read a variable from memory; there's no way to return an error code from int x = y if y cannot be read off the disk—it is reduced to raising an exception.

When you see this message, and the I/O operation was coming from your hard drive, then you need to go shopping for a new hard drive. (You will also be alerted to a dying drive if your drive supports S.M.A.R.T.)

Now.

You can see this error for sources other than hard drives. For example, if you're running a program over the network and the network connection dies, and the memory manager needs to demand-page some code from the program image, then you'll get this error because the code couldn't be loaded off the network. Similarly, if you yank a CD out of the drive while a program is executing from it (or your CD is damaged), there's a good chance that you'll get this error.

Naturally, the loss of a network connection or removal of a CD does not mean that your network card or CD-ROM drive is failing; it's a failure of the underlying connection or medium. But if your hard drive starts generating I/O errors, then there's not much that can be blamed aside from the drive itself. (Okay, it might be a failing controller, but it's more likely to be the drive itself.)

Comments (32)
  1. xenon155 says:

    How necessary is it to go shopping if i have WS 2008-era Self-Healing NTFS driver?

    Can I drink tea and play some Fallout 3 before I go shopping?

  2. Steve Thresher says:

    We started seeing this problem a while back when running our software across the network (from a mapped drive). The answer I came up with was to use the /SWAPRUN:NET linker flag which instructs windows to make a local copy of the program first before loading it. Not seen the error since.

  3. gedoe says:

    @xenon155

    :) yes you can play fallout, some data may fall-out of your harddrive in the mean time :P

    against faulty hdd-s there is no cure…

  4. nathan_works says:

    Is the error always a BSOD, I wonder, or just a nice error popup that kills your app ? Google seems to indicate it can generate a BSOD as the description for a kernel exception not handled error.

    [The error is always in the form of a STATUS_IN_PAGE_ERROR exception. Depending on which part of the system encountered the exception, the reaction will vary. -Raymond]
  5. Steve Thresher says:

    @Nathan works

    The examples I saw were unhandled exceptions not BSOD.

  6. Bryan says:

    If it were a BSOD then it would come through as a KMODE_EXCEPTION_NOT_HANDLED with a first parameter of 0xc0.6

  7. Bryan says:

    Oops – it looks like Nathan already said that :-P

    Well, at any rate, I’d say you have an equal chance of seeing it with anything you try to do.  It’s one of those dumb luck things since a Driver can certainly be paged out.

  8. yeehaamcgee says:

    I remember when I was a naieve young lad. I had a very large software project on my hard drive for my A-levels.

    Anyway, one evening, me and a friend were playing a racing game on the PC, when I noticed that it was taking unusually long to load, and the hard disk was thrashing. I assumed it must need defragging, or that it might be too full – the software project took up a hell of a lot of space and hard disks back then were pretty small.

    I commented "Haha, imagine if the hard disk was dying, man, I’d lose all my coursework, now that wouldn’t be very funny"

    Next morning, the damned thing wouldn’t boot, the hard disk heads had crashed.

  9. Proberts says:

    99% of people using windows will not know this. Microsoft has not added a S.M.A.R.T monitor to the OS. S.M.A.R.T support should have been in Windows XP and Windows Server 2003. Microsoft just blindly creating an application and marketing platform instead of an operating system. Tighter control of device driver and hardware interaction would provide much better predictive failure analysis. Microsoft get you act together.

  10. Phill says:

    I’ve seen these quite regularly when an external HDD is connected with a dodgy cable.

    I was running a VM off the drive and it would manifest itself as a BSOD and a lot of swearing.

  11. Dan says:

    Nathan: If the exception occurs in user mode (where most programs are run) the program will likely crash.

    If it’s in kernel mode (ie drivers, or… the kernel) you’ll likely get a BSoD.

  12. Lukas Beeler says:

    Proberts,

    SMART support is in Vista/WS08.

  13. Koro says:

    I had that problems with a flaky SATA controller (somehow, port 1 on my board did that, while port 3 does not – go figure). Every once in a while EVERY app would suddenly go down with an in-page error.. I knew it was time for a shutdown, lots of cursing, wiggling the cable, and then cold boot hoping it would work again…

  14. Q says:

    Read errors aren’t /always/ indicative of a dying hard drive. If a drive abruptly loses power midway through a write, you can end up with a series of sectors that appear "bad" as far as the drive and OS are concerned, but in actuality just have inconsistent ECC data on the media. Overwriting the affected sectors with new data can correct this.

  15. Jonathan says:

    Oddly enough, just this week I got The Other Sign of a need for a new HD – clack-clack sounds, accompanied by unusually long read times (45 seconds – until the clack-clacking stopped). Luckily, I was able to copy all the stuff to another machine’s HD. And since the other machine is better anyways, I re-purposed it as my main machine, and set my old machine to the side. It still clack-clacks every now and then.

  16. pingpong says:

    Is BSOD with KERNEL_DATA_INPAGE_ERROR a manifestation of the problem described in the article?

    I’m getting occasional BSODs of this type (32-bit Vista, relatively new HDD and MB) – say once every two weeks. However, I never got related user-mode exceptions, even when drive is used heavily.

    Scandisk and drive’s manufacturer disk checking software show no problems. S.M.A.R.T results also look OK.

    [KERNEL_DATA_INPAGE_ERROR is the same problem. The kernel needed data from the hard drive and the hard drive said no. TechNet has more info on this topic. -Raymond]
  17. Nick says:

    "The kernel needed data from the hard drive and the hard drive said no."

    Maybe the kernel should ask nicer next time!

  18. pingpong says:

    Raymond,

    Thanks for the link. I’ve read the TechNet article and checked the last minidump with WinDbg. The I/O status at the BSOD was 0xC000000E (A device which does not exist was specified), not 0xC000009C or 0xC000016A. Bad SATA cable perhaps?

  19. Alexandre Grigoriev says:

    pingpong,

    If your SATA interface has link problems, it might show up as the device reenumeration, which could cause these errors.

  20. benjamin says:

    I’ve often found that seeing those ‘mouse overflowed its buffer’ and ‘device did not respond within the timeout interval’-type errors (I’m paraphrasing) together with Explorer taking forever to respond is a tell-tale sign that your CD-ROM drive is dying.

    My girlfriend’s dad dealt with this issue for over a year until he asked me to look at it. One $20 IDE cd burner install later, he was back in business.

  21. nksingh says:

    Driver code can only be paged out to the pagefile (when drivers are loaded by the kernel, they are mapped in and moved into memory backed by the pagefile).  Since you can’t put your pagefile on a network share or removable media, the KERNEL_DATA_INPAGE_ERROR BSoD is much more likely to be indicative of a bad harddrive or a bad storage controller/drivers.  

  22. Mr Cranky says:

    Before you go shopping, maybe you should try running a backup.  Priority to the most critical data.

  23. Cheong says:

    Regarding BSODs, is all the bccodes generated by the kernel? I’m asking this because my computer recently get blue screen with code 0x1000001a, which I can’t find any reference in DDK manual. If it’s something generated by the kernel but kernel itself is not responsible for (like some device driver behave badly), I might add sugguestion for the documentation folks to at least add some troubleshooting hint there.

    And strangely, when I’m booting into WinXP, this BSOD occurs consistantly after 3-5 minute after boot. But it doesn’t occurs when booting into Vista. I haven’t been installing anything (program/device driver) since July except Windows Update, and virus scan / checking with sysinternals tools doesn’t reveal anything.

  24. Cheong says:

    P.S. to the above message: I’m not posting to ask help to resolve my problem. Afterall I’m buying new PC tomorrow (my current one has been used for 5 years), just seeking information to the bccodes not included in the documentations. And the later paragraph is written to supply additional information which might help determine the nature of the problem in the first paragraph.

  25. "Maybe the kernel should ask nicer next time!"

    sudo read sector 277816.

  26. David Moisan says:

    I had a bad SATA cable that presented symptoms like that.  Of course, I went around trying everything *but* changing the cable.  This was around the time of Vista RTM when everyone was blaming it for everything.

  27. ender says:

    pingpong: if you have a JMicron (or Gigabyte) IDE/SATA controller, I suggest you move your drives off it – I’ve had 3 motherboards with this controller, from 2 different manufacturers (ASUS and Gigabyte), with several different operating systems (XP, XP x64, Vista x64, Linux), and every now and then the drives connected to the ports belonging to this controller would just vanish.

  28. Bryan says:

    @Cheong:

    Just look at the API that raises BSODs:

    http://msdn.microsoft.com/en-us/library/ms801640.aspx

  29. pingpong says:

    Ender,

    I have JMicron on the motherboard (ASUS P5KR), but it’s disabled. My disk is connected to Intel’s ICH9R. I’ll replace the cabling over the weekend, but it’ll be difficult to verify if it has any effect. As I mentioned before, the BSODs are rare – approx. one every two weeks.

  30. Alexandre Grigoriev says:

    Cheong:

    This is the same as bugcheck 1A: MEMORY_MANAGEMENT.

  31. N. Velope says:

      This is another reason to switch from using external USB hard drives, which do not provide SMART data, to external SATA drives, which do.

     If your motherboard has SATA ports (almost all of them do these days), you can get $10 extenders that go to an empty PCI card placeholder.

  32. Cheong says:

    The error event reads like this:

    錯誤碼(BCCode) 1000000a,parameter1 00000000,parameter2 0000001c,parameter3 00000000,parameter4 804e2637

    It doesn’t reads like any of the cases in bugcheck 0x1A, and that makes me puzzled.

Comments are closed.

Skip to main content