Sección Versión de INF
Por convención, la sección Versión aparece primero en los archivos INF. Cada archivo INF debe tener esta sección.
[Version]
Signature="signature-name"
[Class=class-name]
[ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}]
[Provider=%INF-creator%]
[ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}]
[LayoutFile=filename.inf [,filename.inf]... ] (Windows 2000 and Windows XP)
[CatalogFile=filename.cat]
[CatalogFile.nt=unique-filename.cat]
[CatalogFile.ntx86=unique-filename.cat]
[CatalogFile.ntia64=unique-filename.cat] (Windows XP and later versions of Windows)
[CatalogFile.ntamd64=unique-filename.cat] (Windows XP and later versions of Windows)
[CatalogFile.ntarm=unique-filename.cat] (Windows 8 and later versions of Windows)
[CatalogFile.ntarm64=unique-filename.cat] (Windows 10 version 1709 and later versions of Windows)
DriverVer=mm/dd/yyyy,w.x.y.z
[PnpLockDown=0|1] (Windows Vista and later versions of Windows)
[DriverPackageDisplayName=%driver-package-description%]
[DriverPackageType=PackageType]
Entries
Signature="signature-name"
Debe ser $Windows NT$ o $Chicago$. Esto indica los sistemas operativos para los que este INF es válido. Estos valores de firma tienen los significados siguientes.
Valor de la firma | Significado |
---|---|
$Windows NT$ | Todos los sistemas operativos Windows |
$Chicago$ | Todos los sistemas operativos Windows |
Se requieren caracteres de signo de dólar envolventes ($), pero estas cadenas no distinguen mayúsculas de minúsculas. Si signature-name no es ninguno de estos valores de cadena, el archivo no se acepta como UN INF válido.
Por lo general, Windows no diferencia entre estos valores de firma. Uno de ellos debe especificarse, pero no importa cuál. Debe especificar el valor adecuado para que alguien que lea un archivo INF pueda determinar los sistemas operativos para los que está previsto.
Algunos instaladores de clase ponen requisitos adicionales sobre cómo se debe especificar el valor de firma. Estos requisitos, si existen, se describen en las secciones específicas del tipo de dispositivo de este Kit de controladores de Windows (WDK).
Un INF debe proporcionar información de instalación específica del sistema operativo anexando extensiones definidas por el sistema a sus secciones DDInstall, tanto si el nombre de firma es $Windows NT$ o $Chicago$. (Consulte Crear archivos INF para varias plataformas y sistemas operativos para una explicación de estas extensiones).
Class=class-name
Para cualquier tipo estándar de dispositivo, especifica el nombre de la clase de configuración del dispositivo para el tipo de dispositivo instalado mediante este archivo INF. Este nombre suele ser uno de los nombres de clase definidos por el sistema, como Net o Display, que se enumeran en Devguid.h. Para obtener más información, consulte Clases de configuración de dispositivos proporcionadas por el sistema.
Si un INF especifica una clase, también debe especificar el valor GUID definido por el sistema correspondiente para su entrada ClassGUID . Especificar el valor guid coincidente para un dispositivo de cualquier clase de configuración de dispositivo predefinida puede instalar el dispositivo y sus controladores más rápido, ya que esto ayuda al código de configuración del sistema a optimizar su búsqueda INF.
Si un INF agrega una nueva clase de configuración de dispositivos al sistema, debe proporcionar un valor de nombre de clase sin distinción entre mayúsculas y minúsculas único que difiere de cualquiera de las clases proporcionadas por el sistema en Devguid.h. La longitud de la cadena de nombre de clase debe tener 32 caracteres o menos. El INF debe especificar un valor GUID recién generado para la entrada ClassGUID . Consulte también la sección INF ClassInstall32.
Esta entrada es irrelevante para un INF que no instala ningún controlador de dispositivo nuevo en una clase de configuración de dispositivo predefinida ni una nueva clase de configuración de dispositivo.
Nota:
Esta entrada es necesaria para los controladores de dispositivo que se instalan a través del administrador de Plug and Play (PnP).
ClassGuid={nnn-nn-nn-nn nn-n}
Especifica el GUID de la clase de instalación del dispositivo. El valor GUID tiene el formato que se muestra aquí, donde cada n es un dígito hexadecimal.
Este valor GUID especifica la clase de configuración del dispositivo que se va a asignar a los dispositivos que se instalan desde este archivo INF. Este valor GUID específico de clase también identifica el instalador de clase de dispositivo para el tipo de proveedor de páginas de propiedades específico de clase y dispositivo, si existe.
Para una nueva clase de configuración de dispositivo, el INF debe especificar un valor ClassGUID recién generado. Para obtener más información sobre cómo crear GUID, consulte Uso de GUID en controladores. Consulte también Clases de configuración de dispositivos.
Nota:
Esta entrada es necesaria para los controladores de dispositivo que se instalan a través del administrador de PnP.
ExtensionId={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Especifica el GUID del identificador de extensión al crear una extensión INF. El valor GUID tiene el formato que se muestra aquí, donde cada x es un dígito hexadecimal.
Al crear la versión inicial de una extensión INF, el INF debe especificar un valor ExtensionId recién generado. Sin embargo, al actualizar una extensión existente INF, extensionId debe permanecer igual para que varias versiones relacionadas de la extensión INF se controlen entre sí en lugar de tratarse como INFs de extensión independientes que se pueden instalar simultáneamente en la misma instancia del dispositivo. Para obtener más información sobre cómo crear infs de extensión, vea Usar un archivo INF de extensión.
Nota:
Esta entrada solo es necesaria al crear una extensión INF, como se identifica especificando Class = Extension
y ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
.
ClassVer=major.menor
Reservado para uso del sistema a menos que una clase de dispositivo requiera explícitamente, como Printer. Por ejemplo, vea V4 Driver INF.
Provider=%INF-creator%
Identifica el proveedor del archivo INF. Normalmente, se especifica como un %token OrganizationName% que se expande más adelante en la sección Cadenas del archivo INF. La longitud máxima, en caracteres, de un nombre de proveedor es LINE_LEN.
Por ejemplo, los archivos INF proporcionados con el sistema normalmente especifican el creador de INF como %Msft% y definen% Msft% = "Microsoft" en sus secciones Strings.
Nota:
Esta entrada es necesaria para los controladores de dispositivo que se instalan a través del administrador de PnP.
CatalogFile=filename.cat
Especifica un catálogo (.cat) archivo que se va a incluir en el medio de distribución de un paquete de controladores.
Cuando se envía un paquete de controladores a Microsoft para la firma digital, WHQL proporciona un archivo de catálogo para el paquete de controladores después de que WHQL haya probado y asignado firmas digitales al paquete. Para obtener más información sobre las pruebas y la firma de paquetes de controladores IHV o OEM, consulte Firma de versión WHQL. Los archivos de catálogo no aparecen en la sección SourceDisksFiles ni en la directiva CopyFiles del INF. Windows supone que el archivo de catálogo está en la misma ubicación que el archivo INF.
Los archivos INF proporcionados por el sistema nunca tienen entradas CatalogFile= porque el sistema operativo valida la firma para este tipo de INF en todos los archivos de xxx.cat proporcionados por el sistema.
CatalogFile.nt=unique-filename.cat |
CatalogFile.ntx86=unique-filename.cat |
CatalogFile.ntia64=unique-filename.cat |
CatalogFile.ntamd64=unique-filename.cat
CatalogFile.ntarm=unique-filename.cat
CatalogFile.ntarm64=unique-filename.cat
Especifica otro nombre de archivo único determinado por INF-writer, con .extensión cat , de un archivo de catálogo. Si se omiten estas entradas opcionales, se usa un valor CatalogFile=filename.cat determinado para validar las instalaciones de controladores o dispositivos WDM.
Si hay algún CatalogFile decorado.La entrada xxx= existe en la sección Versión de INF junto con una entrada CatalogFile= sin codificar, se supone que la entrada no descorizada identifica un filename.cat para validar instalaciones de dispositivos, instalaciones de controladores o ambas en esas plataformas para las que no se especifica una entrada decorada.
Cualquier archivo INF del controlador de dispositivo multiplataforma que tenga CatalogFile= y CatalogFile.Las entradas xxx= deben proporcionar un nombre único determinado por IHV/OEM para cada archivo .cat de este tipo.
Para obtener más información sobre cómo usar las extensiones .nt, .ntx86, .ntia64, .ntamd64, .ntarm y .ntarm64 definidas por el sistema, vea Creación de archivos INF para varias plataformas y sistemas operativos.
Nota:
Dado que el mismo archivo .cat se puede usar en todas las plataformas compatibles, el uso de esta entrada no es necesario ni recomendado. Sin embargo, debe usar esta entrada si desea crear archivos .cat específicos de la plataforma para el paquete de controladores.
DriverVer= mm/dd/aaaa,w.x.y.z
Esta entrada especifica la información de versión de los controladores instalados por este archivo INF. A partir de Windows 2000, esta entrada es necesaria.
Para obtener información sobre cómo especificar esta entrada, vea Inf DriverVer (Directiva) de INF DriverVer.
PnpLockDown=0|1
Especifica si Plug and Play (PnP) impide que las aplicaciones modifiquen directamente los archivos que especifica el archivo INF de un paquete de controladores. Si la directiva PnpLockDown está establecida en 1, PnP impide que las aplicaciones modifiquen directamente los archivos copiados por las directivas CopyFiles inf. De lo contrario, si la directiva no está incluida en un archivo INF o el valor de la directiva se establece en cero, una aplicación que tiene privilegios de administrador puede modificar directamente estos archivos. Los archivos de controlador protegidos de esta manera se conocen como archivos de controladores protegidos de terceros.
Para garantizar la integridad de una instalación de controladores PnP, las aplicaciones no deben modificar directamente los archivos de controlador copiados por el archivo INF del paquete de controladores. Las aplicaciones solo deben usar los mecanismos de instalación de dispositivos proporcionados por Windows para actualizar los controladores PnP.
A partir de Windows Vista, un paquete de controladores debe establecer PnpLockDown en 1 para evitar que una aplicación modifique directamente los archivos de controlador. Sin embargo, algunas aplicaciones existentes que desinstalan paquetes de controladores eliminan directamente los archivos de controlador. Para mantener la compatibilidad con estas aplicaciones, la directiva PnpLockDown para este paquete de controladores debe establecerse en cero.
Nota:
Aunque PnP en Windows Vista y versiones posteriores de Windows no requiere que un archivo INF incluya una directiva PnpLockDown para instalar un controlador, PnP en una versión futura de Windows podría requerir que los archivos INF para paquetes de controladores PnP incluyan la directiva PnpLockDown.
DriverPackageDisplayName=%driver-package-description%
Obsoleto. Anteriormente era utilizado por Driver Install Frameworks (DIFx). Para obtener información sobre el desuso de DIFx, consulta Directrices de DIFx.
DriverPackageType= PackageType
Obsoleto. Anteriormente era utilizado por Driver Install Frameworks (DIFx). Para obtener información sobre el desuso de DIFx, consulta Directrices de DIFx.
Comentarios
Cuando un paquete de controladores pasa las pruebas de Microsoft Windows Hardware Quality Lab (WHQL), WHQL devuelve archivos de catálogo .cat al IHV o OEM. Cada archivo .cat contiene una firma cifrada digitalmente para el paquete de controladores. El IHV o OEM debe enumerar estos archivos .cat en la sección Versión inf y debe proporcionar los archivos en el medio de distribución, en la misma ubicación que el archivo INF. Los archivos .cat deben descomprimirse.
Nota:
Si una sección versión inf no incluye al menos una entrada CatalogFile o CatalogFile.ntxxx, el controlador se trata como sin firmar y Windows no muestra las fechas enumeradas en la directiva DriverVer.
Para obtener más información, consulte Firma de controladores.
Ejemplos
En el ejemplo siguiente se muestra una sección Versión típica de un paquete de controladores simple INF, seguido de las secciones SourceDisksNames y SourceDisksFiles requeridas implícitas por las entradas especificadas en esta sección Versión de ejemplo:
[Version]
Signature="$Windows NT$"
Class=SCSIAdapter
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider=%INF_Provider%
CatalogFile=example.cat
DriverVer=01/29/2010,1.2.3.4
PnpLockdown=1
[SourceDisksNames]
;
; diskid = description[, [tagfile] [, <unused>, subdir]]
;
1 = %Disk_Description%,,,\WinNT
[SourceDisksFiles.x86]
;
; filename_on_source = diskID[, [subdir][, size]]
;
exampleDriver.sys = 1,\x86
; ...
[Strings]
INF_Provider="Contoso"
Disk_Description = "Contoso Drivers Disk"
; ...