Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别
背景介紹
首先,先從基礎(chǔ)的東西說起,做任何程序的開發(fā),你都需要一個配套的開發(fā)套件,專業(yè)術(shù)語叫做SDK(Software Development Kit,軟件開發(fā)套件)。比如:開發(fā)JAVA程序,我們可能需要一個JDK。那么,開發(fā)WINDOWS應(yīng)用程序,我們同樣需要WINDOWS的SDK。而想要開發(fā)WINDOWS下的驅(qū)動程序,我們則需要一個DDK/WDK。
具體概念
OK,下面來具體談?wù)刅XD/WDM/WDF/DDK/WDK到底是些什么東東。這個就要從驅(qū)動程序的的一些歷史開始說起了:
開發(fā)DDK和WDK的區(qū)別
DDK是基于WDM驅(qū)動模型的,而WDK是基于WDF驅(qū)動模型的。WDM驅(qū)動模型和WDF驅(qū)動模型的最大的區(qū)別是:
WDF驅(qū)動框架對WDM進行了一次封裝,WDF框架就好像C++中的基類一樣,且這個基類中的model,IO model,pnp和電源管理模型;且提供了一些與操作系統(tǒng)相關(guān)的處理函數(shù),這些函數(shù)好像C++中的虛函數(shù)一樣,WDF驅(qū)動中能夠?qū)@些函數(shù)進行override;特別是Pnp管理和電源管理!基本上都由WDF框架做了,而WDF的功能驅(qū)動幾乎不要對它進行特殊的處理;
WDF驅(qū)動采用隊列進行IO處理,而WDM中將所有的IO操作都用默認的隊列進行處理,如果要進行IRp同步,必須使用StartIO;
WDF是面向?qū)ο蟮?#xff0c;而WDM是面向過程的,WDF提供對象的封裝,如將IRP封裝成WDFREQUEST,對象提供方法和Event。
總結(jié)
以上是生活随笔為你收集整理的Windows驱动开发VXD/WDM/WDF/DDK/WDK的联系和区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: realme 真我 GT Neo5 预热
- 下一篇: java信息管理系统总结_java实现科