【源码】winpcap驱动程序初始化

最近上班研究虚拟打印驱动,正好winpcap也跟win驱动相关,上周把书借回来,看了几章,今天顺便做个笔记。

一. DriverEntry函数的实现步骤

分配结构体NDIS_PROTOCOL_CHARACTERISTICS--->根据操作系统的版本,定义跳过环回数据包的正确标识--->对ProtocolChar结构体初始化置零---->向NDIS库注册协议驱动程序---->设置IRP派遣函数和卸载函数--->获取系统中可用网络适配器的信息---->给每个网络适配器创建一个设备对象。

winpcap\packetNtx\driver\packet.c中line 92 DriverEntry()函数中

调用NdisRegisterProtocol()向NDIS库注册ProcotolXXX函数。

line286 getAdaptersList()用于获取系统中可用网络适配器的信息,操作失败NPF会再调用getTcpBindings试图获得TCP/IP协议所绑定的设备信息。

line426 getTcpBindings()

line516 NPF_CreateDevice()用来与设备相关联的驱动对象

 

二.DriverUnload

line237:DriverObject->DriverUnload = NPF_Unload; 指向了line620  NPF_Unload()

 

PS: 揭密chap5提到的代码是packet.c,重点讲了三个函数实现,免得剧透,就不全写了。

后期结合网友和自己看的,再整理,看看是不是把这个整理成一部分,然后把注释过的packet.c分享下

 

参考资料:《网络分析技术揭秘

1.http://hi.baidu.com/zhanghuisky365/item/c574d5e3f36864f02b09a413

2.驱动程序启动时的入口点函数DriverEntry http://hi.baidu.com/sobiga3/item/eccde80dffcd896dd45a11fd

3.Windows驱动开发技术详解 http://blog.csdn.net/zacklin/article/details/7776254

4.http://blog.csdn.net/huang_shao_bin/article/details/5294077

http://wenku.baidu.com/view/18012173f242336c1eb95e2c.html###

转载于:https://my.oschina.net/wolflion/blog/92113

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值