WindowsNDIS协议驱动程序设计.ppt

实习内容 NDIS协议驱动程序 数据包的解析 实习环境 实习的意义与要求 NDIS协议驱动程序 数据接收部分的实现—— read.c 当NIC从网络上接收到数据并通知NDIS时,作为已经在protocolChar结构中注册过的函数,NDIS将调用PacketReceiveIndicate或PacketReceivePacket二者之一作为接收处理函数将NIC从网络上接收到的数据缓存起来。其中,PacketReceiveIndicate作为协议驱动程序的ProtocolReceive函数是必须要提供的,而PacketReceivePacket作为协议驱动程序的ProtocolReceivePacket函数提供与否是可选的。二者的主要区别在于当NIC支持一次接收多个数据包时使用ProtocolReceivePacket更富效率。 NDIS协议驱动程序 数据接收部分的实现—— read.c 在进入函数PacketReceiveIndicate之后,首先由ProtocolBindingContext这一参数得到保存了诸多重要数据的open结构,这里维护着packet驱动程序的运行时状态信息。 在这之后的IoIncrement用于对设备的使用情况计数并负责同步。 接下来再作一个简单的判断,我们只关心和处理以太网的数据包,如果不是的话则直接返回。 PacketReceiveIndicate

文档评论(0)

1亿VIP精品文档

相关文档