Einführung in Druckanbieter
Warnung
Ab Windows 10 sind die APIs, die Druckanbieter von Drittanbietern unterstützen, veraltet. Microsoft empfiehlt keine Investitionen in Druckdienstleister von Drittanbietern. Bei Windows 8 und neueren Produkten, bei denen das v4-Drucktreibermodell verfügbar ist, können Druckanbieter von Drittanbietern möglicherweise keine Warteschlangen erstellen oder verwalten, die v4-Drucktreiber verwenden.
Druckanbieter sind dafür verantwortlich, Druckaufträge an lokale oder Remotedruckgeräte weiterzuleiten. Sie sind auch für Druckwarteschlangenverwaltungsvorgänge verantwortlich, z. B. das Starten, Beenden und Aufzählen der Druckwarteschlangen eines Servers. Druckanbieter definieren eine allgemeine, computerunabhängige, betriebssystemunabhängige Ansicht eines Druckservers.
Alle Druckanbieter implementieren einen gemeinsamen Satz von Druckanbieterfunktionen. Diese Funktionen werden durch eine Reihe von API-Funktionen definiert, die vom Router des Spoolers (Spoolss.dll) aufgerufen werden.
Die meisten von Druckanbietern definierten Funktionen erfordern ein Druckerhandle als Eingabe. Ein Spoolerclient ruft ein Druckerhandle durch Aufrufen von OpenPrinter in Winspool.drv ab, wodurch der API-Server (Spoolsv.exe) aufgerufen wird. Der Router des Spoolers (Spoolss.dll) ruft die OpenPrinter-Funktion jedes Druckanbieters auf, bis einer von ihnen einen Druckerhandle und einen Rückgabewert bereitstellt, der angibt, dass der Druckanbieter den angegebenen Druckernamen erkennt. Der Router gibt dann sein eigenes Handle an den API-Server zurück. Das Handle des Routers umfasst sowohl das Druckerhandle als auch ein Anbieterhandle. Dieses Handle wird an die Anwendung zurückgegeben, sodass nachfolgende Aufrufe der Anwendung an den richtigen Anbieter und Drucker weitergeleitet werden können.
Microsoft stellt die folgenden Druckanbieter mit Windows 2000 und höher bereit:
Localspl.dll
Lokaler Druckanbieter. Verarbeitet alle Druckaufträge, die an Drucker weitergeleitet werden, die vom lokalen Server verwaltet werden.
Win32spl.dll
Windows-Netzwerkdruckanbieter. Verarbeitet Druckaufträge, die an Win32-Remoteserver (NT-basiertes Betriebssystem oder Windows für Arbeitsgruppen) weitergeleitet werden. Wenn der Auftrag auf dem Remoteserver eintrifft, wird er an den lokalen Druckanbieter des Servers übergeben.
Nwprovau.dll
Novell NetWare-Druckanbieter. Verarbeitet Druckaufträge, die an Novell NetWare-Druckserver weitergeleitet werden.
Inetpp.dll
HTTP-Druckanbieter. Verarbeitet Druckaufträge, die an eine URL gesendet werden.
Anbieter können zusätzliche Netzwerkdruckanbieter erstellen. Weitere Informationen finden Sie unter Schreiben eines Netzwerkdruckanbieters.
Das folgende Diagramm veranschaulicht mögliche Flusspfade, die diese Druckanbieter einbeziehen.
Beim Anzeigen des Diagramms sollten Sie die folgenden Punkte berücksichtigen:
Wenn der Drucker vom Clientsystem verwaltet wird, wird der Druckauftrag vom lokalen Druckanbieter (Localspl.dll) verarbeitet. Drucker, die von Localspl.dll verwaltet werden, müssen nicht physisch für den Client lokal sein. sie können direkt mit Netzwerkkarten verbunden werden.
Wenn sich der Drucker auf einem NT-basierten Betriebssystemserver befindet, verwendet der Netzwerkanbieter (Win32spl.dll) RPC, um Aufrufe vom Router des Clients an den Spoolsv.exe Prozess des Servers umzuleiten. Da sich der Drucker lokal auf dem Server befindet, verarbeitet der lokale Druckanbieter des Servers den Druckauftrag.
Wenn sich der Drucker auf einem anderen Servertyp befindet, kann entweder vom lokalen Druckanbieter oder von einem Netzwerkdruckanbieter, der diesen Servertyp unterstützt, auf ihn zugegriffen werden, wobei vom Server unterstützte Datenformate und Netzwerkprotokolle verwendet werden.
Damit der lokale Druckanbieter auf einen Remotedrucker zugreifen kann, muss er einen Portmonitor enthalten, der Netzwerkprotokolle verwenden kann, die vom Remotedrucker oder -server erkannt werden.