Next: Drop a Process
Up: Process Support Subprograms
Previous: Define Create a
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:
- 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.
- 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.
- Subsequent requests to communicate with the created process use the
Process Name.
- 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).
- 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).
- 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.
- 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.
- No guarantee is given that a Detached Process will function correctly unless
it executes a UIPACK based Application Program.
- 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: Drop a Process
Up: Process Support Subprograms
Previous: Define Create a
Liz Buckle
Fri Jan 13 17:46:53 CST 1995