新建一个MFC DLL项目,设置项目属性如下:
新建一个配置管理项,my_driver_dev,编辑这个配置管理项!
需要事先说明的是,下图中加粗的地方就是需要修改的部分!!!
配置流程如下:
1、C/C++
(1)“常规”

(2)“优化”

(3)“预处理”

(4)“高级”

2、链接器
(1)“常规”

(2)“输入”

(3)“清单文件”

(4)“调试”

(5)“系统”

(6)“高级”

3、示例程序
新建一个cpp文件,然后编译!
#include <ntddk.h>
//提供一个Unload函数只是为了
VOID DriverUnload(PDRIVER_OBJECT driver)
{
// 但是实际上我们什么都不做,只打印一句话:
DbgPrint("first: Our driver is unloading…\r\n");
}
// DriverEntry,入口函数。相当于main。
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
#if DBG
// _asm int 3
#endif
// 这是我们的内核模块的入口,可以在这里写入我们想写的东西。
// 我在这里打印一句话。因为”Hello,world”常常被高手耻笑,所以
// 我们打印一点别的。
DbgPrint("first: Hello, my wdk dirver!");
// 设置一个卸载函数便于这个函数能退出。
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}