1. 程式人生 > >win10+vs2015配置驅動註意點

win10+vs2015配置驅動註意點

文件 如果 測試 net 打印 tco 引用 images registry

測試源碼

#include <ntddk.h>   
VOID DriverUnload(PDRIVER_OBJECT objDriver)
{
    // 避免編譯器關於未引用參數的警告  
    UNREFERENCED_PARAMETER(objDriver);

    // 什麽也不做,只打印一行字符串  
    KdPrint(("My Dirver is Ending..."));
}

NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath)
{
    // 避免編譯器關於未引用參數的警告  
    UNREFERENCED_PARAMETER(strRegPath);

    // 打印一行字符串,並註冊驅動卸載函數,以便於驅動卸載  
    KdPrint(("My  Dirver Is Starting!\r\n"));

    objDriver->DriverUnload = DriverUnload;

    return STATUS_SUCCESS;
}

配置正確的版本(註意是14 如果其它的話會出錯)
技術分享圖片
如果是15的話出錯
技術分享圖片
技術分享圖片
同時要註意類型 與windows平臺(這裏為win7)桌面還是服務
技術分享圖片
技術分享圖片
配置好後生成.sys文件
技術分享圖片
想要windbg看到輸入字符串要做一些設置
新建一個txt文件把下面的復制 保存為.reg文件 雙擊運行再重啟電腦

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:0000000f

技術分享圖片
sys不能雙擊運行要用程序啟動 可以自己寫或網上下載
效果如下
技術分享圖片
可以看源碼(debug下)
但要先下個斷點

NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath)
{
    // 避免編譯器關於未引用參數的警告  
    UNREFERENCED_PARAMETER(strRegPath);
    _asm int 3;
    // 打印一行字符串,並註冊驅動卸載函數,以便於驅動卸載  
    KdPrint(("My  Dirver Is Starting!\r\n"));

    objDriver->DriverUnload = DriverUnload;

    return STATUS_SUCCESS;
}

運行
技術分享圖片
技術分享圖片
參考:
http://www.mycode.net.cn/language/cpp/1771.html

win10+vs2015配置驅動註意點