人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

随笔分类 -  Driver Studio

摘要:这是WinPcap的NPF驱动核心指南原文的翻译,英语水平有限,翻译得可能不是很准确。这个章节说明网络组包过滤(NPF)组件-WinPcap的核心部分。一般用户可能只对WinPcap的使用感兴趣,但不一定想了解它的组件结构。因此这些信息只要是提供给WinPcap的开发者和维护者,或是对驱动是如何运行有兴趣的人所参考。尤其是,对操作系统、网络和Win32核心编程、设备驱动开发比较熟悉的话对于阅读这个章节比较有帮助。NPF作为WinPcap组件的一部分,它向用户层提供了处理在网络上传输的数据包,对数据包进行捕获,发送和分析的能力。下面的段落将会阐述NPF同操作系统和它的基本结构的相互配合。一、NP 阅读全文
posted @ 2011-07-28 23:05 子坞 阅读(2389) 评论(7) 推荐(0)

摘要:DDK中自带的例子:C:\WINDDK\2600\src\network\ndis\passthru有些朋友通过建立工程(如vc)在此基础上扩展了passthru的功能,但是在我电脑上编译报错:--------------------Configuration: passthru_ex - Win32 Debug--------------------系统找不到指定的路径。Error executing c:\windows\system32\cmd.exe.passthru.sys - 1 error(s), 0 warning(s)我请教导师,他说是环境变量设置有问题,叫自己查。有了此思路 阅读全文
posted @ 2011-07-28 12:50 子坞 阅读(1722) 评论(0) 推荐(0)

摘要:前视缓冲区:lookaheadbuffer这个缓冲区是给协议一段Packet的内容,让协议来决定是否接受这个报文。考虑数据包的接收,如果我们只需要看见数据内容的前几个字节(如TCP头)就可以决定这个包是否是本协议所需要处理的,那么显然下层驱动就没有必要提交整个数据包,只提供一个包开始的几个字节就可以了。这个是有Miniport驱动来决定究竟那个lookaheadbuffer的大小的,这个缓冲区是从报文的 ip头开始的一段缓冲区,也有可能是包含了整个的 ip报文,这个时候lookaheadbuffersize=packesize了。如下面的代码:if (LookaheadBufferSize ! 阅读全文
posted @ 2011-07-27 17:39 子坞 阅读(857) 评论(0) 推荐(0)

摘要:这几天对NDIS的学习,基本思路是:首先熟悉理论知识→然后下载一个例子进行研究→最后例子自己模仿扩展→最最后尝试自己写一个新的。Passthru是微软NDIS自己写的一个框架驱动,NDIS开发者可以在此框架上进行扩展,做二次开发。NDIS提供一些基本操作函数,Passthru里的函数就是使用的这些基本函数做成的一个网络驱动。基于Passthru的扩展就是自己在此驱动的基础上在封装一次,比如说为MyPassthru,将NDIS里面的函数封装在自己自定义函数里,方便外界调用。最主要的函数就是NDIS里面的PtReceive或PtReceivePacket(负责网络封包的接收) ,MPSend或MP 阅读全文
posted @ 2011-07-26 10:32 子坞 阅读(3831) 评论(2) 推荐(0)

摘要:今天用DriverStudio向导生成一个基于NDIS的驱动程序,在开始编译的时候出现“ntstrsafe.lib”打不开,再然后出现“kndis5mp.lib”。解决办法:1、ntstrsafe.libdriverstudio产生的驱动工程都会要连接ntstrsafe.lib这个库,但实际上这个库并不存在,在Project的Settings里的Link项中去掉这个库,然后在工程中的sources文件里边,找到下面一行:TARGETLIBS=$(DDK_LIB_PATH)/ntstrsafe.lib $(DDK_LIB_PATH)/csq.lib,直接删除即可。有时候还会提示没有ntstrsa 阅读全文
posted @ 2011-07-23 23:27 子坞 阅读(1575) 评论(0) 推荐(0)