Windows. Stop 0x0000007B. How to add a mass storage driver manually

Hi,

this posts describes which steps are necassary to add or repair a masstorage driver in an exiting Windows installation.

If a Windows boot ends with a bluescreen STOP 0x0000007B INACCESSIBLE_BOOT_DEVICE, the system is unable to load a driver for your disk controller properly.

It is possible to correct this and respective, if the hardware changed, to add a driver manually.

The masstorage device driver is registered in Windows at five positions:

  • The Driver file (.sys) itself must be stored in %Systemroot%\system32\drivers
  • The Signature file (.cat) is stored in
    %Systemroot%\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
  • The Install file (.inf) is located at %Systemroot%\inf
  • The Registry Key to start the driver => the service entry
  • The Registry Key to load the driver at the begin of the boot process => the CriticalDeviceDatabase

An example. Installing the Intel Rapid Storage (RST) Driver. Download the driver from the Homepage of the manufacturer, extract it and copy the files to an USB Stick or burn a cd.

Important to know is which PCI and device ID the driver has and name of the service it use. If you have a PC running where the driver is already installed this is really simple. Open the device manager locate the
device, usually find it in “IDE/ATA Atapi Controllers” or “SCSI and RAID Controllers”, select the driver, open properties/details and notice the values of the properties “service” and “Hardware Ids”.

Now open the Registry Editor and export the relevant keys(with Subkeys). In this example :

The corresponding key to the Service iaStor
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iaStor
The corresponding key to the Hardware Ids property, replace pci#ven_8086&dev_27C3&subsys_0503101E with the ID of your controller
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27C3&subsys_0503101E

Instead of regedit can also use reg.exe to export the keys:
reg EXPORT HKLM\System\CurrentControlSet\Services\iaStor c:\temp\iaStor.reg
reg EXPORT HKLM\SYSTEM\CurrentControlSet\Control\CriticalDeviceDatabase\pci#ven_8086&dev_27C3&subsys_0503101E c:\temp\hwids.reg

then copy both registry files to the already prepared USB Stick or CD.

To become access to the Windows Installation boot in a Windows PE environment. Possible ways are Winbuilder ,BartPE or the recovery console of a Windows Vista or 7 DVD.

Plugin the USB Stick or insert the CD with the driver and registry files and boot the PE Environment. If the Windows PE is up you have to copy the driver files to the right place.

Copy all .sys files of the new driver to the Windows Driver Folder, I assume that C:\Windows is the folder of the Windows installation you want to modify.
cd /d FolderOfTheNewDriver
copy *.sys C:\WINDOWS\system32\drivers

All .inf files to
copy *.inf C:\WINDOWS\inf
All .cat files to
copy *.cat C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}

Manipulating the Registry.

Open Regedit.exe. Now you have to load the System Registry Hive of the Windows Installation. In the Registry Editor select HKEY_LOCAL_MACHINE, open the file menu, click “Load Hive”
and navigate to System Hive of the Windows on disk select C:\WINDOWS\system32\config\SYSTEM, open it and give the key a name, for example “temp”.

Starting from now the HKEY_LOCAL_MACHINE\System Registry Path of the installed Windows is available
under the HKEY_LOCAL_MACHINE\temp Key of the running Windows PE and you can make some changes to it.

If loaded, locate the active ControlSet of Windows.

Background: HKEY_LOCAL_MACHINE\System\CurrentControlSet is only a link
to HKEY_LOCAL_MACHINE\System\ControlSet001 or 002 at runtime.

To check which is the active path navigate to HKEY_LOCAL_MACHINE\temp\Select. The Value “Current” points to the ControlSet which is active. for example “Current”=1 means HKEY_LOCAL_MACHINE\temp\ControlSet001
is the CurrentControlSet of the Windows installation. Note the active ControlSet.

Both registry files must be imported now. Close regedit.exe. It is not possible to import the reg files directly because they would only modify the Windows PE Registry. The registry pathes in the regfile must be changed prior.

Open both Files in a Text Editor (i.e. notepad.exe)and replace all Registry Pathes:
HKEY_LOCAL_MACHINE\System\CurrentControlSet
with the path of the CurrentControlSet in the loaded hive that you have determined above(replace ControlSet001 with your active Set):
HKEY_LOCAL_MACHINE\temp\ControlSet001

Then import the reg files:

regedit /U iaStor.reg
regedit /U hwids.reg

After importing the files open regedit.exe again and check if the keys are imported at the right place.

To clean up, select the HKEY_LOCAL_MACHINE\temp key and unload the hive over the File menu. Remove USB Sticks and CD/DVDs and reboot the system. Windows should boot now.

Michael

3 thoughts on “Windows. Stop 0x0000007B. How to add a mass storage driver manually”

  1. I really want to say THANK YOU !!! and Brett is right, never ever delete this so useful KnowHow.
    This one saved me and my users from a long off-Time. We accidentially installed Intel RST 14.6 which was not compatible against showed informations on intels site. Directly after I opend RST Manager the system crashed and went into the described BSOD 0x7B .
    I checked the registry and all was ok so far and I switched all iaStor driver Files (iaStor, iaStorA,V,AC, …) to versions that I got from old MST/ new RST (v8 – 11, which are compatible to our controller) and this got the system back to life.
    Thanks a lot!

  2. THANK YOU!!!!
    You saved us, because we needed to migrate a ready-to-deliver system previously installed with SATA controller set in AHCI mode, instead of RAID.

    AGAIN THANKS!

Leave a Reply Cancel reply