国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

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

2011-12-23 20:52:41|


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

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

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

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

必備軟件

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

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

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

  • Visual Studio 2010,用來寫代碼

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

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

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

準(zhǔn)備工作

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

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

    • 選擇Custom(advanced)

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

    • 然后就開始安裝了

  • 安裝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ū)АH绻惆凑丈厦娴牟襟E安裝,那么WDK位置和DDK位置會自動識別,直接點(diǎn)下一步。

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

    • 點(diǎn)Finish開始進(jìn)行物理機(jī)的配置(可能會自動啟動VS,不要動它,會自動關(guān)閉)。

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

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

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

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

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

  1. 以管理員權(quán)限運(yùn)行Visual Studio(右擊-以管理員權(quán)限運(yùn)行)

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

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

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

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

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

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

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

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

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

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

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

  • 進(jìn)入目錄"%USERPROFILE%\AppData\Roaming\VirtualKD"

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

  • 重試上面的步驟

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    這次再點(diǎn)擊Launch,你能成功連接了。

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

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

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

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

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

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

問題收集

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

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

  2. 沒法連接到我的VMWare虛擬機(jī)

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

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows驅(qū)動開發(fā)如何入門
優(yōu)化VMware Server虛擬機(jī)系統(tǒng)
VM虛擬機(jī)常見問題之-虛擬機(jī)操作系統(tǒng)安裝問題
能否把Windows系統(tǒng)裝在大點(diǎn)的U盤里,隨時帶著身上?
關(guān)于在虛擬機(jī)里winxp下安裝win7的 SCSI 問題
【原創(chuàng)】解決VMware16無法在Win7安裝VMTools的問題,報Windows 無法驗證此驅(qū)動程序軟件的發(fā)布者
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服