Introduzione alle DLL della grafica della stampante
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.
Le DLL della grafica della stampante implementano funzioni DDI con prefisso Drv descritte in Uso dell'DDI grafica. Queste DLL hanno le due responsabilità seguenti:
Assistere GDI nel rendering di un processo di stampa.
Una DLL grafica della stampante può fornire funzioni di disegno DDI grafiche per gestire le operazioni di disegno che devono essere eseguite in modo specifico del dispositivo e pertanto non possono essere gestite esclusivamente dal motore di rendering GDI.
Recapitare un flusso di dati di cui è stato eseguito il rendering allo spooler.
Le DLL della grafica della stampante producono in genere un flusso di output in un tipo di dati RAW (incluse le sequenze di comandi) che lo spooler può inviare all'hardware della stampante tramite monitor di stampa.
La quantità di assistenza per il rendering che deve fornire una DLL grafica della stampante è specifica del tipo di stampante, a seconda delle funzionalità di disegno dell'hardware e include gli scenari seguenti:
Il motore di rendering GDI esegue tutto il rendering, usando una superficie gestita da GDI. La DLL grafica non fornisce alcuna funzione di disegno DDI.
La DLL grafica fornisce alcune funzioni di disegno DDI grafiche da usare insieme al motore di rendering GDI, usando una superficie gestita da GDI. Le funzioni di disegno DDI grafica fornite dalla DLL grafica possono facoltativamente richiamare i servizi di supporto GDI del motore di rendering GDI.
La DLL grafica esegue tutto il rendering fornendo funzioni di disegno DDI grafiche e usando una superficie gestita dal dispositivo.
Ad esempio, Microsoft Universal Printer Driver (Unidrv) usa una superficie gestita da GDI e fornisce alcune funzioni di disegno DDI grafiche, mentre Microsoft PostScript Printer Driver usa una superficie gestita dal dispositivo.
Per altre informazioni su come fornire assistenza per il rendering nei driver grafici, vedi Tipi di surface e Uso dell'DDI grafica.
Le due figure seguenti illustrano il flusso di dati che si verifica quando un'applicazione crea un processo di stampa usando GDI. La registrazione e la riproduzione EMF vengono combinate in queste figure.
Il primo diagramma illustra una DLL grafica della stampante in modalità utente.
Nota Nelle DLL della grafica della stampante Windows Vista è possibile eseguire solo in modalità utente. Per altre informazioni, vedere Scelta della modalità utente o della modalità kernel.
Il secondo diagramma illustra una DLL grafica della stampante in modalità kernel.
Si noti che se il formato di output di GDI è avanzato metafile (EMF), la DLL grafica della stampante non riceve il processo finché il processore di stampa EMF non riproduce i record EMF. Si noti anche che il processore di stampa EMF modifica il formato di output in non EMF.
I diagrammi illustrano un ambiente completamente locale. Se la stampante è connessa a un server, i record EMF vengono in genere prodotti dalla copia del client del motore di rendering GDI (GRE) e quindi inseriti in un file locale inviato al server. La copia del server dello spooler legge il file e invia i record al processore di stampa EMF del server e la copia del server dell'gre chiama la DLL grafica della stampante del server.