驱动编程之终极躲藏文件驱动技术[网络技术]
本文“驱动编程之终极躲藏文件驱动技术[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
关于驱动的编程资料老是很少,文件驱动也是这样.主要资料是MSDN上Windows Driver Kit: Installable File System Drivers的介绍,
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IFSK_d/hh/IFSK_d/fsfiltdrvhdr_74bd027c-19ed-4137-81e5-2fca622fda09.xml.asp
.主要资料就是这个了,说得还算可以,固然细节不太具体,但做文件驱动的话,这个是必须看的.其他的资料的话还有《Windows NT File System Internals, A Developer's Guide》
据说这是关于文件驱动编程的唯一图书,不过年代好久了.电子书在网上可以找的到,不过我看了一下,讲的并不比MSDN上面的清楚,所以我也没怎么看这个.网站的话有一个
驱动程序开辟网技术社区 -> 文件系统(过滤)驱动程序开辟
http://bbs.zndev.com/thread.php?fid-39.html 上面有认谈论这方面的知识,也有人发了例子.也有参考资料
不过也都是从MSDN上面翻译下来的.
编程工具:
Windows Driver Kit----Windows Server 2003 with Service Pack 1 (SP1)
这个可以到微软的主页上下载.WDK有很多个版本,并非每个都可以用来编写File System Minifilter Drivers(文件驱动有两种,这个是对比新的,
MSDN上说这个对比简单,所以我就用这个了^_^).我是在http://connect.microsoft.com/上面注册参与他的Beta Testing the Windows Driver Kit.从那边
下载的最新的Windows Driver Kit,下载下来有2G多.有的版本不能写这种新的文件驱动的,那就只能写老的那种了,不过仿佛那个更复杂哟.
本来File System Minifilter Drivers就是微软为了简化文件驱动编程而新增添的.我水平不够就用这个了!!
学习历程:
Windows Driver Kit 安装完之后,SRC目录下有很多例子,关于filesys的有好多个,minifilter的几个例子如
filespy,scanner,swapbuffer等几个例子都很不错,都要看一下.自己看一下这些驱动编程的文件构造,*.inf文件
是安装定义的.安装好Windows Driver Kit后,启动在开始菜单里的几个成立驱动的快速方法(我用 free xp emvironment 版本的)
利用CD号令切换 到这些 例子的目录下,输入build -cZg便可以编译生成 驱动文件*.sys文件了,右击呼应的*.inf文件,挑选Install,便可以
把这些驱动安装系统中去了.
inf文件中StartType可以按照需求来设置.
StartType 可认为以下值.
;SERVICE_AUTO_START (0x00000002) 设置为 SERVICE_AUTO_START时,安全情势下不会自动加载
; SERVICE_BOOT_START (0x00000000) 在系统安全情势下启动时 驱动也会自动加载
; 利用 SERVICE_DEMAND_START (0x00000003) 则驱动不会自动加载
假如是采取SERVICE_DEMAND_START的话,还要在号令提醒行中 利用 “fltmc load 你的驱动名字” 才能真正载入minifile驱动.其他两个值的话,系统启动时会自动加载,
当然也可以利用 fltmc load 来加载了.呼应的卸载号令是 “fltmc unload 你的驱动名字”.
假如你在程序中利用了 Dbgprint 函数了的话,可以利用DbgView 工具来查看信息,可以看到你写的驱动已经在工作了,大概直接在号令提醒行下输入fltmc 号令,也可以看到哪些号令加载了.利用Dbgprint 函数和DbgView 工具也是一个非常重要的调试驱动办法.我没有装其他的调试工具,只能用这个来做调试程序了,驱动的调试很难啊!
编程简单介绍:
驱动进口函数DriverEntry: 和C中的Winmain 函数作用差不多.在这个函数中要注册filter 和启动fltter.
NTSTATUS
DriverEntry (
__in PDRIVER_OBJECT DriverObject,
__in PUNICODE_STRING RegistryPath
)
/*++
Routine Description:
This is the initialization routine for this miniFilter driver. This
以上是“驱动编程之终极躲藏文件驱动技术[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |