Please note: as of today, May 6, 1999, Creative has a new driver for Windows NT that appears to resolve the SMP issue. However, the procedure posted here is still useful if you ever need to diagnose a problem and you suspect that the multiprocessor kernel is at fault.


I originally posted the following as a message on Creative's Support Forum on CompuServe.

While the following is far from being a perfect solution, it allowed me for the first time to actually watch a movie in its entirety without crashing/bluescreening NT on a dual-processor system. (Well, almost. See below.)

A disclaimer: The following procedures require messing with your system files. Make a false move and you may render your NT system unbootable. Do everything right and your NT system may still end up unbootable. Whatever you do, you're doing it at your own risk!

The problem, as confirmed by Creative, is that the DVD player software is not compatible with the multiprocessor kernel. It will crash your system after a few minutes of movie playback. Fiddling with the processor affinity of the playback process or other processes, using the /ONECPU or /NUMCPU=1 switches in BOOT.INI won't do the trick; you're still running the multiprocessor kernel so your system is still vulnerable.

What DOES the trick of course is booting into the uniprocessor kernel. It is actually possible to set up a BOOT.INI file that allows you pick one or the other at startup. As it turns out, at least on standard MPS motherboards (mine is a SuperMicro P6DLF) only two files need to be changed: NTOSKRNL.EXE and HAL.DLL.

Now the good news is that these two files can actually be specified in your BOOT.INI file. This is what mine looks like (watch out, some newlines might have been inserted by the forum software):

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server Version 4.00"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server Version 4.00 [UniProcessor]"
 /KERNEL=NTKRNLUP.EXE /HAL=HALUP.DLL
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Server Version 4.00 [VGA mode]"
 /basevideo /sos

Selecting the second option at the boot menu boots the uniprocessor kernel.

Now where did NTKRNLUP.EXE and HALUP.EXE come from? I am running NT4 SP4, so I unpacked the SP4 files (if you have the full SP4 download, you can do so by typing SP4FULL.EXE /X on the command line.) In the unpacked directory, you will find NTOSKRNL.EXE and HAL.DLL. You'll notice that these files are different in size from the identically-named files in your WINNT\SYSTEM32 directory; that's because the files installed on your system are the multiprocessor files which originally had different names in the Service Pack distribution.

Do NOT copy NTOSKRNL.EXE and HAL.DLL over the files you already have on your system. That would destroy your multiprocessor installation. Copy NTOSKRNL.EXE over as C:\WINNT\SYSTEM32\NTKRNLUP.EXE (UP=UniProcessor), and HAL.DLL to C:\WINNT\SYSTEM32\HALUP.DLL. (Of course if your NT system directory is somewhere else, modify the path appropriately.)

Now edit your BOOT.INI file, adding a Uniprocessor option like the one I have above. (Use the ATTRIB command to turn off its read-only flag so that you can save the file after editing.) Of course if your boot device is different from mine, your BOOT.INI will look different as well; so don't copy the content from this message, create a copy of the default line in your own version of BOOT.INI and modify it by changing its name and adding the /HAL and /KERNEL options. Reboot.

You should now be able to boot NT with the uniprocessor kernel and play movies. When done, you can reboot into the multiprocessor kernel.

Very important: I have only done this once. What is worse, after I rebooted into the multiprocessor kernel, my system spontaneously reset once. I believe that it was due to an unrelated cause but I cannot be sure and I don't feel like trying again right at this time. Be warned that this unorthodox procedure can have strange consequences! Let's just hope we won't have to use it many times before Creative releases a multiprocessor-compatible version of the DVD player.