DDK是什麼,驅動是否都要用DDK寫

準備開始window下的驅動開發了。

先轉個文章熱身熱身,學前班。

 

 

DDK是什麼,驅動是否都要用DDK寫

 

  DDK是什麼,驅動是否都要用DDK寫 收藏
DDK是Device Development Kit,設備開發包的意思。如果你想開發一個設備驅動程序,如顯卡驅動程序,就必須使用DDK。DDK沒有包括在VC++中,其主頁爲http://www.microsoft.com/whdc/devtools/ddk/default.mspx,通常需要定購MSDN才能獲得。你也可以下載KMDF(http://www.microsoft.com/whdc/driver/WDF/KMDF_pkgdwn.mspx?),其中包括了Windows Server 2003 SP1的DDK。Windows 98的DDK可以從http://download.microsoft.com/download/win98SE/Install/Gold/W98/EN-US/98DDK.EXE下載。

驅動編寫可以分多種情況,下面分別討論:
    1、串口通訊。
    Windows自身帶有串口通訊的API,所以一般串口通訊不需要編寫單獨的驅動程序,只需要調用系統功能就可以了。VB帶有MSCOMM控件(QA000388 "MSComm無法在中文Windows 95下傳遞二進制數據"),而VC++可以參考QA000162 "在VC中如何開發串囗",Delphi可以參考QA002595 "在Delphi中怎樣控制 Modem"。絕大多數串口外置的MODEM的驅動程序就是一個.inf文件(這個文件的規範在DDK中有說明),而沒有實際的驅動文件。不過軟貓不能使用這個辦法。如果ISDN設備是通過串口的,也可以仿照MODEM編寫這樣的串口文件(當然如果要支持CAPI,就編寫使用CAPI SDK編寫驅動程序)。
    2、使用現成的驅動軟件包。
    如果你的硬件是比較簡單的數據採集卡這樣的硬件,也可以使用一些現成的驅動軟件包,這些軟件包提供了一些基本的硬件操作功能,這樣你可以免除使用DDK開發的苦惱。而且這些工具多數支持Delphi、VB、C++ Builder這樣的軟件,這樣可以解決這些軟件無法調用DDK編寫驅動的問題。可以參考QA000335 "如何在VB中如何控制端口和物理地址"。這樣的商業工具包括NTPort Library(http://china.zealsoft.com/cn/ntport/)、MemAccess Library(http://china.zealsoft.com/cn/memaccess/)、WinDriver等。
    3、使用DDK編寫
    如果前兩種情況都不適用,你就需要使用DDK編寫了。每個Windows版本都有對應的DDK,其主頁爲http://www.microsoft.com/whdc/devtools/ddk/default.mspx,通常需要定購MSDN才能獲得。你也可以下載KMDF(http://www.microsoft.com/whdc/driver/WDF/KMDF_pkgdwn.mspx?),其中包括了Windows Server 2003 SP1的DDK。Windows 98的DDK可以從http://download.microsoft.com/download/win98SE/Install/Gold/W98/EN-US/98DDK.EXE下載。。當然你應該根據自己使用的操作系統進行選擇。Win9x的主要驅動都是VxD類型的,可以在Win95/98/Me下使用,但不能在WinNT/2000下使用。WinNT的驅動一般都是.sys文件,Win2000可以兼容WinNT驅動,但一般不能在Win9x下使用。所以如果你要支持Win9x和WinNT,需要編寫兩類驅動程序。USB設備的驅動程序是WDM類型的,擴展名爲.sys,但只能在Win98/Me/2000下使用。
    Win98 DDK和Windows 2000的DDK安裝比較簡單,而且和VC++配合的比較好,最好使用這兩個DDK包。Win95 DDK和WinNT DDK默認安裝需要Win32 SDK,如果沒有,需要手工修改環境變量或SETENV.BAT,略微麻煩一些,最好不使用。除了安裝DDK,還需要VC++進行編譯,最好是VC++ 6.0。其他軟件都不是必須的。當然,最好有SoftICE作爲調試工具。
    驅動的編寫同一般程序有很大不同,所以建議買本書,參考QA001005 "有關DDK編程的書籍"。你也可以參考QA002697 "PCI設備Windows通用驅動程序設計",以瞭解一個大概。
    此外,也有一些DDK的增強工具,如DriverWorks(http://www.numega.com/),這個軟件和DDK相比,就如同MFC和API。

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiazhen/archive/2006/12/07/1433360.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章