summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2002-09-30 04:58:55 +0000
committerGerald Carter <jerry@samba.org>2002-09-30 04:58:55 +0000
commitd60afa48e3214a4fa4c0a937635c3acf2a4b4a65 (patch)
tree359ece5e66ff30263f1590765617f46ba2cbd272
parentace7738e123b28f69c290f9f1de50011d230e14b (diff)
downloadsamba-d60afa48e3214a4fa4c0a937635c3acf2a4b4a65.tar.gz
samba-d60afa48e3214a4fa4c0a937635c3acf2a4b4a65.tar.xz
samba-d60afa48e3214a4fa4c0a937635c3acf2a4b4a65.zip
This is an initial draft of printing internals. Not done (not really
even started), and not in SGML. Plain ASCII right now, but I'll do some more work on it tomorrow.
-rw-r--r--docs/docbook/devdoc/printing.sgml73
1 files changed, 73 insertions, 0 deletions
diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml
new file mode 100644
index 00000000000..3cce7ab99ca
--- /dev/null
+++ b/docs/docbook/devdoc/printing.sgml
@@ -0,0 +1,73 @@
+!=
+!= Samba Printing Internals
+!=
+!= Author : Gerald Carter <jerry@samba.org>
+!=
+!===================================================================
+
+The purpose of this document is to provide some insight into
+Samba's printing functionality and also to describe the semantics
+of certain features of Windows client printing.
+
+Print Queue TDB's
+------------------
+
+* matching lanman jobids, spoolss jobids, & lpd jobids
+* why ?
+* caching time
+
+
+ChangeID & Client Caching of Printer Information
+------------------------------------------------
+
+[To be filled in later]
+
+
+Windows NT/2K Printer Change Notify
+-----------------------------------
+
+When working with Windows NT+ clients, it is possible for a
+print server to use RPC to send asynchronous change notification
+events to clients for certain printer and print job attributes.
+This can be useful when the client needs to know that a new
+job has been added to the queue for a given printer or that the
+driver for a printer has been changed. Note that this is done
+entirely orthogonal to cache updates based on a new ChangeID for
+a printer object.
+
+The basic set of RPC's used to implement change notification are
+
+ * RemoteFindFirstPrinterChangeNotifyEx ( RFFPCN )
+ * RemoteFindNextPrinterChangeNotifyEx ( RFNPCN )
+ * FindClosePrinterChangeNotify( FCPCN )
+ * ReplyOpenPrinter
+ * ReplyClosePrinter
+ * RouteRefreshPrinterChangeNotify ( RRPCN )
+
+One additional RPC is available to a server, but is never used by the
+Windows spooler service:
+
+ * RouteReplyPrinter()
+
+The opnum for all of these RPC's are defined in include/rpc_spoolss.h
+
+Windows NT print servers use a bizarre method of sending print
+notification event to clients. The process of registering a new change
+notification handle is as follows. The 'C' is for client and the
+'S' is for server. All error conditions have been eliminated.
+
+C: Obtain handle to printer or to the printer
+ server via the standard OpenPrinterEx() call.
+S: Respond with a valid handle to object
+
+C: Send a RFFPCN request with the previously obtained
+ handle and either (a)
+
+
+
+* Back Channel
+* Methods of sending an event
+* Id numbers (print server handles, jobids, & printer handles )
+* event types ( jobs & printer attributes )
+* aggegating notifications
+