Compartir a través de


Directiva de diferenciación de SKU

Con Windows Server 2008 y Windows Vista SP1, se modificaron las INFs del controlador de pantalla integrada para incluir un nuevo valor que representaba los controladores como Solo cliente, lo que significa que los controladores no se instalarían en las SKU de servidor de Windows. Esta directiva es necesaria para todos los controladores de pantalla en Windows 8.

En Windows Vista antes de SP1, se usaron los siguientes valores:

X86:
[Manufacturer]
%ATI% = ATI.Mfg

[ATI.Mfg]

In Vista SP1\Server 2008 the following values were used; 
X86:
[Manufacturer]
%ATI% = ATI.Mfg,NTx86...1

[ATI.Mfg.NTx86...1]

X64:
[Manufacturer]
%ATI% = ATI.Mfg,NTamd64...1

[ATI.Mfg.NTamd64...1]

Para Windows 8, se usan los mismos valores que se usaron para Windows Vista SP1 y Windows Server 2008.

Diferenciación de SKU para controladores de dispositivos

Los proveedores de hardware independientes (IHD) pueden usar valores de ProductType INF para indicar que un INF determinado solo es válido para plataformas cliente o de servidor. Esto funciona en Windows XP y en sistemas operativos posteriores, y los cambios son relativamente sencillos de implementar.

Por lo tanto, incluso si existe un paquete de controladores solo cliente en el almacén de controladores de un sistema de servidor, ese controlador no se puede instalar.

En el tema Sección fabricante inf se muestra cómo agregar TargetOSVersion para filtrar las instalaciones de dispositivos en función de varios criterios. Uno de estos criterios es ProductType, que se puede usar para especificar una categoría de SKU en la que se puede instalar el paquete. Los valores siguientes se definen para ProductType:

0x0000001 (VER_NT_WORKSTATION)
0x0000002 (VER_NT_DOMAIN_CONTROLLER)
0x0000003 (VER_NT_SERVER) 

Para cualquier arquitectura determinada, un INF típico está decorado para instalarse en cualquier SKU de la siguiente manera:

[Manufacturer]
%MSFT%=Models,amd64

[Models.NTamd64]
<models entries>

Para restringir este INF para instalar solo en el cliente, debe agregar un ProductType de "1" a la decoración. El número se puede expresar como decimal o hexadecimal. La documentación muestra hexadecimal, pero usaré decimal en el ejemplo para simplificar.

[Manufacturer]
%MSFT%=Models,amd64...1

; models section for workstation
[Models.NTamd64...1]
<models entries>

En el caso del servidor, la sintaxis lo desglosa para instalarlo en un cliente y en un servidor sin formato. Cada uno de ellos tiene su propio tipo de producto. Desafortunadamente, la sintaxis INF necesita especificar ambas para cubrir ambos casos. Por lo tanto, debe duplicar toda la sección de modelos para cubrir realmente la SKU del servidor:

[Manufacturer]
%MSFT%=Models,amd64...1amd64...3

; models section for client
[Models.NTamd64...1]
IHV_DeviceName.XXX = "Foo Generic Device Name (Microsoft Corporation - WDDM v1.2)"
IHV_DeviceName.YYY = "Foo Enthusiast Device Name (Microsoft Corporation - WDDM v1.2)"
<models entries>

; models section for Server
[Models.NTamd64...3]
IHV_DeviceName.XXX = "Foo Generic Name (Microsoft Corporation - WDDM v1.2)"
IHV_DeviceName.ZZZ = "Foo Datacenter Name (Microsoft Corporation - WDDM v1.2)"
<models entries>