INF DDInstall.Interfaces Section
Chaque modèle DDInstall_. La section Interfaces peut avoir une ou plusieurs directives AddInterface , en fonction du nombre d’interfaces d’appareil prises en charge par un périphérique/pilote particulier.
[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]...]
Pour prendre en charge les interfaces d’appareil existantes, telles que l’une des interfaces prédéfinies de streaming de noyau du système, spécifiez les valeurs InterfaceClassGUID appropriées dans cette section.
Pour installer un composant, tel qu’un pilote de classe, qui exporte une nouvelle classe d’interfaces d’appareil, un INF doit également avoir une section INF InterfaceInstall32.
Pour plus d’informations sur les interfaces d’appareil, consultez Classes d’interface d’appareil.
Entrées
AddInterface={InterfaceClassGUID} [,[chaîne de référence] [,[add-interface-section] [,,flags_]]]...
Cette directive installe la prise en charge d’une classe d’interface d’appareil, désignée par la valeur InterfaceClassGUID spécifiée que le pilote exporte vers des composants de niveau supérieur. En règle générale, il fait également référence à une section de l’add-interface définie par un enregistreur INF ailleurs dans le fichier INF. Pour plus d’informations sur la façon de spécifier cette directive, consultez Directive AddInterface INF.
Include=,filename. inf[,filename2.inf]...
Cette entrée facultative spécifie un ou plusieurs fichiers INF supplémentaires fournis par le système qui contiennent des sections nécessaires pour inscrire les classes d’interface prises en charge par ce périphérique/pilote. Si cette entrée est spécifiée, il en est généralement de même pour une entrée Needs .
Needs=,inf-section-name[,inf-section-name]...
Cette entrée facultative spécifie les sections particulières qui doivent être traitées pendant l’installation de cet appareil. En règle générale, une telle section nommée est un DDInstall_. Section Interfaces dans un fichier INF fourni par le système qui est répertorié dans une entrée Include . Toutefois, il peut s’agir de n’importe quelle section référencée dans un tel DDInstall_. Section Interfaces du inf inclus.
Remarques
Le nom de la section DDInstall doit être référencé par une entrée spécifique à l’appareil/aux modèles sous la section Modèles par fabricant du fichier INF. Pour plus d’informations sur l’utilisation des extensions .nt, .ntx86, .ntia64, .ntamd64, .ntarm et .ntarm64 définies par le système dans les fichiers INF multiplateformes, consultez Création de fichiers INF pour plusieurs plateformes et systèmes d’exploitation.
Si un {,InterfaceClassGUID_} spécifié n’est pas déjà installé, le code d’installation du système d’exploitation installe cette classe d’interface d’appareil dans le système. Si un fichier INF installe une ou plusieurs nouvelles classes d’interface d’appareil, il peut également avoir une section [InterfaceInstall32] identifiant le GUID de la nouvelle classe.
Pour plus d’informations sur la création d’un GUID, consultez Utilisation de GUID dans les pilotes. Pour les GUID de la classe d’interface définie par le système, consultez l’en-tête approprié fourni par le système, tel que Ks.h pour les GUID de la classe d’interface de diffusion en continu du noyau.
Lorsqu’un pilote est chargé, il doit appeler IoRegisterDeviceInterface avec la même chaîne {,InterfaceClassGUID_} et de référence utilisée dans une directive AddInterface afin d’obtenir le symbolLinkName complet pour l’interface de l’appareil. Il doit effectuer cette opération pour chaque interface d’appareil dans le DDInstall_ inf. Section Interfaces prises en charge par le pilote sur l’appareil sous-jacent. Pour chaque SymbolicLinkName, le pilote doit appeler IoSetDeviceInterfaceState pour activer l’interface de l’appareil. En règle générale, une fonction PnP ou un pilote de filtre effectue ces appels à partir de sa routine AddDevice .
Exemples
Cet exemple montre DDInstall. Nt. Section Interfaces dans le fichier INF pour le périphérique/pilote audio WDM fourni par le système.
;
; 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"
; ...