2013-01-17 155 views
2

我是新來的Windows驅動程序開發人員,所以如果我的問題太愚蠢,請耐心等待。那麼,我不確定爲什麼,如MSDN所建議的那樣,以及我認爲的方式,主機(例如開發驅動程序)和目標計算機(例如調試驅動程序)需要是兩個獨立的。爲什麼這樣分離?我確實試圖通過在主機上部署和調試驅動程序來合併這兩種驅動程序,在這種主機上我正在開發一個驅動程序,而且它似乎在Windows中沒有反對意見。謝謝。windows驅動程序開發

PS。這樣的來源http://msdn.microsoft.com/en-us/library/windows/hardware/hh698272(v=vs.85).aspx讓我這麼想。

+0

系統可能會死鎖。 (在單個處理器系統上,它幾乎是必然的。) –

+0

這是唯一的原因嗎?謝謝 –

+0

不知道,但它是一個很好的IMO。基本上,底線是如果你不介意系統崩潰的風險,並且如果它似乎對你有用,請繼續。只要確保你的備份是好的。 –

回答

2

實際上,當您正在開發和測試驅動程序時,在很多情況下您會遇到系統崩潰(BSOD),並且您的系統可能無法啓動。在這種情況下,您的開發+調試器環境也不見了/無法訪問。

+0

當我們說測試一個驅動程序時,我們是否需要一個用於該驅動程序的設備?或者微軟公開了一些仿真器或仿真器類型的接口來測試驅動程序? – DeveloperLove

+0

@DeveloperLove,如果你正在爲一些實際的硬件設備編寫驅動程序,那麼你將不得不插入它。但是,如果驅動程序實際上不是物理設備如文件系統過濾器驅動程序,則不需要額外的東西。希望這解釋。 – Rohan

+0

感謝Rohan爲你的答覆..就像我開始在Windows驅動程序開發..我想我會開始與音頻驅動程序..但正如你告訴我們,我們需要有一些設備..所以與USB我可以開始和領先?而且,我懷疑我們是否也可以使用音頻,圖像,顯示驅動程序?由於設備與這些驅動程序已經是我的電腦的一部分... – DeveloperLove

0

內核調試需要兩個獨立的機器。你不能通過明顯的原因來調試自己(調試器和調試對象在同一個內核中並且出現死鎖)。當然,目標機器可以是虛擬機器。

0

當我們開發一個驅動程序並進行測試時,系統會崩潰,並出現一個藍屏(稱爲藍屏死機藍屏)。這不像開發用戶模式應用程序那樣,並且由於內存錯誤而崩潰。您的驅動程序將作爲內核模式應用程序運行,如果由於任何非法內存操作而崩潰,那麼整個系統就會消失。這不是一個簡單的問題需要解決,您需要登錄到安全模式並從系統中刪除驅動程序以恢復它。

由於這個原因,最好使用目標機器大多是安裝了驅動程序的VM和主機,我們將使用調試器來調試驅動程序。