NDIS协议驱动学习一——协议驱动架构

以下是《寒江独钓》NDIS相关章节的学习笔记

协议驱动架构

1.以太网包和协议驱动

1.1以太网包结构

左边是低地址,右边是高地址

传输层发送TCP/UDP包 然后在网络层再加上IP信息封装成IP包,协议又把IP包封装成以太网包发送出去,这些操作都是协议驱动做到的。但是协议驱动难以干预其他应用程序接受或者发送包,所以一般不用于防火墙。

1.2 NDIS网络驱动

NDIS是NetWork Driver Interface Specification(网卡驱动接口标准)的简写,从名字上可以看出这个驱动是一组定义好的函数接口的集合,厂商开发的时候只需要调用相关的API完成功能即可。

 NDIS网络驱动有3种,分别是:协议驱动、小端口驱动和中间层驱动。

1.3NDIS协议驱动编写步骤

1.在DriverEntry中填写协议特征(实际上就是协议的回调函数列表)

2.在DriverEntry中使用内核API函数NdisRegisterProtocolDriver,把自己注册成协议驱动

3.系统会对每个实际存在的网卡实例,调用本协议驱动在协议特征集合中提供的一个回调函数。

4.发生各种事件时(比如网卡接收到一个新的数据包),特征中的某个函数也会被调用,协议的开发者实现这些函数,就可以在其中决定如何处理接收到的数据包了。

5.当应用层试图发出一个以太网包时,可以打开这个协议并发出请求(socket或者其他设备接口)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值