- 相關(guān)推薦
windowsnt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)(2)
第五階段:裝入基本核心驅(qū)動(dòng)程序;
第六階段:釋放一些已經(jīng)完成使命的裝入初始數(shù)據(jù)塊;
第七階段:進(jìn)一步初始化注冊庫,以便有些依賴于基本核心驅(qū)動(dòng)程序的上層驅(qū)動(dòng)程序能順利裝入;
第八階段:服務(wù)控制器裝入應(yīng)該由該服務(wù)控制器裝入的各種驅(qū)動(dòng)程序。
§2.2.2 fddi網(wǎng)卡驅(qū)動(dòng)程序的加載過程
在windows nt啟動(dòng)的第五個(gè)階段,將加載核心驅(qū)動(dòng)程序。而對于ndis網(wǎng)卡驅(qū)動(dòng)程序是在ndis接口(ndis.sys)加載后調(diào)入運(yùn)行,向ndis wrapper注冊、初始化、查詢設(shè)置參數(shù)等。
windows nt啟動(dòng)時(shí),相應(yīng)的實(shí)體如nt的服務(wù)控制器根據(jù)注冊庫中yhfddi驅(qū)動(dòng)程序的配置注冊信息,初始化ndis wrapper,并裝入相應(yīng)的驅(qū)動(dòng)程序,生成驅(qū)動(dòng)程序管理塊結(jié)構(gòu),申請內(nèi)存以保存各種信息,向ndis wrapper注冊驅(qū)動(dòng)程序。初始化和注冊完畢后,再由服務(wù)控制器讀取注冊庫中相應(yīng)的鏈接信息。
在ndis wrapper和yhfddi驅(qū)動(dòng)程序初始化和注冊成功后,ndis wrapper根據(jù)系統(tǒng)相應(yīng)的注冊信息,加入和yhfddi驅(qū)動(dòng)程序所對應(yīng)的fddi網(wǎng)卡,同時(shí)讀入網(wǎng)卡的注冊信息,并進(jìn)行網(wǎng)卡注冊和網(wǎng)卡初始化。
在以上過程成功后,wrapper將查詢和設(shè)置驅(qū)動(dòng)程序的各種參數(shù),了解驅(qū)動(dòng)程序?qū)δ男┎僮髦С郑瑳Q定對上層驅(qū)動(dòng)程序的支持范圍。
第三節(jié)fddi網(wǎng)卡驅(qū)動(dòng)程序的注冊
driverentry函數(shù)是windows nt ddk規(guī)定的核心驅(qū)動(dòng)程序的入口點(diǎn),wrapper識別到入口點(diǎn)后,調(diào)入驅(qū)動(dòng)程序,在driverentry函數(shù)內(nèi)完成兩個(gè)基本注冊任務(wù):
調(diào)用ndisminitializewapper函數(shù)向ndis接口報(bào)告驅(qū)動(dòng)程序?qū)⒁詍iniport類網(wǎng)卡驅(qū)動(dòng)程序注冊。ndis建立它需要記錄的驅(qū)動(dòng)程序狀態(tài)信息,同時(shí)返回ndiswrapperhandle,驅(qū)動(dòng)程序保存這個(gè)句柄,以利后來調(diào)用ndisxxxconfiguration和initialization等函數(shù)。
填寫ndisxx_miniport_characteristics屬性結(jié)構(gòu),主要記錄ndis版本號和驅(qū)動(dòng)程序支持的miniportxxx函數(shù)的入口點(diǎn),然后調(diào)用ndismregisterminiport函數(shù)實(shí)現(xiàn)驅(qū)動(dòng)程序的整體注冊。
以yhfddi為例所要注冊的屬性結(jié)構(gòu)的內(nèi)容大致如下:
ndis_miniport_characteristics yhfddichar;
(ndis_miniport_characteristics這個(gè)結(jié)構(gòu)將在第三章介紹)
yhfddichar.majorndisversion=yhfddi_ndis_major_version;
yhfddichar.minorndisversion=yhfddi_ndis_minor_version;
這兩個(gè)屬性決定驅(qū)動(dòng)程序是ndis的哪個(gè)版本所支持,我們所用的是ndis3.0
yhfddichar.disableinterrupthandler=yhfddidisableinterrupt;
yhfddichar.enableinterrupthandler=yhfddienableinterrupt;
yhfddichar.isrhandle=yhfddiinterruptservice;
yhfddichar.handleinterrupthandler=yhfddihandleinterrupt;
以上四項(xiàng)屬性是中斷處理所需的上邊緣服務(wù)函數(shù)的入口點(diǎn)(句柄)。fddi網(wǎng)卡驅(qū)動(dòng)程序需要有smt站管理功能,而smt是以中斷處理方式進(jìn)行的,故這四項(xiàng)屬性在fddi網(wǎng)卡驅(qū)動(dòng)程序中是很重要的。
yhfddichar.initializehandler=yhfddiinitialize;
此項(xiàng)注冊的是驅(qū)動(dòng)程序的初始化函數(shù)句柄。
yhfddichar.queryinformationhandler= yhfddiqueryinformation;
yhfddichar.setinformationhandler=yhfddisetinformation;
這兩項(xiàng)注冊的是參數(shù)查詢和設(shè)置函數(shù)的句柄。
yhfddichar.sendhanler= yhfddisend;
yhfddichar.transferdatahandler= yhfdditransferdata;
主要提供數(shù)據(jù)發(fā)送和接收函數(shù)句柄!
yhfddichar.resethandler=yhfddireset;
此項(xiàng)注冊網(wǎng)卡軟硬件重置函數(shù)句柄。
yhfddichar.halthandler= yhfddihalt;
此項(xiàng)注冊網(wǎng)卡驅(qū)動(dòng)程序掛起函數(shù)句柄。
yhfddichar.checkforhandler=null;
yhfddichar.reconfigurehandler=null;
這兩個(gè)上邊緣服務(wù)函數(shù)是fddi網(wǎng)卡驅(qū)動(dòng)程序所不提供的,故置為null。
填好這些結(jié)構(gòu)以后,調(diào)用以下函數(shù)實(shí)現(xiàn)驅(qū)動(dòng)程序的注冊:
ndismregisterminiport(
yhfddiwrapperhandle,
【windowsnt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)2】相關(guān)文章:
windows nt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)03-18
I2C總線在uClinux操作系統(tǒng)下的驅(qū)動(dòng)程序設(shè)計(jì)11-22
WindowsCE.Net下CAN卡的驅(qū)動(dòng)程序設(shè)計(jì)03-20
嵌入式Linux下CAN總線驅(qū)動(dòng)程序設(shè)計(jì)03-07
Windows CE環(huán)境下無線網(wǎng)卡的自動(dòng)安裝03-19
在Linux下驅(qū)動(dòng)STN彩色LCD03-18
基于PCI總線的雙DSP系統(tǒng)及WDM驅(qū)動(dòng)程序設(shè)計(jì)03-19
在嵌入式linux2.4.18內(nèi)核中實(shí)現(xiàn)CS8900A網(wǎng)卡驅(qū)動(dòng)03-07
任務(wù)驅(qū)動(dòng)下物流教學(xué)探討論文11-20
最新推薦
- 防火墻技術(shù)在網(wǎng)絡(luò)安全中的應(yīng)用探析
- 風(fēng)機(jī)風(fēng)量自動(dòng)報(bào)警裝置
- windowsnt環(huán)境下fddi網(wǎng)卡驅(qū)動(dòng)程序設(shè)計(jì)2
- Flex Builder在卷接機(jī)組監(jiān)控機(jī)中的應(yīng)用
- ERP中的物流模塊研究
- 網(wǎng)卡驅(qū)動(dòng)安裝教程
- 計(jì)算機(jī)技術(shù)在建筑材料檢測中的應(yīng)用
- 計(jì)算機(jī)網(wǎng)絡(luò)可靠性優(yōu)化設(shè)計(jì)問題分析
- 現(xiàn)代小區(qū)智能技術(shù)應(yīng)用分析
- 利用網(wǎng)絡(luò)技術(shù) 改善教學(xué)過程
- c語言程序設(shè)計(jì)試題
- 程序設(shè)計(jì)心得體會(huì)
- 環(huán)境論文
- 環(huán)境整治
- 關(guān)于環(huán)境的論文
- 環(huán)境教育論文
- 化學(xué)與環(huán)境論文
- 2010年2月思想?yún)R報(bào)
- 2012年2月思想?yún)R報(bào)
- 2011年2月思想?yún)R報(bào)