Partager via


Directive de différenciation des références SKU

Avec Windows Server 2008 et Windows Vista SP1, les INF du pilote d’affichage dans la boîte ont été modifiés pour inclure une nouvelle valeur représentant les pilotes en tant que client uniquement, ce qui signifie que les pilotes ne seraient pas installés sur les références SKU serveur de Windows. Cette directive est requise pour tous les pilotes d’affichage dans Windows 8.

Dans Windows Vista avant SP1, les valeurs suivantes ont été utilisées :

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]

Par Windows 8, les valeurs utilisées pour Windows Vista SP1 et Windows Server 2008 sont utilisées.

Différenciation des références SKU pour les pilotes de périphérique

Les fournisseurs de matériel indépendant (IHV) peuvent utiliser des valeurs ProductType INF pour indiquer qu’un INF donné est valide uniquement pour les plateformes serveur ou client. Cela fonctionne sur Windows XP et les systèmes d’exploitation ultérieurs, et les modifications sont relativement simples à implémenter.

Par conséquent, même si un package de pilotes client uniquement existe dans le magasin de pilotes d’un système serveur, ce pilote n’est pas installable.

La rubrique INF Manufacturer Section montre comment ajouter TargetOSVersion pour filtrer les installations d’appareils en fonction de différents critères. L’un de ces critères est ProductType, qui peut être utilisé pour spécifier une catégorie de références SKU sur lesquelles le package peut être installé. Les valeurs suivantes sont définies pour ProductType :

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

Pour une architecture donnée, un INF classique est décoré pour s’installer sur n’importe quelle référence SKU de la manière suivante :

[Manufacturer]
%MSFT%=Models,amd64

[Models.NTamd64]
<models entries>

Pour limiter l’installation de cet INF sur le client uniquement, vous devez ajouter un ProductType « 1 » à la décoration. Le nombre peut être exprimé sous forme décimale ou hexadécimale. La documentation montre hexadécimale, mais je vais utiliser la décimale dans l’exemple par souci de simplicité.

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

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

Pour le serveur, la syntaxe le décompose pour l’installer sur un client et un serveur simple. Chacun d’entre eux a son propre type de produit. Malheureusement, la syntaxe INF nécessite que vous spécifiiez les deux pour couvrir les deux cas. Par conséquent, vous devez dupliquer l’ensemble de la section des modèles pour couvrir vraiment la référence SKU du serveur :

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