summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 0000000000..3cce7ab99c
--- /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
+