Working in the Windows Setup team means we have to support a massive amount of hardware, which can vary tremendously across the company. This includes brand new machines that don’t have in box drivers or beta hardware that might have custom drivers. We use WinPE as our safe OS for automating Windows Setup installations so we must be able to update our images for widespread support. Installing a mass storage driver in WinPE is a little different to installing a regular driver, although no more difficult if you know what to do.

 

First thing is to locate the driver. Make sure you have the correct architecture driver for this, and that it contains a txtsetup.oem file in the top level directory. Make sure you keep the directory structure of the driver as the txtsetup file references this. You can make sure the directories are correct by taking a look inside the txtsetup.oem file:

 

[Disks]

d1 = "Promise FastTrak 378/TX4000/S150 TX Series Driver Diskette", \fasttx2k, \

d2 = "Promise FastTrak 378/TX4000/S150 TX Series Driver Diskette", \fasttx2k, \AMD64

 

As you can see here, the files should be located in the \AMD64 directory off the root location where the txtsetup.oem file should live.

 

Next, create a directory under the system32 directory to contain the driver files. This can be named pretty much anything you want, although I haven’t tested this with names longer than 8 characters. Put the txtsetup.oem file and all other driver files in this directory, making sure the directory structure of the driver is maintained.

 

The next step is to modify the winpeoem.sif file located in the system32 directory. Add your newly created directory to the OemDriverParams section as follows:

 

[OemDriverParams]

OemDriverRoot=""

OemDriverDirs=adaptec320, nv1, nv2, <YourDirectoryName>

 

If there’s other directories there, just add it as shown separated by commas. There’s one special case for a particular mass storage driver – the NVIDIA NForce Storage Controller requires the following addition:

 

[massstoragedrivers.append]

nvfix = classpnp.sys

 

Other than that, you’re done. Burn or lay the WinPE image down and boot from it – a little bit of luck never goes astray here either!

 

As for adding traditional drivers such as network cards to WinPE, this is as simple as putting the files in the appropriate spots – generally, *.inf files go into the I386\Inf or minint\Inf directories, *.sys files go in the system32\drivers directory, *.cat and any remaining files should go directly into the system32 directory. That’s it!

 

- mike (Michael Warmington, mwarm@microsoft.com)