Official documentation of forwards compatbility?

There’s been some concern that I’ve been unable to allay that a driver
built using the WDK 8.0 will potentially fail (crash, cause corruption
etc.) on Windows 8.1 because of changes to struct fields etc. - i.e.
that the ABI will have changed and that only a driver built using the
WDK 8.1 will definitely work. I’ve seen messages on this list telling
people to target the lowest version of Windows that you want to support:
Vista for Vista, Windows 7, 8 and 8.1 but is there any official
documentation that says that?


Bruce

Microsoft officially recommends that you use the latest version of the WDK (including the latest compilers, headers, etc.) that supports your target platform.

For example, if your target platform is Windows 7, you could use WDK 7.0, 7.1, 8, or 8.1. Of those choices, we officially (and heartily) recommend that you use the latest, which is currently 8.1.

We take great pains to avoid causing “drivers built using WDK 8.0 to crash, or cause corruption on Windows 8.1”; our ABIs are actually remarkably stable. The reason for the recommendation is not so much the ABI changes – rather, with a newer WDK, you also get a better compiler, more security features (e.g., LIST_ENTRY link checking), and in some cases, your driver will automatically light up on a newer faster ABI (where the old ABI still works, but is slower or less secure).

In some cases, you cannot use the latest WDK. Then use the latest version that does work. For example, if you’re targeting Windows XP or an IA64 driver for Windows Server 2008 R2, then the latest version that works is WDK 7.1.0.

The above is an elaboration of the official message here: http://msdn.microsoft.com/library/windows/hardware/ff557573 : “We recommend that you use the latest versions of the WDK and Visual Studio to build drivers for Windows.”

Jeffrey Tippet [MSFT] wrote:

For example, if your target platform is Windows 7, you could
use WDK 7.0, 7.1, 8, or 8.1.

Doron just wrote in the other thread about WinUSB: “none of the Win8.1 WDF components go downlevel”. Is that different than what you’re saying here?

With the win8 kit and moving fwd, you can target multiple versions of wdf, not just the version shipping in the paired os. That means you can target win7 by using the win7 kmdf version

d

Bent from my phone


From: xxxxx@gmail.commailto:xxxxx
Sent: ?12/?12/?2013 7:38 PM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: RE:[ntdev] Official documentation of forwards compatbility?

Jeffrey Tippet [MSFT] wrote:

> For example, if your target platform is Windows 7, you could
> use WDK 7.0, 7.1, 8, or 8.1.

Doron just wrote in the other thread about WinUSB: “none of the Win8.1 WDF components go downlevel”. Is that different than what you’re saying here?


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>

> There’s been some concern that I’ve been unable to allay that a driver

built using the WDK 8.0 will potentially fail (crash, cause corruption
etc.) on Windows 8.1 because of changes to struct fields etc. - i.e.
that the ABI will have changed and that only a driver built using the
WDK 8.1 will definitely work.

I would say more: driver built for w2k will work on 8.1 :slight_smile:

The only exceptions are when MS deprecates the whole architectural subsystem - like old display driver model or NDIS 5.


Maxim S. Shatskih
Microsoft MVP on File System And Storage
xxxxx@storagecraft.com
http://www.storagecraft.com