Introduktion till DLL:er för skrivargrafik
Viktig
Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.
Mer information finns i designguiden för Print-supportappen.
DLL:er för skrivargrafik implementerar DDI-funktioner med Drv-prefix som beskrivs i Using the Graphics DDI. Dessa DLL:er har följande två ansvarsområden:
Hjälp GDI att hantera ett utskriftsjobb.
En DLL för skrivargrafik kan tillhandahålla grafik-DDI-ritningsfunktioner för att hantera ritningsåtgärder som måste utföras på ett enhetsspecifikt sätt och därför inte kan hanteras uteslutande av GDI:s återgivningsmotor.
Leverera en renderad dataström till spoolern.
DLL:er för skrivargrafik producerar vanligtvis en utdataström i en RAW-datatyp (inklusive kommandosekvenser) som spolaren kan skicka till skrivarmaskinvaran via utskriftsövervakare.
Mängden återgivningshjälp som en skrivargrafik-DLL måste tillhandahålla är skrivartypspecifik, beroende på maskinvarans ritningsfunktioner, och innehåller följande scenarier:
GDI-återgivningsmotorn gör all återgivning med hjälp av en GDI-hanterad yta. Grafik-DLL:en tillhandahåller inga DDI-ritningsfunktioner.
Grafik-DLL:n innehåller vissa grafik-DDI-ritningsfunktioner som fungerar tillsammans med GDI:s återgivningsmotor med hjälp av en GDI-hanterad yta. Grafik-DDI-ritningsfunktionerna som tillhandahålls av grafik-DLL:n kan eventuellt anropa tillbaka till GDI-återgivningsmotorns GDI-supporttjänster.
Grafik-DLL:n gör all återgivning genom att tillhandahålla grafik-DDI-ritningsfunktioner och använda en enhetshanterad yta.
Till exempel använder Microsoft Universal Printer Driver (Unidrv) en GDI-hanterad yta och tillhandahåller vissa grafik-DDI-ritningsfunktioner, medan Microsoft PostScript Printer Driver använder en enhetshanterad yta.
Mer information om hur du ger återgivningsstöd i grafikdrivrutiner finns i Surface Types och Using the Graphics DDI.
Följande två siffror illustrerar det dataflöde som inträffar när ett program skapar ett utskriftsjobb med hjälp av GDI. EMF-inspelning och uppspelning kombineras i dessa siffror.
Det första diagrammet visar en skrivargrafik-DLL i användarläge.
Obs I Windows Vista kan skrivargrafik-DLL:er bara köras i användarläge. Mer information finns i Välja användarläge eller kernelläge.
Det andra diagrammet visar en DLL för skrivargrafik i kernelläge.
Observera i de här diagrammen att om utdataformatet från GDI är förbättrad metafilen (EMF), får skrivargrafik-DLL:n inte jobbet förrän EMF-utskriftsprocessorn spelar upp EMF-register. Observera också att EMF-utskriftsprocessorn ändrar utdataformatet till icke-EMF.
Diagrammen illustrerar en helt lokal miljö. Om skrivaren är ansluten till en server produceras EMF-poster vanligtvis av klientens kopia av GDI-återgivningsmotorn (GRE) och sedan buffrade till en lokal fil som skickas till servern. Serverns kopia av spoolern läser filen och skickar posterna till serverns EMF-utskriftsprocessor, och serverns kopia av GRE anropar serverns skrivargrafik-DLL.