Whenever you put a new piece of hardware into your computer, Windows will try to find a driver within it’s own database (”%windir%\inf”).
If no matching driver is found, you will be prompted for other approaches (windows update, choose, removeable media, etc).
You can however add extra directories for Windows to look for drivers.
The key used for this is:
HKLM\Software\Microsoft\Windows\CurrentVersion\DevicePath (REG_EXPAND_SZ)
Add extra directories separated by “;” e.g.
c:\windows\inf;c:\drivers\audio;c:\drivers\chipset;c:\drivers\massstorage;c:\drivers\modem
Ok but when do you actually need this?
This is often used when creating images for computer deployment and you want to add lots of drivers in order to support all sorts of computers. After deploying the image, Windows will find new hardware and look for drivers in all directories.
Whenever i create an image, i always run this batchfile first:
@echo off mkdir C:\Drivers\audio mkdir C:\Drivers\biometrics mkdir C:\Drivers\bluetooth mkdir C:\Drivers\chipset mkdir C:\Drivers\hid mkdir C:\Drivers\massstorage mkdir C:\Drivers\modem mkdir C:\Drivers\nic mkdir C:\Drivers\proc mkdir C:\Drivers\sensors mkdir C:\Drivers\sound mkdir C:\Drivers\storage mkdir C:\Drivers\tpm mkdir C:\Drivers\vga mkdir C:\Drivers\wlan mkdir C:\Drivers\extra1 mkdir C:\Drivers\extra2 mkdir C:\Drivers\extra3 mkdir C:\Drivers\extra4 mkdir C:\Drivers\extra5 mkdir C:\Drivers\extra6 mkdir C:\Drivers\extra7 mkdir C:\Drivers\extra8 mkdir C:\Drivers\extra9 echo "bla" >C:\Drivers\bogus.inf copy C:\Drivers\bogus.inf C:\Drivers\audio copy C:\Drivers\bogus.inf C:\Drivers\biometrics copy C:\Drivers\bogus.inf C:\Drivers\bluetooth copy C:\Drivers\bogus.inf C:\Drivers\chipset copy C:\Drivers\bogus.inf C:\Drivers\hid copy C:\Drivers\bogus.inf C:\Drivers\massstorage copy C:\Drivers\bogus.inf C:\Drivers\modem copy C:\Drivers\bogus.inf C:\Drivers\nic copy C:\Drivers\bogus.inf C:\Drivers\proc copy C:\Drivers\bogus.inf C:\Drivers\sensors copy C:\Drivers\bogus.inf C:\Drivers\sound copy C:\Drivers\bogus.inf C:\Drivers\storage copy C:\Drivers\bogus.inf C:\Drivers\tpm copy C:\Drivers\bogus.inf C:\Drivers\vga copy C:\Drivers\bogus.inf C:\Drivers\wlan copy C:\Drivers\bogus.inf C:\Drivers\extra1 copy C:\Drivers\bogus.inf C:\Drivers\extra2 copy C:\Drivers\bogus.inf C:\Drivers\extra3 copy C:\Drivers\bogus.inf C:\Drivers\extra4 copy C:\Drivers\bogus.inf C:\Drivers\extra5 copy C:\Drivers\bogus.inf C:\Drivers\extra6 copy C:\Drivers\bogus.inf C:\Drivers\extra7 copy C:\Drivers\bogus.inf C:\Drivers\extra8 copy C:\Drivers\bogus.inf C:\Drivers\extra9 del C:\Drivers\bogus.inf pause
Then i use the “sysprep driver scanner” (http://www.vernalex. … spdrvscn/index.shtml). It will scan a directory and all subdirectories for .inf files. When found, the directory will be added to the list. This list will then be save to the registry key mentioned above.
Either use the GUI or use the commandline functionality, e.g.
spdrvscn.exe /d %SystemRoot%\inf /p C:\Drivers /e inf /a /s /q