Übersicht über Teildruckanbieter
Eine Teilanbieter-DLL implementiert in der Regel benutzerdefinierte Versionen nur der Anbieterfunktionen, die Druckwarteschlangen und Druckaufträge verwalten. Der Teilanbieter wird nur auf dem Druckclientsystem ausgeführt und hängt vom lokalen Druckanbieter für Treiberverwaltungsvorgänge und zum Generieren von Druckerdaten ab. Auf einem Clientsystem können mehrere Teilanbieter vorhanden sein.
In von Druckanbietern definierten Funktionen werden bestimmte Funktionen als "erforderlich" identifiziert. Teildruckanbieter müssen alle erforderlichen Funktionen bereitstellen. Teildruckanbieter implementieren in der Regel keine der optionalen Funktionen.
Erforderliche Funktionen gehören zu den folgenden Funktionsgruppen:
Bei Teildruckanbietern sollten Druckeranschlüsse als gleichwertig mit Druckwarteschlangen betrachtet werden. Für jede Funktion, die eine PRINTER_INFO_2-Struktur empfängt, sollte der pPort-Member der Struktur auf den Namen der Druckwarteschlange festgelegt werden. Wenn der Name der Druckwarteschlange also \\Server\Printer1 lautet, sollte der Portname auch \\Server\Printer1 sein. Die Implementierung von EnumPorts durch den Teildruckanbieter muss den Portnamen \\Server\Printer1 zurückgeben.
Wie unter Einführung in Druckanbieter beschrieben, bewirkt der Aufruf einer Anwendung bei OpenPrinter , dass der Router des Spoolers jeden Druckanbieter aufruft, bis einer von ihnen die angegebene Druckwarteschlange erkennt und ein Handle zurückgibt.
Es ist wichtig zu beachten, dass ein Teildruckanbieter den lokalen Anbieter nicht ersetzt. Nachdem eine Benutzerverbindung mit einem Drucker hergestellt wurde, wird jeder Aufruf einer Anbieterfunktion über den lokalen Anbieter weitergeleitet, der den Aufruf selbst verarbeitet oder an einen Teilanbieter umgeleitet wird. Alle Aufrufe von Anbieterfunktionen, die als "erforderlich" identifiziert werden, werden vom lokalen Anbieter an den entsprechenden Teilanbieter umgeleitet.
Teilanbieter generieren keine Druckaufträge; sie sind vom lokalen Anbieter und dessen Druckprozessoren abhängig, um ROHdaten zu erstellen, die an einen Drucker gesendet werden können. Wenn ein Druckprozessor die StartDocPrinter-Funktion des lokalen Anbieters aufruft (siehe Drucken eines Druckauftrags), und die Druckwarteschlange von einem Teilanbieter unterstützt wird, ruft der lokale Anbieter die StartDocPrinter-Funktion des Teilanbieters auf und stellt die ROH-Daten (als Datei) zur Verfügung. Die Funktionen StartDocPrinter, WritePrinter und EndDocPrinter des Teilanbieters sollten die RAW-Daten über das Netzwerk an die Remotedruckwarteschlange senden.