Introduzione alle DLL della grafica della stampante

Importante

È consigliabile 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 stampanti.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto stampa.

Le DLL della grafica della stampante implementano funzioni DDI con prefisso Drv che sono 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 quindi non possono essere gestite esclusivamente dal motore di rendering di GDI.

  • Recapitare un flusso di dati di cui è stato eseguito il rendering al 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 il 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 di GDI, usando una superficie gestita da GDI. Le funzioni di disegno DDI grafiche fornite dalla DLL grafica possono eventualmente tornare ai servizi di supporto GDI del motore di rendering GDI.

  • La DLL grafica esegue tutto il rendering fornendo funzioni di disegno DDI grafica 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 grafica, mentre Microsoft PostScript Printer Driver usa una superficie gestita dal dispositivo.

Per altre informazioni sulla fornitura di assistenza per il rendering nei driver grafici, vedere Tipi di superficie e Uso di Grafica DDI.

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 cifre.

Il primo diagramma illustra una DLL grafica della stampante in modalità utente.

Nota Nelle DLL della stampante Windows Vista è possibile eseguire solo in modalità utente. Per altre informazioni, vedere Scelta della modalità utente o della modalità kernel.

diagramma che illustra una dll grafica della stampante in modalità utente.

Il secondo diagramma illustra una DLL grafica della stampante in modalità kernel.

stampare il flusso di dati del processo usando una dll grafica della stampante in modalità kernel.

Nota in questi diagrammi che se il formato di output da GDI è metafile avanzato (EMF), la DLL grafica della stampante non riceve il processo fino a quando 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 interamente locale. Se la stampante è connessa a un server, i record EMF vengono in genere generati dalla copia del client del motore di rendering GDI (GRE) e quindi eseguito ilpooling in un file locale inviato al server. La copia del server del spooler legge il file e invia i record al processore di stampa EMF del server e la copia del server chiama la DLL grafica della stampante del server.