Freigeben über


Einführung in Druckergrafik-DLLs

Wichtig

Es wird empfohlen, den IPP-Posteingangsklassentreiber von Microsoft zusammen mit Druckunterstützungs-Apps (PSA) zu verwenden, um die Druckoberfläche in Windows 10 und 11 für die Druckergeräteentwicklung anzupassen.

Weitere Informationen finden Sie im Designhandbuch für Druckunterstützungs-Apps.

Druckergrafik-DLLs implementieren DDI-Funktionen für Grafiken mit Drv-Präfix, die unter Verwenden des Grafik-DDI beschrieben werden. Diese DLLs haben die folgenden beiden Zuständigkeiten:

  • Unterstützen Sie GDI beim Rendern eines Druckauftrags.

    Eine Druckergrafik-DLL kann Grafik-DDI-Zeichenfunktionen bereitstellen, um Zeichnungsvorgänge zu verarbeiten, die gerätespezifisch ausgeführt werden müssen und daher nicht ausschließlich von der Rendering-Engine von GDI verarbeitet werden können.

  • Übermitteln eines gerenderten Datenstroms an den Spooler.

    Druckergrafik-DLLs erzeugen in der Regel einen Ausgabestream in einem RAW-Datentyp (einschließlich Befehlssequenzen), den der Spooler über Druckmonitore an die Druckerhardware senden kann.

Der Umfang der Renderingunterstützung, die eine Druckergrafik-DLL bereitstellen muss, ist je nach Zeichnungsfunktionen der Hardware druckertypspezifisch und umfasst die folgenden Szenarien:

  • Die GDI-Rendering-Engine führt das gesamte Rendering mithilfe einer von GDI verwalteten Oberfläche durch. Die Grafik-DLL bietet keine DDI-Zeichenfunktionen.

  • Die Grafik-DLL stellt einige Grafik-DDI-Zeichenfunktionen bereit, die in Verbindung mit der Rendering-Engine von GDI mithilfe einer von GDI verwalteten Oberfläche funktionieren. Die von der Grafik-DLL bereitgestellten Grafik-DDI-Zeichenfunktionen können optional die GDI-Unterstützungsdienste der GDI-Rendering-Engine aufrufen.

  • Die Grafik-DLL übernimmt das gesamte Rendern, indem sie Grafik-DDI-Zeichenfunktionen bereitstellt und eine geräteseitig verwaltete Oberfläche verwendet.

Der Microsoft Universal Printer Driver (Unidrv) verwendet beispielsweise eine von GDI verwaltete Oberfläche und stellt einige Grafik-DDI-Zeichenfunktionen bereit, während der Microsoft PostScript-Druckertreiber eine geräteseitig verwaltete Oberfläche verwendet.

Weitere Informationen zur Bereitstellung von Renderingunterstützung in Grafiktreibern finden Sie unter Surface-Typen und Verwenden des Grafik-DDI.

Die folgenden beiden Abbildungen veranschaulichen den Datenfluss, der auftritt, wenn eine Anwendung mithilfe von GDI einen Druckauftrag erstellt. EMF-Aufzeichnung und -Wiedergabe werden in diesen Zahlen kombiniert.

Das erste Diagramm zeigt eine Grafik-DLL für Drucker im Benutzermodus.

Hinweis In Windows Vista können Grafik-DLLs nur im Benutzermodus ausgeführt werden. Weitere Informationen finden Sie unter Auswählen des Benutzermodus oder des Kernelmodus.

Diagramm, das eine Grafik-DLL für Drucker im Benutzermodus veranschaulicht.

Das zweite Diagramm zeigt eine Grafik-DLL im Kernelmodus für Drucker.

Druckauftragsdatenfluss mithilfe einer Grafik-DLL im Kernelmodus.

Beachten Sie in diesen Diagrammen, dass die Druckergrafik-DLL den Auftrag erst empfängt, wenn das Ausgabeformat von GDI eine erweiterte Metadatei (EMF) ist, bis der EMF-Druckprozessor EMF-Datensätze wiedergibt. Beachten Sie auch, dass der EMF-Druckprozessor das Ausgabeformat in nicht EMF ändert.

Die Diagramme veranschaulichen eine völlig lokale Umgebung. Wenn der Drucker mit einem Server verbunden ist, werden EMF-Datensätze in der Regel von der Kopie des Clients der GDI-Rendering-Engine (GRE) erstellt und dann in einer lokalen Datei gespoolt, die an den Server gesendet wird. Die Kopie des Spoolers des Servers liest die Datei und sendet die Datensätze an den EMF-Druckprozessor des Servers, und die Kopie des GRE des Servers ruft die Druckergrafik-DLL des Servers auf.