How exactly does the windows spooler decide what data type it's going to send to the print processor? RRS feed

  • Question

  • For example if you want to be spooling in EMF, usually what works is ticking "Advanced printing features". However, I've noticed that on some printer drivers this does not work (which is not unexpected, it's not mandatory for v3 drivers to support it). Indeed, I've noticed on one driver that a device-dependent setting (i.e. in the extra end chunk of the DEVMODE structure) was what determined whether the spool file came out in EMF. So how does the print spooler determine which datatype to pass down?

    I've looked through the print driver DDI functions and structures and can't find anything pertaining to this. In DrvDeviceCapabilities there is a DC_EMF_COMPLIANT flag, however that is only for Windows 95. How does the spooler do it on later systems?

    Tuesday, January 17, 2017 1:11 AM

All replies

  • What bigger problem are you trying to solve?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 17, 2017 7:42 AM
  • Hi, thanks for responding.

    Reason why I in this domain is I am interested in forcing the print spooler to use EMF. Mostly though this question is because I am baffled and intrigued as to what mechanism the spooler uses to decide what to spool as on any system.

    Tuesday, January 17, 2017 7:54 AM
  • Why do you want to force emf?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 17, 2017 2:50 PM
  • I am interested in intercepting the data that applications send to a printer in such a format that it's can be interpreted easily. Getting the text records in particular is important.
    Wednesday, January 18, 2017 12:26 AM
  • Hey mate, do you require any additional information? I found this article:, but it doesn't provide any concrete information.

    If I was to write a print driver, is there anything in particular I have to implement for the spooler to always decides to spool to EMF?

    I've been looking for an answer to this for ages, only thing I can think of now is to disassemble spoolsv.exe.

    Monday, January 23, 2017 4:54 AM