使用VC++编译驱动程序

 

1,用vc新建工程。在"project"选项卡中,选择win32 Application,选择一个空的工程。
 2,将两个源文件Driver.h和Driver.cpp拷贝到工程目录中,并添加到工程中。
 3,增加新的编译版本,去掉Debug 和Release 版本,增加一个Win32 Driver Check Edition

4,修改工程属性。选择"Project|Setting",或者直接按下Alt+F7键,弹出"Project Settings"

     在对话框中,选择“General”选项卡。将Intermediate files和Output files都改为  MyDriver_Check.注:此处文件夹名称可根据自己需要修改与步骤六同步修改。
 5,选择C/C++选项卡,将原有的Project Options 内容全部删除替换成如下内容:

    /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D WINVER=0x500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c

6,选择Link选项卡,将原有的Project Options 内容全部删除,替换成如下内容:

   NT驱动:

ntoskrnl.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078

WDM驱动:

wdm.lib /nologo /base:"0x10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /map:"MyDriver_Check/HelloDDK.map" /debug /machine:I386 /nodefaultlib /out:"MyDriver_Check/HelloDDK.sys" /pdbtype:sept /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078

注:在本步骤中“MyDriver_Check/HelloDDK”字样代表目录及文件名,目录名为步骤二中的目录名称。文件名已经为自己想要生成驱动文件名称。

7。修改VC的lib目录和include目录。

在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加
    D:\WINDDK\3790.1830\INC\W2K 和 D:\WINDDK\3790.1830\INC\DDK\W2K
并将这两个目录置于最上。在"Show directories for "下拉菜单中选择“Library files”菜单,添加目录D:\WINDDK\3790.1830\LIB\W2K\I386并置于最上端。
 8,按照书上所述的步骤做完后编译,会报错如下:
    fatal error C1083: Cannot open include file: 'specstrings.h': No such file or directory
原因是include目录设置没完整,加入如下目录既可以正确编译
    D:\WINDDK\3790.1830\INC\CRT
最后来安装此驱动。

NT驱动可以使用Driver Studio中的Driver Monitor来完成,WDM驱动可以使用其中的EzdriverInstaller来安装,在安装WDM驱动时,建议打开Driver Monitor来查看LOG信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值