2011-06-02 59 views
0

我有一個自定義PCI卡的驅動程序,該驅動程序在XP上生成並運行良好。我試圖在W7上使用這個自定義硬件,並試圖構建並運行我的驅動程序。將驅動程序從XP升級到W7

我已經從微軟獲得了最新的DDK,並使用Windows XP「x86 Free Build Environment」構建了我的XP驅動程序。一切安裝&工作正常。 (使用DDK「構建」命令構建)

如果我使用Windows 7「x86免費構建環境」構建環境,則一切正常。我通過PREfast和staticdv代碼檢查程序運行它,並且沒有任何錯誤。 (我收到了一些關於「調度函數'FooFnc'沒有任何__drv_dispatchType註釋」的警告 - 這些可能是問題嗎?)

當我安裝時,安裝開始OK(有關驅動程序的標準錯誤被簽名),但達到某個點後掛起,然後失敗並出現超時錯誤。該設備隨後顯示在設備管理器中。此時PC不會關機或啓動,但會無限期掛起。我被迫啓動到安全模式並從那裏卸載驅動程序。

所以我的問題(S)是:

  1. 如果已經在XP和W7的驅動程序模型的變化,什麼是找到它的最佳方式?我在MSDN上看不到任何東西。

  2. 我該如何去調試驅動程序?該盒子沒有啓動,所以它不像我可以運行WinDBG。

  3. 任何具體的W7驅動程序陷阱都隱藏起來了嗎?

我試圖保持這個儘可能的通用,但如果更詳細的將是有益的,我會提供更多的

+1

驅動程序模型*在XP和7之間肯定有*改變。大多數改變實際發生在Vista中。應該有關於您下載的DDK包含的信息。 – 2011-06-02 16:18:56

回答

0

據我所知,最大的變化已經在視頻和網絡驅動程序作出。其他驅動程序保留向後兼容性,即使沒有重新編譯,也可以在W7上運行。

driver verifier下運行您的驅動程序並打開generating crash dumps with a keyboard(系統掛起時非常有用,您可以手動生成crashdump,分析它並查找錯誤)。

希望這會有所幫助!

+0

發現問題,驅動程序未正確傳遞IRP到驅動程序堆棧。這對XP有效,但在W7上無法使用。你是正確的,一旦這個問題得到解決,相同的二進制驅動程序就可以在Xp和W7上工作,所以我會標記你是正確的。 – Dave 2011-06-16 10:24:58

相關問題