Question

I came across kernel-mode drivers with very little experience. Here's what I am trying to do:

  • Have a user-mode application that loads the driver.
  • Have the user-mode application write to it, in order to send it an instruction.
  • Have the driver send the RDMSR instruction to the Intel chip.
  • Return the results back to the user-mode application.

I've read this article that describes the different ways in which you can accomplish this behavior (Buffered I/O, Direct I/O, or Neither).

My problem is this...the article has code that represents the way you would structure a WDM driver, and I was expecting to be able to create and then modify a default WDM project template with source code in it using the Windows Driver Kit, but when I downloaded the Windows Driver Kit (WDK), the only WDM driver template was completely blank and did not have any source code.

Where can I find an example of a minimalistic WDM driver template with source code in it that uses IoCreateDevice to create a device object?

Was it helpful?

Solution

I found it here. Part of the Windows Driver Kit 8.1 Samples, the glorious IOCTL driver sample

demonstrates the usage of four different types of IOCTLs (METHOD_IN_DIRECT, METHOD_OUT_DIRECT, METHOD_NEITHER, and METHOD_BUFFERED)

Furthermore,

This sample driver is not a Plug and Play driver. This is a minimal driver meant to demonstrate a feature of the operating system. Neither this driver nor its sample programs are intended for use in a production environment. Instead, they are intended for educational purposes and as a skeleton driver.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top