- 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]
[Files.WinNt] \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"Those six lines need to be changed to:
[Files.WinNt] \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"When you compare the list, you see that the CRC numbers for all the 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 kb article.