Écriture de pilotes de base
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 auteurs de pilotes d'impression peuvent utiliser la fonctionnalité de pilote de base fournie par Windows Vista. Pour créer un pilote de base, générez un GUID que d'autres packages de pilotes peuvent utiliser pour faire référence à l'ensemble des fichiers qui composent le pilote de base. Par exemple, dans Ntprint.inf, la définition du fichier du pilote principal Unidrv est présentée dans l'exemple suivant :
[Microsoft.NTx86]
"{D20EA372-DD35-4950-9ED8-A6335AFE79F0}" =
{D20EA372-DD35-4950-9ED8-A6335AFE79F0},
{D20EA372-DD35-4950-9ED8-A6335AFE79F0}
[{D20EA372-DD35-4950-9ED8-A6335AFE79F0}]
CopyFiles=UNIDRV,PJLMON.DLL,@TTFSUB.GPD,@LOCALE.GPD,@MSXPSINC.GPD
[UNIDRV]
; Unidrv files and pjlmon sections follow...
Avec cette définition, un fichier INF de pilote d'impression peut faire référence à des fichiers de pilote de base en utilisant le mot-clé CoreDriverSections, comme indiqué dans l'exemple précédent.
Il est important de noter qu'un pilote de base doit conserver la compatibilité avec les versions antérieures. Étant donné que plusieurs pilotes peuvent utiliser le pilote de base, celui-ci doit continuer à fonctionner avec les pilotes existants qui en dépendent lorsqu'il est mis à jour. Le pilote principal doit être livré avec le package du pilote.
Le pilote de base est défini par une section Modèle, qui comprend une description de l'appareil qui est le GUID du pilote de base. Par exemple :
; Model section
[Company.NTx86]
"{GUID1}" = {GUID1}, {GUID1}
; Install section - must list all files in the core printer driver
[{GUID1}]
DriverVer = MM/DD/YYYY,1.1.1.1
CopyFiles=MANUFACTURER_CORE_FILESET
; Core Driver Section, can use print-specific INF keywords here
[MANUFACTURER_CORE]
CopyFiles=MANUFACTURER_CORE_FILESET
[MANUFACTURER_CORE_FILESET]
File1.dll
File2.dll
File3.dll
[ControlFlags]
AlwaysExcludeFromSelect = {GUID1}
Le pilote principal doit inclure des informations sur la version dans la section d'installation, en utilisant le mot-clé DriverVer. La section d'installation doit également répertorier tous les fichiers dont le pilote principal a besoin. Utilisez le nouveau mot-clé AlwaysExcludeFromSelect pour vous assurer que le pilote principal n'est pas affiché à l'utilisateur dans l'interface utilisateur.