2015-12-27 54 views
1

我在啓動kernelmode驅動程序時遇到了一個煩人的錯誤。目前我正在使用服務來「按需」啓動驅動程序。驅動程序被加載但立即失敗並顯示藍屏。wdk 8.1 kmdf驅動程序藍屏

驅動程序的代碼非常簡單:

#include <ntddk.h> 

NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath) 
{ 
    UNREFERENCED_PARAMETER(DriverObject); 
    UNREFERENCED_PARAMETER(RegistryPath); 
    DbgPrint("DriverEntry\n"); 
    return STATUS_SUCCESS; 
} 

我是相當新的驅動程序/內核的研究與開發,因此我只是試圖做的非常小的步驟。不過,我不確定哪些信息是相關的,以便讓某人給我正確的提示。

另外我不知道如何解釋藍屏的數據。我可以在某些轉儲文件中找到顯示的地址,這會導致我發現錯誤的來源?

是否有一個通用的「清單」,以避免在驅動程序開發過程中可能發生的最明顯的錯誤?因爲我覺得這個bug不在驅動程序的代碼中。

我目前在MS Windows 7 SP1(64位)上使用WDK 8.1和MS Visual Studio 2015社區。

爲了能夠在我的本地機器上運行測試場景的驅動程序,我禁用了驅動程序簽名強制執行了十幾次。也許這是一些相關的信息。

在此先感謝:)

+1

你會得到哪些STOP代碼? http://msdn.microsoft.com/en-us/library/hh994433%28v=vs.85%29.aspx – magicandre1981

+0

停止代碼是0x7E,這意味着「SYSTEM_THREAD_EXCEPTION_NOT_HANDLED」。異常代碼是0xFFFFFFFF80000003,它似乎與msdn文檔中的代碼0x80000003相關,並被描述爲「STATUS_BREAKPOINT」。 – user3272529

+1

檢查DbgPrint文檔:https://msdn.microsoft.com/en-us/library/windows/hardware/ff543632(v=vs.85).aspx。還有你編譯Win7的驅動程序?我的最後一個驅動程序是NT4,所以我不知道任何新的東西。等待有更多知識的人 – magicandre1981

回答

0

問題已解決。該驅動程序是爲錯誤的操作系統版本而構建的。這些都是necassary在使用WDK 8.1 MS Visual Studio的2015年重定向內核模式驅動程序的步驟:

轉到標題欄,然後選擇...

解決方案:項目 - >屬性 - >驅動程序設置 - >常規 - >目標操作系統版本

您現在可以從下拉列表中選擇正確的操作系統版本。

相關問題