iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

今天要來介紹如何建置WDF編譯環境,需要下載Visual Studio, SDKWDK

  • 首先需要下載Visual Studio, 這裡我們下載Community版本。
  • 執行安裝檔後選取安裝->工作負載->使用C++的桌面開發,右方會列出所有即將安裝的套件資訊,這裡可以看到在最下方SDK也一併下載及安裝了。
  • 最後安裝WDK,這裡要注意的是版本需要與SDK一致。
    • 使用預設路徑即可。
    • 安裝完成後會提示安裝WDK的Visual Studio元件,請記得要勾選。
    • 點選Install安裝。

如此一來基本的開發套件都下載完成了,接下來就可以測試編譯環境是否能順利編譯。

  • 開啟Visual Studio 2022,選取建立新的專案

  • 剛剛安裝WDK的Visual Studio元件主要用意在這裡,元件會一併安裝WDF的專案範本,上方選取C++/Windows/Driver,下方就會出現所有WDF的專案範本,這裡我們選取Kernel Mode Driver做編譯測試,接著點選下一步。

  • 這裡都維持預設值即可,最後點選建立。

  • 專案建立完成後,我們可以在畫面右上方對KMDF Driver1點右鍵選取建置

  • 可是這裡會發現編譯錯誤,有E1696MSB8040兩個主要的錯誤訊息,我們先來處理MS8804的錯誤訊息。

  • MSB8040主要是因為組態屬性>C/C++>程式碼產生>Spectre 風險降低被設定為啟用,需要Spectre風險降低的程式庫,這裡採取下載Spectre風險降低的程式庫來解決這個問題。而Spectre風險降低的程式庫在一開始安裝Visual Studio時並未一併下載,必須重新透過Visual Studio的安裝檔來下載。

  • 執行安裝檔後選取修改

  • 之後選取個別元件,依據所安裝的MSVC版本及平台去尋找降低Spectre風險的程式庫。

  • 而E1696這個錯誤,在這個範本裏是由於無法開啟.tmh(Trace Message Header File 追蹤訊息標頭檔)所產生的,因為KMDF範本使用了WPP軟體追蹤,這個功能用於新增追蹤訊息以協助偵錯驅動程式。

  • KMDF範本已將WPP軟體追蹤相關的設定都已設定好,現在只需要對方案點右鍵,選取分析與程式碼清除>針對方案執行Code Analysis.

  • 執行Code Analysis會一併重建專案。

  • 最後成功重建專案。

到這裡我們就完成了今天的任務,成功建置WDF編譯環境。

參考內容

下載 Windows 驅動程式套件 (WDK) - Windows drivers | Microsoft Learn
MSBuild 錯誤 MSB8040 - MSBuild | Microsoft Learn
在 KMDF 驅動程式中使用 WPP 軟體追蹤 - Windows drivers | Microsoft Learn


上一篇
Day02 Windows Driver Framework
下一篇
Day04 Windows 驅動程式範例
系列文
Windows Driver + Electron 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言