5 Appendix A: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.

  • Windows NT 4.0 operating system Service Pack 2 (SP2)

  • Windows 2000 operating system

  • Windows XP operating system

  • Windows Server 2003 operating system

  • Windows Vista operating system

  • Windows Server 2008 operating system

  • Windows 7 operating system

  • Windows Server 2008 R2 operating system

  • Windows 8 operating system

  • Windows Server 2012 operating system

  • Windows 8.1 operating system

  • Windows Server 2012 R2 operating system

  • Windows 10 operating system

  • Windows Server 2016 operating system

  • Windows Server operating system

  • Windows Server 2019 operating system

  • Windows Server 2022 operating system

  • Windows 11 operating system

  • Windows Server 2025 operating system

Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section 1.3: When a Windows application needs to print, it performs the following operations:

  1. First, the application creates a printer device context specifying the target printer.

  2. The application then calls Windows graphics device interface (GDI) methods such as DrawLine to pass drawing instructions to the GDI graphics engine.

  3. The GDI graphics engine accumulates the drawing instructions into an EMFSPOOL file.

  4. The spool file is sent to the Windows print spooler. One of the spool file formats accepted by the Windows print spooler is the EMFSPOOL.

  5. The Windows print spooler interprets the EMFSPOOL, possibly also inserting page layout information and job control instructions into the data stream.

  6. The spooler then sends the data stream to the serial, parallel, or network port driver associated with the target printer's I/O port.

<2> Section 2.1.1:  The following table shows support for EMFSPOOL records by Windows version.

Record type

Windows NT 4.0 SP2

Windows 2000

Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, Windows Server 2012 R2, Windows 10, Windows Server 2016, Windows Server operating system, and Windows Server 2019

EMRI_METAFILE

X

X

Note This record type is parsed, but is not written to metafiles.

X

Note This record type is parsed, but is not written to metafiles.

EMRI_ENGINE_FONT

X

X

X

EMRI_DEVMODE

X

X

X

EMRI_TYPE1_FONT

X

X

X

EMRI_PRESTARTPAGE

X

X

X

EMRI_DESIGNVECTOR

X

X

Note This record type is parsed, but is not written to metafiles.

EMRI_SUBSET_FONT

X

X

EMRI_DELTA_FONT

X

X

EMRI_FORM_METAFILE

X

Note This record type is parsed, but is not written to metafiles.

X

Note This record type is parsed, but is not written to metafiles.

EMRI_BW_METAFILE

X

Note This record type is parsed, but is not written to metafiles.

X

Note This record type is parsed, but is not written to metafiles.

EMRI_BW_FORM_METAFILE

X

Note This record type is parsed, but is not written to metafiles.

X

Note This record type is parsed, but is not written to metafiles.

EMRI_METAFILE_DATA

X

X

EMRI_METAFILE_EXT

X

X

EMRI_BW_METAFILE_EXT

X

X

EMRI_ENGINE_FONT_EXT

X

X

EMRI_TYPE1_FONT_EXT

X

X

EMRI_DESIGNVECTOR_EXT

X

X

EMRI_SUBSET_FONT_EXT

X

X

EMRI_DELTA_FONT_EXT

X

X

EMRI_PS_JOB_DATA

X

X

EMRI_EMBED_FONT_EXT

X

<3> Section 2.2.3: This record is not supported on Windows NT 4.0 SP2.

<4> Section 2.2.3.1: This record is written to metafiles by the Windows NT 4.0 SP2 implementation.

<5> Section 2.2.3.1: This record is not written to metafiles by Windows implementations.

<6> Section 2.2.3.1: This record is not written to metafiles by Windows implementations.

<7> Section 2.2.3.1: This record is not written to metafiles by Windows implementations.

<8> Section 2.2.3.3.2: Windows NT 4.0 operating system: This is set to a nonzero value.

<9> Section 2.2.3.3.3: This record is written to metafiles by Windows 2000 implementations only.