驅動程序環境搭配(VS2010 + WDK + VirtualDDK + VMware)

以前一直都是用 VS2008 + DDKWizard + WinDbg 來進行驅動程序的開發調試的,

使用 DDKWizard 來搭配調試環境呢,在 VS2008 下也還算方便,

因爲不需要自己去設置一些什麼包含文件啊,源代碼路徑啊之類的就可以直接編譯驅動程序源碼,

安裝好 DDKWizard 後,在 VS2008 中就會自動出現一個開發驅動程序的項目框架,

就跟選擇創建 WinForm 應用程序一樣的,創建好 DDK 項目後也是可以直接在 VS2008 下編譯的,

所以在開發上也還方便,但是在調試上的話,就麻煩了,

在 WinDbg 中有一大堆東西要設置,在虛擬機上也要設置一些命令,

關於 WinDbg + VMware 開發調試驅動程序在網上有比較有名的酒若琳的文章,

不過那是很多年以前的文章了,有興趣的可以去谷歌搜索 "酒若琳 WinDbg" ,應該是可以找到那篇文章的。

同時對於這一塊的使用,也可以參考筆者的文章《驅動開發 – WDK 調試及 SVN 環境搭配》,

博文地址爲:http://www.cnblogs.com/BoyXiao/archive/2011/05/06/2038578.html

但是在使用 DDKWizard + VS2008 進行驅動開發時,是不能夠直接通過 VS2008 來調試的

(這裏可能有其他門路來實現,但是筆者沒有實現過),

而一般都是在 WinDbg 中設置好符號文件的路徑以及源代碼的路徑,然後再驅動程序的源代碼中嵌入一些彙編代碼,

當然這些彙編代碼只是簡單的用來實現一箇中斷,從而在 WinDbg 調試器中會生成一個斷點。

這樣調試起來速度慢,也不好控制,所以有時候覺得在做開發的時候,在調試上花去的時間太多了,會不爽。

                                       

在本次博文中,將要介紹的是一個開源項目 VirtualDDK(VirtualKD 中包含了 VirtualDDK),

通過這個開源項目即可以很好的實現在 VS2010 以及 VS2008 下直接調試驅動程序,

同時對於 VirtualDDK 的環境搭配也是很簡單的,下面就直接上一些圖片以及一些註解來說明,

由於文章存在大量的截圖,所以讀者只要按着截圖來做基本上都是可以成功的。

同時下面給出官網上的一篇關於利用 VirtualDDK 和 VS 來調試驅動程序的文章(內容非常詳細),

基本上通過筆者的這篇博文和官網上的博文就完全可以搭建驅動程序開發環境成功了 !

同時在官網上的環境爲 VS2008 的。而且在官網的博文中還有兩個比較好的驅動例子の !

  • 1. A dummy driver that simply prints a message when it is loaded .

  • 2. A ramdisk driver, that creates a virtual hard disk .

《Making Your First Driver – Complete WalkThrough》

博文地址爲:http://articles.sysprogs.org/visualddk/firstdriver/

         

                                       

前期設置:

               

安裝虛擬機和 VS2010,然後再網絡和共享中心中進行一些設置,

設置即是將本地連接網卡,安裝虛擬機後生成的兩塊虛擬網卡的 IP 地址都改爲自動獲取 IP 地址,

同時需要修改一塊虛擬網卡的共享屬性。

2011-07-31_142418

2011-07-31_142322

2011-07-31_142238

2011-07-31_142205

在虛擬機中安裝好 Windows 操作系統並且設置網卡類型爲 NAT 類型

image

將本地主機開啓遠程,並且將本地主機的防火牆全部關掉

(這一步,看你運氣了,有時候不設置這些東西,在 VS2010 下也是可以利用 VirtualDDK 調試驅動程序成功的,

但是你人品不好的時候就難說了,就比如我自己,前些日子不設置這些東西也都可以調試的,

但是這幾天死活調不上,結果把上面這兩東西設置了就可以調試了,估計是因爲 VirtualDDK 需要 UDP 來進行調試,

所以,防火牆還是禁用比較好,但是我一直都不明白這個調試和開不開遠程有何關係,感覺着不是扯淡嘛)

2011-07-31_142516

2011-07-31_142722

同樣在你的虛擬機操作系統上,我這裏安裝的是 XP ,

也一樣需要開啓遠程並且關閉防火牆,理由同上,看你人品了。

2011-07-31_142557

2011-07-31_142640

                         

                      

檢測是否設置成功:

           

設置好上面這些東西后,我們需要來檢測一下,這個檢測是必要的,

因爲如果你檢測沒有通過的話,在後面是絕對不可能成功的利用 VS2010 + VirtualDDK 來調試驅動程序的

1. 在主機裏面 Ping 虛擬機上的 XP 操作系統(必須成功)。

2. 在虛擬機裏面的 XP 操作系統中 Ping 本地主機(必須成功)。

3. 在虛擬機裏面的 XP 操作系統中通過網上鄰居訪問本地主機(必須成功)。

2011-07-31_142947

image

                      

                               

下載和安裝 VirtualDDK:

           

安裝好 VirtualDDK 後(一般安裝在 C:\Program Files\VisualDDK 目錄下),

可以在該目錄下看到一個 Target 文件夾,

將這個 Target 文件夾拷貝到虛擬機上的 XP 操作系統下,並且運行 Target 文件夾下的 vminstall.exe,

然後將虛擬機中的 XP 操作系統重新啓動(安裝完 vminstall.exe 後會提示需要重啓系統)。  

                          

                     

VS2010 創建 VirtualDDK 項目:

           

打開 VS2010 ,創建 VirtualDDK 項目,創建過程如下截圖:

2011-07-31_013137

2011-07-31_013316

創建好 VirtualDDK 項目後,您可以嘗試着生成以下解決方案,可以看到很容易的生成了解決方案,

也會在指定的目錄下生成 .sys 文件和 .pdb 文件。

                            

                 

調試驅動程序:

           

開始調試驅動程序:

首先是啓動虛擬機中的 XP 操作系統,等到 XP 操作系統出現以下界面時(你可以通過上下鍵來使得 30 秒倒計時停止),

2011-07-31_143104

到 VS2010 中,完成以下操作:

2011-07-31_143555

2011-07-31_143137

2011-07-31_143617

當出現下面的錯誤提示時,直接確定忽略,然後重新 Start Debug 即可

2011-07-31_143648

然後再加載我們自己寫的這個驅動程序即可,這樣就會出現調試界面了,

2011-07-31_144059

在虛擬機中也會顯示一些消息:

2011-07-31_144117

                         

                 

在 VBox 下調試驅動程序:

                          

在 VBox 下調試驅動程序其實和在 VMware 下調試是差不多的,也就是具體的操作和上面的操作基本上是一樣的,

但是需要改變一點點東西,

首先定位到 VBox 的安裝目錄(C:\Program Files\Oracle\VirtualBox),

可以在該目錄下看到一個 VBoxDD.dll,我們需要將這個文件的名字改爲 VBoxDD0.dll,

image

改名後,我們再定位到 VirtualDDK 的安裝目錄下(C:\Program Files\VisualDDK\VirtualBox\x86),

並且將該目錄下的 VBoxDD.dll 拷貝到上面的這個目錄(C:\Program Files\Oracle\VirtualBox)下。

image

至於其他的步驟的話,就和前面在 VMware 下的操作是一樣的了。

                

                    

版權所有,迎轉載,但轉載請註明: 轉載自 Zachary.XiaoZhen - 夢想的天空

                    

                          

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