?? driverstudio.txt
字號:
前言
鑒于國內開發人員迫切需要學習驅動開發技術,而國內有關驅動開發工具DriverStudio的資料很少,大家在開發過程中遇到很多問題卻沒處問,沒法問.而這些問題卻是常見的,甚至是很基礎的問題。
有感于此,本站聯合北京朗維計算機應用公司編寫了本教程。本教程的目的是讓一個有一些核心態程序編寫經驗或對系統有所了解的人學習編寫驅動程序。當然,本教程不是DDK中有關驅動方面內容的替換,而只是一個開發環境的介紹和指導。
學習本教程,你應該能熟練地使用本套工具編寫基本的驅動程序。當然如果你想能順利地編寫各種各樣的驅動的話,你應該有相關的硬件知道和系統核心知識并且要經過必要的訓練才能勝任。
如果真心說一句話,DriverStudio并沒有對驅動程序開發有什么實質的改變,它和DDk的關系不過是sdk和mfc的關系,但很多人選擇了MFC,原因不言自明,方便二字何以說得完呀?你再也不用去關注繁瑣的框架實現代碼,也不用去考慮讓人可怕的實現細節。封裝完整的C++函數庫讓你專注于你要實現的程序邏輯。 它包含一套完整調試和性能測試、增強工具,使你的代碼更穩定。
說些題外話,作驅動開發很苦,不是一般的人能忍受的,那怕開發一個小小的驅動也要忍受無數次的宕機,有時甚至有些災難性的事故等著你,所以要有充分的思想準備。當然,在開發的過程中你會有一種徹底控制計算機的滿足感,調試開發完畢后的成就感是其它開發工作所不能體會到的。當然,就個人前途來說,作驅動開發能拿到別的開發所不能得到的薪水。而且開發的生命期也會長一些,你不用不斷的學習新的開發工具,只需要不斷的加深對系統的理解就行了。當然,還有一點是必需的,那就是英文要好,否則永遠比國外同行慢半拍。
本人水平不高,所做的工作只要能提起大家學習驅動開發的興趣,能帶領大家入門便心滿意足了。在此感謝北京朗維公司(DriverStduio 國內總代理)的大力贊助,特別是感謝技術部的王江濤,市場部的李強兩位先生的大力支持。同時要感謝我的女友,可愛的小貓(我對她的呢稱)的貼心照顧和支持(一些很好看的圖片就出自她手:))。在此我也要感謝論壇各大版主的鼎力支持和廣大網友的關懷。
DriverStudio工具包介紹
DriverStudio 是一套用來簡化微軟Windows 平臺下設備驅動程序的開發,調試和測試的工具包。
DriverStudio 當前的版本包括下列工具模塊:
DriverAgent
DriverAgent 為Win32 應用程序提供直接訪問硬件的功能。即使你沒有任何設備驅動程序開發的經驗或經歷,你也能編寫出DriverAgent應用程序來直接訪問硬件設備。DriverAgent 應用程序可以運行在 Windows 98, Windows 95, Windows NT 和 Windows 2000平臺上。(當前版本不支持Windows XP平臺。)
VToolsD
VToolsD 是一個用來開發針對Win9X (Windows 95 和 Windows 98)操作系統下設備驅動程序(VxD)的工具。VToolsD 中包括生成驅動程序源代碼的工具,run-time 和 interface 庫,以及一些驅動程序樣本,可以用來作為各種類型的設備驅動程序的基礎部分。
DriverWorks
DriverWorks對于Windows NT下和 Windows 98 與 Windows 2000共同支持的Win32驅動模型(WDM)設備驅動程序的開發提供完全的支持。DriverWorks中包含一個非常完善的源代碼生成工具(DriverWizard) 以及相應的類庫和驅動程序樣本,它提供了在C++下進行設備驅動程序開發的支持。
DriverNetworks
DriverNetworks 是針對Windows網絡驅動開發人員的一個模塊。在它的核心部分,DriverNetworks 是一個針對NDIS drivers 和 TDI clients (DriverSockets)的 C++ 的類庫。DriverNetworks 中也有Quick Miniport Wizard 用來直接開始一個NDIS Miniport 或 Intermediate Driver 工程。它可以讓你快速的生成所有采用DriverNetworks C++ 類庫編寫的NDIS驅動程序的編譯,安裝和調試所需要的文件
SoftICE
SoftICE 是一個功能極其強大的內核模式調試器,它支持在配置一臺單獨的計算機或兩臺計算機下進行設備驅動程序的調試。
BoundsChecker Driver Edition
BoundsChecker 驅動程序版采用了NuMega針對應用程序開發的一種創新的錯誤檢測技術。BoundsChecker 驅動程序版中提供了參數確認和系統實施可以用來監視和跟蹤在不同的設備驅動程序與其它的操作系統的組件之間的所有的交互作用。配置向導提供了對于BoundsChecker 采集到的各種類型的大量信息的精確的控制。
BoundsChecker 驅動程序版當前支持Windows NT, Windows 2000, Windows Millennium Edition和 Windows 98。(當前版本不支持Windows XP)
DriverWorkbench
DriverWorkbench 可以使你進一步了解系統崩潰時的dump 文件和當時的事件。由于與BoundsChecker Driver Edition集成在一起, 在DriverWorkbench 中可以看到在系統崩潰前或其登錄的時候由BoundsChecker 采集到的數據。這種獨特的查看系統的方式提供了空前的能力,使得可以通過查看在系統崩潰之前系統實際活動的蹤跡來發現問題之所在。
DriverWorkbench 中也包含了 TrueTime Driver Edition. TrueTime Driver Edition 是一個性能分析工具,可讓Windows NT 的設備驅動開發人員發現并修正驅動程序的性能瓶頸。TrueTime Driver Edition 是用來滿足對于設備驅動程序和內核模式下代碼開發人員的需求。一些額外的功能將出現在TrueTime Driver Edition 的下一個版本中。
DriverWorkbench 當前支持 Windows NT 和 Windows 9x. (當前版本不支持Windows XP)
FieldAgent
FieldAgent 可讓你對運行在客戶的計算機上的驅動程序進行處理。由FieldAgent收集到的信息可用于追捕到那些可能只發生在特定的配置環境下問題的原因。
FieldAgent 當前支持 Windows NT 和 Windows 9x. (當前版本不支持Windows XP)
TrueCoverage Driver Edition
用來確保對于所有的代碼都已經完全被測試的方法是使用代碼覆蓋率工具。TrueCoverage 可以幫助你檢測代碼中的哪些部分已經被測試,哪些部分還沒有被測試。通過在開發過程中測量和跟蹤代碼的執行情況和穩定程度,可以節約測試時間并提高代碼的可靠性。TrueCoverage 能夠很輕松的收集驅動程序的覆蓋率數據,在源代碼的上下文中查看這些數據,也可以將多次會話的結果合并以累加覆蓋率的數據。
TrueCoverage Driver Edition當前支持 Windows NT 4.0 (Service Pack 3 or later) 和 Windows 2000. (當前版本不支持Windows XP)
在我們推薦你使用DriverWorks 或 VToolsD來開發設備驅動程序的同時,DriverStudio 中的工具與Microsoft DDK在一起也能很好的與其配合使用來開發出高質量的驅動程序。
DriverStudio套件包的安裝與運行環境設置
硬件和軟件需求
在安裝該產品前最好將你的系統進行備分。下列是安裝和運行DriverStudio 所需的要求:
· PC-compatible Intel x86 系統
· Microsoft Windows NT 4.0 (Service Pack 3 or later), Windows 2000, Whistler Build 2296. (Optional: 其中一些工具也支持 Windows 98 和 Windows 95.)
· 內存: 最少32 MB, 推薦使用64 MB
· 硬盤:完全安裝需要 72 MB
· 針對 SoftICE的遠程調試: NE2000-compatible 網卡或 3Com 網卡
· 針對 DriverWorks: Microsoft DDK,MS Visual C++
DriverStudio 也支持其它的編譯器。當前支持的編譯器的詳細列表參見http://www.numega.com/drivercentral/components/compatibility.shtml
安裝DriverWorks
1. 在安裝DriverWorks之前,首先要保證你的計算機上安裝了Microsoft Visual C++以及相應針對Windows NT 或WDM的DDK。
2. 在安裝完成后,啟動MSVC 5.0或6.0。啟動MSVC最好的方法是使用SetDDKGo工具,位于開始|程序|Numega DriverStudio|Tools菜單中(Setup DDk and Start MSVC)。SetDDKGo執行一系列的命令行參數來定義BASEDIR環境變量。
3. 在FILE|Open Workspace中打開DriverStudio\DriverWorks\Source\vdwlibs.dsw將VDWLIBS工程載入。
4. 選擇Build|Batch Build,選中你需要編譯的配置。
5. 點擊Build編譯所選擇的庫文件。
注意:庫文件只需在安裝完成后第一次使用前編譯一次即可。以后要使用DriverWorks,只需通過SetDDKGo進入MSVC即可。
安裝VtoolsD
安裝程序主要執行以下兩個基本的功能:
1. 將VtoolsD的組成文件復制到你指定的目錄下。
2. 創建配制文件USER.MAK,用來定義VtoolsD在系統中使用的符號。
USER.MAK是用來定位VtoolsD在系統中生成VxDs時使用的工具的配置文件。它由一系列的符號定義列表組成,每一個都告知 NMAKE 各個特定的程序在系統中駐留的位置。SETUP提示你輸入工具所需變量的路徑。
正確的USER.MAK是安裝成功的關鍵。在安裝完成后要檢查該文件。
一些在USER.MAK中定義的符號是文件,一些是用來控制生成過程的符號。下列表格說明了在USER.MAK中定義符號的含義 Symbol Meaning
COMPILER 選擇編譯器的符號: MS5 或 BCB3
DEBUGGER 選擇調試器的符號: SOFTICE3, WDEB386, 或NONE
C32 32-bit 命令行編譯器的完全路徑
每個符號定義語句的格式為 SYMBOL =
.
例如:
C32 = C:\BCC32\BIN\BCC32.EXE
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -