本文的讀者最好有以下軟體:DriverStudio2.5,Visual Studio6.0,以及Windows 2000 DDK。
用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 Environment 或 Free 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 退出前,請卸載驅動程式。