Microsoft KB Archive/198859

= Starting Windows NT from a Replacement SCSI Adapter of a Different Type =

Article ID: 198859

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Server 4.0 Enterprise Edition
 * Microsoft Windows NT Workstation 3.1
 * Microsoft Windows NT Workstation 3.5
 * Microsoft Windows NT Workstation 3.51
 * Microsoft Windows NT Workstation 4.0 Developer Edition
 * Microsoft Windows NT Advanced Server 3.1
 * Microsoft Windows NT Server 3.5
 * Microsoft Windows NT Server 3.51
 * Microsoft Windows NT Server 4.0 Standard Edition

-



This article was previously published under Q198859



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SUMMARY
If the primary startup controller does not work, and you do not have the same make and model SCSI adapter to use as a backup, you may need to use a different controller. This controller must be compatible with Windows NT to get the computer back in production. If you use a parallel installation of Windows NT to enable a different startup controller's driver, the following error message may be displayed when the computer is starting the original installation of Windows NT.

STOP:0x0000007B

Inaccessible Boot Device



MORE INFORMATION
Windows NT 4.0 storage (IDE/SCSI) boot controller device drivers require additional registry entries to initialize the driver properly for system use. If these registry entries are missing or corrupt, the Stop 0x7B error message above may be displayed.

If you use the /sos switch in the Boot.ini file, you may notice that even though the device driver loads, you still receive the stop 0x7b error message.

The two adapters need to address the hard drive in a similar fashion. In almost all cases, this means that the two adapters are simply different models from the same manufacturer. For example, two Adaptec adapters would have a better chance of success than an Adaptec and a Future Domain adapter.

Solution
In general, moving an installation of Windows NT version 3.5, 3.51, or 4.0 from one drive to another is not a supported operation. However, provided the drives are on the same system it is possible, if you follow the procedures below. Before carrying out any of the steps below, back up your system competely, including the registry.

NOTE: Attempting to start Windows NT with a SCSI hard disk controller other than the one Windows NT is installed and configured for is not supported. Customers should attempt this workaround at their own risk.

If possible, have a valid backup of the hard disk drive before performing the following steps:

Steps for Recovering the System with Windows NT versions 3.1, 3.5, and 3.51
Versions of Windows NT prior to version 4.0 require the registry entry value for START be set to 0x0 (boot) for the controller's device driver to be loaded and used during system startup.

WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

 Install a parallel copy of Windows NT into another directory on the local hard disk drive or move the hard disk drive to another computer running Windows NT. Start Registry Editor (Regedt32.exe) from the newly installed version of Windows NT, and then open the HKEY_LOCAL_MACHINE key.  Click Load Hive from the Registry menu. Go to the following registry file on the original Windows NT installation:   %SystemRoot%\System32\Config\System Type a name other than SYSTEM. For example, TEST.  The newly loaded hive now appears in the HKEY_LOCAL_MACHINE window as TEST. Double-click TEST, then highlight the Select key. Look to see what the value for Current:REG_DWORD:0x1 is. This value selects which ControlSet00x key to load when the computer starts and should be the one that needs modifications. Open the following folder:

TEST\ControlSet00x\Services\

</li></ol>

NOTE: To help determine the driver name for the two adapters, reference the Windows NT 3.5 Resource Kit, Vol. 1, pp. 112-118. <ol> Change the value Start:REG_DWORD: from 0x4 to 0x0.</li> Open the following folder:

TEST\ControlSet00x\Services\<name of OLD Driver>

</li> Change the value Start:REG_DWORD: from 0x0 to 0x4.</li> After making the desired change, highlight the TEST key, then click UnLoad Hive from the Registry menu.</li> From the Windows NT installation media, copy the new driver for the different SCSI controller to the Windows NT installation folder in the \system32\drivers folder.</li> Shut down and restart your computer using the original version of Windows NT. The device that corresponds to the edited value of 0x0 will now be started and enable the new controller to function.</li></ol>

Solution
Windows NT 4.0 introduces additional registry entries in addition to the one above that are necessary to load and use a boot controller device driver. The additional keys are necessary to assist in supporting Plug and Play functions not yet fully implemented in this release of Windows NT.

NOTE: This example shows registry entries for the device driver Aic78xx.

The Enum key below and its values are added dynamically when the computer restarts and are not required to be added manually.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\aic78xx\Enum 0:REG_SZ:Root\LEGACY_AIC78XX\0000

Count:REG_DWORD:0x1

NextInstance:REG_DWORD:0x1

'''HKEY_LOCAL_MACHINE\Enum\HTREE\ROOT\0 AttachedComponents:REG_MULTI_SZ:Root\LEGACY\... <-- DoubleClick'''

After you double-click the AttachedComponents entry, the Multi-String Editor populates with several lines of data strings. For example: <pre class="fixed_text">Root\LEGACY_DISK\000 Root\LEGACY_NTFS\000 . . Root\LEGACY_FLOPPY\000 The entry Root\LEGACY_AIC78XX\000 needs to be present in the above list.

Also, the following key, subkeys, and associated values need to be added.

HKEY_LOCAL_MACHINE\Enum\ROOT\LEGACY_AIC78XX\0000\Control\LogCont

These new entries are normally added by:
 * Setup during initial installation.
 * Using the Control Panel SCSI tool to add a new device.
 * Restarting the computer. After the system is fully initialized, Windows NT recognizes a newly introduced driver and builds the necessary registry entries.

The best way to accomplish adding these new entries to an existing registry is to follow the steps below. The following example shows you how to replace a failed Adaptec 154x SCSI controller using the driver Aha154x.sys with an Adaptec 2940UW PCI SCSI Controller using the Aic78xx.sys device driver.

<ol> Install a parallel copy of Windows NT 4.0 to a different folder on your local hard disk drive. For example:

C:\Winntsos

</li> Start Registry Editor (Regedt32.exe) from the new installation of Windows NT and highlight the following key under HKEY_LOCAL_MACHINE:

HKEY_LOCAL_MACHINE

</li> Click Load Hive on the Registry menu, and open the following registry file from the original Windows NT installation:

%SystemRoot%\System32\Config\System

Assign it a name other than System (such as TEST).</li> Go to the following registry key:

HKEY_LOCAL_MACHINE\TEST\Select

Note the value for Current:REG_DWORD:0x#. The # selects which ControlSet00x key to load when the computer starts, and is the one that needs modification.</li> Make sure the ORIGINAL boot controller's START value is still set to start at boot time 0x0. For example, below is the Adaptec 154x adapter setting:

Test\ControlSet00x\Services\aha154x

Start:REG_DWORD:0x0

</li> Find the new boot controller's entry and change the Start value from 0x4 (disabled) to 0x0 (boot). For example, the Adaptec 2940UW Adapter setting is shown below:

Test\ControlSet00x\Services\Aic78xx Start:REG_DWORD:0x4 change to 0x0

</li> After you have made these changes, highlight the following registry key and then click Unload Hive from the Registry menu:

HKEY_LOCAL_MACHINE\TEST

</li> Exit Registry Editor.</li> Make sure the new boot device driver, Aic78xx.sys, is located in the original installation's folder in the following location:

%SystemRoot%\System32\Drivers

</li> Copy the new boot driver Aic78xx.sys file to the original boot controller driver name Aha154x.sys in the original installation's %SystemRoot%\System32\Drivers folder. Cd %OldSystemRoot%\System32\Drivers

Copy Aic78xx.sys Aha154x.sys

</li> <li>Shut down and restart the computer normally, and then start the original installation of Windows NT.

Windows NT should boot using the good registry entries of the ORIGINAL driver (Aha154x) to load the new driver Aic78xx.sys file that was copied to Aha154x.sys.

Windows NT tries to initialize the new boot driver Aic78xx, but cannot because the other driver (Aha154x.sys) has already claimed the device. However, after the system fully initializes, Windows NT adds the necessary registry entries that are missing on the new boot driver so it can be used properly during the next startup operation.

After you log on to the original installation, you should confirm that the new entries were added by Windows NT by looking at the registry locations noted earlier in this article.</li> <li>Using the Control Panel Devices tool, locate the original boot controller device. For example Aha154x, and change the startup value from boot to disabled.</li></ol>

You should now be able to restart and this time, Windows NT starts from the new boot controller driver (Aic78xx) because the additional required registry entries are in now place.

Manual Method for Adding these Entries Should the Above Method Not Initialize the Registry Entries
Follow steps 1-4 above, then perform the following steps: <ol> <li>Highlight the following key:

Test\ControlSet00x\Enum\HTREE\ROOT\0

</li> <li>From the Security menu click Permissions and allow EVERYONE full control of the 0 key.</li> <li>Double-click AttachedComponents. The Multi-String Editor appears and populates several lines of data strings. Add the following:

Root\LEGACY_AIC78XX\000

</li> <li>Highlight the Test\ControlSet00x\Enum\ROOT key. From the Security menu click Permissions and allow EVERYONE full control of the ROOT key. Do NOT replace permissions on existing subkeys.</li> <li>From the Edit menu, click Add Key, then type LEGACY_AIC78XX.</li> <li>From the parallel installation's registry, make a copy of the missing key by highlighting the key and clicking Save Key on the Registry menu.</li> <li>Highlight the new key made in step 10 above and overwrite it by clicking Restore from the Registry menu. Then click the key_name saved above. This operation overwrites the empty key with the saved key.</li> <li>After you have made the necessary changes, go to the following registry key, and then click Unload Hive on the Registry menu:

HKEY_LOCAL_MACHINE\TEST

</li> <li>Exit Registry Editor.</li> <li>Make sure the associated device driver Aic78xx.sys is located in the original installation's System32\Drivers folder.</li> <li>Shutdown and restart the computer normally and start the original installation of Windows NT. The device that corresponds to the edited keys are now enabled and should allow you to start.</li></ol>

<div class="references_section">