Jump to content

X79 Intel RAID driver workaround for 32bit Win7


Tripredacus

Recommended Posts

It is possible this issue exists for Vista as well but I did not test it.

The Intel X79 SATA RAID driver (iaStorA.inf) current version for Windows 7 x86 is not compatible across all platforms.

Problem description: After injecting the RAID driver (iaStorA.inf) with DISM into a 32bit Windows 7 image, after deploying the image first boot up returns a STOP error 0xC000035A.

Boards tested:

DH55TC = 100% replication using IDE and AHCI mode

DH61BE = 100% replication using IDE and AHCI mode

DX79SI = intermittant

DQ67SW = 0% replication using AHCI

DH67CF = 0% replication using AHCI

DX79SI intermittant results, note that no changes were done to hardware (BIOS) or to the test images (Drivers or Updates) to get these results. :wacko:

- IDE and AHCI with 32bit worked 100% of the time.

- RAID using JBOD failed (This new MSC does not support JBOD apparently)

- RAID using mismatched drives in RAID0 on 6GB and 3GB ports failed.

- RAID using mismatched drives in RAID1 on 6GB and 3GB ports worked.

- RAID using matching drives in RAID0 on 6GB ports failed using Windows Setup DVD and F6 driver.

- RAID using matching drives in RAID1 on 6GB ports failed using Windows Setup DVD and F6 driver.

- The above RAID tests (except JBOD) that failed started working a few days later with no changes. :wacko:

Drivers used from Intel's website:

- RSTE_3.0.0.3020_F6-Drivers.zip

- RSTE_allOS_3.0.0.3020_PV.exe

Note I did mention the older model Intel boards above. For the H55 and H61, STOP error for iaStorA.sys would appear if the image was deployed to it. It is a curios error since those boards (like the H67 and Q67) do not use the hardware (PCI\VEN_8086&DEV_2826&CC_0104) that iaStorA.inf supports. They would use ibexahci.inf or ibexide.inf (and ibexid2.inf) instead. So the first idea is to use DISM to take iaStorA.inf out of the image. Unfortunately, this resulted in those boards (which the image previously worked on before adding iaStorA) would then boot to a STOP 0x7B after deployment!

So it was much safer to keep the iaStorA.inf in the image. Now as to why the error occurs on certain boards, it is because the driver is written incorrectly! Apparently, this isn't the first time this type of thing has happened. In fact, an older Intel driver (iaStor.inf) from 2009 had this same problem! Take a look at this from the iaStorA.inf 32bit:

[Manufacturer]  
%INTEL% = INTEL, NTx86.5.2, NTamd64

You can see here that this driver is not (truly) compatible with Windows 7 x86! DISM doesn't seem to care about the wrong architecture being present, which I hope gets fixed someday in the future. The reason the STOP error occurs is because the 32bit driver appears to have been created using a 64bit INF as a base. The error is due to Windows being instructed to install the driver as 64bit on a 32bit OS, even though the actual .sys files are 32bit files.

Since removing the INF with DISM after the fact does more damage than you would expect, the only current workaround I've found is to rename the INF instead. Instructions for that:

1. Mount image with DISM

2. Go into mount\Windows\inf

3. find the oem*.inf filename

4. Rename to oem*.bak (where * is the number in the filename of course! )

5. Unmount/commit

It may be possible to add the appropriate OS code into the Manufacturer section of the INF to fix this problem. I have not tried it, since there are instructions for installing it into an x64 OS in the INF as well.

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...