UMDF 1.9 for Windows XP

Hello,
We have a UMDF driver written for Vista in UMDF 1.11 and we want to run it on Windows XP. As XP supported latest up to UMDF 1.9, we are not able to install 1.11. The errors are like supporting wudfcoinstaller was not found or WUDFRd.sys not found. We need to have supporting files for UMDF 1.9 in order to make it work. Also, we found that these header files are a part of this KB “KB970159”(https://support.microsoft.com/en-in/help/970159/user-mode-driver-framework-version-1-9-update-for-windows-xp-for-windo). We are not able to find this update for Windows XP. Where can we find this? or is there any alternate way to make 1.11 run on XP?

Note all of the above is to compare a KMDF driver that works fine to UMDF which is partially written and we are trying to complete missing part. This is intended for Win 10 but KMDF driver we have works only on XP so we’re trying to make UMDF work on XP too in order to complete the missing part and then we will make it compatible to Win 10. Please share your thoughts.

or is there any alternate way to make 1.11 run on XP?

No. If you require features that aren’t in 1.9, then your driver will not run on XP. You know the coinstallers for UMDF 1.9 are all in the WDK, yes?

@Tim_Roberts Thanks for replying. You mean 1.11 is a superset of 1.9? While installing 1.11 on XP, it says one of the coinstallers WudfUpdate_01011.dll is not a valid win32 app and the other error is like “#E339 Add Service: Binary “C:\WINDOWS\system32\DRIVERS\WUDFRd.sys” for service “WUDFRd” is not present.” Since this is not the driver code itself, I’ve a difficulty understanding but does it look like features missing in 1.9?

Each version of KMDF and UMDF is a proper superset of all prior versions (well, within the major versions; UMDF 2 is entirely different from UMDF 1).

… WudfUpdate_01011.dll is not a valid win32 app …

That almost always means you tried to install a 64-bit DLL on a 32-bit system. Remember that XP is strictly 32-bit. You have to use the matching co-installers. However, in this specific case, 01011 is never going to work in XP. You’ve been told that. Don’t try it. Go get 01009.

… for service “WUDFRd” is not present …

That is the UMDF redirector. It is the kernel component that sits in the driver stack and acts as a proxy for your user-mode driver. It would have been installed by the co-installer, if you had included the proper one.

Thanks @Tim_Roberts. I would need to re-compile to update 01009 in .inx. Do we need a copyfiles section for coinstallers? If I have this section, I land up into 22.9.1, co-installers missing or cannot be decompressed from source media.

Yes, since XP did not include KMDF or UMDF in any form, you have to copy them into place, you have to include the files in your driver package, and you have to include the INF sections that call them: https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/using-the-umdf-co-installer

If you didn’t use any 1.11 APIs in your driver, then you probably don’t have to recompile.

If you didn’t use any 1.11 APIs in your driver, then you probably don’t have to recompile.

When you compile a UMDF or KMDF driver, the min required framework version is baked into the binary and checked at load time. This means that if you compile your UMDF driver for v1.11, v1.11 or greater of the framework must be installed, regardless of the actual framework APIs called by the driver. To keep your life simple, consider recompiling and targeting v1.9