How drivers are added to Windows PE and Windows Vista during an unattended installation

My MCS colleague and top deployment gent – Mark Aslett has put together a handy process list for how device drivers are added to Windows PE and Windows Vista during deployment. The example below assumes than an unattend.xml file is being used to specify the location of drivers in both the windowsPE pass and the offlineServicing pass of the unattend.xml file.

If peimg is used to inject drivers directly into an offline Windows PE image then this fully installs the drivers, i.e. it performs the registry load, hardware ID and service information reflection, etc, and does not significantly delay the Windows PE boot or Vista deployment times.

BDD 2007 gets around most of the issues around deployment time identified above. When BDD creates the Windows PE boot image it will add any drivers that you specify at image creation time, so there is no need to use the windowsPE pass (or peimg to add drivers directly). BDD 2007 uses the offlineServicing pass for driver injection avoiding the bulk of the delays. It also has the added benefit of only copying across the drivers required instead of the entire driver store.

Big thanks to Mark for sharing his findings…

Comments (2)

  1. Anonymous says:

    I am using BDD 2007 with patch 1 LTI mode to deploy Vista. Everything works fine, except that I find some NVIDIA drivers for DELL workstation and notebook cannot be installed. The drivers can be correctly recognized, because from the ZTIDrivers.log we can see that the correct driver has been copied to C:Drivers. However, after Vista setup, the copied nVidia driver

    was not installed at all (but audio/NIC/chipset/hdc drivers installed fine).

    I checked setuperr.log and found:

    2007-09-11 17:24:19, Error                 CBS    Pkgmgr: Install Drivers

    Offline Callback: ERROR:  Failed to stage driver ‘C:DriversDisplaynvd’ (HRESULT= 0x8007001D). (Error code (HRESULT)


    2007-09-11 17:24:19, Error                 CBS    Pkgmgr: Install Drivers

    Offline Callback: ERROR:  Failed to install driver package

    ‘C:DriversDisplaynvd’. (Error code (HRESULT)


    In another case, the error is 0x80070070 for another different NVIDIA driver.

    then I found a KB article:

    After you use Package Manager to add a driver to an offline Windows Vista

    image, the driver may not be added to the driver store folder

    It seems related to the "limited scratch space that is available in Windows PE", but how to fix this in BDD?

    Thanks a lot!

  2. Anonymous says:

    My question is regarding Win XP, using microsoft deployment, and SMS OSD.

    In the control folder, i have a drivers.xml and a drivergroups.xml. In the drivergroups.xml, there is a section for each model we have. For some reason, some drivers aren’t injecting and most are. The ones that do inject have an entry in the BDD.log, but there is no mention of the missing drivers. What could cause this?