INF DDInstall.Interfaces 节

每个模型 ,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 编写器定义的 add-interface-section 。 有关如何指定此指令的详细信息,请参阅 INF AddInterface 指令

Include=filenameinf[,filename2.inf]...
此可选条目指定一个或多个系统提供的附加 INF 文件,这些文件包含注册此设备/驱动程序支持的接口类所需的部分。 如果指定了此项,则通常也是 “需要 ”条目。

Needs=inf-section-name[,inf-section-name]...
此可选条目指定安装此设备期间必须处理的特定部分。 通常,此类命名节为 、DDInstall_ 系统提供的 INF 文件中的接口部分,该文件列在 Include 条目中。 但是,它可以是此类 中引用的任何部分,DDInstall_ 包含的 INF 的接口部分。

注解

DDInstall 节名称必须由 INF 文件的“按制造商的型号”部分下的特定于设备/型号的条目引用。 有关如何在跨平台 INF 文件中使用系统定义的 .nt.ntx86.ntia64.ntamd64.ntarm.ntarm64 扩展的信息,请参阅 为多个平台和操作系统创建 INF 文件

如果尚未安装指定的 {,InterfaceClassGUID_} ,则操作系统的安装代码会在系统中安装该设备接口类。 如果 INF 文件安装一个或多个新设备接口类,则它还可以有一个 [InterfaceInstall32] 部分来标识新类的 GUID。

有关如何创建 GUID 的详细信息,请参阅 在驱动程序中使用 GUID。 有关系统定义的接口类 GUID,请参阅系统提供的相应标头,例如内核流式处理接口类 GUIDS 的 Ks.h

加载驱动程序时,它必须使用 AddInterface 指令中使用的同一 {,InterfaceClassGUID_}引用字符串调用 IoRegisterDeviceInterface,以便获取设备接口的完整 SymbolicLinkName。 它必须为 INF 的 、DDInstall_中的每个设备接口执行此操作 驱动程序在基础设备上支持的接口部分。 对于每个 SymbolicLinkName,驱动程序必须调用 IoSetDeviceInterfaceState 才能启用设备接口。 通常,PnP 函数或筛选器驱动程序通过其 AddDevice 例程进行这些调用。

示例

此示例显示 DDInstallNt。 系统提供的 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"
; ...

另请参阅

AddInterface

DDInstall

InterfaceInstall32

IoRegisterDeviceInterface

IoSetDeviceInterfaceState

模型