Copyright Digital Equipment Corp. All rights reserved.

Description

   The job controller can request seven functions from the symbiont.
   They are identified by the following codes:

   SMBMSG$K_START_STREAM       SMBMSG$K_STOP_STREAM
   SMBMSG$K_START_TASK         SMBMSG$K_PAUSE_TASK
   SMBMSG$K_RESUME_TASK        SMBMSG$K_STOP_TASK
   SMBMSG$K_RESET_STREAM

   The job controller passes the symbiont a request containing
   a code and, optionally, a number of message items containing
   information the symbiont might need to perform the function. The
   code specifies what function the request is for, and the message
   items contain information that the symbiont needs to carry out
   the function.

   By calling SMB$READ_MESSAGE, the symbiont reads the request
   and writes the message items into the specified buffer. The
   symbiont then obtains the individual message items by calling
   the SMB$READ_MESSAGE_ITEM routine.

   Each message item consists of a code that identifies the
   information the item represents, and the item itself. For
   example, the SMB$K_JOB_NAME code tells the symbiont that the
   item specifies a job's name.

   The number of items in a request varies with each type of
   request. Therefore, you must call SMB$READ_MESSAGE_ITEM
   repeatedly for each request to ensure that all message items
   are read. Each time SMB$READ_MESSAGE_ITEM reads a message item,
   it updates the value in the longword specified by the context
   argument. SMB$READ_MESSAGE_ITEM returns the code SMB$_NOMOREITEMS
   after it has read the last message item.

   The following table shows the message items that can be delivered
   with each request:

   Request               Message Item

   SMBMSG$K_START_TASK   SMBMSG$K_ACCOUNT_NAME
                         SMBMSG$K_AFTER_TIME
                         SMBMSG$K_BOTTOM_MARGIN
                         SMBMSG$K_CHARACTERISTICS
                         SMBMSG$K_CHECKPOINT_DATA
                         SMBMSG$K_ENTRY_NUMBER
                         SMBMSG$K_FILE_COPIES
                         SMBMSG$K_FILE_COUNT
                         SMBMSG$K_FILE_IDENTIFICATION
                         SMBMSG$K_FILE_SETUP_MODULES
                         SMBMSG$K_FILE_SPECIFICATION
                         SMBMSG$K_FIRST_PAGE
                         SMBMSG$K_FORM_LENGTH
                         SMBMSG$K_FORM_NAME
                         SMBMSG$K_FORM_SETUP_MODULES
                         SMBMSG$K_FORM_WIDTH
                         SMBMSG$K_JOB_COPIES
                         SMBMSG$K_JOB_COUNT
                         SMBMSG$K_JOB_NAME
                         SMBMSG$K_JOB_RESET_MODULES
                         SMBMSG$K_LAST_PAGE
                         SMBMSG$K_LEFT_MARGIN
                         SMBMSG$K_MESSAGE_VECTOR
                         SMBMSG$K_NOTE
                         SMBMSG$K_PAGE_SETUP_MODULES
                         SMBMSG$K_PARAMETER_1

                             .
                             .
                             .
                         SMBMSG$K_PARAMETER_8
                         SMBMSG$K_PRINT_CONTROL
                         SMBMSG$K_SEPARATION_CONTROL
                         SMBMSG$K_REQUEST_CONTROL
                         SMBMSG$K_PRIORITY
                         SMBMSG$K_QUEUE
                         SMBMSG$K_RIGHT_MARGIN
                         SMBMSG$K_TIME_QUEUED
                         SMBMSG$K_TOP_MARGIN
                         SMBMSG$K_UIC
                         SMBMSG$K_USER_NAME
   SMBMSG$K_STOP_TASK    SMBMSG$K_STOP_CONDITION
   SMBMSG$K_PAUSE_TASK   None
   SMBMSG$K_RESUME_      SMBMSG$K_ALIGNMENT_PAGES
   TASK
                         SMBMSG$K_RELATIVE_PAGE
                         SMBMSG$K_REQUEST_CONTROL
                         SMBMSG$K_SEARCH_STRING
   SMBMSG$K_START_       SMBMSG$K_DEVICE_NAME
   STREAM
                         SMBMSG$K_EXECUTOR_QUEUE
                         SMBMSG$K_JOB_RESET_MODULES
                         SMBMSG$K_LIBRARY_SPECIFICATION
   SMBMSG$K_STOP_        None
   STREAM
   SMBMSG$K_RESET_       None
   STREAM

   The following list describes each item code. For each code, the
   list describes the contents of the message item identified by
   the code and whether the code identifies an item sent from the
   job controller to the symbiont or from the symbiont to the job
   controller.

   Many of the codes described are specifically oriented toward
   print symbionts. The symbiont you implement, which might not
   print files or serve an output device, need not recognize all
   these codes. In addition, it need not respond in the same way as
   the print symbiont to the codes it recognizes. The descriptions
   in the list describe how the standard print symbiont (PRTSMB.EXE)
   processes these items.

                                  NOTE

      Because new codes might be added in the future, you should
      write your symbiont so that it ignores codes it does not
      recognize.