WDF使用WDK
WDF -  Windows Driver Frameworks (Vista後),分
WDK - Windows Driver Kit

WDM使用DDK
WDM - Windows Driver Model (2000/XP/2003)
DDK - Driver Developer Kit


WDK像DDK的升級版



 WDF驅動程序包括兩個類型,一個是內核級的,
 稱為KMDF(Kernel-Mode Driver Framework),為SYS文件;
 另一個是用戶級的,稱為UMDF(User-Mode Driver Framework),為DLL文件。
 
 
 
 ,而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的讀寫都可以設置完成例程;
arrow
arrow
    全站熱搜

    天才R 發表在 痞客邦 留言(0) 人氣()