# 驱动开发环境搭建流程

# 安装 Visual Studio

下载 Visual Studio 最新版本(社区版),安装选择使用 C++ 的桌面开发,必须勾选以下选项:

  • Windows 11 SDK(10.0.22621.0)
  • MSVC v143 - VS 2022 C++ x64/x86 生成工具(最新)
  • 适用于最新 v143 生成工具的 C++ ATL (x86 和 x64)
  • 适用于最新 v143 生成工具的 C++ MFC (x86 和 x64)
  • 适用于最新 v143 生成工具的 C++ 模块 (x64/x86 - 实验性)
  • vcpkg 包管理器
  • 实时调试器
  • C++ 分析工具
  • IntelliCode
  • C++ AddressSanitizer

# Visual Studio Installer 安装单个组件

  • 带有 Spectre 缓解措施、适用于最新的 v143 生成工具的 C++ ATL (x86 和 x64)
  • 带有 Spectre 缓解措施、适用于最新的 v143 生成工具的 C++ MFC(x86 和 x64)
  • MSVC v143 - VS 2022 C++ x64/x86 Spectre 缓解库(最新)

# 安装 Windows Driver Kit

下载与 Windows SDK 版本号一致的 WDK,然后点击安装。

  • 如果 SDK 与 WDK 版本不一致,则在控制面板中卸载重新安装,如不卸载覆盖安装会安装失败。
  • 两者可以全部都卸载再安装,建议安装最新版。

# 第一个驱动程序 Hello Driver

  • 新建 Empty WDM Driver 项目

  • 新建 main.c 项目文件

  • 修改项目属性 “配置属性 > C/C++ > 警告等级:等级 3 / 将警告视为错误:否”

  • 删除 Driver Files 目录下面的 .inf 文件

  • 编写 Hello Driver 驱动代码

    #include <ntifs.h>
    
    NTSTATUS DrvUnload(PDRIVER_OBJECT pDriver) {
        DbgPrint("Hello Driver Unload\n");
        return 0;
    }
    
    NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING regPath) {
        pDriver->DriverUnload = DrvUnload;
        DbgPrint("--%wZ", regPath);
        DbgPrint("Hello Driver Entry");
        return 0;
    }
    
  • 右键项目节点,选择 “生成” 菜单,生成驱动文件。

# 安装 Hello Driver 查看执行结果

  • 启动 VMware 虚拟机,安装 Windows 10 系统

  • 以管理员模式运行 cmd 命令提示行,执行以下代码,关闭驱动签名验证(重启生效)

    # 关闭签名验证
    bcdedit /set testsigning on 
    
    # 打开签名验证
    bcdedit /set testsigning off
    
    # 查看启动配置数据库(BCD)设置
    bcdedit
    
  • 运行 DebugView ,勾选 “Capture > Capture Kernel / Enabel Verbose Kernel Output” 选项

  • 运行 Monitor,打开生成的驱动文件,然后点击 “Start Driver / Stop Driver” 启动或停止驱动程序运行

  • 通过查看 **DebugView **调试输出内容,确认驱动执行状态

# 微软官网下载链接

下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (opens new window)

以前的 WDK 版本和其他下载 - Windows drivers (opens new window)