当前位置: 首页 > news >正文

NDIS 6.0 Filter Driver 开发资料- 01

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

NDIS 6.0 Filter Driver(>下载地址<)是一个NDIS轻量级的过滤驱动(NDIS Lightweight filter driver),用来替换NDIS 5示例中间层驱动中的Passthru,适用的操作系统是Windows 8 和Windows Server 2012。

微软新出的WDK 8包含了NDIS 6.0的开发包,与Microsoft Visual Studio Ultimate 2012完全整合,你可以使用Visual Studio开发环境编译驱动,或者使用 Windows Build Utility(MSBuild) 。如果开发Windows 8, Windows 7或者 Windows Vista的驱动程序,你可以使用Visual Studio或MSBuild进行编译;如果开发Windows XP的驱动程序,你只能使用WDK 7配套的MSBuild进行编译。

关于编译部分,以后再详细写。

Ndislwf驱动分析:

1. DriverEntry中,ndislwf驱动注册为NDIS 6过滤驱动。

2. 之后,NDIS为每一个底层的NDIS适配器配置连接,调用Ndislwf FilterAttach 句柄,

3. 在FilterAttach句柄的上下文环境中,Filter驱动调用NdisFAttribute来注册Filter模块,Filter驱动可以使用NdisOpenConfigurationEx来读取自己的设置,并调用NdisXXX函数。

4. FilterAttach成功返回后,NDIS使用FilterRestart句柄重启Filter,FilterRestart准备接受、发送数据的句柄。重启成功后,filter驱动应该能够启用发送、接收进程。

5. 如果必要,Ndislwf过滤驱动发送或者接收的数据包都会重新打包并发送给NDIS,交付给底层的NDIS驱动。

6. 所有发给底层NDIS驱动的数据都转发给Ndislwf过滤驱动。

7. NDIS calls FilterPause handler when NDIS needs to detach the filter from the stack or there is some configuration changes in the stack. In processing the pause request from NDIS, the Ndislwf driver waits for all its own outstanding requests to be completed before it completes the pause request.
8. NDIS calls the Ndislwf driver’s FilterDetach entry point when NDIS needs to detach a filter module from NDIS stack. FilterDetach handler should free all the memory allocation done in FilterAttach, and undo the operations it did in FilterAttach Handler.


一些资料:

Passthru例程说明_licyh:http://wenku.baidu.com/view/cc3f57343968011ca3009111.html

NDIS 中间层驱动程序(IMD)开发人员指南ndis_devguide:http://wenku.baidu.com/view/55a10838376baf1ffc4fad6b.html

驱动开发资料汇总:

http://yexin218.iteye.com/category/73148

http://yexin218.iteye.com/blog/557454


转载于:https://my.oschina.net/u/1054556/blog/137804

相关文章:

  • 《大企业云桌面运维实战》v1.15
  • drupal采集模块
  • diff和patch工具的使用
  • C++虚函数、虚函数的作用和使用方法
  • wmi
  • 滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(4月5日)...
  • Linq to Xml
  • 折半插入排序
  • 2013上半年总结于展望
  • 统一异常处理
  • CSS3
  • ASCII对照表
  • 位运算的巧妙应用
  • JVM实用参数(七)CMS收集器
  • 用jQuery实现鼠标在table上移动进行样式变化
  • 【EOS】Cleos基础
  • 2017-08-04 前端日报
  • 2017届校招提前批面试回顾
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CAP 一致性协议及应用解析
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • docker python 配置
  • docker-consul
  • ES6 学习笔记(一)let,const和解构赋值
  • Kibana配置logstash,报表一体化
  • spring cloud gateway 源码解析(4)跨域问题处理
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 近期前端发展计划
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 力扣(LeetCode)56
  • 盘点那些不知名却常用的 Git 操作
  • 如何利用MongoDB打造TOP榜小程序
  • 如何实现 font-size 的响应式
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 手写一个CommonJS打包工具(一)
  • 物联网链路协议
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #Linux(权限管理)
  • #WEB前端(HTML属性)
  • %check_box% in rails :coditions={:has_many , :through}
  • (10)STL算法之搜索(二) 二分查找
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (理论篇)httpmoudle和httphandler一览
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • ***测试-HTTP方法
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Framework .NET Core与 .NET 的区别