Secção INF ClassInstall32

Caution

Se estiver a construir um pacote universal ou de drivers Windows, esta secção não é válida. Veja Usar um Ficheiro INF Universal e comece a desenvolver drivers para Windows.

Uma secção ClassInstall32 instala uma nova classe de configuração de dispositivos para dispositivos da 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 secções nomeadas que contêm entradas de valor específicas da classe a serem escritas no registo. Normalmente, isto é usado para dar à nova classe de configuração de dispositivo pelo menos um nome amigável que outros componentes possam posteriormente recuperar do registo e usar para abrir dispositivos instalados desta nova classe de dispositivo ou para "instalar" qualquer fornecedor de página de propriedades para esta classe de configuração de dispositivo, e assim por diante.

Uma especificação HKR em qualquer secção de registo de adição designa a chave do registo que contém definições para essa classe. Para informações adicionais, consulte a seguinte secção de Observações .

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

AddProperty=add-property-section[,add-property-section]...
(Windows Vista e versões posteriores do Windows) Refere-se a uma ou mais secções de ficheiros INF que modificam propriedades do dispositivo definidas para uma classe de configuração de dispositivo. Deve usar uma diretiva INF AddProperty apenas para definir uma propriedade de classe de configuração de dispositivo que seja nova no Windows Vista ou em versões posteriores dos sistemas operativos Windows.

Para propriedades de classe dispositivo introduzidas anteriormente no Windows Server 2003, Windows XP ou Windows 2000, e que têm valores de entrada de registo correspondentes, deve continuar a usar diretivas INF AddReg para definir a propriedade de classe setup do dispositivo. Estas diretrizes aplicam-se a propriedades definidas pelo sistema e propriedades personalizadas.

Para mais informações sobre como usar a diretiva AddProperty , consulte Utilização da Diretiva INF AddProperty e da Diretiva INF DelProperty.

Copyfiles=@nome | ficheiro-lista-secção[,ficheiro-lista-secção]...
Ou especifica um ficheiro nomeado a ser copiado do meio de origem para o destino ou faz referência a uma ou mais secções nomeadas nas quais os ficheiros relevantes para classe no meio de origem são especificados para transferência para o destino. A entrada DefaultDestDir na secção DestinationDirs do INF especifica o diretório de destino para qualquer ficheiro único específico de classe a ser copiado.

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

Note

Ficheiros INF fornecidos pelo sistema para classes de configuração de dispositivos não utilizam esta diretiva nesta secção.

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

No entanto, se um {SetupClassGUID} já existir como classe instalada, o código de configuração do sistema ignora subsequentemente a secção ClassInstall32 de qualquer INF que especifique o mesmo valor GUID na sua secção Version . Consequentemente, um INF não pode substituir um instalador de classe existente nem modificar o seu comportamento a partir de uma secção ClassInstall32 .

Para mais informações, consulte a Diretiva INF DelReg.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista e versões posteriores do Windows) Refere-se a uma ou mais secções de ficheiro INF que eliminam propriedades de dispositivos definidas para uma classe de configuração de dispositivo. Deve usar uma diretiva INF DelProperty apenas para eliminar uma propriedade de classe de configuração de dispositivo que seja nova no Windows Vista ou em versões posteriores dos sistemas operativos Windows.

Para propriedades de classe de dispositivo introduzidas anteriormente no Windows Server 2003, Windows XP ou Windows 2000, e que têm valores de entrada de registo correspondentes, deve continuar a usar diretivas INF DelReg para eliminar a propriedade de classe setup do dispositivo. Estas diretrizes aplicam-se a propriedades definidas pelo sistema e propriedades personalizadas.

Para mais informações sobre como utilizar a diretiva DelProperty , consulte Utilização da Diretiva INF AddProperty e da Diretiva INF DelProperty.

Delfiles=ficheiro-lista-secção[,ficheiro-lista-secção]...
Faz referência a uma ou mais secções nomeadas onde os ficheiros relevantes para classe previamente instalados no destino são especificados para eliminação.

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

Renficheiros=secção-lista-de ficheiros[,secção-lista-dosseiro]...
Faz referência a uma ou mais secções nomeadas nas quais os ficheiros relevantes para a classe a serem renomeados no destino.

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

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

Para mais informações, consulte a Diretiva INF BitReg.

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

Para mais informações, consulte a Diretiva INF UpdateIs.

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

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

Ini2Reg=ini-para-registo-secção[,ini-para-registo-secção]...
É válido nesta secção, mas quase nunca é usado.

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

Remarks

Deves incluir uma secção ClassInstall32 num ficheiro INF de dispositivo apenas para instalar uma nova classe de configuração personalizada. Ficheiros INF para dispositivos numa classe instalada, seja uma classe de configuração fornecida pelo sistema ou uma classe personalizada, não devem incluir uma secção ClassInstall32 . Como o sistema processa uma secção ClassInstall32 apenas se uma classe não estiver já instalada, não pode usar uma secção ClassInstall32 para reinstalar ou alterar as definições de uma classe que já está instalada. Em particular, não pode usar uma secção ClassInstall32 para adicionar um co-instalador de classes ou um controlador de filtro de classe para uma classe que já está instalada. Para informações sobre como instalar co-instaladores e drivers de filtro, veja Escrever um Co-instalador e Instalar um Controlador de Filtro.

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

Exceto para AddReg e CopyFiles, as outras diretivas aqui mostradas raramente são usadas numa secção ClassInstall32 .

Para suportar uma distribuição multiplataforma de ficheiros de drivers, construa secções ClassInstall32 específicas para cada plataforma. Por exemplo, todas as funções SetupAPI do sistema que processam uma secção ClassInstall32 procurarão primeiro uma secção ClassInstall32.ntx86 numa plataforma x86 e só examinarão uma secção ClassInstall32 sem decoração se não encontrarem uma secção ClassInstall32.ntx86 . Para mais informações sobre como utilizar as extensões .nt, .ntx86, .ntia64, .ntamd64, .ntarm e .ntarm64 , definidas pelo sistema, consulte Criação de Ficheiros INF para Múltiplas Plataformas e Sistemas Operativos.

Note

O nome da secçã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 instalar não estiver associado a um novo instalador de classe de dispositivo, ou se a sua especificação ClassGUID= na secção Versão não corresponder a um GUID de configuração definido pelo sistema, esse dispositivo está 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 na sua secção ClassInstall32 para definir pelo menos uma secção nomeada que cria um nome amigável para o seu tipo de dispositivo. O código de configuração cria automaticamente uma chave SetupClassGUID no local apropriado do registo a partir do valor fornecido para a entrada ClassGUID= na secção Versão do INF quando o primeiro dispositivo dessa (nova) classe de configuração é instalado.

O INF pode usar as secções do registo de adição referenciadas na sua secção ClassInstall32 para especificar um fornecedor de página de propriedades e exercer controlo sobre como a sua classe de dispositivos é tratada na interface do utilizador.

Uma secção de registo de adição específica por 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 utiliza o ícone especificado para representar o seu instalador ao utilizador.

  • Se o valor do Ícone for positivo, representa um identificador de recurso para um recurso. O recurso é extraído da DLL do instalador de classes, 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 é o identificador de recurso do ícone em SetupApi.DLL.

Definir as entradas de valor Booleanas pré-definidas SilentInstall, NoDisplayClass e NoInstallClass numa chave de registo específica de classe tem os seguintes efeitos:

  • Definir o SilentInstall orienta os instaladores a não enviarem mensagens pop-up ao utilizador que necessitem de resposta enquanto instalam dispositivos desta classe, quer especificados nas secções DDInstall do ficheiro INF do instalador da classe, quer em ficheiros INF separados para dispositivos instalados posteriormente que se declarem desta classe, definindo a mesma especificação ClassGuid={ClassGUID} nas respetivas secções de Versão. Por exemplo, os instaladores da classe sistema de dispositivos CD-ROM e disco e o instalador da classe de porta paralela do sistema definem o SilentInstall nas respetivas chaves de registo.

    Se um instalador específico de classe exigir que o computador seja reiniciado para qualquer dispositivo que instale, a secção do registo adicional específica da classe no seu INF não pode ter esta entrada de valor.

  • A definição NoDisplayClass suprime a exibição visível pelo utilizador de todos os dispositivos desta classe pelo Gestor de Dispositivos. Por exemplo, os instaladores de classe system para impressoras e para drivers de rede (incluindo clientes, serviços e protocolos) definem o NoDisplayClass nas respetivas chaves de registo.

  • A definição NoInstallClass indica que nenhum dispositivo deste tipo necessitará de instalação manual por um utilizador final. Por exemplo, os instaladores de classe sistema para dispositivos exclusivamente Plug and Play (PnP) definem o NoInstallClass nas respetivas chaves do registo.

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

Examples

Este exemplo mostra a secção ClassInstall32 , juntamente com a secção nomeada que refere com a diretiva AddReg.

[ClassInstall32] 
AddReg=example_class_addreg

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

Em contraste, este exemplo estabelece um fornecedor de páginas de propriedades específico por classe. Este INF também define as entradas de valor SilentInstall e NoInstallClass na chave de classes para TRUE (1).

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

Ver também

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Modelos

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Versão