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 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, Server 2003, 2008, 2009, Vista, Windows 7
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...
|