Resources for IT Professionals. Sign in. United States English. Ask a question. Quick access. Search related threads. Remove From My Forums. Asked by:. Archived Forums. Windows 10 Hardware. Sign in to vote. Friday, December 21, PM. Client Processes A user sends a print job from an application. Spooler Processes The client side of the spooler Winspool. The router Spoolsv. The LPP polls print processors to find one that can handle the data type of the job.
The LPP sends the job to the print processor, which modifies the job as required to make it print properly. The print processor sends the job to the page separator. A separator page is added, as required. The job is sent to the appropriate port print monitor. If print is bidirectional, the job is first sent to the language monitor such as the Printer Job Language PJL monitor, and then sent on to the port monitor. If the job is unidirectional, the job is sent directly to the port monitor.
Printer Processes The printer receives the print job from the print spooler. The printer translates the print language into a bitmap, which it then prints. Application : The print application creates a print job by calling GDI functions.
The kernel-mode component, the graphics engine or graphics rendering engine , exports services and functions that graphics device drivers can use. GDI is the primary client, but applications also call some of its Win32 functions. It is implemented as a Windows or later service that is started when the operating system is started. Clients of spoolsv. The module implements some API functions, but most function calls are passed to a print provider by means of the router spoolss.
Router : The router, spoolss. Print Provider : The print provider that supports the specified print device. Print Monitor : Windows XP supports two types of print monitors: language monitors, and port monitors.
Note : All spooler components execute in user mode. Print Providers This section provides the following topics: Introduction to Print Providers Print providers are responsible for directing print jobs to local or remote print devices. Print Provider Flow Paths When viewing the diagram, you should consider the following points: If the printer is managed by the client system, the print job is handled by the local print provider localspl. Printers managed by localspl. If the printer is located on a NT-based-operating system server, the network provider win32spl.
Because the printer is local to the server, the server's local print provider will handle the print job. If the printer is located on some other type of server, it can be accessed by either the local print provider or by a network print provider that supports that server type, using data formats and network protocols supported by the server. For the local print provider to access a remote printer, it must contain a port monitor that can use network protocols recognized by the remote printer or server.
Print Provider Capabilities By supporting predefined sets of API functions, Windows print providers can supply the following capabilities: Print Queue Management : Adding, deleting, opening, closing, enumerating, and setting parameters for print queues. Also, providing notification of changes to a print queue's state. Printer Driver Management : Adding, deleting, enumerating, and specifying a directory for printer drivers.
Print Job Creation : Starting and ending a document, starting and ending a document page, writing the job's data stream to a port, reading printer status information. Print Job Scheduling : Scheduling, enumerating, and setting parameters for a print job. Forms Management : Adding, deleting, enumerating, and setting parameters for print forms.
Print Processor Management : Adding, deleting, enumerating, specifying a directory for and the data types supported by print processors. Print Monitor Management : Adding, deleting, and enumerating print monitors.
Port Management : Adding, deleting, configuring, enumerating, and setting parameters for printer ports. Registry Management : Creating, deleting, and enumerating registry keys and values associated with a print provider. Other Capabilities : Displaying a message box, shutting down the print provider, reading a memory mapped spool file, providing a communication path between port monitor UI DLLs and port monitor server DLLs.
Printer Driver Printer drivers contain information that is specific to the printer that is used. Graphics drivers are responsible for print rendering converting GDI commands from the graphics engine into printer commands that a printer can understand. Each graphics driver handles different printer languages. DLL : deals with the PostScript printer language. DLL : deals with printer languages based on raster bitmap images, including PCL and most dot matrix printer languages.
This dynamic-link library DLL includes the user interface you see when you configure a printer in Print Manager. Characterization files: Characterization data files provide model-specific information about print devices. Printer Driver Components All Windows printer drivers consist of the following components: A printer graphics DLL that assists GDI in rendering a print job, and sends the rendered data stream to the print spooler.
A printer interface DLL that provides both a user interface to the driver's configuration parameters, and an interface the spooler can call to notify the driver of print-related system events. Introduction to Print Processors Print processors are user-mode DLLs that are responsible for converting a print job's spooled data into a format that can be sent to a print monitor.
Microsoft Windows and later includes the print processors listed in the following table. Processing a Print Job When the spooler is ready to send a print job to a print processor, it calls the print processor's OpenPrintProcessor function. Installing a Print Processor To install a print processor, an installation application must call the spooler's AddPrintProcessor function.
Associating a Print Processor with a PnP-installed Print Queue If the PnP manager detects and installs a print queue on a system running either Windows or Windows XP, and if the INF file used to install the print queue contains a PrintProcessor entry other than the default Windows print processor, WinPrint , the print processor will not be associated with the print queue. Print Monitor Print monitors are responsible for directing a print data stream from the print spooler to an appropriate port driver.
Language Monitors Language monitors are user-mode DLLs that serve two purposes: They provide a full duplex communications path between the print spooler and bidirectional printers that are capable of providing software-accessible status information. They add printer control information, such as commands defined by a printer job language, to the data stream.
This DLL must reside in the client system's System32 subdirectory. It must not display a user interface. Opening and Closing a Port After a port has been added, as described in Adding a Port , the spooler can open it by calling the appropriate language monitor's OpenPortEx function.
Printing a Print Job After a port has been opened, as described in Opening and Closing a Port , the spooler can send print jobs to the port. Installing a Print Monitor This section describes the methods that can be used to install print monitors. Copy Code. Bodapati Venkat Web Developer.
First Prev Next where is the reference that you took anandssunku Sep Member Oct Sivaprasad S Nair Mar Jacksweet Nov Marcelo Hst Oct Jason J. Zhang 2-Jun Huq Nov Mojo G Sep JonFrost May JonFrost Jun HueHa 4-Mar Alex Lang Dec HatemElbehairy Feb Go to top. Layout: fixed fluid. Web Developer. First Prev Next. In the section in your document Re: where is the reference that you took Member Oct Member How to send message from printer driver bitmap driver to printer spooler?
Hello, I am new to development of driver. I wish to know, how can I send the error message occured in printer driver msdn example of bitmap driver to the printer spooler. Regards Sanjay. How to add a shared printer as local printer Sivaprasad S Nair Mar Sivaprasad S Nair. I have a problem. I Wrote a virtual printer driver something llike a pdf creator which is having a print processor and language monitor.
I have a UI which is popedup on each print job to my printer. Then I tried to print. The print was succesful. But the problem is the UI is poped up in the server. I want it to be in the client itself By default on Windows and later versions, the GDI renders print jobs using the Enhanced Metafile EMF format, a standard print job format that is highly portable but needs to be further rendered by the spooler before being sent to the printer. When an EMF print job is sent to the spooler, control returns to the user and the spooler then completes rendering the job for printing.
Because the EMF job is quickly handed off to the spooler, the time during which the user's computer is busy is minimized. Spooler processes The print spooler is a collection of features that resides on both the client computer that sends the print job and a network print server that receives the job for printing.
The spooler takes the job as rendered by the GDI and, if necessary, renders it further to ensure that it prints correctly. It is implemented as a service when the OS is started. It then passes the function call to the correct provider. OK - so let's discuss print providers. The print provider is responsible for several functions, including directing print jobs to local or remote print devices and print queue management operations such as starting, stopping and enumerating print queues.
Print providers implement a common set of capabilities that are defined by a set of API functions. These functions are called by spoolss. The diagram below illustrates possible flow paths involving different print providers. All print jobs directed to remote servers and handled by this provider.
0コメント