第一个驱动程序

环境搭建:

开发环境 对应版本 官方声明能支持的系统版本
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 断点,启动之后程序就在断点出中断。

原文地址:https://www.cnblogs.com/TJTO/p/11421282.html