NDIS中间层驱动学习小记

本文记录了作者在大二暑假期间学习NDIS中间层驱动的过程,从NDIS驱动的作用、层次结构到实际开发中遇到的问题,如NDISMRegisterDevice函数参数错误。作者计划进一步研究Windows内核编程,同时分享了个人的学习计划和生活感悟。
摘要由CSDN通过智能技术生成

大二暑假,据说拥有驱动开发基础,boss给出了个网络过滤驱动的题目,刚开始以为会是很简单的,就一直在TDI层上着手,后来才发现TDI在xp之后就有可能不支持了,所以在了解其处理流程之后果断专项NDIS中间层协议驱动。

NDIS横跨传输层/网络层/数据链路层,NDIS负责上下层驱动程序间服务原语与驱动程序入口之间的转换,分派消息通知。NDIS提供三个层次的接口:网络接口卡驱动程序(NIC)、中间层驱动程序(MD)和协议驱动程序,中间层协议驱动(MD)是介于NDIS协议驱动程序与小端口驱动程序(网络接口卡驱动程序NIC)之间的驱动。

MD:  中间层协议驱动是网卡驱动和协议驱动之间的桥梁。插入自己的中间层驱动,从而可以截获网络封包,并重新进行封包、加密、网络地址转换、过滤和认证等操作。可以处理更低级的操作、功能强大,但是编程接口复杂,自动化安装困难,容易导致网络瘫痪。

 NIC: 下端直接控制网络接口卡硬件,上端提供接口,处理初始化网卡、停止网卡、发送和接受数据包。

 PD:  接收来自网卡或中间驱动程序的信息。

 windows内核网络驱动的总体格局(从下至上):小端口驱动实现了对网卡硬件的驱动,包括对其中各个寄存器的访问、中断处理等。协议驱动将链路层、网络层和传输层集合在一起的一个驱动模块。上层是传输驱动界面(TDI)。TDI上层是用来实现Socket机制的AFD驱动模块。

之后要补上学习的是(windows内核情景分析第十章 第一小节)

今天遇到的bug,NdisMRegisterDevice函数的一个参数声明错误

NDIS_ST
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值