使用 INX 檔案建立 INF 檔案

當您撰寫 Windows 驅動程式時,您可以建立單一 INX 檔案,並使用 Microsoft Visual Studio 或 Stampinf 工具來在需要時產生版本特定的 INF 檔案,而不是維護多個版本特定的 INF 檔案。

INX 檔案就像 INF 檔案,但它包含代表版本資訊的字串變數。

當您使用 Visual Studio 建置驅動程式時,建置程式會執行 Stampinf,以代表特定硬體架構或架構版本的文字字串取代 INX 檔案中的字串變數。 您也可以手動執行 Stampinf,其位於 WDK 的 bin 子目錄中。

若要修改 Visual Studio 中的 Stampinf 屬性:

  1. 開啟驅動程式套件專案的 [屬性頁]。
  2. 以滑鼠右鍵按一下方案總管中的封裝專案,然後選取 [屬性]。
  3. 在封裝的屬性頁中,按一下 [ 組態屬性],然後按一下 [StampInf]。

WDK 包含所有 KMDF 和 UMDF 範例驅動程式的 INX 檔案。

您可以在 INX 檔案中使用下列字串變數:

$ARCH$

    Stampinf 會將此變數取代為架構特定的字串。 例如,如果您使用 x86 組建環境,此工具會將 $ARCH$ 取代為 「x86」。 無論您需要在 INF 檔案中指定特定架構,例如 [**INF Manufacturer 區段**] (,都可以使用 $ARCH$ 字串。/install/inf-manufacturer-section.md) ,如下所示:
    [Manufacturer]
    %StdMfg%=Standard,NT$ARCH$
    

$KMDFCOINSTALLERVERSION$

    如果您使用 [Stampinf] (../devtest/stampinf.md) 工具的 -*k* 選項,Stampinf 會將此變數取代為代表特定 KMDF 共同安裝程式版本的字串。 當您在 INF 檔案內指定架構的共同安裝程式時,可以使用 $KMDFCOINSTALLERVERSION$ 變數,例如 [**INF DDInstall.CoInstallers 區段**] (。/install/inf-ddinstall-cointallers-section.md) ,如下所示:
    [ECHO_Device.NT.CoInstallers]
    AddReg=ECHO_Device_CoInstaller_AddReg
    CopyFiles=ECHO_Device_CoInstaller_CopyFiles
    
    [ECHO_Device_CoInstaller_AddReg]
    HKR,,CoInstallers32,0x00010000, "WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll,WdfCoInstaller"
    
    [ECHO_Device_CoInstaller_CopyFiles]
    WdfCoInstaller$KMDFCOINSTALLERVERSION$.dll
    

$KMDFVERSION$

    如果您在 Visual Studio 中設定 [KMDF 版本號碼] 屬性, (或使用 [Stampinf] (./devtest/stampinf.md) 工具的 -*k* 選項) ,Stampinf 會將此變數取代為代表特定 KMDF 版本的字串。 當您在 INF 檔案中指定架構的版本時,可以使用 $KMDFVERSION$ 變數,例如當您指定 [KmdfLibraryVersion] (installing-the-framework-s-co-installer.md) 指示詞時,如下所示:
    KmdfLibraryVersion = $KMDFVERSION$
    

$UMDFCOINSTALLERVERSION$

    [SourceDisksFiles]WudfUpdate_$UMDFTALLERVERSION$.dll=1

    [CoInstallers_CopyFiles]WudfUpdate_$UMDFTALLERVERSION$.dll

    [CoInstallers_AddReg] HKR,,CoInstallers32,0x00010000,"WUDFUpdate_$UMDFCOINSTALLERVERSION$.dll"

$UMDFVERSION$

    [UMDFYourDriver_Install]
    UmdfLibraryVersion=$UMDFVERSION$
    

Stampinf 也支援 -u 選項,以取代 INX 檔案中的 UMDF 字串變數。 如果您的驅動程式套件同時包含 UMDF 型驅動程式和 KMDF 型驅動程式,您可以使用 -k 和 -u 選項搭配單一 Stampinf 命令和單一 INX 檔案。