Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os arquivos INF do driver de ecrã devem adicionar todas as configurações de registro relacionadas ao software à chave de sistema Plug and Play (PnP). A chave de software PnP (também chamada de chave de driver) armazena dados de configuração específicos do driver que persistem durante as reinicializações do sistema.
Para adaptadores de ecrã, a chave de software é criada sob o GUID {4d36e968-e325-11ce-bfc1-08002be10318} da classe de dispositivo do adaptador de ecrã.
Para obter mais informações, consulte Rotinas de registro Plug and Play.
Estrutura Básica do INF
Os arquivos INF do driver de vídeo são normalmente muito grandes e complexos, contendo muitas seções para diferentes arquiteturas, modelos de dispositivos, cópia de arquivos, instalação de serviços e muito mais. Os exemplos abaixo mostram apenas as partes relacionadas ao Registro relevantes para adicionar configurações de software à chave de software PnP.
O arquivo INF do driver de vídeo 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 instalar seções
- [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: Seções de referência que definem quais valores do Registro devem ser removidos (para cenários de atualização)
Definindo configurações do Registro
As diretivas AddReg referenciam seções que contêm os valores reais do Registro. Aqui está um exemplo mostrando o que acontece nas seções referenciadas.
Nota: Um driver de vídeo completo INF conteria muitos valores de registro adicionais; 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 do valor do Registo
Cada entrada de registo 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
- flags: constante de tipo de dados (como %REG_DWORD%, %REG_SZ%, %REG_MULTI_SZ%)
- value: Os dados reais a serem armazenados
Configurações comuns do Registro
Os drivers de vídeo normalmente definem estes valores do Registro:
| Nome do valor | Tipo | Propósito |
|---|---|---|
| InstalledDisplayDrivers | REG_MULTI_SZ | Lista de nomes de DLL de driver de modo de usuário (sem extensão .dll) |
| UserModeDriverName | REG_SZ | Caminho para a DLL do driver de modo de usuário primário |
| VgaCompatível | REG_DWORD | Indica compatibilidade VGA (0 = não compatível, 1 = compatível) |
| Aceleração.Nível | REG_DWORD | Nível de aceleração gráfica (0 = completo, 5 = nenhum) |
| Sobrescrição de Capacidade | REG_DWORD | Bitmask 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 seu pacote de driver suportar vários modelos de dispositivo, use as seções AddReg específicas do 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
Melhores práticas
- Use HKR para configurações de software: Sempre use HKR (não caminhos absolutos) para garantir que as configurações vão para a chave de software PnP correta
- Configurações comuns de grupo: use seções AddReg compartilhadas para configurações comuns em todos os modelos de dispositivo
- Usar seções específicas do dispositivo: crie seções AddReg separadas para configurações que diferem entre modelos de dispositivo
- Limpar durante a atualização: use as seções DelReg para remover valores obsoletos do registo ao atualizar os controladores
- Valores personalizados do documento: adicione comentários em seu arquivo INF explicando quaisquer valores de registro específicos do fornecedor ou não padrão