Condividi tramite


Panoramica dei provider di stampa parziali

Una DLL del provider parziale implementa in genere versioni personalizzate solo delle funzioni del provider che gestiscono le code di stampa e i processi di stampa. Il provider parziale viene eseguito solo nel sistema client di stampa e dipende dal provider di stampa locale per le operazioni di gestione dei driver e per la generazione di dati della stampante. In un sistema client possono esistere più provider parziali.

In Funzioni definite dai provider di stampa, alcune funzioni vengono identificate come "obbligatorie". I provider di stampa parziali devono fornire tutte le funzioni necessarie. I provider di stampa parziali in genere non implementano alcuna delle funzioni facoltative.

Le funzioni obbligatorie appartengono ai gruppi di funzioni seguenti:

Per i provider di stampa parziali, le porte della stampante devono essere considerate equivalenti alle code di stampa. Per qualsiasi funzione che riceve una struttura PRINTER_INFO_2 , il membro pPort della struttura deve essere impostato sul nome della coda di stampa. Pertanto, se il nome della coda di stampa è \\Server\Printer1, anche il nome della porta deve essere \\Server\Printer1. L'implementazione del provider di stampa parziale di EnumPorts deve restituire un nome di porta \\Server\Printer1.

Come descritto in Introduzione ai provider di stampa, la chiamata di un'applicazione a OpenPrinter fa sì che il router dello spooler chiami ogni provider di stampa fino a quando uno di essi riconosce la coda di stampa specificata e restituisce un handle.

È importante ricordare che un provider di stampa parziale non sostituisce il provider locale. Dopo aver creato una connessione utente a una stampante, ogni chiamata a una funzione del provider viene instradata tramite il provider locale, che gestisce la chiamata stessa o la reindirizza a un provider parziale. Tutte le chiamate alle funzioni del provider identificate come "obbligatorie" vengono reindirizzate dal provider locale al provider parziale appropriato.

I provider parziali non generano processi di stampa; dipendono dal provider locale e dai relativi processori di stampa per creare dati RAW che possono essere inviati a una stampante. Quando un processore di stampa chiama la funzione StartDocPrinter del provider locale (vedere Stampa di un processo di stampa) e la coda di stampa è supportata da un provider parziale, il provider locale chiama la funzione StartDocPrinter del provider parziale, fornendo i dati RAW (come file). Le funzioni StartDocPrinter, WritePrinter e EndDocPrinter del provider parziale devono inviare i dati RAW in rete alla coda di stampa remota.