I am trying a simple task of injecting drivers into a Vista image The sort of thing you would do by simply using OEMPnPDriverPath in sysprep.inf with XP et al. I've googled, searched here, followed the instructions to no avail. ================================== THE QUESTION ================================== Why don’t (some of) my injected drivers work in my vista image!!!!??? ================================== DRIVERS ================================== OK - the machines I have to test with have 3 drivers missing:- 1 - ALPS touchpad 2 - Stac AC97 3 - Texas Instruments Smartcard reader Each of these are from the Dell website. Each works fine if the driver file is expanded and vista is simply pointed to the files. All the drivers are signed. ================================== IMAGE ================================== The image is a simple sysprepped image that we are applying to other machines. The original image has no extra drivers in, so I am "injecting" them using the published method of using pkgmgr and injecting into an offline image. (as per http://technet2.microsoft.com/WindowsVista...3.mspx?mfr=true ) ================================== Driver Injection ================================== I mount the image and inject the drivers using the technique above. The logfile says 6 drivers applied. The oem1..6.inf files are modified in image_c\windows\inf; and the drivers can be seen in image_c\windows\system32\driverstore\filerepository as per the logfile from pkgmgr ================================== Unattend.XML ================================== The unattend.XML has the correct bits in (I think) following the instrucitons above. <settings pass="offlineServicing"> <component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <DriverPaths> <PathAndCredentials wcm:action="add" wcm:keyValue="1"> <Path>c:\drv</Path> </PathAndCredentials> </DriverPaths> </component> </settings> (I have tried using different passes to no avail) ================================== WHAT HAPPENS!!! ================================== Well - till today I'd have said "nothing" - and blamed my technique. (I was trying with simply the Stac97 drivers). I've added teh ALPS and the TI drivers in the same way (so all the drivers are there) - and the Vista machines quite happily detect the ALPS driver and installs it beautifully - but completely ignores the other two drivers!!! WHY!!!! I've even downloaded the drivers from teh MS Windows Update site and tried those - but again - these are not detected on startup. Yet - if, agian, Vista is pointed to teh folder after install - it finds and uses the driver perfectly, All signed and no issues. ================================== PKGMGR Logfile ================================== Shows drivers being injected. And, manually checking shows the drivers are there. 2007-01-22 16:48:26, Info CBS Pkgmgr: called with: "pkgmgr /o:"L:\;L:\WINDOWS" /n:"L:\windows\panther\unattend\unattend.xml" /l:"c:\temp\real4"" <snip> 2007-01-22 16:48:29, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Parameter Offline Windows Directory Path: 'L:\WINDOWS' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:29, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Parameter Offline system drive on reboot: 'C:' (Error code (HRESULT) 0x0.) ... 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found directory ALPSTouchPad under search path (Error code (HRESULT) 0x0.) ... 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found directory TexasInstrumentsSmartCard under search path (Error code (HRESULT) 0x0.) ... 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Found 6 driver package(s) at 'c:\drv'. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\ALPSTouchPad\Apfiltr.inf' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\gtipci21.inf' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\tifm21.inf' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\TexasInstrumentsSmartCard\TIFMICON.INF' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Driver Package 'c:\drv\WU_Sigmatel\Stac97.inf' (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installing driver package 'c:\drv\ALPSTouchPad\Apfiltr.inf' to the currently offline OS ... (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID for INF 'c:\drv\ALPSTouchPad\Apfiltr.inf' is '4d36e96f-e325-11ce-bfc1-08002be10318'! (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID '4d36e96f-e325-11ce-bfc1-08002be10318' is boot-critical. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: 'c:\drv\ALPSTouchPad\Apfiltr.inf' is a boot critical driver. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added 'c:\drv\ALPSTouchPad\Apfiltr.inf' to offline driver store at 'L:\WINDOWS\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf'. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added driver 'c:\drv\ALPSTouchPad\Apfiltr.inf' to the offline Windows image at 'L:\WINDOWS\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf'. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Driver package 'c:\drv\ALPSTouchPad\Apfiltr.inf' installed! (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Successfully marked devices for reinstall! (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installing driver package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to the currently offline OS ... (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID for INF 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' is '4d36e96c-e325-11ce-bfc1-08002be10318'! (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: The class GUID '4d36e96c-e325-11ce-bfc1-08002be10318' is not boot-critical. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' is not a boot critical driver. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to offline driver store at 'L:\WINDOWS\System32\DriverStore\FileRepository\stac97.inf_609fc149\stac97.inf'. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Added driver 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' to the offline Windows image at 'L:\WINDOWS\System32\DriverStore\FileRepository\stac97.inf_609fc149\stac97.inf'. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Driver package 'c:\drv\Sigmatel Stac 975X AC97\WDM\Stac97.inf' installed! (Error code (HRESULT) 0x0.) 2007-01-22 16:48:30, Info CBS Pkgmgr: Install Drivers Offline Callback: SUCCESS:Successfully marked devices for reinstall! (Error code (HRESULT) 0x0.) etc 2007-01-22 16:48:35, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: Installed '6' drivers. (Error code (HRESULT) 0x0.) 2007-01-22 16:48:35, Info CBS Pkgmgr: Install Drivers Offline Callback: INFO: RETURN InstallDriversOffline (0) (Error code (HRESULT) 0x0.) 2007-01-22 16:48:35, Info CBS Pkgmgr: return code: 0x0 ================================== SetupAPI.dev.txt logfile (on vista machine after running though unattend install) ================================== Note pci\ven_8086&dev_266e&subsys_01871028 is the Stac97 This PnP ID is contained within teh INF files etc So - how come the ALPS driver is detected, and not the stac97? It suggests the technique I am using is correct else the Alps would not be detected - but why aren't the other two drivers? [Device Install Log] OS Version = 6.0.6000 Service Pack = 0.0 Suite = 0x0100 ProductType = 1 Architecture = x86 [beginLog] >>> [setup Plug and Play Device Install] >>> Section start 2007/01/22 17:04:05.203 ... set: PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2B8E0B4B&0&F2 -> setting CONFIGFLAG_REINSTALL on non-started device. ... >>> [setup online Device Install (Hardware initiated) - PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2b8e0b4b&0&F2] >>> Section start 2007/01/22 17:04:45.414 ump: Creating Install Process: DrvInst.exe 17:04:45.414 ndv: Retrieving device info... ndv: Setting device parameters... ndv: Building driver list... dvi: {Build Driver List} 17:04:45.445 dvi: Searching for hardware ID(s): dvi: pci\ven_8086&dev_266e&subsys_01871028&rev_03 dvi: pci\ven_8086&dev_266e&subsys_01871028 dvi: pci\ven_8086&dev_266e&cc_040100 dvi: pci\ven_8086&dev_266e&cc_0401 dvi: Searching for compatible ID(s): dvi: pci\ven_8086&dev_266e&rev_03 dvi: pci\ven_8086&dev_266e dvi: pci\ven_8086&cc_040100 dvi: pci\ven_8086&cc_0401 dvi: pci\ven_8086 dvi: pci\cc_040100 dvi: pci\cc_0401 dvi: Enumerating INFs from path list 'C:\Windows\INF' inf: Searched 0 potential matches in published INF directory inf: Searched 27 INFs in directory: 'C:\Windows\INF' dvi: {Build Driver List - exit(0x00000000)} 17:04:45.585 ndv: Selecting best match... dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:45.585 dvi: No class installer for 'Multimedia Audio Controller' dvi: No CoInstallers found dvi: Default installer: Enter 17:04:45.585 dvi: {Select Best Driver} ! dvi: Selecting driver failed(0xe0000228) dvi: {Select Best Driver - exit(0xe0000228)} ! dvi: Default installer: failed! ! dvi: Error 0xe0000228: There are no compatible drivers for this device. dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:04:45.617 ndv: {Core Device Install} ! ndv: Installing NULL driver! dvi: Set selected driver complete. dvi: {DIF_ALLOW_INSTALL} 17:04:45.882 dvi: No class installer for 'Multimedia Audio Controller' dvi: Default installer: Enter 17:04:45.898 dvi: Default installer: Exit dvi: {DIF_ALLOW_INSTALL - exit(0xe000020e)} 17:04:45.898 dvi: {DIF_INSTALLDEVICE} 17:04:45.898 dvi: No class installer for 'Multimedia Audio Controller' dvi: Default installer: Enter 17:04:45.898 ! dvi: Installing NULL driver! dvi: Writing common driver property settings. dvi: {Restarting Devices} 17:04:45.929 dvi: Restart: PCI\VEN_8086&DEV_266E&SUBSYS_01871028&REV_03\3&2B8E0B4B&0&F2 dvi: Restart complete. dvi: {Restarting Devices exit} 17:04:45.976 dvi: Default installer: Exit dvi: {DIF_INSTALLDEVICE - exit(0x00000000)} 17:04:45.976 dvi: {Build Driver List} 17:04:45.976 ! dvi: Driver list already built dvi: {Build Driver List - exit(0x00000000)} 17:04:45.976 dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:45.976 dvi: No class installer for 'Multimedia Audio Controller' dvi: Default installer: Enter 17:04:45.992 dvi: {Select Best Driver} ! dvi: Selecting driver failed(0xe0000228) dvi: {Select Best Driver - exit(0xe0000228)} ! dvi: Default installer: failed! ! dvi: Error 0xe0000228: There are no compatible drivers for this device. dvi: {DIF_SELECTBESTCOMPATDRV - exit(0xe0000228)} 17:04:45.992 ndv: Device install status=0x00000000 ndv: Performing device install final cleanup... ndv: {Core Device Install - exit(0x00000000)} ump: Server install process exited with code 0x00000000 17:04:45.992 <<< Section end 2007/01/22 17:04:45.992 <<< [Exit status: SUCCESS] ............ALPS TOUCHPAD DRIVER................ >>> [setup online Device Install (Hardware initiated) - ACPI\PNP0F13\4&11be56c0&0] >>> Section start 2007/01/22 17:04:50.492 ump: Creating Install Process: DrvInst.exe 17:04:50.492 ndv: Retrieving device info... ndv: Setting device parameters... ndv: Building driver list... dvi: {Build Driver List} 17:04:50.507 dvi: Searching for hardware ID(s): dvi: acpi\pnp0f13 dvi: *pnp0f13 dvi: Enumerating INFs from path list 'C:\Windows\INF' inf: Opened PNF: 'C:\Windows\System32\DriverStore\FileRepository\msmouse.inf_3dfa3917\msmouse.inf' ([strings.0409] <src=drvstore>) dvi: Created Driver Node: dvi: HardwareID - *PNP0F13 dvi: InfName - C:\Windows\System32\DriverStore\FileRepository\msmouse.inf_3dfa3917\msmouse.inf dvi: DevDesc - PS/2 Compatible Mouse dvi: DrvDesc - PS/2 Compatible Mouse dvi: Provider - Microsoft dvi: Mfg - Microsoft dvi: ModelsSec - MSMfg.NTx86 dvi: InstallSec - PS2_Inst dvi: ActualSec - PS2_Inst dvi: Rank - 0x0dff0001 dvi: Signer - microsoft windows dvi: Signer Score - INBOX dvi: DrvDate - 06/21/2006 dvi: Version - 6.0.6000.16386 inf: Opened INF: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf' ([strings] <src=drvstore>) inf: Saved PNF: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.PNF' (Language = 0409) sig: {_VERIFY_FILE_SIGNATURE} 17:04:50.554 sig: Key = apfiltr.inf sig: FilePath = C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf sig: Catalog = C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\Apfiltr.cat sig: Success: File is signed in catalog. sig: {_VERIFY_FILE_SIGNATURE exit(0x00000000)} 17:04:50.679 dvi: Created Driver Node: dvi: HardwareID - *PNP0F13 dvi: InfName - C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db\apfiltr.inf dvi: DevDesc - Alps Touch Pad dvi: DrvDesc - Alps Touch Pad dvi: Provider - Alps dvi: Mfg - Alps Electric dvi: ModelsSec - CompanyMfg.NT.6 dvi: InstallSec - MouFilter_Inst dvi: ActualSec - MouFilter_Inst.NT dvi: Rank - 0x0dff0001 dvi: Signer - Microsoft Windows Hardware Compatibility Publisher dvi: Signer Score - WHQL dvi: DrvDate - 10/26/2006 dvi: Version - 7.0.101.7 inf: Searched 2 potential matches in published INF directory inf: Searched 27 INFs in directory: 'C:\Windows\INF' dvi: {Build Driver List - exit(0x00000000)} 17:04:50.789 ndv: Selecting best match... dvi: {DIF_SELECTBESTCOMPATDRV} 17:04:50.789 dvi: Using exported function 'MouseClassInstaller' in module 'C:\Windows\system32\SysClass.Dll'. dvi: Class installer == SysClass.Dll,MouseClassInstaller dvi: Using exported function 'CriticalDeviceCoInstaller' in module 'C:\Windows\system32\SysClass.Dll'. dvi: CoInstaller 1 == SysClass.Dll,CriticalDeviceCoInstaller dvi: CoInstaller 1: Enter 17:04:50.789 dvi: CoInstaller 1: Exit dvi: Class installer: Enter 17:04:50.804 dvi: Class installer: Exit dvi: Default installer: Enter 17:04:50.804 dvi: {Select Best Driver} dvi: Selected driver installs from section [MouFilter_Inst] in 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf'. dvi: Class GUID of device remains: {4d36e96f-e325-11ce-bfc1-08002be10318}. dvi: Set selected driver complete. dvi: Selected: dvi: Description - [Alps Touch Pad] dvi: InfFile - [c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf] dvi: Section - [MouFilter_Inst] dvi: Signer - [Microsoft Windows Hardware Compatibility Publisher] dvi: Rank - [0x0dff0001] dvi: {Select Best Driver - exit(0x00000000)} dvi: Default installer: Exit dvi: {DIF_SELECTBESTCOMPATDRV - exit(0x00000000)} 17:04:50.804 ndv: Driver selected, now performing install... ndv: {Core Device Install} inf: Opened INF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>) inf: Saved PNF: 'C:\Windows\INF\oem1.PNF' (Language = 0409) inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>) dvi: {DIF_ALLOW_INSTALL} 17:04:50.882 dvi: CoInstaller 1: Enter 17:04:50.882 dvi: CoInstaller 1: Exit dvi: Class installer: Enter 17:04:50.882 inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>) inf: Opened PNF: 'C:\Windows\INF\oem1.inf' ([strings] <src=drvstore>) dvi: Class installer: Exit dvi: {DIF_ALLOW_INSTALL - exit(0x00000000)} 17:04:50.882 ndv: Installing files... dvi: {DIF_INSTALLDEVICEFILES} 17:04:50.882 dvi: CoInstaller 1: Enter 17:04:50.882 dvi: CoInstaller 1: Exit dvi: Class installer: Enter 17:04:50.882 dvi: Class installer: Exit dvi: Default installer: Enter 17:04:50.882 dvi: {Install FILES} inf: Opened PNF: 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf' ([strings] <src=drvstore>) inf: Opened PNF: 'C:\Windows\INF\msmouse.inf' ([strings.0409] <src=drvstore>) inf: {Install Inf Section [MouFilter_Inst.NT]} inf: CopyFiles=MouFilter_CopyFiles,MouFilter_CopyFilesDll,MouFilter_CopyFilesWav,MouFilter_CopyFilesHome (apfiltr.inf line 48) cpy: Open PnpLockdownPolicy: Err=2. This is OK. Use LockDownPolicyDefault flq: QueueSingleCopy... flq: Inf : 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf' flq: SourceInf: 'c:\windows\system32\driverstore\filerepository\apfiltr.inf_15fa42db\apfiltr.inf' flq: SourceSection: [sourcedisksfiles] flq: Source root path based on SourceInf flq: SourceRootPath: 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db' flq: {FILE_QUEUE_COPY} flq: CopyStyle - 0x00000000 flq: SourceRootPath - 'C:\Windows\System32\DriverStore\FileRepository\apfiltr.inf_15fa42db' flq: SourceFilename - 'Apfiltr.sys' flq: TargetDirectory- 'C:\Windows\system32\DRIVERS' flq: TargetFilename - 'Apfiltr.sys' flq: SourceDesc - 'Alps Touch Pad Filter Driver for Windows Vista Setup Disk' flq: {FILE_QUEUE_COPY exit(0x00000000)} ...snip..... <<< Section end 2007/01/22 17:04:54.554 <<< [Exit status: SUCCESS] Thanks all for any info/tips