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 a WDM KMDF project template using the Windows Driver Kit, but when I downloaded the Windows Driver Kit (WDK), the only KMDF driver template was for a WDF driver. MSDN has an article describing the differences between the two. This is kind of strange to me. I was expecting to get a template out of the box that I could modify to work like in the article I've linked, but I don't see it. Why is there no template for a WDM KMDF driver?
Just an added note, you can quite easily tell the type of the driver based on the way it creates the device (IoCreateDevice implies WDM, whereas WdfDeviceCreate implies WDF).