Boot Screens

Alrighty, let's get some terms and whatnot out of the way. The Boot Screen image, is actually a resource located in the Windows kernel file ntoskrnl.exe. Now comes the complicated part, there are 4 unique kernel files that Windows uses:

AMD Processors as of the time of this writing, are ALL considered Single Processor systems, where as Intel Pentium 4 processors WITH Hyperthreading are Multi Processors and all NON Hyperthreaded processors are Single.

I'll be covering how to make your CD/DVD usable across single processor and multi processor systems.

Before proceeding, you will need to download Boot Editor below.

Download: Homepage | Download

» Preparing to Create the Kernel File

First things first, extract the Boot Editor archive to a folder of your choosing, and attempt to execute. If you get an error about a missing file, you're most likely needing msvbvm60.zip. Extract both those archives into the same folder as Boot Editor, and you should be good to go.

» Creating the actual EXE file

Now to actually create the kernel file. As we'll be creating both the single processor and multi processor kernels we're gonna need to do alittle bit of copy paste, and renaming.

» Method 1: Creating the Batch File to select the proper kernel

The following batch file, is just a simple script that reads the NUMBER_OF_PROCESSORS variable from the registry and then selects the proper kernel file based on it.

FOR /F "tokens=3 delims=  " %%A IN (\'REG QUERY "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v NUMBER_OF_PROCESSORS\') DO SET NUMBER_OF_PROCESSORS=%%A

bootcfg /copy /D "Windows XP Professional" /ID 1
if %NUMBER_OF_PROCESSORS%==2 goto DUAL
REM ----For Single proc
bootcfg /RAW "/Kernel=singkrnl.exe" /A  /ID 2
goto End
:DUAL
REM ----For Multiprocess/Hyperthread proc
bootcfg /RAW "/Kernel=dualkrnl.exe" /A  /ID 2
:End
bootcfg /Timeout 2
bootcfg /Default /ID 2


What this script is in reality doing, is making a copy of the original entry (which should be the one for Windows) and calls it Windows XP Professional. It then appends the /kernel entry to use a different kernel file, and then sets the delay to 2 seconds incase something doesn't work, and then sets the new kernel as default.

If you wish to use a different name for your kernel files, I'm sure you can see where to change it. If you wanted a different timeout left, just change the number. If you don't want a timeout, enter 0.

Save this batch file as bootscreen.cmd and save it in your distribution folders. Enter a line in your install routine to execute the batch file. Such as adding

[GUIRunOnce]
"%systemdrive%\install\bootscreen.cmd"


To your WINNT.SIF file. If you already have an entry under [GUIRunOnce] then just copy the quoted portion below the one already present. The path is assuming bootscreen.cmd is saved in $OEM$\$1\install

» Method 2: Direct Integration


1. Run Modifype(See Compression Page) -c to re-checksum the files.
2. rename your single processor kernel file to "ntoskrnl.exe" and multiple processor kernel to
"ntkrnlmp.exe".
3.Compress them using "makecab" (See Compression Page) and drop Makecab's output into the I386 folder on your Xp C.D

» Troubleshooting Boot Editor

Sometimes when I use Boot Editor for long periods of time, it will just stop responding. All you have to do is close it, and restart the program. Double click on your bootscreen file listed on the left, and continue.
Submitted by Alanoll.
Last updated 2008-03-18 05:27:04 by Dingleberry