(12) United States Patent (10) Patent No.: US 6,825,941 B1 Nguyen Et Al
Total Page:16
File Type:pdf, Size:1020Kb
USOO6825941B1 (12) United States Patent (10) Patent No.: US 6,825,941 B1 Nguyen et al. (45) Date of Patent: Nov.30, 2004 (54) MODULAR AND EXTENSIBLE PRINTER Primary Examiner-Gabriel Garcia DEVICE DRIVER AND TEXT BASED Assistant Examiner Douglas Tran METHOD FOR CHARACTERIZING (74) Attorney, Agent, or Firm-Leydig, Voit & Mayer, Ltd. PRINTER DEVICES FOR USE THEREWITH (57) ABSTRACT (75) Inventors: Amanda Nguyen, Bothell, WA (US); Ganesh Pandey, Kirkland, WA (US); A modular Universal Printer Driver is provided which Alvin Scholten, Redmond, WA (US); dramatically improves the extensibility of the driver archi Zhanbing Wu, Bellevue, WA (US); tecture and the Support for printer features. This driver Eigo Shimizu, Seattle, WA (US); Peter operates in conjunction with OEM developed minidrivers Wong, Woodinville, WA (US) which utilize the text based Generic Printer Description (73) Assignee: Microsoft Corporation, Redmond, WA (GPD) format of the instant invention. The universal driver (US) allows the GPD text based minidrivers to add and define new features introduced by the printer OEM. The universal driver (*) Notice: Subject to any disclaimer, the term of this also allows the GPD minidriver to modify, add, or replace patent is extended or adjusted under 35 the standard user interface provided by the universal driver. U.S.C. 154(b) by 890 days. The universal driver and the text based GPD minidrivers are included in a computer System for outputting data to an (21) Appl. No.: 09/157,895 output device, Such as a printer. This System includes an (22) Filed: Sep. 21, 1998 application program which invokes a plurality of graphics device interface functions to control the Sending of data to (51) Int. Cl." ............................ G06F 3/12; G06F 13/00 the printer. Within the System, a graphics device interface (52) U.S. Cl. ...................................... 358/1.15; 358/1.13 invokes device driver functions for controlling the output (58) Field of Search ............................... 358/1.15, 1.11, ting of data. The text based minidriver contains a charac 358/1.13 terization of the output device, and an implementation of (56) References Cited device specific device driver functions invoked by the graphic device interface. This text based minidriver outputs U.S. PATENT DOCUMENTS this data to the universal driver. This universal driver incor 5,604.843 A 2/1997 Shaw et al. ................. 395/101 porates the text based characterization passed by the minid 5,619,635 A * 4/1997 Millman et al. ............ 395/768 river. The universal driver implements the device specific OTHER PUBLICATIONS driver functions and controls the outputting of data to the printer in accordance with the incorporated text based char The Unicode Standard Version 2.0, The Unicode Consor acterization. tium, Addison-Wesley Press, 1997. * cited by examiner 22 Claims, 16 Drawing Sheets 102 04 106 Generic Printer Description File PARSER Internal Binary DataStructures (cached in file) Driver Rendering DLL DRIVER USER INTERFACEDLL 112. (handles DEVMODE, 116 devicaps, etc.) 110 118 PDEW, gdi OBS, PRINTER OUTPUTDATA Printer Settings (devmode) WECTOR FONT MODULE MODULE 120 miniPDev, output data miniPDev, output data miniPDev, output data output cmds OEM CUSTOM OEMFONT OEMCUSTOM OEM CUSTOM WECTOR GRX DOWNLOADING RASTER GRX UMODULE 1247 128/ 128/ 14. U.S. Patent Nov.30, 2004 Sheet 3 of 16 US 6,825,941 B1 RMDERING MODULE U.S. Patent Nov.30, 2004 Sheet 4 of 16 US 6,825,941 B1 (STARD -70 REQUEST CURRENT VERSION Fig. 4 INTERFACE 72 CURRENT VERSION No SUPPORTED REQUEST NEXT OLDER Yes VERSION OF 74 USE CURRENT INTERFACE VERSION OF INTERFACE 82 78 NEXT OLDERVERSION (END) SUPPORTED REQUEST NEXT OLDER Yes VERSION OF USE NEXT OLDER INTERFACE VERSION OF INTERFACE NEXT 84 OLDERVERSION SUPPORTED Y USE NEXT OLDER VERSION OF INTERFACE U.S. Patent Nov.30, 2004 Sheet 5 of 16 US 6,825,941 B1 64 Driver ra Driver calls Returns Calls Calls Return pointer ClassFactory-> Unknown Unknown-> DIGetClassObject to ClassFacto Createlnstance interface QueryInterface pointer For all supported interfaces OEM Customization DLL t | o Driver OEM returns Driver passes OEM Calls NOW both OEM Interface Unknown unknown-> and Driver has Pointer for interface QueryInterface to Known interfaces Highest to OEM using get the of each other. Known Publish.Driverinter highest known They use interface face helper function interface methods Method of OEM interface. to call interface. OEM Customization DLL e FIG.5 U.S. Patent Nov.30, 2004 Sheet 6 of 16 US 6,825,941 B1 INTERNAL PPD/GPD Parsers BINARY DATA WINSPOOL UMODULE DEVMODE, PRINTERDATA COMPSTU OEM U MODULE FIG. 6 62 U.S. Patent Nov.30, 2004 Sheet 7 of 16 US 6,825,941 B1 §§§§? No.ž s FG. 7 U.S. Patent Nov.30, 2004 Sheet 8 of 16 US 6,825,941 B1 edius & aggress Adarted ournart Settings i. Peger'Output " - - Cogy Count Cogy 3-3 Paper Option : i Paper Option 2 l Graphic or Print Quality. Draft El-SEmage Color Matching - ICM Method...ag r. ICM intent. Brasia:3: :- - - Scaling 100% litheritag: Ele - - - TrueType Fort 2:38:28: |-9 Graphic option 1 El-El Graphic Option 3 s is Document Options ... utput Bir Trey Assignment: Eiddle Tray " '''eter Mark FIENTIAL - HellFire:Jse Syster ir irriage Coldf. Halfline Coloradjustmgn: F.G. 8 U.S. Patent Nov.30, 2004 Sheet 9 of 16 US 6,825,941 B1 90 Public DEVMODE dmExtraData Driver extra data dmOEMDriverExtra OEMU 1 extra date (its private DEVMODE) OEMU 2 extra date (its private DEVMODE) FIG. 9 U.S. Patent Nov.30, 2004 Sheet 10 of 16 US 6,825,941 B1 OEM U 1 extra data dwSize dwSignature dwVersion, U.S. Patent Nov.30, 2004 Sheet 11 of 16 US 6,825,941 B1 go pPublicDMin = pPublicDMOut = 0 Public DEVMODE dmExtraData Driver extra data dmOEMDriverExtra OEMU 1 extra date (its private DEVMODE) cbBufSize = size of extr pOEMDMin = 0 pOEMDMOut = OEMU 2 extra date (its private DEVMODE) 94 FIG. 11 U.S. Patent Nov.30, 2004 Sheet 12 of 16 US 6,825,941 B1 pPublicDMln pPublicDMOut > Other Version Current Version Public DEVMODE dmExtraData Public DEVMODE 96 dmExtra Data pOEMDMIn Driver extra data dmOEMDriverExtra 98 Driver extra data dmOEMDriverExtra OEM U 1 extra date (its private DEVMODE) role OEMU 2 extra date CbBufSize (its private DEVMODE) OEM U 1 extra date (its private DEVMODE) OEM U 2 extra date (its private DEVMODE) F.G. 12 U.S. Patent Nov.30, 2004 Sheet 13 of 16 US 6,825,941 B1 pPublicDMIn pPublicDMOut Current Version Current Version Public DEVMODE Public DEVMODE dmExtraData dmExtraData 96 98 Driver extra data Driver extra data dmOEMDriverExtra dmOEMDriverExtra re pOEMDMOut cbBufSize OEM U 1 extra date CbBufSize OEM U 1 extra date (its private DEVMODE) (its private DEVMODE) OEMU 2 extra date OEM U 2 extra date (its private DEVMODE) (its private DEVMODE) FIG. 13 U.S. Patent Nov.30, 2004 Sheet 15 of 16 US 6,825,941 B1 APPLICATION i PROGRAM . i GRAPHICS DEVICE INTERFACE : | i Fig. 15 PRIOR ART U.S. Patent Nov.30, 2004 Sheet 16 of 16 US 6,825,941 B1 APPLICATION PROGRAM 18 PRINTER PRINTER 1 2 Fig. 16 US 6,825,941 B1 1 2 MODULAR AND EXTENSIBLE PRINTER terization which is needed to drive the individual printers. As DEVICE DRIVER AND TEXT BASED illustrated in FIG.16, the computer system 19 implementing METHOD FOR CHARACTERIZING the universal driver Still utilizes the graphics device interface PRINTER DEVICES FOR USE THEREWITH (GDI) 14 as a means of coordinating the output from the various application programs. The GDI 14 function invokes the device driver functions of a minidriver 17, 17, ... 17, FIELD OF THE INVENTION which correspond to and contain the characterization of individual printer devices 10, 10, ... 10. This invention relates to output device characterization The difference in this system from that illustrated in FIG. methods and device drivers, and more particularly to a 15 is that the operating system includes the unidriver 15 method for characterizing and customizing output printer which includes a Standard Set of device driver functions devices and a driver architecture for use therewith. required to drive a printing device. In this way, the indi vidual printer manufactures need not provide this coding. In BACKGROUND OF THE INVENTION order to actually drive any particular printer device, the The phenomenal growth of the computer industry in both 15 unidriver 15 must receive individual printer characterization the commercial and consumer market Segments has spawned information from a selected minidriver 17. The universal an increasing number of companies who provide both Soft driver 15 then stores this device characterization data, pref ware and peripheral hardware products to the market. It erably within a device context, to be used by the device becomes the job of the operating System designer to coor driver functions of the universal driver 15. Other device dinate and ensure compatibility of data flow within, driver functions of the minidriver 17 forward their invoca between, and without of the computers on which this soft tion to the universal driver 15 by invoking an analogous ware and peripheral hardware is installed. To ensure that the function of the universal driver 15. In this way, the printer literally thousands of application programs are able to output hardware manufacturer needs only Supply a relatively Small their data to peripheral printing devices, the operating Sys minidriver which contains characterization data for their tem designers have developed a graphics device interface 25 particular device and which will be used by the unidriver 15 (GDI). The GDI affects the output data from the application to actually drive the printer. This unidriver/minidriver sys programs by invoking functions which allow access to tem is described in U.S. Pat. No. 5,604.843 to Shaw et al.