網上教程很多、如何去安裝如何去配置
但是也有些坑感覺並不是那麼的完善
wdk+vs下載連結:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
只要wdk版本與sdk版本對應就行,不用在意是vs20xx
我這邊以vs2017+wdk10+win1909舉例子
一、安裝環境
在單個元件中選擇 SDK -> Windows 10 SDK(10.0.XXXXX.X) 我這裡使用的是Windows 10 SDK(10.0.17763.0)
然後去選擇你的WDK版本 我這裡對應的是Windows 10 版本 1809 的WDK 那麼下載這個就行了
WDK安裝包會自動檢測你與SDK版本符合不符合 如果不符合安裝的時候會有警告提示那麼換其他版本就行(手動狗頭)
WDK安裝完畢自動載入到vs擴充套件上,若沒有載入找到WDK根目錄列如:C:\Program Files (x86)\Windows Kits\10\Vsix
手動開啟目錄下WDK.vsix重新安裝擴充套件即可
二、環境測試
安裝完畢後、新建專案
選擇一個空專案吧、新增新建項
為了省事直接建的是後輟名C、要不然還得extern “C”
寫入程式碼
1 #include <ntddk.h> 2 3 //回撥 監視系統程式列印 4 VOID nothting(HANDLE ppid, HANDLE mypid, BOOLEAN bcreate) 5 { 6 7 DbgPrint("ProcessNotify\n"); 8 } 9 //解除安裝函式 10 11 VOID DriverUnload(PDRIVER_OBJECT driver) 12 { 13 PsSetCreateProcessNotifyRoutine(nothting, TRUE); 14 DbgPrint("Unload"); 15 16 } 17 18 19 //入口函式 相當於main 20 NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING reg_path) 21 { 22 DbgPrint("%wZ\n", reg_path); 23 driver->DriverUnload = DriverUnload; 24 PsSetCreateProcessNotifyRoutine(nothting, FALSE); 25 return 0; 26 }
到現在你還是不可以跑、需要經過一下設定。
三、環境設定
設定C/C++的警告等級
其他的也不用過於設定、到用的時候你自然就會不用的時候設定了也沒用。
好了現在就可以跑通了。
四、常見問題
很多朋友可以跑通但是載入驅動的時候會出現錯誤,這裡也把錯誤都稍微的總結一下吧。
1、驅動禁止載入
如果你在64位跑但是你生成的是32位的驅動版本那指定是不行的
改為64位再生成
2、驅動沒有簽名
解決辦法1、開機F8 最後一項中選擇禁用驅動程式簽名強制 - > 不推薦 每次開機都要設定一遍
解決辦法2、
1.1右鍵桌面上的“計算機”→“屬性”。
1.2選擇左邊選項卡的“高階系統設定”。
1.3切換到左邊的“硬體”選項卡→選擇第二個“裝置安裝設定”。
1.4在彈出來的視窗選擇“否”→第三項→“從不安裝”→“確定”即可
解決辦法3、
管理員開啟CMD 輸入 bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS 回車
一勞永逸、不用每次開機設定
解決辦法4、 網上查詢一個簽名工具列如:亞洲誠信 、找到一個過期的證書、給生成的sys檔案簽上名即可 -> 推薦
3、警告 MSB8038 已啟用 Spectre 緩解,但找不到 Spectre 緩解庫。
安裝Spectre緩解庫、微軟官方講解的很詳細,我直接就複製過來了。
WDK 預設啟用了 Spectre 緩解,但需要為要開發的每個體系結構將 Spectre 緩解庫安裝在 Visual Stuido 中。 此外,開發適用於 ARM/ARM64 的驅動程式還需要這些體系結構的生成工具也安裝在 Visual Studio 中。 若要查詢這些項,需要知道系統上安裝的 MSVC 的最新版本。
若要查詢系統上安裝的最新版 MSVC,請在 Visual Studio 安裝程式中轉到“工作負荷”頁,在右側窗格的“安裝詳細資訊”下展開“使用 C++ 的桌面開發”,然後找到“MSVC v142 - VS 2019 C++ x64/x86 生成工具(V14.xx)”(請注意,其中的 xx 應該就是可用的最高版本)。
有了此資訊 (v14.xx),轉到“單個元件”,然後搜尋“v14.xx”。 這會返回所有體系結構的工具集,包括 Spectre 緩解庫。 選擇要為其開發的驅動程式體系結構。
例如,搜尋 v14.25 返回以下內容:
MSVC v142 - VS 2019 C++ ARM build tools (v14.25) |
MSVC v142 - VS 2019 C++ ARM Spectre-mitigated libs (v14.25) |
MSVC v142 - VS 2019 C++ ARM64 build tools (v14.25) |
MSVC v142 - VS 2019 C++ ARM64 Spectre-mitigated libs (v14.25) |
MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.25) |
MSVC v142 - VS 2019 C++ x64/x86 Spectre-mitigated libs (v14.25) |