安装SDK和WDK
我这里用的是VS2019,VS2022不再支持win10的WDK(那个扩展装不了),而2022的WDK驱动根本没有x86版本的
安装器里把这个勾上,如果你安装了某个套餐,应该会有个SDK对应的版本,那么就不用装了
建立一个空的工程后,要按下图进行4次不同的设置
///
/// @file first.c
/// @author crazy_chu
/// @date2008-11-1
///
#include <ntddk.h>
// 提供一个Unload函数只是为了
VOID DriverUnload(PDRIVER_OBJECT driver)
{
// 但是实际上我们什么都不做,只打印一句话:
DbgPrint("first: DriverUnload,只打印一句话…\r\n");
}
// DriverEntry,入口函数。相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
#if DBG
// _asm int 3
#endif
// 这是我们的内核模块的入口,可以在这里写入我们想写的东西。
// 我在这里打印一句话。因为”Hello,world” 常常被高手耻笑,所以
// 我们打印一点别的。
DbgPrint("first: DriverEntry 已经进入了");
// 设置一个卸载函数便于这个函数能退出。
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
如果 仅是测试驱动,用如下方法
第一种方案:临时禁用驱动签名验证
按着shift,重启系统 -》选择高级选项 -》选择启动设置,进入启动选项界面,选择“进入驱动程序强制签名”(一般为F7按键)。
第二种方案:永久禁用驱动签名验证
(1)确保bios里的security boot选项为disable状态
(2)执行如下命令,禁用驱动签名检测
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON
(3)如果需要回复驱动签名检测,执行如下脚本,然后在bios里面启用security boot
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF
另外在注册表中增加debugview的显示 提示
那个kernel-mode Driver Manager中的register对应
sc create myfirstdriver type= kernel binpath= "你的全路径驱动文件MyFirstDriver.sys"
run 对应
sc run myfirstdriver 或者 net start myfirstdriver
stop 对应
sc stop myfirstdriver 或者 net stop myfirstdriver
unregister对应
sc delete myfirstdriver