2.5.3.7.1 Submitting a Print Job Using the Protocols Defined in [MS-RPRN] (or [MS-PAR])

Goal: To print a document.

Context of Use: The user using an application capable of printing a document wants to print. A connection to a shared print queue has been previously established. The user initiates the Print command from the application.

Direct Actor: The direct actor is the print client.

Primary Actor: The primary actor is the user.

Supporting Actors: The supporting actor is the print server.

Stakeholders and Interests:

  • Print client: The print client sends the print job data to the print queue on the print server.

  • Print server: The print server buffers the print job data that is sent to the print queue to which the print client is connected, optionally processes the print job data further, and sends it to the printer that is associated with the print queue.

  • User: The user wants a printed copy of content on the computer and chooses the Print function from the print client user interface.

Preconditions: The print spooler services are operational on the print client and on the print server. Both are members of the domain and are connected with a network. The network is operational. The Active Directory system is available and operational.

Minimal Guarantee: The print job was submitted to the print server, but no job status feedback could be initiated; therefore, the print job might print, but the print client cannot show feedback.

Success Guarantee: The job is submitted, and job progress status was received and displayed to the user.

Trigger: A user initiates this use case by selecting the command from a printing capable application.

Main Success Scenario:

  1. The print client opens a printer handle using the Print System Remote Protocol [MS-RPRN].

  2. The print client starts a new print job to the print server by using the Print System Remote Protocol.

  3. The print client indicates the start of a new logical page to the print server, repeatedly sends data for the page, and signals the end of a logical page to the print server by using the Print System Remote Protocol. The print client repeats this step for all pages in the document.

  4. After sending all the pages of the print job to the print server, the print client ends the print job by using the Print System Remote Protocol.

  5. The print client closes the printer handle by using the Print System Remote Protocol.

Extension (a) – The print client obtains notifications about the print job status:

Following the previous step 1 and before step 2: The print client registers for change notifications by using the Print System Remote Protocol.

In parallel with the remaining steps, the print server sends change notifications during the processing of the print job. The print client provides feedback to the user.

Extension (b) – The print client obtains notifications for IHV-defined components on the print server and displays the user interface to the user:

Prior to the previous step 1, the print client uses the Print System Remote Protocol to register for change notifications from the print server.

In parallel with the other steps of the use case, when the print client receives change notifications that signal the arrival of a new print job, the print client attempts to listen to the print queue for connection requests from the print server by using the Print System Asynchronous Notification Protocol [MS-PAN]. An IHV-defined printer driver or other IHV-defined component that is running on the print server can act as a notification source by using the Print System Asynchronous Notification Protocol and send unidirectional or bidirectional notification messages to the print client. One important notification message type for IHV-defined components is used to request that the print client displays a user interface to the user.

After step 4, if a connection has been established between the print client and the IHV-defined components using the Print System Asynchronous Notification Protocol, then the print client continues to listen for print server change notifications signaling the end of the print job for the monitored print queue. The print client closes the asynchronous notification connection when all the jobs have been processed.

Variation (a) - Performing the use case by using the protocol as described in [MS-PAR]: All details are identical to the use case described in this section except that the Print System Asynchronous Remote Protocol [MS-PAR] is used instead of the Print System Remote Protocol.