共用方式為


根據樣本撰寫通用 Windows 驅動程式 (UMDF 2)

本主題描述如何使用使用者模式驅動程序架構 (UMDF) 2 撰寫 通用 Windows 驅動程式 。 您將從visual Studio 樣本Microsoft開始,然後在不同的電腦上部署及安裝驅動程式。

若要開始使用,請確定您有最新版的 Microsoft Visual Studio 和 Windows Driver Kit (WDK)。 如需下載連結,請參閱下載 Windows 驅動程式套件(WDK)。

當您安裝 WDK 時,會包含適用於 Windows 的偵錯工具。

建立和建置驅動程式

注意

當您建立新的 KMDF 或 UMDF 驅動程式時,您必須選取具有 32 個字元或更少字元的驅動程式名稱。 此長度限制定義於 wdfglobals.h 中。

  1. 開啟 Visual Studio。 在 [ 檔案] 功能表上,選擇 [ 新增 > 專案]。

  2. 在 [ 建立新專案 ] 對話框中,選取 左側下拉式清單中的 [C++ ],選擇 中間下拉式清單中的 [Windows ],然後在右側下拉式清單中選擇 [ 驅動程式 ]。

  3. 從項目類型清單中選取 [使用者模式驅動程式] [UMDF V2 ]。 選取 [下一步]。

    [新增專案] 對話框的螢幕快照,其中顯示已選取的使用者模式驅動程式。

  4. 在 [設定新專案] 對話框中,於 [項目名稱] 字段中輸入 “UmdfDriver”。

    注意

    當您建立新的 KMDF 或 UMDF 驅動程式時,您必須選取具有 32 個字元或更少字元的驅動程式名稱。 此長度限制定義於 wdfglobals.h 中。  

  5. 在 [ 位置] 欄位中,輸入您要在其中建立新項目的目錄。

  6. 取 [將方案與專案放在相同的目錄中 ],然後選取 [ 建立]。

    專案組態對話框的螢幕快照。

    Visual Studio 會建立一個專案和方案。 您可以在 [方案總管] 視窗中查看這些檔案。 (如果方案總管 視窗看不見,請從 [檢視] 功能表選擇 [方案總管]。解決方案有名為 UmdfDriver 的驅動程序專案。 若要查看驅動程式原始程式碼,請開啟 [原始程序檔] 底下的任何檔案。 Driver.c 和 Device.c 是不錯的起點。

    顯示驅動程式項目中檔案的方案總管螢幕快照。

  7. [方案總管] 視窗中,選取並按住 [或以滑鼠右鍵按兩下] [UmdfDriver] [UmdfDriver] [1 個專案],然後選擇 [Configuration Manager]。 選擇驅動程式專案的組態和平臺。 例如,選擇 [ 偵錯 ] 和 [x64]。

  8. [方案總管] 視窗中,選取並按住 [或以滑鼠右鍵按兩下] UmdfDriver,然後選擇 [屬性]。 流覽至 [ 組態屬性 > 驅動程序設定 > 一般],並注意 [ 目標平臺 ] 預設為 [通用]。

  9. 若要建置驅動程式,請從 [建置] 功能表選擇 [建置方案]。 Microsoft Visual Studio 會在 [ 輸出 ] 視窗中顯示建置進度。 (如果[輸出] 視窗無法顯示,請選擇 [檢視] 功能表中的 [輸出]。

    確認組建輸出包含:

    >    Driver is 'Universal'.
    

    當您確認已成功建置解決方案時,您可以關閉 Visual Studio。

  10. 若要查看建置的驅動程式,請在 檔案總管 中移至UmdfDriver資料夾,然後移至 x64\Debug\UmdfDriver。 目錄包含下列檔案:

    • UmdfDriver.dll -- 使用者模式驅動程式檔案
    • UmdfDriver.inf -- 安裝驅動程式時 Windows 使用的資訊檔案

部署及安裝通用 Windows 驅動程式

一般而言,當您測試和偵錯驅動程式時,調試程式和驅動程式會在不同的計算機上執行。 執行調試程式的計算機稱為 主計算機,而執行驅動程式的計算機稱為 目標計算機。 目標計算機也稱為 測試計算機

到目前為止,您已使用 Visual Studio 在主電腦上建置驅動程式。 現在您需要設定目標計算機。 遵循布建計算機以進行驅動程式部署和測試中的指示(WDK 10)。 然後,您將準備好部署、安裝、載入及偵錯驅動程式:

  1. 在主計算機上,在 Visual Studio 中開啟您的方案。 您可以在 UmdfDriver 資料夾中按兩下解決方案檔案UmdfDriver.sln。

  2. [方案總管] 視窗中,選取並按住 [或以滑鼠右鍵按兩下] UmdfDriver,然後選擇 [屬性]。

  3. 在 [ UmdfDriver 屬性頁] 視窗中,移至 [ 設定屬性 > 驅動程序安裝 > 部署],如下所示。

  4. 在部署之前,請先檢查移除先前的驅動程式版本。

  5. 針對 [ 目標裝置名稱],選取您為測試和偵錯設定的計算機名稱。

  6. 選取 [硬體標識符驅動程式更新],然後輸入驅動程式的硬體識別碼。 在此練習中,硬體標識碼為 Root\UmdfDriver。 選取 [確定]。

    umdfdriver 屬性頁的螢幕快照,其中顯示已選取的部署驅動程序安裝

    注意 在本練習中,硬體標識碼不會識別實際的硬體片段。 它會將裝置樹狀結構的位置識別為根節點子節點的虛構裝置。 針對實際硬體,請勿選取 [硬體標識符驅動程式更新],而是選取 [ 安裝並驗證]。 您可以在驅動程式的資訊 (INF) 檔案中看到硬體識別碼。 在 [方案總管] 視窗中,移至 [UmdfDriver > 驅動程序檔案],然後按兩下 UmdfDriver.inf。 硬體標識碼位於 [Standard.NT$ARCH$]。

    [Standard.NT$ARCH$]
    %DeviceName%=MyDevice_Install,Root\UmdfDriver
    
  7. 在 [偵錯] 功能表上,選擇 [開始偵錯],或在鍵盤上按 F5

  8. 等到目標電腦上部署、安裝及載入驅動程序為止。 這可能需要幾分鐘的時間。

使用驅動程式模組架構 (DMF)

驅動程式模組架構 (DMF) 是 WDF 的延伸模組,可為 WDF 驅動程式開發人員啟用額外的功能。 它可協助開發人員更快速地撰寫任何類型的 WDF 驅動程式。

DMF 即架構允許建立稱為 DMF 模組的 WDF 物件。 這些 DMF 模組的程式代碼可以在不同的驅動程式之間共用。 此外,DMF 會組合我們針對驅動程式開發的 DMF 模組連結庫,而且感覺會為其他驅動程式開發人員提供價值。

DMF 不會取代 WDF。 DMF 是搭配 WDF 使用的第二個架構。 利用 DMF 的開發人員仍會使用 WDF 及其所有基本類型來撰寫設備驅動器。

如需詳細資訊,請參閱 驅動程式模組架構 (DMF)

開發、測試和部署驅動程式

Windows 的偵錯工具

撰寫您的第一個驅動程式