欢迎来到天天文库
浏览记录
ID:36448288
大小:28.50 KB
页数:7页
时间:2019-05-10
《高中信息技术教学论文windowsnt环境下fddi网卡驱动程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、windowsnt环境下fddi网卡驱动程序设计(2)第三阶段:获取注册库中各种控制信息,如用户定义的非页内存大小;第四阶段:初始化注册库registrymachine下system和hardware并创建currentcontrolset,为装入相关硬件设备驱动程序作准备;第五阶段:装入基本核心驱动程序;第六阶段:释放一些已经完成使命的装入初始数据块;第七阶段:进一步初始化注册库,以便有些依赖于基本核心驱动程序的上层驱动程序能顺利装入;第八阶段:服务控制器装入应该由该服务控制器装入的各种驱动程序。§2.2.2fddi网卡驱动程序的加载过程在windowsnt启动的第五个阶段,
2、将加载核心驱动程序。而对于ndis网卡驱动程序是在ndis接口(ndis.sys)加载后调入运行,向ndis7用心爱心专心wrapper注册、初始化、查询设置参数等。windowsnt启动时,相应的实体如nt的服务控制器根据注册库中yhfddi驱动程序的配置注册信息,初始化ndiswrapper,并装入相应的驱动程序,生成驱动程序管理块结构,申请内存以保存各种信息,向ndiswrapper注册驱动程序。初始化和注册完毕后,再由服务控制器读取注册库中相应的链接信息。在ndiswrapper和yhfddi驱动程序初始化和注册成功后,ndiswrapper根据系统相应的注册信息,加入和y
3、hfddi驱动程序所对应的fddi网卡,同时读入网卡的注册信息,并进行网卡注册和网卡初始化。在以上过程成功后,wrapper将查询和设置驱动程序的各种参数,了解驱动程序对哪些操作支持,决定对上层驱动程序的支持范围。第三节fddi网卡驱动程序的注册driverentry函数是windowsnt7用心爱心专心ddk规定的核心驱动程序的入口点,wrapper识别到入口点后,调入驱动程序,在driverentry函数内完成两个基本注册任务:调用ndisminitializewapper函数向ndis接口报告驱动程序将以miniport类网卡驱动程序注册。ndis建立它需要记录的驱动程序状态
4、信息,同时返回ndiswrapperhandle,驱动程序保存这个句柄,以利后来调用ndisxxxconfiguration和initialization等函数。填写ndisxx_miniport_characteristics属性结构,主要记录ndis版本号和驱动程序支持的miniportxxx函数的入口点,然后调用ndismregisterminiport函数实现驱动程序的整体注册。以yhfddi为例所要注册的属性结构的内容大致如下:ndis_miniport_characteristics7用心爱心专心yhfddichar;(ndis_miniport_characteris
5、tics这个结构将在第三章介绍)yhfddichar.majorndisversion=yhfddi_ndis_major_version;yhfddichar.minorndisversion=yhfddi_ndis_minor_version;这两个属性决定驱动程序是ndis的哪个版本所支持,我们所用的是ndis3.0yhfddichar.disableinterrupthandler=yhfddidisableinterrupt;yhfddichar.enableinterrupthandler=yhfddienableinterrupt;yhfddichar.isrhand
6、le=yhfddiinterruptservice;yhfddichar.handleinterrupthandler=yhfddihandleinterrupt;以上四项属性是中断处理所需的上边缘服务函数的入口点(句柄)。fddi网卡驱动程序需要有smt站管理功能,而smt是以中断处理方式进行的,故这四项属性在fddi网卡驱动程序中是很重要的。yhfddichar.initializehandler=yhfddiinitialize;此项注册的是驱动程序的初始化函数句柄。yhfddichar.queryinformationhandler=7用心爱心专心yhfddiqueryin
7、formation;yhfddichar.setinformationhandler=yhfddisetinformation;这两项注册的是参数查询和设置函数的句柄。yhfddichar.sendhanler=yhfddisend;yhfddichar.transferdatahandler=yhfdditransferdata;主要提供数据发送和接收函数句柄。 yhfddichar.resethandler=yhfddireset;此项注册网卡软硬件重置函数句柄
此文档下载收益归作者所有