INtime SDK Help
CreateRtProcess, CreateRtProcessEx
INtime SDK v6 > About INtime > INtime Kernel > Processes > CreateRtProcess, CreateRtProcessEx

Loads an RT executable and runs it in a new process.

RTHANDLE CreateRtProcess(
    LPSTR szFileName,
    LPSTR szArguments,
    LPPROCESSATTRIBUTES lpAttributes,
    DWORD dwFlags
);

RTHANDLE CreateRtProcessEx(
    LPSTR szFileName,
    LPSTR szArguments,
    LPPROCESSATTRIBUTESEX lpAttributesEx,
    DWORD dwFlags,
    LPRTHANDLE phWait
);

Parameters

szFileName
The path name to the RTA file which will be loaded and started as a new process.
szArguments
A pointer to a string that contains the process' command-line arguments, or NULL if there are none.
lpAttributes
A pointer to a PROCESSATTRIBUTES structure, or NULL if the Application Loader defaults are to be used.
lpAttributesEx
A pointer to a PROCESSATTRIBUTESEX structure, or NULL if the Application Loader defaults are to be used. This structure can only be used with the CreateRtProcessEx call.
dwFlags
Controls certain attributes of the new process. Undefined flag bits must be zero. Currently defined flag bits include:
PROC_DEBUG Causes the process to start in a halted state for debugging. (Identical to the RT Application Loader's -debug switch.)
PROC_EXECUTABLE_DS Marks the process' data segment executable. (Identical to the RT Application Loader's -odseg switch.)
PROC_WAIT_FOR_INIT Causes the RT Application Loader to wait for up to 30 seconds for the loaded process to complete its initialization phase. See the Loader Synchronization section of the Loading Applications topic for general information about the use of this flag.
PROC_WAIT_FOR_INIT_PARAM Causes the RT Application Loader to wait for up to the configured time for the loaded process to complete its initialization phase. The wait period is specified in the PROCESSATTRIBUTESEX WaitForInit field. See the Loader Synchronization section of the Loading Applications topic for further details.
PROC_STRICTRSL Causes an additional check to be made when loading RSLs in this process using LoadRtLibrary. This allows a library to be loaded which has the same filename but a different path to a library which is already loaded. This property applies only to this process when this flag is set.
PROC_XM Causes the loader to load the target process in XM mode, with an extended VSEG. This flag overrides the default value in the RTA file PEX header as set by the linker.
PROC_NOTXM Causes the loader to load the target process in standard mode, with a standard VSEG. This flag overrides the default value in the RTA file PEX header as set by the linker.
PROC_SUSPEND Causes the loader to load the target process and then to suspend it, pending a call to StartRtProcess.
phWait
A pointer to an RTHANDLE variable to receive the wait object. This handle is later used with WaitForRtProcess. If this value is NULL then the call behaves as CreateRtProcess but using the PROCESSATTRIBUTESEX structure for the process attributes. See the Waiting for an application to exit topic for further details.

Remarks

When using the PROC_WAIT_FOR_INIT or PROC_WAIT_FOR_INIT_PARAM flags, note that if the CreateRtProcess(Ex) successfully creates the process call will sleep until one of the following events occurs:

  1. The created process calls SynchronizeRtLoader or catalogs a handle in its local object directory the the name R?END_INIT
  2. The created process exits before the configured wait time expires
  3. The configured time period is exceeded.

In all cases the process handle is returned from the call. There is no indication of which of the cases occurred.

Return Values

The handle to the new process.
Success.
BAD_RTHANDLE if the process was not created.
Failure. To determine the status, call GetLastRtError.

Requirements

Versions Defined in Include Link to
INtime 3.0 intime/rt/include/rtbase.h rt.h rt.lib
See Also