使用 INX 檔案建立 INF 檔案
當您撰寫 Windows 驅動程式時,您可以建立單一 INX 檔案,並使用 Microsoft Visual Studio 或 Stampinf 工具來在需要時產生版本特定的 INF 檔案,而不是維護多個版本特定的 INF 檔案。
INX 檔案就像 INF 檔案,但它包含代表版本資訊的字串變數。
當您使用 Visual Studio 建置驅動程式時,建置程式會執行 Stampinf,以代表特定硬體架構或架構版本的文字字串取代 INX 檔案中的字串變數。 您也可以手動執行 Stampinf,其位於 WDK 的 bin 子目錄中。
若要修改 Visual Studio 中的 Stampinf 屬性:
- 開啟驅動程式套件專案的 [屬性頁]。
- 以滑鼠右鍵按一下方案總管中的封裝專案,然後選取 [屬性]。
- 在封裝的屬性頁中,按一下 [ 組態屬性],然後按一下 [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 檔案。