Enhanced Metafile Spooling Architecture in Windows NT 4.0

ID: Q155676


The information in this article applies to:


SUMMARY

In Windows NT 4.0, Enhanced Metafile (EMF) spooling has replaced Windows NT 3.x Journaling. This makes the Windows NT print model similar to the print model used by Windows 95. EMF spool files are used to greatly reduce the amount of time that elapses between a request to print (initiated by an application) and the return of control to the application by the operating system.


MORE INFORMATION

Windows NT 4.0 implements EMF spooling by recording the graphic device interface (GDI) function calls that produce the application's graphic object on the specified printer. This record is an EMF-format file, called a print spool file. Windows NT builds the spool file quickly, and then returns control to the application. In the background, the spool file is spooled to the server, and the server converts the EMF data into a format suitable for the output device.

The bulk of the EMF print model is an array of variable-sized records that encode the GDI function calls necessary to reproduce the picture when the EMF spool file is played back. EMF spool files encode graphics information in such a way as to maintain device independence.

NOTE: By default, Windows NT 4.0 enables EMF spooling for PCL and HPGL/2. EMF can also be configured for PostScript printing; however, the benefits are minimal for client performance.

Other Spool File Formats

RAW: The raw data type indicates that the print job has already been fully rendered by the GDI and device driver interface (DDI), and it does not need any more processing. Raw data streams can either be printed directly, or they can be put into spool files. Most Windows NT printing clients send raw jobs. Raw spool files are device-dependent. That is, the spooled data is destined and formatted for a particular device and does not need to be printable on any other device. An example of a raw spool file is an encapsulated PostScript file, which is formatted to be understood by the PostScript printer for which it is destined.

For more information, please see the following article in the Microsoft Knowledge Base:
ARTICLE-ID: Q104902
TITLE : Print Processors and Data Types
TEXT: When the data type of a print job is text, the print processor sends the incoming job to the graphics engine. The graphics engine then returns a print job, which prints the original text using the print device's default paper source, default font, orientation, margins, and duplexing. This achieves the same result as saving the incoming job to a file, opening that file with Notepad, and then printing the job.

JOURNAL: The Windows NT JNL 1.000 data type (usually called "Journal") indicates that the job is being sent from a Windows-based application (either 16- bit or 32-bit) running on the Windows NT print server. It also indicates that the target printer was established in Print Manager using the Create Printer option. In this case, the application uses GDI commands to describe the output. The Windows NT GDI32 component and the printer driver partially render the print job using DDI commands, and then return control to the application. As a result, the application finishes its print operation faster than normal. In the background, GDI32 then submits the DDI journal file to the spooler, with the data type set to "NT JNL 1.000." The spooler then calls GDI32 to finish rendering the job into printer language commands.

The table below illustrates when EMF is used by Windows NT 4.0 Server.

   Print Client              EMF         RAW
   -----------------------------------------
   Windows NT 4.0(1)          1           0
   Windows NT 4.0(2)          0           1
   Windows NT 3.x(1)          0           1
   Windows NT 3.x(2)          0           1
   Windows 95(3)              0           1
   Windows for Workgroups     0           1
   Non Microsoft Client       0           1

   Notes:

   (1) Indicates the server in the "Connected to" box. In Windows NT 4.0,
       this occurs when you select Network Printer in the Add Printer
       Wizard.
   (2) Indicates that the driver is installed locally and is redirected to
       the server share point.
   (3) Windows 95 supports EMF, but always plays the EMF file locally and
       spools to the server as RAW. 

As indicated in the chart above, the only client that takes advantage of the EMF spooling is a Windows NT 4.0 client using one of the following drivers: For each of those drivers, EMF spooling is enabled by default. If necessary, users can turn off EMF spooling functionality on a per printer basis. To do this, perform the following steps:
  1. In the Printers folder, click the printer whose properties you want to change.


  2. On the File menu, click Properties.


  3. Click PrintProcessor.


  4. Click the Always Spool RAW Datatype option.


Additional query words: prodnt sp1


Keywords          : kbprint ntprint NTSrvWkst 
Version           : 4.0
Platform          : winnt 
Issue type        : 

Last Reviewed: January 19, 1999