I moved my digital TV card from my HTPC to my desktop recently after my HTPC died again

. The card was detected and working fine in XP. Booting into Vista RC1 however, the driver installation was a mess because Vista first tried to install drivers from Windows Update but some how that went sour. The device drivers weren't installed properly and it didn't work. Rebooting Vista brought up the detected new hardware dialog again, so this time I tried the drivers from the card's website. These didn't install properly either, with Vista telling me that 'the system could not find the file specified'. Wow, how helpful. Attempting to update the driver didn't help - same issue, so I went digging.
It turned out that as soon as you use a driver, it gets stored into Vista's driver store. This store is protected so you can't go fiddling in it, even though its visible at c:\windows\system32\driverstore. I hate it when it shows me something but I can't edit it

- opening Explorer.exe as Administrator didn't help. What I needed to do was remove the driver from the store so it would copy it again from where I downloaded the driver to (Yes, even if you specify update driver, if it thinks its the same as the one in the store, it will use the stored one).
I think I went the long way to solve this issue. The short way is to simply uninstall all the devices in Device Manager that relate to that physical device (e.g. the Tuner and crossbar devices for TV cards), and the driver should be removed from the driver store. In case that doesn't work however, I'll document the method I used below.
- Open up c:\windows\inf\setupapi.dev.log in Notepad. This file is very useful as it logs everything that Windows does during the driver installation and tells you more specifically what the problem was if it fails. By default, Windows doesn't show absolutely everything, but you can change that using the instructions here.
- All driver installations are logged here, so scroll down to the bottom of the file for the latest driver installation. Every time a driver installation is initiated, the following line is first written:
>>> [Device Install ... followed by where the driver comes from and the device ID.
- Find the line in this section that starts with !!!. This is where the error information is. I encountered the following error. If yours is different, this may not solve your problem, but there should be no harm in trying.
!!! ndv: Driver Package import failed for new device...installing NULL driver.
- If its there, find the following line in the section (where # can be any number) and make note of that path:
inf: Published Inf Path: C:\Windows\INF\oem#.inf
- Go into your c:\windows\inf folder and see if you can find that inf file. If it doesn't exist, find a line in setupapi.dev.log in the section you located before that starts with:
inf: Driver Store location: C:\windows\system32\driverstore\filerepository\(inf file name and random string)\(inf file name).
Make note of that path, find that file and copy it into C:\windows\inf. Rename it to oem#.inf where the # is the number you found in step 4. - Go to Start -> All Programs -> Accessories, right-click on the Command Prompt and select Run as Administrator.
- Type in pnputil -d oem#.inf and press ENTER, replacing # with the number from step 4.
This should remove the problem driver from the driver store. Now try reinstalling the driver for the device.
This trick is useful for fixing issues if you try to install alternate drivers (e.g. unofficial drivers from another source) or drivers from Windows Update which do not install successfully. Its also good if you want to force Windows to use a certain version of a driver, instead of letting it pick for you.
When actually updating drivers (i.e. newer versions of the driver) though there shouldn't be an issue - assuming that the driver writer updated the version number Windows should realise that its newer and use it instead.