Seção INF ClassInstall32
Cuidado
Se você estiver criando um pacote de drivers universal ou do Windows, esta seção não será válida. Consulte Usar um arquivo INF universal e Introdução ao desenvolvimento de drivers do Windows.
Uma seção ClassInstall32 instala uma classe nova de configuração de 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. Em geral, o propósito disso é dar um nome fácil para a nova classe de configuração do dispositivo, algo que outros componentes possam recuperar do registro posteriormente e usar para abrir dispositivos que foram instalados desta nova classe de dispositivos ou para "instalar" um provedor da página de propriedades para esta classe de configuração de dispositivos, e assim por diante.
Uma especificação de HKR em qualquer add-registry-section serve para designar a chave de registro que contém as configurações de tal classe. Para mais informações, consulte a seção Comentários.
Para mais informações, consulte Diretiva de 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 arquivos INF que modificam as propriedades dos dispositivos definidas para uma classe de configuração de dispositivos. Você deve usar uma diretiva INF AddProperty apenas para definir uma propriedade de classe de instalação de dispositivo nova no Windows Vista ou versões posteriores do Windows.
Para propriedades de classe de dispositivo que já haviam sido implementadas no Windows Server 2003, Windows XP ou Windows 2000 e que tenham valores de entrada do registro correspondentes, continue usando as diretivas INF AddReg para definir a propriedade de classe de instalação do dispositivo. Essas diretrizes valem para propriedades definidas por sistemas e personalizadas.
Para mais detalhes sobre o uso da diretiva diretiva AddProperty, consulte Usar a diretiva INF AddProperty e a diretiva INF DelProperty.
Copyfiles=@filename | file-list-section[,file-list-section]...
Especifica um arquivo nomeado para copiar da mídia de origem para o destino ou faz referência a uma ou mais seções nomeadas nas quais os arquivos relevantes para a 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 que será copiado.
Para mais informações, consulte Diretiva de 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 em que as entradas de valor ou chaves são especificadas para remoção do registro durante a instalação do instalador de classes.
No entanto, se alguma {SetupClassGUID} já existir em uma classe instalada, o código de configuração do sistema vai ignorar a seção ClassInstall32 de qualquer INF que especifique o mesmo valor de GUID na seção Version. Consequentemente, um INF não substitui um instalador de classe nem modifica seu comportamento a partir de uma seção ClassInstall32.
Para mais informações, consulte Diretiva de 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 arquivos INF que excluem as propriedades dos dispositivos definidas para uma classe de configuração de dispositivos. Você deve usar uma diretiva DelProperty apenas para excluir uma propriedade de classe de instalação de dispositivo nova no Windows Vista ou versões posteriores do Windows.
Para propriedades de classe de dispositivo que já haviam sido implementadas no Windows Server 2003, Windows XP ou Windows 2000 e que tenham valores de entrada do registro correspondentes, continue usando as diretivas INF DelReg para excluir a propriedade de classe de instalação do dispositivo. Essas diretrizes valem para propriedades definidas por sistemas e personalizadas.
Para mais detalhes sobre o uso da diretiva DelProperty, consulte Usar a diretiva INF AddProperty e a diretiva INF DelProperty.
Delfiles=file-list-section[,file-list-section]...
Faz referência a uma ou mais seções nomeadas em que os arquivos relevantes para a classe já instalados no destino são especificados para exclusão.
Para mais informações, consulte Diretiva de DelFiles do INF.
Renfiles=file-list-section[,file-list-section]...
Faz referência a uma ou mais seções nomeadas em que os arquivos relevantes para a classe a serem renomeados no destino são listados.
Para mais informações, consulte Diretiva de RenFiles do INF.
BitReg=bit-registry-section[,bit-registry-section]...
É válido nesta seção, mas quase nunca usado.
Para mais informações, consulte Diretiva de BitReg do INF.
UpdateInis=update-ini-section[,update-ini-section]...
É válido nesta seção, mas quase nunca usado.
Para mais informações, consulte Diretiva INF UpdateInis.
UpdateIniFields=update-inifields-section[,update-inifields-section]...
É válido nesta seção, mas quase nunca usado.
Para mais informações, consulte Diretiva de UpdateIniFields do INF.
Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
É válido nesta seção, mas quase nunca usado.
Para mais informações, consulte Diretiva de UpdateIniFields do INF.
Comentários
Inclua apenas uma seção ClassInstall32 em um arquivo INF de 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 configuração de dispositivo fornecida pelo sistema ou uma classe personalizada, não deveriam incluir uma seção ClassInstall32. O sistema processa uma seção ClassInstall32 somente quando uma classe não está instalada e, por isso, não será possível utilizar a seção ClassInstall32 para reinstalar ou alterar as configurações de uma classe já instalada. Não é possível usar uma seção ClassInstall32 para adicionar um coinstalador de classe ou um driver de filtro de classe para uma classe já instalada. Para saber como instalar coinstaladores e drivers de filtro, consulte Escrever um coinstalador e Instalar um driver de filtro.
Uma seção ClassInstall32 tem uma ou mais diretivas AddReg para adicionar entradas em uma subchave SetupClassGUID que o sistema fornece no registro. Essas entradas podem incluir um "nome amigável" específico da classe, um caminho do instalador da classe, um ícone da classe, um provedor da página de propriedades e assim por diante.
Com a exceção de AddReg e CopyFiles, as outras diretivas mostradas aqui raramente são usadas em uma seção ClassInstall32.
Para dar suporte a uma distribuição de arquivos de drivers em várias plataformas, construa seções ClassInstall32 específicas das plataformas. Por exemplo, todas as funções SetupAPI do sistema que processam uma seção ClassInstall32 pesquisarão primeiro uma seção ClassInstall32.ntx86 em uma plataforma x86 e examinarão apenas uma seção ClassInstall32 não decorada se não puderem encontrar uma seção ClassInstall32.ntx86. Para mais informações sobre como usar as extensões definidas pelo sistema .nt, .ntx86, .ntia64, .ntamd64, .ntarm e .ntarm64, consulte Como criar 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 é associado a uma classe de instalação de dispositivo. Se o INF de 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 Version não corresponder a um GUID de classe de instalação definido pelo sistema, esse dispositivo será associado à classe de instalação do dispositivo com o nome "Unknown".
O INF para qualquer instalador de classe de dispositivo normalmente tem uma diretiva AddReg na 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 Version do INF quando o primeiro dispositivo dessa (nova) classe de instalação é instalado.
O INF pode usar as seções add-registry referenciadas na 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 add-registry específica da classe tem a seguinte forma 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.
- Valores do ícone positivos representam um identificador de recurso para outro 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" está reservado.
- Se o valor do ícone for negativo, o valor absoluto será o identificador de recurso do ícone em SetupApi.DLL.
Se você definir as entradas de valor booleano SilentInstall, NoDisplayClass e NoInstallClass predefinidas em uma chave do registro específica da classe tem os seguintes efeitos:
A configuração de SilentInstall direciona os instaladores a não enviar mensagens pop-up ao usuário que exijam uma resposta durante a instalação de dispositivos dessa classe, sejam especificados nas seções DDInstall do arquivo INF do instalador de classe ou em arquivos INF separados para dispositivos instalados subsequentemente que se declaram dessa classe definindo a mesma especificação ClassGuid={ClassGUID} em suas respectivas seções de Version. Por exemplo, os instaladores de classe de sistema de dispositivos de CD-ROM e disco e o instalador de classe de porta paralela do sistema definem SilentInstall em suas respectivas chaves de registro.
Se um instalador específico de classe exigir que o computador seja reiniciado para qualquer dispositivo instalado, a seção add-registry específica da classe em seu INF não poderá ter essa entrada de valor.
A configuração NoDisplayClass suprime a exibição visível ao usuário de todos os dispositivos dessa classe pelo Gerenciador de Dispositivos. Por exemplo, os instaladores de classe de sistema para impressoras e drivers de rede (incluindo clientes, serviços e protocolos) definem NoDisplayClass em suas respectivas chaves do registro.
A configuração NoInstallClass indica que nenhum dispositivo desse tipo exigirá instalação manual por um usuário final. Por exemplo, os instaladores de classe de sistema para dispositivos PnP (Plug and Play) definem NoInstallClass em suas respectivas chaves do registro.
Uma seção ClassInstall32 pode conter diretivas AddReg para definir o DeviceType, DeviceCharacteristics e Security para dispositivos da sua classe de instalação. Consulte Diretivas da AddReg para INF se precisar de mais informações.
Exemplos
Este exemplo mostra a seção ClassInstall32 com a seção nomeada à qual ela 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 dos valores 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"