Seção INF DDInstall.Interfaces
Cada modelo por ,DDInstall_. A seção Interfaces pode ter uma ou mais diretivas AddInterface , dependendo de quantas interfaces de dispositivo um determinado dispositivo/driver dá suporte.
[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]...]
Para dar suporte a interfaces de dispositivo existentes, como qualquer uma das interfaces de streaming de kernel predefinidas do sistema, especifique os valores de InterfaceClassGUID apropriados nesta seção.
Para instalar um componente, como um driver de classe, que exporta uma nova classe de interfaces de dispositivo, um INF também deve ter uma seção INTERFACEInstall32 do INF.
Para obter mais informações sobre interfaces de dispositivo, consulte Classes de interface do dispositivo.
Entradas
AddInterface={InterfaceClassGUID} [,[cadeia de caracteres de referência] [,[add-interface-section] [,,flags_]]]]...
Essa diretiva instala o suporte para uma classe de interface do dispositivo, designada pelo valor de InterfaceClassGUID especificado que o driver exporta para componentes de nível mais alto. Normalmente, ele também faz referência a uma seção add-interface definida pelo gravador INF em outro lugar no arquivo INF. Para obter informações detalhadas sobre como especificar essa diretiva, consulte Diretiva AddInterface do INF.
Include=,filename. inf[,filename2.inf]...
Essa entrada opcional especifica um ou mais arquivos INF adicionais fornecidos pelo sistema que contêm seções necessárias para registrar as classes de interface compatíveis com este dispositivo/driver. Se essa entrada for especificada, geralmente uma entrada Precisa .
Needs=,inf-section-name[,inf-section-name]...
Essa entrada opcional especifica as seções específicas que devem ser processadas durante a instalação deste dispositivo. Normalmente, essa seção nomeada é uma DDInstall_. Seção interfaces em um arquivo INF fornecido pelo sistema que está listado em uma entrada Incluir . No entanto, pode ser qualquer seção referenciada dentro desse DDInstall_. Seção interfaces do INF incluído.
Comentários
O nome da seção DDInstall deve ser referenciado por uma entrada específica de dispositivo/modelos na seção Modelos por fabricante do arquivo INF. Para obter informações sobre como usar as extensões .nt, .ntx86, .ntia64, .ntamd64, .ntarm e .ntarm64 definidas pelo sistema em arquivos INF multiplataforma, consulte Criando arquivos INF para várias plataformas e sistemas operacionais.
Se um {,InterfaceClassGUID_} especificado ainda não estiver instalado, o código de instalação do sistema operacional instalará essa classe de interface do dispositivo no sistema. Se um arquivo INF instalar uma ou mais novas classes de interface do dispositivo, ele também poderá ter uma seção [InterfaceInstall32] identificando o GUID para a nova classe.
Para obter mais informações sobre como criar um GUID, consulte Usando GUIDs em drivers. Para os GUIDs da classe de interface definida pelo sistema, consulte o cabeçalho fornecido pelo sistema apropriado, como Ks.h para a classe de interface kernel-streaming GUIDS.
Quando um driver é carregado, ele deve chamar IoRegisterDeviceInterface com a mesma {,InterfaceClassGUID_} e cadeia de caracteres de referência usada em uma diretiva AddInterface para obter o SymbolicLinkName completo para a interface do dispositivo. Ele deve fazer isso para cada interface de dispositivo no DDInstall_ do INF. Seção interfaces que o driver dá suporte no dispositivo subjacente. Para cada SymbolicLinkName, o driver deve chamar IoSetDeviceInterfaceState para habilitar a interface do dispositivo. Normalmente, uma função PnP ou driver de filtro faz essas chamadas de sua rotina AddDevice .
Exemplos
Este exemplo mostra a DDInstall. Nt. Seção Interfaces no arquivo INF para o dispositivo/driver de áudio WDM fornecido pelo sistema.
;
; 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"
; ...