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