how to use multiple WDKs with Visual Studio

Hi All,

I have a query.
How can I install multiple WDK’s in the same machine ? I have 2 drivers.
driver1 → needs 10.0.18362.1 (a)
driver2 → needs 10.0.19041.0 (b)

if I install a and b. driver1 will no longer build.
With only a . driver 2 will not build.

(multiple SDK’s iam able to install. only WDK problem)

I tried
I tried installing the WDK in a different path. But not sure how to give that path.

Any help will be greatly appreciated.

Thanks,
Phani

basically you can’t do that.

However what you can do is build using the EWDK for 18362 or whatever the exact version of the closest EWDK is for ‘driver1’ and build with Visual Studio and the installed 19041 WDK for driver2.

But it actually shouldn’t matter, both drivers should be able to build with either WDK, unless you have a CI/CD situation where a specific release branch has archived its toolchain requirements (as it should) and your development branch has moved forward to a new toolchain and you need to build both release branch versions and development versions on the same system.

AFAIC production CI/CD systems building windows drivers should only use EWDK releases as that is the only tool chain that can be easily archived on a per branch basis.

production CI/CD systems building windows drivers should only use EWDK releases

A proper and lofty goal. For the driver.

The problem comes with all the OTHER stuff that’s part of your Solution. Test apps, management tools, UI.

Peter

not really a problem. Separate drivers (and win32 apps/services which can generally build with the EWDK) from other stuff that requires stuff like .net. Build them separately each using their own toolchain. The EWDK can coexist on the same system with a full VS install. In fact you can also build EWDK stuff entirely in a container, completely isolating it from your ‘normal’ dev environment.

Thank you Mark_Roddy and Peter_Viscarola_(OSR) for your comments. I will try with EWDK.

What is the issue you have if you both WDKs installed?
I have several SDKs and WDKs installed and drivers for different WDKs.

There are issues with some WDK tools if multiple WDKs are installed…
random ones… tools would not get installed, etc.

How can I install multiple WDK’s in the same machine ? I have 2 drivers.

It isn’t the WDK itself that is the problem, it is the linkage between VS
versions and specific WDKs. In general VS is not backwards compatible with
WDK versions. So you can have side-by side installs of VS/WDK versions,
but you also have to build using the correct VS/WDK combinations.

On the other hand the EDWK is a complete toolchain and has none of that
nonsense going on.

Mark Roddy

OK, that is different. But the OP mentioned that one of the drivers
won’t build… but that would not be the case just because the WDKs
cannot coexist. Even if he does not install the “other” WDK, one of
the drivers just won’t build due to VS version.

It isn’t the WDK itself that is the problem, it is the linkage between VS
versions and specific WDKs. In general VS is not backwards compatible with
WDK versions. So you can have side-by side installs of VS/WDK versions,
but you also have to build using the correct VS/WDK combinations.

On the other hand the EDWK is a complete toolchain and has none of that
nonsense going on.

Yes, but the difference between can’t build with multiple WDKs
installed and cona’t build with multiple WDKs installed eludes me :slight_smile:

Also, I think starting with (one of the?) the WDK that came with VS 2017,
that WDK because of a layout change broke prior WDK installs for other
versions of VS.

The rev-locked linkage is a fragile mess. Seriously, the EWDK resumes where
the ‘before the big integration WDKs’ left off: a complete integrated
toolchain with zero install complexity. Other than the pleasure of
running/installing/updating the huge and sluggish VS IDE I have no clue why
people insist on using the non WDK versions for CI/CD environments.

Mark Roddy