Skip to main content
Matrix42 Self-Service Help Center

Provision of WinPE drivers

In the following chapter we will go into the provision of WinPE drivers, which are necessary to be able to address hardware that is not yet natively supported by the current WinPE.
Despite frequent updates of the Microsoft ADK (up to Windows 10 2004), it is possible that the supplied drivers do not or not correctly address certain hardware types. The manufacturers usually offer special WinPE driver packages for this, which then provide a remedy.


Please note that these are not always "fully usable" drivers in the operating system.
If the manufacturer provides drivers for your operating system, you should also use these for the operating system installation.
A detailed list of the released operating systems can usually be found in the driver package read me file or can be obtained from the manufacturer.

Driver integration for a boot configuration


Only the drivers that are necessary for the WinPE phase are integrated here. Drivers for the Windows client itself can be provided via the Driver Assistant.

In this step-by-step guide, we will use a VMware Workstation Client as an example and integrate the necessary drivers.
Dell, for example, already provides the necessary mass storage drivers with the common name F6 Driver. This name is derived from the F6 installation method for third-party mass storage drivers during Windows setup.
As with the F6 installation method, you will need unpacked drivers (usually consisting of at least one *.inf, *.cat and *.sys file) to deploy the mass storage drivers. Often there can be more than one of these files in a driver package).


It is recommended that you first create a new boot configuration and use it to test the deployment. After successful tests, the necessary drivers can be transferred to a productive boot configuration.

  1. After you have made sure that the drivers have been correctly unpacked to the desired location, go to Configuration > Boot Configurations in the Matrix42 Management Console.
    WinPE_DRV_Int_005.png
  2. In the Boot Configuration overview, you will find "Additional driver folders" in the lower right corner after setting the Advanced Properties (upper right) to On.
  3. Here possibly already integrated driver directories of this boot configuration are displayed. In this case we create a new boot configuration and the window "Additional driver folders" currently shows nothing.
  4. Now select the button WinPE_Add.gif and navigate in the opening "Search Folder" window to the driver folder where you have unpacked the drivers.
    WinPE_DRV_Int_010.png

 

It is a promising idea to always select descriptive names, so that later it is possible to identify which driver is to be replaced by a successor, but also to make it easier for other colleagues to identify the drivers.
The selected directories must be located on a share that is accessible to the Activation Service. Make sure that the user under which the Activation Service is running has access to the share and that the share can be accessed from the computer on which the Activation Service is running.
A maximum path length of 256 characters applies to file storage and all path specifications. The following characters ~ " # % & * : < > ? / \ { | } are not allowed in folder, file, and path specifications.
The EmpInst$ share must be used here.


All drivers which are integrated here are part of the boot image which must fit into the RAM of the client to be installed! Therefore, should be avoided to integrate whole driver archives (which can be quite meaningful in the Windows client driver management).
In addition, only three driver classes are relevant in the WinPE phase: Network, storage, and chipset drivers.
All other driver classes (audio, graphics card, camera, HID, etc.) are unnecessary ballast for WinPE.

Inject Driver:
In principle, all drivers of the classes network, storage and chipset can be injected.
For some chipset drivers an inject is even mandatory since these require a reboot with (if WinPE is not present) system persistence.
If you integrate many similar drivers (e.g. network cards) with the same or similar PCI ID, an inject can lead to problems - integrating the drivers via a directory helps here.

  1. In this case we add the driver directory "VMXNET3" to the boot configuration.
    WinPE_DRV_Int_015.png
    Note that each driver directory must be added individually!
  2. Enter a unique name and a description, this will facilitate the later identification of the boot configuration.
    WinPE_DRV_Int_020.png
  3. After all the changes correspond to your wishes, confirm them by clicking the "Save" button.
  4. Confirm the security prompt with Yes.
  5. The WinPE boot configuration is now created and can then be assigned to the client.


The WinPE agent tries to find suitable drivers for devices that are not supported by WinPE's own drivers. This means that an existing WinPE driver will always have priority over a subsequently added driver.

Read log file information

On the client in the directory "X:\UAF" or on the server in the directory .\Empirum\EmpInst\Wizard\OS\WinPeStatus\<Domain Computer name> you will find the file "Matrix42.Platform.Service.Host.log". In it, you will find a section that indicates the missing device drivers or shows the installed devices if additional drivers were stored in the boot configuration.
Here in the example an 'Ethernet Controller' is listed as "Unsupported Device". And you can see in the last lines that no devices were installed, because no drivers were stored here in the boot configuration.
WinPE_DRV_Int_025.png

The hardware ID can be used to search for a required driver.
If you have now stored drivers in the boot configuration, then you can see from the log that the suitable drivers were installed. The driver files are also listed, and which devices support them.
The appropriate drivers are then filtered for storage and network devices - everything else is not required and therefore not installed. (Only the device classes Volume, DiskDrive, Net, SCSIAdapter and HDC are used).
And it finally comes to the installation of the drivers, which you can see here below in the example: The driver for the network device is installed.
WinPE_DRV_Int_030.png

In principle, unsupported devices are always listed - the installed devices are not listed by default. If you want to see all devices, or more information about the state of the devices the installation attached drivers, you must change the configuration file "Matrix42.Platform.Service.Host.exe.config" on the server in the directory "EmpInst$\Sys\Images\WinPE\binaries\UAF" and recreate the relevant boot configurations.

To do this, you need to add the listener for the log file as an XML node to the debug switch in the logging configuration:
Under <loggingConfiguration><categorySources>:
<add switchValue="Verbose" name="Debug">
  <listeners>
    <add name="OutputDebug TraceListener"/>
  </listeners>
</add>

you must add the following listener:
<add name="RollingFlatFile TraceListener"/>
So that the configuration looks something like this, and debug logs are written to the log file:
<add switchValue="Verbose" name="Debug">
  <listeners>
    <add name="OutputDebug TraceListener"/>
    <add name="RollingFlatFile TraceListener"/>
  </listeners>
</add>

 

  • Was this article helpful?