以前一直都是用 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 地址,
同時需要修改一塊虛擬網卡的共享屬性。




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

將本地主機開啟遠程,并且將本地主機的防火墻全部關掉
(這一步,看你運氣了,有時候不設置這些東西,在 VS2010 下也是可以利用 VirtualDDK 調試驅動程序成功的,
但是你人品不好的時候就難說了,就比如我自己,前些日子不設置這些東西也都可以調試的,
但是這幾天死活調不上,結果把上面這兩東西設置了就可以調試了,估計是因為 VirtualDDK 需要 UDP 來進行調試,
所以,防火墻還是禁用比較好,但是我一直都不明白這個調試和開不開遠程有何關系,感覺著不是扯淡嘛)


同樣在你的虛擬機操作系統上,我這里安裝的是 XP ,
也一樣需要開啟遠程并且關閉防火墻,理由同上,看你人品了。


檢測是否設置成功:
設置好上面這些東西后,我們需要來檢測一下,這個檢測是必要的,
因為如果你檢測沒有通過的話,在后面是絕對不可能成功的利用 VS2010 + VirtualDDK 來調試驅動程序的
1. 在主機里面 Ping 虛擬機上的 XP 操作系統(必須成功)。
2. 在虛擬機里面的 XP 操作系統中 Ping 本地主機(必須成功)。
3. 在虛擬機里面的 XP 操作系統中通過網上鄰居訪問本地主機(必須成功)。


下載和安裝 VirtualDDK:
安裝好 VirtualDDK 后(一般安裝在 C:\Program Files\VisualDDK 目錄下),
可以在該目錄下看到一個 Target 文件夾,
將這個 Target 文件夾拷貝到虛擬機上的 XP 操作系統下,并且運行 Target 文件夾下的 vminstall.exe,
然后將虛擬機中的 XP 操作系統重新啟動(安裝完 vminstall.exe 后會提示需要重啟系統)。
VS2010 創建 VirtualDDK 項目:
打開 VS2010 ,創建 VirtualDDK 項目,創建過程如下截圖:


創建好 VirtualDDK 項目后,您可以嘗試著生成以下解決方案,可以看到很容易的生成了解決方案,
也會在指定的目錄下生成 .sys 文件和 .pdb 文件。
調試驅動程序:
開始調試驅動程序:
首先是啟動虛擬機中的 XP 操作系統,等到 XP 操作系統出現以下界面時(你可以通過上下鍵來使得 30 秒倒計時停止),

到 VS2010 中,完成以下操作:



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

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

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

在 VBox 下調試驅動程序:
在 VBox 下調試驅動程序其實和在 VMware 下調試是差不多的,也就是具體的操作和上面的操作基本上是一樣的,
但是需要改變一點點東西,
首先定位到 VBox 的安裝目錄(C:\Program Files\Oracle\VirtualBox),
可以在該目錄下看到一個 VBoxDD.dll,我們需要將這個文件的名字改為 VBoxDD0.dll,

改名后,我們再定位到 VirtualDDK 的安裝目錄下(C:\Program Files\VisualDDK\VirtualBox\x86),
并且將該目錄下的 VBoxDD.dll 拷貝到上面的這個目錄(C:\Program Files\Oracle\VirtualBox)下。

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