日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows驱动开发之DDK与WDK、WDM的区别

發布時間:2023/12/14 windows 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows驱动开发之DDK与WDK、WDM的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.首先,先從基礎的東西說起,開發WINDOWS下的驅動程序,需要一個專門的開發包,如:開發JAVA程序,我們可能需要一個JDK,開發WINDOWS應用程序,我們需要WINDOWS的SDK,現在開發WINDOWS下的驅動程序,我們需要一個DDK/WDK。

2.DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的區別:

  這個要說說驅動相關的一些歷史:

  1).95/98/ME下,驅動模型為:Vxd,相關資料可以看《編程高手箴言》的前幾個章節,里面有很詳細的介紹,雖然這個東西已經過時,但大概看看還是會增長見識的。

  2).2000/XP/2003下,Windows采用WDM驅動模型(Windows Driver Model),開發2000/XP/2003的驅動開發包為:DDK。

????????????WDM驅動無非是微軟在NT式驅動之上進行了擴充,過濾驅動也不例外 。

  3).Vista及以后版本,采用了WDF驅動模型(Windows Driver Foudation),對應的開發包:WDK。

其實WDK可以看做是DDK的升級版本,現在一般的WDK是包含以前DDK相關的功能,現在XP下也可以用WDK開發驅動,WDK能編譯出2000-2008的各種驅動。

3.Vxd驅動文件擴展名為:.vxd。

? ? ?WDM和WDF驅動文件擴展名為:.sys。

4、WDM 是 Win32設備驅動程序體系結構。

? ? ? Windows設備驅動程序,過去是WDM(Windows Driver Model)框架,編程復雜,初學者難以掌握其編程要領。為了解決這一問題,微軟對WDM驅動程序的架構做了改進,形成了全新的WDF(Windows Driver Foundation)框架結構。它提供了面向對象和事件驅動的驅動程序開發框架,大大降低了開發難度。從現在開始,掌握Windows設備驅動程序的開發人員,由過去的“專業”人士,將變為“普通”大眾。
?WDF驅動程序包括兩個類型,一個是內核級的,稱為KMDF(Kernel-Mode Driver Framework),為SYS文件;另一個是用戶級的,稱為UMDF(User-Mode Driver Framework),為DLL文件。

5、ddk 和wdk

ddk是基于wdm驅動模型的,而wdk是基于WDF驅動模型的,wdm驅動模型和wdf驅動模型的最大的區別是:

1)wdf驅動框架對WDM進行了一次封裝,WDF框架就好像C++中的基類一樣,且這個基類中的model,IO model ,pnp和電源管理模型;且提供了一些與操作系統相關的處理函數,這些函數好像C++中的虛函數一樣,WDF驅動中能夠對這些函數進行override;特別是Pnp管理和電源管理!基本上都由WDF框架做了,而WDF的功能驅動幾乎不要對它進行特殊的處理;

2)WDF驅動模型 與WDM驅動模型的另外一個主要區別是:

WDF 驅動采用隊列進行IO處理,而WDM中將所有的IO操作都用默認的隊列進行處理,如果要進行IRp同步,必須使用StartIO;

3)WDF是面向對象的,而WDM是面向過程的,WDF提供對象的封裝,如將IRP封裝成WDFREQUEST,對象提供方法和Event。

5)usb設備的讀寫;

當應用程序使用ReadFile或WriteFile進行讀寫時,首先將

UsbBuildInterruptOrBulkTransferRequest將構建urb請求,然后通過IoCallDriver發送給底層usb 總線驅動;

對于WDF來說,WdfUsbTargetPipeFormatRequestForRead 格式化讀請求,然后使用WdfRequestSend? 發送給底層Usb總線驅動;

對WDM和WDF的usb的讀寫都可以設置完成例程;

?

總結

以上是生活随笔為你收集整理的Windows驱动开发之DDK与WDK、WDM的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。