WDM driver build for Windows 10

Hello,

Is it possible to take a PCI driver built with WDM on Windows 7 and build it still using WDM on Windows 10 and 8. I believe I would need the toaster sample driver with WDM targeted for Windows 7, WDK 7.1.0, but be built and tested using the Windows 10 software tools. This is due to the fact that the driver has a company specific co-installer, kernel driver, and driver package; all of which are included in the toaster sample driver. I know that Window 8 and 10 push the KMDF framework but the original driver I am trying to port is written using the Windows Driver Model (WDM).

Thank You

xxxxx@gmail.com wrote:

Is it possible to take a PCI driver built with WDM on Windows 7 and build it still using WDM on Windows 10 and 8. I believe I would need the toaster sample driver with WDM targeted for Windows 7, WDK 7.1.0, but be built and tested using the Windows 10 software tools. This is due to the fact that the driver has a company specific co-installer, kernel driver, and driver package; all of which are included in the toaster sample driver. I know that Window 8 and 10 push the KMDF framework but the original driver I am trying to port is written using the Windows Driver Model (WDM).

Absolutely. KMDF is just an option (although it is a very good
option). Remember that KMDF first came out between XP and Vista; the
two have co-existed for a very long time.

The only trouble you’ll have is creating your first Visual Studio
project file. I started with one of the samples and cleaned out what I
didn’t need. There is a tool to convert your “sources” to a “vcxproj”,
but in my opinion it adds unnecessary overhead. Vcxproj files are not
that hard to manipulate.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

Just a follow-up question. The Win 7 driver is indeed already built using “vcxproj” files (more exactly 3 “vcxproj” projects inside a solution) and uses the WDM for the kernel interface; e.g. start device, add device, IO dispatch routines. When reconstructing this driver in Visual Studio 2015 using the WDK 10, the driver testing, analysis, and verification tools appear to target verification against WDF exclusively and are not able to verify against WDM.

When you started with one of the samples, which Visual Studio version were you using? Just an addition, I have already taken the WDK 10 toaster sample and removed items that I didn’t need and added the WDM source code as a Windows 10 Kernel Mode Driver, this builds and deploys the entire driver solution; .sys, .cat, .inf, .dll, .dll with signed Package security catalog. I thought that it would still be possible to run the testing and verification tools with this driver. I am able to run Code Analysis successfully and enable Driver Verifier on deployment but the Static Driver Verifier only recognizes the driver entry point and does not recognize any of the dispatch routines or IRP handling routines. The only verification check I see under SDV are for WDF. Perhaps I will need to run the kernel debugger at run-time and determine the reason for the Driver Verifier failing the IO Manager certification test.

Thank You,
I appreciate the response.

There is a great chance that your driver will work on Win10 unchanged.

But, for the sake of cultural coding, use NonPagedPoolNx (and the similar things for MDL mappings) for Win8+.


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

Ok, thank you.