微过虑驱动实现问题总结

在用微过虑驱动实现文件系统的过滤时应该注意以下一些问题:

1、ddk的安装选择。我安装的是ddk3790.1830这个版本,一开始写一些驱动时并没有什么问题,可是在实现文件系统方面的过滤时,发现很多函数根本无法识别,经过研究发现这个版本并没有关于文件系统过滤这个模块,于是重新安装了一个6001.18002版本的,问题得到解决。

 

2、写微过滤驱动时,在编译过程中总是报错,对于以flt开头的函数都报错link 2109,查了一下是缺少fltmgr.lib这个库。一开始是用pragma comment(lib,"fltMgr.lib")来实现的,但是重新编译时发现这个问题依然没有解决,从编译的输出结果来看,fltmgr这个库并没有被导进去。研究了很久最后在师兄的帮助下发现只有在source中添加

          TARGETLIBS= $(TARGETLIBS) /

             $(IFSKIT_LIB_PATH)/fltMgr.lib

这两行代码才能真正实现库的导入。

 

3、在动态调试过程中,程序中是在FltRegisterFilter这个函数中注册失败。一开始以为是由于回调函数的问题。最后用了wdk提供的nullfilter没有回调函数的驱动进行编译调试,结果依然出现注册失败这个问题。为了验证注册失败不是由于我系统的环境因素,于是我又将其拷贝到其他人的电脑中,结果又出现了上述问题。在和别人的探讨中,终于发现原来是漏了一个inf的安装文件。对于微过滤驱动,它和一般的驱动不同,在加载前必须有一份安装文件(具体见下面代码,对于以后不同的微过滤驱动,只需要修改里面的名称即可)

 

4、用cmd进行编译。对于wdk的提供的源代码,如果想直接编译的话,可以考虑cmd命令行来实现。

   必须有ddkbuild.bat和ddkbuild.cmd这两个文件:

   切换到ddkbuild.cmd所在的位置,然后键入:

  : ddkbuild.cmd   -WXP chk +驱动所在的路径

  (对于具体用法,直接键入ddkbuild.cmd可以查看具体使用方法)

6、vs编译。如果想用vs来编译的话,必须配置好环境,具体见前面实现方式。用vs创建一个新的工程时要注意创建时的选项,对于不同系统要选不同的平台,否则出错。另外,创建c或者cpp文件也可以在下一个选项中设置。对于用vs生成的微过滤驱动,不会自动生成inf安装文件,所以要自己创建,可以参照下面代码,仅仅修改其中的驱动名即可。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值