next up previous contents
Next: Drop a Process Up: Process Support Subprograms Previous: Define Create a

Define Create a Detached Process

This Subprogram may be used to create a Detached Process (by SYS$CREPRC) and assigning a Viewport to it. Such a Detached Process can only run an Executable Image. Only a limited context of the parent process (System and Group Logical Names only) is available to the created Process.

Short Name Calling Sequence

STATUS = UIDDPC(PRCNAM,FILNAM,PRCUIC[,VPRTID])

Long Name Calling Sequence

STATUS = UI_DEFINE_DETACHED_PROCESS(...)

Input Arguments

PRCNAM (Character) Process Name FILNAM (Character) Executable Image Filename PRCUIC (Character) UIC Specification VPRTID (Integer) Viewport ID (Optional)

Output Arguments

VPRTID (Integer) Viewport ID (Optional)

Function Value

UI__SUCCESS ) Success UISUCC )

UI__NOT_INITIALIZED ) Package not Initialized UININI )

UI__ILLEGAL_SYNTAX ) Illegal Process Name UIILSY ) Syntax

UI__DUPLICATE_PROCESS ) Duplicate Process UIDUPC ) Name

UI__NO_FREE_PROCESSES ) No Free Process UINOPC ) Slots available

UI__ILLEGAL_VIEWPORT ) Illegal Viewport ID UIILVP )

Note:

  1. A maximum of 16 Processes may be created. Detached Processes do not use the parent process quotas, but the parent process must have the privileges to create a Detached Process.
  2. The syntax for the Process Name is the same as for Verbs and Qualifiers. The Process Name may be up to 32 characters long, where only the first 8 are significant by default. This default may be modified using the UI_DEFINE_PROCESS_LENGTH Subprogram.
  3. Subsequent requests to communicate with the created process use the Process Name.
  4. The FILNAM String should contain a valid Executable Image Filename. This Executable Image should not be linked to the Debugger. The Filename is translated to its full file specification (expanding any logicals) prior to creating the Detached Process via a call to SYS$CREPRC. This expanded file specification must be no more than 64 characters in length in order for the process creation to work correctly (this limitation comes from the SYS$CREPRC System Service).
  5. The PRCUIC Argument determines the Vax/VMS UIC specification under which the created process is to run. If PRCUIC is null (set to ASCII spaces) the UIC of the created process is the same as that of the creating process. Otherwise the created process will run under the specified UIC (which can be a User Name or Rights Identifier).
  6. The Client Process will be assigned the same VAX/VMS Base Priority as the creating Process. This, and other attributes of the Client Process, may be adjusted by using Subprogram UI_INQUIRE_PROCESS_PID to determine the VAX/VMS PID of the Client and then using normal System Service or Run-Time Library Subprograms.
  7. Any errors from SYS$CREPRC will be signalled as errors by this Subprogram (unless Error reporting is inhibited) and returned to the caller as a Function Value.
  8. No guarantee is given that a Detached Process will function correctly unless it executes a UIPACK based Application Program.
  9. The created process will be allocated a Viewport to act as its Input Viewport. The format of the call to this Subprogram determines whether this Viewport is allocated dynamically or statically. The VPRTID Argument determines what action is taken, where the syntax is:-
    VPRTID absent
    A Free Viewport is assigned to the created Process
    VPRTID -ve
    A Free Viewport is assigned to the created Process and the ID is returned to the Caller
    VPRTID +ve
    The specified Viewport is assigned to the created Process, creating it if necessary

    Unless a Viewport has been predefined, UIPACK allocates a quadrant of the screen to the Viewport assigned to each created process. These Viewports are invisible by default and are labelled by the Process Name.


next up previous contents
Next: Drop a Process Up: Process Support Subprograms Previous: Define Create a



Liz Buckle
Fri Jan 13 17:46:53 CST 1995