Usar um arquivo INF Universal
Algumas edições do Windows usam apenas um subconjunto dos métodos de instalação de driver disponíveis no Windows 10 Desktop. Um arquivo INF para versões não desktop do Windows deve executar somente operações aditivas que estejam totalmente descritas no arquivo INF. Um arquivo INF com essa sintaxe restrita é chamado de arquivo INF universal.
Um arquivo INF universal é instalado de forma previsível, com o mesmo resultado todas as vezes. Os resultados da instalação não dependem da execução de componentes fora dos componentes de instalação do dispositivo fornecidos pelo sistema. Por exemplo, referências do coinstalador não são válidas em um arquivo INF universal porque exigir que o código em uma DLL adicional seja executado como parte da instalação significa que o sistema não pode determinar o resultado da instalação apenas a partir do arquivo INF.
Para testar se seu INF é universal, use infverif /u
.
Um driver do Windows deve passar infverif /w
, que testa /u
e também o isolamento do pacote do driver.
Para obter uma lista de opções do InfVerif, consulte Executando InfVerif na linha de comando.
Se você estiver criando um pacote de driver do Windows Desktop, não precisa usar um arquivo INF universal, mas é recomendado fazer isso devido aos benefícios de desempenho.
Quais seções INF são inválidas em um arquivo INF universal?
Você pode usar qualquer seção INF definida pelo sistema em um arquivo INF universal, exceto o seguinte:
- Seção INF ClassInstall32
- Seção INF DDInstall.CoInstallers
- Seção INF DDInstall.FactDef
- Seção INF DDInstall.LogConfigOverride
A seção INF Manufacturer é válida desde que a decoração TargetOSVersion não contenha um sinalizador ProductType ou SuiteMask.
A seção INF DefaultInstall é válida somente se tiver uma decoração de arquitetura, por exemplo [DefaultInstall.NTAMD64]
.
Quais diretivas INF são inválidas em um arquivo INF universal?
Você pode usar qualquer diretiva INF definida pelo sistema em um arquivo INF universal, exceto o seguinte:
- Diretiva INF BitReg
- Diretiva INF DelFiles
- Diretiva INF DelProperty
- Diretiva INF DelReg
- Diretiva INF DelService
- Diretiva INF Ini2Reg
- Diretiva INF LogConfig
- Diretiva INF ProfileItems
- Diretiva INF RegisterDlls
- Diretiva INF RenFiles
- Diretiva INF UnregisterDlls
- Diretiva INF UpdateIniFields
- Diretiva INF UpdateInis
As seguintes diretivas são válidas com algumas ressalvas:
A diretiva INF AddReg é válida se as entradas na add-registry-section especificada tiverem um valor reg-root de HKR, ou nos seguintes casos:
- Para registro de objetos Component Object Model (COM), uma chave pode ser gravada em:
- HKCR
- HKLM\SOFTWARE\Classes
- Para criação de Hardware Media Foundation Transforms (MFTs), uma chave pode ser gravada em:
- HKLM\SOFTWARE\Microsoft\Windows Media Foundation
- HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation
- HKLM\SOFTWARE\WOW3232Node\Microsoft\Windows Media Foundation
- Para registro de objetos Component Object Model (COM), uma chave pode ser gravada em:
A diretiva INF CopyFiles é válido somente se o diretório de destino se o diretório for um dos seguintes dirids:
- 11
- 12
- 13 (consulte Executar do Driverstore)
Observação: CopyFiles não pode ser usado para renomear um arquivo para o qual DestinationDirs inclui dirid 13. - 10,SysWOW64
- 10,nome do subdiretório específico do fornecedor
Observação: No Windows 10, versão 1709, usando dirid 10 com um nome de subdiretório específico do fornecedor é válido em um INF universal, conforme medido usando a ferramenta InfVerif. Em versões posteriores, esse valor pode não ser permitido. Recomendamos mudar para o dirid 13.