使用DriverStudio開發WDM設備驅動程序入門

編者按:本文的內容主要由DriverStudio的隨機文檔翻譯整理而來。本文的讀者最好有以下軟件:DriverStudio2.5,Visual Studio6.0,以及Windows 2000 DDK。本文假設你已安裝了這些軟件。DriverStudio2.5可在驅動開發網(www.Driverdevelop.com)下載到測試版,Windows 2000 DDK可在微軟的網站免費下載,Visual Studio 6.0 需要購買。
 作者:楊軍  E-mail:[email protected]

用DriverWorks爲 Windows 98 , Windows Me, Windows NT , Windows 2000 ,和 Windows XP 開發驅動程序

簡介
    DriverWorks 通過提供強大並且先進的代碼生成嚮導——DriverWizard,還有庫和例子中成千上萬行經過嚴格測試的代碼,簡化了設備驅動程序的開發。
    Windows NT 和 WDM 驅動程序接口爲面向對象方法的應用提供了良好的條件。DriverWorks 充分利用操作系統面向對象的優良特性,與微軟的 DDK 相比,它爲設計基於 Windows NT 和 WDM(驅動程序設計模型)的驅動程序提供了更加友好的方式。使用 Driverworks,設計人員能以更快的速度開發 NT 和 WDM 驅動程序。在大多數情況下,DriverWorks 函數庫的使用,可以大大減少驅動程序的代碼長度。利用這些精心設計的函數,你幾乎可以完成所有的工作。當然,DDK的C語言級的API函數也是可用的。


注意Windows NT 設備驅動程序能運行在 Windows NT 或 Windows 2000 上;而 WDM 設備驅動程序能在 Windows 98 , Windows Me ,Windows 2000 ,和 Windows XP 上運行


    DriverStudio把那些每個驅動程序都需要的代碼都封裝成類庫。庫代碼自動地處理例行的操作,這極大地簡小了任務的複雜度。
  而且,C++編譯器提供了ANSI C 所不具備的優點: 包括改進的類型安全檢查,內連函數優化,以及更好的代碼組織。
    DriverWizard——DriverWorks 的代碼嚮導,與微軟的Visual C++ 緊密的集成。超過1500行的驅動程序源代碼框架只需幾次鼠標點擊就可完成。這些代碼還包含了詳細的註釋。另外,DriverWizard 還能生成專爲特殊設備定製的代碼,比如:USB設備,PCI設備,即插即用設備,ISA 設備,等等。
    DriverStudio對Microsoft Developer Studio 的支持遠不止用 DriverWizard 構造一個新工程這麼簡單。DriverWorks 提供了完整的和Microsoft Developer Studio 相似的開發環境,包括 checked 和 free 編譯環境,相似的代碼編輯器,錯誤代碼定位,以及類瀏覽器。


編譯庫 
   
在你利用DriverWorks開始工作之前,你必須編譯需要的庫文件。你可以在Microsoft Visual Studio 環境中,或者用命令行方式編譯庫文件。
    下面介紹怎樣在VC環境中編譯庫。
     1.啓動Visual C++ 。
     2.選擇菜單 File|Open Workspace。打開位於DriverStudio/DriverWorks/Source/vdwlibs.dsw的工作空間文件。
     3.選擇菜單 Build|Batch Build,在彈出的對話框中選擇你想編譯的庫。
     4.點擊Build編譯你選擇的庫。 
     怎樣用命令行方式編譯庫,這裏省略。


測試你的安裝
   
如果你想用命令行(不是在Microsoft Visual Studio中)編譯一個簡單的驅動程序例子,你必須先運行兩個批處理文件(後綴爲.bat的文件),這兩個文件在DDk和Visual C++中。你也可以簡單的通過運行開始菜單 程序/Development kits/Windows 2000 DDK 中的 Checked Build EnvironmentFree Build Enviroment 來完成此操作。
   第一批處理文件是 SETENV.BAT ,並且它要求 2 個參數:第一個是DDK 的根目錄,第二個是"free" 或 "checked"。第二個參數告訴編譯系統是否在驅動程序中加入調試信息。第二批處理文件是 VCVARS32.BAT ,它爲編譯器建立路徑。


編譯例子程序
   對 Windows NT 4.0 來說,最簡單的例子在DriverStudio/DriverWorks/Examples/NT/HELLO 文件夾裏。你可以編譯這個例子,然後用DriverMonitor裝載它
    對 WDM 驅動程序( 用於Windows 98 , Windows Me, Windows 2000 ,和 Windows XP ),最簡單的例子在 DriverStudio/DriverWorks/Examples/WDM/HELLOWDM 文件夾裏。你編譯它,然後用控制面板裏的添加新硬件嚮導來加載。
    如果你有 Microsoft Visual C++ 5.0 或更新的版本,你可以打開工作空間文件%DRIVERWORKS%/examples/nt/hello/hello.dsw ,然後在Visual C++環境中編譯。編譯 WDM 驅動程序,請用 HELLOWDM 例子。
如果你想從命令行編譯,請按下面的方法設置工作目錄,然後運行Build程序編譯:


cd/ProgramFiles/Numega/DriverStudio/DriverWorks/ examples/nt/hello
build


    請查看輸出文件“ build.log ”(或“ buildchk.log ”或“ bldfre.log ”)看是否有錯誤。


在Windows 98和Windows Me 中裝載驅動程序
   首先拷貝HELLOWDM.INF文件到系統文件夾。然後打開控制面板,運行添加新硬件嚮導。在添加新硬件嚮導的第一步中,選擇從“列表中選擇硬件”,注意HELLOWDM在其他硬件中。當詢問製造商時,選擇從磁盤安裝,定位到INF文件所在的目錄。如果你在安裝時運行了DriverMonitor,你將會看到驅動程序彈出的消息。安裝完成後,打開控制面板中的系統圖標,安裝的設備會出現在設備管理器中。


在Windows NT, Windows 2000, 和 Windows XP中加載驅動程序 
   對於Windows 2000 和 Windows XP 中的WDM 驅動程序,方法與前面介紹的類似。
   對於Windows NT ,Windows 2000 和 Windows XP上的非WDM 驅動程序,運行 DriverMonitor 證實你的驅動程序工作正常。請注意 HELLO.SYS 將被創建在./I386/*目錄,此出的*取決於你的編譯環境是 checked 還是 free。
   當你從 DriverMonitor 裝載 HELLO.SYS 時,你應該在窗口中看到確認信息,然後是驅動程序發出的HELLO消息。
注意:在 Windows NT 下裝載設備驅動程序,你需要以管理員帳戶登錄。
如果你沒有足夠的權限安裝內核模式驅動程序,DriverMonitor 會提示錯誤消息。


    在從 DriverMonitor 退出前,請卸載驅動程序。

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12912

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