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:
Visual Studio 2010. If you do not have the full version you can download the Microsoft Visual Studio 2010 Professional trial version
- To obtain the KMDF/UMDF driver do the following:
- Extract the Vista install package for KMDF
- The KMDF 1.9 co-installer is in %WinDDK%redistwdf<arch>wdfcoinstaller01009.dll
- 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.
- By default, you'll see the co-installers' resources. Look at the RCDATA resources. The KMDF co-installer has a resource called WDFCAB_RESOURCE
- Right click on the resource name, select export and find a directory to extract the resources.
- Name it KMDF.CAB
- Uncompress the WDF.CAB using the following command
- expand –f:* KMDF.CAB c:KMDF
- You should have a file called Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu
- Extract the Vista install package for UMDF [The KMDF 1.9 co-installer is in %WinDDK%redistwdf<arch>wudfcoinstaller01009.dll]
- 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.
- By default, you'll see the co-installers' resources. Look at the RCDATA resources. The KMDF co-installer has a resource called WDFCAB_RESOURCE
- Right click on the resource name, select export and find a directory to extract the resources.
- Name it UMDF.CAB
- Uncompress the WDF.CAB using the following command
- expand –f:* UMDF.CAB c:UMDF
- 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
Kaushik Ainapure
Senior Support Engineer
Microsoft Enterprise Platforms Support