Printing with MetaFrame Presentation Server 3 0 Citrix Global Escalation team Citrix Systems Inc Agenda • Basic Printing • Printer Properties • MetaFrame Printing • Print Drive by qde79354


Job Application Fl document sample

More Info
									Printing with MetaFrame
Presentation Server 3.0

Citrix Global Escalation team
Citrix Systems, Inc.

• Basic Printing

• Printer Properties

• MetaFrame Printing

• Print Driver Management

• Changes in MPS4

• Useful Utilities
Basic Printing: Flowchart


                    GDI        Print Driver UI



        Win32spl.dll Network
           Print Provider
Demo1: Local vs Remote Printers

 •Spooling and De-Spooling
    •Printing to a Local Print Queue
    •Printing to a Remote print Queue
Basic Printing: Flowchart

       Win32spl.dll Network          Localspl.dll
          Print Provider

                          Spool      Print Job Creation API
                                      Job Scheduling API

                                     Job Scheduler Thread

                                  Language Monitor

                                  Local Port Monitor

                 Kernel-Mode Port Driver Stack

           Print Server           Local Printer Port
                                     (LPT / TCP)
Printer Properties: Client Side

  • Win32
  • WinCE
  • Unix
  • Mac
  • Java
Printer Properties

                     • Document Settings

• Device Settings
Printer Properties: Win32

 • Printer User Interface (on local client)
    – Locally Attached (Locally Spooled)
        • HP LaserJet 4000 Series PCL6
        • Toshiba e-Studio3511
        • Microsoft Office Document Image Writer
    – Locally Defined (Remotely Spooled)
        • Agfa-AccuSet v52.3 on Print Server NT40TSE-ENT
Printer Properties: Win32

 • Auto-created (Requires the client network)
    – Locally Defined
        • Network print queue.. Info stored in the user’s profile
Printer Properties: Win32

 • Auto-created (Requires the client network)
    – Locally Attached
        • LPT / USB port
        • TCP Port
        • Info stored in HKLM
Printer Properties: Win32

 • Default Printer
Printer Properties: Windows CE

•Limited user interface
•Locally attached printer information is
retained in the client’s registry
•Printer information specified via the CMC and
retained in the DS
•Windows based printing
•LPT port redirection
Printer Properties: Windows CE
Printer Properties: Unix

• Solaris Sparc & Linux
     • Universal Print Driver
         • Uses HP Post Script driver
         • Finds client printers in \etc\printcap
           lp stat response, PRINTER variable
     • Wfclient or Module.ini entries

• HP-UX, AIX, SGI, Solaris x86
     • Wfclient.ini or Module.ini entries
         • ClientPrinterList=Printer1:Printer2
         • Default Printer=Printer2
         • DefaultPrinterDriver=HP LaserJet 4
     • Only one autocreated printer
     • Other client network printers can be mapped in the session
Printer Properties: Mac & Java

• Mac OSX
   – UPD 1&2 PCL4 / PCL5c

• Java Client
   – Universal Printing support (UPD1)
      • J2SE1.4 to support the Java Print Service API
   – Default printer must be specified
   – Mac OSX does not support the Java Print Service API
MetaFrame Controls:Listener vs. CMC
       Which setting wins???

 • The listener can disable printing
 • The Policy can override on specifics such as
   autocreate “All Printers” or only the “Client’s Default”.
    MetaFrame Controls: Routing

•   Remote Office: CA

•   Headquarters: FL

                        • Traveling User:?
MetaFrame Controls:Routing

• IMA Policies applied per filter
 MetaFrame Controls:Routing

• Support up to 32 Virtual Channels
   – 512 K History buffer for data reduction
• CTXCPM Windows Based Printing
   – Managed by CDM.SYS
   – Bandwidth Adjustable

                       ICA Session
Demo 2:Passthrough Printing

       ICA Session        ICA Session



                              Document ID:CTX101803
MetaFrame Controls:LAN Routing

                              • SMB Printing Path
                              • No Compression / Reduction
 3       2: SMB                  – User Settings NOT retained

• Client Network Printing                        Session
• ICA Protocol
     – Compresion/Reduction
     – Bandwidth Control               SMB
  MetaFrame Controls:WAN Routing

• Headquarters: FL
                             Client Network Printing

                              • Remote Office: CA

     Direct Printing


Which is better???                    TCP
Follow the Print Job: Server Side


            GDI      Print Driver



1. The application formats the print job using
   the driver’s specifications
2. Winspool.drv enumerates the printers
3. Spoolss.dll routes the print job
Follow the Print Job : Server Side

                                   •LPT port redirection print jobs
       Spoolss.dll ( Router )

Win32spl.dll Network Print
                                Localspl.dll           Cdmprov.dll

                        •Windows Based printing via the spooler
                        •Client Network
•Network printing
•Autoconnected printers
•Imported Print Queues
Follow the Print Job : Server Side

     Win32spl.dll Network Print
                                       Localspl.dll                      Cdmprov.dll

                                           Print Job Creation API
                            File              Job Scheduling API

                                           Job Scheduler Thread

                                   Language Monitor

                      Local Port Monitor          Cpmmon.dll (Citrix Port Monitor)

          Kernel-Mode Port Driver Stack                             Cdm.sys

                         Local Printer Port                                     •To the ICA
      Print Server                                     Network Drivers             client
                           (LPT / TCP)
   Follow the Print Job: Client Side
                                        Spoolss.dll ( Router )

                                            Localspl.dll         Win32spl.dll Network Print

•The ICA client                                             Print Job Creation API
 engine hands                              File              Job Scheduling API
off to the local
                                                            Job Scheduler Thread
 client spooler          Wfica32.exe

 •The print job            VDSPL.lib                Language Monitor

   works up           PCL4Rast.dll
through the ica                                            Local Port Monitor

     client              VDCPM30N.dll
                                                            Kernel-Mode Port Driver Stack

                                                Local Printer Port
   •From the server   Network Driver
                                                  (LPT / TCP)
                                                                             Print Server
Demo3: Common Diagnostics Facility

   • Access Suite Console Discovery
   • Tracing setup
   • Parsing the trace output
Printer Autocreation: CDF Tracing

                       Step 1:
                       Run Discovery

                          Step 2:
                          Start Trace Session
Printer Autocreation: CDF Tracing

        Step 3:Select a predefined tracing file
          OR Create your own.
Printer Autocreation: CDF Tracing

        Step 4: Parse the binary output using .tmf files.
MetaFrame Printing: Autocreation

                          • Client informs the server what virtual
                            channels it supports.
 Session Initialization
                          • Wfshell: IMA flags are checked
                             – Per server or per farm restrictions
                             – Check for Feature Release license
                          • Ctxlogon:
                             – Asynchronous or Synchronous
                          • Wfshell:
  Organized Printer          – List the client side printers
                             – Get the user’s SID
                             – Check user’s profile for printer info
MetaFrame Printing: Autocreation

• User’s profile server-side (First Login)
   – DevModePerUser
       • ICA client name: FTLRJAMESW10B

                           •Note: HKCU\Printers\Citrix does NOT
                               contain client network printer
MetaFrame Printing: Autocreation

 • User’s profile server-side (Next Login)
    – DevModePerUser copied to ..\Citrix\DevModes2
    – ..\Citrix/client/clientname#/Printername\PrinterDriverData

                                   •Note: HKCU\Printers\Citrix now
                                  contains client network printer info.
Printer Autocreation: Server Side

             • Wfshell:
  Already       – Checks to see if the printer is allowed
  Exist?        – Determines if printer info from the profile should
                  be used
 NO             – Checks for the printer in
 Approved?      – Calls are made to build the printer
  Mapped?    • Cdmprov.dll: Calls into Spoolsv.exe
                – Locates the server driver
                    • Wtsuprn.inf Parsed first, takes precedence
                          • Parsed 8 ways
                    • Wtsprnt.inf Replaced by IMA during replication
                          • PrinterName
                          • DriverName
Printer Autocreation: Server Side

• Cdmprov.dll: Calls into Spoolsv.exe
   – Locates the server driver
       • Registry HKLM\SYS\CCS\CNTRL\Print\Environments\Windows NT
         x86\Drivers\Version-3\printer model name
   – Silent Install
       • PrintUIEntry /ia /m “printer model name” /q
       • Queries \winnt\inf\ ntprint.inf to build the printer
       • MF XP FR3 can disable this feature via the CMC

      Driver Match       NO                               YES   Build Print
                                      Silent Install?
      in Registry?                                               Queue

Session Initialization

                           Autocreation: Server Side
 Printers Allowed?

                                                                      • FR2
                                                                         – A driver can only be
    Printer Data
                                                                           mapped OR restricted.
                                                                      • FR3 & MPS 3.0
  Printer Already
                                               End Process
                                                                         – A print driver can be
      Exist?                                                               restricted AND Mapped
      NO                                                                 – Silent install can be
                                                   YES                     disabled.
    Approved?        NO                                          NO


  Driver Match in    NO                      YES   Build Print
                           Silent Install?
     Registry?                                      Queue

Demo 4: Printer Auto-creation

    • IMA Flags
    • Printer Enumeration
    • Mapping Files
What’s the point?

• IMA Flags are checked to designate functionality
• CDF tracing reveals the identity of the printers on
  the client
• Mappings files have their place but use them
Imported Print Servers

Print server                    MPS Server

                 Printer Info                IMA Svc

       \\Printserver\Lexmark          Data Store
                                        -LHC is updated
Imported Print Servers

 • CTXTrace 5.7
    – Profiling captures the IMA communication
       • Data store
       • Dynamic store
       • Local host cache
   Imported Print Servers: MPS 3.0

• CDF tracing while importing print server
Imported Print Servers

                            •   Print server name

                            •   Printer devMode

                            •   Printer share name

                            •   User list

Imported Print Servers

      “Update” refreshes the printer data from the print
       server. This allows the print server’s data to be
    updated, such as a new print driver without problem.
Imported Print Servers

• User’s settings ARE retained
• Client device independent
• Uses SMB protocol
   – No ICA compression or bandwidth limit
Driver Management

• Three types of drivers (Native, Vendor Provided, Universal)
   – Standard Drivers
       • Model Specific
           • Windows Native (ntprint.inf /
           • Vendor Provided
   – Universal
       • UPD1 PCL4
       • UPD2 PCL5c,PS
       • Coming soon UPD Next Generation
• Driver installation
   – Replicated
       • MetaFrame
       • Print Migrator
   – Command line
       • Print UI Entry
   – Point and Print
Demo 5: Driver management

• Driver Compatibility Setting
• Point and Print
  – Group Policy
  – File Permissions
Universal Print Driver(UPD)

“People can have the Model T in any colour--so long as it's
                                             Henry Ford

 •Similar to the first version of the Universal
 Print Driver….Any color as long as its black.
Universal Printdriver (UPD)

 • Introduced with FR2
    – 300dpi / Monochrome
    – Based on the HP LaserJet II driver
    – Uses PCL4 format
    – Requires Win32 ICA client 6.20 or higher
 • Updated with FR3
    – 600dpi
    –   Color
    –   Based on the HP LaserJet 4500
    –   Uses PCL5c format
    –   Requires ICA client 7.00 or higher
 • Added support for Linux and Solaris
    – Uses entries from the \etc\printcap or lpstat response
    – Uses the Post Script version of the Color LaserJet 5 PS driver
               Universal Printdriver(UPD)

                     •Print driver formats the data from
                                the application.
UPD Print Driver        •Formatted document sent to the
 •MetaFrame Server     client in PCL4/PCL5c or PS format.
 •ICA Client
Client side “Rasterizer”     •The graphic is presented to
                                  the client spooler.
     Client side print spooler

                        •The picture is formatted and
                      spooled to the print device per the
                              local print driver.
Universal Printdriver(UPD) 8.0 vs 7.1

                                     ICA Client 7.10
                               96.3MB Client-side Spool File

                                      ICA Client 8.0
                               24.6 MB Client-side Spool File

•Bmp file generated at the client from the PCL code by PCL4rast.dll
Universal Printdriver(UPD)

• Registry entries
  – HKLM\SW\Citrix\UniversalPrintDrivers\
     • Driver List: PCL4;PCL5c;PS
     • \PCL4
         • HP LaserJet Series II
     • \PCL5c
         • HP Color Laser Jet 4500
     • \PS (For Unix / Linux Clients)
         • HP Color LaserJet PS
  – HKLM\Sys\CCS\Control\Print\Environments\Drivers
     • \Version-3
         • HP LaserJet Series II
         • HP Color LaserJet 4500
         • HP Color LaserJet PS
New With MPS4

• Citrix Print Service
   – User mode
   – Reduced from 6 binaries to 2
   – Extended policies
   – Client side printer state
   – Smarter compression
• Universal Print driver
   – Basic EMF printing
   – Client side preview
   – Client side printer properties
New Print Manager Service
                       Print Spooler

   Remote printer

      Core       Server           Client Printer    Printer Mgt.
      Svc.                       Management &        Services
             Printer                 Policies
                                   Client Printer
          VDSPL Protocol                              Events

                 Virtual         • Exploded view of cpsvc.exe
 Print Data Reduction – MPS 4.0

• Print data streams are pre-compressed by CpSvc.exe

                              {ICA Session}
            CTXTW                  • User-mode pageable memory
                                   • Larger history buffer
                                     (up to 8MB)
                                   • History buffer reused by
                                     subsequent print jobs
   Advanced Universal Printing

                                                      • EMF – Enhanced MetaFile
                GDI                 UPD U/I              – Native graphics metafile format
                                                           for Windows
                                                         – A recording of GDI calls used to
        Winspool.drv                                       draw something

                                                      • Windows spool file format
                                                         – One EMF per page
                                                         – Embedded job info, document
 Network               Local Spooler (LocalSpl.dll)
                                                           settings, and fonts
 Win32.spl                                               – Sent directly to remote printer
                                                           server when for network
Network Print
   Server                      CpProc.dll CpMon.dll
Universal printing architecture

     • Windows spool file is routed intact to the client
        – GDI creating spool file
        – CPPROC.DLL intercepts spool file
        – CPMON.DLL routes spool
          data to CPSVC.EXE
        – CPSVC.EXE compresses and
          streams to client
        – WFICA32.EXE uncompresses
          and writes to temp file
        – CPVIEWER.EXE prints/previews job

            •Print Migrator3
            •SMC Console
            •Project Compatibility(FR3)

• Rundll32 printui,PrintUIEntry /?
Demo 6: PrintUI Entry

• Installing print drivers from a command line

        Before                         After
 Utilities: Print Migrator3

• Print Migrator3 from Microsoft
   – Allows all the print driver info to be
     saved to a cab file
   – Allows a print server to be replicated
     in a test environment
   – Allows Citrix Support to replicate the
     customer’s printing environment
     down to the exact files
Utilities: Print Migrator
Utilities: SMC Console

• SMC console from Citrix CDN
   – Allows a live session’s bandwidth
     to be temporarily limited to test
     the impact of BW restrictions for
   – Provides real time insight on the
     Virtual channel usage.
   – Citrix Server SDK ver 3.0
Demo: SMC Console
Utilities:Project Compatibility

• Project Compatibility
• Not developed by Citrix
• Written using the Citrix SDKs
• Aggregates event viewer info from
  the servers
• Dynamically sets printer mappings
• Reads and Writes to the data store
Utilities:Project Compatibility

                                  • FR3 supported by
                                    Version 3.0
Before we wrap it up……any questions?
Wrap it up……

• Local and remote spooling.
• Defined document and device settings.
• User profiles at the client and server
• Print job routing. Which path is better?
• Printer autocreation step by step, process by process.
• CDF tracing. The key to really see what’s going on.
• Driver management. How the drivers get installed.
• Universal Print driver
• Improvements in MPS4
• Utilities to make life easier.
Thank You

To top