Compartilhar via


Adicionar configurações do registro de software

Os arquivos INF do driver de exibição devem adicionar todas as configurações de registro relacionadas ao software à chave de software PnP (Plug and Play). A chave de software PnP (também chamada de chave de driver) armazena dados de configuração específicos do driver que persistem entre reinicializações do sistema.

Para adaptadores de vídeo, a chave de software é criada no GUID {4d36e968-e325-11ce-bfc1-08002be10318} da classe de dispositivo do adaptador de vídeo.

Para obter mais informações, consulte Rotinas do Registro "Plug and Play".

Estrutura básica do INF

Normalmente, os arquivos INF do driver de exibição são muito grandes e complexos, contendo muitas seções para diferentes arquiteturas, modelos de dispositivo, cópia de arquivo, instalação de serviço e muito mais. Os exemplos a seguir mostram apenas as partes relacionadas ao registro relevantes para adicionar configurações de software à chave de software PnP.

O arquivo INF do driver de exibição deve incluir seções que definem quais configurações do Registro adicionar. Aqui está um fragmento simplificado mostrando a estrutura básica:

[Xxx.Mfg]
"RADEON 8500/RADEON 8500LE (R200 LDDM)" = R200_R200, PCI\VEN_1002&DEV_514c&SUBSYS_003a1002

[R200_R200]
Include=msdv.inf
CopyFiles=R200.Miniport, R200.Display
AddReg = R200_SoftwareDeviceSettings
AddReg = R200_R200_SoftwareDeviceSettings
DelReg = R200_RemoveDeviceSettings
; ... many other directives omitted ...

Este fragmento mostra:

  • [Xxx.Mfg]: a seção fabricante/modelos que mapeia IDs de hardware para seções de instalação
  • [R200_R200]: a seção DDInstall que especifica o que instalar para este dispositivo
  • Diretivas AddReg: seções de referência que definem quais valores do Registro adicionar
  • Diretiva DelReg: faz referência a seções que definem quais valores do Registro serão removidos (para cenários de atualização)

Definindo configurações do Registro

As AddReg diretivas fazem referência a seções que contêm os valores reais do registro. Aqui está um exemplo mostrando o que acontece nas seções referenciadas. Observação: um INF de driver de exibição completo conteria muitos valores adicionais do Registro; estes exemplos mostram apenas as configurações de chave de software mais comuns:

[R200_SoftwareDeviceSettings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, R200umd
HKR,, UserModeDriverName, %REG_SZ%, %13%\R200umd.dll
HKR,, VgaCompatible, %REG_DWORD%, 0
HKR,, Acceleration.Level, %REG_DWORD%, 0
HKR,, CapabilityOverride, %REG_DWORD%, 0x8

[R200_R200_SoftwareDeviceSettings]
HKR,, VideoDebugLevel, %REG_DWORD%, 0
; ... device-specific settings ...

Formato de valor do Registro

Cada entrada do Registro segue este formato:

HKR, [subkey], value-name, flags, value

Where:

  • HKR: representa a raiz da chave de hardware/software (a chave de software PnP)
  • subchave: caminho de subchave opcional (vazio na maioria dos casos)
  • value-name: o nome do valor do registro
  • sinalizadores: constante de tipo de dados (como %REG_DWORD%, %REG_SZ%, %REG_MULTI_SZ%)
  • valor: os dados reais a serem armazenados

Configurações comuns do Registro

Normalmente, os drivers de exibição definem esses valores do Registro:

Nome do valor Tipo Propósito
InstalledDisplayDrivers REG_MULTI_SZ Lista de nomes de DLLs de drivers em modo de usuário (sem a extensão .dll)
UserModeDriverName REG_SZ Caminho para a DLL do driver do modo de usuário principal
Compatível com VGA REG_DWORD Indica a compatibilidade da VGA (0 = não compatível, 1 = compatível)
Nível de Aceleração REG_DWORD Nível de aceleração de gráficos (0 = completo, 5 = nenhum)
SobrescriçãoDeCapacidade REG_DWORD Máscara de bits para substituir recursos de hardware

Constantes de cadeia de caracteres

Defina as constantes de tipo de registro na seção [Strings] do arquivo INF:

[Strings]
REG_SZ = 0x00000000
REG_MULTI_SZ = 0x00010000
REG_DWORD = 0x00010001

Exemplo de vários dispositivos

Se o pacote de driver oferece suporte a vários modelos de dispositivo, use seções AddReg específicas para cada dispositivo:

[Manufacturer]
%Contoso%=Contoso.Mfg, NTamd64

[Contoso.Mfg.NTamd64]
%Device1.DeviceDesc% = Device1_Install, PCI\VEN_1234&DEV_0001
%Device2.DeviceDesc% = Device2_Install, PCI\VEN_1234&DEV_0002

[Device1_Install]
CopyFiles = Miniport.Files, UMD.Files
AddReg = Common_Settings, Device1_Settings

[Device2_Install]
CopyFiles = Miniport.Files, UMD.Files
AddReg = Common_Settings, Device2_Settings

[Common_Settings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, ContosoUMD
HKR,, VgaCompatible, %REG_DWORD%, 0

[Device1_Settings]
HKR,, DeviceSpecificValue, %REG_DWORD%, 1

[Device2_Settings]
HKR,, DeviceSpecificValue, %REG_DWORD%, 2

Práticas recomendadas

  1. Usar o HKR para configurações de software: sempre use HKR (caminhos não absolutos) para garantir que as configurações acessem a chave de software PnP correta
  2. Configurações comuns de grupo: use seções de AddReg compartilhadas para configurações comuns em todos os modelos de dispositivo
  3. Usar seções específicas do dispositivo: criar seções de AddReg separadas para configurações que diferem entre modelos de dispositivo
  4. Limpeza na atualização: use seções DelReg para remover valores obsoletos do registro ao atualizar drivers
  5. Valores personalizados do documento: adicione comentários em seu arquivo INF explicando valores de registro específicos ou não padrão do fornecedor

Consulte Também