http://blog.chinaunix.net/uid-223060-id-2127514.html.
2009
1.最先開(kāi)始使用的是VXD(早廢棄了)
2.自Windows 2000開(kāi)始,開(kāi)發(fā)驅(qū)動(dòng)程序必以
WDM為基礎(chǔ)的,意為
Windows Driver Model,是一個(gè)標(biāo)準(zhǔn)的驅(qū)動(dòng)模型,意思是說(shuō)你可以在這個(gè)模型上有所改動(dòng),WDM是Vista以前平臺(tái)的驅(qū)動(dòng)模型。(vista支持大部分的WDM驅(qū)動(dòng))
3.
WDF是Vista及其以后OS的驅(qū)動(dòng)模型,意為
Windows Driver Foudation,此模型比WDM更先進(jìn)、合理(微軟是這樣說(shuō)的),將WDM中關(guān)于電源、PnP等一些復(fù)雜的細(xì)節(jié)由微軟實(shí)現(xiàn),所以在此模型上開(kāi)發(fā)驅(qū)動(dòng)會(huì) 比以前要簡(jiǎn)單(個(gè)人覺(jué)得是要簡(jiǎn)單一些了,不過(guò)隱藏了更多細(xì)節(jié))
------------------------------------------------------------------------------------
WDF 與 WDK 名詞解釋
WDF驅(qū)動(dòng)模型
如所周知,自Windows2000開(kāi)始,開(kāi)發(fā)驅(qū)動(dòng)程序必以WDM為基礎(chǔ)的,但其開(kāi)發(fā)難度之大,根本不能奢望像用戶(hù)模式應(yīng)用程序開(kāi)發(fā)那樣容易。為改善這種局面,微軟推出了新的驅(qū)動(dòng)程序開(kāi)發(fā)環(huán)境。要預(yù)先指出的是,這不是另起爐灶改弦更張,而是以WDM為基礎(chǔ)進(jìn)行了建模和封裝,顯著特點(diǎn)是降低了開(kāi)發(fā)難度。因?yàn)椋?br>1、 將原來(lái)普通程序設(shè)計(jì)中基于對(duì)象的技術(shù)應(yīng)用到了驅(qū)動(dòng)開(kāi)發(fā)中。WDM中雖也有對(duì)象模型,但與真正的基于對(duì)象技術(shù)根本就不是一回事。為了實(shí)現(xiàn)基于對(duì)象的技術(shù),微軟精心設(shè)計(jì)了對(duì)象模型并進(jìn)行了封裝。屬性、方法、事件等等“一個(gè)都不能少”。
2、 無(wú)論內(nèi)核模式的驅(qū)動(dòng)程序或者用戶(hù)模式的驅(qū)動(dòng)程序,都采用同一套對(duì)象模型構(gòu)建,采用同一個(gè)基礎(chǔ)承載。這個(gè)基礎(chǔ)就是WDF。WDF雖然已經(jīng)是經(jīng)過(guò)封裝和定義的 對(duì)象模型,
但對(duì)內(nèi)核模式和用戶(hù)模式對(duì)象來(lái)說(shuō),WDF又是兩者的父對(duì)象。換言之兩者都是繼承了WDF才得到的,或者都是從WDF派生而來(lái)的。相對(duì)于內(nèi)核模 式,派生出的對(duì)象稱(chēng)為“KMD框架”即KMDF;相對(duì)于用戶(hù)模式,派生出的模型稱(chēng)為“UMD框架”即UMDF。
無(wú)論何種模式的框架,其內(nèi)部封裝的方法、執(zhí) 行的行為其實(shí)還是用WDM完成的。
3、更重要的,也是微軟反復(fù)炫耀的是封裝了驅(qū)動(dòng)程序中的某些共同行為:例如即插即用和電源管理就屬于這種共同行為。因?yàn)榇蠖鄶?shù)驅(qū)動(dòng)程序中都需要處理即插即用和電源管理問(wèn)題,據(jù)說(shuō)這大概要上千行的代碼,況且,沒(méi)有相當(dāng)水平還不一定能處理好。為了一勞永逸,WDF干脆將即插即用和電源管理封裝了進(jìn)了對(duì)象之內(nèi),一舉成了對(duì)象的缺省(默認(rèn))行為。
4、改變了操作系統(tǒng)內(nèi)核與驅(qū)動(dòng)程序之間的關(guān)系,WDM驅(qū)動(dòng)程序中,一方面要處理硬件,另一方面要處理驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核的交互。現(xiàn)在WDF則將驅(qū)動(dòng)程序與操作系統(tǒng)內(nèi)核之間進(jìn)行了分離,驅(qū)動(dòng)程序與操作系統(tǒng)交互工作交給框架內(nèi)封裝的方法(函數(shù))完成,這樣驅(qū)動(dòng)開(kāi)發(fā)者只需專(zhuān)注處理硬件的行為即可。這不僅避免了顧此失彼兩面不周的弊端,也由于雙方的分離,對(duì)操作系統(tǒng)內(nèi)的某些改動(dòng),硬件制造商配套驅(qū)動(dòng)程序的開(kāi)發(fā)都有莫大的好處。
5、
兩種模式的驅(qū)動(dòng)程序(KMDF、UMDF)都使用同一環(huán)境進(jìn)行構(gòu)建,這一環(huán)境稱(chēng)為WDK。
即KMDF,UMDF的開(kāi)發(fā)環(huán)境為WDK。以前WDM開(kāi)發(fā)的環(huán)境為DDKWindows Device Kit (WDK): 把測(cè)試套件(test suites)集成進(jìn)來(lái),DDK就成了WDK。WDK是針對(duì)微軟操作系統(tǒng)系列的驅(qū)動(dòng)器集成開(kāi)發(fā)系統(tǒng)。它組合了Windows DDK和Hardware CompatibilityTest (HCT) kits(硬件兼容性測(cè)試工具),同時(shí)提供了微軟內(nèi)部用來(lái)測(cè)試Windows操作系統(tǒng)穩(wěn)定性和可靠性的測(cè)試套件。
6、 雖然經(jīng)過(guò)封裝并引入基于對(duì)象的技術(shù),所開(kāi)發(fā)的驅(qū)動(dòng)程序在執(zhí)行效率上并不比原來(lái)遜色。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。