我遇到了经验很少的内核模式驱动程序。这是我想做的事情:
- 有一个加载驱动程序的用户模式应用程序。
- 让用户模式应用程序写入它,以便向它发送指令。
- 让驱动程序将 RDMSR 指令发送到 Intel 芯片。
- 将结果返回给用户模式应用程序。
我读过这篇文章,其中描述了您可以完成此行为的不同方式(缓冲 I/O、直接 I/O 或两者都不是)。
我的问题是……这篇文章的代码代表了您构建WDM驱动程序的方式,我希望能够使用 Windows 驱动程序工具包创建 WDM KMDF 项目模板,但是当我下载了 Windows 驱动程序工具包时(WDK),唯一的 KMDF 驱动程序模板是用于WDF驱动程序的。MSDN 有一篇文章描述了两者之间的差异。这对我来说有点奇怪。我期望得到一个开箱即用的模板,我可以修改它以像我链接的文章中那样工作,但我没有看到它。为什么没有 WDM KMDF 驱动程序的模板?
只是一个补充说明,您可以很容易地根据它创建设备的方式来判断驱动程序的类型(IoCreateDevice 表示 WDM,而 WdfDeviceCreate 表示 WDF)。