Comment utiliser les décorations dans les fichiers INF pour les pilotes d’imprimante
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
Les pilotes d’imprimante qui fonctionnent sur Windows Server 2003 avec SP1 et versions ultérieures, ou sur la version 64 bits de Windows XP et versions ultérieures, et qui ciblent les architectures x64 doivent inclure une section INF Models décorée comme illustré dans l’exemple suivant. Cependant, comme le pilote peut être installé en tant que pilote supplémentaire sur une version de Windows antérieure à Windows Server 2003 avec SP1, le fichier INF doit également fournir une section INF Models non décorée. Il est également recommandé d’utiliser des décorations pour installer les pilotes basés sur Itanium.
Les exemples suivants montrent comment rédiger un fichier INF qui peut être utilisé pour installer un pilote pour une architecture de processeur unique.
Exemple de pilote x64
Le premier exemple montre comment utiliser une section INF Models non décorée pour installer un pilote x64 sur des versions de Windows antérieures à Windows XP, ou sur une machine x86 ou Itanium exécutant Windows XP ou Windows Server 2003. La décoration NTamd64 dans la deuxième section INF Models permet d’installer un pilote x64 sur une machine de n’importe quelle architecture de processeur exécutant Windows Server 2003 avec SP1 ou une version ultérieure.
[MANUFACTURER]
%Acme Corp.% = Acme, NTamd64
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>
[Acme.NTamd64]
"Acme LaserWhiz 100 PS" = Acme100_x64.PPD, <hardware IDs and compatible IDs for this printer>
Exemple de pilote basé sur Itanium
L’exemple suivant montre comment utiliser une section INF Models non décorée pour installer un pilote basé sur Itanium sur des versions de Windows antérieures à Windows XP, ou sur une machine x86 exécutant Windows XP ou Windows Server 2003 avant SP1. La décoration NTia64 dans la deuxième section INF Models permet d’installer un pilote basé sur Itanium sur une machine de n’importe quelle architecture de processeur exécutant Windows Server 2003 avec SP1 ou une version ultérieure.
[MANUFACTURER]
%Acme Corp.% = Acme, NTia64
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>
[Acme.NTia64]
"Acme LaserWhiz 100 PS" = Acme100_ia64.PPD, <hardware IDs and compatible IDs for this printer>
Exemple de pilote x86
Dans l’exemple suivant, la section INF Models ne nécessite pas de décoration. Il est inutile de spécifier l’architecture du processeur car une section non décorée est supposée se référer à un pilote x86. Il est permis d’ajouter une section INF Models avec une décoration NTx86, mais gardez à l’esprit que vous devez également inclure une section INF Models non décorée pour les versions de Windows antérieures à Windows Server 2003 avec SP1.
[MANUFACTURER]
%Acme Corp.% = Acme
...
[Acme]
"Acme LaserWhiz 100 PS" = Acme100_x86.PPD, <hardware IDs and compatible IDs for this printer>
Prise en charge de plusieurs architectures dans un fichier INF unique
Cette section montre comment rédiger un fichier INF qui peut être utilisé pour installer des pilotes d’imprimante pour plusieurs architectures de processeurs.
Pour créer un fichier INF qui peut être utilisé pour installer des pilotes pour plusieurs architectures, rédigez une section INF Models, puis faites autant de copies que nécessaire afin que chaque architecture prise en charge ait sa propre section INF Models. Ajoutez la décoration appropriée pour chaque architecture de processeur à chacune des sections INF Models résultantes, comme illustré dans l’exemple suivant.
[MANUFACTURER]
%Acme Corp% = Acme, NTamd64, NTia64
...
;; Used to install
;; - a driver of any architecture type, on a machine running Windows 2000
;; - a driver of any architecture type, on an x86 machine running Windows XP or Windows Server 2003
;; - an x86 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; Used to install
;; - an x64 driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTamd64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; Used to install
;; - a driver of any architecture type, on an Itanium-based machine running Windows XP or Windows Server 2003
;; - an Itanium-based driver on a machine of any architecture type, running Windows Server 2003 with SP1
[Acme.NTia64]
%Acme Model 1% = Acme100PS, <hardware IDs and compatible IDs for this printer>
;; DDInstall Section.
;; This sample assumes that all three versions of the driver
;; use the same DDInstall section.
[Acme100PS]
CopyFiles = MyDriverFile.dll, ...
[DestinationDirs]
DefaultDestDir=66000
[SourceDisksNames.x86]
1= %Location%,,,
[SourceDisksFiles.x86]
MyDriverFile.dll = 1,\i386
...
[SourceDisksNames.amd64]
1= %Location%,,,
[SourceDisksFiles.amd64]
MyDriverFile.dll = 1,\amd64
...
[SourceDisksNames.ia64]
1= %Location%,,,
[SourceDisksFiles.ia64]
MyDriverFile.dll = 1,\ia64
...
[Strings]
Acme Corp = "Acme Corporation"
Acme Model 1 = "Acme LaserWhiz 100 PS"
Location = "Acme CD ROM"