Finally upgraded to Windows 8.1 (from 8.0)

Since Microsoft released Windows 8.1 I’ve tried to upgrade my 8.0 to 8.1. Without success though. Every upgrade ended just a little bit before 100% with a BSOD and after some automatic retries to remedy the situation it simply rolled back to 8.0. By looking at the log file produced it was obvious there is a problem with a driver. But which one?

After some retries I gave up. Until now. The reason for my retry was that I found a dead computer (motherboard) after my vacation. I’ve replaced dead motherboard with a newer model (simply because the old one isn’t available anymore) and retried upgrading to 8.1 (thinking it might have been motherboard related). And I succeeded. The upgrade went through without problems. Hura. But.

After a while a realized that I didn’t plug in all my USB devices yet. So I started plugging them in only to create a BSOD after BSOD. By trial and error I’ve found that USB devices that act like disks are causing this problem (I have two of those). Then I went examining the crash dump. And there it was the real culprit in all its glory: iaStorF.sys aka Intel’s disk driver:

Debugging Details:
------------------


POOL_ADDRESS:  ffffe0000040f160 Nonpaged pool

FREED_POOL_TAG:  RstF

BUGCHECK_STR:  0xc2_7_RstF

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  WIN8_DRIVER_FAULT

PROCESS_NAME:  System

CURRENT_IRQL:  0

ANALYSIS_VERSION: 6.3.9600.16384 (debuggers(dbg).130821-1623) amd64fre

LAST_CONTROL_TRANSFER:  from fffff800ed2af338 to fffff800ed16a0a0

STACK_TEXT:  
ffffd000`20737018 fffff800`ed2af338 : 00000000`000000c2 00000000`00000007 00000000`00001205 00000000`04070015 : nt!KeBugCheckEx
ffffd000`20737020 fffff800`0105131e : 00000000`00000000 ffffe000`0c4ddb01 ffffe000`0b2f8010 ffffe000`01a05630 : nt!ExDeferredFreePool+0xbb8
ffffd000`207370f0 00000000`00000000 : ffffe000`0c4ddb01 ffffe000`0b2f8010 ffffe000`01a05630 ffffe000`0041a870 : iaStorF+0x131e


STACK_COMMAND:  kb

FOLLOWUP_IP: 
iaStorF+131e
fffff800`0105131e ??              ???

SYMBOL_STACK_INDEX:  2

SYMBOL_NAME:  iaStorF+131e

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: iaStorF

IMAGE_NAME:  iaStorF.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  4f7e1f6d

FAILURE_BUCKET_ID:  0xc2_7_RstF_iaStorF+131e

BUCKET_ID:  0xc2_7_RstF_iaStorF+131e

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0xc2_7_rstf_iastorf+131e

FAILURE_ID_HASH:  {f7fa26b6-6e68-69b5-7668-84d625b41a69}

How does one fix that? Googling of course. Here is the solution from Hans-HermannKaas. It looks like Windows 8.1 changed something regarding drivers (see Herman’s explanation) and nor Intel nor Microsoft handle it when upgrading. Tough one to understand.

Basically you would want to copy iaStorF.sys from IRST driver’s package x64 folder into c:\windows\system32\drivers folder. For me – I had an outdated version there.

But because you can’t do that before upgrading you’ll have to detach all USB devices that act like disks, upgrade, fix this and only then reattach them.

There you go.