編者按:本文的內容主要由DriverStudio的隨機文檔翻譯整理而來。本文的讀者最好有以下軟體:DriverStudio2.5,Visual Studio6.0,以及Windows 2000 DDK。本文假設你已安裝了這些軟體。DriverStudio2.5可在驅動開發網(www.Driverdevelop.com)下載到測試版,Windows 2000 DDK可在微軟的網站免費下載,Visual Studio 6.0 需要購買。 作者:楊軍 E-mail:y9980@263.net 用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 會提示錯誤訊息。 |