GDI-Schnittstelle
Die Windows Schnittstelle für Druckertreiber
Einführung
Alle Bildschirm- und Druckertreiber unter den 32bit Windows Betriebssystemen verwenden eine identische Schnittstelle: Das Graphic Device Interface GDI. Diese Schnittstelle ist dafür verantwortlich, dass grafische Informationen auf unterschiedlichen Ausgabegeräten mit möglichst hoher Ausgabequalität angezeigt werden. Jede Windows Betriebssystem - Version definiert eine leicht unterschiedliche GDI. Was Druckertreiber betrifft, sind die folgenden 3 Versionen wichtig:
- Type 0: Windows 95, 98 bis ME
- Type 1: Windows NT3.x (selten verwendet)
- Type 2: Windows NT4.0, 2000, XP
- Type 3: Windows 2000, XP, 2003
Jeder Druckertreiber besteht aus mindestens zwei Komponenten:
- Printer Driver UI: Die Druckertreiber Schnittstelle zum Anwender. In dieser DLL sind die sogenannten Property Sheets, die Eingabedialoge des Druckertreibers enthalten.
- Printer Driver KM: Der im Kernel von Windows angesiedelte Teil vom Druckertreiber setzt die GDI-Daten in Befehle des Druckers um. Tatsächlich ist nur ein Type 2 Druckertreiber tatsächlich im Kernel - Mode angesiedelt.
Oft besteht ein Druckertreiber noch aus einer Einstellungsdatei, in der spezielle Einstellungen zum Druckermodell enthalten sind sowie einer Hilfe-Datei.
Wie sind Standard-Druckertreiber aufgebaut ?
Viele der Hersteller von Druckertreiber umgehen die aufwenige und komplizierte Entwicklung des Kernel-Mode Treibers. Ein spezielles Werkzeug von Microsoft erlaubt nämlich die einfache Entwicklung von Druckertreibern, ohne das tatsächlich eigene Software erstellt werden muss. Diese Treiber basieren auf dem Kernel-Mode DLL RASDD.DLL , die einfach um eine Windows-Ressource mit den speziellen Befehlen des Druckers erweitert wird. Tatsächlich hat sich dieses Verfahren ja auch bei zahlreichen Druckern bewährt.
Moderen Drucker besitzen allerdings Papiergrößen und Auflösungen, die in den Entwicklungstagen der RASDD.DLL noch unvorstellbar waren und deswegen nicht sinnvoll unterstützt werden. Auch bietet die RASDD keine Möglichkeiten für Erweiterungen an.
Aufbau der Windows GDI
Um einen Druckauftrag abzuwickeln, kommuniziert eine Windows Anwendung mit der GDI-32 Schnittstelle. Dabei werden die zu druckenden Daten von der Anwendung entweder in einer Vektordarstellung oder als Rasterbild an die GDI-32 übergeben.
Die GDI-32 verwaltet die Druckereinstellungen und gibt Druckdaten direkt an die "Graphics Engine" der GDI weiter. Diese befindet sich im abgesichertern Kernel-Mode des Windows Betriebssystems. Die Graphics Engine ist über die technischen Fähigkeiten des Druckertreibers informiert und gibt die Daten an den Kernel-Mode Treiber des Druckertreibers (Printer Driver KM) ab. Wenn der Kernel-Mode Treiber z.B. nur monochrome Bilder verarbeiten kann, die Anwendung jedoch versucht, ein Farbbild auszudrucken, so setzt die Graphics Engine das Bildformat entsprechend um.
Der Kernel-Mode Druckertreiber erzeugt aus den GDI-Informationen Steuerbefehle für den Drucker und gibt die erzeugten Druckdaten an den Windows-Spooler weiter. Hier entscheidet der sogannannte "Print Processor" darüber, was weiter mit den Daten geschieht. Der standardmäßig eingesetzte Print Processor heisst "winprint". Dieser führt die Druckdaten erst an den "Language Monitor" und dann an den "Port Monitor".
Bild 1: Aufbau der 32bit Windows GDI für Druckertreiber
Der Language Monitor wird in heutigen Druckertreibern nur sehr selten verwendet. Er soll dafür sorgen, dass das Ausgabeformat des KM Druckertreibers mit dem erwarteten Datenformat des Druckers übereinstimmt. Vorinstallierte Language Monitore sind "RAW", "Text", "Text LF" und "WMF".
Der Port Monitor bestimmt die Ausgabeschnittstelle (Anschluss) des Druckers. Dies sind die seriellen, parallelen und Netzwerkanschlüsse. Der Port Monitor stellt für Windows das Ende der Druckausgabe dar: Sobald alle Druckdaten den Port Monitor übergeben wurden, ist der Druckauftrag für Windows beendet.
Der Print Processor ist ein häufig vernachlässigtes Element im Windows - Drucksystem. Standardmäßig ist er für die Druckwiederholung (Kopien) zustandig. Ab Windows 2000 kann er aber auch mehrere Druckseiten auf einem Blatt Papier anordnen, den Ausdruck drehen und skalieren.
Druckertreiber unter Windows 2003 Server
Unter Microsoft 2003 Server können sogenannte Kernel Mode Druckertreiber (also Type 2 Treiber) nicht mehr installiert werden. Dies wird durch eine sogenannte "Group Policity" verhindert. Lesen Sie hier, wie Sie trotzdem Kernel Mode Druckertreiber unter Windows 2003 verwenden können. Mehr...





