小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VS2010+VMWare8+VisualDDK1.5.6 創(chuàng)建并調(diào)試你的第一個驅(qū)動程序

 erran 2015-12-14

2011-12-23 20:52:41|


本文描述了如何使用Visual Studio+VMMare+VisualDDK來創(chuàng)建、編譯和調(diào)試你的第一個驅(qū)動程序。本文提供在開發(fā)和調(diào)試工具的環(huán)境下詳細的操作步驟,而無需太多的關心這些環(huán)境背后所做的事情。如果你想學習更多驅(qū)動程序開發(fā)的API,可以參考 Online WDK help

本教程我們會創(chuàng)建以下驅(qū)動測序并且在虛擬機上測試它:

  • 一個超級簡單的驅(qū)動,加載時打印一條信息

如果你有另外一臺實體機,你就不用安裝虛擬機了。不過,你可能需要COM連接或者一個火線連接兩臺機子。

必備軟件

開始寫驅(qū)動之前,你需要準備一些軟件(點擊超鏈接直接下載)。

  • VMWare,虛擬機軟件,用于運行用于調(diào)試的虛擬機。

  • Windows安裝鏡像,用來給虛擬機裝系統(tǒng)。建議使用XP或Windows7(如果你內(nèi)存大一點,建議Windows7)。要是沒有你可以找人拷或者到msdn.下載

  • Visual Studio 2010,用來寫代碼

  • Windows Driver Kit (WDK) 7.1.0,用于Windows驅(qū)動開發(fā)的工具包

  • VisualDDK,將WDK和VS結合配置好的一個可視化VS插件

如果你不知道ISO鏡像怎么使用,下載一個UltraISO然后去找下相關用法。

準備工作

  • 第一步是安裝虛擬機軟件。這個過程很簡單,只需要按照步驟一步一步來。

  • 然后是創(chuàng)建一個虛擬機,以VMWare Workstation 8為例。
    • 點擊File-New Virtual Machine

    • 選擇Custom(advanced)

    • 硬件兼容性無所謂,如果你用最新的VMWare,選擇Workstation 8.0

    • 選擇操作系統(tǒng):這里選擇你的操作系統(tǒng)鏡像

    • 然后填寫虛擬機操作系統(tǒng)的個人資料(Windows7的話密鑰可以不填)

    • 然后是設置CPU和內(nèi)存,默認的就可以。

    • 選擇網(wǎng)絡設置,Bridge或者NAT都可以

    • IO設置默認,磁盤創(chuàng)建新的磁盤文件

    • 最后點一下Finish,會自動安裝操作系統(tǒng),等其裝好(太扯淡裝Win7用了10分鐘)。

  • 在虛擬機上安裝支持軟件并創(chuàng)建快照。
    • 如果使用自動安裝系統(tǒng)的方式,系統(tǒng)安裝好后,會自動安裝支持工具

    • 手動安裝的方式是點擊菜單VM-Install VMware Tools,安裝一步步跟著向?qū)Ь托辛恕?br/>

    • 給干凈的系統(tǒng)創(chuàng)建一個快照。點擊菜單VM-Snapshot-Take Snapshot,快照名字叫干凈系統(tǒng)之類的。然后點Take Snapshot

  • 安裝Visual Studio 2010,裝過了就跳過。不過要注意的是,你的VS要至少包括C++和C#兩個模塊,如果不全,請重新安裝。

  • 安裝VAX(可選)。VAX只是要來方便你寫C++代碼的。
    • 啟動Visual Studio,選擇菜單工具-拓展管理器

    • 在"聯(lián)機庫"搜索"Visual Assist X",點擊下載

    • 下載完成后安裝,下次啟動VS就有效了。

  • 安裝Windows Driver Kit(WDK)。
    • 用UltraISO加載WDK的鏡像。(下文H: 表示虛擬光驅(qū)的盤符)

    • 選擇要安裝的功能,建議配置如下:

    • 安裝目錄就選擇默認目錄,改了的話你自己記住在哪兒。

    • 然后就開始安裝了

  • 安裝32位的Windows調(diào)試工具(DDK)。
    • 在WDK的ISO目錄底下找到H:\Debuggers\setup_x86.exe開始安裝。完全安裝即可。(Visual Studio是一個32位的軟件,所以不能使用64位的調(diào)試工具)。

  • 安裝和配置VisualDDK
    • 雙擊"VisualDDK-1.5.6.exe"開始安裝DDK

    • 裝完(很快)之后,會出現(xiàn)一個配置向?qū)?。如果你按照上面的步驟安裝,那么WDK位置和DDK位置會自動識別,直接點下一步。

    • 然后會讓你選擇VS的版本,如果你已經(jīng)裝有VS,它也會自動識別。

    • 點Finish開始進行物理機的配置(可能會自動啟動VS,不要動它,會自動關閉)。

  • 配置虛擬機
    • 網(wǎng)絡配置。依次選擇菜單VM-Settings,打開配置頁。選擇Network Adapter,將配置改為Bridge或者NAT。

      然后測試你的網(wǎng)絡連接,主機ping虛擬機,虛擬機ping主機應該能互通。

    • 復制 C:\Program Files (x86)\VisualDDK\target\vminstall.exe 到虛擬機上運行(如果正確安裝了VMTools,可以直接復制粘貼的,如果不行,重新安裝VMTools或使用VMWare 的網(wǎng)絡功能拷貝該文件)。

    • 點擊安裝,提示重啟(虛擬機),點是就可以了。重啟后,關閉虛擬機(沒錯,關掉它)。

使用向?qū)?chuàng)建驅(qū)動

  1. 以管理員權限運行Visual Studio(右擊-以管理員權限運行)

  2. 點擊文件-新建-項目,打開新建項目向?qū)?,選擇C++下的VisualDDK,

    注意:項目位置不可以包含空格,不可以包含中文,否則你會很悲劇(無法生成解決方案)

  3. 選擇一個Pnp的驅(qū)動,其他配置默認

  1. 現(xiàn)在打開你的源代碼,看到的應該是以下效果

  2. 生成解決方案。選擇菜單生成-生成解決方案。

    如果沒有錯誤,證明生成成功了。生成成功后,你可以右擊項目,點擊"在Windows資源管理器中打開文件夾",進入生成目錄(如objchk_win7_x86\i386)可以看到成功生成的sys驅(qū)動文件。

  3. 如果不需要調(diào)試,運行該sys文件就可以使用驅(qū)動了(安裝方式你得自己研究)。下面介紹調(diào)試的方法(調(diào)試會自動幫你安裝驅(qū)動程序)。

調(diào)試你的驅(qū)動

  1. 運行VisualDDK安裝目錄下的vmmon.exe或vmmon64.exe(如果你是64位系統(tǒng))。當然,你也可以在開始菜單處搜索到這兩個程序。

  2. 這時候啟動虛擬機,不要進入系統(tǒng),停在操作系統(tǒng)選擇菜單上!此時你的VMMonitor和虛擬機畫面應該是這樣的:

    注意,這步至關重要,如果你看到的PID字段上那個圖標不是綠色的,或者說Pipe name沒有建立出來,將不能進行內(nèi)核調(diào)試。這個步驟我搞了n久找到了解決方案。如果你有這樣的問題,你可以這么做:

  • 進入目錄"%USERPROFILE%\AppData\Roaming\VirtualKD"

  • 將里面的*.vmpatch文件刪除

  • 重試上面的步驟

  1. VS中選擇菜單調(diào)試-Driver Launch Settings…

  • 首次調(diào)試,會提示你配置Visual DDK(這個操作你也可以通過菜單工具-VisualDDK Settings…進行)

    選擇好你的調(diào)試工具的目錄(如上,需要32位的調(diào)試工具)和符號目錄(調(diào)試符號,到時候會自動下載到該目錄)

  • 設置好VisualDDK后,應該會彈出調(diào)試設置對話框

    選擇Virtual Machine的調(diào)試方式,此時,應該可以選擇已經(jīng)加載管道的虛擬機了。其他使用默認配置(如果你手動指定了虛擬機的IP,最好再這里填寫),配置好之后,點Launch。

  1. 點擊Launch之后,你應該可以看到一個連接對話框,這個時候點Detail可以看到以下信息。它在等待虛擬機啟動。

  2. 這個時候啟動虛擬機(選擇VirtualKD調(diào)試),啟動的時候會為你加載符號。首次加載符號會從符號服務器下載,請耐心等候。

    如果有不能加載的符號,VisualDDK會彈出提醒(服務器上沒有),問你下次是否跳過這些符號,點OK就行了。

  3. 如果虛擬機版本是Vista以上,會跳出一個對話框,問你是否要打印調(diào)試信息,選是。

  4. 然后,VS此時會進入一個中斷。點擊調(diào)試-繼續(xù)讓內(nèi)核和驅(qū)動繼續(xù)加載

  5. 啟動的過程可能相當緩慢,而且VisualDDK的控制臺會輸出一些錯誤信息,這是正常的,請耐心等候

  6. 如果你的虛擬機成功啟動,恭喜你,你基本已經(jīng)成功了!成功啟動后,啟動虛擬機上的DDKLaunchMonitor(默認在C盤根目錄)。啟動后,可以看到虛擬機的IP是192.168.3.105

  7. 現(xiàn)在點擊VisualDDK控制臺上的加載驅(qū)動的命令(如果控制臺不見了,可以選擇菜單調(diào)試-窗口-VisualDDK Console調(diào)出來)

    點擊之后,可以看到以下對話框。因為剛才填寫調(diào)試配置的時候沒有填寫IP,現(xiàn)在需要重新填寫才能跟虛擬機通信。

    點擊菜單調(diào)試-停止調(diào)試,重新選擇菜單調(diào)試-Driver Launch Settings… ,將虛擬機的IP填上。

    這次再點擊Launch,你能成功連接了。

  8. 現(xiàn)在彈出了一個驅(qū)動安裝的配置向?qū)?,使用默認設置,然后點擊"Install"

  9. 此時看虛擬機,會彈出讓你安裝驅(qū)動程序的對話框,選擇"始終安裝此驅(qū)動程序"

  10. 當驅(qū)動安裝成功,你可以看到,輸出的調(diào)試信息"Hello from PnpDriver",輸出的語句你可以在你的源代碼的DriverEntry函數(shù)中找到。

  11. 要結束調(diào)試,記住點擊"調(diào)試"-"結束調(diào)試"。

  12. 下次繼續(xù)調(diào)試,不用重啟虛擬機,可以直接使用建立好的管道。下面敲個斷點試試。

  13. 調(diào)試情況:

問題收集

  1. 調(diào)試菜單下沒有VisualDDK的相關菜單項。

    此時你可以試試打開我的文檔,把Visual Studio 2010目錄底下的Addins文件夾刪掉再重裝VisualDDK。如果還不行,你可以試試把整個Visual Studio 2010目錄刪掉(注意備份你以前的工程)

  2. 沒法連接到我的VMWare虛擬機

    正確的步驟是,在VMWare啟動時,將界面停留在os 選擇這里,然后點擊Driver Launch Settings,設置好,然后點擊Launch,然后在VMWare里進入系統(tǒng)。經(jīng)過這樣的步驟后,虛擬機系統(tǒng)里的驅(qū)動,才可以被正常的調(diào)試。

    如果你在VMMon看到的"指示圖標"不是綠色的,你需要刪除%USERPROFILE%\AppData\Roaming\VirtualKD下的*.vmpatch文件

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多