INF DDInstall.Interfaces Section

[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)
 
AddInterface={InterfaceClassGUID} [, [reference string] [,[add-interface-section] [,flags]]] ...
[Include=filename.inf[,filename2.inf]...]
[Needs=inf-section-name[,inf-section-name]...] 

Description

Each per-Models DDInstall.Interfaces section can have one or more AddInterface directives, depending on how many device interfaces a particular device/driver supports.

To support existing device interfaces, such as any of the system's predefined kernel-streaming interfaces, specify the appropriate InterfaceClassGUID values in this section.

To install a component, such as a class driver, that exports a new class of device interfaces, an INF must also have an INF InterfaceInstall32 section.

For more information about device interfaces, see Device Interface Classes.

Entries

AddInterface={InterfaceClassGUID} [, [reference string] [,[add-interface-section] [,flags]]] ...

This directive installs support for a device interface class, designated by the specified InterfaceClassGUID value that the driver exports to higher level components. Usually, it also references an INF-writer-defined add-interface-section elsewhere in the INF file. For detailed information about how to specify this directive, see INF AddInterface Directive.

Include=filename.inf[,filename2.inf]...

This optional entry specifies one or more additional system-supplied INF files that contain sections needed to register the interface classes supported by this device/driver. If this entry is specified, usually so is a Needs entry.

For more information about the Include entry and restrictions on its use, see Specifying the Source and Target Locations for Device Files.

Needs=inf-section-name[,inf-section-name]...

This optional entry specifies the particular sections that must be processed during the installation of this device. Typically, such a named section is a DDInstall.Interfaces section within a system-supplied INF file that is listed in an Include entry. However, it can be any section that is referenced within such a DDInstall.Interfaces section of the included INF.

Needs entries cannot be nested. For more information about the Needs entry and restrictions on its use, see Specifying the Source and Target Locations for Device Files.

Remarks

The DDInstall section name must be referenced by a device/models-specific entry under the per-manufacturer Models section of the INF file. For information about how to use the system-defined .nt, .ntx86, .ntia64, and .ntamd64 extensions in cross-platform INF files, see Creating INF Files for Multiple Platforms and Operating Systems.

If a specified {InterfaceClassGUID} is not installed already, the operating system's setup code installs that device interface class in the system. If an INF file installs one or more new device interface classes, it also has an [InterfaceInstall32] section identifying the GUID for the new class..

For more information about how to create a GUID, see Using GUIDs in Drivers. For the system-defined interface class GUIDs, see the appropriate system-supplied header, such as Ks.h for the kernel-streaming interface class GUIDS.

When a driver is loaded, it must call IoSetDeviceInterfaceState once for each {InterfaceClassGUID} value specified in the INF's DDInstall.Interfaces section that the driver supports on the underlying device, to enable the interface for run-time use by higher level components. Instead of registering support for a device interface in an INF, a device driver can call IoRegisterDeviceInterface before making its initial call to IoSetDeviceInterfaceState. Usually, a PnP function or filter driver makes this call from its AddDevice routine.

Examples

This example shows the DDInstall.nt.Interfaces section in the INF file for the system-supplied WDM audio device/driver shown as examples for the INF DDInstall section and the INF DDInstall.Services section .


;
; 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"
; ...

See also

AddInterface
DDInstall
InterfaceInstall32
IoRegisterDeviceInterface
IoSetDeviceInterfaceState
Models

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft