Condividi tramite


Direttiva di differenziazione SKU

Con Windows Server 2008 e Windows Vista SP1, i driver di visualizzazione in box sono stati modificati per includere un nuovo valore che rappresentava i driver solo client, ovvero che i driver non verranno installati negli SKU server di Windows. Questa direttiva è necessaria per tutti i driver di visualizzazione in Windows 8.

In Windows Vista prima di SP1 sono stati usati i valori seguenti:

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]

Per Windows 8, vengono usati gli stessi valori usati per Windows Vista SP1 e Windows Server 2008.

Differenziazione SKU per i driver di dispositivo

i fornitori di hardware indipendenti (IHV) possono usare i valori PRODUCTType INF per indicare che un determinato INF è valido solo per le piattaforme server o client. Ciò funziona su Windows XP e nei sistemi operativi successivi e le modifiche sono relativamente semplici da implementare.

Pertanto, anche se esiste un pacchetto driver solo client nell'archivio driver di un sistema server, tale driver non è installabile.

L'argomento Sezione produttore INF illustra come aggiungere TargetOSVersion per filtrare le installazioni dei dispositivi in base a vari criteri. Uno di questi criteri è ProductType, che può essere usato per specificare una categoria di SKU in cui è possibile installare il pacchetto. I valori seguenti sono definiti per ProductType:

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

Per qualsiasi architettura specificata, un inF tipico viene decorato per l'installazione in qualsiasi SKU nel modo seguente:

[Manufacturer]
%MSFT%=Models,amd64

[Models.NTamd64]
<models entries>

Per limitare l'installazione di questo INF solo sul client, è necessario aggiungere un ProductType di "1" alla decorazione. Il numero può essere espresso come decimale o esadecimale. La documentazione mostra esadecimale, ma userò decimale nell'esempio per semplicità.

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

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

Per il server, la sintassi la suddivide per l'installazione in un client e in un server normale. Ognuno di questi ha un proprio tipo di prodotto. Sfortunatamente, la sintassi INF deve essere specificata sia per coprire entrambi i casi. È quindi necessario duplicare l'intera sezione modelli per coprire in realtà lo SKU del server:

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