1、从微软官网上下载Windows Driver Kit Version 7.1.0(WDK7600)
链接地址如下:http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO
下载完成后直接安装.如“D:\Develop\WINDDK”
2、设定环境目录
选择“工具->选项->项目和解决方案->VC++目录”在右侧平台选择“win32”。
1)、“包含文件”中添加:
D:\Develop\WINDDK\7600.16385.0\inc\wdf\kmdf\1.9
D:\Develop\WINDDK\7600.16385.0\inc\api(注:此头文件要位于$(VCInstallDir)PlatformSDK\include前面,否则编译会出错)
D:\Develop\WINDDK\7600.16385.0\inc\crt
D:\Develop\WINDDK\7600.16385.0\inc\ddk
2)、库文件”中添加
D:\Develop\WINDDK\7600.16385.0\lib\wdf\kmdf\i386\1.9
D:\Develop\WINDDK\7600.16385.0\lib\wxp\i386
3、创建项目
选择“新建项目”中的“win32项目”,输入项目名称后点击“确定”,进入“win32应用程序向导”,选择“空项目”点击“完成”。
4、添加配置属性
点击“项目->属性”(或者按ALT+F7)进入项目属性页,点击“配置属性”,点击右上角的“配置管理器”,在“活动解决配置方案”中选择“新建”,弹出的窗口中输入自己解决配置方案名,我填的是“checked”,“从此处复制设置”中选“空白”,下面的钩打上,点击“确定”。
1)、选择“C/C++”:(注:要出现此项,需要现在工程中添加文件)
“常规”项:
“调试信息格式”:“C7 兼容(/Z7)”;
“警告等级”:“3级(/w3)”;
“将警告视为错误”:“是(/WX)”。
“优化”项:
“优化”:“禁用(/0d)”
“预处理器”项:
“预处理器定义”:WIN32=100;_X86_=1;DBG=1
“高级”项:
“调用约定”:__stdcall (/Gz)
“编译为”:可以改为“编译为 C 代码(/TC)”,这样就要求按C语言进行编译编写
2)、“连接器”项:
“常规”项:
“输出文件”:扩展名改为sys;
“启用增量连接”:“否(/INCREMENTAL:NO)”;
“附加库目录”:“C:\WINDDK\7600.16385.0\lib\wxp\i386”。
“输入”项:
“附加依赖项”:输入“ntoskrnl.lib $(NOINHERIT)”;
“忽略所有默认库”选“是(/NODEFAULTLIB)”;
“清单文件”项:
“生成清单”:“否”。
“调试”项:
“生成调试信息”:“是”。
“系统”项:
“子系统”:“本机(/SUBSYSTEM:NATIVE)”;
“堆栈保留大小”:“40000”;
“堆栈提交大小”:“1000”;
“驱动程序”:“驱动程序(/DRIVER)”。
“高级”项:
“入口点”:“DriverEntry”;
“目标计算机”:“MachineX86 (/MACHINE:X86)”
5.测试代码
#include
VOID DriverUnload(PDRIVER_OBJECT driver)
{
DbgPrint("first: Our driver is unloading…/r/n");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
DbgPrint("Hi,This is a test one.");
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
链接地址如下:http://download.microsoft.com/download/4/A/2/4A25C7D5-EFBE-4182-B6A9-AE6850409A78/GRMWDK_EN_7600_1.ISO
下载完成后直接安装.如“D:\Develop\WINDDK”
2、设定环境目录
选择“工具->选项->项目和解决方案->VC++目录”在右侧平台选择“win32”。
1)、“包含文件”中添加:
D:\Develop\WINDDK\7600.16385.0\inc\wdf\kmdf\1.9
D:\Develop\WINDDK\7600.16385.0\inc\api(注:此头文件要位于$(VCInstallDir)PlatformSDK\include前面,否则编译会出错)
D:\Develop\WINDDK\7600.16385.0\inc\crt
D:\Develop\WINDDK\7600.16385.0\inc\ddk
2)、库文件”中添加
D:\Develop\WINDDK\7600.16385.0\lib\wdf\kmdf\i386\1.9
D:\Develop\WINDDK\7600.16385.0\lib\wxp\i386
3、创建项目
选择“新建项目”中的“win32项目”,输入项目名称后点击“确定”,进入“win32应用程序向导”,选择“空项目”点击“完成”。
4、添加配置属性
点击“项目->属性”(或者按ALT+F7)进入项目属性页,点击“配置属性”,点击右上角的“配置管理器”,在“活动解决配置方案”中选择“新建”,弹出的窗口中输入自己解决配置方案名,我填的是“checked”,“从此处复制设置”中选“空白”,下面的钩打上,点击“确定”。
1)、选择“C/C++”:(注:要出现此项,需要现在工程中添加文件)
“常规”项:
“调试信息格式”:“C7 兼容(/Z7)”;
“警告等级”:“3级(/w3)”;
“将警告视为错误”:“是(/WX)”。
“优化”项:
“优化”:“禁用(/0d)”
“预处理器”项:
“预处理器定义”:WIN32=100;_X86_=1;DBG=1
“高级”项:
“调用约定”:__stdcall (/Gz)
“编译为”:可以改为“编译为 C 代码(/TC)”,这样就要求按C语言进行编译编写
2)、“连接器”项:
“常规”项:
“输出文件”:扩展名改为sys;
“启用增量连接”:“否(/INCREMENTAL:NO)”;
“附加库目录”:“C:\WINDDK\7600.16385.0\lib\wxp\i386”。
“输入”项:
“附加依赖项”:输入“ntoskrnl.lib $(NOINHERIT)”;
“忽略所有默认库”选“是(/NODEFAULTLIB)”;
“清单文件”项:
“生成清单”:“否”。
“调试”项:
“生成调试信息”:“是”。
“系统”项:
“子系统”:“本机(/SUBSYSTEM:NATIVE)”;
“堆栈保留大小”:“40000”;
“堆栈提交大小”:“1000”;
“驱动程序”:“驱动程序(/DRIVER)”。
“高级”项:
“入口点”:“DriverEntry”;
“目标计算机”:“MachineX86 (/MACHINE:X86)”
5.测试代码
#include
VOID DriverUnload(PDRIVER_OBJECT driver)
{
DbgPrint("first: Our driver is unloading…/r/n");
}
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path)
{
DbgPrint("Hi,This is a test one.");
driver->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}