If your Windows NT was installed with a single processor, the appropriate single
processor HAL and registry setting were used. You now want to add the 2nd
processor. If you have Compaq hardware, you can run the Server support
software, which you find in the NTSSD folder of your Compaq Smartstart CD. It
will give you a list of hardware omponents, select the uniprocessor HAL and
click the upgrade button. That's all there is to it. If you have Compaq
hardware. If you don't have Compaq hardware, there are three methods to
accomplish this (in order of preference):
- Use Microsoft's uptomp.exe from the Microsoft Windows NT Server 4.0 Resource Kit. The UpToMP
utility will insure that NT is updated with the correct kernel and SMP
compatible HAL. Since the service packs include updated HALs, extract the latest
applied service pack into a folder. When UpToMP askes
for the location of your HAL, don't point it to the original NT installation
disk but rather to where you extracted the latest SP.
- Upgrading to
Dual Processor NT 4.0/3.5x/TSE on i386.com has a manual upgrade process
documented which takes advantage of %SYSTEMROOT%\repair\setup.log. When a
service pack upgrade occurs, it uses the file listing here to determine which
system files are present needing upgrading (at least in part). If you change the
information in the setup.log to reflect the files found in the MP version of NT
and re-apply your service pack, it will upgrade from uni-processor to dual
processor mode for you. There are only 6 files different. The lines needing to
change are: Note: there are many files in the [Files.WinNt] section - only
the 6 critical files are listed]
Those six lines need to be changed to:
\WINNT\system32\hal.dll = "halapic.dll","1e1bd"
\WINNT\system32\kernel32.dll = "kernel32.dll","5f6d7"
\WINNT\system32\ntdll.dll = "ntdll.dll","63a98"
\WINNT\system32\win32k.sys = "win32k.sys","13c422"
\WINNT\system32\winsrv.dll = "winsrv.dll","37b4e"
\WINNT\system32\ntoskrnl.exe = "ntoskrnl.exe","e197b"
When you compare the list, you see that the CRC numbers for all the
\WINNT\system32\hal.dll = "halmps.dll","1a01c"
\WINNT\system32\kernel32.dll = "kernel32.dll","5f345"
\WINNT\system32\ntdll.dll = "ntdll.dll","59c19"
\WINNT\system32\win32k.sys = "win32k.sys","5f60a"
\WINNT\system32\winsrv.dll = "winsrv.dll","301b3"
\WINNT\system32\ntoskrnl.exe = "ntkrnlmp.exe","f52df"
files changed. In fact, the CRC numbers above are for SP6a. If you are not
upgrading to SP6a, you will have to check the setup.log on an MP box with the
correct SP to get the proper CRC numbers. The CRCs change in each SP.
Additionally you can see by comparing the before and after list, that the
hal.dll used in uni-processor NT was halapic.dll and changed to halmps.dll and
that the ntoskrnl.exe used changed from ntoskrnl.exe to ntkrnlmp.exe (that is
single processor to mp versions).
Make these changes. Set the attributes back to SHR, apply the SP, and reboot.
Voila! your box is running MP. Note: If you compare my instructions to those
at mpseasy.htm, there is an extra file listed, the winsrv.dll. Not sure why.
Mine work on both workstation and server. Again, let me emphasize, the CRC
values listed are for SP6a. I now prefer this
method. Its definitely NOT recommended by Microsoft. Its the fastest. This
method has a BIG advantage if you need to upgrade a bunch of servers or
workstations quickly. If you are not sure of everything in this tip, stick to
the uptomp method.
- Perform an installation update - I have seen reports of this not working
correctly. I suspect its related to using the original Windows NT installation
disks with the rather old HALs found there.
- Manually replace the HAL and update the appropriate registry entries. The
process is documented in this