ndis中间驱动程序问题

maxwellzcc 2009-12-05 09:45:37
大家好,我想开发一个驱动程序,用来网络抓包。
打算使用已经有了的passthru例子。
从网上找到了passthru的扩展后的源码(可以过滤)。
现在的问题是,我想把收到的包存在硬盘上,哪位高手告诉我,在passthru中的哪个函数中增加代码,
另外写入硬盘的函数用什么?
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
老马何以识途 2009-12-09
  • 打赏
  • 举报
回复
PtReceive
PtReceivePacket
MPSend
MPSendPackets
写硬盘要开新线程,用ZwCreateFile、ZwWriteFile,但这个问题我自己都还没搞定。
iprotocolsec 2009-12-09
  • 打赏
  • 举报
回复
可以看一下winpcap的驱动实现。
1 NDIS中间驱动程序 2 1.1 NDIS中间驱动程序(NDIS Intermediate Drivers)概述 2 1.2 NDIS中间驱动程序的用途 4 1.3 NDIS中间驱动程序的开发环境 4 2 NDIS中间驱动程序的开发 4 2.1 可分页和可丢弃代码 4 2.2 共享资源的访问同步 5 2.3 中间驱动程序的DriverEntry函数 5 2.3.1 注册NDIS中间驱动程序 6 2.3.1.1 注册中间驱动程序的Miniport 6 2.3.1.2 注册中间驱动程序的协议 8 2.4 中间驱动程序的动态绑定 11 2.4.1 打开中间驱动程序下层的适配器 12 2.4.2 微端口(Miniport)初始化 12 2.4.3 中间驱动程序查询和设置操作 13 2.4.3.1 发布设置和查询请求 14 2.4.3.2 响应设置和查询请求 15 2.4.4 作为面向连接客户程序注册中间驱动程序 15 2.5 中间驱动程序数据包管理 17 2.5.1.1 重用数据包 18 2.6 中间驱动程序的限制 19 2.7 中间驱动程序接收数据 19 2.7.1 下边界面向无连接的中间驱动程序接收数据 19 2.7.1.1 在中间驱动程序中实现ProtocolReceivePacket处理程序 20 2.7.1.2 在中间驱动程序中实现ProtocolReceive处理程序 21 2.7.1.3 下边界面向无连接中间驱动程序接收OOB数据信息 22 2.7.2 下边界面向连接的中间驱动程序接收数据 22 2.7.2.1 在中间驱动程序中实现ProtocolCoReceivePacket处理程序 23 2.7.2.2 在下边界面向连接的中间驱动程序中接收OOB数据信息 23 2.7.3 向高层驱动程序指示接收数据包 23 2.8 通过中间驱动程序传输数据包 23 2.8.1 传递介质相关信息 25 2.9 处理中间驱动程序的PnP事件和PM事件 26 2.9.1 处理OID_PNP_XXX查询和设置 26 2.9.2 中间驱动程序ProtocolPnPEvent处理程序的实现 27 2.9.3 处理规定的电源请求 28 2.9.3.1 睡眠状态的电源设置请求 28 2.9.3.2 工作状态的电源设置请求 29 2.10 中间驱动程序复位操作 29 2.11 中间驱动程序拆除绑定操作 30 2.12 中间驱动程序状态指示 31 3 负载平衡和失效替换 31 3.1 关于LBFO 31 3.2 指定对LBFO的支持 32 3.3 在微端口驱动程序上实现LBFO 32 3.3.1 初始化微端口束 33 3.3.2 平衡微端口驱动程序的工作量 33 3.3.3 在主微端口失效后提升一个次微端口 34 4 安装网络组件 34 4.1 用于安装网络组件的组件和文件 34 4.2 创建网络INF文件 35 4.2.1 网络INFS文件名的约定 35 4.2.2 网络INF文件的版本节 35 4.2.3 网络INF文件的模型节 36 4.2.4 INF文件的DDInstall节 37 4.2.5 删除节 38 4.2.6 ControlFlags节 39 4.2.7 网络INF文件的add-registry-sections 39

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧