欧美自拍小视频_国产片在线免费观看_中文字幕啪啪_成人av高清在线_欧美一区二区视频免费观看_亚洲国产激情
[Full]
完整版
[Rss]
訂閱
[Xml]
無(wú)圖版
[Xhtml]
無(wú)圖版
Rss
& SiteMap
曙海教育集團(tuán)論壇
http://www.bjzhda.cn
曙海教育集團(tuán)論壇
◎
曙海教育集團(tuán)論壇
→
Windows驅(qū)動(dòng)開發(fā)
→
Windows2000設(shè)備驅(qū)動(dòng)程序的研制開發(fā)
共1 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽:
[1]
[瀏覽完整版]
標(biāo)題:Windows2000設(shè)備驅(qū)動(dòng)程序的研制開發(fā)
1樓
wangxinxin
發(fā)表于:2010-12-17 14:51:49
以下內(nèi)容含腳本,或可能導(dǎo)致頁(yè)面不正常的代碼
由于工作關(guān)系,我經(jīng)常涉及<font face="Times New="New" Roman">PC</font>機(jī)與外圍設(shè)備接口的工作,從<font face="Times New="New" Roman">PC</font>機(jī)這方面要做的工作看來(lái),主要是通過接口處理外圍設(shè)備的中斷,通過<font face="Times New="New" Roman">I/O</font>端口或內(nèi)存地址與外設(shè)互相傳遞數(shù)據(jù)。從<font face="Times New="New" Roman"></font>計(jì)算<font face="Times New="New" Roman"></font>機(jī)原理的角度看,所要達(dá)到的目的很簡(jiǎn)單,那么如何編寫程序完成上述功能呢? 目前<font face="Times New="New" Roman"></font>國(guó)內(nèi)流行的<font face="Times New="New" Roman">PC</font>操作系統(tǒng)有三種:<font face="Times New="New" Roman">DOS</font>,<font face="Times New="New" Roman">Win95/98</font>系列,<font face="Times New="New" Roman">WindowsNT</font>。<font face="Times New="New" Roman">DOS</font>是單用戶、單任務(wù)操作系統(tǒng),由于<font face="Times New="New" Roman">PC</font>機(jī)硬件處理速度不斷提高,基于單用戶、單任務(wù)的操作系統(tǒng)越來(lái)越不能充分發(fā)揮硬件的功能,現(xiàn)在只<font face="Times New="New" Roman"></font>應(yīng)用<font face="Times New="New" Roman"></font>于一些老式<font face="Times New="New" Roman">PC</font>及其它個(gè)別場(chǎng)合,有逐漸被淘汰的趨勢(shì);<font face="Times New="New" Roman">Win95/98</font>系列和<font face="Times New="New" Roman">WindowsNT</font>屬于多任務(wù)操作系統(tǒng),不論從其原理還是界面上看,這兩種操作系統(tǒng)都比<font face="Times New="New" Roman">DOS</font>有著無(wú)可比擬的優(yōu)越性,這兩種操作系統(tǒng)雖然在界面和操作上及其相似,但其內(nèi)部實(shí)現(xiàn)的諸多方面有許多區(qū)別,有些區(qū)別是本質(zhì)上的。<font face="Times New="New" Roman">Win95/98</font>設(shè)計(jì)目標(biāo)是針對(duì)一般家庭用戶,安全性及可靠性存在許多薄弱環(huán)節(jié),就可靠性而言,<font face="Times New="New" Roman">Win95/98</font>系列不能很好的防止多任務(wù)環(huán)境中某個(gè)進(jìn)程的非法操作導(dǎo)致系統(tǒng)中其它程序甚至整個(gè)系統(tǒng)的崩潰,而<font face="Times New="New" Roman">WindowsNT</font>在這方面及其它諸多方面設(shè)計(jì)的相當(dāng)嚴(yán)謹(jǐn)。這兩種操作系統(tǒng)是<font face="Times New="New" Roman">Microsoft</font>公司同一時(shí)期的產(chǎn)品,但針對(duì)不同的使用群,所以在一些重要場(chǎng)合及生產(chǎn)實(shí)踐中應(yīng)該選擇<font face="Times New="New" Roman">WindowsNT</font>作為<a title="計(jì)算機(jī)類相關(guān)論文" href="http://www.lwlm.com/search.aspx?Where=title&cid=0&Keyword=%BC%C6%CB%E3%BB%FA&x=36&y=10"><font color="#000000">計(jì)算機(jī)</font></a>的操作系統(tǒng),此外,從<font face="Times New="New" Roman"></font>發(fā)展<font face="Times New="New" Roman"></font>趨勢(shì)來(lái)看,<font face="Times New="New" Roman">WindowsNT</font>已經(jīng)成為定型產(chǎn)品,具有相對(duì)穩(wěn)定性。 在不同操作系統(tǒng)下編寫驅(qū)動(dòng)程序是有很大區(qū)別的,在<font face="Times New="New" Roman">DOS</font>平臺(tái)上,應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序之間沒有標(biāo)準(zhǔn)的接口,它們?cè)谕獠勘憩F(xiàn)為一個(gè)擴(kuò)展名為<font face="Times New="New" Roman">EXE</font>的文件,驅(qū)動(dòng)程序的作用被柔和在應(yīng)用程序中,這樣,應(yīng)用程序?yàn)榱耸褂貌煌瑥S商的同一類設(shè)備,必須了解這些設(shè)備在接口上具體的硬件實(shí)現(xiàn),同時(shí),對(duì)于一個(gè)特定型號(hào)的硬件產(chǎn)品,所有支持它的應(yīng)用軟件中對(duì)于控制整個(gè)設(shè)備動(dòng)作的這部分代碼,可能被多次重寫。這種情況不適應(yīng)硬件及應(yīng)用軟件的飛速發(fā)展。<font face="Times New="New" Roman">Windows</font>系統(tǒng)在這方面,進(jìn)行了根本性改進(jìn),把控制設(shè)備動(dòng)作的這部分代碼獨(dú)立出來(lái),提出了設(shè)備驅(qū)動(dòng)程序的概念<font face="Times New="New" Roman">,</font>驅(qū)動(dòng)程序是應(yīng)用程序和硬件設(shè)備之間的一個(gè)橋梁,應(yīng)用程序與驅(qū)動(dòng)程序之間有明確的接口,應(yīng)用程序通過與驅(qū)動(dòng)程序交換信息,達(dá)到控制外設(shè)的目的。接口定義的操作是面向設(shè)備的,這就是說,在應(yīng)用程序的設(shè)計(jì)中,并不用關(guān)心對(duì)外設(shè)操作的具體硬件實(shí)現(xiàn),只是對(duì)驅(qū)動(dòng)程序發(fā)出一系列指令既可;驅(qū)動(dòng)程序接受來(lái)自上層應(yīng)用程序的指示,具體操縱實(shí)際硬件,完成用戶功能。具體實(shí)現(xiàn)上,<font face="Times New="New" Roman">Win95/98</font>系列與<font face="Times New="New" Roman">WindowsNT</font>又有所區(qū)別,<font face="Times New="New" Roman">WindowsNT</font>是嚴(yán)格按照上述思路設(shè)計(jì)的;而<font face="Times New="New" Roman">Win95/98</font>系列不那么嚴(yán)格,其支持上述思路,但同時(shí)應(yīng)用程序也可以繞過驅(qū)動(dòng)程序直接訪問實(shí)際物理<font face="Times New="New" Roman">I/O</font>,這樣做,增加程序設(shè)計(jì)的靈活性,但同時(shí),對(duì)系統(tǒng)可靠性造成一定隱患。這也正是<font face="Times New="New" Roman">Win95/98</font>系列可靠性低于<font face="Times New="New" Roman">WinNT</font>的原因之一。 表<font face="Times New="New" Roman">1-1</font>三種操作系統(tǒng)下訪問接口比較 <table cellspacing="0" cellpadding="0" width="100%" border="1"> <tbody> <tr> <td width="33%"> 操作系統(tǒng) </td> <td width="33%"> 應(yīng)用程序訪問接口方式 </td> <td width="34%"> 訪問權(quán)限 </td></tr> <tr> <td width="33%"> <font face="Times New="New" Roman">DOS</font> </td> <td width="33%"> 直接訪問 </td> <td width="34%"> 所有<font face="Times New="New" Roman">[</font>注<font face="Times New="New" Roman">]</font> </td></tr> <tr> <td width="33%" rowspan="2"> <font face="Times New="New" Roman">Windows95/98</font> </td> <td width="33%"> 通過設(shè)備驅(qū)動(dòng)程序<font face="Times New="New" Roman">*.VXD</font> </td> <td width="34%"> 所有<font face="Times New="New" Roman">[</font>注<font face="Times New="New" Roman">]</font> </td></tr> <tr> <td width="33%"> 直接訪問 </td> <td width="34%"> 僅<font face="Times New="New" Roman">I/O</font>端口 </td></tr> <tr> <td width="33%"> <font face="Times New="New" Roman">WindowsNT</font> </td> <td width="33%"> 通過設(shè)備驅(qū)動(dòng)程序<font face="Times New="New" Roman">*.SYS</font> </td> <td width="34%"> 所有<font face="Times New="New" Roman">[</font>注<font face="Times New="New" Roman">]</font> </td></tr></tbody></table> <font face="Times New="New" Roman">[</font>注<font face="Times New="New" Roman">]‘</font>所有<font face="Times New="New" Roman">’</font>指<font face="Times New="New" Roman">I/O</font>端口,<font face="Times New="New" Roman">RAM</font>總線,中斷,<font face="Times New="New" Roman">DMA</font>。 <font face="Times New="New" Roman">WindowsNT</font>設(shè)備驅(qū)動(dòng)程序的組成原理 <font face="Times New="New" Roman">WindowsNT</font>操作系統(tǒng)結(jié)構(gòu)分為用戶模式和內(nèi)核模式,用戶模式下的<a href="javascript:;" target="_self"><u><strong>編程</strong></u></a>為應(yīng)用程序的設(shè)計(jì),而開發(fā)設(shè)備驅(qū)動(dòng)程序,則屬于內(nèi)核模式下的編程,內(nèi)核模式組件包括<font face="Times New="New" Roman">NT Executive(ExXxx),</font>內(nèi)核<font face="Times New="New" Roman">(KeXxx),</font>硬件抽象層<font face="Times New="New" Roman">(HalXxx)</font>。其層次如圖<font face="Times New="New" Roman">2-1</font>所示,其中<font face="Times New="New" Roman">NT Executive</font>包括幾個(gè)獨(dú)立的軟件組件,它們是系統(tǒng)服務(wù)接口<font face="Times New="New" Roman">(ZwXxx)</font>,對(duì)象<a title="管理類相關(guān)論文" href="http://www.lwlm.com/search.aspx?Where=title&cid=0&Keyword=%B9%DC%C0%ED%A1%A1&x=35&y=9"><font color="#000000">管理</font></a>器<font face="Times New="New" Roman">(ObXxx)</font>,配置管理器,進(jìn)程管理器<font face="Times New="New" Roman">(PsXxx)</font>,安全監(jiān)視器<font face="Times New="New" Roman">(SeXxx)</font>,虛擬空間管理器<font face="Times New="New" Roman">(MemXxx)</font>,本地進(jìn)程調(diào)用,<font face="Times New="New" Roman">I/O</font>管理器<font face="Times New="New" Roman">(IoXxx)</font>。內(nèi)核模式的系統(tǒng)服務(wù)并不是全部公開的,而是提供了一系列開發(fā)設(shè)備驅(qū)動(dòng)程序需要的函數(shù)<font face="Times New="New" Roman">(</font>上文括號(hào)內(nèi)為函數(shù)形式,函數(shù)手冊(cè)參見<font face="Times New="New" Roman">[2]Kernel-Mode Drivers-Reference</font>章節(jié)<font face="Times New="New" Roman">)</font>,換言之,這些函數(shù)功能是所有內(nèi)核模式的系統(tǒng)服務(wù)功能的子集。 驅(qū)動(dòng)程序由一系列相對(duì)獨(dú)立的函數(shù)組成,由<font face="Times New="New" Roman">I/O</font><a title="管理類相關(guān)論文" href="http://www.lwlm.com/search.aspx?Where=title&cid=0&Keyword=%B9%DC%C0%ED%A1%A1&x=35&y=9"><font color="#000000">管理</font></a>器根據(jù)需要調(diào)用這些函數(shù),對(duì)于一個(gè)需要處理中斷的最簡(jiǎn)單的驅(qū)動(dòng)程序也需要由以下幾個(gè)函數(shù)構(gòu)成: <font face="Times New="New" Roman">1.DriverEntry()</font>運(yùn)行于<font face="Times New="New" Roman">PASSIVE_LEVEL </font>驅(qū)動(dòng)程序入口點(diǎn),當(dāng)驅(qū)動(dòng)程序被手動(dòng)或自動(dòng)裝入系統(tǒng)后,驅(qū)動(dòng)程序從這點(diǎn)開始執(zhí)行,主要用于定位硬件資源,建立指向其它驅(qū)動(dòng)程序函數(shù)的指針等其它初始化工作。 <font face="Times New="New" Roman">2.XxUnload()</font>運(yùn)行于<font face="Times New="New" Roman">PASSIVE_LEVEL </font>用于驅(qū)動(dòng)程序從系統(tǒng)卸出之前,釋放由驅(qū)動(dòng)程序占用的所有系統(tǒng)資源。 <font face="Times New="New" Roman">3.XxIsr()</font>運(yùn)行于<font face="Times New="New" Roman">DIRQL </font>中斷服務(wù)程序。 <font face="Times New="New" Roman">4.XxDpcForIsr()</font>運(yùn)行于<font face="Times New="New" Roman">DISPATCH_LEVEL </font>中斷服務(wù)程序后處理程序,以排隊(duì)方執(zhí)行不太關(guān)鍵代碼的執(zhí)行,由于排隊(duì)機(jī)制及優(yōu)先級(jí),不會(huì)造成代碼擁塞從而提高中斷服務(wù)程序的響應(yīng)并且提高系統(tǒng)總體<font face="Times New="New" Roman">I/O</font>吞吐率。 <font face="Times New="New" Roman">5.XxOpen()</font>運(yùn)行于<font face="Times New="New" Roman">PASSIVE_LEVEL </font>處理應(yīng)用程序<font face="Times New="New" Roman">Win32</font>函數(shù)<font face="Times New="New" Roman">CreateFile()</font>請(qǐng)求。 <font face="Times New="New" Roman">6.XxClose()</font>運(yùn)行于<font face="Times New="New" Roman">PASSIVE_LEVEL </font>處理應(yīng)用程序<font face="Times New="New" Roman">Win32</font>函數(shù)<font face="Times New="New" Roman">CloseHandle()</font>請(qǐng)求。 <font face="Times New="New" Roman">7.XxDispatch()</font>運(yùn)行于<font face="Times New="New" Roman">PASSIVE_LEVEL </font>處理應(yīng)用程序<font face="Times New="New" Roman">Win32</font>函數(shù)<font face="Times New="New" Roman">DeviceIoControl()</font>請(qǐng)求,通過一系列自定義命令,驅(qū)動(dòng)程序與應(yīng)用程序交換特定的信息。 <font face="Times New="New" Roman">WindowsNT</font>使用一個(gè)抽象化的<font face="Times New="New" Roman">CPU</font>優(yōu)先級(jí)方案,<font face="Times New="New" Roman">IRQL</font>代表中斷請(qǐng)求級(jí),任一時(shí)刻<font face="Times New="New" Roman">CPU</font>總處在某一級(jí)上,這個(gè)數(shù)越大,表示當(dāng)前的任務(wù)重要性越大,如表<font face="Times New="New" Roman">2-1</font>所示,從上至下<font face="Times New="New" Roman">IRQL</font>越來(lái)越小。所有上述驅(qū)動(dòng)程序的函數(shù)及內(nèi)核模式函數(shù)都必須運(yùn)行于各自的<font face="Times New="New" Roman">IRQL</font>級(jí)上,如果違反這一調(diào)用規(guī)定,會(huì)造成系統(tǒng)崩潰。例如,中斷服務(wù)程序<font face="Times New="New" Roman">(XxIsr)</font>運(yùn)行于<font face="Times New="New" Roman">DIRQL</font>及上,那幺在編寫中斷服務(wù)程序時(shí),只能調(diào)用允許在這一級(jí)運(yùn)行的內(nèi)核模式函數(shù)<font face="Times New="New" Roman">(</font>并不是所有內(nèi)核模式函數(shù)都能運(yùn)行于<font face="Times New="New" Roman">DIRQL</font>級(jí)<font face="Times New="New" Roman">)</font>。至于每個(gè)內(nèi)核模式函數(shù)運(yùn)行級(jí)別的說明,詳見<font face="Times New="New" Roman">[2]Kernel-Mode Drivers-Reference</font>章節(jié)。 <font face="Times New="New" Roman">WindowsNT</font>是一多任務(wù)系統(tǒng),許多設(shè)備的驅(qū)動(dòng)程序同時(shí)存在系統(tǒng)中,這樣各個(gè)設(shè)備所占用的資源<font face="Times New="New" Roman">(</font>中斷,<font face="Times New="New" Roman">I/O</font>及<font face="Times New="New" Roman">RAM</font>地址空間<font face="Times New="New" Roman">)</font>很有可能沖突,如果設(shè)備驅(qū)動(dòng)程序在運(yùn)行之前不進(jìn)行<font face="Times New="New" Roman">‘</font>探測(cè)<font face="Times New="New" Roman">’</font>而使用自己硬件設(shè)備的資源,有可能和系統(tǒng)內(nèi)其它設(shè)備占用的資源沖突,后果不堪設(shè)想。<font face="Times New="New" Roman">WindowsNT</font>通過注冊(cè)表<a title="管理類相關(guān)論文" href="http://www.lwlm.com/search.aspx?Where=title&cid=0&Keyword=%B9%DC%C0%ED%A1%A1&x=35&y=9"><font color="#000000">管理</font></a>硬件資源的占用信息,作為內(nèi)核模式信任的組件,驅(qū)動(dòng)程序使用硬件資源之前必須遵循<font face="Times New="New" Roman">‘</font>查詢<font face="Times New="New" Roman">-</font>申請(qǐng)<font face="Times New="New" Roman">-</font>使用<font face="Times New="New" Roman">-</font>釋放<font face="Times New="New" Roman">’</font>的原則<font face="Times New="New" Roman">(</font>如圖<font face="Times New="New" Roman">2-2</font>所示<font face="Times New="New" Roman">)</font>。 表<font face="Times New="New" Roman">2-1</font> <table cellspacing="0" cellpadding="0" width="100%" border="1"> <tbody> <tr> <td width="50%"> 來(lái)源 </td> <td width="50%"> <font face="Times New="New" Roman">IRQL</font> </td></tr> <tr> <td width="50%" rowspan="7"> 硬件 </td> <td width="50%"> <font face="Times New="New" Roman">HIGHEST_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">POWER_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">IPI_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">CLOCK2_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">CLOCK1_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">PROFILE_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">DIRQLs(I/O</font>設(shè)備中斷平臺(tái)相關(guān)的級(jí)數(shù)<font face="Times New="New" Roman">)</font> </td></tr> <tr> <td width="50%" rowspan="3"> 軟件 </td> <td width="50%"> <font face="Times New="New" Roman">DISPATCH_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">APC_LEVEL</font> </td></tr> <tr> <td width="50%"> <font face="Times New="New" Roman">PASSIVE_LEVEL</font> </td></tr></tbody></table> <font face="Times New="New" Roman">WindowsNT</font>設(shè)備驅(qū)動(dòng)程序的編寫步驟與實(shí)例<font face="Times New="New" Roman"> </font>現(xiàn)以一實(shí)際例子簡(jiǎn)要說明設(shè)備驅(qū)動(dòng)程序的開發(fā)步驟,本例以<font face="Times New="New" Roman">CINRAD</font>天氣雷達(dá)測(cè)試卡實(shí)際應(yīng)用為原型,加以簡(jiǎn)化、抽象。
說明:
上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運(yùn)行.
共1 條記錄, 每頁(yè)顯示 10 條, 頁(yè)簽:
[1]
Copyright © 2000 - 2009
曙海
教育集團(tuán)
Powered By
曙海教育集團(tuán)
Version 2.2
Processed in .01563 s, 2 queries.
[Full]
完整版
[Rss]
訂閱
[Xml]
無(wú)圖版
[Xhtml]
無(wú)圖版
主站蜘蛛池模板:
国产精品久久久久一区二区
|
伊人久久综合影院首页
|
四虎国产永久免费久久
|
国产午夜视频在线观看
|
精品国产一区二区三区2021
|
天堂а√在线中文在线新版
|
婷婷综合久久中文字幕
|
国产精品亚欧美一区二区三区
|
在线观看欧洲成人免费视频
|
亚洲高清免费在线观看
|
亚洲欧美日产综合一区二区三区
|
免费高清毛片在线播放视频
|
精品深夜av无码一区二区
|
免费a级做爰片在线观看爱色戒
|
日韩欧美亚洲每的更新在线
|
一边摸一边做爽的视频17国产
|
999热成人精品国产免
|
成人看片黄a免费看那个网址
|
在线观看欧洲成人免费视频
|
极品白嫩大长腿美女在线观看
|
成人国产精品一级毛片视频
|
成人影院久久久久久影院
|
精品综合久久久久久88小说
|
国产精品免费网站
|
2021国产成人午夜精品
|
97欧美精品激情在线观看最新
|
久久人人爽人人爽人人片ⅴ
|
精品免费国产一区二区女
|
午夜影院免费观看视频
|
风韵丰满熟妇啪啪区老老熟妇
|
亚洲国产九九精品一区二区
|
一个人看的www片免费高清视频
|
99视频久久精品久久
|
亚洲在线观看免费
|
97精品在线
|
精品久久一
|
免费看毛片网站
|
国产96福利视频在线观看
|
a级成人毛片免费视频高清 a级大胆欧美人体大胆666
|
色94色欧美sute亚洲线
|
免费国产成人高清在线观看不卡
|