VMS Help  —  SMB Routines, SMB$READ_MESSAGE_ITEM, 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.
Close Help