Dela via


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.

diagram som illustrerar en skrivargrafikdll i användarläge.

Det andra diagrammet visar en DLL för skrivargrafik i kernelläge.

skriva ut jobbdataflöde med hjälp av en skrivargrafikdll 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.