Loading... > Windows驱动相关,直接在Windows10上搭建环境 --- # 搭建环境 先下载SDK、VS2019、WDK等安装依赖,然后选择模板进行就行了。这时候如果直接运行,默认生成的驱动文件是Win10平台的,而且基本上会编译失败,需要改一些配置信息(Debug-x64): - 调整属性 - C/C++ - 常规,警告等级 4,将警告视为错误 否; - 链接器 - 常规,警告视为错误 否; - Driver Settings - General,Target OS Version改成Windows 7,Target Platform改为Desktop; - Stampinf里所有 是 的地方改成 否; - Inf2Cat里所有 是 的地方改成 否; - Driver Signing - General中的Sign Mode改为 Off; 参考[^1] 关于在win7上如何搭建驱动环境,有点麻烦,比如有的人用VS2013+WDK8.1搭建的[^2],还有用VS2008 + DDKWizard或者VS2010 + EasySYS搭建环境的[^3] ## Demo ```cpp #include <ntddk.h> // 提供一个Unload 函数只是为了让这个程序能够动态卸载,方便调试 VOID DriverUnload(PDRIVER_OBJECT driver) { // 但是实际上我们什么都不做,只打印一句话 DbgPrint("hello: Our driver is unloading...\r\n"); } // DriverEntry,入口函数。相当于main。 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) { // 这是内核模块入口,可以在这里写入我们想写的东西 DbgPrint("hello: my salary!"); // 设置一个卸载函数,便于这个函数退出 driver->DriverUnload = DriverUnload; return STATUS_SUCCESS; } ``` ## WDK Windows Driver Kit 驱动开发工具包,无论内核模式的驱动程序或者用户模式的驱动程序,都使用同一环境进行构建,这一环境称为 WDK 。 ## WDF Windows Driver Foundation 驱动开发基础,无论内核模式的驱动程序或者用户模式的驱动程序,都采用同一套对象模型构建,采用同一个基础承载,这个基础就是 WDF 。 早期的Windows 95/98的设备驱动是 VxD (Virtual DeviceDriver),其中x表示某一类设备。从Windows 2000开始,开发驱动程序必以 WDM (Windows Driver Model) 为基础的,但是,如果使用 DDK 来开发 WDM ,其开发难度之大,根本不能奢望像用户模式应用程序开发那样容易,因此,一般用户都是使用 WinDriver 、 DriverStudio 之类的第三方工具。 从Vista开始,微软推出了新的驱动程序开发环境 WDF(Windows Driver Foundation )。 WDF 是微软提出的下一代全新的驱动程序模型,它是在 WDM (windowsDriver Model) 的基础上发展而来的,支持面向对象、事件驱动的驱动程序开发,提供了比 WDM 更高层次抽象的高度灵活、可扩展、可诊断的驱动程序框架。 WDF 框架管理了大多数与操作系统相关的交互,实现了公共的驱动程序功能(如电源管理、PnP支持),隔离了设备驱动程序与操作系统内核,降低了驱动程序对内核的影响。 ## DMF Driver Module Framework 驱动模块框架,DMF 是 WDF 的拓展,允许 WDF 驱动调用额外的函数,它帮助开发者读写 WDF 驱动。 ## KMDF Kernel Mode Driver Formwork 内核模式驱动框架,这类驱动程序作为内核模式操作系统组件的一部分执行,它们管理 I/O 、即插即用、内存、进程和线程、安全等。内核模式驱动程序通常为分层结构。 KMDF 是 Windows 系统底层驱动,文件名为: SYS 。关于KMDF更多的内容,可参阅 MSDN 中“ Getting Started with Kernel-ModeDriver Framework ”。 ## UMDF User Mode Driver Formwork 用户模式驱动框架,这类驱动程序通常提供 Win32 应用程序与内核模式驱动程序或其他操作系统组件之间的接口。用户模式驱动程序支持基于协议或基于串行总线(如摄像机和便携音乐播放器)的设备。 UMDF 是用户层驱动,文件名为: DLL 。关于 KMDF 更多的内容,可参阅 MSDN中“Introduction to UMDF“。 # 参考文献 [Win10下VS2015(WDK10)驱动开发环境配置](https://blog.csdn.net/u014805066/article/details/74922955) ``` ``` [^1]: [Windows内核驱动开发:HelloWorld](https://www.cnblogs.com/lxmwb/p/13061784.html) [^2]: [VS2013+WDK8.1 驱动开发环境配置](https://www.cnblogs.com/LyShark/p/11539892.html) [^3]: [驱动开发入门 – 之一:Win7 SP1 x64 驱动开发环境搭建](https://exp-blog.com/re/qu-dong-kai-fa-ru-men-1/) Last modification:January 16th, 2021 at 01:06 pm © 允许规范转载 Support 确定不打赏一下支持博主吗 ×Close Appreciate the author Sweeping payments Pay by AliPay