欢迎来到天天文库
浏览记录
ID:25341796
大小:64.50 KB
页数:9页
时间:2018-11-19
《windowsnt环境下fddi网卡驱动程序设计(2)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、windowsnt环境下fddi网卡驱动程序设计(2)achine下system和hardinitializeiniport类网卡驱动程序注册。ndis建立它需要记录的驱动程序状态信息,同时返回ndisiniport_characteristics属性结构,主要记录ndis版本号和驱动程序支持的miniportxxx函数的入口点,然后调用ndismregisterminiport函数实现驱动程序的整体注册。以yhfddi为例所要注册的属性结构的内容大致如下:ndis_miniport_characteristicsyhfddichar;(ndis_miniport_c
2、haracteristics这个结构将在第三章介绍)yhfddichar.majorndisversion=yhfddi_ndis_major_version;yhfddichar.minorndisversion=yhfddi_ndis_minor_version;这两个属性决定驱动程序是ndis的哪个版本所支持,我们所用的是ndis3.0yhfddichar.disablEinterrupthandler=yhfddidisableinterrupt;yhfddichar.enableinterrupthandler=yhfddienableinterrupt;y
3、hfddichar.isrhandle=yhfddiinterruptservice;yhfddichar.handleinterrupthandler=yhfddihandleinterrupt;以上四项属性是中断处理所需的上边缘服务函数的入口点(句柄)。fddi网卡驱动程序需要有smt站管理功能,而smt是以中断处理方式进行的,故这四项属性在fddi网卡驱动程序中是很重要的。yhfddichar.initializehandler=yhfddiinitialize;此项注册的是驱动程序的初始化函数句柄。yhfddichar.queryinformationhand
4、ler=yhfddiqueryinformation;yhfddichar.setinformationhandler=yhfddisetinformation;这两项注册的是参数查询和设置函数的句柄。yhfddichar.sendhanler=yhfddisend;yhfddichar.transferdatahandler=yhfdditransferdata;主要提供数据发送和接收函数句柄。 yhfddichar.resethandler=yhfddireset;此项注册网卡软硬件重置函数句柄。yhfddichar.halthandler=yhfddihalt
5、;此项注册网卡驱动程序挂起函数句柄。yhfddichar.checkforhandler=null;yhfddichar.reconfigurehandler=null;这两个上边缘服务函数是fddi网卡驱动程序所不提供的,故置为null。填好这些结构以后,调用以下函数实现驱动程序的注册:ndismregisterminiport(yhfddip;yhfddichar,sizeof(yhfddichar));其中yhfddiinitializeregisterminiport不能返回ndis_status_success,必须在退出driverentry之前释放已经分
6、配的资源(如yhfddiinateiniportqueryinformation查询参数和通过miniportsetinformation设置参数。oid也可被分为操作特性(如多目地址表长度参数)和统计参数(如广播包接收)。最后oid可分为必须的和可选的两种。oid的前三个字节表明oid的不同类别,而最后一个字节确定这一类别内特定的信息管理对象。针对于fddi网卡,被查询的oid的第一个字节为0x03。而ndis所查询的介质相关参数为:0x03010104oid_fddi_long_max_list_size0x03010108oid_fddi_short_max_l
7、ist_size0x03010102oid_fddi_long_current_addr0x03010106oid_fddi_short_current_addrtcp/ip传输驱动程序所要查询的fddioid为:0x03010102oid_fddi_long_current_addr0x03010103oid_fddi_long_multicast_list0x03010107oid_fddi_short_multicast_list通过以上两阶段的查询,ndis和tcp/ip驱动程序就分别了解了网卡驱动程序对其的支持,从而进行相应的捆绑,以便数据
此文档下载收益归作者所有