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