欢迎来到天天文库
浏览记录
ID:22041009
大小:66.00 KB
页数:8页
时间:2018-10-26
《浅论windowsnt环境下fddi网卡驱动程序设计(2) 》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅论windowsnt环境下fddi网卡驱动程序设计(2)第三阶段:获取注册库中各种控制信息,如用户定义的非页内存大小;第四阶段:初始化注册库registrymachine下system和hardinitializeiniport类X卡驱动程序注册。ndis建立它需要记录的驱动程序状态信息,同时返回ndisiniport_characteristics属性结构,主要记录ndis版本号和驱动程序支持的miniport***函数的进口点,然后调用ndismregisterminiport函数实现驱动程序的整体注册。以yhfddi为
2、例所要注册的属性结构的内容大致如下:ndis_miniport_characteristicsyhfddichar;(ndis_miniport_characteristics这个结构将在第三章先容)yhfddichar.majorndisversion=yhfddi_ndis_major_version;yhfddichar.minorndisversion=yhfddi_ndis_minor_version;这两个属性决定驱动程序是ndis的哪个版本所支持,我们所用的是ndis3.0yhfddichar.disableinte
3、rrupthandler=yhfddidisableinterrupt;yhfddichar.enableinterrupthandler=yhfddienableinterrupt;yhfddichar.isrhandle=yhfddiinterruptservice;yhfddichar.handleinterrupthandler=yhfddihandleinterrupt;以上四项属性是中断处理所需的上边沿服务函数的进口点(句柄)。fddiX卡驱动程序需要有smt站治理功能,而smt是以中断处理方式进行的,故这四项属性在f
4、ddiX卡驱动程序中是很重要的。yhfddichar.initializehandler=yhfddiinitialize;此项注册的是驱动程序的初始化函数句柄。yhfddichar.queryinformationhandler=yhfddiqueryinformation;yhfddichar.setinformationhandler=yhfddisetinformation;这两项注册的是参数查询和设置函数的句柄。yhfddichar.sendhanler=yhfddisend;yhfddichar.transferdat
5、ahandler=yhfdditransferdata;主要提供数据发送和接收函数句柄。 yhfddichar.resethandler=yhfddireset;此项注册X卡软硬件重置函数句柄。yhfddichar.halthandler=yhfddihalt;此项注册X卡驱动程序挂起函数句柄。yhfddichar.checkforhandler=null;yhfddichar.reconfigurehandler=null;这两个上边沿服务函数是fddiX卡驱动程序所不提供的,故置为null。填好这些结构以后,调用以下函数实现
6、驱动程序的注册:ndismregisterminiport(yhfddip;yhfddichar,sizeof(yhfddichar));其中yhfddiinitializeregisterminiport不能返回ndis_status_success,必须在退出driverentry之前开释已经分配的资源(如yhfddiinateiniportqueryinformation查询参数和通过miniportset程序的进口点,initializeiniport类X卡驱动程序注册。ndis建立它需要记录的驱动程序状态信息,同时返回n
7、disiniport_characteristics属性结构,主要记录ndis版本号和驱动程序支持的miniport***函数的进口点,然后调用ndismregisterminiport函数实现驱动程序的整体注册。以yhfddi为例所要注册的属性结构的内容大致如下:ndis_miniport_characteristicsyhfddichar;(ndis_miniport_characteristics这个结构将在第三章先容)yhfddichar.majorndisversion=yhfddi_ndis_major_version
8、;yhfddichar.minorndisversion=yhfddi_ndis_minor_version;这两个属性决定驱动程序是ndis的哪个版本所支持,我们所用的是ndis3.0yhfddichar.disableinterrupthand
此文档下载收益归作者所有