How to add KMDF/UMDF driver to a Windows Vista DVD

Hello, my name is Kaushik Ainapure. I am a Senior Support Engineer in the Windows Platforms Core group. In this blog I am going to discuss how to extract and add the KMDF (Kernel Mode Driver Framework) to a Windows Vista Deployment.  

Windows Driver Foundation (WDF) is a set of Microsoft tools that are used in the creation of device drivers for Windows Operating System by IHV’S and ISV’S. The primary tools that comprise WDF are the Kernel Mode Driver Framework (KMDF) and User Mode Driver Framework (UMDF). These tool kits provide a new object-oriented programming model for Windows driver development. More information on WDF can be found on https://msdn.microsoft.com/en-us/windows/hardware/gg463268.

Windows 7 includes the latest version of WDF but if you are deploying Windows Vista with a driver that requires the latest version of WDF you may need to add this to your offline image so drivers will install successfully.

Extract the KMDF/UMDF driver from the DDK

===================================

You will need to have the following installed: 

Windows Driver Kit

Visual Studio 2010. If you do not have the full version you can download the Microsoft Visual Studio 2010 Professional trial version

Windows 7 AIK

  1. To obtain the KMDF/UMDF driver do the following:
    1. Extract the Vista install package for KMDF
    2. The KMDF 1.9 co-installer is in %WinDDK%redistwdf<arch>wdfcoinstaller01009.dll
    3. Drag-and-drop the co-installer into Visual Studio or use File/Open to load the binary. You can also use any other resource extractor.
    4. By default, you'll see the co-installers' resources. Look at the RCDATA resources. The KMDF co-installer has a resource called WDFCAB_RESOURCE
    5. Right click on the resource name, select export and find a directory to extract the resources.
    6. Name it KMDF.CAB
    7. Uncompress the WDF.CAB using the following command
      1. expand –f:* KMDF.CAB c:KMDF
    8. You should have a file called Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu
  2. Extract the Vista install package for UMDF [The KMDF 1.9 co-installer is in %WinDDK%redistwdf<arch>wudfcoinstaller01009.dll]
    1. Drag-and-drop the co-installer into Visual Studio or use File/Open to load the binary. You can also use any other resource extractor.
    2. By default, you'll see the co-installers' resources. Look at the RCDATA resources. The KMDF co-installer has a resource called WDFCAB_RESOURCE
    3. Right click on the resource name, select export and find a directory to extract the resources.
    4. Name it UMDF.CAB
    5. Uncompress the WDF.CAB using the following command
    6. expand –f:* UMDF.CAB c:UMDF
    7. You should have a file called Microsoft User-Mode Driver Framework-v1.9-Vista.msu 

You should end up with the following files:

C:KMDFMicrosoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu

C:UMDFMicrosoft User-Mode Driver Framework-v1.9-Vista.msu

Add the KMDF/UMDF driver to your Deployment

======================================

You can now incorporate these into your deployment. The steps vary on the type of deployment and the deployment tools you are using. Some examples include:

Microsoft Deployment Toolkit (MDT)

Add the Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu and Microsoft User-Mode Driver Framework-v1.9-Vista.msu to the MDT workbench under Packages

System Center Configuration Manager

Add the Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu and Microsoft User-Mode Driver Framework-v1.9-Vista.msu as Driver packages

Modify Offline Windows Vista Image

If you have a custom offline Windows Vista image that you would like to add the drivers to do the following(C:CUSTOM.WIM for example)

Unzip C:KMDFMicrosoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu to C:KMDFFlat

Unzip C:UMDFMicrosoft User-Mode Driver Framework-v1.9-Vista.msu to C:UMDFFLAT

Dism /Mount-WIM /WimFile:c:custom.wim /MountDir:c:mount

Dism /image:C:mount /Add-Package /PackagePath:C:KMDFFLATWindows6.0-KB970158-x64.cab

Dism /image:C:mount /Add-Package /PackagePath:C:UMDFFLATWindows6.0-KB970159-x64.cab

Dism /Unmount-WIM /MountDir:C:mount /Commit

 

More Information

2494168 - Deployment may fail when an injected driver requires an update to the Kernel Mode Driver Framework (KMDF) or User Mode Driver Framework (UMDF) during deployment 

2516416 - KMDF-Based USB Device Driver Hangs and Cannot Be Unloaded After Surprise Removal or System Suspend and Resume 

Kaushik Ainapure
Senior Support Engineer
Microsoft Enterprise Platforms Support