Einführung in Druckergrafik-DLLs
Wichtig
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Modern Print-Plattform und der Anleitung zum Design der Print-Support-App.
Die Druckergrafik-DLLs implementieren Drv-prefixed Graphics DDI-Funktionen, die in Benutzung der Grafik-DDI beschrieben sind. Diese DLLs haben die folgenden beiden Aufgaben:
Sie unterstützen die GDI beim Rendern eines Druckauftrags.
Eine Druckergrafik-DLL kann Grafik-DDI-Zeichenfunktionen bereitstellen, um Zeichenvorgänge zu behandeln, die gerätespezifisch ausgeführt werden müssen und daher nicht ausschließlich von der Rendering Engine von GDI behandelt werden können.
Sie liefern einen gerenderten Datenstrom an den Spooler.
Druckergrafik-DLLs erzeugen normalerweise einen Ausgabestrom in einem RAW-Datentyp (einschließlich Befehlssequenzen), den der Spooler über Druckmonitore an die Druckerhardware senden kann.
Der Umfang der Rendering-Unterstützung, die eine Druckergrafik-DLL bieten muss, ist druckertypspezifisch und hängt von den Funktionalitäten der Hardware ab:
Die GDI Rendering Engine übernimmt das gesamte Rendering unter Verwendung einer GDI-verwalteten Oberfläche. Die Grafik-DLL stellt keine DDI-Zeichenfunktionen zur Verfügung.
Die Grafik-DLL stellt einige Grafik-DDI-Zeichenfunktionen zur Verfügung, die in Verbindung mit der GDI-Rendering Engine unter Verwendung einer GDI-verwalteten Oberfläche arbeiten. Die von der Grafik-DLL bereitgestellten Grafik-DDI-Zeichenfunktionen können optional auf die GDI-Unterstützungsdienste der GDI-Rendering Engine zurückgreifen.
Die Grafik-DLL übernimmt das gesamte Rendering, indem sie Grafik-DDI-Zeichenfunktionen bereitstellt und eine geräteverwaltete Oberfläche verwendet.
Der Microsoft Universal Printer Driver (Unidrv) verwendet zum Beispiel eine GDI-verwaltete Oberfläche und stellt einige Grafik-DDI-Zeichenfunktionen bereit, während der Microsoft PostScript Printer Driver eine geräteverwaltete Oberfläche verwendet.
Weitere Informationen über die Bereitstellung von Rendering-Unterstützung in Grafiktreibern finden Sie unter Oberflächentypen und Verwenden der Grafik-DDI.
Die folgenden beiden Abbildungen veranschaulichen den Datenfluss, der auftritt, wenn eine Anwendung einen Druckauftrag mit GDI erstellt. EMF-Aufzeichnung und -Wiedergabe sind in diesen Abbildungen kombiniert.
Das erste Diagramm stellt eine Druckergrafik-DLL im Benutzermodus dar.
Hinweis In Windows Vista können Druckergrafik-DLLs nur im Benutzermodus ausgeführt werden. Weitere Informationen finden Sie unter Wahl zwischen Benutzermodus und Kernel-Modus.
Das zweite Diagramm zeigt eine Druckergrafik-DLL im Kernel-Modus.
Beachten Sie in diesen Diagrammen, dass die Druckergrafik-DLL den Auftrag erst dann erhält, wenn der EMF-Druckprozessor die EMF-Datensätze wiedergibt, wenn das Ausgabeformat von GDI erweiterte Metadatei (EMF) ist. Beachten Sie auch, dass der EMF-Druckprozessor das Ausgabeformat in Nicht-EMF ändert.
Die Diagramme veranschaulichen eine rein lokale Umgebung. Wenn der Drucker an einen Server angeschlossen ist, werden EMF-Datensätze in der Regel von der Kopie der GDI Rendering Engine (GRE) des Clients erzeugt und dann in eine lokale Datei gespooled, die an den Server gesendet wird. Die Kopie des Spoolers auf dem Server liest die Datei und sendet die Datensätze an den EMF-Druckprozessor des Servers, und die Kopie der GRE auf dem Server ruft die Druckergrafik-DLL des Servers auf.