Compartir a través de


Sección INF ClassInstall32

Precaución

Si va a compilar un paquete universal o de Windows Driver, esta sección no es válida. Consulta Usar un archivo INF universal y Introducción con controladores de Windows.

Una sección ClassInstall32 instala una nueva clase de configuración de dispositivos para los dispositivos de la nueva clase.

[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]...
Hace referencia a una o varias secciones con nombre que contienen entradas de valor específicas de clase que se van a escribir en el Registro. Normalmente, esto se usa para asignar al menos a la nueva clase de configuración de dispositivos un nombre descriptivo que otros componentes pueden recuperar más adelante del registro y usar para abrir dispositivos instalados de esta nueva clase de dispositivo o para "instalar" cualquier proveedor de páginas de propiedades para esta clase de configuración de dispositivo, etc.

Una especificación HKR en cualquier sección del registro del complemento designa la clave del Registro que contiene la configuración de esa clase. Para obtener más información, vea la siguiente sección Comentarios .

Para obtener más información, vea Inf AddReg Directive.

AddProperty=add-property-section[,add-property-section]...
(Windows Vista y versiones posteriores de Windows) Hace referencia a una o varias secciones de archivos INF que modifican las propiedades de dispositivo establecidas para una clase de configuración de dispositivo. Debe usar una directiva AddProperty INF solo para establecer una propiedad de clase de configuración de dispositivo que sea nueva en Windows Vista o versiones posteriores de los sistemas operativos Windows.

En el caso de las propiedades de clase de dispositivo que se introdujeron anteriormente en Windows Server 2003, Windows XP o Windows 2000, y que tienen los valores de entrada del Registro correspondientes, debe seguir usando directivas AddReg inf para establecer la propiedad de clase de configuración de dispositivo. Estas directrices se aplican a las propiedades definidas por el sistema y a las propiedades personalizadas.

Para obtener más información sobre cómo usar la directiva AddProperty , vea Using the INF AddProperty Directive and the INF DelProperty Directive.

Copyfiles=@filename | file-list-section[,file-list-section]...
Especifica un archivo con nombre que se va a copiar del medio de origen al destino o hace referencia a una o varias secciones con nombre en las que se especifican archivos relevantes para la clase en el medio de origen para la transferencia al destino. La entrada DefaultDestDir de la sección DestinationDirs del INF especifica el directorio de destino para que se copie cualquier archivo único específico de clase.

Para obtener más información, vea Inf CopyFiles (Directiva) de INF.

Nota

Los archivos INF proporcionados por el sistema para las clases de configuración de dispositivos no usan esta directiva en esta sección.

DelReg=del-registry-section[,del-registry-section]...
Hace referencia a una o varias secciones con nombre en las que se especifican entradas o claves de valor que se van a quitar del Registro durante la instalación del instalador de clase.

Sin embargo, si ya existe un {SetupClassGUID} determinado como una clase instalada, el código de instalación del sistema omite posteriormente la sección ClassInstall32 de cualquier INF que especifique el mismo valor GUID en su sección Versión . Por lo tanto, un INF no puede reemplazar un instalador de clase existente ni modificar su comportamiento desde una sección ClassInstall32 .

Para obtener más información, vea Directiva INF DelReg.

DelProperty=del-property-section[,del-property-section]...
(Windows Vista y versiones posteriores de Windows) Hace referencia a una o varias secciones de archivos INF que eliminan las propiedades del dispositivo establecidas para una clase de configuración de dispositivo. Debe usar una directiva INF DelProperty solo para eliminar una propiedad de clase de configuración de dispositivo que sea nueva en Windows Vista o versiones posteriores de los sistemas operativos Windows.

En el caso de las propiedades de clase de dispositivo que se introdujeron anteriormente en Windows Server 2003, Windows XP o Windows 2000, y que tienen los valores de entrada del Registro correspondientes, debe seguir usando directivas INF DelReg para eliminar la propiedad de clase de configuración del dispositivo. Estas directrices se aplican a las propiedades definidas por el sistema y a las propiedades personalizadas.

Para obtener más información sobre cómo usar la directiva DelProperty , vea Using the INF AddProperty Directive and the INF DelProperty Directive.

Delfiles=file-list-section[,file-list-section]...
Hace referencia a una o varias secciones con nombre en las que se especifican los archivos pertinentes para la clase instalados anteriormente en el destino para su eliminación.

Para obtener más información, vea Directiva INF DelFiles.

Renfiles=file-list-section[,file-list-section]...
Hace referencia a una o varias secciones con nombre en las que se muestran los archivos relevantes para la clase que se van a cambiar de nombre en el destino.

Para obtener más información, vea Inf RenFiles (Directiva RenFiles de INF).

BitReg=bit-registry-section[,bit-registry-section]...
Es válido en esta sección, pero casi nunca se usa.

Para obtener más información, vea Inf BitReg Directive.

UpdateInis=update-ini-section[,update-ini-section]...
Es válido en esta sección, pero casi nunca se usa.

Para obtener más información, vea Directiva INF UpdateInis.

UpdateIniFields=update-inifields-section[,update-inifields-section]...
Es válido en esta sección, pero casi nunca se usa.

Para obtener más información, consulte Directiva INF UpdateIniFields.

Ini2Reg=ini-to-registry-section[,ini-to-registry-section]...
Es válido en esta sección, pero casi nunca se usa.

Para obtener más información, consulte Directiva INF UpdateIniFields.

Comentarios

Debe incluir una sección ClassInstall32 en un archivo INF de dispositivo solo para instalar una nueva clase de instalación de dispositivo personalizada. Los archivos INF para dispositivos de una clase instalada, ya sea una clase de instalación de dispositivo proporcionada por el sistema o una clase personalizada, no deben incluir una sección ClassInstall32 . Dado que el sistema procesa una sección ClassInstall32 solo si aún no está instalada una clase, no puede usar una sección ClassInstall32 para volver a instalar o cambiar la configuración de una clase que ya está instalada. En concreto, no puede usar una sección ClassInstall32 para agregar un co-instalador de clase o un controlador de filtro de clase para una clase que ya está instalada. Para obtener información sobre cómo instalar coinstaladores y controladores de filtro, vea Escribir un co-instalador e Instalar un controlador de filtro.

Normalmente, una sección ClassInstall32 tiene una o varias directivas AddReg para agregar entradas en una subclave SetupClassGUID proporcionada por el sistema en el Registro. Estas entradas pueden incluir un "nombre descriptivo", una ruta de acceso del instalador de clase específica de la clase, un icono de clase, un proveedor de páginas de propiedades, etc.

Excepto AddReg y CopyFiles, las demás directivas que se muestran aquí rara vez se usan en una sección ClassInstall32 .

Para admitir una distribución multiplataforma de archivos de controlador, construya secciones ClassInstall32 específicas de la plataforma. Por ejemplo, todas las funciones setupAPI del sistema que procesan una sección ClassInstall32 buscarán primero una sección ClassInstall32.ntx86 en una plataforma x86 y solo examinarán una sección ClassInstall32 no codificada si no encuentran una sección ClassInstall32.ntx86 . Para obtener más información sobre cómo usar las extensiones .nt, .ntx86, .ntia64, .ntamd64, .ntarm y .ntarm64 definidas por el sistema, vea Crear archivos INF para varias plataformas y sistemas operativos.

Nota

El nombre de sección ClassInstall32 también se usa para las instalaciones en plataformas de 64 bits.

A partir de Windows 2000, todos los dispositivos instalados están asociados a una clase de configuración de dispositivo. Si el INF de un dispositivo que se va a instalar no está asociado a un nuevo instalador de clase de dispositivo, o si su especificación ClassGUID= en la sección Versión no coincide con un GUID de clase de instalación definido por el sistema, ese dispositivo está asociado a la clase de configuración del dispositivo con el nombre "Unknown".

El INF para cualquier instalador de clase de dispositivo normalmente tiene una directiva AddReg en su sección ClassInstall32 para definir al menos una sección con nombre que crea un nombre descriptivo para su tipo de dispositivo. El código de instalación crea automáticamente una clave SetupClassGUID en el lugar adecuado del Registro a partir del valor proporcionado para la entrada ClassGUID= en la sección Versión de INF cuando se instala el primer dispositivo de esa clase de instalación (nueva).

Inf puede usar las secciones del registro de complementos a las que se hace referencia en su sección ClassInstall32 para especificar un proveedor de páginas de propiedades y ejercer el control sobre cómo se controla su clase de dispositivos en la interfaz de usuario.

Esta sección de add-registry específica de clase tiene la siguiente forma general:

[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]

El sistema usa el icono especificado para representar el instalador al usuario.

  • Si el valor icono es positivo, representa un identificador de recurso para un recurso. El recurso se extrae del archivo DLL del instalador de clase, si se especifica la clave Installer32 o del archivo DLL de la página de propiedades, si se especifica la clave EnumPropPages32. El valor "0" representa el primer icono del archivo DLL. El valor "1" está reservado.
  • Si el valor icono es negativo, el valor absoluto es el identificador de recurso del icono en SetupApi.DLL.

Establecer las entradas de valor booleanas SilentInstall, NoDisplayClass y NoInstallClass predefinidas en una clave del Registro específica de la clase tiene los siguientes efectos:

  • Al establecer SilentInstall, los instaladores no envían mensajes emergentes al usuario que requieren una respuesta durante la instalación de dispositivos de esta clase, independientemente de si se especifican en las secciones DDInstall del archivo INF del instalador de clase o en archivos INF independientes para dispositivos instalados posteriormente que se declaran de esta clase estableciendo la misma especificación ClassGuid={ClassGUID} en sus respectivas secciones de versión. Por ejemplo, los instaladores de clase del sistema de dispositivos CD-ROM y de disco y el instalador de clase de puerto paralelo del sistema establecen SilentInstall en sus respectivas claves del Registro.

    Si un instalador específico de clase requiere que el equipo se reinicie para cualquier dispositivo que instale, la sección del registro de complementos específico de clase de su INF no puede tener esta entrada de valor.

  • Al establecer NoDisplayClass, se suprime la visualización visible para el usuario de todos los dispositivos de esta clase Administrador de dispositivos. Por ejemplo, los instaladores de clase del sistema para impresoras y para controladores de red (incluidos clientes, servicios y protocolos) establecen NoDisplayClass en sus respectivas claves del Registro.

  • La configuración de NoInstallClass indica que ningún dispositivo de este tipo requerirá la instalación manual por parte de un usuario final. Por ejemplo, los instaladores de clase del sistema para dispositivos exclusivamente Plug and Play (PnP) establecen NoInstallClass en sus respectivas claves del Registro.

Una sección ClassInstall32 puede contener directivas AddReg para establecer deviceType, DeviceCharacteristics y Security para los dispositivos de su clase de instalación. Consulte la directiva AddReg inf para obtener más información.

Ejemplos

En este ejemplo se muestra la sección ClassInstall32 , junto con la sección con nombre a la que hace referencia con la directiva AddReg.

[ClassInstall32] 
AddReg=example_class_addreg

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

Por el contrario, en este ejemplo se configura un proveedor de páginas de propiedades específico de clase. Este INF también establece las entradas de valor SilentInstall y NoInstallClass de la clave de clase en TRUE (1).

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

Consulte también

AddProperty

AddReg

BitReg

CopyFiles

DDInstall

DelFiles

DelProperty

DelReg

Ini2Reg

Modelos

RenFiles

SetupDiBuildClassInfoList

UpdateIniFields

UpdateInis

Versión