随着 Windows 11 的普及,越来越多的软硬件开发者开始面向该平台进行驱动开发。本教程将手把手教你如何基于 Visual Studio 2022 和 Windows Driver Kit (WDK) 开发一个简单的内核模式驱动程序,最终完成驱动的加载与测试。
一、开发环境准备
1. 安装 Visual Studio 2022
选择带有“使用 C++ 的桌面开发”组件的版本(推荐专业版及以上),并勾选:
- Windows 11 SDK
- Windows 驱动程序开发工具(WDK)
2. 安装 WDK for Windows 11
下载地址:
https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
确保版本匹配你的 Windows 11 系统和 VS2022。
二、新建驱动项目
1. 打开 Visual Studio 2022
依次点击:
文件 -> 新建 -> 项目 -> 驱动程序 -> 内核模式驱动(KMDF)
2. 配置项目
- 项目名称:MySampleDriver
- 目标平台:x64
- 驱动模型:KMDF(推荐)
- 选择“空白驱动程序”模板
三、编写驱动代码
1. 添加驱动入口函数
在 Driver.c 中添加:
#include <ntddk.h>
#include <wdf.h>
DRIVER_INITIALIZE DriverEntry;
NTSTATUS
DriverEntry(
_In_ PDRIVER_OBJECT DriverObject,
_In_ PUNICODE_STRING RegistryPath
)
{
UNREFERENCED_PARAMETER(RegistryPath);
DbgPrint("MySampleDriver Loaded\n");
DriverObject->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
VOID
DriverUnload(
_In_ PDRIVER_OBJECT DriverObject
)
{
UNREFERENCED_PARAMETER(DriverObject);
DbgPrint("MySampleDriver Unloaded\n");
}
2. 配置 INF 安装文件(MySampleDriver.inf)
[Version]
Signature="$WINDOWS NT#34;
Class=Sample
ClassGuid={78A1C341-4539-11d3-B88D-00C04FAD5171}
Provider=%ManufacturerName%
DriverVer=08/06/2025,1.0.0.0
[Manufacturer]
%ManufacturerName%=Standard,NTx64
[Standard.NTx64]
%DeviceName%=Install, Root\MySampleDriver
[DestinationDirs]
DefaultDestDir = 12
[Install]
CopyFiles = @MySampleDriver.sys
AddReg = AddRegSection
[AddRegSection]
HKR,,"DevLoader",0,"*ntkern"
HKR,,"NTMPDriver",0,"MySampleDriver.sys"
[SourceDisksFiles]
MySampleDriver.sys = 1
[SourceDisksNames]
1 = %DiskName%
[Strings]
ManufacturerName = "MyCompany"
DeviceName = "My Sample Driver"
DiskName = "My Sample Driver Install Disk"
四、编译与生成
- 右键项目 → 生成。
- 确保无错误后,输出目录中有 .sys 和 .inf 文件。
五、签名测试驱动(用于测试模式)
1. 打开“测试签名模式”
bcdedit /set testsigning on
重启电脑。
2. 使用
signtool
签名(可选)
signtool sign /v /ac mycert.cer /s my /n "MyCompany" /t http://timestamp.digicert.com MySampleDriver.sys
六、安装驱动
方法 1:设备管理器安装
- 打开“设备管理器” → 添加旧硬件
- 浏览 .inf 安装
- 驱动安装完成后,重启生效
方法 2:使用
devcon
工具(推荐)
devcon install MySampleDriver.inf Root\MySampleDriver
七、验证驱动是否加载成功
使用“调试查看器”或“WinDbg”查看输出:
MySampleDriver Loaded
可以通过“设备管理器”确认驱动已加载。
八、卸载驱动
devcon remove Root\MySampleDriver
或者重新执行添加旧硬件,卸载当前设备。
九、实际部署注意事项
- 驱动发布前必须使用正式签名证书
- 请勿在生产环境长期启用测试签名模式
- 编写错误处理与稳定性校验代码,提升驱动质量
十、总结
本教程展示了如何使用 VS2022 + WDK 在 Windows 11 下开发、编译、签名并部署一个基础内核模式驱动。对于需要编写特定硬件驱动或进行系统底层拦截的开发者,这是一份可落地、可实操的起点指南。