Difference between revisions of "ReactOS Print Spooler Service (Spoolsv)"

From ReactOS Wiki
Jump to: navigation, search
 
(9 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Application Information ==
+
{{outdated}}
{| class="wikitable"
+
see https://www.reactos.org/node/952
!'''Title/Summary:'''
 
|ReactOS Print Spooler Service (Spoolsv)
 
|-
 
!'''Student:'''
 
|[http://windridge.org.uk/ Peter Windridge] (twowheels on #ReactOS)
 
|-
 
!'''Student Major:'''
 
|Mathematics
 
|-
 
!'''Student Degree:'''
 
|Undergrad
 
|-
 
!'''Student Graduation:'''
 
|[[2006]]
 
|-
 
!'''Assigned Mentor:'''
 
|[[Alex Ionescu]]
 
|}
 
  
== Detailed Description ==
+
On Microsoft Windows systems, printer drivers make use of GDI (Unidrv or PScript-based) or XPS (XPSDrv). Programs then use the same standard APIs to draw text and pictures both on screen and on paper. Printers which use GDI natively are commonly referred to as Winprinters and are considered incompatible with other operating systems, although there is software (such as PrintFil) which will make these printers work in a DOS prompt within Windows.
 +
Win32 APIs also allow applications to send data directly to the spooler, bypassing the printer driver; however, few applications actually use this option.
  
=== Motivation ===
+
The spooler service is responsible for managing spooled printing. Main executable file for the whole PC printing subsystem. The spoolsv.exe file is initialized when the computer starts, and it runs in the background until the computer is turned off.
ReactOS has great potential, but will be crippled without good printer support. With the addition of print providers, monitors and a few changes in win32k I envisage that ReactOS could be used as a Windows print server in as little as a year, as well as for desktop printing. This could enable it to be used in small businesses (and by myself!). For this reason, I would like to work on the Print spooler service.
 
  
=== Background ===
+
The spoolsv.exe file is described as the Spooler SubSystem App or Windows Print Spooler Service and is the main component of the printing interfaces
I originally began working on print support in ReactOS out of personal need. For research and academic purposes (I am a masters student at the [http://www.warwick.ac.uk/ University of Warwick], which has a highly rated Computer Science department), I use Mandrake but I would prefer ReactOS. Most of the software I use already runs on ReactOS, however I do miss print support. So, over the past 8 months I have been studying the Windows print subsystem by
 
- reading MSDN, the DDK examples and Feng Yuan’s book
 
- writing some tests and stubbing out the required components and loading them in Windows (XP)
 
- studying win32k (in particular, how we can cleanly implement [enhanced] metafiles and printer DC’s in ReactOS).
 
Finally I have spoken to people from [[WINE]] (Detlef ”winspool”) and Samba-tng (Elrond) about how we can collaborate and share code. The [http://www.samba.org/ Samba project] has already done lots of work reversing SMB. In short, I have a good idea about what is required to implement the spooler service.
 
  
Although I am studying maths and probability theory, I have broad programming experience from vacation employment, freelancing, university courses and teaching programming courses at university. I have contributed to the open source [http://nsis.sourceforge.net/ Nullsoft Install System] and written freeware applications.
+
If this service is disabled, printing to a local or network printer will not work or any applications that use the printing sub-system (like PDF converters).
I also have good knowledge of hardware and networking. This would be helpful for setting up test networks etc. My brief cv is at [http://windridge.org.uk/peter_windridge_web_cv.pdf http://windridge.org.uk/peter_windridge_web_cv.pdf]).
 
  
I have been reading and compiling the ReactOS source for over a year and while I have not submitted any patches, I have submitted bug reports and written bits of code within my own tree. I run ReactOS on real hardware.
+
Log On As
 +
Account: Local System Account (Allow service to interact with desktop)
  
I have applied for no other SOC projects because this is the project I would enjoy the most. I believe it would also be a great benefit to ReactOS. In addition, ReactOS has some very skilled mentors whom I can learn from.
+
== Print Processor ==
 +
The print spooler monitors the current print jobs and the target printer to determine an appropriate time to print a job. Once the spooler determines that a job should be printed, it calls the print processor. The print processor is a plug-in that processes print job data.
  
Overall, I have the skills and drive to complete the project in the short time frame and make a real contribution.
+
[http://msdn.microsoft.com/en-us/library/windows/desktop/dd162870(v=vs.85).aspx Source]
  
Thanks,
+
== Dependencies ==
Peter (twowheels on #ReactOS)
+
What service Print Spooler needs to function properly:
==Project Status==
+
*Remote Procedure Call (RPC) (H, M, P, T)
Although Google considers the work on this project to be unsatisfactory and has unlisted it. Peter Windridge states that he was unable to meet the target goals due to unforeseen problems he is still working on the project in his spare time.
+
 
 +
What other service require Print Spooler to function properly:
 +
*Fax (H, M, P, T)
 +
*TCP/IP Printer Server (H, M, P, T)
 +
 
 +
If spoolsv.exe is not running, the Add Printer function will not work properly and no printers will be available.
  
 
== Links ==
 
== Links ==
*[http://windridge.org.uk/ Student's Homepage]
+
* [[Printing]]
*[http://windridge.org.uk/peter_windridge_web_cv.pdf Student's CV]
+
 
*[[Printing]]
+
*http://blogs.sepago.de/helge/2009/04/08/printer-driver-isolation-in-windows-7-and-server-2008-r2/
 +
*http://blogs.technet.com/b/askperf/archive/2007/06/19/basic-printing-architecture.aspx
 +
*http://msdn.microsoft.com/en-us/library/windows/desktop/dd162871(v=vs.85).aspx
 +
*Printing http://msdn.microsoft.com/en-us/library/dd162860(v=vs.85).aspx
 +
*http://msdn.microsoft.com/en-us/library/ff561109.aspx
 +
*http://www.undocprint.org/start
 +
**http://www.undocprint.org/winspool
  
[[Category:Services]]
+
[[Category:Community]]
 +
[[Category:Ideas]]
 +
[[Category:ReactOS Components]]
 +
[[Category:System Services]]

Latest revision as of 20:47, 14 September 2015

This page is probably outdated

The information on this page might not be valid for the current state of ReactOS.
A Wiki Administrator should look at this page and decide or discuss what to do with it.


see https://www.reactos.org/node/952

On Microsoft Windows systems, printer drivers make use of GDI (Unidrv or PScript-based) or XPS (XPSDrv). Programs then use the same standard APIs to draw text and pictures both on screen and on paper. Printers which use GDI natively are commonly referred to as Winprinters and are considered incompatible with other operating systems, although there is software (such as PrintFil) which will make these printers work in a DOS prompt within Windows. Win32 APIs also allow applications to send data directly to the spooler, bypassing the printer driver; however, few applications actually use this option.

The spooler service is responsible for managing spooled printing. Main executable file for the whole PC printing subsystem. The spoolsv.exe file is initialized when the computer starts, and it runs in the background until the computer is turned off.

The spoolsv.exe file is described as the Spooler SubSystem App or Windows Print Spooler Service and is the main component of the printing interfaces

If this service is disabled, printing to a local or network printer will not work or any applications that use the printing sub-system (like PDF converters).

Log On As Account: Local System Account (Allow service to interact with desktop)

Print Processor

The print spooler monitors the current print jobs and the target printer to determine an appropriate time to print a job. Once the spooler determines that a job should be printed, it calls the print processor. The print processor is a plug-in that processes print job data.

Source

Dependencies

What service Print Spooler needs to function properly:

  • Remote Procedure Call (RPC) (H, M, P, T)

What other service require Print Spooler to function properly:

  • Fax (H, M, P, T)
  • TCP/IP Printer Server (H, M, P, T)
If spoolsv.exe is not running, the Add Printer function will not work properly and no printers will be available.

Links