开发环境 | 对应版本 | 官方声明能支持的系统版本 |
---|---|---|
vs2017 | WDK 10 | win7、win8、win8.1、win10 |
-
打开VS新建工程时会有驱动开发选项,建好项目后选择编译哪个版本的驱动程序
- 第一个程序
#include<ntddk.h> VOID DriverUnload(PDRIVER_OBJECT driver) { UNREFERENCED_PARAMETER(driver); DbgPrint("卸载"); // kdprint也可以 } // 入口函数 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, // 驱动对象 PUNICODE_STRING path) // 路径 { UNREFERENCED_PARAMETER(path); DbgPrint("First Driver"); __asm int 3 driver->DriverUnload = DriverUnload; return STATUS_SUCCESS; }
-
开始编译
驱动程序的编译要求比较高,但实际上并不需要这样,可以将编译的等级降低,则能够直接编译成功
由于是在32位Windows7的虚拟机中运行,所以配置如下:
修改1:
修改2:
修改3:
-
环境配置完成生成程序,将程序放入调试的虚拟机中,双机调试。使用加载器加载编写好的驱动程序,如果需要调试程序,在驱动程序中下断点需要手动的在行中间加上
__asm int 3 断点,启动之后程序就在断点出中断。