Partager via


Introduction aux DLL de graphiques 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 DLL de graphiques d’imprimante implémentent les fonctions DDI graphiques préfixées par Drv, qui sont décrites dans Utilisation du DDI graphique. Ces DLL ont les deux responsabilités suivantes :

  • Assister le GDI dans le rendu d’un travail d’impression.

    Une DLL de graphiques d’imprimante peut fournir des fonctions de dessin DDI graphiques pour gérer les opérations de dessin qui doivent être effectuées de manière spécifique à un dispositif et qui ne peuvent donc pas être prises en charge exclusivement par le moteur de rendu du GDI.

  • Fournir un flux de données rendu au spooler.

    Les DLL de graphiques d’imprimante produisent généralement un flux de sortie dans un type de données RAW (y compris les séquences de commandes) que le spooler peut envoyer au matériel de l’imprimante via les moniteurs d’impression.

La quantité d’assistance de rendu qu’une DLL de graphiques d’imprimante doit fournir est spécifique au type d’imprimante, en fonction des capacités de dessin du matériel, et inclut les scénarios suivants :

  • Le moteur de rendu GDI effectue tout le rendu, en utilisant une surface gérée par GDI. La DLL de graphiques ne fournit aucune fonction de dessin DDI.

  • La DLL de graphiques fournit certaines fonctions de dessin DDI graphiques pour travailler en conjonction avec le moteur de rendu GDI, en utilisant une surface gérée par GDI. Les fonctions de dessin DDI graphiques fournies par la DLL de graphiques peuvent éventuellement rappeler les services de support GDI du moteur de rendu GDI.

  • La DLL de graphiques effectue tout le rendu en fournissant des fonctions de dessin DDI graphiques et en utilisant une surface gérée par le dispositif.

Par exemple, le pilote d’imprimante universel Microsoft (Unidrv) utilise une surface gérée par GDI et fournit certaines fonctions de dessin DDI graphiques, tandis que le pilote d’imprimante PostScript Microsoft utilise une surface gérée par le dispositif.

Pour plus d’informations sur la fourniture d’assistance de rendu dans les pilotes graphiques, veuillez consulter la section Types de surfaces et Utilisation du DDI graphique.

Les deux figures suivantes illustrent le flux de données qui se produit lorsqu’une application crée un travail d’impression en utilisant GDI. L’enregistrement et la lecture EMF sont combinés dans ces figures.

Le premier diagramme représente une DLL de graphiques d’imprimante en mode utilisateur.

Remarque : Sous Windows Vista, les DLL de graphiques d’imprimante ne peuvent s’exécuter qu’en mode utilisateur. Pour plus d’informations, veuillez consulter la section Choix du mode utilisateur ou du mode noyau.

diagramme illustrant une DLL de graphiques d’imprimante en mode utilisateur.

Le second diagramme représente une DLL de graphiques d’imprimante en mode noyau.

flux de données du travail d’impression, utilisant une DLL de graphiques d’imprimante en mode noyau.

Notez dans ces diagrammes que si le format de sortie de GDI est enhanced metafile (EMF), la DLL de graphiques d’imprimante ne reçoit le travail qu’une fois que le processeur d’impression EMF a lu les enregistrements EMF. Notez également que le processeur d’impression EMF change le format de sortie en un format non EMF.

Les diagrammes illustrent un environnement entièrement local. Si l’imprimante est connectée à un serveur, les enregistrements EMF sont généralement produits par la copie du moteur de rendu GDI (GRE) du client, puis mis en file d’attente dans un fichier local qui est envoyé au serveur. La copie du spooler du serveur lit le fichier et envoie les enregistrements au processeur d’impression EMF du serveur, et la copie du GRE du serveur appelle la DLL de graphiques d’imprimante du serveur.