INF DDInstall.Interface 區段
每個模型,DDInstall_。介面 區段可以有一或多個 AddInterface 指示詞,視特定裝置/驅動程式支援的裝置介面數目而定。
[install-section-name.Interfaces] |
[install-section-name.nt.Interfaces] |
[install-section-name.ntx86.Interfaces] |
[install-section-name.ntia64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntamd64.Interfaces] | (Windows XP and later versions of Windows)
[install-section-name.ntarm.Interfaces] | (Windows 8 and later versions of Windows)
[install-section-name.ntarm64.Interfaces] (Windows 10 version 1709 and later versions of Windows)
AddInterface={InterfaceClassGUID} [, [reference string] [,[add-interface-section] [,flags]]] ...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...]
若要支援現有的裝置介面,例如系統任何預先定義的核心串流介面,請在本節中指定適當的 InterfaceClassGUID 值。
若要安裝類別驅動程式之類的元件,其會導出新類別的裝置介面, INF 也必須有 INF InterfaceInstall32 區段。
如需裝置介面的詳細資訊,請參閱 裝置介面類別。
項目
AddInterface={InterfaceClassGUID} [,[reference string] [,[add-interface-section] [,,flags_]]]...
這個指示詞會安裝裝置介面類別的支援,由驅動程式匯出至較高層級元件的指定 InterfaceClassGUID 值所指定。 通常,它也會參考 INF 檔案中其他位置的 INF-writer-defined add-interface-section 。 如需如何指定此指示詞的詳細資訊,請參閱 INF AddInterface 指示詞。
Include=,filename。inf[,filename2.inf]...
這個選擇性專案會指定一或多個額外的系統提供的 INF 檔案,其中包含註冊此裝置/驅動程式所支援介面類別所需的區段。 如果指定此專案,通常是 需求 專案。
Needs=,inf-section-name[,inf-section-name]...
這個選擇性專案會指定安裝此裝置期間必須處理的特定區段。 一般而言,這類具名區段是 ,DDInstall_。 包含在 Include 專案中列出的系統提供 INF 檔案內的介面區段。 不過,它可以是這類 中參考的任何區段,DDInstall_。 內含 INF 的介面區段。
備註
DDInstall 區段名稱必須由 INF 檔案的個別製造商模型區段下的裝置/模型特定項目參考。 如需如何在跨平臺 INF 檔案中使用系統定義的 .nt、.ntx86、.ntia64、.ntamd64、.ntarm 和 .ntarm64 延伸模組的相關信息,請參閱建立多個平臺和操作系統的 INF 檔案。
如果尚未安裝指定的 {,InterfaceClassGUID_} ,操作系統的安裝程式程式代碼會在系統中安裝該裝置介面類別。 如果 INF 檔案安裝一或多個新的裝置介面類別,它也可以有 [InterfaceInstall32] 區段,識別新類別的 GUID。
如需如何建立 GUID 的詳細資訊,請參閱 在驅動程式中使用 GUID。 如需系統定義的介面類別 GUID,請參閱適當的系統提供標頭,例如核心串流介面類別 GUIDS 的 Ks.h 。
載入驅動程式時,它必須使用相同的 {,InterfaceClassGUID_} 呼叫 IoRegisterDeviceInterface,以及 AddInterface 指示詞中使用的參考字串,才能取得裝置介面的完整 SymbolicLinkName。 它必須針對 INF 的 中每個裝置介面執行這項操作,DDInstall_。驅動程式 在基礎裝置上支援的介面區段。 針對每個 SymbolicLinkName,驅動程式必須呼叫 IoSetDeviceInterfaceState 來啟用裝置介面。 通常,PnP 函式或篩選驅動程式會從其 AddDevice 例程進行這些呼叫。
範例
此範例顯示 DDInstall。Nt。 系統提供之 WDM 音訊設備/驅動程式之 INF 檔案中的介面區段。
;
; following AddInterface= are all single lines (without
; backslash line continuators) in the system-supplied INF file
;
[WDMPNPB003_Device.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,\
WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,\
WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,\
WDM_SB16.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,\
WDM_SB16.Interface.FMSynth
; ...
[Strings] ; only immediately preceding %strkey% tokens shown here
%KSCATEGORY_AUDIO% = "{6994ad04-93ef-11d0-a3cc-00a0c9223196}"
KSNAME_Wave = "Wave"
KSNAME_UART = "UART"
KSNAME_FMSynth = "FMSynth"
KSNAME_Topology = "Topology"
; ...