Seção INF ClassInstall32

Cuidado

Se você estiver criando um pacote universal ou do Windows Driver, esta seção não será válida. Consulte Usando um arquivo INF universal e Introdução com drivers do Windows.

Uma seção ClassInstall32 instala uma nova classe de configuração de dispositivo para dispositivos na nova classe.

[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows) 
[ClassInstall32.ntarm64] (Windows 10 version 1709 and later versions of Windows) 

AddReg=add-registry-section[,add-registry-section]...
[AddProperty=add-property-section[,add-property-section] ...]  (Windows Vista and later versions of Windows)
[Copyfiles=@filename | file-list-section[,file-list-section]...]
[DelReg=del-registry-section[,del-registry-section]...]
[DelProperty=del-property-section[,del-property-section] ...]  (Windows Vista and later versions of Windows)
[Delfiles=file-list-section[,file-list-section]...]
[Renfiles=file-list-section[,file-list-section]...]
[BitReg=bit-registry-section[,bit-registry-section]...]
[UpdateInis=update-ini-section[,update-ini-section]...]
[UpdateIniFields=update-inifields-section[,update-inifields-section]...]
[Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...]

Entradas

AddReg=add-registry-section[,add-registry-section]...
Faz referência a uma ou mais seções nomeadas que contêm entradas de valor específicas da classe a serem gravadas no registro. Normalmente, isso é usado para dar à nova classe de configuração de dispositivo pelo menos um nome amigável que outros componentes podem recuperar posteriormente do registro e usar para abrir dispositivos instalados dessa nova classe de dispositivo ou para "instalar" qualquer provedor de página de propriedades para essa classe de configuração de dispositivo e assim por diante.

Uma especificação HKR em qualquer seção add-registry designa a chave do Registro que contém configurações para essa classe. Para obter informações adicionais, consulte a seção Comentários a seguir.

Para obter mais informações, consulte Diretiva AddReg do INF.

AddProperty=add-property-section[,add-property-section]...
(Windows Vista e versões posteriores do Windows) Faz referência a uma ou mais seções de arquivo INF que modificam as propriedades do dispositivo definidas para uma classe de configuração de dispositivo. Você deve usar uma diretiva AddProperty do INF apenas para definir uma propriedade de classe de configuração de dispositivo que seja nova no Windows Vista ou versões posteriores dos sistemas operacionais Windows.

Para propriedades de classe de dispositivo que foram introduzidas anteriormente no Windows Server 2003, Windows XP ou Windows 2000 e que têm valores de entrada correspondentes do Registro, você deve continuar a usar as diretivas AddReg do INF para definir a propriedade de classe de configuração do dispositivo. Essas diretrizes se aplicam a propriedades definidas pelo sistema e propriedades personalizadas.

Para obter mais informações sobre como usar a diretiva AddProperty , consulte Using the INF AddProperty Directive and the INF DelProperty Directive.

Copyfiles=@filename | file-list-section[,file-list-section]...
Especifica um arquivo nomeado a ser copiado da mídia de origem para o destino ou faz referência a uma ou mais seções nomeadas nas quais arquivos relevantes de classe na mídia de origem são especificados para transferência para o destino. A entrada DefaultDestDir na seção DestinationDirs do INF especifica o diretório de destino para qualquer arquivo único específico da classe a ser copiado.

Para obter mais informações, consulte Diretiva CopyFiles do INF.

Observação

Os arquivos INF fornecidos pelo sistema para classes de instalação de dispositivo não usam essa diretiva nesta seção.

DelReg=del-registry-section[,del-registry-section]...
Faz referência a uma ou mais seções nomeadas nas quais as entradas ou chaves de valor são especificadas para serem removidas do registro durante a instalação do instalador de classe.

No entanto, se uma {SetupClassGUID} específica já existir como uma classe instalada, o código de instalação do sistema ignorará posteriormente a seção ClassInstall32 de qualquer INF que especifique o mesmo valor guid em sua seção Versão . Consequentemente, um INF não pode substituir um instalador de classe existente ou modificar seu comportamento de uma seção ClassInstall32 .

Para obter mais informações, consulte Diretiva DElReg do INF.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista e versões posteriores do Windows) Faz referência a uma ou mais seções de arquivo INF que excluem as propriedades do dispositivo definidas para uma classe de configuração de dispositivo. Você deve usar uma diretiva INF DelProperty apenas para excluir uma propriedade de classe de configuração de dispositivo que seja nova no Windows Vista ou versões posteriores de sistemas operacionais Windows.

Para propriedades de classe de dispositivo que foram introduzidas anteriormente no Windows Server 2003, Windows XP ou Windows 2000 e que têm valores de entrada correspondentes do Registro, você deve continuar a usar as diretivas INF DelReg para excluir a propriedade de classe de configuração do dispositivo. Essas diretrizes se aplicam a propriedades definidas pelo sistema e propriedades personalizadas.

Para obter mais informações sobre como usar a diretiva DelProperty , consulte Using the INF AddProperty Directive and the INF DelProperty Directive.

Delfiles=file-list-section[,file-list-section]...
Faz referência a uma ou mais seções nomeadas nas quais os arquivos relevantes de classe instalados anteriormente no destino são especificados para exclusão.

Para obter mais informações, consulte Diretiva INF DelFiles.

Renfiles=file-list-section[,file-list-section]...
Faz referência a uma ou mais seções nomeadas nas quais os arquivos relevantes à classe a serem renomeados no destino são listados.

Para obter mais informações, consulte Diretiva RenFiles do INF.

BitReg=bit-registry-section[,bit-registry-section]...
É válido nesta seção, mas quase nunca usado.

Para obter mais informações, consulte Diretiva BITReg inf.

UpdateInis=update-ini-section[,update-ini-section]...
É válido nesta seção, mas quase nunca usado.

Para obter mais informações, consulte Diretiva UpdateInis do INF.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
É válido nesta seção, mas quase nunca usado.

Para obter mais informações, consulte Diretiva UpdateIniFields do INF.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
É válido nesta seção, mas quase nunca usado.

Para obter mais informações, consulte Diretiva UpdateIniFields do INF.

Comentários

Você deve incluir uma seção ClassInstall32 em um arquivo INF do dispositivo apenas para instalar uma nova classe de configuração de dispositivo personalizada. Os arquivos INF para dispositivos em uma classe instalada, seja uma classe de instalação de dispositivo fornecida pelo sistema ou uma classe personalizada, não devem incluir uma seção ClassInstall32 . Como o sistema processa uma seção ClassInstall32 somente se uma classe ainda não estiver instalada, você não poderá usar uma seção ClassInstall32 para reinstalar ou alterar as configurações de uma classe que já está instalada. Em particular, você não pode usar uma seção ClassInstall32 para adicionar um co-instalador de classe ou um driver de filtro de classe para uma classe que já está instalada. Para obter informações sobre como instalar co-instaladores e drivers de filtro, consulte Escrevendo um co-instalador e instalando um driver de filtro.

Normalmente, uma seção ClassInstall32 tem uma ou mais diretivas AddReg para adicionar entradas em uma subchave SetupClassGUID fornecida pelo sistema no registro. Essas entradas podem incluir um "nome amigável" específico da classe, caminho do instalador de classe, ícone de classe, provedor de página de propriedades e assim por diante.

Exceto para AddReg e CopyFiles, as outras diretivas mostradas aqui raramente são usadas em uma seção ClassInstall32 .

Para dar suporte a uma distribuição multiplataforma de arquivos de driver, construa seções ClassInstall32 específicas da plataforma. Por exemplo, todas as funções de SetupAPI do sistema que processam uma seção ClassInstall32 procurarão primeiro uma seção ClassInstall32.ntx86 em uma plataforma x86 e examinarão apenas uma seção ClassInstall32 nãocortada se não encontrarem uma seção ClassInstall32.ntx86 . Para obter mais informações sobre como usar as extensões .nt, .ntx86, .ntia64, .ntamd64, .ntarm e .ntarm64 definidas pelo sistema, consulte Criando arquivos INF para várias plataformas e sistemas operacionais.

Observação

O nome da seção ClassInstall32 também é usado para instalações em plataformas de 64 bits.

A partir do Windows 2000, cada dispositivo instalado está associado a uma classe de configuração de dispositivo. Se o INF para um dispositivo a ser instalado não estiver associado a um novo instalador de classe de dispositivo ou se sua especificação ClassGUID= na seção Versão não corresponder a um GUID de classe de instalação definido pelo sistema, esse dispositivo será associado à classe de configuração do dispositivo com o nome "Desconhecido".

O INF para qualquer instalador de classe de dispositivo normalmente tem uma diretiva AddReg em sua seção ClassInstall32 para definir pelo menos uma seção nomeada que cria um nome amigável para seu tipo de dispositivo. O código de instalação cria automaticamente uma chave SetupClassGUID no local apropriado no Registro a partir do valor fornecido para a entrada ClassGUID= na seção Versão do INF quando o primeiro dispositivo dessa classe de instalação (novo) é instalado.

O INF pode usar as seções de registro de suplemento referenciadas em sua seção ClassInstall32 para especificar um provedor de página de propriedades e exercer controle sobre como sua classe de dispositivos é tratada na interface do usuário.

Essa seção de add-registry específica da classe tem o seguinte formulário geral:

[SetupClassAddReg]
 
HKR,,,,%DevClassName% ; device-class friendly name 
[HKR,,Installer32,,"class-installer.dll,class-entry-point"] 
[HKR,,EnumPropPages32,,"prop-provider.dll,provider-entry-point"]
HKR,,Icon,,"icon-number" 
[HKR,,SilentInstall,,1]
[HKR,,NoInstallClass,,1]
[HKR,,NoDisplayClass,,1]

O sistema usa o ícone especificado para representar o instalador para o usuário.

  • Se o valor do Ícone for positivo, ele representará um identificador de recurso para um recurso. O recurso será extraído da DLL do instalador de classe, se a chave Installer32 for especificada ou da DLL da página de propriedades, se a chave EnumPropPages32 for especificada. O valor "0" representa o primeiro ícone na DLL. O valor "1" é reservado.
  • Se o valor do Ícone for negativo, o valor absoluto será o identificador de recurso do ícone em SetupApi.DLL.

Definir as entradas predefinidas de valor booliano SilentInstall, NoDisplayClass e NoInstallClass em uma chave de registro específica da classe tem os seguintes efeitos:

  • Definir SilentInstall orienta os instaladores a não enviarem mensagens pop-up ao usuário que exijam uma resposta durante a instalação de dispositivos dessa classe, seja especificado nas seções DDInstall do arquivo INF do instalador de classe ou em arquivos INF separados para dispositivos instalados posteriormente que se declaram dessa classe definindo a mesma especificação ClassGuid={ClassGUID} em suas respectivas seções de Versão. Por exemplo, os instaladores de classe do sistema de cd-ROM e dispositivos de disco e o instalador de classe de porta paralela do sistema definem SilentInstall em suas respectivas chaves do Registro.

    Se um instalador específico da classe exigir que o computador seja reiniciado para qualquer dispositivo instalado, a seção de registro de suplemento específico da classe em seu INF não poderá ter essa entrada de valor.

  • Definir NoDisplayClass suprime a exibição visível pelo usuário de todos os dispositivos dessa classe Gerenciador de Dispositivos. Por exemplo, os instaladores de classe do sistema para impressoras e para drivers de rede (incluindo clientes, serviços e protocolos) definem NoDisplayClass em suas respectivas chaves de registro.

  • Definir NoInstallClass indica que nenhum dispositivo desse tipo exigirá a instalação manual por um usuário final. Por exemplo, os instaladores de classe do sistema para dispositivos PnP (Plug and Play) exclusivamente definem NoInstallClass em suas respectivas chaves do Registro.

Uma seção ClassInstall32 pode conter diretivas AddReg para definir DeviceType, DeviceCharacteristics e Security para dispositivos de sua classe de instalação. Consulte a Diretiva AddReg do INF para obter mais informações.

Exemplos

Este exemplo mostra a seção ClassInstall32 , juntamente com a seção nomeada que faz referência à diretiva AddReg.

[ClassInstall32] 
AddReg=example_class_addreg

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,Icon,,"-1"

Por outro lado, este exemplo configura um provedor de página de propriedades específico da classe. Esse INF também define as entradas de valor SilentInstall e NoInstallClass na chave de classe como TRUE (1).

[example_class_addreg]
HKR,,,,%ClassName%
HKR,,EnumPropPages32,,"ExampleBinary.Dll,ExamplePropPageProvider"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,Icon,,"101"

Confira também

Addproperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Modelos

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Versão