Adición de configuración del Registro de software

Los archivos INF del controlador de pantalla deben agregar toda la configuración del Registro relacionada con el software a la clave de software de Plug and Play (PnP). La clave de software PnP (también denominada clave de controlador) almacena los datos de configuración específicos del controlador que se conservan en los reinicios del sistema.

En el caso de los adaptadores de pantalla, la clave de software se crea en el GUID{4d36e968-e325-11ce-bfc1-08002be10318} de la clase de dispositivo adaptador de pantalla.

Para obtener más información, consulte Rutinas del Registro Plug and Play.

Estructura básica de INF

Los archivos INF del controlador de pantalla suelen ser muy grandes y complejos, que contienen muchas secciones para diferentes arquitecturas, modelos de dispositivo, copia de archivos, instalación del servicio, etc. Los ejemplos siguientes muestran solo las partes relacionadas con el Registro relevantes para agregar la configuración de software a la clave de software PnP.

El archivo INF del controlador de pantalla debe incluir secciones que definan la configuración del Registro que se va a agregar. Este es un fragmento simplificado que muestra la estructura 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 muestra:

  • [Xxx.Mfg]: sección fabricante/modelos que asigna identificadores de hardware a secciones de instalación
  • [R200_R200]: la sección DDInstall que especifica qué instalar para este dispositivo
  • Directivas AddReg: secciones de referencia que definen los valores del Registro que se van a agregar
  • Directiva DelReg: hace referencia a secciones que definen los valores del Registro que se van a quitar (para escenarios de actualización)

Definición de la configuración del Registro

Las AddReg directivas hacen referencia a secciones que contienen los valores reales del Registro. Este es un ejemplo que muestra lo que va en las secciones a las que se hace referencia. Nota: Un controlador de pantalla completo INF contendrá muchos valores adicionales del Registro; estos ejemplos muestran solo la configuración de clave de software más común:

[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 del Registro

Cada entrada del Registro sigue este formato:

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

Where:

  • HKR: representa la raíz de la clave de hardware o software (la clave de software PnP)
  • subclave: ruta de acceso de subclave opcional (vacía en la mayoría de los casos)
  • value-name: el nombre del valor del Registro
  • flags: constante de tipo de dato (como %REG_DWORD%, %REG_SZ%, %REG_MULTI_SZ%)
  • value: los datos reales que se van a almacenar

Configuración común del Registro

Los controladores de visualización suelen establecer estos valores del Registro:

Nombre del valor Tipo Propósito
ControladoresDePantallaInstalados REG_MULTI_SZ Lista de nombres de archivos DLL del controlador en modo usuario (sin la extensión .dll)
UserModeDriverName REG_SZ Ruta de acceso al archivo DLL del controlador en modo de usuario principal
VgaCompatible REG_DWORD Indica la compatibilidad con VGA (0 = no compatible, 1 = compatible)
Acceleration.Level REG_DWORD Nivel de aceleración de gráficos (0 = completo, 5 = ninguno)
Anulación de Capacidad REG_DWORD Máscara de bits para invalidar las funcionalidades de hardware

Constantes de cadena

Defina las constantes de tipo de registro en la sección [Strings] del archivo INF.

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

Ejemplo de varios dispositivos

Si el paquete de controladores admite varios modelos de dispositivo, use secciones AddReg específicas del 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

Procedimientos recomendados

  1. Usar HKR para la configuración de software: use siempre HKR (no rutas de acceso absolutas) para asegurarse de que la configuración vaya a la clave de software PnP correcta.
  2. Configuración común de grupo: usar secciones AddReg compartidas para la configuración común en todos los modelos de dispositivo
  3. Usar secciones específicas del dispositivo: crear secciones AddReg independientes para la configuración que difiere entre los modelos de dispositivo.
  4. Limpieza en la actualización: utilice las secciones de DelReg para eliminar valores obsoletos del registro al actualizar controladores
  5. Documentar valores personalizados: agregue comentarios en el archivo INF que expliquen los valores del Registro del proveedor específicos o no estándar.

Véase también