阅读:4556回复:18
贴一个驱动编写库和一些驱动开发的技巧
前言
在工作中,经常发现同一类的驱动,总是大同小异的改好多次,只是为了在不同的产品里面使用,比如换个设备名,每次改动都要重新整理思路(记性不好,有时还得从头看看文档),出于对多次对脑细胞的拯救,所以花了点时间,整理了一下部分代码,形成了一套库。 功能 在这套库中,实现了以下功能: 1。CDeviceQueue, 设备读写队列,应用层向驱动发出读数据请求,如果设备里面有数据,则直接拷贝数据并完成请求,如果没有,则将读请求挂起,等待数据,同样,当有数据到达设备的时候,如果没有读请求,则将数据缓存。 2。虚拟网卡框架 3。协议驱动拦截框架(就是以前gjpland说的fake protocol原理的实现,功能就不用说了) 。。。 其他看driver.h吧,做着玩得东西,也没什么文档。 例子 1。虚拟网卡,位于samples\NetVMini目录下。 2。协议驱动拦截,位于samples\ipfwdrv目录下。 其他例子,有待补充。 编译 库是用vista ddk编译的,也就是WDK 6000 for Windows 2000 x86 Build Environment,包括例子,这个DDK我个人觉得是到目前为止用的最舒服的ddk了,没有vc都可以编译。 版权 有于源代码涉及到一些版权问题,所以不能公开,请大家谅解。 另外,用了以后产生什么不当后果并且造成了什么经济损失,本人也是不负责的。 闲话不多说,上附件了。 |
|
|
沙发#
发布于:2007-07-07 22:17
如果大家觉得库还有点用呢,真要来点赞扬,我还是虚荣的,如果觉得很垃圾,就不用往我脑袋上板砖了,我有自知之明。
|
|
板凳#
发布于:2007-07-07 22:29
在用ddk写sources文件,生成一个静态库的时候,如果很多个源文件,并且这些源文件可以归纳为几类,比如有些源文件是关于ndis的,有些是关于文件系统的,有些是内核hook的,ddk默认的sources文件貌似是假设所有的文件在同一个目录下,这样如果大量的文件在同一个目录下,看起来就不那么直观,经过对ddk的一些.mak文件的分析,找到一种方法,可以做到分到不同目录,通过在sources文件里面增加一条规则:
{子目录名\}.文件扩展名(如c,cpp等){$(O)\}.obj:: @type <<$(ECHO_RSP) $(ECHO_CXX_MSG) <<NOKEEP @$(CXX_COMPILER_NAME) @<<$(CL_RSP) -Fo"$(MAKEDIR)\$(O)/" $(USE_FC) $(CXX_COMPILER_FLAGS: = ) $< <<NOKEEP 就可以了,有些扩展名可能规则不一定一样,可以去ddk的mak文件里面找。 |
|
地板#
发布于:2007-07-07 22:31
附件在这
|
|
|
地下室#
发布于:2007-07-09 10:50
大哥,你太牛了啊
真的很需要像你这种为我们新手服务的大侠们 |
|
5楼#
发布于:2007-07-12 17:53
强人,谢谢啦!
|
|
|
6楼#
发布于:2007-07-17 16:20
不开源的东西怎么敢用啊(MS除外),不会获得推广. 搂住倒不如写个文章总结下编写库的过程和经验.
|
|
7楼#
发布于:2007-11-01 23:47
好人啊
|
|
8楼#
发布于:2008-03-02 00:26
不错,下个,以后备用
|
|
9楼#
发布于:2008-03-17 17:49
lib比pe文件更好F5
|
|
|
10楼#
发布于:2008-03-21 08:36
学习下
|
|
11楼#
发布于:2008-03-28 23:07
谢谢提供
|
|
12楼#
发布于:2008-12-22 14:05
引用第6楼GoodOnline于2007-07-17 16:20发表的 : 赞同6楼的这位同志。 |
|
13楼#
发布于:2009-01-14 09:18
不开源,
确实不敢用, 哈哈, LZ还是开源吧,期待中.... |
|
|
14楼#
发布于:2009-03-14 16:07
写一个dir文件可以解决你说的文件必须在一个目录的问题
|
|
15楼#
发布于:2009-05-06 10:57
谢谢楼主!
我用vs2008+ddkwizard+win2003DDK开发驱动,用你说的那个规则可以把源文件放在不同的目录, 但是如果采用vs2008+ddkwizard+vistaWdk,用你说的那个规则,则会出现编译出错。有没有好的方法 解决采用vs2008+ddkwizard+vistaWdk,把源文件组织在不同目录,又可以实现编译呢? |
|
16楼#
发布于:2009-05-12 23:53
感谢楼主的分享
|
|
17楼#
发布于:2009-05-13 14:57
谢谢楼主的分享!
|
|
|
18楼#
发布于:2010-01-06 20:32
顶一下!都不知道该怎么回复了!
|
|